diff --git a/.gitattributes b/.gitattributes index 6ee434482..b5bcf8545 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,7 @@ # Auto detect text files and perform LF normalization * text=auto *.sh text eol=lf -/pkgsrc.zip filter=lfs diff=lfs merge=lfs -text + +# Bundled NuGet package archive must stay as a normal repository file. +# Do not store it through Git LFS, because CI must be able to restore packages during checkout. +tools/build/pkgsrc.bundle -filter -diff -merge -text diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index 6e7ef31e2..27350008f 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -35,7 +35,7 @@ Add any other context about the problem here. DISMTools 0.6.1 and later use DynaLog as a means to write diagnostic information to a log file that you can send to the developers. The log is stored in `\Logs`: -- If you are using an installed copy, go to `\Program Files\DISMTools\\logs` +- If you are using an installed copy, go to `\Program Files\DISMTools\logs` for stable builds or `\Program Files\DISMTools\Preview\logs` for preview builds - If you are using a portable copy, go to `\logs` The file in question is `DT_DynaLog.log`. Attach this log by dropping it below: diff --git a/.github/ISSUE_TEMPLATE/program-exception.md b/.github/ISSUE_TEMPLATE/program-exception.md index 1b8c80af0..f2b629d00 100644 --- a/.github/ISSUE_TEMPLATE/program-exception.md +++ b/.github/ISSUE_TEMPLATE/program-exception.md @@ -24,7 +24,7 @@ If you have run into an internal error (program exception), we would like to lea DISMTools 0.6.1 and later use DynaLog as a means to write diagnostic information to a log file that you can send to the developers. The log is stored in `\Logs`: -- If you are using an installed copy, go to `\Program Files\DISMTools\\logs` +- If you are using an installed copy, go to `\Program Files\DISMTools\logs` for stable builds or `\Program Files\DISMTools\Preview\logs` for preview builds - If you are using a portable copy, go to `\logs` The file in question is `DT_DynaLog.log`. Attach this log by dropping it below: diff --git a/.github/workflows/create-nightly-installer.yaml b/.github/workflows/create-nightly-installer.yaml deleted file mode 100644 index 9defaee46..000000000 --- a/.github/workflows/create-nightly-installer.yaml +++ /dev/null @@ -1,73 +0,0 @@ -name: Create Nightly Installer - -on: - push: - branches: - - dt_prerel_* - - dt_rel* - paths-ignore: - - '.github/**' - - '**/README.md' - - 'res/**' - workflow_dispatch: -env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - -jobs: - build-runspace: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - submodules: 'true' - - name: Set up MSBuild - uses: microsoft/Setup-MSBuild@v2 - - name: Prepare NuGet packages - run: .\nugetpkgprep.bat - continue-on-error: false - - name: Generate installer - run: | - $ghAction = "yes" - $solutionDir = "$((Get-Location).Path)\" - $projectDir = "$((Get-Location).Path)\" - $targetDir = (Get-Location).Path + "\bin\Debug\" - iex "$($solutionDir)CheckMissingDlls.ps1" - msbuild DISMTools.vbproj /p:Configuration=Debug /p:DeployOnBuild=true /p:SolutionDir=$solutionDir /p:ProjectDir=$projectDir /p:TargetDir=$targetDir - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: build-result - path: ${{ github.workspace }}\Installer\Output\dt_setup.exe - upload-installer: - runs-on: ubuntu-latest - needs: build-runspace - steps: - - uses: actions/checkout@v4 - - name: Grab Artifacts - uses: actions/download-artifact@v4 - with: - name: build-result - path: ./downloaded_artifacts - - name: Prepare directory - run: | - mkdir -p "./${{ GITHUB.REF_NAME }}" - mv -f "./downloaded_artifacts/dt_setup.exe" "./${{ GITHUB.REF_NAME }}/dt_setup.exe" - rm -rf "./downloaded_artifacts" - - name: Fix OpenSSL Issues - run: | - sudo apt remove openssh-server openssh-client - sudo apt install openssh-server openssh-client - - name: Upload Installer - env: - SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} - API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} - uses: cpina/github-action-push-to-another-repository@main - with: - source-directory: '${{ GITHUB.REF_NAME }}' - destination-github-username: 'CodingWonders' - destination-repository-name: 'dt-nightly-installers' - user-email: '101426328+CodingWonders@users.noreply.github.com' - target-directory: '${{ GITHUB.REF_NAME }}' - target-branch: main diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..4ca8b27f5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,120 @@ +name: Build and publish release + +on: + push: + branches: + - dt_prerel_* + - dt_rel* + paths-ignore: + - '**/README.md' + - 'res/**' + workflow_dispatch: + inputs: + release_channel: + description: Release channel + required: true + default: stable + type: choice + options: + - stable + - preview + prerelease: + description: Mark the GitHub Release as prerelease + required: true + default: false + type: boolean + draft: + description: Create the GitHub Release as draft + required: true + default: false + type: boolean + +permissions: + contents: write + +env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + +jobs: + build-release: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: 'true' + lfs: false + fetch-depth: 0 + + - name: Set up MSBuild + uses: microsoft/Setup-MSBuild@v2 + + - name: Prepare NuGet packages + shell: pwsh + run: | + if (Test-Path .\tools\build\pkgsrc.bundle) { Get-Item .\tools\build\pkgsrc.bundle | Select-Object FullName, Length } + .\nugetpkgprep.bat + + - name: Build application output + shell: pwsh + run: | + $ghAction = "yes" + $solutionDir = "$((Get-Location).Path)\" + $projectDir = "$((Get-Location).Path)\" + $targetDir = (Get-Location).Path + "\bin\Debug\" + iex "$($solutionDir)CheckMissingDlls.ps1" + msbuild DISMTools.vbproj /p:Configuration=Debug /p:DeployOnBuild=true /p:SolutionDir=$solutionDir /p:ProjectDir=$projectDir /p:TargetDir=$targetDir + + - name: Build installer output + shell: pwsh + run: | + .\tools\build\BuildInstaller.ps1 ` + -BuildOutputPath "${{ github.workspace }}\bin\Debug" ` + -CleanFilesDirectory + + - name: Verify installer localization payload + shell: pwsh + run: .\tools\build\VerifyInstallerLocalization.ps1 + + - name: Publish GitHub Release + shell: pwsh + env: + GH_TOKEN: ${{ github.token }} + run: | + $releaseChannel = "${{ github.event.inputs.release_channel }}" + if ([string]::IsNullOrWhiteSpace($releaseChannel)) { + if ("${{ github.ref_name }}" -like "dt_prerel_*") { + $releaseChannel = "preview" + } else { + $releaseChannel = "stable" + } + } + + $prereleaseInput = "${{ github.event.inputs.prerelease }}" + $isPrerelease = $false + if ($releaseChannel -eq "preview" -or $prereleaseInput -eq "true") { + $isPrerelease = $true + } + + $draftInput = "${{ github.event.inputs.draft }}" + $isDraft = $false + if ($draftInput -eq "true") { + $isDraft = $true + } + + .\tools\build\PublishReleaseAsset.ps1 ` + -InstallerPath "${{ github.workspace }}\Installer\Output\dt_setup.exe" ` + -PortableSourcePath "${{ github.workspace }}\bin\Debug" ` + -BranchName "${{ github.ref_name }}" ` + -RunNumber "${{ github.run_number }}" ` + -RunAttempt "${{ github.run_attempt }}" ` + -Sha "${{ github.sha }}" ` + -ReleaseChannel $releaseChannel ` + -AssetOutputDirectory "${{ github.workspace }}\artifacts\release" ` + -Prerelease:$isPrerelease ` + -Draft:$isDraft + + - name: Upload workflow artifacts + uses: actions/upload-artifact@v4 + with: + name: release-assets + path: ${{ github.workspace }}\artifacts\release\* diff --git a/ApplicationEvents.vb b/ApplicationEvents.vb index 8ecea4100..6848831a9 100644 --- a/ApplicationEvents.vb +++ b/ApplicationEvents.vb @@ -19,6 +19,7 @@ Namespace My Private debounceInterval As TimeSpan = TimeSpan.FromSeconds(2) Private Sub Start(sender As Object, e As EventArgs) Handles Me.Startup + LocalizationService.Initialize() DynaLog.LogMessage("Adding startup event handlers...") AddHandler Microsoft.Win32.SystemEvents.UserPreferenceChanged, AddressOf SysEvts_UserPreferenceChanged AddHandler Microsoft.Win32.SystemEvents.DisplaySettingsChanging, AddressOf SysEvts_DisplaySettingsChanging @@ -184,4 +185,3 @@ Namespace My End Namespace - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0c5a41acc..24fc5f237 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -110,3 +110,18 @@ You can work on the following: ## Conclusion If you follow all these steps and rules, you'll achieve good pull requests, so go on and make your changes! + +## Installer language files + +Edit installer translations in `Installer\Languages`. Do not edit `Installer\Compiler\Default.isl` for DISMTools text. That file belongs to the bundled Inno Setup compiler runtime. + +## Application language files + +Application translations are edited in the root `language` folder. The application discovers available languages by reading all `*.ini` files in that folder. + +When adding a new language, copy an existing INI file and update `[LanguageFileInformation]` with `LanguageCode` and `LanguageName`. The file name can be chosen freely because the application identifies the language from the metadata inside the file. The application and every utility must keep using the shared `Utilities\Language\LocalizationService.vb` source file. Do not create project specific copies of the localization service. +Keep utility interface sections scoped to the utility, for example `DynaViewer.Designer.Main` or `Updater.Designer.Main`. Do not place unrelated utility windows in the main application section `Designer.Main`. + +Keep section names and key names in English. Translate only the values after `=`. + +PE Helper localization is exported into a generated Windows installation ISO as one minimal INI for the selected `LanguageCode`. Keep `Helpers\extps1\PE_Helper\PE_Helper.ps1` in sync with the actual localization calls in `PEHelperMainMenu`. The localization validator checks this automatically. Do not copy a complete application language file into the ISO. HotInstall uses its own language files and must not reuse the application INI files. diff --git a/CheckMissingDLLs.ps1 b/CheckMissingDLLs.ps1 index 32fdbc247..3fbc28f20 100644 --- a/CheckMissingDLLs.ps1 +++ b/CheckMissingDLLs.ps1 @@ -1,30 +1,75 @@ -if ($ghAction -ne "yes") -{ - $SolutionDir = "$((Get-Location).Path)\..\.." - $TargetDir = "$((Get-Location).Path)" +$ErrorActionPreference = "Stop" + +function Get-NormalizedDirectoryPath { + param( + [Parameter(Mandatory = $true)] + [string]$Path + ) + + $fullPath = [System.IO.Path]::GetFullPath($Path) + if (-not $fullPath.EndsWith([System.IO.Path]::DirectorySeparatorChar)) { + $fullPath += [System.IO.Path]::DirectorySeparatorChar + } + return $fullPath +} + +if ($ghAction -ne "yes") { + $SolutionDir = "$((Get-Location).Path)\..\.." + $TargetDir = "$((Get-Location).Path)" } -if (-not (Test-Path ".\bin\Debug")) -{ - New-Item "$($SolutionDir)bin\Debug" -ItemType Directory -Force +if ([string]::IsNullOrWhiteSpace($SolutionDir)) { + $SolutionDir = (Get-Location).Path } -if (-not (Test-Path ".\bin\Debug\System.IO.dll" -PathType Leaf)) { - Copy-Item "$($SolutionDir)\packages\System.IO.4.3.0\lib\net462\System.IO.dll" "$($TargetDir)\System.IO.dll" +if ([string]::IsNullOrWhiteSpace($TargetDir)) { + $TargetDir = Join-Path $SolutionDir "bin\Debug" } -if (-not (Test-Path ".\bin\Debug\System.Net.Http.dll" -PathType Leaf)) { - Copy-Item "$($SolutionDir)\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll" "$($TargetDir)\System.Net.Http.dll" +$SolutionDir = Get-NormalizedDirectoryPath -Path $SolutionDir +$TargetDir = [System.IO.Path]::GetFullPath($TargetDir) +$projectFile = Join-Path $SolutionDir "DISMTools.vbproj" + +if (-not (Test-Path -LiteralPath $projectFile)) { + throw "DISMTools.vbproj was not found: $projectFile" } -if (-not (Test-Path ".\bin\Debug\System.Runtime.dll" -PathType Leaf)) { - Copy-Item "$($SolutionDir)\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll" "$($TargetDir)\System.Runtime.dll" +New-Item -Path $TargetDir -ItemType Directory -Force | Out-Null + +[xml]$projectXml = Get-Content -LiteralPath $projectFile +$namespaceManager = New-Object System.Xml.XmlNamespaceManager($projectXml.NameTable) +$namespaceManager.AddNamespace("msb", "http://schemas.microsoft.com/developer/msbuild/2003") + +$hintPathNodes = $projectXml.SelectNodes("//msb:Reference/msb:HintPath", $namespaceManager) +$missingFiles = New-Object System.Collections.Generic.List[string] +$copiedFiles = New-Object System.Collections.Generic.List[string] + +foreach ($hintPathNode in $hintPathNodes) { + $relativeHintPath = $hintPathNode.InnerText.Trim() + if ([string]::IsNullOrWhiteSpace($relativeHintPath)) { + continue + } + + if (-not $relativeHintPath.EndsWith(".dll", [System.StringComparison]::OrdinalIgnoreCase)) { + continue + } + + $sourcePath = Join-Path $SolutionDir $relativeHintPath + if (-not (Test-Path -LiteralPath $sourcePath -PathType Leaf)) { + $missingFiles.Add($relativeHintPath) | Out-Null + continue + } + + $targetPath = Join-Path $TargetDir ([System.IO.Path]::GetFileName($sourcePath)) + if (-not (Test-Path -LiteralPath $targetPath -PathType Leaf)) { + Copy-Item -LiteralPath $sourcePath -Destination $targetPath -Force + $copiedFiles.Add([System.IO.Path]::GetFileName($sourcePath)) | Out-Null + } } -if ((-not (Test-Path ".\bin\Debug\System.Security*.dll" -PathType Leaf)) -or ((Get-ChildItem ".\bin\Debug\System.Security*.dll").Count -lt 4)) { - Copy-Item "$($SolutionDir)\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll" "$($TargetDir)\System.Security.Cryptography.Algorithms.dll" - Copy-Item "$($SolutionDir)\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll" "$($TargetDir)\System.Security.Cryptography.Encoding.dll" - Copy-Item "$($SolutionDir)\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll" "$($TargetDir)\System.Security.Cryptography.Primitives.dll" - Copy-Item "$($SolutionDir)\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll" "$($TargetDir)\System.Security.Cryptography.X509Certificates.dll" +if ($missingFiles.Count -gt 0) { + $message = "The following referenced DLL files are missing after NuGet restore:" + [Environment]::NewLine + ($missingFiles -join [Environment]::NewLine) + throw $message } +Write-Host "Checked referenced NuGet DLL files. Copied $($copiedFiles.Count) file(s) to $TargetDir" diff --git a/DISMTools.vbproj b/DISMTools.vbproj index 08632620d..effadb29b 100644 --- a/DISMTools.vbproj +++ b/DISMTools.vbproj @@ -1,5 +1,5 @@ - - + + Debug @@ -809,10 +809,10 @@ Form - + ProjectValueLoadForm.vb - + Form @@ -1005,7 +1005,8 @@ - + + @@ -1291,7 +1292,7 @@ SetTargetPath.vb - + ProjectValueLoadForm.vb @@ -1573,10 +1574,26 @@ Designer + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + - Always + Never + @@ -2171,7 +2188,7 @@ - + @@ -2190,7 +2207,6 @@ SET DELETELOGDIR="Yes" SET ISPREVIEW="No" -SET GEN_INSTALLER="Yes" SET COPY_DOCS="Yes" SET CREATE_SAMPLE_USERDATA="Yes" ECHO Generating program structure... @@ -2334,23 +2350,19 @@ IF EXIST "$(SolutionDir)Tools\AutoReloadService\out" ( IF NOT EXIST "AutoReload" MD "AutoReload" copy /y "$(SolutionDir)Tools\AutoReloadService\out\*.*" "AutoReload" ) -IF %25GEN_INSTALLER%25=="Yes" ( - echo The technology used for creating the installer is subject to a license. Refer to the "LICENSE.TXT" file in the "$(SolutionDir)Installer" directory for more information - :: Workaround for DLLs not copying - "\Windows\system32\WindowsPowerShell\v1.0\powershell.exe" -executionpolicy bypass -noprofile -nologo -file "$(SolutionDir)CheckMissingDLLs.ps1" - echo Copying program files... - IF EXIST "$(SolutionDir)Installer\files" (rd "$(SolutionDir)Installer\files" /s /q) - IF NOT EXIST "$(SolutionDir)Installer\files" (md "$(SolutionDir)Installer\files") - XCOPY "$(TargetDir)*.*" "$(SolutionDir)Installer\files" /cehyi - IF EXIST "$(SolutionDir)Installer\files\VS*.tmp" (del "$(SolutionDir)Installer\files\VS*.tmp" /f /q) - IF EXIST "$(SolutionDir)Installer\iscc.exe" ( - echo Building the installer... - "$(SolutionDir)Installer\iscc.exe" "$(SolutionDir)Installer\dt.iss" - ) ELSE ( - echo Warning: the installer compiler could not be found. Deleting temporary setup files... - rd "$(SolutionDir)Installer\files" /s /q - ) -) + +:: Copy localization language files to the program directory +IF EXIST "$(SolutionDir)language" ( + echo Copying localization language files... + IF NOT EXIST "$(TargetDir)language" (md "$(TargetDir)language") + xcopy "$(SolutionDir)language\*.ini" "$(TargetDir)language" /cehyi +) ELSE ( + echo ERROR: Language directory was not found: $(SolutionDir)language + exit /b 1 +) + +:: Installer packaging is handled by tools\build\BuildInstaller.ps1 during release workflow. + ECHO Deleting bin folder... @@ -2388,13 +2400,7 @@ IF EXIST tools ( IF EXIST "report.html" (del "report.html") - + diff --git a/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.Designer.vb b/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.Designer.vb index 4742086b0..94f7d620a 100644 --- a/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.Designer.vb +++ b/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ADDSJoinDialog Inherits System.Windows.Forms.Form @@ -166,7 +166,7 @@ Partial Class ADDSJoinDialog Me.DnsToolsBtn.Name = "DnsToolsBtn" Me.DnsToolsBtn.Size = New System.Drawing.Size(37, 23) Me.DnsToolsBtn.TabIndex = 3 - Me.DnsToolsBtn.Text = "..." + Me.DnsToolsBtn.Text = LocalizationService.ForSection("Designer.DomainJoin")("DnstoolsBtn.Button") Me.DnsToolsBtn.TextAlign = System.Drawing.ContentAlignment.TopCenter Me.DnsToolsBtn.UseVisualStyleBackColor = True ' @@ -192,7 +192,7 @@ Partial Class ADDSJoinDialog Me.GroupBox1.Size = New System.Drawing.Size(716, 316) Me.GroupBox1.TabIndex = 5 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "NIC Settings" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.DomainJoin")("Nicsettings.Group") ' 'Panel1 ' @@ -220,7 +220,7 @@ Partial Class ADDSJoinDialog Me.DnsSyntaxCheckerBtn.Name = "DnsSyntaxCheckerBtn" Me.DnsSyntaxCheckerBtn.Size = New System.Drawing.Size(192, 23) Me.DnsSyntaxCheckerBtn.TabIndex = 10 - Me.DnsSyntaxCheckerBtn.Text = "Verify DNS Address Syntax" + Me.DnsSyntaxCheckerBtn.Text = LocalizationService.ForSection("Designer.DomainJoin")("Verify.DNS.Label") Me.DnsSyntaxCheckerBtn.UseVisualStyleBackColor = True ' 'TextBox2 @@ -251,8 +251,7 @@ Partial Class ADDSJoinDialog Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(538, 31) Me.Label5.TabIndex = 7 - Me.Label5.Text = "By default, this adapter will use the same domain suffix you specified above. You" & _ - " can change it later" + Me.Label5.Text = LocalizationService.ForSection("Designer.DomainJoin")("Default.Adapter.Same.Message") ' 'ComboBox1 ' @@ -269,7 +268,7 @@ Partial Class ADDSJoinDialog Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(201, 17) Me.RadioButton2.TabIndex = 3 - Me.RadioButton2.Text = "Specify a network adapter manually:" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.DomainJoin")("ManualAdapter.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'Label7 @@ -281,9 +280,7 @@ Partial Class ADDSJoinDialog Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(461, 33) Me.Label7.TabIndex = 9 - Me.Label7.Text = "The address in the first line will be the primary DNS server address, and any oth" & _ - "er addresses will become alternative server addresses. You can put both IPv4 and" & _ - " IPv6 addresses." + Me.Label7.Text = LocalizationService.ForSection("Designer.DomainJoin")("Address.First.Line.Message") ' 'Label6 ' @@ -292,7 +289,7 @@ Partial Class ADDSJoinDialog Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(280, 13) Me.Label6.TabIndex = 8 - Me.Label6.Text = "DNS Server Addresses (put each address in its own line):" + Me.Label6.Text = LocalizationService.ForSection("Designer.DomainJoin")("DNSServer.Addresses.Label") ' 'Label4 ' @@ -301,7 +298,7 @@ Partial Class ADDSJoinDialog Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(116, 13) Me.Label4.TabIndex = 5 - Me.Label4.Text = "Primary Domain Suffix:" + Me.Label4.Text = LocalizationService.ForSection("Designer.DomainJoin")("PrimarySuffix.Label") ' 'RadioButton1 ' @@ -312,7 +309,7 @@ Partial Class ADDSJoinDialog Me.RadioButton1.Size = New System.Drawing.Size(232, 17) Me.RadioButton1.TabIndex = 1 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Pick from a network adapter in this system:" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.DomainJoin")("PickAdapter.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'Label3 @@ -322,7 +319,7 @@ Partial Class ADDSJoinDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(81, 13) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Interface Alias:" + Me.Label3.Text = LocalizationService.ForSection("Designer.DomainJoin")("InterfaceAlias.Label") ' 'TextBox1 ' @@ -342,8 +339,7 @@ Partial Class ADDSJoinDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(591, 31) Me.Label2.TabIndex = 4 - Me.Label2.Text = "This domain suffix will be added to the list of DNS suffixes. You can add more to" & _ - " the list of suffixes later." + Me.Label2.Text = LocalizationService.ForSection("Designer.DomainJoin")("Domain.Suffix.Added.Message") ' 'Label1 ' @@ -352,7 +348,7 @@ Partial Class ADDSJoinDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(116, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Primary Domain Suffix:" + Me.Label1.Text = LocalizationService.ForSection("Designer.DomainJoin")("PrimarySuffix.Label") ' 'DNSConfigHeader ' @@ -364,7 +360,7 @@ Partial Class ADDSJoinDialog Me.DNSConfigHeader.Name = "DNSConfigHeader" Me.DNSConfigHeader.Size = New System.Drawing.Size(658, 23) Me.DNSConfigHeader.TabIndex = 0 - Me.DNSConfigHeader.Text = "Configure DNS settings for network adapters" + Me.DNSConfigHeader.Text = LocalizationService.ForSection("Designer.DomainJoin")("DNSSettings.Label") ' 'DSDomainConfigPanel ' @@ -414,7 +410,7 @@ Partial Class ADDSJoinDialog Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(408, 13) Me.Label17.TabIndex = 8 - Me.Label17.Text = "Type the Security Account Manager (SAM) name of the user account in the domain:" + Me.Label17.Text = LocalizationService.ForSection("Designer.DomainJoin")("Type.Security.Account.Label") ' 'TextBox5 ' @@ -451,7 +447,7 @@ Partial Class ADDSJoinDialog Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(101, 13) Me.Label15.TabIndex = 0 - Me.Label15.Text = "Organizational unit:" + Me.Label15.Text = LocalizationService.ForSection("Designer.DomainJoin")("Organizational.Unit.Label") ' 'Label16 ' @@ -460,7 +456,7 @@ Partial Class ADDSJoinDialog Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(33, 13) Me.Label16.TabIndex = 2 - Me.Label16.Text = "User:" + Me.Label16.Text = LocalizationService.ForSection("Designer.DomainJoin")("User.Label") ' 'ComboBox2 ' @@ -498,7 +494,7 @@ Partial Class ADDSJoinDialog Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(215, 13) Me.Label19.TabIndex = 14 - Me.Label19.Text = "SAM account name of selected user object:" + Me.Label19.Text = LocalizationService.ForSection("Designer.DomainJoin")("SAM.Account.Label") ' 'Label18 ' @@ -509,8 +505,7 @@ Partial Class ADDSJoinDialog Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(406, 28) Me.Label18.TabIndex = 0 - Me.Label18.Text = "If the desired account is not in any organizational unit, but rather in a contain" & _ - "er, or somewhere else; click the following button to pick it:" + Me.Label18.Text = LocalizationService.ForSection("Designer.DomainJoin")("Org.Unit.Account.Message") ' 'DsAccountObjectPickerBtn ' @@ -519,13 +514,13 @@ Partial Class ADDSJoinDialog Me.DsAccountObjectPickerBtn.Name = "DsAccountObjectPickerBtn" Me.DsAccountObjectPickerBtn.Size = New System.Drawing.Size(125, 23) Me.DsAccountObjectPickerBtn.TabIndex = 13 - Me.DsAccountObjectPickerBtn.Text = "Pick account object..." + Me.DsAccountObjectPickerBtn.Text = LocalizationService.ForSection("Designer.DomainJoin")("Pick.Account.Object.Button") Me.DsAccountObjectPickerBtn.UseVisualStyleBackColor = True ' 'ComboBox4 ' Me.ComboBox4.FormattingEnabled = True - Me.ComboBox4.Items.AddRange(New Object() {"Specify a user manually", "Pick the following user from organizational units in my domain", "Pick the following user object from anywhere in my domain"}) + Me.ComboBox4.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.DomainJoin")("User.Manually.Item"), LocalizationService.ForSection("Designer.DomainJoin")("Pick.User.Org.Item"), LocalizationService.ForSection("Designer.DomainJoin")("Pick.User.Object.Item")}) Me.ComboBox4.Location = New System.Drawing.Point(211, 81) Me.ComboBox4.Name = "ComboBox4" Me.ComboBox4.Size = New System.Drawing.Size(459, 21) @@ -556,7 +551,7 @@ Partial Class ADDSJoinDialog Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(289, 21) Me.Label13.TabIndex = 0 - Me.Label13.Text = "User Principal Name (Windows 2000):" + Me.Label13.Text = LocalizationService.ForSection("Designer.DomainJoin")("User.Principal.Name.Label") Me.Label13.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label14 @@ -567,7 +562,7 @@ Partial Class ADDSJoinDialog Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(289, 21) Me.Label14.TabIndex = 2 - Me.Label14.Text = "Logon Path (pre-Windows 2000):" + Me.Label14.Text = LocalizationService.ForSection("Designer.DomainJoin")("Logon.Path.Pre.Label") Me.Label14.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'AddsUpnPathText @@ -619,8 +614,7 @@ Partial Class ADDSJoinDialog Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(517, 32) Me.Label11.TabIndex = 0 - Me.Label11.Text = "A domain name could not be obtained automatically because this device does not be" & _ - "long to a domain." + Me.Label11.Text = LocalizationService.ForSection("Designer.DomainJoin")("Domain.Auto.Detected.Message") ' 'TextBox6 ' @@ -640,7 +634,7 @@ Partial Class ADDSJoinDialog Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(582, 65) Me.Label12.TabIndex = 11 - Me.Label12.Text = resources.GetString("Label12.Text") + Me.Label12.Text = LocalizationService.ForSection("Designer.DomainJoin")("Ask.Admin.Provide.Message") ' 'Label10 ' @@ -649,7 +643,7 @@ Partial Class ADDSJoinDialog Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(57, 13) Me.Label10.TabIndex = 8 - Me.Label10.Text = "Password:" + Me.Label10.Text = LocalizationService.ForSection("Designer.DomainJoin")("Password.Label") ' 'Label9 ' @@ -658,7 +652,7 @@ Partial Class ADDSJoinDialog Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(75, 13) Me.Label9.TabIndex = 3 - Me.Label9.Text = "User Account:" + Me.Label9.Text = LocalizationService.ForSection("Designer.DomainJoin")("UserAccount.Label") ' 'TextBox4 ' @@ -674,7 +668,7 @@ Partial Class ADDSJoinDialog Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(76, 13) Me.Label8.TabIndex = 1 - Me.Label8.Text = "Domain Name:" + Me.Label8.Text = LocalizationService.ForSection("Designer.DomainJoin")("DomainName.Label") ' 'DSDomainConfigHeader ' @@ -686,7 +680,7 @@ Partial Class ADDSJoinDialog Me.DSDomainConfigHeader.Name = "DSDomainConfigHeader" Me.DSDomainConfigHeader.Size = New System.Drawing.Size(658, 23) Me.DSDomainConfigHeader.TabIndex = 0 - Me.DSDomainConfigHeader.Text = "Provide domain and authentication information" + Me.DSDomainConfigHeader.Text = LocalizationService.ForSection("Designer.DomainJoin")("Domain.Auth.Label") ' 'HeaderPanel ' @@ -708,8 +702,7 @@ Partial Class ADDSJoinDialog Me.DS7_Description.Name = "DS7_Description" Me.DS7_Description.Size = New System.Drawing.Size(643, 28) Me.DS7_Description.TabIndex = 1 - Me.DS7_Description.Text = "This wizard helps you set up your unattended answer file to make a device join a " & _ - "domain powered by Active Directory Domain Services (AD DS)." + Me.DS7_Description.Text = LocalizationService.ForSection("Designer.DomainJoin")("Wizard.Helps.Set.Description") ' 'PictureBox1 ' @@ -732,7 +725,7 @@ Partial Class ADDSJoinDialog Me.DS7_Header.Name = "DS7_Header" Me.DS7_Header.Size = New System.Drawing.Size(658, 23) Me.DS7_Header.TabIndex = 0 - Me.DS7_Header.Text = "Join an Active Directory domain" + Me.DS7_Header.Text = LocalizationService.ForSection("Designer.DomainJoin")("Join.Active.Dir.Label") ' 'FooterContainer ' @@ -763,7 +756,7 @@ Partial Class ADDSJoinDialog Me.DNS_Explanation_Link.Size = New System.Drawing.Size(71, 13) Me.DNS_Explanation_Link.TabIndex = 0 Me.DNS_Explanation_Link.TabStop = True - Me.DNS_Explanation_Link.Text = "What is DNS?" + Me.DNS_Explanation_Link.Text = LocalizationService.ForSection("Designer.DomainJoin")("WhatDNS.Link") ' 'TableLayoutPanel1 ' @@ -793,7 +786,7 @@ Partial Class ADDSJoinDialog Me.Back_Button.Name = "Back_Button" Me.Back_Button.Size = New System.Drawing.Size(64, 23) Me.Back_Button.TabIndex = 0 - Me.Back_Button.Text = "Back" + Me.Back_Button.Text = LocalizationService.ForSection("Designer.DomainJoin")("Back.Button") ' 'Next_Button ' @@ -804,7 +797,7 @@ Partial Class ADDSJoinDialog Me.Next_Button.Name = "Next_Button" Me.Next_Button.Size = New System.Drawing.Size(64, 23) Me.Next_Button.TabIndex = 1 - Me.Next_Button.Text = "Next" + Me.Next_Button.Text = LocalizationService.ForSection("Designer.DomainJoin")("Next.Button") ' 'Cancel_Button ' @@ -815,7 +808,7 @@ Partial Class ADDSJoinDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(64, 23) Me.Cancel_Button.TabIndex = 2 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.DomainJoin")("Cancel.Button") ' 'Help_Button ' @@ -826,7 +819,7 @@ Partial Class ADDSJoinDialog Me.Help_Button.Name = "Help_Button" Me.Help_Button.Size = New System.Drawing.Size(64, 23) Me.Help_Button.TabIndex = 3 - Me.Help_Button.Text = "Help" + Me.Help_Button.Text = LocalizationService.ForSection("Designer.DomainJoin")("Help.Button") ' 'ADDSInitBW ' @@ -847,13 +840,13 @@ Partial Class ADDSJoinDialog Me.DnsResolutionTSMI.Image = Global.DISMTools.My.Resources.Resources.search_light Me.DnsResolutionTSMI.Name = "DnsResolutionTSMI" Me.DnsResolutionTSMI.Size = New System.Drawing.Size(314, 22) - Me.DnsResolutionTSMI.Text = "Test DNS resolution" + Me.DnsResolutionTSMI.Text = LocalizationService.ForSection("Designer.DomainJoin")("Test.Dnsresolution.Label") ' 'DnsZoneTSMI ' Me.DnsZoneTSMI.Name = "DnsZoneTSMI" Me.DnsZoneTSMI.Size = New System.Drawing.Size(314, 22) - Me.DnsZoneTSMI.Text = "Choose DNS zone... (domain controllers only)" + Me.DnsZoneTSMI.Text = LocalizationService.ForSection("Designer.DomainJoin")("DNSZone.Domain.Choose.Label") ' 'ADDSJoinDialog ' @@ -871,7 +864,7 @@ Partial Class ADDSJoinDialog Me.ShowIcon = False Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Domain Services Wizard" + Me.Text = LocalizationService.ForSection("Designer.DomainJoin")("Domain.Services.Wizard.Label") Me.ExpressPanelContainer.ResumeLayout(False) Me.ExperimentalPanel.ResumeLayout(False) Me.StepsContainer.ResumeLayout(False) diff --git a/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.resx b/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.resx index 129d8c9e7..d51a9f6ab 100644 --- a/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.resx +++ b/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,11 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Contact your system administrator to provide authentication information used to join the domain. The account name specified here will be the initial account of the domain-joined system and it will pull initial group policies from the domain controller. - -To finish setting up target devices to join this domain, click Finish. - 17, 17 diff --git a/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.vb b/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.vb index fbc383eff..16cc3ccb4 100644 --- a/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.vb +++ b/Elements/AutoUnattend/ActiveDirectory/ADDSJoinDialog.vb @@ -1,4 +1,4 @@ -Imports System.Threading +Imports System.Threading Imports System.Net.NetworkInformation Imports Microsoft.VisualBasic.ControlChars Imports System.Text.RegularExpressions @@ -261,7 +261,7 @@ Public Class ADDSJoinDialog CurrentWizardPage = NewPage Back_Button.Enabled = Not (NewPage = WizardPage.DnsConfigPage) - Next_Button.Text = If(NewPage = WizardPage.DsConfigPage, "Finish", "Next") + Next_Button.Text = If(NewPage = WizardPage.DsConfigPage, LocalizationService.ForSection("ADDSJoinDialog.ChangePage")("Finish.Label"), LocalizationService.ForSection("ADDSJoinDialog.ChangePage")("Next.Button")) DNS_Explanation_Link.Visible = (NewPage = WizardPage.DnsConfigPage) End Sub @@ -272,44 +272,43 @@ Public Class ADDSJoinDialog Select Case page Case WizardPage.DnsConfigPage If TextBox1.Text = "" Then - MsgBox("A primary domain suffix must be provided for DNS", vbOKOnly + vbCritical) + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("PrimarySuffix.Required"), vbOKOnly + vbCritical) Return False End If If dnsAliasName = "" Then - MsgBox("An interface alias must be provided for DNS. These are the names of the network adapters installed on your system", vbOKOnly + vbCritical) + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("InterfaceAlias.Message"), vbOKOnly + vbCritical) Return False End If If RichTextBox1.Text = "" Then - MsgBox("No DNS server addresses have been provided", vbOKOnly + vbCritical) + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("No.DNSServer.None.Label"), vbOKOnly + vbCritical) Return False End If Case WizardPage.DsConfigPage If TextBox4.Text = "" Then - MsgBox("A domain name must be specified", vbOKOnly + vbCritical) + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("DomainName.Label"), vbOKOnly + vbCritical) Return False End If If initialUserName = "" Then - MsgBox("A user name must be specified", vbOKOnly + vbCritical) + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("User.Name.Label"), vbOKOnly + vbCritical) Return False End If If TextBox6.Text = "" Then Try If DomainServicesModule.DSAccountRequiresPassword(dsDomainName, initialUserName) Then - MsgBox(String.Format("A password for the specified user, {0}{1}{0}, must be specified as per security policies imposed by the domain controller.", Quote, initialUserName), vbOKOnly + vbCritical) + MsgBox(LocalizationService.ForSection("DomainJoin.Messages").Format("Password.User.Message", initialUserName), vbOKOnly + vbCritical) Return False End If Catch ex As Exception - MsgBox(String.Format("A password for the specified user, {0}{1}{0}, must be specified as per security policies imposed by the domain controller.", Quote, initialUserName), vbOKOnly + vbCritical) + MsgBox(LocalizationService.ForSection("DomainJoin.Messages").Format("Password.User.Message", initialUserName), vbOKOnly + vbCritical) Return False End Try End If If dsIsInDomain AndAlso Not DomainServicesModule.DSAccountExists(dsDomainName, initialUserName) Then - If MsgBox(String.Format("The specified user, {1}, does not appear to exist in the provided domain. You may not be able to sign in with this user unless you create it first.{0}{0}" & - "Do you want to continue?", Environment.NewLine, initialUserName), vbYesNo + vbExclamation, Text) = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("DomainJoin.Messages").Format("User.Appear.Exist.Message", initialUserName), vbYesNo + vbExclamation, Text) = MsgBoxResult.No Then Return False End If End If - Return MsgBox("Please verify the information that you typed. If you incorrectly typed a field, the client device may not join the domain." & CrLf & CrLf & "The client device will also not join the domain if it will run home editions of Windows." & CrLf & CrLf & "Are you sure that these settings are correct?", vbYesNo + vbQuestion, "Verify Settings") = MsgBoxResult.Yes + Return MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("Verify.Typed.Message"), vbYesNo + vbQuestion, LocalizationService.ForSection("DomainJoin.Messages")("VerifySettings.Title")) = MsgBoxResult.Yes End Select Return True End Function @@ -327,11 +326,11 @@ Public Class ADDSJoinDialog dsInfo = New DomainInformation(TextBox4.Text, initialUserName, TextBox6.Text) End If If ApplyDsSettings() Then - MsgBox("Domain settings were added successfully to the answer file. You can further modify these components in the System components section.") + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("Domain.Settings.Message")) SetDefaultSettings() Close() Else - MsgBox("Could not add domain settings.") + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("Add.Domain.Settings.Label")) End If Else ChangePage(CurrentWizardPage + 1) @@ -409,8 +408,7 @@ Public Class ADDSJoinDialog End Sub Private Sub DNS_Explanation_Link_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles DNS_Explanation_Link.LinkClicked - MsgBox("DNS (short for Domain Name System) is a server role that automatically translates IP addresses to human-readable names." & CrLf & CrLf & - "When you use this wizard, DISMTools assumes that either you or your system administrator have set up DNS on your network. If not, cancel this wizard and set it up.", + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("Dnsshort.DomainName.Message"), vbOKOnly + vbInformation) End Sub @@ -472,7 +470,7 @@ Public Class ADDSJoinDialog LinkLocalIPv6Addresses += 1 ElseIf Regex.IsMatch(dnsAddress, "^fec.*") Then ' Site-Local pattern. Invalid address in the program's perspective, and as per RFC 3879: https://datatracker.ietf.org/doc/html/rfc3879 DynaLog.LogMessage("Address Type: Site-Local. For compatibility reasons, it will be treated as invalid") - InvalidAddressList.Add(String.Format("- {0} -- Site-Local Address; it is no longer in use", dnsAddress)) + InvalidAddressList.Add(LocalizationService.ForSection("DomainJoin.DNS").Format("Site.Local.Address.Label", dnsAddress)) InvalidAddresses += 1 ElseIf Regex.IsMatch(dnsAddress, "^f(c|d).*") Then ' Unique Local address pattern. It's our Site-Local replacement as per RFC 4193: https://datatracker.ietf.org/doc/html/rfc4193 ' It can be either fc or fd depending on whether the prefix is locally assigned @@ -485,7 +483,7 @@ Public Class ADDSJoinDialog Else DynaLog.LogMessage("This is an unrecognized address") InvalidAddresses += 1 - InvalidAddressList.Add(String.Format("- {0} -- Malformed Address", dnsAddress)) + InvalidAddressList.Add(LocalizationService.ForSection("DomainJoin.DNS").Format("MalformedAddress.Label", dnsAddress)) End If current += 1 Next @@ -493,26 +491,11 @@ Public Class ADDSJoinDialog ValidToInvalidAddressRatio = Math.Round(((IPv4Addresses + GlobalIPv6Addresses + LinkLocalIPv6Addresses + UniqueLocalIPv6Addresses) / total) * 100, 2) ' Now let's report our info to the user - dnsAddressValidationInfo = String.Format("Address Syntax Validation Results:" & CrLf & - "- Invalid Addresses: {0}" & CrLf & - "- IPv4 Addresses: {1}" & CrLf & - "- Global IPv6 Addresses: {2}" & CrLf & - "- Link-Local IPv6 Addresses: {3}" & CrLf & - "- Unique Local IPv6 Addresses: {4}" & CrLf & CrLf & - "- Valid/Invalid Address Ratio: {5}%" & CrLf & - "{6}" & CrLf & - "These addresses will be configured in the unattended answer file.", - InvalidAddresses, - IPv4Addresses, - GlobalIPv6Addresses, - LinkLocalIPv6Addresses, - UniqueLocalIPv6Addresses, - ValidToInvalidAddressRatio, - If(InvalidAddresses > 0, - CrLf & "Some addresses are invalid. Here's why: " & CrLf & CrLf & String.Join(CrLf, InvalidAddressList) & CrLf, + dnsAddressValidationInfo = LocalizationService.ForSection("DomainJoin.DNS").Format("AddressSyntax.Message", InvalidAddresses, IPv4Addresses, GlobalIPv6Addresses, LinkLocalIPv6Addresses, UniqueLocalIPv6Addresses, ValidToInvalidAddressRatio, If(InvalidAddresses > 0, + LocalizationService.ForSection("DomainJoin.DNS").Format("InvalidAddresses.Label", String.Join(CrLf, InvalidAddressList)), "")) - Throw New Exception("The verification has finished." & CrLf & CrLf & dnsAddressValidationInfo) + Throw New Exception(LocalizationService.ForSection("DomainJoin.DNS").Format("Verification.Done.Message", dnsAddressValidationInfo)) End Sub Private Sub DnsValidatorBW_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles DnsValidatorBW.ProgressChanged @@ -523,9 +506,9 @@ Public Class ADDSJoinDialog ProgressReporter.Hide() If e.Error IsNot Nothing Then MessageBox.Show(e.Error.Message, - "DNS Address Validation Results", + LocalizationService.ForSection("DomainJoin.DNS")("AddressValidation.Title"), MessageBoxButtons.OK, - If(e.Error.Message.StartsWith("The verification has finished."), MessageBoxIcon.Information, MessageBoxIcon.Error)) + If(e.Error.Message.StartsWith(LocalizationService.ForSection("DomainJoin.DNS")("Verification.Done.Label")), MessageBoxIcon.Information, MessageBoxIcon.Error)) End If DnsSyntaxCheckerBtn.Enabled = True End Sub @@ -564,7 +547,7 @@ Public Class ADDSJoinDialog initialUserName = referenceUser.SamAccountName If Not DomainServicesModule.DSAccountIsEnabled(dsDomainName, referenceUser.SamAccountName) Then - MsgBox("The selected user is not enabled in the domain. The user will not be able to sign into target devices unless it's re-enabled.", vbOKOnly + vbExclamation, "Account Disabled") + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("UserDisabled.Message"), vbOKOnly + vbExclamation, LocalizationService.ForSection("DomainJoin.Messages")("AccountDisabled.Title")) End If End Sub @@ -574,7 +557,7 @@ Public Class ADDSJoinDialog Private Sub DsAccountObjectPickerBtn_Click(sender As Object, e As EventArgs) Handles DsAccountObjectPickerBtn.Click If Not dsIsInDomain Then - MessageBox.Show("This computer does not belong to a domain.", Text, MessageBoxButtons.OK, MessageBoxIcon.Stop) + MessageBox.Show(LocalizationService.ForSection("DomainJoin.Messages")("Computer.Belong.Domain.Label"), Text, MessageBoxButtons.OK, MessageBoxIcon.Stop) Exit Sub End If Dim dsaPicker As New DirectoryObjectPickerDialog() With { @@ -635,7 +618,7 @@ Public Class ADDSJoinDialog Private Sub DnsResolutionTSMI_Click(sender As Object, e As EventArgs) Handles DnsResolutionTSMI.Click If String.IsNullOrEmpty(TextBox1.Text) OrElse String.IsNullOrWhiteSpace(TextBox1.Text) Then - MsgBox("Please provide a domain for which to test domain name resolution.", vbOKOnly + vbExclamation, Text) + MsgBox(LocalizationService.ForSection("DomainJoin.Messages")("Provide.Domain.Label"), vbOKOnly + vbExclamation, Text) Exit Sub End If @@ -665,7 +648,7 @@ Public Class ADDSJoinDialog nslookupOut = nslookupProc.StandardOutput.ReadToEnd() & nslookupProc.StandardError.ReadToEnd() nslookupProc.WaitForExit() Cursor = Cursors.Arrow - MsgBox(String.Format("NSLOOKUP output:{0}{0}{1}", Environment.NewLine, nslookupOut), vbOKOnly + vbInformation, "Domain name resolution results") + MsgBox(LocalizationService.ForSection("DomainJoin.Messages").Format("Nslookupoutput.Label", nslookupOut), vbOKOnly + vbInformation, LocalizationService.ForSection("DomainJoin.Messages")("DomainResolution.Title")) End Sub Private Sub DnsZoneTSMI_Click(sender As Object, e As EventArgs) Handles DnsZoneTSMI.Click diff --git a/Elements/AutoUnattend/ActiveDirectory/DnsZoneChooserDialog.Designer.vb b/Elements/AutoUnattend/ActiveDirectory/DnsZoneChooserDialog.Designer.vb index a85ce5e85..5de1403db 100644 --- a/Elements/AutoUnattend/ActiveDirectory/DnsZoneChooserDialog.Designer.vb +++ b/Elements/AutoUnattend/ActiveDirectory/DnsZoneChooserDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class DnsZoneChooserDialog Inherits System.Windows.Forms.Form @@ -59,7 +59,7 @@ Partial Class DnsZoneChooserDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.DNSZones")("Ok.Button") ' 'Cancel_Button ' @@ -70,7 +70,7 @@ Partial Class DnsZoneChooserDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.DNSZones")("CancelButton.Button") ' 'Label1 ' @@ -79,8 +79,7 @@ Partial Class DnsZoneChooserDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(551, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "This server offers the following DNS zones you can choose from. Pick a DNS zone f" & _ - "rom the list below and click OK:" + Me.Label1.Text = LocalizationService.ForSection("Designer.DNSZones")("OfferedZones.Message") ' 'ListView1 ' @@ -98,22 +97,22 @@ Partial Class DnsZoneChooserDialog ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Zone Name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.DNSZones")("ZoneName.Column") Me.ColumnHeader1.Width = 168 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "DNS Server Name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.DNSZones")("DnsserverName.Column") Me.ColumnHeader2.Width = 192 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Integrated with Domain Services?" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.DNSZones")("DomainServices.Column") Me.ColumnHeader3.Width = 180 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Zone Type" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.DNSZones")("ZoneType.Column") Me.ColumnHeader4.Width = 192 ' 'Refresh_Button @@ -124,7 +123,7 @@ Partial Class DnsZoneChooserDialog Me.Refresh_Button.Name = "Refresh_Button" Me.Refresh_Button.Size = New System.Drawing.Size(75, 23) Me.Refresh_Button.TabIndex = 3 - Me.Refresh_Button.Text = "Refresh" + Me.Refresh_Button.Text = LocalizationService.ForSection("Designer.DNSZones")("Refresh.Button") Me.Refresh_Button.UseVisualStyleBackColor = True ' 'DnsZoneChooserDialog @@ -145,7 +144,7 @@ Partial Class DnsZoneChooserDialog Me.Name = "DnsZoneChooserDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Choose DNS Zone" + Me.Text = LocalizationService.ForSection("Designer.DNSZones")("DNSZone.Choose.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Elements/AutoUnattend/ActiveDirectory/DnsZoneChooserDialog.vb b/Elements/AutoUnattend/ActiveDirectory/DnsZoneChooserDialog.vb index 7dc7cdade..3542673ea 100644 --- a/Elements/AutoUnattend/ActiveDirectory/DnsZoneChooserDialog.vb +++ b/Elements/AutoUnattend/ActiveDirectory/DnsZoneChooserDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class DnsZoneChooserDialog @@ -6,11 +6,11 @@ Public Class DnsZoneChooserDialog Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click If SelectedDnsZone = "" Then - MessageBox.Show("Please select a DNS zone and try again.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("ActiveDirectory.DnsZone")("SelectZone.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If If IsDnsZoneShutdown(SelectedDnsZone) Then - MessageBox.Show("The selected DNS zone is no longer active because of either an expiration or a shut down. Choose another zone and try again.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("ActiveDirectory.DnsZone")("Selected.Too.Long.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If Me.DialogResult = System.Windows.Forms.DialogResult.OK @@ -75,7 +75,7 @@ Public Class DnsZoneChooserDialog String.Format("{0} ({1} Lookup)", GetDnsZoneTypeString(DnsZoneProperties("ZoneType")), If(DnsZoneProperties("Reverse"), "Reverse", "Forward"))})) Next Else - MessageBox.Show("DNS zones could not be obtained.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("ActiveDirectory.DnsZone")("ZonesLoaded.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Error) Close() End If End Sub diff --git a/Elements/Contemporaneus/ImageAppxPackage.vb b/Elements/Contemporaneus/ImageAppxPackage.vb index 71711b826..b5ba53c95 100644 --- a/Elements/Contemporaneus/ImageAppxPackage.vb +++ b/Elements/Contemporaneus/ImageAppxPackage.vb @@ -1,4 +1,4 @@ -Imports Microsoft.Dism +Imports Microsoft.Dism Imports System.IO Namespace Elements.Contemporaneus @@ -31,63 +31,12 @@ Namespace Elements.Contemporaneus Return isRegistered End Function - Public Function GetLocalizedRegistrationStatus(MountDirectory As String, LangCode As Integer) As String - Dim registrationString As String = "" - + Public Function GetLocalizedRegistrationStatus(MountDirectory As String) As String If IsPackageRegistered(MountDirectory) Then - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - registrationString = "Yes" - Case "ESN" - registrationString = "Sí" - Case "FRA" - registrationString = "Oui" - Case "PTB", "PTG" - registrationString = "Sim" - Case "ITA" - registrationString = "Sì" - End Select - Case 1 - registrationString = "Yes" - Case 2 - registrationString = "Sí" - Case 3 - registrationString = "Oui" - Case 4 - registrationString = "Sim" - Case 5 - registrationString = "Sì" - End Select - Else - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - registrationString = "No" - Case "ESN" - registrationString = "No" - Case "FRA" - registrationString = "Non" - Case "PTB", "PTG" - registrationString = "Não" - Case "ITA" - registrationString = "No" - End Select - Case 1 - registrationString = "No" - Case 2 - registrationString = "No" - Case 3 - registrationString = "Non" - Case 4 - registrationString = "Não" - Case 5 - registrationString = "No" - End Select + Return LocalizationService.ForSection("ImageAppxPackage.RegStatus")("Yes.Button") End If - Return registrationString + + Return LocalizationService.ForSection("ImageAppxPackage.RegStatus")("No.Button") End Function End Class diff --git a/Elements/Contemporaneus/ImageDriver.vb b/Elements/Contemporaneus/ImageDriver.vb index 1c6e1eb7a..21e337220 100644 --- a/Elements/Contemporaneus/ImageDriver.vb +++ b/Elements/Contemporaneus/ImageDriver.vb @@ -21,68 +21,14 @@ End Sub ''' - ''' Gets a localized string displaying mount mode + ''' Gets the driver inbox state in the current application language. ''' - ''' The language code. 0 to automatically detect from system languages; 1-5 for independent languages - ''' The localized string - Public Function DriverInboxToString(LangCode As Integer) As String - Dim driverInboxString As String = "" - + Public Function DriverInboxToString() As String If DriverInbox Then - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - driverInboxString = "Yes" - Case "ESN" - driverInboxString = "Sí" - Case "FRA" - driverInboxString = "Oui" - Case "PTB", "PTG" - driverInboxString = "Sim" - Case "ITA" - driverInboxString = "Sì" - End Select - Case 1 - driverInboxString = "Yes" - Case 2 - driverInboxString = "Sí" - Case 3 - driverInboxString = "Oui" - Case 4 - driverInboxString = "Sim" - Case 5 - driverInboxString = "Sì" - End Select - Else - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - driverInboxString = "No" - Case "ESN" - driverInboxString = "No" - Case "FRA" - driverInboxString = "Non" - Case "PTB", "PTG" - driverInboxString = "Não" - Case "ITA" - driverInboxString = "No" - End Select - Case 1 - driverInboxString = "No" - Case 2 - driverInboxString = "No" - Case 3 - driverInboxString = "Non" - Case 4 - driverInboxString = "Não" - Case 5 - driverInboxString = "No" - End Select + Return LocalizationService.ForSection("ImageDriver.DriverInbox")("Yes.Button") End If - Return driverInboxString + Return LocalizationService.ForSection("ImageDriver.DriverInbox")("No.Button") End Function End Class diff --git a/Elements/Contemporaneus/WindowsImage.vb b/Elements/Contemporaneus/WindowsImage.vb index 542ed19ca..f7eb0926a 100644 --- a/Elements/Contemporaneus/WindowsImage.vb +++ b/Elements/Contemporaneus/WindowsImage.vb @@ -404,159 +404,33 @@ Namespace Elements.Contemporaneus ''' ''' Gets a localized string displaying mount status ''' - ''' The language code. 0 to automatically detect from system languages; 1-5 for independent languages ''' The localized string - Public Function MountStatusToString(LangCode As Integer) As String - Dim mountStatusString As String = "" - + Public Function MountStatusToString() As String Select Case ImageMountStatus Case DismMountStatus.Ok - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - mountStatusString = "OK" - Case "ESN" - mountStatusString = "Correcto" - Case "FRA" - mountStatusString = "OK" - Case "PTB", "PTG" - mountStatusString = "OK" - Case "ITA" - mountStatusString = "OK" - End Select - Case 1 - mountStatusString = "OK" - Case 2 - mountStatusString = "Correcto" - Case 3 - mountStatusString = "OK" - Case 4 - mountStatusString = "OK" - Case 5 - mountStatusString = "OK" - End Select + Return LocalizationService.ForSection("WindowsImage.MountStatus")("Ok.Button") Case DismMountStatus.NeedsRemount - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - mountStatusString = "Needs Remount" - Case "ESN" - mountStatusString = "Necesita recarga" - Case "FRA" - mountStatusString = "Nécessite un remontage" - Case "PTB", "PTG" - mountStatusString = "Necessita de remontagem" - Case "ITA" - mountStatusString = "Necessità di rimontaggio" - End Select - Case 1 - mountStatusString = "Needs Remount" - Case 2 - mountStatusString = "Necesita recarga" - Case 3 - mountStatusString = "Nécessite un remontage" - Case 4 - mountStatusString = "Necessita de remontagem" - Case 5 - mountStatusString = "Necessità di rimontaggio" - End Select + Return LocalizationService.ForSection("WindowsImage.MountStatus")("NeedsRemount.Label") Case DismMountStatus.Invalid - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - mountStatusString = "Invalid" - Case "ESN" - mountStatusString = "Inválido" - Case "FRA" - mountStatusString = "Invalide" - Case "PTB", "PTG" - mountStatusString = "Inválido" - Case "ITA" - mountStatusString = "Non valido" - End Select - Case 1 - mountStatusString = "Invalid" - Case 2 - mountStatusString = "Inválido" - Case 3 - mountStatusString = "Invalide" - Case 4 - mountStatusString = "Inválido" - Case 5 - mountStatusString = "Non valido" - End Select + Return LocalizationService.ForSection("WindowsImage.MountStatus")("Invalid.Label") End Select - Return mountStatusString + Return "" End Function ''' ''' Gets a localized string displaying mount mode ''' - ''' The language code. 0 to automatically detect from system languages; 1-5 for independent languages ''' The localized string - Public Function MountModeToString(LangCode As Integer) As String - Dim mountModeString As String = "" - + Public Function MountModeToString() As String Select Case ImageMountMode Case DismMountMode.ReadWrite - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - mountModeString = "Yes" - Case "ESN" - mountModeString = "Sí" - Case "FRA" - mountModeString = "Oui" - Case "PTB", "PTG" - mountModeString = "Sim" - Case "ITA" - mountModeString = "Sì" - End Select - Case 1 - mountModeString = "Yes" - Case 2 - mountModeString = "Sí" - Case 3 - mountModeString = "Oui" - Case 4 - mountModeString = "Sim" - Case 5 - mountModeString = "Sì" - End Select + Return LocalizationService.ForSection("WindowsImage.MountMode")("Yes.Button") Case DismMountMode.ReadOnly - Select Case LangCode - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - mountModeString = "No" - Case "ESN" - mountModeString = "No" - Case "FRA" - mountModeString = "Non" - Case "PTB", "PTG" - mountModeString = "Não" - Case "ITA" - mountModeString = "No" - End Select - Case 1 - mountModeString = "No" - Case 2 - mountModeString = "No" - Case 3 - mountModeString = "Non" - Case 4 - mountModeString = "Não" - Case 5 - mountModeString = "No" - End Select + Return LocalizationService.ForSection("WindowsImage.MountMode")("No.Button") End Select - Return mountModeString + Return "" End Function ''' diff --git a/Elements/EnvVarManagement/EnvironmentVariableHelper.vb b/Elements/EnvVarManagement/EnvironmentVariableHelper.vb index 2875efa20..9636cdbf6 100644 --- a/Elements/EnvVarManagement/EnvironmentVariableHelper.vb +++ b/Elements/EnvVarManagement/EnvironmentVariableHelper.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports Microsoft.Win32 Imports Microsoft.VisualBasic.ControlChars @@ -102,9 +102,7 @@ Module EnvironmentVariableHelper If RegistryHelper.LoadRegistryHive(Path.Combine(MountPath, "Windows", "system32", "config", "SYSTEM"), "HKLM\zSYSTEM") = 0 Then ' Back up current system env vars If Not ExportCurrentEnvVarInformation(True) Then - If MsgBox("Current environment variable information for the system scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk." & CrLf & CrLf & - "Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself." & CrLf & CrLf & - "Do you want to continue without backing up current variable information?", vbYesNo + vbExclamation, "Environment variable information could not be backed up") = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("EnvVars.Helper")("CurrentInfo.Message"), vbYesNo + vbExclamation, LocalizationService.ForSection("EnvVars.Helper")("BackupSaved.Title")) = MsgBoxResult.No Then Return False End If End If @@ -138,9 +136,7 @@ Module EnvironmentVariableHelper If RegistryHelper.LoadRegistryHive(Path.Combine(MountPath, "Users", "Default", "NTUSER.DAT"), "HKLM\zDEFAULT") = 0 Then ' Back up current user env vars If Not ExportCurrentEnvVarInformation(False) Then - If MsgBox("Current environment variable information for the user scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk." & CrLf & CrLf & - "Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself." & CrLf & CrLf & - "Do you want to continue without backing up current variable information?", vbYesNo + vbExclamation, "Environment variable information could not be backed up") = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("EnvVars.Helper")("UserBackup.Message"), vbYesNo + vbExclamation, LocalizationService.ForSection("EnvVars.Helper")("BackupSaved.Title")) = MsgBoxResult.No Then Return False End If End If diff --git a/Elements/ServiceManagement/WindowsServiceHelper.vb b/Elements/ServiceManagement/WindowsServiceHelper.vb index b7c75c854..b86853d34 100644 --- a/Elements/ServiceManagement/WindowsServiceHelper.vb +++ b/Elements/ServiceManagement/WindowsServiceHelper.vb @@ -1,4 +1,4 @@ -Imports Microsoft.VisualBasic.ControlChars +Imports Microsoft.VisualBasic.ControlChars Imports System.IO Imports Microsoft.Win32 Imports System.Runtime.InteropServices @@ -661,9 +661,7 @@ Module WindowsServiceHelper If Not ExportCurrentServiceInformation() Then ' Current service information could not be backed up. We'll ask the user ' if we can continue or not given the backup. - If MsgBox("Current service information could not be backed up. Backups are used in case of a mistake during service management. You may continue, but at your own risk." & CrLf & CrLf & - "The target image may not work correctly or at all after configuration, and you will not be able to recover it using previous service configuration, unless you had previously backed it up by yourself." & CrLf & CrLf & - "Do you want to continue without backing up current service information?", vbYesNo + vbExclamation, "Service information could not be backed up") = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("WindowsServices.Helper")("Service.Backed.Message"), vbYesNo + vbExclamation, LocalizationService.ForSection("WindowsServices.Helper")("Service.Backed.Up.Title")) = MsgBoxResult.No Then Return False End If End If diff --git a/Help/QuickHelpModule.vb b/Help/QuickHelpModule.vb index ff1467d96..e47593481 100644 --- a/Help/QuickHelpModule.vb +++ b/Help/QuickHelpModule.vb @@ -1,7 +1,7 @@ Module QuickHelpModule Public Sub ShowQuickHelp(QuickHelpMessage As String) - MessageBox.Show(QuickHelpMessage, "Quick Help", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(QuickHelpMessage, LocalizationService.ForSection("Help.QuickHelp")("QuickHelp.Message"), MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub End Module diff --git a/Helpers/extps1/PE_Helper/PE_Helper.ps1 b/Helpers/extps1/PE_Helper/PE_Helper.ps1 index 541969d60..699967801 100644 --- a/Helpers/extps1/PE_Helper/PE_Helper.ps1 +++ b/Helpers/extps1/PE_Helper/PE_Helper.ps1 @@ -39,6 +39,8 @@ param ( [Parameter(ParameterSetName = 'StartPEGen', Position = 6)] [switch]$bootex, [Parameter(ParameterSetName = 'StartPEGen', Position = 7)] [switch]$includeSysDrivers, [Parameter(ParameterSetName = 'StartPEGen', Position = 8)] [string]$scratchPath = "", + [Parameter(ParameterSetName = 'StartPEGen', Position = 9)] [string]$languageCode = "en-US", + [Parameter(ParameterSetName = 'StartPEGen', Position = 10)] [string]$languageFile = "", [Parameter(ParameterSetName = 'StartDevelopment', Mandatory = $true, Position = 1)] [string]$testArch, [Parameter(ParameterSetName = 'StartDevelopment', Mandatory = $true, Position = 2)] [string]$targetPath ) @@ -87,6 +89,120 @@ if (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]: exit 1 } +function Export-PEHelperLocalization { + param ( + [Parameter(Mandatory = $true)] [string]$SourceFile, + [Parameter(Mandatory = $true)] [string]$DestinationDirectory, + [Parameter(Mandatory = $true)] [string]$CultureCode + ) + + if ([string]::IsNullOrWhiteSpace($SourceFile)) { + $currentDirectory = Get-Item -LiteralPath (Get-Location).Path + for ($depth = 0; $depth -le 8 -and $null -ne $currentDirectory; $depth++) { + $candidateDirectory = Join-Path $currentDirectory.FullName 'language' + if (Test-Path -LiteralPath $candidateDirectory -PathType Container) { + foreach ($candidateFile in Get-ChildItem -LiteralPath $candidateDirectory -Filter '*.ini' -File) { + $candidateLines = Get-Content -LiteralPath $candidateFile.FullName -Encoding UTF8 + $inMetadata = $false + foreach ($candidateLine in $candidateLines) { + $candidateText = $candidateLine.Trim() + if ($candidateText.StartsWith('[') -and $candidateText.EndsWith(']')) { + $inMetadata = $candidateText.Equals('[LanguageFileInformation]', [System.StringComparison]::OrdinalIgnoreCase) + continue + } + if ($inMetadata -and $candidateText.StartsWith('LanguageCode=', [System.StringComparison]::OrdinalIgnoreCase)) { + $candidateCode = $candidateText.Substring($candidateText.IndexOf('=') + 1).Trim().Trim('"') + if ($candidateCode.Equals($CultureCode, [System.StringComparison]::OrdinalIgnoreCase)) { + $SourceFile = $candidateFile.FullName + break + } + } + } + if (-not [string]::IsNullOrWhiteSpace($SourceFile)) { break } + } + } + if (-not [string]::IsNullOrWhiteSpace($SourceFile)) { break } + $currentDirectory = $currentDirectory.Parent + } + } + + if (-not (Test-Path -LiteralPath $SourceFile -PathType Leaf)) { + throw "The selected localization file does not exist for language '$CultureCode': $SourceFile" + } + + # Only strings read by autorun.exe are exported to the Windows installation ISO. + # The complete DISMTools language file is never copied into the image. + $requiredKeys = [ordered]@{ + 'PEHelper.Designer.Main' = @('Back.Button', 'Copy.Boot.Image.Link', 'Copy.Install.Image.Link', 'DISM.Tools.PE.Label', 'Exit.Button', 'Explore.Contents.Disc.Link', 'Install.Operating.Link', 'PE.Helper.Message', 'Prepare.System.Image.Link', 'Restart.Install.Media.Link', 'StartPXE.Label', 'StartPXE.Link', 'StartPXE.PXE.Windows.Link', 'StartPXE.PXEFOG.Link', 'WhatWant.Label') + 'PEHelper.Designer.ServerPort' = @('Cancel.Button', 'Check.Button', 'Components.Disc.Rely.Message', 'Default.Button', 'Ok.Button', 'Port.Server.Label', 'ServerComponents.Label') + 'PEHelper.Designer.Sysprep' = @('AutomaticMode.Link', 'Cancel.Link', 'CaptureImage.CheckBox', 'CopyRegistry.CheckBox', 'ManualMode.Link', 'PrepareCapture.Label', 'Responsibility.Message') + 'PEHelper.Designer.WDSArch' = @('Architecture.Label', 'Architecture.Label.Label', 'CancelButton.Button', 'Okbutton.Button') + 'PEHelper.Designer.WDSGroup' = @('Action.Choose.Label', 'Already.Exists.Label', 'Cancel.Button', 'CreateGroup.RadioButton', 'Ok.Button', 'Refresh.Button', 'SpecifyGroup.Button', 'Upload.RadioButton') + 'PEHelper.Main' = @('Back.Button', 'Copy.Boot.Image.Link', 'Exit.Button', 'Explore.Contents.Disc.Link', 'Install.Operating.Link', 'Prepare.System.Image.Link', 'Restart.Install.Media.Link', 'StartServer.Fog.Link', 'StartServer.Label', 'StartServer.Network.Link', 'StartServer.Wds.Link', 'WhatWant.Label') + 'PEHelper.Restart' = @('Warning.Message') + 'PEHelper.Process' = @('ExitCode.Message') + 'PEHelper.PXE' = @('ChangePort.Tooltip') + 'PEHelper.ServerPort' = @('Already.Message', 'InvalidPort.Message') + 'PEHelper.WDSImageGroup' = @('Action.Choose.Label', 'Already.Exists.Label', 'Cancel.Button', 'CreateFailed.Message', 'CreateGroup.RadioButton', 'LoadFailed.Message', 'Ok.Button', 'Refresh.Button', 'SpecifyGroup.Button', 'Upload.RadioButton') + 'PEHelper.Sysprep' = @('AutomaticMode.Link', 'Cancel.Link', 'CaptureImage.CheckBox', 'CopyRegistry.CheckBox', 'ManualMode.Link', 'Responsibility.Message') + } + + $sourceLines = Get-Content -LiteralPath $SourceFile -Encoding UTF8 + $metadataLines = New-Object System.Collections.Generic.List[string] + $sourceValues = @{} + $currentSection = '' + + foreach ($sourceLine in $sourceLines) { + $trimmedLine = $sourceLine.Trim() + if ($trimmedLine.StartsWith('[') -and $trimmedLine.EndsWith(']')) { + $currentSection = $trimmedLine.Substring(1, $trimmedLine.Length - 2).Trim() + continue + } + if ([string]::IsNullOrWhiteSpace($trimmedLine) -or $trimmedLine.StartsWith(';') -or $trimmedLine.StartsWith('#')) { continue } + $equalsIndex = $sourceLine.IndexOf('=') + if ($equalsIndex -le 0) { continue } + + $keyName = $sourceLine.Substring(0, $equalsIndex).Trim() + if ($currentSection.Equals('LanguageFileInformation', [System.StringComparison]::OrdinalIgnoreCase)) { + $metadataLines.Add($sourceLine) + } + $lookupKey = $currentSection + [char]0 + $keyName + $sourceValues[$lookupKey] = $sourceLine + } + + $metadataLookupKey = 'LanguageFileInformation' + [char]0 + 'LanguageCode' + if (-not $sourceValues.ContainsKey($metadataLookupKey)) { + throw "The localization file has no LanguageCode metadata: $SourceFile" + } + $metadataLine = [string]$sourceValues[$metadataLookupKey] + $metadataCode = $metadataLine.Substring($metadataLine.IndexOf('=') + 1).Trim().Trim('"') + if (-not $metadataCode.Equals($CultureCode, [System.StringComparison]::OrdinalIgnoreCase)) { + throw "The requested language '$CultureCode' does not match LanguageCode '$metadataCode' in $SourceFile" + } + + $outputLines = New-Object System.Collections.Generic.List[string] + $outputLines.Add('[LanguageFileInformation]') + foreach ($metadataEntry in $metadataLines) { $outputLines.Add($metadataEntry) } + + foreach ($sectionEntry in $requiredKeys.GetEnumerator()) { + $outputLines.Add('') + $outputLines.Add('[' + $sectionEntry.Key + ']') + foreach ($requiredKey in $sectionEntry.Value) { + $lookupKey = [string]$sectionEntry.Key + [char]0 + [string]$requiredKey + if (-not $sourceValues.ContainsKey($lookupKey)) { + throw "The localization file is missing the PE Helper key [$($sectionEntry.Key)] $requiredKey" + } + $outputLines.Add([string]$sourceValues[$lookupKey]) + } + } + + New-Item -Path $DestinationDirectory -ItemType Directory -Force | Out-Null + $safeCultureCode = $metadataCode -replace '[^A-Za-z0-9._-]', '_' + $destinationFile = Join-Path $DestinationDirectory ($safeCultureCode + '.ini') + $outputLines | Set-Content -LiteralPath $destinationFile -Encoding UTF8 -Force + Write-Host "PE Helper localization exported: $destinationFile" +} + function Get-KitsRoot { param ( [Parameter(Mandatory = $true, Position = 0)] [bool]$wow64environment @@ -333,6 +449,7 @@ function Start-PEGeneration if (Test-Path -Path "$((Get-Location).Path)\tools\MainMenu") { Write-Host "The main menu has been detected. Adding to ISO file..." Copy-Item -Path "$((Get-Location).Path)\tools\MainMenu\*.*" -Destination "$((Get-Location).Path)\ISOTEMP\media" -Force -Recurse -Verbose + Export-PEHelperLocalization -SourceFile $languageFile -DestinationDirectory "$((Get-Location).Path)\ISOTEMP\media\language" -CultureCode $languageCode $autorunContents = @' [autorun] diff --git a/Helpers/extps1/PE_Helper/files/HotInstall.zip b/Helpers/extps1/PE_Helper/files/HotInstall.zip index 3d5b93eff..771685901 100644 Binary files a/Helpers/extps1/PE_Helper/files/HotInstall.zip and b/Helpers/extps1/PE_Helper/files/HotInstall.zip differ diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/DSC/DiskSpaceChecker.Designer.vb b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/DSC/DiskSpaceChecker.Designer.vb index e1e812d65..6bc23480a 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/DSC/DiskSpaceChecker.Designer.vb +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/DSC/DiskSpaceChecker.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class DiskSpaceChecker Inherits System.Windows.Forms.Form @@ -37,8 +37,7 @@ Partial Class DiskSpaceChecker Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(599, 36) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Please wait while the installer checks the size of disc image files and the capac" & _ - "ity of the drives in your computer. This can take some time." + Me.Label1.Text = GetValueFromLanguageData("DiskSpaceChecker.WndDesc") ' 'Label2 ' @@ -49,7 +48,7 @@ Partial Class DiskSpaceChecker Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(55, 15) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Progress:" + Me.Label2.Text = GetValueFromLanguageData("DiskSpaceChecker.DSC_GenericProgress") ' 'ProgressBar1 ' @@ -79,7 +78,7 @@ Partial Class DiskSpaceChecker Me.ShowIcon = False Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Disk Space Checker" + Me.Text = GetValueFromLanguageData("DiskSpaceChecker.WndTitle") Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/DSC/DiskSpaceChecker.vb b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/DSC/DiskSpaceChecker.vb index b9fe4d4e7..949e78eaf 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/DSC/DiskSpaceChecker.vb +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/DSC/DiskSpaceChecker.vb @@ -5,6 +5,14 @@ Imports System.Management Public Class DiskSpaceChecker + Private Function DSCText(Key As String, ParamArray values() As Object) As String + Dim template As String = GetValueFromLanguageData("DiskSpaceChecker." & Key) + If values IsNot Nothing AndAlso values.Length > 0 Then + Return String.Format(template, values) + End If + Return template + End Function + Dim progressMessage As String = "" Dim reportContents As String = "" @@ -16,48 +24,50 @@ Public Class DiskSpaceChecker Sub ListObtainedDisks(DriveObjects As ManagementObjectCollection) If DriveObjects Is Nothing Then - Throw New Exception("A null-valued object collection has been passed for the drive report") + Throw New Exception(DSCText("ReportNullDriveCollection")) End If DynaLog.LogMessage("Count of obtained disks: " & DriveObjects.Count) - reportContents &= "Amount of local disks and partitions in the host system: " & DriveObjects.Count & CrLf & CrLf + reportContents &= DSCText("ReportLocalDiskCount", DriveObjects.Count) & CrLf & CrLf If DriveObjects.Count > 0 Then DynaLog.LogMessage("Saving obtained disks to report...") For Each DriveObject As ManagementObject In DriveObjects - reportContents &= "Information for Disk " & GetObjectValue(DriveObject, "DiskIndex") & ", Partition " & (GetObjectValue(DriveObject, "Index") + 1) & CrLf & - "- Drive total size: " & GetObjectValue(DriveObject, "Size") & " bytes (~" & Converters.BytesToReadableSize(GetObjectValue(DriveObject, "Size")) & ")" & CrLf & - "- Boot partition? " & If(GetObjectValue(DriveObject, "BootPartition"), "Yes", "No") & CrLf & - "- Primary partition? " & If(GetObjectValue(DriveObject, "PrimaryPartition"), "Yes", "No") & CrLf & CrLf + reportContents &= DSCText("ReportDiskInfo", GetObjectValue(DriveObject, "DiskIndex"), + GetObjectValue(DriveObject, "Index") + 1, + GetObjectValue(DriveObject, "Size"), + Converters.BytesToReadableSize(GetObjectValue(DriveObject, "Size")), + If(GetObjectValue(DriveObject, "BootPartition"), DSCText("ReportYes"), DSCText("ReportNo")), + If(GetObjectValue(DriveObject, "PrimaryPartition"), DSCText("ReportYes"), DSCText("ReportNo"))) & CrLf & CrLf Next End If End Sub Sub ListSpaceComparison(ImageNames As List(Of String), ImageSizes As List(Of Long), Drives As ManagementObjectCollection) If ImageNames.Count = 0 Then - Throw New Exception("No names have been passed") + Throw New Exception(DSCText("ReportNoNames")) End If If ImageSizes.Count = 0 Then - Throw New Exception("No sizes have been passed") + Throw New Exception(DSCText("ReportNoSizes")) End If If Drives.Count = 0 Then - Throw New Exception("No fixed drives have been passed") + Throw New Exception(DSCText("ReportNoFixedDrives")) End If DynaLog.LogMessage("Comparing spaces of images and drives...") DynaLog.LogMessage("- Count of images: " & ImageNames.Count) DynaLog.LogMessage("- Count of drives: " & Drives.Count) - reportContents &= "Comparison of sizes:" & CrLf & CrLf + reportContents &= DSCText("ReportSizeComparison") & CrLf & CrLf DynaLog.LogMessage("Comparing spaces for drives...") For Each Drive As ManagementObject In Drives - reportContents &= "- Disk, with volume label " & Quote & GetObjectValue(Drive, "VolumeName") & Quote & " (" & GetObjectValue(Drive, "DeviceID") & "):" & CrLf + reportContents &= DSCText("ReportDiskWithVolumeLabel", Quote & GetObjectValue(Drive, "VolumeName") & Quote, GetObjectValue(Drive, "DeviceID")) & CrLf For Each ImageSize In ImageSizes If GetObjectValue(Drive, "Size") > ImageSize Then DynaLog.LogMessage("This image can be installed here.") - reportContents &= " - " & Quote & ImageNames(ImageSizes.IndexOf(ImageSize)) & Quote & " (index " & ImageSizes.IndexOf(ImageSize) + 1 & ") can be installed on this disk because there is enough free space." & CrLf + reportContents &= DSCText("ReportCanInstall", Quote & ImageNames(ImageSizes.IndexOf(ImageSize)) & Quote, ImageSizes.IndexOf(ImageSize) + 1) & CrLf Else DynaLog.LogMessage("This image cannot be installed here.") - reportContents &= " - " & Quote & ImageNames(ImageSizes.IndexOf(ImageSize)) & Quote & " (index " & ImageSizes.IndexOf(ImageSize) + 1 & ") cannot be installed on this disk because there is not enough free space." & CrLf + reportContents &= DSCText("ReportCannotInstall", Quote & ImageNames(ImageSizes.IndexOf(ImageSize)) & Quote, ImageSizes.IndexOf(ImageSize) + 1) & CrLf End If Next Next @@ -83,9 +93,9 @@ Public Class DiskSpaceChecker End Function Sub InitializeReport() - reportContents = "Disk Space Checker Report" & CrLf & + reportContents = DSCText("ReportTitle") & CrLf & "==========================" & CrLf & - "Report generated by HotInstall (version " & My.Application.Info.Version.ToString() & ")" & CrLf & CrLf + DSCText("ReportGeneratedBy", My.Application.Info.Version.ToString()) & CrLf & CrLf End Sub Sub ListFreeSpace(FreeSpace As Long, SpaceToCompare As Long, Optional SystemDriveMO As ManagementObject = Nothing) @@ -94,23 +104,23 @@ Public Class DiskSpaceChecker DynaLog.LogMessage("- Referenced space: " & SpaceToCompare) If SystemDriveMO IsNot Nothing Then DynaLog.LogMessage("System drive management object is something. We select the drive") - reportContents &= "The system drive is mounted to " & GetObjectValue(SystemDriveMO, "DeviceID") & CrLf & CrLf + reportContents &= DSCText("ReportSystemDrive", GetObjectValue(SystemDriveMO, "DeviceID")) & CrLf & CrLf End If DynaLog.LogMessage("Saving information to report...") - reportContents &= "Disc image files will be copied to the system drive shown above:" & CrLf & - "- The total size of the disc image files is " & SpaceToCompare & " bytes (~" & Converters.BytesToReadableSize(SpaceToCompare) & ")" & CrLf & - "- The free space on this drive is " & FreeSpace & " bytes (~" & Converters.BytesToReadableSize(FreeSpace) & ")" & CrLf & CrLf + reportContents &= DSCText("ReportCopyPlan") & CrLf & + DSCText("ReportTotalImageSize", SpaceToCompare, Converters.BytesToReadableSize(SpaceToCompare)) & CrLf & + DSCText("ReportFreeSpace", FreeSpace, Converters.BytesToReadableSize(FreeSpace)) & CrLf & CrLf - reportContents &= Converters.BytesToReadableSize(FreeSpace) & " > " & Converters.BytesToReadableSize(SpaceToCompare) & " ? " & If(FreeSpace > SpaceToCompare, "Yes", "No") & CrLf & - Converters.BytesToReadableSize(FreeSpace) & " > " & Converters.BytesToReadableSize(SpaceToCompare * 2) & " ? " & If(FreeSpace > SpaceToCompare, "Yes", "No") & CrLf & CrLf + reportContents &= Converters.BytesToReadableSize(FreeSpace) & " > " & Converters.BytesToReadableSize(SpaceToCompare) & " ? " & If(FreeSpace > SpaceToCompare, DSCText("ReportYes"), DSCText("ReportNo")) & CrLf & + Converters.BytesToReadableSize(FreeSpace) & " > " & Converters.BytesToReadableSize(SpaceToCompare * 2) & " ? " & If(FreeSpace > SpaceToCompare * 2, DSCText("ReportYes"), DSCText("ReportNo")) & CrLf & CrLf If FreeSpace < (SpaceToCompare * 2) Then - reportContents &= "There may not be enough space to copy the disc image files to this drive." & CrLf & CrLf + reportContents &= DSCText("ReportMayNotHaveEnoughSpace") & CrLf & CrLf ElseIf FreeSpace < SpaceToCompare Then - reportContents &= "There is not enough space to copy the disc image files to this drive." & CrLf & CrLf + reportContents &= DSCText("ReportNotEnoughSpace") & CrLf & CrLf Else - reportContents &= "There is plenty of space to copy the disc image files to this drive." & CrLf & CrLf + reportContents &= DSCText("ReportPlentyOfSpace") & CrLf & CrLf End If End Sub @@ -149,7 +159,7 @@ Public Class DiskSpaceChecker DynaLog.LogMessage("Folder Size: " & FolderSize & " bytes") If FreeSpaceOnSystemDrive < FolderSize Then DynaLog.LogMessage("Free space is lower than folder size.") - Throw New Exception("There is not enough space to copy the disc image files to the system drive. Please free up some space and try again.") + Throw New Exception(DSCText("ReportNotEnoughSystemDriveSpace")) End If ' Get information about the installation image and compare the expanded sizes of all indexes with the total space of all fixed drives progressMessage = GetValueFromLanguageData("DiskSpaceChecker.DSC_GetImageFileInfo") @@ -174,7 +184,7 @@ Public Class DiskSpaceChecker End If End If Else - Throw New Exception("We could not detect available fixed drives in your system") + Throw New Exception(DSCText("ReportFixedDrivesNotDetected")) End If End Sub @@ -217,7 +227,7 @@ Public Class DiskSpaceChecker Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted Dim success As Boolean = True If e.Error IsNot Nothing Then - If e.Error.Message.StartsWith("WARNING ONLY: ", StringComparison.OrdinalIgnoreCase) Then + If e.Error.Message.StartsWith(DSCText("ReportWarningOnlyPrefix"), StringComparison.OrdinalIgnoreCase) Then MsgBox(e.Error.Message, vbOKOnly + vbExclamation, Text) Else success = False diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/HotInstall.vbproj b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/HotInstall.vbproj index 7e7a17aaf..045541187 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/HotInstall.vbproj +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/HotInstall.vbproj @@ -1,4 +1,4 @@ - + diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_en.ini b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_en.ini index b2aed97ab..b1a30e62a 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_en.ini +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_en.ini @@ -1,4 +1,4 @@ -; This INI file contains the translations for your language +; This INI file contains the translations for your language ; CREATING AND/OR IMPROVING A TRANSLATION ; Please replace the English strings with equivalents from your language. These follow @@ -14,8 +14,7 @@ ; -- Section Reference ; The names of the sections are derived from the names of the form classes. For example, ; to create translations tailored to the ISO creator, a section called "ISOCreator" -; needs to be made. Common words (such as Yes, No, Cancel...) are placed in the Common -; section. +; Window words and actions are kept in the section that owns the window or scenario. ; -------------------- ; -- User Guidelines ; Please refrain from renaming the item keys unless the codebase changes to @@ -26,28 +25,31 @@ ; and/or modified this translation. Feel free to add yourself to the author list of this ; language file if you contributed to improve it. [LanguageFileInformation] +LanguageCode = "en-US" LanguageName = "English Language Pack" LanguageAuthor = "CodingWonders" ; Everything after this comment is specific to the language translation. It's ; recommended to go from top to bottom of the window. -[Common] -Common_Yes = "Yes" -Common_No = "No" -Common_Help = "Help" -Common_OK = "OK" -Common_Cancel = "Cancel" -Common_Back = "Back" -Common_Next = "Next" -Common_Browse = "Browse..." - [SplashScreen] +WindowTitle = "HotInstall Operating System Installer" +VersionLabel = "HotInstall OS Installer, version " OSInstTitle = "Operating System Installation" OSInstStatus_StartingUp = "Setup is starting..." OSInstStatus_Restarting = "Setup will continue after restarting your computer" [MainForm] +ReviewImageInfo_IndexColumnHeader = "#" +ReviewImageInfo_BootImageArchitecturePlaceholder = "" +ReviewImageInfo_BootImageVersionPlaceholder = "" +ReviewImageInfo_BootImageNamePlaceholder = "" +ReviewImageInfo_ComputerArchitecturePlaceholder = "" +PreparationPanel_GenericProgress = "Progress:" +PreparationPanel_ApiProgress = "API progress: {0}%" +NavigationBackButtonText = "Back" +NavigationNextButtonText = "Next" +NavigationExitButtonText = "Cancel" BootMgrEntryName = "DISMTools Operating System Installation" Win7IncompatibilityError = "This program is incompatible with Windows 7 and Server 2008 R2 due to lack of support for the DISM API." NonAdminError = "This application must be run as an administrator." @@ -125,9 +127,35 @@ ExportDriversFolderDialog = "Specify the path to export drivers to:" DriverExporter_MessageTitle = "Driver export" DriverExporter_SuccessMessage = "The drivers have been exported successfully" DriverExporter_FailureMessage = "The driver export process has exited with code {0}" +ImageInformationSummary_Header = "Information summary for {0} image(s):" +ImageInformationSummary_ImageBlock = "Image {0} of {1}:{crlf;}{crlf;} - Image version: {2}{crlf;} - Image name: {3}{crlf;} - Image description: {4}{crlf;} - Image size: {5} bytes ({6}){crlf;} - Architecture: {7}{crlf;} - HAL: {8}{crlf;} - Service Pack build: {9}{crlf;} - Service Pack level: {10}{crlf;} - Edition: {11}{crlf;} - Installation type: {12}{crlf;} - Product type: {13}{crlf;} - Product suite: {14}{crlf;} - System root directory: {15}{crlf;} - File count: {16} file(s) in {17} folder(s){crlf;} - Creation date: {18}{crlf;} - Modification date: {19}{crlf;} - Languages: {20}{crlf;}{crlf;}" GetImageInformationButton = "Get image information" [DiskSpaceChecker] +ReportNullDriveCollection = "A null-valued object collection has been passed for the drive report" +ReportLocalDiskCount = "Amount of local disks and partitions in the host system: {0}" +ReportDiskInfo = "Information for Disk {0}, Partition {1}{crlf;}- Drive total size: {2} bytes (~{3}){crlf;}- Boot partition? {4}{crlf;}- Primary partition? {5}" +ReportYes = "Yes" +ReportNo = "No" +ReportNoNames = "No names have been passed" +ReportNoSizes = "No sizes have been passed" +ReportNoFixedDrives = "No fixed drives have been passed" +ReportSizeComparison = "Comparison of sizes:" +ReportDiskWithVolumeLabel = "- Disk, with volume label {0} ({1}):" +ReportCanInstall = " - {0} (index {1}) can be installed on this disk because there is enough free space." +ReportCannotInstall = " - {0} (index {1}) cannot be installed on this disk because there is not enough free space." +ReportTitle = "Disk Space Checker Report" +ReportGeneratedBy = "Report generated by HotInstall (version {0})" +ReportSystemDrive = "The system drive is mounted to {0}" +ReportCopyPlan = "Disc image files will be copied to the system drive shown above:" +ReportTotalImageSize = "- The total size of the disc image files is {0} bytes (~{1})" +ReportFreeSpace = "- The free space on this drive is {0} bytes (~{1})" +ReportMayNotHaveEnoughSpace = "There may not be enough space to copy the disc image files to this drive." +ReportNotEnoughSpace = "There is not enough space to copy the disc image files to this drive." +ReportPlentyOfSpace = "There is plenty of space to copy the disc image files to this drive." +ReportNotEnoughSystemDriveSpace = "There is not enough space to copy the disc image files to the system drive. Please free up some space and try again." +ReportFixedDrivesNotDetected = "We could not detect available fixed drives in your system" +ReportWarningOnlyPrefix = "WARNING ONLY: " WndTitle = "Disk Space Checker" WndDesc = "Please wait while the installer checks the size of disc image files and the capacity of the drives in your computer. This can take some time." DSC_GenericProgress = "Progress:" @@ -135,4 +163,4 @@ DSC_GetSysDrives = "Getting system drives..." DSC_GetSizeOfImageFiles = "Getting size of disc image files..." DSC_GetImageFileInfo = "Getting image file information..." DSC_GetImageNamesAndSizes = "Getting image names and sizes..." -DSC_CompareSizes = "Comparing image sizes with free space..." \ No newline at end of file +DSC_CompareSizes = "Comparing image sizes with free space..." diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_es.ini b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_es.ini index b51fc2618..50f764df9 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_es.ini +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_es.ini @@ -1,4 +1,4 @@ -; This INI file contains the translations for your language +; This INI file contains the translations for your language ; CREATING AND/OR IMPROVING A TRANSLATION ; Please replace the English strings with equivalents from your language. These follow @@ -14,8 +14,7 @@ ; -- Section Reference ; The names of the sections are derived from the names of the form classes. For example, ; to create translations tailored to the ISO creator, a section called "ISOCreator" -; needs to be made. Common words (such as Yes, No, Cancel...) are placed in the Common -; section. +; Window words and actions are kept in the section that owns the window or scenario. ; -------------------- ; -- User Guidelines ; Please refrain from renaming the item keys unless the codebase changes to @@ -26,28 +25,31 @@ ; and/or modified this translation. Feel free to add yourself to the author list of this ; language file if you contributed to improve it. [LanguageFileInformation] +LanguageCode = "es-ES" LanguageName = "Spanish Language Pack" LanguageAuthor = "CodingWonders" ; Everything after this comment is specific to the language translation. It's ; recommended to go from top to bottom of the window. -[Common] -Common_Yes = "Sí" -Common_No = "No" -Common_Help = "Ayuda" -Common_OK = "Aceptar" -Common_Cancel = "Salir" -Common_Back = "Atrás" -Common_Next = "Siguiente" -Common_Browse = "Examinar..." - [SplashScreen] +WindowTitle = "Instalador del sistema operativo HotInstall" +VersionLabel = "Instalador de SO HotInstall, versión " OSInstTitle = "Instalación del sistema operativo" OSInstStatus_StartingUp = "El programa de instalación se está iniciando..." OSInstStatus_Restarting = "El programa de instalación continuará después de reiniciar el equipo" [MainForm] +ReviewImageInfo_IndexColumnHeader = "#" +ReviewImageInfo_BootImageArchitecturePlaceholder = "" +ReviewImageInfo_BootImageVersionPlaceholder = "" +ReviewImageInfo_BootImageNamePlaceholder = "" +ReviewImageInfo_ComputerArchitecturePlaceholder = "" +PreparationPanel_GenericProgress = "Progreso:" +PreparationPanel_ApiProgress = "Progreso de la API: {0}%" +NavigationBackButtonText = "Atrás" +NavigationNextButtonText = "Siguiente" +NavigationExitButtonText = "Salir" BootMgrEntryName = "DISMTools - Instalación del sistema operativo" Win7IncompatibilityError = "Este programa no es compatible con Windows 7 y Server 2008 R2 debido a la falta de compatibilidad con la API de DISM." NonAdminError = "Esta aplicación debe ser ejecutada como administrador." @@ -125,9 +127,35 @@ ExportDriversFolderDialog = "Especifique la ruta en donde guardar los controlado DriverExporter_MessageTitle = "Exportación de controladores" DriverExporter_SuccessMessage = "Los controladores se han exportado correctamente." DriverExporter_FailureMessage = "El proceso de exportación de controladores ha salido con el error {0}" +ImageInformationSummary_Header = "Resumen de información de {0} imagen(es):" +ImageInformationSummary_ImageBlock = "Imagen {0} de {1}:{crlf;}{crlf;} - Versión de la imagen: {2}{crlf;} - Nombre de la imagen: {3}{crlf;} - Descripción de la imagen: {4}{crlf;} - Tamaño de la imagen: {5} bytes ({6}){crlf;} - Arquitectura: {7}{crlf;} - HAL: {8}{crlf;} - Compilación del Service Pack: {9}{crlf;} - Nivel del Service Pack: {10}{crlf;} - Edición: {11}{crlf;} - Tipo de instalación: {12}{crlf;} - Tipo de producto: {13}{crlf;} - Suite del producto: {14}{crlf;} - Directorio raíz del sistema: {15}{crlf;} - Recuento de archivos: {16} archivo(s) en {17} carpeta(s){crlf;} - Fecha de creación: {18}{crlf;} - Fecha de modificación: {19}{crlf;} - Idiomas: {20}{crlf;}{crlf;}" GetImageInformationButton = "Obtener información de la imagen" [DiskSpaceChecker] +ReportNullDriveCollection = "Se ha pasado una colección de objetos nula para el informe de unidades" +ReportLocalDiskCount = "Cantidad de discos locales y particiones en el sistema host: {0}" +ReportDiskInfo = "Información del disco {0}, partición {1}{crlf;}- Tamaño total de la unidad: {2} bytes (~{3}){crlf;}- ¿Partición de arranque? {4}{crlf;}- ¿Partición primaria? {5}" +ReportYes = "Sí" +ReportNo = "No" +ReportNoNames = "No se han pasado nombres" +ReportNoSizes = "No se han pasado tamaños" +ReportNoFixedDrives = "No se han pasado unidades fijas" +ReportSizeComparison = "Comparación de tamaños:" +ReportDiskWithVolumeLabel = "- Disco, con etiqueta de volumen {0} ({1}):" +ReportCanInstall = " - {0} (índice {1}) se puede instalar en este disco porque hay suficiente espacio libre." +ReportCannotInstall = " - {0} (índice {1}) no se puede instalar en este disco porque no hay suficiente espacio libre." +ReportTitle = "Informe de Disk Space Checker" +ReportGeneratedBy = "Informe generado por HotInstall (versión {0})" +ReportSystemDrive = "La unidad del sistema está montada en {0}" +ReportCopyPlan = "Los archivos de imagen de disco se copiarán en la unidad del sistema indicada arriba:" +ReportTotalImageSize = "- El tamaño total de los archivos de imagen de disco es {0} bytes (~{1})" +ReportFreeSpace = "- El espacio libre en esta unidad es {0} bytes (~{1})" +ReportMayNotHaveEnoughSpace = "Puede que no haya suficiente espacio para copiar los archivos de imagen de disco en esta unidad." +ReportNotEnoughSpace = "No hay suficiente espacio para copiar los archivos de imagen de disco en esta unidad." +ReportPlentyOfSpace = "Hay suficiente espacio para copiar los archivos de imagen de disco en esta unidad." +ReportNotEnoughSystemDriveSpace = "No hay suficiente espacio para copiar los archivos de imagen de disco en la unidad del sistema. Libera espacio e inténtalo de nuevo." +ReportFixedDrivesNotDetected = "No se pudieron detectar unidades fijas disponibles en el sistema" +ReportWarningOnlyPrefix = "SOLO ADVERTENCIA: " WndTitle = "Comprobador de espacio en disco" WndDesc = "Espere mientras el instalador comprueba el tamaño de los archivos de la imagen de disco y la capacidad de los discos de su ordenador. Esto puede llevar algo de tiempo." DSC_GenericProgress = "Progreso:" @@ -135,4 +163,4 @@ DSC_GetSysDrives = "Obteniendo discos del sistema..." DSC_GetSizeOfImageFiles = "Obteniendo el tamaño de los archivos de la imagen de disco..." DSC_GetImageFileInfo = "Obteniendo información del archivo de imagen..." DSC_GetImageNamesAndSizes = "Obteniendo nombres y tamaños de las imágenes..." -DSC_CompareSizes = "Comparando tamaños de las imágenes con el espacio libre..." \ No newline at end of file +DSC_CompareSizes = "Comparando tamaños de las imágenes con el espacio libre..." diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_fr.ini b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_fr.ini index 29c8dfaac..c29ce2579 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_fr.ini +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_fr.ini @@ -1,4 +1,4 @@ -; This INI file contains the translations for your language +; This INI file contains the translations for your language ; CREATING AND/OR IMPROVING A TRANSLATION ; Please replace the English strings with equivalents from your language. These follow @@ -14,8 +14,7 @@ ; -- Section Reference ; The names of the sections are derived from the names of the form classes. For example, ; to create translations tailored to the ISO creator, a section called "ISOCreator" -; needs to be made. Common words (such as Yes, No, Cancel...) are placed in the Common -; section. +; Window words and actions are kept in the section that owns the window or scenario. ; -------------------- ; -- User Guidelines ; Please refrain from renaming the item keys unless the codebase changes to @@ -26,28 +25,31 @@ ; and/or modified this translation. Feel free to add yourself to the author list of this ; language file if you contributed to improve it. [LanguageFileInformation] +LanguageCode = "fr-FR" LanguageName = "French Language Pack" LanguageAuthor = "CodingWonders" ; Everything after this comment is specific to the language translation. It's ; recommended to go from top to bottom of the window. -[Common] -Common_Yes = "Oui" -Common_No = "Non" -Common_Help = "Aide" -Common_OK = "OK" -Common_Cancel = "Annuler" -Common_Back = "Retour" -Common_Next = "Suivant" -Common_Browse = "Parcourir..." - [SplashScreen] +WindowTitle = "Programme d’installation du système d’exploitation HotInstall" +VersionLabel = "Installateur de système d’exploitation HotInstall, version " OSInstTitle = "Installation du système d'exploitation" OSInstStatus_StartingUp = "Le programme d'installation démarre..." OSInstStatus_Restarting = "Le programme d'installation reprendra après le redémarrage de l'ordinateur" [MainForm] +ReviewImageInfo_IndexColumnHeader = "#" +ReviewImageInfo_BootImageArchitecturePlaceholder = "" +ReviewImageInfo_BootImageVersionPlaceholder = "" +ReviewImageInfo_BootImageNamePlaceholder = "" +ReviewImageInfo_ComputerArchitecturePlaceholder = "" +PreparationPanel_GenericProgress = "Progression :" +PreparationPanel_ApiProgress = "Progression de l’API : {0}%" +NavigationBackButtonText = "Retour" +NavigationNextButtonText = "Suivant" +NavigationExitButtonText = "Annuler" BootMgrEntryName = "Installation du système d'exploitation DISMTools" Win7IncompatibilityError = "Ce programme est incompatible avec Windows 7 et Server 2008 R2 en raison du manque de support pour l'API DISM." NonAdminError = "Cette application doit être exécutée en tant qu'administrateur." @@ -125,9 +127,35 @@ ExportDriversFolderDialog = "Spécifiez le chemin pour exporter les pilotes :" DriverExporter_MessageTitle = "Exportation de pilotes" DriverExporter_SuccessMessage = "Les pilotes ont été exportés avec succès" DriverExporter_FailureMessage = "Le processus d'exportation des pilotes s'est terminé avec le code {0}" +ImageInformationSummary_Header = "Résumé des informations pour {0} image(s) :" +ImageInformationSummary_ImageBlock = "Image {0} sur {1} :{crlf;}{crlf;} - Version de l’image : {2}{crlf;} - Nom de l’image : {3}{crlf;} - Description de l’image : {4}{crlf;} - Taille de l’image : {5} octets ({6}){crlf;} - Architecture : {7}{crlf;} - HAL : {8}{crlf;} - Build du Service Pack : {9}{crlf;} - Niveau du Service Pack : {10}{crlf;} - Édition : {11}{crlf;} - Type d’installation : {12}{crlf;} - Type de produit : {13}{crlf;} - Suite du produit : {14}{crlf;} - Répertoire racine du système : {15}{crlf;} - Nombre de fichiers : {16} fichier(s) dans {17} dossier(s){crlf;} - Date de création : {18}{crlf;} - Date de modification : {19}{crlf;} - Langues : {20}{crlf;}{crlf;}" GetImageInformationButton = "Obtenir des informations sur l'image" [DiskSpaceChecker] +ReportNullDriveCollection = "Une collection d’objets nulle a été transmise pour le rapport des lecteurs" +ReportLocalDiskCount = "Nombre de disques locaux et de partitions dans le système hôte : {0}" +ReportDiskInfo = "Informations pour le disque {0}, partition {1}{crlf;}- Taille totale du lecteur : {2} octets (~{3}){crlf;}- Partition de démarrage ? {4}{crlf;}- Partition principale ? {5}" +ReportYes = "Oui" +ReportNo = "Non" +ReportNoNames = "Aucun nom n’a été transmis" +ReportNoSizes = "Aucune taille n’a été transmise" +ReportNoFixedDrives = "Aucun lecteur fixe n’a été transmis" +ReportSizeComparison = "Comparaison des tailles :" +ReportDiskWithVolumeLabel = "- Disque, avec l’étiquette de volume {0} ({1}) :" +ReportCanInstall = " - {0} (index {1}) peut être installé sur ce disque car l’espace libre est suffisant." +ReportCannotInstall = " - {0} (index {1}) ne peut pas être installé sur ce disque car l’espace libre est insuffisant." +ReportTitle = "Rapport de Disk Space Checker" +ReportGeneratedBy = "Rapport généré par HotInstall (version {0})" +ReportSystemDrive = "Le lecteur système est monté sur {0}" +ReportCopyPlan = "Les fichiers d’image disque seront copiés vers le lecteur système indiqué ci dessus :" +ReportTotalImageSize = "- La taille totale des fichiers d’image disque est de {0} octets (~{1})" +ReportFreeSpace = "- L’espace libre sur ce lecteur est de {0} octets (~{1})" +ReportMayNotHaveEnoughSpace = "Il se peut que l’espace soit insuffisant pour copier les fichiers d’image disque sur ce lecteur." +ReportNotEnoughSpace = "L’espace est insuffisant pour copier les fichiers d’image disque sur ce lecteur." +ReportPlentyOfSpace = "L’espace est suffisant pour copier les fichiers d’image disque sur ce lecteur." +ReportNotEnoughSystemDriveSpace = "L’espace est insuffisant pour copier les fichiers d’image disque vers le lecteur système. Libérez de l’espace, puis réessayez." +ReportFixedDrivesNotDetected = "Impossible de détecter les lecteurs fixes disponibles sur votre système" +ReportWarningOnlyPrefix = "AVERTISSEMENT UNIQUEMENT : " WndTitle = "Vérificateur d'espace disque" WndDesc = "Veuillez patienter pendant que l'installateur vérifie la taille des fichiers image disque et la capacité des lecteurs de votre ordinateur. Cela peut prendre un certain temps." DSC_GenericProgress = "Progression :" @@ -135,4 +163,4 @@ DSC_GetSysDrives = "Obtention des lecteurs système..." DSC_GetSizeOfImageFiles = "Obtention de la taille des fichiers image disque..." DSC_GetImageFileInfo = "Obtention des informations sur les fichiers image..." DSC_GetImageNamesAndSizes = "Obtention des noms et tailles des images..." -DSC_CompareSizes = "Comparaison des tailles des images avec l'espace libre..." \ No newline at end of file +DSC_CompareSizes = "Comparaison des tailles des images avec l'espace libre..." diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_it.ini b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_it.ini index 8c24a54a9..e8db0afc8 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_it.ini +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_it.ini @@ -14,8 +14,7 @@ ; -- Section Reference ; The names of the sections are derived from the names of the form classes. For example, ; to create translations tailored to the ISO creator, a section called "ISOCreator" -; needs to be made. Common words (such as Yes, No, Cancel...) are placed in the Common -; section. +; Window words and actions are kept in the section that owns the window or scenario. ; -------------------- ; -- User Guidelines ; Please refrain from renaming the item keys unless the codebase changes to @@ -26,28 +25,31 @@ ; and/or modified this translation. Feel free to add yourself to the author list of this ; language file if you contributed to improve it. [LanguageFileInformation] +LanguageCode = "it-IT" LanguageName = "Italian Language Pack" LanguageAuthor = "CodingWonders" ; Everything after this comment is specific to the language translation. It's ; recommended to go from top to bottom of the window. -[Common] -Common_Yes = "Sì" -Common_No = "No" -Common_Help = "Aiuto" -Common_OK = "OK" -Common_Cancel = "Annulla" -Common_Back = "Indietro" -Common_Next = "Avanti" -Common_Browse = "Sfoglia..." - [SplashScreen] +WindowTitle = "Programma di installazione del sistema operativo HotInstall" +VersionLabel = "Programma di installazione del sistema operativo HotInstall, versione " OSInstTitle = "Installazione del sistema operativo" OSInstStatus_StartingUp = "L'installazione sta iniziando..." OSInstStatus_Restarting = "L'installazione continuerà dopo il riavvio del computer" [MainForm] +ReviewImageInfo_IndexColumnHeader = "#" +ReviewImageInfo_BootImageArchitecturePlaceholder = "" +ReviewImageInfo_BootImageVersionPlaceholder = "" +ReviewImageInfo_BootImageNamePlaceholder = "" +ReviewImageInfo_ComputerArchitecturePlaceholder = "" +PreparationPanel_GenericProgress = "Avanzamento:" +PreparationPanel_ApiProgress = "Avanzamento API: {0}%" +NavigationBackButtonText = "Indietro" +NavigationNextButtonText = "Avanti" +NavigationExitButtonText = "Annulla" BootMgrEntryName = "Installazione del sistema operativo DISMTools" Win7IncompatibilityError = "Questo programma è incompatibile con Windows 7 e Server 2008 R2 a causa della mancanza di supporto per l'API DISM." NonAdminError = "Questa applicazione deve essere eseguita come amministratore." @@ -125,9 +127,35 @@ ExportDriversFolderDialog = "Specifica il percorso per esportare i driver:" DriverExporter_MessageTitle = "Esportazione driver" DriverExporter_SuccessMessage = "I driver sono stati esportati con successo" DriverExporter_FailureMessage = "Il processo di esportazione dei driver è terminato con codice {0}" +ImageInformationSummary_Header = "Riepilogo informazioni per {0} immagine/i:" +ImageInformationSummary_ImageBlock = "Immagine {0} di {1}:{crlf;}{crlf;} - Versione immagine: {2}{crlf;} - Nome immagine: {3}{crlf;} - Descrizione immagine: {4}{crlf;} - Dimensione immagine: {5} byte ({6}){crlf;} - Architettura: {7}{crlf;} - HAL: {8}{crlf;} - Build del Service Pack: {9}{crlf;} - Livello del Service Pack: {10}{crlf;} - Edizione: {11}{crlf;} - Tipo di installazione: {12}{crlf;} - Tipo di prodotto: {13}{crlf;} - Suite prodotto: {14}{crlf;} - Directory radice del sistema: {15}{crlf;} - Numero di file: {16} file in {17} cartella/e{crlf;} - Data di creazione: {18}{crlf;} - Data di modifica: {19}{crlf;} - Lingue: {20}{crlf;}{crlf;}" GetImageInformationButton = "Ottenere informazioni sull'immagine" [DiskSpaceChecker] +ReportNullDriveCollection = "È stata passata una raccolta di oggetti nulla per il report delle unità" +ReportLocalDiskCount = "Numero di dischi locali e partizioni nel sistema host: {0}" +ReportDiskInfo = "Informazioni per disco {0}, partizione {1}{crlf;}- Dimensione totale dell’unità: {2} byte (~{3}){crlf;}- Partizione di avvio? {4}{crlf;}- Partizione primaria? {5}" +ReportYes = "Sì" +ReportNo = "No" +ReportNoNames = "Non è stato passato alcun nome" +ReportNoSizes = "Non è stata passata alcuna dimensione" +ReportNoFixedDrives = "Non è stata passata alcuna unità fissa" +ReportSizeComparison = "Confronto delle dimensioni:" +ReportDiskWithVolumeLabel = "- Disco, con etichetta volume {0} ({1}):" +ReportCanInstall = " - {0} (indice {1}) può essere installata su questo disco perché c’è abbastanza spazio libero." +ReportCannotInstall = " - {0} (indice {1}) non può essere installata su questo disco perché non c’è abbastanza spazio libero." +ReportTitle = "Report di Disk Space Checker" +ReportGeneratedBy = "Report generato da HotInstall (versione {0})" +ReportSystemDrive = "L’unità di sistema è montata in {0}" +ReportCopyPlan = "I file immagine disco verranno copiati nell’unità di sistema indicata sopra:" +ReportTotalImageSize = "- La dimensione totale dei file immagine disco è {0} byte (~{1})" +ReportFreeSpace = "- Lo spazio libero in questa unità è {0} byte (~{1})" +ReportMayNotHaveEnoughSpace = "Potrebbe non esserci spazio sufficiente per copiare i file immagine disco in questa unità." +ReportNotEnoughSpace = "Non c’è spazio sufficiente per copiare i file immagine disco in questa unità." +ReportPlentyOfSpace = "C’è spazio sufficiente per copiare i file immagine disco in questa unità." +ReportNotEnoughSystemDriveSpace = "Non c’è spazio sufficiente per copiare i file immagine disco nell’unità di sistema. Libera spazio e riprova." +ReportFixedDrivesNotDetected = "Non è stato possibile rilevare unità fisse disponibili nel sistema" +ReportWarningOnlyPrefix = "SOLO AVVISO: " WndTitle = "Controllo dello Spazio su Disco" WndDesc = "Attendere mentre l'installatore controlla la dimensione dei file immagine del disco e la capacità delle unità nel computer. Questo può richiedere del tempo." DSC_GenericProgress = "Progresso:" @@ -135,4 +163,4 @@ DSC_GetSysDrives = "Ottenimento delle unità di sistema..." DSC_GetSizeOfImageFiles = "Ottenimento della dimensione dei file immagine del disco..." DSC_GetImageFileInfo = "Ottenimento delle informazioni sui file immagine..." DSC_GetImageNamesAndSizes = "Ottenimento dei nomi e delle dimensioni delle immagini..." -DSC_CompareSizes = "Confronto delle dimensioni delle immagini con lo spazio libero..." \ No newline at end of file +DSC_CompareSizes = "Confronto delle dimensioni delle immagini con lo spazio libero..." diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_pt.ini b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_pt.ini index ab4588bc0..d56b04bc2 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_pt.ini +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Languages/lang_pt.ini @@ -14,8 +14,7 @@ ; -- Section Reference ; The names of the sections are derived from the names of the form classes. For example, ; to create translations tailored to the ISO creator, a section called "ISOCreator" -; needs to be made. Common words (such as Yes, No, Cancel...) are placed in the Common -; section. +; Window words and actions are kept in the section that owns the window or scenario. ; -------------------- ; -- User Guidelines ; Please refrain from renaming the item keys unless the codebase changes to @@ -26,28 +25,31 @@ ; and/or modified this translation. Feel free to add yourself to the author list of this ; language file if you contributed to improve it. [LanguageFileInformation] +LanguageCode = "pt-PT" LanguageName = "Portuguese Language Pack" LanguageAuthor = "CodingWonders" ; Everything after this comment is specific to the language translation. It's ; recommended to go from top to bottom of the window. -[Common] -Common_Yes = "Sim" -Common_No = "Não" -Common_Help = "Ajuda" -Common_OK = "OK" -Common_Cancel = "Cancelar" -Common_Back = "Voltar" -Common_Next = "Próximo" -Common_Browse = "Procurar..." - [SplashScreen] +WindowTitle = "Instalador do sistema operacional HotInstall" +VersionLabel = "Instalador do sistema operacional HotInstall, versão " OSInstTitle = "Instalação do Sistema Operacional" OSInstStatus_StartingUp = "A configuração está iniciando..." OSInstStatus_Restarting = "A configuração continuará após reiniciar o computador" [MainForm] +ReviewImageInfo_IndexColumnHeader = "#" +ReviewImageInfo_BootImageArchitecturePlaceholder = "" +ReviewImageInfo_BootImageVersionPlaceholder = "" +ReviewImageInfo_BootImageNamePlaceholder = "" +ReviewImageInfo_ComputerArchitecturePlaceholder = "" +PreparationPanel_GenericProgress = "Progresso:" +PreparationPanel_ApiProgress = "Progresso da API: {0}%" +NavigationBackButtonText = "Voltar" +NavigationNextButtonText = "Próximo" +NavigationExitButtonText = "Cancelar" BootMgrEntryName = "Instalação do Sistema Operacional DISMTools" Win7IncompatibilityError = "Este programa é incompatível com o Windows 7 e o Server 2008 R2 devido à falta de suporte para a API DISM." NonAdminError = "Este aplicativo deve ser executado como administrador." @@ -125,9 +127,35 @@ ExportDriversFolderDialog = "Especifique o caminho para exportar os controladore DriverExporter_MessageTitle = "Exportação de controladores" DriverExporter_SuccessMessage = "Os controladores foram exportados com sucesso" DriverExporter_FailureMessage = "O processo de exportação de controladores terminou com o código {0}" +ImageInformationSummary_Header = "Resumo de informações de {0} imagem(ns):" +ImageInformationSummary_ImageBlock = "Imagem {0} de {1}:{crlf;}{crlf;} - Versão da imagem: {2}{crlf;} - Nome da imagem: {3}{crlf;} - Descrição da imagem: {4}{crlf;} - Tamanho da imagem: {5} bytes ({6}){crlf;} - Arquitetura: {7}{crlf;} - HAL: {8}{crlf;} - Compilação do Service Pack: {9}{crlf;} - Nível do Service Pack: {10}{crlf;} - Edição: {11}{crlf;} - Tipo de instalação: {12}{crlf;} - Tipo de produto: {13}{crlf;} - Suite do produto: {14}{crlf;} - Diretório raiz do sistema: {15}{crlf;} - Contagem de ficheiros: {16} ficheiro(s) em {17} pasta(s){crlf;} - Data de criação: {18}{crlf;} - Data de modificação: {19}{crlf;} - Idiomas: {20}{crlf;}{crlf;}" GetImageInformationButton = "Obter informações sobre a imagem" [DiskSpaceChecker] +ReportNullDriveCollection = "Foi passada uma coleção de objetos nula para o relatório das unidades" +ReportLocalDiskCount = "Quantidade de discos locais e partições no sistema anfitrião: {0}" +ReportDiskInfo = "Informações do disco {0}, partição {1}{crlf;}- Tamanho total da unidade: {2} bytes (~{3}){crlf;}- Partição de arranque? {4}{crlf;}- Partição primária? {5}" +ReportYes = "Sim" +ReportNo = "Não" +ReportNoNames = "Não foram passados nomes" +ReportNoSizes = "Não foram passados tamanhos" +ReportNoFixedDrives = "Não foram passadas unidades fixas" +ReportSizeComparison = "Comparação de tamanhos:" +ReportDiskWithVolumeLabel = "- Disco, com etiqueta de volume {0} ({1}):" +ReportCanInstall = " - {0} (índice {1}) pode ser instalado neste disco porque há espaço livre suficiente." +ReportCannotInstall = " - {0} (índice {1}) não pode ser instalado neste disco porque não há espaço livre suficiente." +ReportTitle = "Relatório do Disk Space Checker" +ReportGeneratedBy = "Relatório gerado pelo HotInstall (versão {0})" +ReportSystemDrive = "A unidade do sistema está montada em {0}" +ReportCopyPlan = "Os ficheiros de imagem de disco serão copiados para a unidade do sistema indicada acima:" +ReportTotalImageSize = "- O tamanho total dos ficheiros de imagem de disco é {0} bytes (~{1})" +ReportFreeSpace = "- O espaço livre nesta unidade é {0} bytes (~{1})" +ReportMayNotHaveEnoughSpace = "Pode não haver espaço suficiente para copiar os ficheiros de imagem de disco para esta unidade." +ReportNotEnoughSpace = "Não há espaço suficiente para copiar os ficheiros de imagem de disco para esta unidade." +ReportPlentyOfSpace = "Há espaço suficiente para copiar os ficheiros de imagem de disco para esta unidade." +ReportNotEnoughSystemDriveSpace = "Não há espaço suficiente para copiar os ficheiros de imagem de disco para a unidade do sistema. Liberte algum espaço e tente novamente." +ReportFixedDrivesNotDetected = "Não foi possível detetar unidades fixas disponíveis no sistema" +ReportWarningOnlyPrefix = "APENAS AVISO: " WndTitle = "Verificador de Espaço em Disco" WndDesc = "Por favor, aguarde enquanto o instalador verifica o tamanho dos arquivos de imagem de disco e a capacidade das unidades em seu computador. Isso pode levar algum tempo." DSC_GenericProgress = "Progresso:" @@ -135,4 +163,4 @@ DSC_GetSysDrives = "Obtendo unidades do sistema..." DSC_GetSizeOfImageFiles = "Obtendo tamanho dos arquivos de imagem de disco..." DSC_GetImageFileInfo = "Obtendo informações do arquivo de imagem..." DSC_GetImageNamesAndSizes = "Obtendo nomes e tamanhos das imagens..." -DSC_CompareSizes = "Comparando tamanhos das imagens com o espaço livre..." \ No newline at end of file +DSC_CompareSizes = "Comparando tamanhos das imagens com o espaço livre..." diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.Designer.vb b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.Designer.vb index 75041396b..2fe150386 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.Designer.vb +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MainForm Inherits System.Windows.Forms.Form @@ -153,7 +153,7 @@ Partial Class MainForm Me.GetImgInfoBtn.Name = "GetImgInfoBtn" Me.GetImgInfoBtn.Size = New System.Drawing.Size(230, 23) Me.GetImgInfoBtn.TabIndex = 1 - Me.GetImgInfoBtn.Text = "Get image information" + Me.GetImgInfoBtn.Text = GetValueFromLanguageData("MainForm.GetImageInformationButton") Me.GetImgInfoBtn.UseVisualStyleBackColor = True Me.GetImgInfoBtn.Visible = False ' @@ -165,7 +165,7 @@ Partial Class MainForm Me.ExportDrvsBtn.Name = "ExportDrvsBtn" Me.ExportDrvsBtn.Size = New System.Drawing.Size(230, 23) Me.ExportDrvsBtn.TabIndex = 1 - Me.ExportDrvsBtn.Text = "Export system drivers..." + Me.ExportDrvsBtn.Text = GetValueFromLanguageData("MainForm.ExportDriversButton") Me.ExportDrvsBtn.UseVisualStyleBackColor = True Me.ExportDrvsBtn.Visible = False ' @@ -178,7 +178,7 @@ Partial Class MainForm Me.BackButton.Name = "BackButton" Me.BackButton.Size = New System.Drawing.Size(75, 23) Me.BackButton.TabIndex = 0 - Me.BackButton.Text = "Back" + Me.BackButton.Text = GetValueFromLanguageData("MainForm.NavigationBackButtonText") Me.BackButton.UseVisualStyleBackColor = True ' 'NextButton @@ -189,7 +189,7 @@ Partial Class MainForm Me.NextButton.Name = "NextButton" Me.NextButton.Size = New System.Drawing.Size(75, 23) Me.NextButton.TabIndex = 0 - Me.NextButton.Text = "Next" + Me.NextButton.Text = GetValueFromLanguageData("MainForm.NavigationNextButtonText") Me.NextButton.UseVisualStyleBackColor = True ' 'ExitButton @@ -200,7 +200,7 @@ Partial Class MainForm Me.ExitButton.Name = "ExitButton" Me.ExitButton.Size = New System.Drawing.Size(75, 23) Me.ExitButton.TabIndex = 0 - Me.ExitButton.Text = "Exit" + Me.ExitButton.Text = GetValueFromLanguageData("MainForm.NavigationExitButtonText") Me.ExitButton.UseVisualStyleBackColor = True ' 'PageContainerPanel @@ -251,7 +251,7 @@ Partial Class MainForm Me.Label38.Name = "Label38" Me.Label38.Size = New System.Drawing.Size(758, 72) Me.Label38.TabIndex = 8 - Me.Label38.Text = resources.GetString("Label38.Text") + Me.Label38.Text = GetValueFromLanguageData("MainForm.ErrorPanel_PossibleFixes") ' 'Label37 ' @@ -261,9 +261,7 @@ Partial Class MainForm Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(758, 72) Me.Label37.TabIndex = 8 - Me.Label37.Text = "Your computer could not be prepared to boot to the next stage of operating system" & _ - " installation. Any changes made to your computer will be undone." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "See below fo" & _ - "r reasons why this process has failed:" + Me.Label37.Text = GetValueFromLanguageData("MainForm.ErrorPanel_Description") ' 'Label36 ' @@ -273,7 +271,7 @@ Partial Class MainForm Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(165, 21) Me.Label36.TabIndex = 7 - Me.Label36.Text = "We ran into a problem" + Me.Label36.Text = GetValueFromLanguageData("MainForm.ErrorPanel_Header") ' 'FinishPanel ' @@ -307,7 +305,7 @@ Partial Class MainForm Me.RestartButton.Name = "RestartButton" Me.RestartButton.Size = New System.Drawing.Size(128, 34) Me.RestartButton.TabIndex = 8 - Me.RestartButton.Text = "Restart Now" + Me.RestartButton.Text = GetValueFromLanguageData("MainForm.FinishPanel_RestartNow") Me.RestartButton.UseVisualStyleBackColor = True ' 'Label32 @@ -318,7 +316,7 @@ Partial Class MainForm Me.Label32.Name = "Label32" Me.Label32.Size = New System.Drawing.Size(758, 120) Me.Label32.TabIndex = 7 - Me.Label32.Text = resources.GetString("Label32.Text") + Me.Label32.Text = GetValueFromLanguageData("MainForm.FinishPanel_Description") ' 'Label35 ' @@ -330,7 +328,7 @@ Partial Class MainForm Me.Label35.Name = "Label35" Me.Label35.Size = New System.Drawing.Size(751, 21) Me.Label35.TabIndex = 6 - Me.Label35.Text = "Your computer will restart in 10 seconds..." + Me.Label35.Text = GetValueFromLanguageData("MainForm.FinishPanel_RestartTimer_Beginning") Me.Label35.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label33 @@ -341,7 +339,7 @@ Partial Class MainForm Me.Label33.Name = "Label33" Me.Label33.Size = New System.Drawing.Size(225, 21) Me.Label33.TabIndex = 6 - Me.Label33.Text = "Your computer needs to restart" + Me.Label33.Text = GetValueFromLanguageData("MainForm.FinishPanel_Header") ' 'InstallationPanel ' @@ -440,7 +438,7 @@ Partial Class MainForm Me.Label20.Name = "Label20" Me.Label20.Size = New System.Drawing.Size(201, 235) Me.Label20.TabIndex = 4 - Me.Label20.Text = "In your system boot manager, select """" and press ENTER" + Me.Label20.Text = GetValueFromLanguageData("MainForm.PreparationPanel_Step1") ' 'DTPEStep ' @@ -505,8 +503,7 @@ Partial Class MainForm Me.Label27.Name = "Label27" Me.Label27.Size = New System.Drawing.Size(201, 235) Me.Label27.TabIndex = 9 - Me.Label27.Text = "Specify the target disk and partition, and the index to apply." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "We will take it" & _ - " from there" + Me.Label27.Text = GetValueFromLanguageData("MainForm.PreparationPanel_Step2") ' 'WindowsStep ' @@ -571,8 +568,7 @@ Partial Class MainForm Me.Label31.Name = "Label31" Me.Label31.Size = New System.Drawing.Size(201, 235) Me.Label31.TabIndex = 9 - Me.Label31.Text = "Verify that the target operating system works the way you want." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "If the customi" & _ - "zations were successful, go ahead and perform a bigger-scale deployment." + Me.Label31.Text = GetValueFromLanguageData("MainForm.PreparationPanel_Step3") ' 'Label34 ' @@ -583,7 +579,7 @@ Partial Class MainForm Me.Label34.Name = "Label34" Me.Label34.Size = New System.Drawing.Size(279, 15) Me.Label34.TabIndex = 5 - Me.Label34.Text = "API Progress: 0" + Me.Label34.Text = String.Format(GetValueFromLanguageData("MainForm.PreparationPanel_ApiProgress"), 0) Me.Label34.TextAlign = System.Drawing.ContentAlignment.TopRight Me.Label34.Visible = False ' @@ -596,7 +592,7 @@ Partial Class MainForm Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(55, 15) Me.Label19.TabIndex = 5 - Me.Label19.Text = "Progress:" + Me.Label19.Text = GetValueFromLanguageData("MainForm.PreparationPanel_GenericProgress") ' 'Label17 ' @@ -606,7 +602,7 @@ Partial Class MainForm Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(758, 72) Me.Label17.TabIndex = 5 - Me.Label17.Text = resources.GetString("Label17.Text") + Me.Label17.Text = GetValueFromLanguageData("MainForm.PreparationPanel_Description") ' 'Label18 ' @@ -616,7 +612,7 @@ Partial Class MainForm Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(298, 21) Me.Label18.TabIndex = 4 - Me.Label18.Text = "Preparing your computer for installation..." + Me.Label18.Text = GetValueFromLanguageData("MainForm.PreparationPanel_Header") ' 'ExplanationPanel ' @@ -637,7 +633,7 @@ Partial Class MainForm Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(758, 206) Me.Label15.TabIndex = 5 - Me.Label15.Text = resources.GetString("Label15.Text") + Me.Label15.Text = GetValueFromLanguageData("MainForm.ExplanationPanel_Description") ' 'Label16 ' @@ -647,7 +643,7 @@ Partial Class MainForm Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(215, 21) Me.Label16.TabIndex = 4 - Me.Label16.Text = "About the installation process" + Me.Label16.Text = GetValueFromLanguageData("MainForm.ExplanationPanel_Header") ' 'ImageInfoPanel ' @@ -674,7 +670,7 @@ Partial Class MainForm Me.GroupBox2.Size = New System.Drawing.Size(755, 176) Me.GroupBox2.TabIndex = 4 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Information of installation image" + Me.GroupBox2.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageInfoGroup") ' 'ListView1 ' @@ -693,27 +689,27 @@ Partial Class MainForm ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "#" + Me.ColumnHeader1.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_IndexColumnHeader") Me.ColumnHeader1.Width = 26 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image name" + Me.ColumnHeader2.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageName") Me.ColumnHeader2.Width = 188 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Image description" + Me.ColumnHeader3.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageDescription") Me.ColumnHeader3.Width = 211 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Image version" + Me.ColumnHeader4.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageVersion") Me.ColumnHeader4.Width = 152 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Image architecture" + Me.ColumnHeader5.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageArchitecture") Me.ColumnHeader5.Width = 141 ' 'GroupBox1 @@ -729,7 +725,7 @@ Partial Class MainForm Me.GroupBox1.Size = New System.Drawing.Size(755, 100) Me.GroupBox1.TabIndex = 4 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Information of boot image" + Me.GroupBox1.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageInfoGroup") ' 'Label10 ' @@ -740,7 +736,7 @@ Partial Class MainForm Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(109, 15) Me.Label10.TabIndex = 3 - Me.Label10.Text = "Image architecture:" + Me.Label10.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageArchitecture") ' 'Label9 ' @@ -751,7 +747,7 @@ Partial Class MainForm Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(84, 15) Me.Label9.TabIndex = 3 - Me.Label9.Text = "Image version:" + Me.Label9.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageVersion") ' 'Label13 ' @@ -762,7 +758,7 @@ Partial Class MainForm Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(46, 15) Me.Label13.TabIndex = 3 - Me.Label13.Text = "" + Me.Label13.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageArchitecturePlaceholder") ' 'Label12 ' @@ -773,7 +769,7 @@ Partial Class MainForm Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(61, 15) Me.Label12.TabIndex = 3 - Me.Label12.Text = "" + Me.Label12.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageVersionPlaceholder") ' 'Label11 ' @@ -784,7 +780,7 @@ Partial Class MainForm Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(53, 15) Me.Label11.TabIndex = 3 - Me.Label11.Text = "" + Me.Label11.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageNamePlaceholder") ' 'Label8 ' @@ -795,7 +791,7 @@ Partial Class MainForm Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(76, 15) Me.Label8.TabIndex = 3 - Me.Label8.Text = "Image name:" + Me.Label8.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageName") ' 'Label6 ' @@ -806,7 +802,7 @@ Partial Class MainForm Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(46, 15) Me.Label6.TabIndex = 3 - Me.Label6.Text = "" + Me.Label6.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_ComputerArchitecturePlaceholder") ' 'Label7 ' @@ -817,7 +813,7 @@ Partial Class MainForm Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(471, 15) Me.Label7.TabIndex = 3 - Me.Label7.Text = "The architectures of the boot image and your computer are incompatible" + Me.Label7.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_ImageArchitectureMismatchError") Me.Label7.TextAlign = System.Drawing.ContentAlignment.TopRight Me.Label7.Visible = False ' @@ -830,7 +826,7 @@ Partial Class MainForm Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(130, 15) Me.Label5.TabIndex = 3 - Me.Label5.Text = "Computer architecture:" + Me.Label5.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_ComputerArchitecture") ' 'Label14 ' @@ -840,7 +836,7 @@ Partial Class MainForm Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(758, 83) Me.Label14.TabIndex = 3 - Me.Label14.Text = resources.GetString("Label14.Text") + Me.Label14.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_DIM_Notice") ' 'Label3 ' @@ -850,8 +846,7 @@ Partial Class MainForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(758, 47) Me.Label3.TabIndex = 3 - Me.Label3.Text = "Check if this disc image contains the Windows image you want to test and click Ne" & _ - "xt" + Me.Label3.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_Description") ' 'Label4 ' @@ -861,7 +856,7 @@ Partial Class MainForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(218, 21) Me.Label4.TabIndex = 2 - Me.Label4.Text = "Review image file information" + Me.Label4.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_Header") ' 'DisclaimerPanel ' @@ -882,7 +877,7 @@ Partial Class MainForm Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(210, 19) Me.CheckBox1.TabIndex = 3 - Me.CheckBox1.Text = "I agree to the disclaimers in all tabs" + Me.CheckBox1.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_DisclaimerCheck") Me.CheckBox1.UseVisualStyleBackColor = True ' 'TabControl1 @@ -904,7 +899,7 @@ Partial Class MainForm Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) Me.TabPage1.Size = New System.Drawing.Size(747, 369) Me.TabPage1.TabIndex = 0 - Me.TabPage1.Text = "Warranty disclaimers" + Me.TabPage1.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_ContentTabTitle1") Me.TabPage1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -919,7 +914,7 @@ Partial Class MainForm Me.TextBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical Me.TextBox1.Size = New System.Drawing.Size(741, 363) Me.TextBox1.TabIndex = 0 - Me.TextBox1.Text = resources.GetString("TextBox1.Text") + Me.TextBox1.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_Warranties") ' 'TabPage2 ' @@ -929,7 +924,7 @@ Partial Class MainForm Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) Me.TabPage2.Size = New System.Drawing.Size(747, 369) Me.TabPage2.TabIndex = 1 - Me.TabPage2.Text = "Use of this disc image" + Me.TabPage2.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_ContentTabTitle2") Me.TabPage2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -944,7 +939,7 @@ Partial Class MainForm Me.TextBox2.ScrollBars = System.Windows.Forms.ScrollBars.Vertical Me.TextBox2.Size = New System.Drawing.Size(741, 363) Me.TextBox2.TabIndex = 1 - Me.TextBox2.Text = resources.GetString("TextBox2.Text") + Me.TextBox2.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_UseOfDiscImages") ' 'TabPage3 ' @@ -953,7 +948,7 @@ Partial Class MainForm Me.TabPage3.Name = "TabPage3" Me.TabPage3.Size = New System.Drawing.Size(747, 369) Me.TabPage3.TabIndex = 2 - Me.TabPage3.Text = "Licenses" + Me.TabPage3.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_ContentTabTitle3") Me.TabPage3.UseVisualStyleBackColor = True ' 'TextBox3 @@ -977,8 +972,7 @@ Partial Class MainForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(758, 47) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Please read these notes and agree to them before continuing with OS installation." & _ - " Switch tabs to read specific information and click Next" + Me.Label2.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_Description") ' 'Label1 ' @@ -988,7 +982,7 @@ Partial Class MainForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(246, 21) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Disclaimers and important notices" + Me.Label1.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_Header") ' 'SlideshowTimer ' @@ -1019,7 +1013,7 @@ Partial Class MainForm ' 'ExportDrvsFBD ' - Me.ExportDrvsFBD.Description = "Specify the path to export drivers to:" + Me.ExportDrvsFBD.Description = GetValueFromLanguageData("MainForm.ExportDriversFolderDialog") Me.ExportDrvsFBD.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'ExportDrvsBW diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.resx b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.resx index 90a8fb65c..8aa3e9941 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.resx +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,54 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - To fix this problem, try restarting your computer and doing this process again. If this error occurs one more time, consider checking the health of your operating system and/or whether or not other software is conflicting with this operation. - -We would also like to know about this problem. To do this, report an issue on the GitHub repository. - - - This preliminary stage of OS installation has completed successfully and your computer needs to restart. - -Your computer will restart automatically in 10 seconds or when you click Restart Now. - -When you boot to the Preinstallation Environment, you will be prompted to insert the disc image. Please leave it inserted. - - - Please wait while we prepare your computer for OS installation. This will take a couple of minutes, after which your computer will restart automatically. - -Once your computer has been prepared for installation, follow these 3 steps: - - - This preliminary stage will configure your computer to boot to the DISMTools Preinstallation Environment, in which you will be able to perform operating system installation. - -This is done by copying all disc image files (minus the installation image) to your local disk, and configuring a boot entry to the Preinstallation Environment. - -Do note that improper selections during operating system installation could result in loss of data. Make sure that you specify the correct settings. - -This process will take a couple of minutes, depending on the speed of your computer. - - -Also note that this is prerelease software. Report any issues you may have to the developer for them to be fixed by a newer build. - - - Your computer may need third-party disk controllers before you may be able to see your disk drives. Use the Driver Installation Module in the Operating System installer to install these drivers. - -If this disc image does not contain the Windows image you want to test, exit the installation and recreate the disc image with the correct Windows image. - - - The Preinstallation Environment (PE) Helper and all helper applications and scripts (such as the Driver Installation Module (DIM) and the HotInstall installer) are provided AS IS, without any warranty of any kind. - -We are not responsible for any damage done to your computer. Make sure to configure backups of your data. - --- Notes regarding Ventoy drives: - -If you have started this installation using an ISO file from a Ventoy drive, you may not be able to install the operating system. Please make sure that the ISO file has been flashed to a USB drive. - - - This disc image, and any other disc images created with either DISMTools or the Preinstallation Environment (PE) Helper are meant for testing customized Windows images. This relies on you having a method to test the image, such as a spare system that could act as the test system, or a virtual machine. - -While you can use these disc images for personal or business-related purposes, redistribution of these disc images online is strictly prohibited, and we are not responsible for the actions you perform. - 17, 17 diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.vb b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.vb index 741fe50b6..f95a26308 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.vb +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/MainForm.vb @@ -1,4 +1,4 @@ -Imports Microsoft.Dism +Imports Microsoft.Dism Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Management @@ -41,13 +41,11 @@ Public Class MainForm Dim installPath As String Sub ChangeLanguage(LanguageCode As String) - If Not File.Exists(Path.Combine(Application.StartupPath, "Languages", "lang_" & LanguageCode & ".ini")) Then - LanguageCode = "en" - End If - LoadLanguageFile(Path.Combine(Application.StartupPath, "Languages", "lang_" & LanguageCode & ".ini")) - BackButton.Text = GetValueFromLanguageData("Common.Common_Back") - NextButton.Text = GetValueFromLanguageData("Common.Common_Next") - ExitButton.Text = GetValueFromLanguageData("Common.Common_Cancel") + Dim languageFile As String = GetInstallerLanguageFilePath(LanguageCode) + LoadLanguageFile(languageFile) + BackButton.Text = GetValueFromLanguageData("MainForm.NavigationBackButtonText") + NextButton.Text = GetValueFromLanguageData("MainForm.NavigationNextButtonText") + ExitButton.Text = GetValueFromLanguageData("MainForm.NavigationExitButtonText") BootMgrEntryName = GetValueFromLanguageData("MainForm.BootMgrEntryName") Text = GetValueFromLanguageData("MainForm.WndTitle") Label1.Text = GetValueFromLanguageData("MainForm.DisclaimerPanel_Header") @@ -65,10 +63,15 @@ Public Class MainForm Label9.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageVersion") Label10.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageArchitecture") GroupBox2.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageInfoGroup") + ListView1.Columns(0).Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_IndexColumnHeader") ListView1.Columns(1).Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageName") ListView1.Columns(2).Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageDescription") ListView1.Columns(3).Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageVersion") ListView1.Columns(4).Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_InstallImageArchitecture") + Label13.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageArchitecturePlaceholder") + Label12.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageVersionPlaceholder") + Label11.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_BootImageNamePlaceholder") + Label6.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_ComputerArchitecturePlaceholder") Label7.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_ImageArchitectureMismatchError") Label5.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_ComputerArchitecture") Label14.Text = GetValueFromLanguageData("MainForm.ReviewImageInfo_DIM_Notice") @@ -112,7 +115,7 @@ Public Class MainForm Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load InitDynaLog() Visible = False - ChangeLanguage(My.Computer.Info.InstalledUICulture.TwoLetterISOLanguageName) + ChangeLanguage(ResolveInstallerLanguageCode()) ' Because of the DISM API, Windows 7 compatibility is out the window (no pun intended) If Environment.OSVersion.Version.Major = 6 And Environment.OSVersion.Version.Minor < 2 Then @@ -844,7 +847,7 @@ Public Class MainForm Private Sub InstallerBW_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles InstallerBW.ProgressChanged Label19.Text = ProgressMessage ProgressBar1.Value = e.ProgressPercentage - Label34.Text = "API Progress: " & DismProgressPercentage & "%" + Label34.Text = String.Format(GetValueFromLanguageData("MainForm.PreparationPanel_ApiProgress"), DismProgressPercentage) End Sub Private Sub InstallerBW_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles InstallerBW.RunWorkerCompleted @@ -959,26 +962,9 @@ Public Class MainForm Dim imageInfoCollection As DismImageInfoCollection = GetImageInformation(installPath) If imageInfoCollection IsNot Nothing Then Dim imageCount As Integer = imageInfoCollection.Count - TextContents &= "Information summary for " & imageCount & " image(s):" & CrLf & CrLf + TextContents &= String.Format(GetValueFromLanguageData("MainForm.ImageInformationSummary_Header"), imageCount) & CrLf & CrLf For Each imageInfo As DismImageInfo In imageInfoCollection - TextContents &= String.Format("Image {0} of {1}:" & CrLf & CrLf & - " - Image version: {2}" & CrLf & - " - Image name: {3}" & CrLf & - " - Image description: {4}" & CrLf & - " - Image size: {5} bytes ({6})" & CrLf & - " - Architecture: {7}" & CrLf & - " - HAL: {8}" & CrLf & - " - Service Pack build: {9}" & CrLf & - " - Service Pack level: {10}" & CrLf & - " - Edition: {11}" & CrLf & - " - Installation Type: {12}" & CrLf & - " - Product type: {13}" & CrLf & - " - Product suite: {14}" & CrLf & - " - System root directory: {15}" & CrLf & - " - File count: {16} file(s) in {17} folder(s)" & CrLf & - " - Creation date: {18}" & CrLf & - " - Modification date: {19}" & CrLf & - " - Languages: {20}" & CrLf & CrLf, + TextContents &= String.Format(GetValueFromLanguageData("MainForm.ImageInformationSummary_ImageBlock"), imageInfoCollection.IndexOf(imageInfo) + 1, imageCount, imageInfo.ProductVersion.ToString(), imageInfo.ImageName, diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/SplashForm.Designer.vb b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/SplashForm.Designer.vb index d06b91580..620c9cd90 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/SplashForm.Designer.vb +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/SplashForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SplashForm Inherits System.Windows.Forms.Form @@ -38,7 +38,7 @@ Partial Class SplashForm Me.VersionLabel.Name = "VersionLabel" Me.VersionLabel.Size = New System.Drawing.Size(529, 54) Me.VersionLabel.TabIndex = 0 - Me.VersionLabel.Text = "HotInstall OS Installer, version " + Me.VersionLabel.Text = GetValueFromLanguageData("SplashScreen.VersionLabel") Me.VersionLabel.TextAlign = System.Drawing.ContentAlignment.BottomRight ' 'Label1 @@ -50,7 +50,7 @@ Partial Class SplashForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(496, 64) Me.Label1.TabIndex = 3 - Me.Label1.Text = "Operating System Installation" + Me.Label1.Text = GetValueFromLanguageData("SplashScreen.OSInstTitle") Me.Label1.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'PictureBox1 @@ -73,7 +73,7 @@ Partial Class SplashForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(845, 64) Me.Label2.TabIndex = 4 - Me.Label2.Text = "Setup is starting..." + Me.Label2.Text = GetValueFromLanguageData("SplashScreen.OSInstStatus_StartingUp") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'SplashForm @@ -99,7 +99,7 @@ Partial Class SplashForm Me.ShowIcon = False Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "HotInstall Operating System Installer" + Me.Text = GetValueFromLanguageData("SplashScreen.WindowTitle") Me.WindowState = System.Windows.Forms.FormWindowState.Maximized CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/SplashForm.vb b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/SplashForm.vb index 1bbf12280..c4a00c44b 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/SplashForm.vb +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/SplashForm.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Public Class SplashForm @@ -11,10 +11,10 @@ Public Class SplashForm Public TestBCD As Boolean = Environment.GetCommandLineArgs().Contains("/bcdtest") Sub ChangeLanguage(LanguageCode As String) - If Not File.Exists(Path.Combine(Application.StartupPath, "Languages", "lang_" & LanguageCode & ".ini")) Then - LanguageCode = "en" - End If - LoadLanguageFile(Path.Combine(Application.StartupPath, "Languages", "lang_" & LanguageCode & ".ini")) + Dim languageFile As String = GetInstallerLanguageFilePath(LanguageCode) + LoadLanguageFile(languageFile) + Text = GetValueFromLanguageData("SplashScreen.WindowTitle") + VersionLabel.Text = GetValueFromLanguageData("SplashScreen.VersionLabel") Label1.Text = GetValueFromLanguageData("SplashScreen.OSInstTitle") Label2.Text = GetValueFromLanguageData("SplashScreen.OSInstStatus_StartingUp") End Sub @@ -25,7 +25,7 @@ Public Class SplashForm BackgroundPicture = Image.FromFile(Application.StartupPath & "\Resources\SplashScreen\background.jpg") ResizeImage() End If - ChangeLanguage(My.Computer.Info.InstalledUICulture.TwoLetterISOLanguageName) + ChangeLanguage(ResolveInstallerLanguageCode()) ' Change status font size Dim ReferenceSize As Size = New Size(1024, 768) If Width <= ReferenceSize.Width AndAlso Height <= ReferenceSize.Height Then diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Util/LanguageFileParser.vb b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Util/LanguageFileParser.vb index d474d8dc5..7d36c1e3f 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Util/LanguageFileParser.vb +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/Installer/Util/LanguageFileParser.vb @@ -3,9 +3,13 @@ Imports IniParser.Model Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Text +Imports System.Windows.Forms +Imports System.Collections.Generic Module LanguageFileParser + Private Const DefaultLanguageCode As String = "en-US" + Dim LanguageData As IniData Sub LoadLanguageFile(LanguageFile As String) @@ -18,22 +22,134 @@ Module LanguageFileParser LanguageData = parser.ReadData(Reader) End Using Catch ex As Exception - Throw ex + Throw End Try End Sub - Function GetValueFromLanguageData(ItemKey As String) As String - If LanguageData IsNot Nothing Then + Public Function ResolveInstallerLanguageCode() As String + Dim availableLanguages As Dictionary(Of String, String) = GetAvailableInstallerLanguages() + Dim explicitLanguage As String = ResolveLanguageFromCommandLine(availableLanguages) + If explicitLanguage <> "" Then Return explicitLanguage + + If availableLanguages.ContainsKey(DefaultLanguageCode) Then Return DefaultLanguageCode + For Each languageCode As String In availableLanguages.Keys + Return languageCode + Next + + Return DefaultLanguageCode + End Function + + Public Function GetInstallerLanguageFilePath(LanguageCode As String) As String + Dim availableLanguages As Dictionary(Of String, String) = GetAvailableInstallerLanguages() + Dim normalizedCode As String = NormalizeLanguageCode(LanguageCode, availableLanguages) + + If normalizedCode = "" AndAlso availableLanguages.ContainsKey(DefaultLanguageCode) Then + normalizedCode = DefaultLanguageCode + End If + + If normalizedCode <> "" AndAlso availableLanguages.ContainsKey(normalizedCode) Then + Return availableLanguages(normalizedCode) + End If + + Return "" + End Function + + Private Function GetAvailableInstallerLanguages() As Dictionary(Of String, String) + Dim availableLanguages As New Dictionary(Of String, String)(StringComparer.OrdinalIgnoreCase) + Dim languageDirectory As String = Path.Combine(Application.StartupPath, "Languages") + If Not Directory.Exists(languageDirectory) Then Return availableLanguages + + Dim languageFiles As String() = Directory.GetFiles(languageDirectory, "*.ini", SearchOption.TopDirectoryOnly) + Array.Sort(languageFiles, StringComparer.OrdinalIgnoreCase) + + For Each languageFile As String In languageFiles Try - Dim KeySections() As String = ItemKey.Split(".") - Return LanguageData(KeySections(0))(KeySections(1)).Replace(Quote, "").Replace("{quot;}", Quote).Replace("{crlf;}", CrLf) - Catch ex As Exception - Return ItemKey + Dim parser = New FileIniDataParser() + Dim languageFileData As IniData + Using reader As New StreamReader(languageFile, Encoding.UTF8) + languageFileData = parser.ReadData(reader) + End Using + + Dim languageCode As String = "" + Try + languageCode = languageFileData("LanguageFileInformation")("LanguageCode").Replace(Quote, "").Trim() + Catch + End Try + + If languageCode <> "" AndAlso Not availableLanguages.ContainsKey(languageCode) Then + availableLanguages.Add(languageCode, languageFile) + End If + Catch End Try - Else - Return ItemKey + Next + + Return availableLanguages + End Function + + Private Function ResolveLanguageFromCommandLine(availableLanguages As Dictionary(Of String, String)) As String + Dim args() As String = Environment.GetCommandLineArgs() + For index As Integer = 0 To args.Length - 1 + Dim argument As String = args(index) + If String.IsNullOrWhiteSpace(argument) Then Continue For + + Dim value As String = "" + If argument.StartsWith("/lang:", StringComparison.OrdinalIgnoreCase) OrElse argument.StartsWith("/lang=", StringComparison.OrdinalIgnoreCase) Then + value = argument.Substring(6) + ElseIf argument.StartsWith("--lang=", StringComparison.OrdinalIgnoreCase) Then + value = argument.Substring(7) + ElseIf argument.StartsWith("--language=", StringComparison.OrdinalIgnoreCase) Then + value = argument.Substring(11) + ElseIf (argument.Equals("/lang", StringComparison.OrdinalIgnoreCase) OrElse argument.Equals("--lang", StringComparison.OrdinalIgnoreCase) OrElse argument.Equals("--language", StringComparison.OrdinalIgnoreCase)) AndAlso index + 1 < args.Length Then + value = args(index + 1) + End If + + Dim normalized As String = NormalizeLanguageCode(value, availableLanguages) + If normalized <> "" Then Return normalized + Next + + Return "" + End Function + + Private Function NormalizeLanguageCode(value As String, availableLanguages As Dictionary(Of String, String)) As String + If String.IsNullOrWhiteSpace(value) Then Return "" + + Dim cleaned As String = value.Trim().Trim(ChrW(34)).Replace("_", "-") + For Each languageCode As String In availableLanguages.Keys + If languageCode.Equals(cleaned, StringComparison.OrdinalIgnoreCase) Then Return languageCode + Next + + Dim neutralLanguage As String = cleaned.Split("-"c)(0) + For Each languageCode As String In availableLanguages.Keys + Dim availableNeutralLanguage As String = languageCode.Split("-"c)(0) + If availableNeutralLanguage.Equals(neutralLanguage, StringComparison.OrdinalIgnoreCase) Then Return languageCode + Next + + Return "" + End Function + + Function GetValueFromLanguageData(ItemKey As String) As String + If LanguageData Is Nothing Then + Throw New InvalidOperationException("HotInstall language data has not been loaded.") End If - Return Nothing + + If String.IsNullOrWhiteSpace(ItemKey) OrElse Not ItemKey.Contains("."c) Then + Throw New InvalidOperationException("HotInstall localization key is invalid: " & If(ItemKey, "")) + End If + + Dim separatorIndex As Integer = ItemKey.LastIndexOf("."c) + Dim sectionName As String = ItemKey.Substring(0, separatorIndex) + Dim valueName As String = ItemKey.Substring(separatorIndex + 1) + + Try + Dim value As String = LanguageData(sectionName)(valueName) + If value Is Nothing Then Throw New KeyNotFoundException() + Return value.Replace(Quote, "").Replace("{quot;}", Quote).Replace("{crlf;}", CrLf).Replace("{space;}", " ").Replace("{tab;}", vbTab) + Catch ex As Exception + Throw New InvalidOperationException("HotInstall localization key was not found." & CrLf & CrLf & + "Section: " & sectionName & CrLf & + "Key: " & valueName & CrLf & + "Full key: " & ItemKey, ex) + End Try End Function End Module diff --git a/Helpers/extps1/PE_Helper/tools/HotInstall/README.md b/Helpers/extps1/PE_Helper/tools/HotInstall/README.md index e47c7e45a..46f96fb96 100644 --- a/Helpers/extps1/PE_Helper/tools/HotInstall/README.md +++ b/Helpers/extps1/PE_Helper/tools/HotInstall/README.md @@ -23,6 +23,12 @@ HotInstall is included with the ISO files you create with DISMTools. To start th Then, follow the steps of the wizard. +## Localization + +HotInstall discovers its own language files dynamically from the `Languages` folder. Each INI must contain `LanguageCode` and `LanguageName` in `[LanguageFileInformation]`. The file name is not used as the language identifier. + +The PE Helper passes the current DISMTools `LanguageCode` to HotInstall. HotInstall uses the matching translation when it exists and falls back to English, `en-US`, when it does not. Only translations that actually exist in the HotInstall package are included. + > [!NOTE] > Make sure that you created your ISO file with the correct Windows image to test. You will be able to see some information about this image. > diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ApplicationEvents.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ApplicationEvents.vb new file mode 100644 index 000000000..102c71441 --- /dev/null +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ApplicationEvents.vb @@ -0,0 +1,11 @@ +Namespace My + + Partial Friend Class MyApplication + + Private Sub MyApplication_Startup(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup + LocalizationService.Initialize() + End Sub + + End Class + +End Namespace diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/MainForm.Designer.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/MainForm.Designer.vb index 7100f284b..0fe1d22be 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/MainForm.Designer.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/MainForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MainForm Inherits System.Windows.Forms.Form @@ -87,7 +87,7 @@ Partial Class MainForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(575, 48) Me.Label1.TabIndex = 1 - Me.Label1.Text = "What do you want to do?" + Me.Label1.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("WhatWant.Label") Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox2 @@ -115,7 +115,7 @@ Partial Class MainForm Me.LinkLabel1.Size = New System.Drawing.Size(255, 25) Me.LinkLabel1.TabIndex = 3 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Install an Operating System" + Me.LinkLabel1.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("Install.Operating.Link") ' 'PictureBox3 ' @@ -142,7 +142,7 @@ Partial Class MainForm Me.LinkLabel2.Size = New System.Drawing.Size(242, 25) Me.LinkLabel2.TabIndex = 3 Me.LinkLabel2.TabStop = True - Me.LinkLabel2.Text = "Restart to Installation Media" + Me.LinkLabel2.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("Restart.Install.Media.Link") ' 'PictureBox4 ' @@ -169,7 +169,7 @@ Partial Class MainForm Me.LinkLabel3.Size = New System.Drawing.Size(413, 25) Me.LinkLabel3.TabIndex = 3 Me.LinkLabel3.TabStop = True - Me.LinkLabel3.Text = "Start a PXE Helper Server for Network Installation" + Me.LinkLabel3.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("StartPXE.Link") ' 'ExitLink ' @@ -186,7 +186,7 @@ Partial Class MainForm Me.ExitLink.Size = New System.Drawing.Size(71, 25) Me.ExitLink.TabIndex = 3 Me.ExitLink.TabStop = True - Me.ExitLink.Text = "Exit" + Me.ExitLink.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("Exit.Button") Me.ExitLink.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'MainMenuPanel @@ -222,7 +222,7 @@ Partial Class MainForm Me.LinkLabel6.Size = New System.Drawing.Size(237, 25) Me.LinkLabel6.TabIndex = 3 Me.LinkLabel6.TabStop = True - Me.LinkLabel6.Text = "Explore contents of this disc" + Me.LinkLabel6.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("Explore.Contents.Disc.Link") ' 'LinkLabel4 ' @@ -238,7 +238,7 @@ Partial Class MainForm Me.LinkLabel4.Size = New System.Drawing.Size(290, 25) Me.LinkLabel4.TabIndex = 3 Me.LinkLabel4.TabStop = True - Me.LinkLabel4.Text = "Prepare System for Image Capture" + Me.LinkLabel4.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("Prepare.System.Image.Link") ' 'PictureBox7 ' @@ -275,8 +275,7 @@ Partial Class MainForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(670, 45) Me.Label2.TabIndex = 5 - Me.Label2.Text = "PE Helper Scripts and Components (c) 2024-2026 CodingWonders Software" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Compilatio" & _ - "n Scripts (c) 2022 CT Tech Group LLC" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "FOG PowerShell API (c) 2020 JJ Fullmer" + Me.Label2.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("PE.Helper.Message") Me.Label2.TextAlign = System.Drawing.ContentAlignment.BottomLeft ' 'PxeHelpersMenu @@ -322,7 +321,7 @@ Partial Class MainForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(455, 25) Me.Label3.TabIndex = 5 - Me.Label3.Text = "Start a PXE Helper Server for Network Installation" + Me.Label3.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("StartPXE.Label") ' 'LinkLabel5 ' @@ -338,7 +337,7 @@ Partial Class MainForm Me.LinkLabel5.Size = New System.Drawing.Size(50, 25) Me.LinkLabel5.TabIndex = 3 Me.LinkLabel5.TabStop = True - Me.LinkLabel5.Text = "Back" + Me.LinkLabel5.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("Back.Button") ' 'LinkLabel10 ' @@ -354,7 +353,7 @@ Partial Class MainForm Me.LinkLabel10.Size = New System.Drawing.Size(326, 25) Me.LinkLabel10.TabIndex = 3 Me.LinkLabel10.TabStop = True - Me.LinkLabel10.Text = "Copy installation image to WDS server" + Me.LinkLabel10.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("Copy.Install.Image.Link") ' 'LinkLabel9 ' @@ -370,7 +369,7 @@ Partial Class MainForm Me.LinkLabel9.Size = New System.Drawing.Size(270, 25) Me.LinkLabel9.TabIndex = 3 Me.LinkLabel9.TabStop = True - Me.LinkLabel9.Text = "Copy boot image to WDS server" + Me.LinkLabel9.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("Copy.Boot.Image.Link") ' 'LinkLabel7 ' @@ -386,7 +385,7 @@ Partial Class MainForm Me.LinkLabel7.Size = New System.Drawing.Size(268, 25) Me.LinkLabel7.TabIndex = 3 Me.LinkLabel7.TabStop = True - Me.LinkLabel7.Text = "Start PXE Helper Server for FOG" + Me.LinkLabel7.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("StartPXE.PXEFOG.Link") ' 'LinkLabel8 ' @@ -402,7 +401,7 @@ Partial Class MainForm Me.LinkLabel8.Size = New System.Drawing.Size(481, 25) Me.LinkLabel8.TabIndex = 3 Me.LinkLabel8.TabStop = True - Me.LinkLabel8.Text = "Start PXE Helper Server for Windows Deployment Services" + Me.LinkLabel8.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("StartPXE.PXE.Windows.Link") ' 'PictureBox11 ' @@ -480,7 +479,7 @@ Partial Class MainForm Me.MaximizeBox = False Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "DISMTools Preinstallation Environment" + Me.Text = LocalizationService.ForSection("PEHelper.Designer.Main")("DISM.Tools.PE.Label") CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/MainForm.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/MainForm.vb index 2e402b0e6..f8f77ac88 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/MainForm.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/MainForm.vb @@ -1,11 +1,10 @@ -Imports Microsoft.Win32 +Imports Microsoft.Win32 Imports System.IO -Imports Microsoft.VisualBasic.ControlChars Imports System.ComponentModel Public Class MainForm - Private RestartMessage As String, ProcessExitCodeMessage As String + Private RestartMessage As String Friend AutoCapture As Boolean = False Friend CopyProfile As Boolean = False @@ -24,88 +23,20 @@ Public Class MainForm PictureBox4.Image = If(instTypeVal.ToLower().Contains("server"), My.Resources.arrow_normal, My.Resources.arrow_disabled) PictureBox4.Enabled = (instTypeVal.ToLower().Contains("server")) - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - RestartMessage = "This will restart your computer. Make sure you have configured your computer to boot via installation media. Do you want to restart?" - ProcessExitCodeMessage = "Process exited with code 0x{0}:" & CrLf & CrLf & "{1}" - Label1.Text = "What do you want to do?" - Label3.Text = "Start a PXE Helper Server for Network Installation" - LinkLabel1.Text = "Install an Operating System" - LinkLabel2.Text = "Restart to Installation Media" - LinkLabel3.Text = "Start a PXE Helper Server for Network Installation" - LinkLabel4.Text = "Prepare System for Image Capture" - LinkLabel5.Text = "Back" - LinkLabel6.Text = "Explore contents of this disc" - LinkLabel7.Text = "Start PXE Helper Server for FOG" - LinkLabel8.Text = "Start PXE Helper Server for Windows Deployment Services" - LinkLabel9.Text = "Copy boot image to WDS server..." - ExitLink.Text = "Exit" - pxeServerPortSwitcherMessage = "Hold down SHIFT to change the port to use for this PXE Helper Server" - Case "ESN" - RestartMessage = "Esto reiniciará su equipo. Asegúrese de haber configurado el equipo para iniciar este medio de instalación. ¿Desea reiniciar?" - ProcessExitCodeMessage = "El proceso terminó con código 0x{0}:" & CrLf & CrLf & "{1}" - Label1.Text = "¿Qué desea hacer?" - Label3.Text = "Iniciar un servidor de PXE Helpers para instalación en red" - LinkLabel1.Text = "Instalar un sistema operativo" - LinkLabel2.Text = "Reiniciar desde el medio de instalación" - LinkLabel3.Text = "Iniciar un servidor de PXE Helpers para instalación en red" - LinkLabel4.Text = "Preparar el sistema para captura de imágenes" - LinkLabel5.Text = "Atrás" - LinkLabel6.Text = "Explorar los contenidos de este disco" - LinkLabel7.Text = "Iniciar el servidor de PXE Helpers para FOG" - LinkLabel8.Text = "Iniciar el servidor de PXE Helpers para WDS" - LinkLabel9.Text = "Copiar imagen de arranque al servidor WDS..." - ExitLink.Text = "Salir" - pxeServerPortSwitcherMessage = "Mantenga pulsado SHIFT para cambiar el puerto a usar para este servidor de PXE Helpers" - Case "FRA" - RestartMessage = "Votre ordinateur va redémarrer. Assurez-vous qu’il est configuré pour démarrer sur le média d’installation. Voulez-vous redémarrer ?" - ProcessExitCodeMessage = "Processus terminé avec le code 0x{0} :" & CrLf & CrLf & "{1}" - Label1.Text = "Que voulez-vous faire ?" - Label3.Text = "Démarrer un serveur PXE Helper pour l’installation réseau" - LinkLabel1.Text = "Installer un système d’exploitation" - LinkLabel2.Text = "Redémarrer sur le média d’installation" - LinkLabel3.Text = "Démarrer un serveur PXE Helper pour l’installation réseau" - LinkLabel4.Text = "Préparer le système pour la capture d’image" - LinkLabel5.Text = "Retour" - LinkLabel6.Text = "Explorer le contenu de ce disque" - LinkLabel7.Text = "Démarrer un serveur PXE Helper pour FOG" - LinkLabel8.Text = "Démarrer un serveur PXE Helper pour WDS" - LinkLabel9.Text = "Copier l'image de démarrage sur le serveur WDS..." - ExitLink.Text = "Sortie" - pxeServerPortSwitcherMessage = "Maintenez la touche MAJ enfoncée pour modifier le port à utiliser pour ce serveur PXE Helper" - Case "PTB", "PTG" - RestartMessage = "O computador será reiniciado. Certifique-se de que está configurado para iniciar pelo meio de instalação. Deseja reiniciar?" - ProcessExitCodeMessage = "Processo terminou com o código 0x{0}:" & CrLf & CrLf & "{1}" - Label1.Text = "O que deseja fazer?" - Label3.Text = "Iniciar servidor PXE Helper para instalação em rede" - LinkLabel1.Text = "Instalar um sistema operativo" - LinkLabel2.Text = "Reiniciar para o meio de instalação" - LinkLabel3.Text = "Iniciar servidor PXE Helper para instalação em rede" - LinkLabel4.Text = "Preparar sistema para captura de imagem" - LinkLabel5.Text = "Voltar" - LinkLabel6.Text = "Explore o conteúdo deste disco" - LinkLabel7.Text = "Iniciar servidor PXE Helper para FOG" - LinkLabel8.Text = "Iniciar servidor PXE Helper para WDS" - LinkLabel9.Text = "Copiar imagem de arranque para o servidor WDS..." - ExitLink.Text = "Sair" - pxeServerPortSwitcherMessage = "Mantenha premida a tecla SHIFT para alterar a porta a utilizar neste servidor auxiliar PXE" - Case "ITA" - RestartMessage = "Il computer verrà riavviato. Assicurati che sia configurato per avviarsi dal supporto di installazione. Vuoi riavviare?" - ProcessExitCodeMessage = "Processo completato con codice 0x{0}:" & CrLf & CrLf & "{1}" - Label1.Text = "Cosa vuoi fare?" - Label3.Text = "Avvia server PXE Helper per installazione di rete" - LinkLabel1.Text = "Installa un sistema operativo" - LinkLabel2.Text = "Riavvia con il supporto di installazione" - LinkLabel3.Text = "Avvia server PXE Helper per installazione di rete" - LinkLabel4.Text = "Prepara sistema per acquisizione immagine" - LinkLabel5.Text = "Indietro" - LinkLabel6.Text = "Esplora i contenuti di questo disco" - LinkLabel7.Text = "Avvia server PXE Helper per FOG" - LinkLabel8.Text = "Avvia server PXE Helper per WDS" - LinkLabel9.Text = "Copia l'immagine di avvio sul server WDS..." - ExitLink.Text = "Esci" - pxeServerPortSwitcherMessage = "Tenere premuto il tasto SHIFT per modificare la porta da utilizzare per questo server PXE Helper" - End Select + RestartMessage = LocalizationService.ForSection("PEHelper.Restart")("Warning.Message") + Label1.Text = LocalizationService.ForSection("PEHelper.Main")("WhatWant.Label") + Label3.Text = LocalizationService.ForSection("PEHelper.Main")("StartServer.Label") + LinkLabel1.Text = LocalizationService.ForSection("PEHelper.Main")("Install.Operating.Link") + LinkLabel2.Text = LocalizationService.ForSection("PEHelper.Main")("Restart.Install.Media.Link") + LinkLabel3.Text = LocalizationService.ForSection("PEHelper.Main")("StartServer.Network.Link") + LinkLabel4.Text = LocalizationService.ForSection("PEHelper.Main")("Prepare.System.Image.Link") + LinkLabel5.Text = LocalizationService.ForSection("PEHelper.Main")("Back.Button") + LinkLabel6.Text = LocalizationService.ForSection("PEHelper.Main")("Explore.Contents.Disc.Link") + LinkLabel7.Text = LocalizationService.ForSection("PEHelper.Main")("StartServer.Fog.Link") + LinkLabel8.Text = LocalizationService.ForSection("PEHelper.Main")("StartServer.Wds.Link") + LinkLabel9.Text = LocalizationService.ForSection("PEHelper.Main")("Copy.Boot.Image.Link") + ExitLink.Text = LocalizationService.ForSection("PEHelper.Main")("Exit.Button") + pxeServerPortSwitcherMessage = LocalizationService.ForSection("PEHelper.PXE")("ChangePort.Tooltip") End Sub Private Sub ExitLink_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles ExitLink.LinkClicked @@ -143,13 +74,15 @@ Public Class MainForm Dim exitCode As Integer = ProcessHelper.RunProcess(FilePath, Arguments, WorkingDirectory, RunAsAdmin) Visible = True If exitCode <> 0 Then - MsgBox(String.Format(ProcessExitCodeMessage, Hex(exitCode), New Win32Exception(exitCode).Message), + MsgBox(LocalizationService.ForSection("PEHelper.Process").Format("ExitCode.Message", Hex(exitCode), New Win32Exception(exitCode).Message), vbOKOnly + vbExclamation, Text) End If End Sub Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked - RunProcess(Path.Combine(Application.StartupPath, "setup.exe"), RunAsAdmin:=True) + RunProcess(Path.Combine(Application.StartupPath, "setup.exe"), + "--language=" & Quote & LocalizationService.CurrentCultureCode & Quote, + RunAsAdmin:=True) End Sub Private Sub LinkLabel2_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/PEHelperMainMenu.vbproj b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/PEHelperMainMenu.vbproj index 82b12962c..515a883bd 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/PEHelperMainMenu.vbproj +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/PEHelperMainMenu.vbproj @@ -1,4 +1,4 @@ - + @@ -77,6 +77,10 @@ + + + Utilities\LocalizationService.vb + Form diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.Designer.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.Designer.vb index 59fc9258c..cc0152c1d 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.Designer.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ServerPortSpecifier Inherits System.Windows.Forms.Form @@ -57,7 +57,7 @@ Partial Class ServerPortSpecifier Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("PEHelper.Designer.ServerPort")("Ok.Button") ' 'Cancel_Button ' @@ -67,7 +67,7 @@ Partial Class ServerPortSpecifier Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("PEHelper.Designer.ServerPort")("Cancel.Button") ' 'Label1 ' @@ -78,7 +78,7 @@ Partial Class ServerPortSpecifier Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(598, 72) Me.Label1.TabIndex = 1 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("PEHelper.Designer.ServerPort")("Components.Disc.Rely.Message") ' 'Label2 ' @@ -87,7 +87,7 @@ Partial Class ServerPortSpecifier Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(228, 13) Me.Label2.TabIndex = 2 - Me.Label2.Text = "Use the following port for server components:" + Me.Label2.Text = LocalizationService.ForSection("PEHelper.Designer.ServerPort")("Port.Server.Label") ' 'NumericUpDown1 ' @@ -107,7 +107,7 @@ Partial Class ServerPortSpecifier Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 4 - Me.Button1.Text = "Default" + Me.Button1.Text = LocalizationService.ForSection("PEHelper.Designer.ServerPort")("Default.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Button2 @@ -117,7 +117,7 @@ Partial Class ServerPortSpecifier Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(176, 23) Me.Button2.TabIndex = 5 - Me.Button2.Text = "Check if this port is in use" + Me.Button2.Text = LocalizationService.ForSection("PEHelper.Designer.ServerPort")("Check.Button") Me.Button2.UseVisualStyleBackColor = True ' 'ServerPortSpecifier @@ -140,7 +140,7 @@ Partial Class ServerPortSpecifier Me.Name = "ServerPortSpecifier" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Specify a port for server components" + Me.Text = LocalizationService.ForSection("PEHelper.Designer.ServerPort")("ServerComponents.Label") Me.TableLayoutPanel1.ResumeLayout(False) CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.resx b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.resx index b108a589e..7905453d9 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.resx +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Server components in this disc rely on ports to listen to requests from clients. If a port is in use by another program or service, you can use this dialog to specify a different port for the server components. - -The port you specify here will be used until you close the main menu. When you click OK, the server component will be launched using that port. Otherwise, it will be launched using either the default port or the previously configured port. - - \ No newline at end of file + \ No newline at end of file diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.vb index 1e94f35f0..954f9418a 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/ServerPortSpecifier.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -37,10 +37,10 @@ Public Class ServerPortSpecifier netstatProc.WaitForExit() If netstatProc.ExitCode = 0 Then ' This port is in use - MessageBox.Show(String.Format("The specified port, {0}, is already in use.", NumericUpDown1.Value), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("PEHelper.ServerPort").Format("Already.Message", NumericUpDown1.Value), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) Else ' This port is free - MessageBox.Show(String.Format("The specified port, {0}, is not in use.", NumericUpDown1.Value), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("PEHelper.ServerPort").Format("InvalidPort.Message", NumericUpDown1.Value), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Using End Sub diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.Designer.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.Designer.vb index b1aca168c..5d24f3569 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.Designer.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SysprepPreparatorModeDialog Inherits System.Windows.Forms.Form @@ -46,7 +46,7 @@ Partial Class SysprepPreparatorModeDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(599, 157) Me.Label1.TabIndex = 1 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("PEHelper.Designer.Sysprep")("Responsibility.Message") ' 'MainMenuPanel ' @@ -76,7 +76,7 @@ Partial Class SysprepPreparatorModeDialog Me.LinkLabel3.Size = New System.Drawing.Size(220, 25) Me.LinkLabel3.TabIndex = 3 Me.LinkLabel3.TabStop = True - Me.LinkLabel3.Text = "Cancel launch of this tool" + Me.LinkLabel3.Text = LocalizationService.ForSection("PEHelper.Designer.Sysprep")("Cancel.Link") ' 'LinkLabel2 ' @@ -92,7 +92,7 @@ Partial Class SysprepPreparatorModeDialog Me.LinkLabel2.Size = New System.Drawing.Size(305, 25) Me.LinkLabel2.TabIndex = 3 Me.LinkLabel2.TabStop = True - Me.LinkLabel2.Text = "Launch in Manual mode (advanced)" + Me.LinkLabel2.Text = LocalizationService.ForSection("PEHelper.Designer.Sysprep")("ManualMode.Link") ' 'LinkLabel1 ' @@ -108,7 +108,7 @@ Partial Class SysprepPreparatorModeDialog Me.LinkLabel1.Size = New System.Drawing.Size(364, 25) Me.LinkLabel1.TabIndex = 3 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Launch in Automatic mode (recommended)" + Me.LinkLabel1.Text = LocalizationService.ForSection("PEHelper.Designer.Sysprep")("AutomaticMode.Link") ' 'PictureBox3 ' @@ -141,7 +141,7 @@ Partial Class SysprepPreparatorModeDialog Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(245, 19) Me.CheckBox1.TabIndex = 6 - Me.CheckBox1.Text = "Capture image after preparing the system" + Me.CheckBox1.Text = LocalizationService.ForSection("PEHelper.Designer.Sysprep")("CaptureImage.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -153,7 +153,7 @@ Partial Class SysprepPreparatorModeDialog Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(367, 19) Me.CheckBox2.TabIndex = 6 - Me.CheckBox2.Text = "Copy registry changes and other preferences to new user profiles" + Me.CheckBox2.Text = LocalizationService.ForSection("PEHelper.Designer.Sysprep")("CopyRegistry.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'SysprepPreparatorModeDialog @@ -175,7 +175,7 @@ Partial Class SysprepPreparatorModeDialog Me.Name = "SysprepPreparatorModeDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Prepare System for Image Capture" + Me.Text = LocalizationService.ForSection("PEHelper.Designer.Sysprep")("PrepareCapture.Label") Me.MainMenuPanel.ResumeLayout(False) Me.MainMenuPanel.PerformLayout() CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.resx b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.resx index d3c37d0fa..7905453d9 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.resx +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,12 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode. - -- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used -- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users - -Select the mode you want to use: - - \ No newline at end of file + \ No newline at end of file diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.vb index 0e77ac3fc..bb462ee76 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/SysprepPreparatorModeDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class SysprepPreparatorModeDialog @@ -25,57 +25,11 @@ Public Class SysprepPreparatorModeDialog Private Sub SysprepPreparatorModeDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load Text = MainForm.LinkLabel4.Text - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode." & CrLf & CrLf & - "- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used" & CrLf & - "- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users" & CrLf & CrLf & - "Select the mode you want to use:" - LinkLabel1.Text = "Launch in Automatic mode (recommended)" - LinkLabel2.Text = "Launch in Manual mode (advanced)" - LinkLabel3.Text = "Cancel launch of this tool" - CheckBox1.Text = "Capture image after preparing the system" - CheckBox2.Text = "Copy registry changes and other current preferences for new user profiles" - Case "ESN" - Label1.Text = "La herramienta de preparación de Sysprep, utilizada para preparar sistemas, puede operar en 2 modos: modo automático y modo manual" & CrLf & CrLf & - "- El modo automático realiza comprobaciones y, si dichas comprobaciones se realizaron correctamente, prepara y generaliza su equipo automáticamente. No tiene que interactuar con la herramienta a menos que las comprobaciones fallen o completen con advertencias. Una configuración predeterminada para Sysprep también será usada" & CrLf & - "- El modo manual le permite configurar las opciones de Sysprep y le permite realizar cada paso de la herramienta a su propio ritmo. Esto es recomendado para usuarios avanzados" & CrLf & CrLf & - "Seleccione el modo que quiera usar:" - LinkLabel1.Text = "Iniciar en modo automático (recomendado)" - LinkLabel2.Text = "Iniciar en modo manual (avanzado)" - LinkLabel3.Text = "Cancelar el inicio de esta herramienta" - CheckBox1.Text = "Capturar imagen tras preparar el sistema" - CheckBox2.Text = "Copiar cambios en el registro y otras preferencias actuales para nuevos perfiles de usuario" - Case "FRA" - Label1.Text = "L’outil de préparation Sysprep, chargé de préparer les systèmes pour la capture d’image, peut fonctionner en 2 modes : mode automatique et mode manuel." & CrLf & CrLf & - "- Le mode automatique effectue des vérifications et, si celles-ci réussissent, prépare et généralise automatiquement votre ordinateur. Vous n’avez pas besoin d’interagir avec l’outil, sauf si les vérifications échouent ou renvoient des avertissements. Un ensemble d’options par défaut pour Sysprep sera également utilisé" & CrLf & - "- Le mode manuel vous permet de configurer les paramètres de lancement de Sysprep et de suivre chaque étape de l’outil à votre rythme. Il est recommandé pour les utilisateurs avancés" & CrLf & CrLf & - "Sélectionnez le mode que vous souhaitez utiliser :" - LinkLabel1.Text = "Lancer en mode automatique (recommandé)" - LinkLabel2.Text = "Lancer en mode manuel (avancé)" - LinkLabel3.Text = "Annuler le lancement de cet outil" - CheckBox1.Text = "Capturez l'image après avoir préparé le système" - CheckBox2.Text = "Copier les modifications du registre et autres préférences actuelles pour les nouveaux profils utilisateur" - Case "PTB", "PTG" - Label1.Text = "A ferramenta de preparação Sysprep, responsável por preparar sistemas para a captura de imagem, pode funcionar em 2 modos: modo automático e modo manual." & CrLf & CrLf & - "- O modo automático realiza verificações e, se estas forem bem-sucedidas, prepara e generaliza o computador automaticamente. Não é necessário interagir com a ferramenta, a menos que as verificações falhem ou retornem avisos. Será também usado um conjunto de opções padrão para o Sysprep" & CrLf & - "- O modo manual permite configurar as definições de execução do Sysprep e avançar por cada etapa da ferramenta ao seu próprio ritmo. É recomendado para utilizadores avançados" & CrLf & CrLf & - "Selecione o modo que deseja usar:" - LinkLabel1.Text = "Iniciar em modo automático (recomendado)" - LinkLabel2.Text = "Iniciar em modo manual (avançado)" - LinkLabel3.Text = "Cancelar o lançamento desta ferramenta" - CheckBox1.Text = "Capture a imagem após preparar o sistema" - CheckBox2.Text = "Copiar alterações no registo e outras preferências atuais para novos perfis de utilizador" - Case "ITA" - Label1.Text = "Lo strumento di preparazione Sysprep, responsabile della preparazione dei sistemi per l’acquisizione dell’immagine, può funzionare in 2 modalità: automatica e manuale." & CrLf & CrLf & - "- La modalità automatica esegue dei controlli e, se superati, prepara e generalizza automaticamente il computer. Non è necessario interagire con lo strumento, a meno che i controlli falliscano o restituiscano avvisi. Verrà anche utilizzato un set di opzioni predefinite per Sysprep" & CrLf & - "- La modalità manuale consente di configurare le impostazioni di avvio di Sysprep e di procedere attraverso ogni fase dello strumento al proprio ritmo. È consigliata agli utenti avanzati" & CrLf & CrLf & - "Seleziona la modalità che vuoi utilizzare:" - LinkLabel1.Text = "Avvia in modalità automatica (consigliata)" - LinkLabel2.Text = "Avvia in modalità manuale (avanzata)" - LinkLabel3.Text = "Annulla l’avvio di questo strumento" - CheckBox1.Text = "Acquisizione dell'immagine dopo aver preparato il sistema" - CheckBox2.Text = "Copia le modifiche al registro e altre preferenze correnti per i nuovi profili utente" - End Select + Label1.Text = LocalizationService.ForSection("PEHelper.Sysprep")("Responsibility.Message") + LinkLabel1.Text = LocalizationService.ForSection("PEHelper.Sysprep")("AutomaticMode.Link") + LinkLabel2.Text = LocalizationService.ForSection("PEHelper.Sysprep")("ManualMode.Link") + LinkLabel3.Text = LocalizationService.ForSection("PEHelper.Sysprep")("Cancel.Link") + CheckBox1.Text = LocalizationService.ForSection("PEHelper.Sysprep")("CaptureImage.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("PEHelper.Sysprep")("CopyRegistry.CheckBox") End Sub End Class diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSBootImageArchitectureSelector.Designer.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSBootImageArchitectureSelector.Designer.vb index 4fee9b479..cca03c339 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSBootImageArchitectureSelector.Designer.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSBootImageArchitectureSelector.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class WDSBootImageArchitectureSelector Inherits System.Windows.Forms.Form @@ -53,7 +53,7 @@ Partial Class WDSBootImageArchitectureSelector Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("PEHelper.Designer.WDSArch")("Okbutton.Button") ' 'Cancel_Button ' @@ -64,7 +64,7 @@ Partial Class WDSBootImageArchitectureSelector Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("PEHelper.Designer.WDSArch")("CancelButton.Button") ' 'Label1 ' @@ -73,7 +73,7 @@ Partial Class WDSBootImageArchitectureSelector Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(104, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Target architecture:" + Me.Label1.Text = LocalizationService.ForSection("PEHelper.Designer.WDSArch")("Architecture.Label") ' 'ComboBox1 ' @@ -102,7 +102,7 @@ Partial Class WDSBootImageArchitectureSelector Me.Name = "WdsBootImageArchitectureSelector" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Specify architecture for target WDS boot image" + Me.Text = LocalizationService.ForSection("PEHelper.Designer.WDSArch")("Architecture.Label.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSImageGroupSpecifier.Designer.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSImageGroupSpecifier.Designer.vb index 3b5e65e2c..c6a1d67ed 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSImageGroupSpecifier.Designer.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSImageGroupSpecifier.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class WDSImageGroupSpecifier Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class WDSImageGroupSpecifier Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("PEHelper.Designer.WDSGroup")("Ok.Button") ' 'Cancel_Button ' @@ -69,7 +69,7 @@ Partial Class WDSImageGroupSpecifier Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("PEHelper.Designer.WDSGroup")("Cancel.Button") ' 'Label1 ' @@ -78,7 +78,7 @@ Partial Class WDSImageGroupSpecifier Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(94, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Choose an action:" + Me.Label1.Text = LocalizationService.ForSection("PEHelper.Designer.WDSGroup")("Action.Choose.Label") ' 'ComboBox1 ' @@ -98,7 +98,7 @@ Partial Class WDSImageGroupSpecifier Me.Refresh_Button.Name = "Refresh_Button" Me.Refresh_Button.Size = New System.Drawing.Size(75, 23) Me.Refresh_Button.TabIndex = 3 - Me.Refresh_Button.Text = "Refresh" + Me.Refresh_Button.Text = LocalizationService.ForSection("PEHelper.Designer.WDSGroup")("Refresh.Button") Me.Refresh_Button.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -110,7 +110,7 @@ Partial Class WDSImageGroupSpecifier Me.RadioButton1.Size = New System.Drawing.Size(278, 17) Me.RadioButton1.TabIndex = 4 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Upload this image to the following WDS image group:" + Me.RadioButton1.Text = LocalizationService.ForSection("PEHelper.Designer.WDSGroup")("Upload.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'RadioButton2 @@ -120,7 +120,7 @@ Partial Class WDSImageGroupSpecifier Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(384, 17) Me.RadioButton2.TabIndex = 4 - Me.RadioButton2.Text = "Create the following WDS image group for me and upload this image there:" + Me.RadioButton2.Text = LocalizationService.ForSection("PEHelper.Designer.WDSGroup")("CreateGroup.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'TextBox1 @@ -140,7 +140,7 @@ Partial Class WDSImageGroupSpecifier Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(131, 13) Me.Label2.TabIndex = 6 - Me.Label2.Text = "This group already exists." + Me.Label2.Text = LocalizationService.ForSection("PEHelper.Designer.WDSGroup")("Already.Exists.Label") Me.Label2.Visible = False ' 'WDSImageGroupSpecifier @@ -165,7 +165,7 @@ Partial Class WDSImageGroupSpecifier Me.Name = "WDSImageGroupSpecifier" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Specify a group in your WDS server..." + Me.Text = LocalizationService.ForSection("PEHelper.Designer.WDSGroup")("SpecifyGroup.Button") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSImageGroupSpecifier.vb b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSImageGroupSpecifier.vb index 0b80c4216..db418e4e2 100644 --- a/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSImageGroupSpecifier.vb +++ b/Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/WDSImageGroupSpecifier.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.Xml.Serialization Imports System.IO @@ -10,7 +10,7 @@ Public Class WDSImageGroupSpecifier Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click ' If we chose to create the image group we'll do that first, then we select it If RadioButton2.Checked AndAlso Not CreateWdsImageGroup(TextBox1.Text) Then - MessageBox.Show("The specified WDS image group could not be created.", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning) + MessageBox.Show(LocalizationService.ForSection("PEHelper.WDSImageGroup")("CreateFailed.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning) Exit Sub End If @@ -43,7 +43,7 @@ Public Class WDSImageGroupSpecifier End If End If Catch ex As Exception - MsgBox("Could not get image groups.", vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("PEHelper.WDSImageGroup")("LoadFailed.Message"), vbOKOnly + vbCritical, Text) End Try End Sub @@ -93,53 +93,14 @@ Public Class WDSImageGroupSpecifier End Function Private Sub WDSImageGroupSpecifier_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Specify a group in your WDS server..." - Label1.Text = "Choose an action:" - Label2.Text = "This group already exists." - RadioButton1.Text = "Upload this image to the following WDS image group:" - RadioButton2.Text = "Create the following WDS image group for me and upload this image there:" - Refresh_Button.Text = "Refresh" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Especificar un grupo en su servidor WDS..." - Label1.Text = "Escoja una acción:" - Label2.Text = "Este grupo ya existe." - RadioButton1.Text = "Subir esta imagen al siguiente grupo de WDS:" - RadioButton2.Text = "Crear el siguiente grupo de WDS por mí y subir esta imagen ahí:" - Refresh_Button.Text = "Actuaizar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Spécifiez un groupe sur votre serveur WDS..." - Label1.Text = "Choisissez une action :" - Label2.Text = "Ce groupe existe déjà." - RadioButton1.Text = "Télécharger cette image dans le groupe d'images WDS suivant :" - RadioButton2.Text = "Créer le groupe d'images WDS suivant pour moi et y télécharger cette image :" - Refresh_Button.Text = "Actualiser" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Especifique um grupo no seu servidor WDS..." - Label1.Text = "Escolha uma ação:" - Label2.Text = "Este grupo já existe." - RadioButton1.Text = "Carregar esta imagem para o seguinte grupo de imagens WDS:" - RadioButton2.Text = "Criar o seguinte grupo de imagens WDS para mim e carregar esta imagem para lá:" - Refresh_Button.Text = "Atualizar" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Specificare un gruppo nel proprio server WDS..." - Label1.Text = "Scegliere un'azione:" - Label2.Text = "Questo gruppo esiste già." - RadioButton1.Text = "Carica questa immagine nel seguente gruppo di immagini WDS:" - RadioButton2.Text = "Crea per me il seguente gruppo di immagini WDS e carica questa immagine lì:" - Refresh_Button.Text = "Aggiorna" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select + Text = LocalizationService.ForSection("PEHelper.WDSImageGroup")("SpecifyGroup.Button") + Label1.Text = LocalizationService.ForSection("PEHelper.WDSImageGroup")("Action.Choose.Label") + Label2.Text = LocalizationService.ForSection("PEHelper.WDSImageGroup")("Already.Exists.Label") + RadioButton1.Text = LocalizationService.ForSection("PEHelper.WDSImageGroup")("Upload.RadioButton") + RadioButton2.Text = LocalizationService.ForSection("PEHelper.WDSImageGroup")("CreateGroup.RadioButton") + Refresh_Button.Text = LocalizationService.ForSection("PEHelper.WDSImageGroup")("Refresh.Button") + OK_Button.Text = LocalizationService.ForSection("PEHelper.WDSImageGroup")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("PEHelper.WDSImageGroup")("Cancel.Button") ComboBox1.Items.Clear() GetWdsGroups() Try diff --git a/Installer/Default.isl b/Installer/Compiler/Default.isl similarity index 97% rename from Installer/Default.isl rename to Installer/Compiler/Default.isl index 8c2e7299c..90fb88304 100644 --- a/Installer/Default.isl +++ b/Installer/Compiler/Default.isl @@ -392,17 +392,5 @@ ShutdownBlockReasonUninstallingApp=Uninstalling %1. ; The custom messages below aren't used by Setup itself, but if you make ; use of them in your scripts, you'll want to translate them. -[CustomMessages] - -NameAndVersion=%1 version %2 -AdditionalIcons=Additional shortcuts: -CreateDesktopIcon=Create a &desktop shortcut -CreateQuickLaunchIcon=Create a &Quick Launch shortcut -ProgramOnTheWeb=%1 on the Web -UninstallProgram=Uninstall %1 -LaunchProgram=Launch %1 -AssocFileExtension=&Associate %1 with the %2 file extension -AssocingFileExtension=Associating %1 with the %2 file extension... -AutoStartProgramGroupDescription=Startup: -AutoStartProgram=Automatically start %1 -AddonHostProgramNotFound=%1 could not be located in the folder you selected.%n%nDo you want to continue anyway? +; This file is a compiler runtime file required by the bundled Inno Setup compiler. +; Do not edit project installer translations here. Edit Installer\Languages\English.isl instead. diff --git a/Installer/ISCC.exe b/Installer/Compiler/ISCC.exe similarity index 100% rename from Installer/ISCC.exe rename to Installer/Compiler/ISCC.exe diff --git a/Installer/ISCmplr.dll b/Installer/Compiler/ISCmplr.dll similarity index 100% rename from Installer/ISCmplr.dll rename to Installer/Compiler/ISCmplr.dll diff --git a/Installer/ISCmplr.dll.issig b/Installer/Compiler/ISCmplr.dll.issig similarity index 100% rename from Installer/ISCmplr.dll.issig rename to Installer/Compiler/ISCmplr.dll.issig diff --git a/Installer/ISPP.dll b/Installer/Compiler/ISPP.dll similarity index 100% rename from Installer/ISPP.dll rename to Installer/Compiler/ISPP.dll diff --git a/Installer/ISPP.dll.issig b/Installer/Compiler/ISPP.dll.issig similarity index 100% rename from Installer/ISPP.dll.issig rename to Installer/Compiler/ISPP.dll.issig diff --git a/Installer/ISPPBuiltins.iss b/Installer/Compiler/ISPPBuiltins.iss similarity index 100% rename from Installer/ISPPBuiltins.iss rename to Installer/Compiler/ISPPBuiltins.iss diff --git a/Installer/Setup.e32 b/Installer/Compiler/Setup.e32 similarity index 100% rename from Installer/Setup.e32 rename to Installer/Compiler/Setup.e32 diff --git a/Installer/Setup.e32.issig b/Installer/Compiler/Setup.e32.issig similarity index 100% rename from Installer/Setup.e32.issig rename to Installer/Compiler/Setup.e32.issig diff --git a/Installer/SetupCustomStyle.e32 b/Installer/Compiler/SetupCustomStyle.e32 similarity index 100% rename from Installer/SetupCustomStyle.e32 rename to Installer/Compiler/SetupCustomStyle.e32 diff --git a/Installer/SetupCustomStyle.e32.issig b/Installer/Compiler/SetupCustomStyle.e32.issig similarity index 100% rename from Installer/SetupCustomStyle.e32.issig rename to Installer/Compiler/SetupCustomStyle.e32.issig diff --git a/Installer/SetupLdr.e32 b/Installer/Compiler/SetupLdr.e32 similarity index 100% rename from Installer/SetupLdr.e32 rename to Installer/Compiler/SetupLdr.e32 diff --git a/Installer/SetupLdr.e32.issig b/Installer/Compiler/SetupLdr.e32.issig similarity index 100% rename from Installer/SetupLdr.e32.issig rename to Installer/Compiler/SetupLdr.e32.issig diff --git a/Installer/isbzip.dll.issig b/Installer/Compiler/isbzip.dll.issig similarity index 100% rename from Installer/isbzip.dll.issig rename to Installer/Compiler/isbzip.dll.issig diff --git a/Installer/islzma.dll b/Installer/Compiler/islzma.dll similarity index 100% rename from Installer/islzma.dll rename to Installer/Compiler/islzma.dll diff --git a/Installer/islzma.dll.issig b/Installer/Compiler/islzma.dll.issig similarity index 100% rename from Installer/islzma.dll.issig rename to Installer/Compiler/islzma.dll.issig diff --git a/Installer/islzma32.exe b/Installer/Compiler/islzma32.exe similarity index 100% rename from Installer/islzma32.exe rename to Installer/Compiler/islzma32.exe diff --git a/Installer/islzma32.exe.issig b/Installer/Compiler/islzma32.exe.issig similarity index 100% rename from Installer/islzma32.exe.issig rename to Installer/Compiler/islzma32.exe.issig diff --git a/Installer/islzma64.exe b/Installer/Compiler/islzma64.exe similarity index 100% rename from Installer/islzma64.exe rename to Installer/Compiler/islzma64.exe diff --git a/Installer/islzma64.exe.issig b/Installer/Compiler/islzma64.exe.issig similarity index 100% rename from Installer/islzma64.exe.issig rename to Installer/Compiler/islzma64.exe.issig diff --git a/Installer/isscint.dll b/Installer/Compiler/isscint.dll similarity index 100% rename from Installer/isscint.dll rename to Installer/Compiler/isscint.dll diff --git a/Installer/isscint.dll.issig b/Installer/Compiler/isscint.dll.issig similarity index 100% rename from Installer/isscint.dll.issig rename to Installer/Compiler/isscint.dll.issig diff --git a/Installer/iszlib.dll b/Installer/Compiler/iszlib.dll similarity index 100% rename from Installer/iszlib.dll rename to Installer/Compiler/iszlib.dll diff --git a/Installer/iszlib.dll.issig b/Installer/Compiler/iszlib.dll.issig similarity index 100% rename from Installer/iszlib.dll.issig rename to Installer/Compiler/iszlib.dll.issig diff --git a/Installer/LICENSE-ru-RU.rtf b/Installer/LICENSE-ru-RU.rtf new file mode 100644 index 000000000..c9135fed4 --- /dev/null +++ b/Installer/LICENSE-ru-RU.rtf @@ -0,0 +1,132 @@ +{\rtf1\ansi\ansicpg1251\deff0{\fonttbl{\f0 \fswiss Arial;}{\f1 Courier New;}} +{\colortbl;\red0\green0\blue255;} +\widowctrl\hyphauto +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs28 GNU GENERAL PUBLIC LICENSE\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs22 \u1042?\u1077?\u1088?\u1089?\u1080?\u1103? 3, 29 \u1080?\u1102?\u1085?\u1103? 2007 \u1075?\u1086?\u1076?\u1072?\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 Copyright \u169? 2007 Free Software Foundation, Inc. \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1050?\u1072?\u1078?\u1076?\u1099?\u1081? \u1080?\u1084?\u1077?\u1077?\u1090? \u1087?\u1088?\u1072?\u1074?\u1086? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100? \u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1090?\u1086?\u1095?\u1085?\u1099?\u1077? \u1082?\u1086?\u1087?\u1080?\u1080? \u1101?\u1090?\u1086?\u1075?\u1086? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1086?\u1085?\u1085?\u1086?\u1075?\u1086? \u1076?\u1086?\u1082?\u1091?\u1084?\u1077?\u1085?\u1090?\u1072?. \u1048?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1077?\u1075?\u1086? \u1085?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1077?\u1090?\u1089?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 \u1053?\u1077?\u1086?\u1092?\u1080?\u1094?\u1080?\u1072?\u1083?\u1100?\u1085?\u1099?\u1081? \u1087?\u1077?\u1088?\u1077?\u1074?\u1086?\u1076?\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1069?\u1090?\u1086?\u1090? \u1088?\u1091?\u1089?\u1089?\u1082?\u1080?\u1081? \u1090?\u1077?\u1082?\u1089?\u1090? \u1076?\u1086?\u1073?\u1072?\u1074?\u1083?\u1077?\u1085? \u1074? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1097?\u1080?\u1082? DISMTools \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1076?\u1083?\u1103? \u1091?\u1076?\u1086?\u1073?\u1089?\u1090?\u1074?\u1072? \u1095?\u1090?\u1077?\u1085?\u1080?\u1103?. \u1070?\u1088?\u1080?\u1076?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1084? \u1086?\u1089?\u1090?\u1072?\u1105?\u1090?\u1089?\u1103? \u1072?\u1085?\u1075?\u1083?\u1080?\u1081?\u1089?\u1082?\u1080?\u1081? \u1086?\u1088?\u1080?\u1075?\u1080?\u1085?\u1072?\u1083? GNU General Public License \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? 3 \u1080?\u1079? \u1092?\u1072?\u1081?\u1083?\u1072? LICENSE.rtf. \u1055?\u1088?\u1080? \u1088?\u1072?\u1089?\u1093?\u1086?\u1078?\u1076?\u1077?\u1085?\u1080?\u1080? \u1084?\u1077?\u1078?\u1076?\u1091? \u1087?\u1077?\u1088?\u1077?\u1074?\u1086?\u1076?\u1086?\u1084? \u1080? \u1072?\u1085?\u1075?\u1083?\u1080?\u1081?\u1089?\u1082?\u1080?\u1084? \u1090?\u1077?\u1082?\u1089?\u1090?\u1086?\u1084? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1077?\u1090?\u1089?\u1103? \u1072?\u1085?\u1075?\u1083?\u1080?\u1081?\u1089?\u1082?\u1080?\u1081? \u1090?\u1077?\u1082?\u1089?\u1090?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs26 \u1055?\u1088?\u1077?\u1072?\u1084?\u1073?\u1091?\u1083?\u1072?\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 GNU General Public License \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1086?\u1081? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081? \u1089? \u1082?\u1086?\u1087?\u1080?\u1083?\u1077?\u1092?\u1090?\u1086?\u1084? \u1076?\u1083?\u1103? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1075?\u1086? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1103? \u1080? \u1076?\u1088?\u1091?\u1075?\u1080?\u1093? \u1074?\u1080?\u1076?\u1086?\u1074? \u1088?\u1072?\u1073?\u1086?\u1090?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1073?\u1086?\u1083?\u1100?\u1096?\u1080?\u1085?\u1089?\u1090?\u1074?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084? \u1080? \u1076?\u1088?\u1091?\u1075?\u1080?\u1093? \u1087?\u1088?\u1072?\u1082?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1093? \u1088?\u1072?\u1073?\u1086?\u1090? \u1091?\u1089?\u1090?\u1088?\u1086?\u1077?\u1085?\u1099? \u1090?\u1072?\u1082?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1083?\u1080?\u1096?\u1072?\u1090?\u1100? \u1074?\u1072?\u1089? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1099? \u1076?\u1077?\u1083?\u1080?\u1090?\u1100?\u1089?\u1103? \u1101?\u1090?\u1080?\u1084?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072?\u1084?\u1080? \u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1080?\u1093?. GNU General Public License, \u1085?\u1072?\u1086?\u1073?\u1086?\u1088?\u1086?\u1090?, \u1087?\u1088?\u1077?\u1076?\u1085?\u1072?\u1079?\u1085?\u1072?\u1095?\u1077?\u1085?\u1072? \u1076?\u1083?\u1103? \u1090?\u1086?\u1075?\u1086?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100? \u1074?\u1072?\u1084? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1091? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1074?\u1089?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1080? \u1095?\u1090?\u1086?\u1073?\u1099? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1086?\u1089?\u1090?\u1072?\u1074?\u1072?\u1083?\u1072?\u1089?\u1100? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1086?\u1081? \u1076?\u1083?\u1103? \u1074?\u1089?\u1077?\u1093? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081?. Free Software Foundation \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1077?\u1090? GNU General Public License \u1082? \u1073?\u1086?\u1083?\u1100?\u1096?\u1077?\u1081? \u1095?\u1072?\u1089?\u1090?\u1080? \u1089?\u1074?\u1086?\u1077?\u1075?\u1086? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1075?\u1086? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1103?. \u1040?\u1074?\u1090?\u1086?\u1088?\u1099? \u1084?\u1086?\u1075?\u1091?\u1090? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1077?\u1105? \u1080? \u1082? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072?\u1084?, \u1074?\u1099?\u1087?\u1091?\u1097?\u1077?\u1085?\u1085?\u1099?\u1084? \u1090?\u1072?\u1082?\u1080?\u1084? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084?. \u1042?\u1099? \u1090?\u1086?\u1078?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1077?\u1105? \u1082? \u1089?\u1074?\u1086?\u1080?\u1084? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072?\u1084?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1050?\u1086?\u1075?\u1076?\u1072? \u1084?\u1099? \u1075?\u1086?\u1074?\u1086?\u1088?\u1080?\u1084? \u1086? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1086?\u1084? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1084? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1080?, \u1088?\u1077?\u1095?\u1100? \u1080?\u1076?\u1105?\u1090? \u1086? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1077?, \u1072? \u1085?\u1077? \u1086? \u1094?\u1077?\u1085?\u1077?. \u1053?\u1072?\u1096?\u1080? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? GPL \u1088?\u1072?\u1079?\u1088?\u1072?\u1073?\u1086?\u1090?\u1072?\u1085?\u1099? \u1090?\u1072?\u1082?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1074?\u1099? \u1080?\u1084?\u1077?\u1083?\u1080? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1091? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1082?\u1086?\u1087?\u1080?\u1080? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1099?\u1093? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?, \u1074? \u1090?\u1086?\u1084? \u1095?\u1080?\u1089?\u1083?\u1077? \u1079?\u1072? \u1087?\u1083?\u1072?\u1090?\u1091?, \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1100? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1080?\u1083?\u1080? \u1080?\u1084?\u1077?\u1090?\u1100? \u1074?\u1086?\u1079?\u1084?\u1086?\u1078?\u1085?\u1086?\u1089?\u1090?\u1100? \u1077?\u1075?\u1086? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1090?\u1100?, \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091? \u1080?\u1083?\u1080? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100? \u1077?\u1105? \u1095?\u1072?\u1089?\u1090?\u1080? \u1074? \u1085?\u1086?\u1074?\u1099?\u1093? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1099?\u1093? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072?\u1093?, \u1072? \u1090?\u1072?\u1082?\u1078?\u1077? \u1079?\u1085?\u1072?\u1090?\u1100?, \u1095?\u1090?\u1086? \u1091? \u1074?\u1072?\u1089? \u1077?\u1089?\u1090?\u1100? \u1101?\u1090?\u1080? \u1087?\u1088?\u1072?\u1074?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1063?\u1090?\u1086?\u1073?\u1099? \u1079?\u1072?\u1097?\u1080?\u1090?\u1080?\u1090?\u1100? \u1074?\u1072?\u1096?\u1080? \u1087?\u1088?\u1072?\u1074?\u1072?, \u1085?\u1072?\u1084? \u1085?\u1091?\u1078?\u1085?\u1086? \u1085?\u1077? \u1087?\u1086?\u1079?\u1074?\u1086?\u1083?\u1080?\u1090?\u1100? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1083?\u1080?\u1096?\u1080?\u1090?\u1100? \u1074?\u1072?\u1089? \u1101?\u1090?\u1080?\u1093? \u1087?\u1088?\u1072?\u1074? \u1080?\u1083?\u1080? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1090?\u1100?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1074?\u1099? \u1086?\u1090? \u1085?\u1080?\u1093? \u1086?\u1090?\u1082?\u1072?\u1079?\u1072?\u1083?\u1080?\u1089?\u1100?. \u1055?\u1086?\u1101?\u1090?\u1086?\u1084?\u1091? \u1087?\u1088?\u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1080? \u1082?\u1086?\u1087?\u1080?\u1081? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1080?\u1083?\u1080? \u1077?\u1105? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1080? \u1085?\u1072? \u1074?\u1072?\u1089? \u1083?\u1086?\u1078?\u1072?\u1090?\u1089?\u1103? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1105?\u1085?\u1085?\u1099?\u1077? \u1086?\u1073?\u1103?\u1079?\u1072?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080?. \u1042?\u1099? \u1086?\u1073?\u1103?\u1079?\u1072?\u1085?\u1099? \u1091?\u1074?\u1072?\u1078?\u1072?\u1090?\u1100? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1091? \u1076?\u1088?\u1091?\u1075?\u1080?\u1093? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088?, \u1077?\u1089?\u1083?\u1080? \u1074?\u1099? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1077? \u1082?\u1086?\u1087?\u1080?\u1080? \u1090?\u1072?\u1082?\u1086?\u1081? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1073?\u1077?\u1089?\u1087?\u1083?\u1072?\u1090?\u1085?\u1086? \u1080?\u1083?\u1080? \u1079?\u1072? \u1087?\u1083?\u1072?\u1090?\u1091?, \u1074?\u1099? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1090?\u1100? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1103?\u1084? \u1090?\u1077? \u1078?\u1077? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1099?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1083?\u1080? \u1089?\u1072?\u1084?\u1080?. \u1042?\u1099? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1080?\u1090?\u1100?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1086?\u1085?\u1080? \u1090?\u1086?\u1078?\u1077? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1083?\u1080? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1080?\u1083?\u1080? \u1084?\u1086?\u1075?\u1083?\u1080? \u1077?\u1075?\u1086? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1090?\u1100?. \u1042?\u1099? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1087?\u1086?\u1082?\u1072?\u1079?\u1072?\u1090?\u1100? \u1080?\u1084? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1086?\u1085?\u1080? \u1079?\u1085?\u1072?\u1083?\u1080? \u1089?\u1074?\u1086?\u1080? \u1087?\u1088?\u1072?\u1074?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1056?\u1072?\u1079?\u1088?\u1072?\u1073?\u1086?\u1090?\u1095?\u1080?\u1082?\u1080?, \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1102?\u1097?\u1080?\u1077? GNU GPL, \u1079?\u1072?\u1097?\u1080?\u1097?\u1072?\u1102?\u1090? \u1074?\u1072?\u1096?\u1080? \u1087?\u1088?\u1072?\u1074?\u1072? \u1076?\u1074?\u1091?\u1084?\u1103? \u1096?\u1072?\u1075?\u1072?\u1084?\u1080?. \u1057?\u1085?\u1072?\u1095?\u1072?\u1083?\u1072? \u1086?\u1085?\u1080? \u1089?\u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1102?\u1090? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1080?\u1077? \u1087?\u1088?\u1072?\u1074?\u1072? \u1085?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091?. \u1047?\u1072?\u1090?\u1077?\u1084? \u1086?\u1085?\u1080? \u1087?\u1088?\u1077?\u1076?\u1083?\u1072?\u1075?\u1072?\u1102?\u1090? \u1074?\u1072?\u1084? \u1101?\u1090?\u1091? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1072?\u1103? \u1076?\u1072?\u1105?\u1090? \u1079?\u1072?\u1082?\u1086?\u1085?\u1085?\u1086?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1077? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100?, \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1044?\u1083?\u1103? \u1079?\u1072?\u1097?\u1080?\u1090?\u1099? \u1072?\u1074?\u1090?\u1086?\u1088?\u1086?\u1074? \u1080? \u1088?\u1072?\u1079?\u1088?\u1072?\u1073?\u1086?\u1090?\u1095?\u1080?\u1082?\u1086?\u1074? GPL \u1103?\u1089?\u1085?\u1086? \u1086?\u1073?\u1098?\u1103?\u1089?\u1085?\u1103?\u1077?\u1090?, \u1095?\u1090?\u1086? \u1085?\u1072? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1086?\u1077? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1077? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077? \u1085?\u1077? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1103?. \u1044?\u1083?\u1103? \u1079?\u1072?\u1097?\u1080?\u1090?\u1099? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081? \u1080? \u1072?\u1074?\u1090?\u1086?\u1088?\u1086?\u1074? GPL \u1090?\u1088?\u1077?\u1073?\u1091?\u1077?\u1090?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1073?\u1099?\u1083?\u1080? \u1086?\u1090?\u1084?\u1077?\u1095?\u1077?\u1085?\u1099? \u1082?\u1072?\u1082? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1077?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1087?\u1088?\u1086?\u1073?\u1083?\u1077?\u1084?\u1099? \u1090?\u1072?\u1082?\u1080?\u1093? \u1074?\u1077?\u1088?\u1089?\u1080?\u1081? \u1085?\u1077? \u1086?\u1096?\u1080?\u1073?\u1086?\u1095?\u1085?\u1086? \u1087?\u1088?\u1080?\u1087?\u1080?\u1089?\u1099?\u1074?\u1072?\u1083?\u1080?\u1089?\u1100? \u1072?\u1074?\u1090?\u1086?\u1088?\u1072?\u1084? \u1087?\u1088?\u1077?\u1076?\u1099?\u1076?\u1091?\u1097?\u1080?\u1093? \u1074?\u1077?\u1088?\u1089?\u1080?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1077?\u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1091?\u1089?\u1090?\u1088?\u1086?\u1081?\u1089?\u1090?\u1074?\u1072? \u1091?\u1089?\u1090?\u1088?\u1086?\u1077?\u1085?\u1099? \u1090?\u1072?\u1082?, \u1095?\u1090?\u1086? \u1085?\u1077? \u1087?\u1086?\u1079?\u1074?\u1086?\u1083?\u1103?\u1102?\u1090? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1103?\u1084? \u1091?\u1089?\u1090?\u1072?\u1085?\u1072?\u1074?\u1083?\u1080?\u1074?\u1072?\u1090?\u1100? \u1080?\u1083?\u1080? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072?\u1090?\u1100? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?, \u1093?\u1086?\u1090?\u1103? \u1087?\u1088?\u1086?\u1080?\u1079?\u1074?\u1086?\u1076?\u1080?\u1090?\u1077?\u1083?\u1100? \u1084?\u1086?\u1078?\u1077?\u1090? \u1101?\u1090?\u1086? \u1076?\u1077?\u1083?\u1072?\u1090?\u1100?. \u1069?\u1090?\u1086? \u1087?\u1088?\u1080?\u1085?\u1094?\u1080?\u1087?\u1080?\u1072?\u1083?\u1100?\u1085?\u1086? \u1085?\u1077?\u1089?\u1086?\u1074?\u1084?\u1077?\u1089?\u1090?\u1080?\u1084?\u1086? \u1089? \u1094?\u1077?\u1083?\u1100?\u1102? \u1079?\u1072?\u1097?\u1080?\u1090?\u1099? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1099? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1077? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077?. \u1058?\u1072?\u1082?\u1072?\u1103? \u1087?\u1088?\u1072?\u1082?\u1090?\u1080?\u1082?\u1072? \u1095?\u1072?\u1089?\u1090?\u1086? \u1074?\u1089?\u1090?\u1088?\u1077?\u1095?\u1072?\u1077?\u1090?\u1089?\u1103? \u1074? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1072?\u1093? \u1076?\u1083?\u1103? \u1095?\u1072?\u1089?\u1090?\u1085?\u1099?\u1093? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081?, \u1075?\u1076?\u1077? \u1086?\u1085?\u1072? \u1086?\u1089?\u1086?\u1073?\u1077?\u1085?\u1085?\u1086? \u1085?\u1077?\u1076?\u1086?\u1087?\u1091?\u1089?\u1090?\u1080?\u1084?\u1072?. \u1055?\u1086?\u1101?\u1090?\u1086?\u1084?\u1091? \u1101?\u1090?\u1072? \u1074?\u1077?\u1088?\u1089?\u1080?\u1103? GPL \u1079?\u1072?\u1087?\u1088?\u1077?\u1097?\u1072?\u1077?\u1090? \u1090?\u1072?\u1082?\u1091?\u1102? \u1087?\u1088?\u1072?\u1082?\u1090?\u1080?\u1082?\u1091? \u1076?\u1083?\u1103? \u1090?\u1072?\u1082?\u1080?\u1093? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1086?\u1074?. \u1045?\u1089?\u1083?\u1080? \u1087?\u1086?\u1076?\u1086?\u1073?\u1085?\u1099?\u1077? \u1087?\u1088?\u1086?\u1073?\u1083?\u1077?\u1084?\u1099? \u1087?\u1086?\u1103?\u1074?\u1103?\u1090?\u1089?\u1103? \u1074? \u1076?\u1088?\u1091?\u1075?\u1080?\u1093? \u1086?\u1073?\u1083?\u1072?\u1089?\u1090?\u1103?\u1093?, \u1084?\u1099? \u1075?\u1086?\u1090?\u1086?\u1074?\u1099? \u1088?\u1072?\u1089?\u1096?\u1080?\u1088?\u1080?\u1090?\u1100? \u1101?\u1090?\u1086? \u1087?\u1088?\u1072?\u1074?\u1080?\u1083?\u1086? \u1074? \u1073?\u1091?\u1076?\u1091?\u1097?\u1080?\u1093? \u1074?\u1077?\u1088?\u1089?\u1080?\u1103?\u1093? GPL, \u1085?\u1072?\u1089?\u1082?\u1086?\u1083?\u1100?\u1082?\u1086? \u1101?\u1090?\u1086? \u1087?\u1086?\u1090?\u1088?\u1077?\u1073?\u1091?\u1077?\u1090?\u1089?\u1103? \u1076?\u1083?\u1103? \u1079?\u1072?\u1097?\u1080?\u1090?\u1099? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1099? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1072?\u1082?\u1086?\u1085?\u1077?\u1094?, \u1082?\u1072?\u1078?\u1076?\u1086?\u1081? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077? \u1087?\u1086?\u1089?\u1090?\u1086?\u1103?\u1085?\u1085?\u1086? \u1091?\u1075?\u1088?\u1086?\u1078?\u1072?\u1102?\u1090? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1099? \u1085?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1077? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077?. \u1043?\u1086?\u1089?\u1091?\u1076?\u1072?\u1088?\u1089?\u1090?\u1074?\u1072? \u1085?\u1077? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1090?\u1100? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1072?\u1084? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1080?\u1074?\u1072?\u1090?\u1100? \u1088?\u1072?\u1079?\u1088?\u1072?\u1073?\u1086?\u1090?\u1082?\u1091? \u1080? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084? \u1085?\u1072? \u1082?\u1086?\u1084?\u1087?\u1100?\u1102?\u1090?\u1077?\u1088?\u1072?\u1093? \u1086?\u1073?\u1097?\u1077?\u1075?\u1086? \u1085?\u1072?\u1079?\u1085?\u1072?\u1095?\u1077?\u1085?\u1080?\u1103?. \u1053?\u1086? \u1090?\u1072?\u1084?, \u1075?\u1076?\u1077? \u1101?\u1090?\u1086? \u1074?\u1089?\u1105? \u1078?\u1077? \u1087?\u1088?\u1086?\u1080?\u1089?\u1093?\u1086?\u1076?\u1080?\u1090?, \u1084?\u1099? \u1093?\u1086?\u1090?\u1080?\u1084? \u1080?\u1079?\u1073?\u1077?\u1078?\u1072?\u1090?\u1100? \u1086?\u1089?\u1086?\u1073?\u1086?\u1081? \u1086?\u1087?\u1072?\u1089?\u1085?\u1086?\u1089?\u1090?\u1080?, \u1087?\u1088?\u1080? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1081? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1099? \u1084?\u1086?\u1075?\u1091?\u1090? \u1089?\u1076?\u1077?\u1083?\u1072?\u1090?\u1100? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1091?\u1102? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091? \u1092?\u1072?\u1082?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1085?\u1077?\u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1086?\u1081?. \u1044?\u1083?\u1103? \u1101?\u1090?\u1086?\u1075?\u1086? GPL \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1088?\u1091?\u1077?\u1090?, \u1095?\u1090?\u1086? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1099? \u1085?\u1077? \u1084?\u1086?\u1075?\u1091?\u1090? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100?\u1089?\u1103?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1089?\u1076?\u1077?\u1083?\u1072?\u1090?\u1100? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091? \u1085?\u1077?\u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1086?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1080?\u1078?\u1077? \u1087?\u1088?\u1080?\u1074?\u1077?\u1076?\u1077?\u1085?\u1099? \u1090?\u1086?\u1095?\u1085?\u1099?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?, \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1103? \u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs26 \u1059?\u1057?\u1051?\u1054?\u1042?\u1048?\u1071?\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 0. \u1054?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1077?\u1085?\u1080?\u1103?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1069?\u1090?\u1072? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1074?\u1077?\u1088?\u1089?\u1080?\u1102? 3 GNU General Public License.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1040?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1086?\u1077? \u1087?\u1088?\u1072?\u1074?\u1086?\u187? \u1090?\u1072?\u1082?\u1078?\u1077? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1079?\u1072?\u1082?\u1086?\u1085?\u1099?, \u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1077? \u1089? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1080?\u1084? \u1087?\u1088?\u1072?\u1074?\u1086?\u1084?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1102?\u1090?\u1089?\u1103? \u1082? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1074?\u1080?\u1076?\u1072?\u1084? \u1088?\u1072?\u1073?\u1086?\u1090?, \u1085?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088? \u1082? \u1090?\u1086?\u1087?\u1086?\u1083?\u1086?\u1075?\u1080?\u1103?\u1084? \u1080?\u1085?\u1090?\u1077?\u1075?\u1088?\u1072?\u1083?\u1100?\u1085?\u1099?\u1093? \u1084?\u1080?\u1082?\u1088?\u1086?\u1089?\u1093?\u1077?\u1084?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1083?\u1102?\u1073?\u1091?\u1102? \u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1077?\u1084?\u1091?\u1102? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1080?\u1084? \u1087?\u1088?\u1072?\u1074?\u1086?\u1084? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1085?\u1091?\u1102? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?. \u1050?\u1072?\u1078?\u1076?\u1099?\u1081? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1072?\u1090? \u1085?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u171?\u1074?\u1099?\u187?. \u171?\u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1072?\u1090?\u1099?\u187? \u1080? \u171?\u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1080?\u187? \u1084?\u1086?\u1075?\u1091?\u1090? \u1073?\u1099?\u1090?\u1100? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1084?\u1080? \u1080?\u1083?\u1080? \u1102?\u1088?\u1080?\u1076?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1084?\u1080? \u1083?\u1080?\u1094?\u1072?\u1084?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1048?\u1079?\u1084?\u1077?\u1085?\u1080?\u1090?\u1100?\u187? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1089?\u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100? \u1080?\u1083?\u1080? \u1072?\u1076?\u1072?\u1087?\u1090?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100? \u1074?\u1089?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1080?\u1083?\u1080? \u1077?\u1105? \u1095?\u1072?\u1089?\u1090?\u1100? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084?, \u1090?\u1088?\u1077?\u1073?\u1091?\u1102?\u1097?\u1080?\u1084? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1103?, \u1082?\u1088?\u1086?\u1084?\u1077? \u1089?\u1086?\u1079?\u1076?\u1072?\u1085?\u1080?\u1103? \u1090?\u1086?\u1095?\u1085?\u1086?\u1081? \u1082?\u1086?\u1087?\u1080?\u1080?. \u1055?\u1086?\u1083?\u1091?\u1095?\u1077?\u1085?\u1085?\u1072?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072? \u1085?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u171?\u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1086?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1077?\u1081?\u187? \u1087?\u1088?\u1077?\u1076?\u1099?\u1076?\u1091?\u1097?\u1077?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1080?\u1083?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1086?\u1081?, \u171?\u1086?\u1089?\u1085?\u1086?\u1074?\u1072?\u1085?\u1085?\u1086?\u1081? \u1085?\u1072?\u187? \u1087?\u1088?\u1077?\u1076?\u1099?\u1076?\u1091?\u1097?\u1077?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1077?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1054?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1072?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1085?\u1077?\u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1091?\u1102? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091? \u1080?\u1083?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1086?\u1089?\u1085?\u1086?\u1074?\u1072?\u1085?\u1085?\u1091?\u1102? \u1085?\u1072? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1056?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100?\u187? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1076?\u1077?\u1083?\u1072?\u1090?\u1100? \u1089? \u1085?\u1077?\u1081? \u1074?\u1089?\u1105?, \u1095?\u1090?\u1086? \u1073?\u1077?\u1079? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103? \u1087?\u1088?\u1103?\u1084?\u1086? \u1080?\u1083?\u1080? \u1082?\u1086?\u1089?\u1074?\u1077?\u1085?\u1085?\u1086? \u1089?\u1076?\u1077?\u1083?\u1072?\u1083?\u1086? \u1073?\u1099? \u1074?\u1072?\u1089? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1099?\u1084? \u1079?\u1072? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1077? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1086?\u1075?\u1086? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1086?\u1075?\u1086? \u1087?\u1088?\u1072?\u1074?\u1072?, \u1082?\u1088?\u1086?\u1084?\u1077? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072? \u1085?\u1072? \u1082?\u1086?\u1084?\u1087?\u1100?\u1102?\u1090?\u1077?\u1088?\u1077? \u1080?\u1083?\u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1103? \u1083?\u1080?\u1095?\u1085?\u1086?\u1081? \u1082?\u1086?\u1087?\u1080?\u1080?. \u1056?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1077? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1077?\u1090? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077?, \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1091?, \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1080?\u1077? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1072?, \u1072? \u1074? \u1085?\u1077?\u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1093? \u1089?\u1090?\u1088?\u1072?\u1085?\u1072?\u1093? \u1080? \u1076?\u1088?\u1091?\u1075?\u1080?\u1077? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100?\u187? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1083?\u1102?\u1073?\u1086?\u1081? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1103?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1081? \u1087?\u1086?\u1079?\u1074?\u1086?\u1083?\u1103?\u1077?\u1090? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1072?\u1084? \u1076?\u1077?\u1083?\u1072?\u1090?\u1100? \u1080?\u1083?\u1080? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1100? \u1082?\u1086?\u1087?\u1080?\u1080?. \u1055?\u1088?\u1086?\u1089?\u1090?\u1086?\u1077? \u1074?\u1079?\u1072?\u1080?\u1084?\u1086?\u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1077? \u1089? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1084? \u1095?\u1077?\u1088?\u1077?\u1079? \u1082?\u1086?\u1084?\u1087?\u1100?\u1102?\u1090?\u1077?\u1088?\u1085?\u1091?\u1102? \u1089?\u1077?\u1090?\u1100? \u1073?\u1077?\u1079? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1080? \u1082?\u1086?\u1087?\u1080?\u1080? \u1085?\u1077? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1077?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1048?\u1085?\u1090?\u1077?\u1088?\u1072?\u1082?\u1090?\u1080?\u1074?\u1085?\u1099?\u1081? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1080?\u1081? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089? \u1087?\u1086?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090? \u171?\u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1077? \u1102?\u1088?\u1080?\u1076?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103?\u187?, \u1077?\u1089?\u1083?\u1080? \u1086?\u1085? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1080?\u1090? \u1091?\u1076?\u1086?\u1073?\u1085?\u1091?\u1102? \u1080? \u1079?\u1072?\u1084?\u1077?\u1090?\u1085?\u1091?\u1102? \u1092?\u1091?\u1085?\u1082?\u1094?\u1080?\u1102?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1072?\u1103? \u1087?\u1086?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090? \u1087?\u1086?\u1076?\u1093?\u1086?\u1076?\u1103?\u1097?\u1077?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1077? \u1086?\u1073? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1080?\u1093? \u1087?\u1088?\u1072?\u1074?\u1072?\u1093? \u1080? \u1089?\u1086?\u1086?\u1073?\u1097?\u1072?\u1077?\u1090? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1102?, \u1095?\u1090?\u1086? \u1085?\u1072? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1085?\u1077? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1103?, \u1082?\u1088?\u1086?\u1084?\u1077? \u1089?\u1083?\u1091?\u1095?\u1072?\u1077?\u1074?, \u1082?\u1086?\u1075?\u1076?\u1072? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1103? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1072? \u1086?\u1090?\u1076?\u1077?\u1083?\u1100?\u1085?\u1086?, \u1095?\u1090?\u1086? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1072?\u1090?\u1099? \u1084?\u1086?\u1075?\u1091?\u1090? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1080? \u1082?\u1072?\u1082? \u1087?\u1086?\u1089?\u1084?\u1086?\u1090?\u1088?\u1077?\u1090?\u1100? \u1082?\u1086?\u1087?\u1080?\u1102? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?. \u1045?\u1089?\u1083?\u1080? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1080?\u1090? \u1089?\u1087?\u1080?\u1089?\u1086?\u1082? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1080?\u1093? \u1082?\u1086?\u1084?\u1072?\u1085?\u1076? \u1080?\u1083?\u1080? \u1074?\u1072?\u1088?\u1080?\u1072?\u1085?\u1090?\u1086?\u1074?, \u1085?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088? \u1084?\u1077?\u1085?\u1102?, \u1079?\u1072?\u1084?\u1077?\u1090?\u1085?\u1099?\u1081? \u1087?\u1091?\u1085?\u1082?\u1090? \u1074? \u1090?\u1072?\u1082?\u1086?\u1084? \u1089?\u1087?\u1080?\u1089?\u1082?\u1077? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1077?\u1090? \u1101?\u1090?\u1086?\u1084?\u1091? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1102?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 1. \u1048?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1048?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?\u187? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1087?\u1088?\u1077?\u1076?\u1087?\u1086?\u1095?\u1090?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1091?\u1102? \u1092?\u1086?\u1088?\u1084?\u1091? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1076?\u1083?\u1103? \u1074?\u1085?\u1077?\u1089?\u1077?\u1085?\u1080?\u1103? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1081?. \u171?\u1054?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1083?\u1102?\u1073?\u1091?\u1102? \u1085?\u1077?\u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1091?\u1102? \u1092?\u1086?\u1088?\u1084?\u1091? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1057?\u1090?\u1072?\u1085?\u1076?\u1072?\u1088?\u1090?\u1085?\u1099?\u1081? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1081? \u1083?\u1080?\u1073?\u1086? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1086?\u1092?\u1080?\u1094?\u1080?\u1072?\u1083?\u1100?\u1085?\u1099?\u1084? \u1089?\u1090?\u1072?\u1085?\u1076?\u1072?\u1088?\u1090?\u1086?\u1084?, \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1105?\u1085?\u1085?\u1099?\u1084? \u1087?\u1088?\u1080?\u1079?\u1085?\u1072?\u1085?\u1085?\u1086?\u1081? \u1086?\u1088?\u1075?\u1072?\u1085?\u1080?\u1079?\u1072?\u1094?\u1080?\u1077?\u1081? \u1087?\u1086? \u1089?\u1090?\u1072?\u1085?\u1076?\u1072?\u1088?\u1090?\u1080?\u1079?\u1072?\u1094?\u1080?\u1080?, \u1083?\u1080?\u1073?\u1086?, \u1077?\u1089?\u1083?\u1080? \u1088?\u1077?\u1095?\u1100? \u1080?\u1076?\u1105?\u1090? \u1086?\u1073? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089?\u1072?\u1093? \u1076?\u1083?\u1103? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1105?\u1085?\u1085?\u1086?\u1075?\u1086? \u1103?\u1079?\u1099?\u1082?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?, \u1096?\u1080?\u1088?\u1086?\u1082?\u1086? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1077?\u1090?\u1089?\u1103? \u1088?\u1072?\u1079?\u1088?\u1072?\u1073?\u1086?\u1090?\u1095?\u1080?\u1082?\u1072?\u1084?\u1080?, \u1088?\u1072?\u1073?\u1086?\u1090?\u1072?\u1102?\u1097?\u1080?\u1084?\u1080? \u1085?\u1072? \u1101?\u1090?\u1086?\u1084? \u1103?\u1079?\u1099?\u1082?\u1077?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1057?\u1080?\u1089?\u1090?\u1077?\u1084?\u1085?\u1099?\u1077? \u1073?\u1080?\u1073?\u1083?\u1080?\u1086?\u1090?\u1077?\u1082?\u1080?\u187? \u1080?\u1089?\u1087?\u1086?\u1083?\u1085?\u1103?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1102?\u1090? \u1074?\u1089?\u1105?, \u1082?\u1088?\u1086?\u1084?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1082?\u1072?\u1082? \u1094?\u1077?\u1083?\u1086?\u1075?\u1086?, \u1095?\u1090?\u1086? \u1074?\u1082?\u1083?\u1102?\u1095?\u1077?\u1085?\u1086? \u1074? \u1086?\u1073?\u1099?\u1095?\u1085?\u1091?\u1102? \u1092?\u1086?\u1088?\u1084?\u1091? \u1091?\u1087?\u1072?\u1082?\u1086?\u1074?\u1082?\u1080? \u1086?\u1089?\u1085?\u1086?\u1074?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1084?\u1087?\u1086?\u1085?\u1077?\u1085?\u1090?\u1072?, \u1085?\u1086? \u1085?\u1077? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1095?\u1072?\u1089?\u1090?\u1100?\u1102? \u1101?\u1090?\u1086?\u1075?\u1086? \u1086?\u1089?\u1085?\u1086?\u1074?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1084?\u1087?\u1086?\u1085?\u1077?\u1085?\u1090?\u1072?, \u1080? \u1089?\u1083?\u1091?\u1078?\u1080?\u1090? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1076?\u1083?\u1103? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1089? \u1101?\u1090?\u1080?\u1084? \u1086?\u1089?\u1085?\u1086?\u1074?\u1085?\u1099?\u1084? \u1082?\u1086?\u1084?\u1087?\u1086?\u1085?\u1077?\u1085?\u1090?\u1086?\u1084? \u1080?\u1083?\u1080? \u1076?\u1083?\u1103? \u1088?\u1077?\u1072?\u1083?\u1080?\u1079?\u1072?\u1094?\u1080?\u1080? \u1089?\u1090?\u1072?\u1085?\u1076?\u1072?\u1088?\u1090?\u1085?\u1086?\u1075?\u1086? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089?\u1072?, \u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1085?\u1086?\u1075?\u1086? \u1086?\u1073?\u1097?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080? \u1074? \u1074?\u1080?\u1076?\u1077? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072?. \u171?\u1054?\u1089?\u1085?\u1086?\u1074?\u1085?\u1086?\u1081? \u1082?\u1086?\u1084?\u1087?\u1086?\u1085?\u1077?\u1085?\u1090?\u187? \u1074? \u1101?\u1090?\u1086?\u1084? \u1082?\u1086?\u1085?\u1090?\u1077?\u1082?\u1089?\u1090?\u1077? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1099?\u1081? \u1086?\u1089?\u1085?\u1086?\u1074?\u1085?\u1086?\u1081? \u1082?\u1086?\u1084?\u1087?\u1086?\u1085?\u1077?\u1085?\u1090? \u1086?\u1087?\u1077?\u1088?\u1072?\u1094?\u1080?\u1086?\u1085?\u1085?\u1086?\u1081? \u1089?\u1080?\u1089?\u1090?\u1077?\u1084?\u1099?, \u1103?\u1076?\u1088?\u1086?, \u1086?\u1082?\u1086?\u1085?\u1085?\u1091?\u1102? \u1089?\u1080?\u1089?\u1090?\u1077?\u1084?\u1091? \u1080? \u1090?\u1072?\u1082? \u1076?\u1072?\u1083?\u1077?\u1077?, \u1085?\u1072? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072?\u1077?\u1090? \u1080?\u1089?\u1087?\u1086?\u1083?\u1085?\u1103?\u1077?\u1084?\u1072?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072?, \u1083?\u1080?\u1073?\u1086? \u1082?\u1086?\u1084?\u1087?\u1080?\u1083?\u1103?\u1090?\u1086?\u1088?, \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1085?\u1099?\u1081? \u1076?\u1083?\u1103? \u1089?\u1086?\u1079?\u1076?\u1072?\u1085?\u1080?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1083?\u1080?\u1073?\u1086? \u1080?\u1085?\u1090?\u1077?\u1088?\u1087?\u1088?\u1077?\u1090?\u1072?\u1090?\u1086?\u1088? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072?, \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1077?\u1084?\u1099?\u1081? \u1076?\u1083?\u1103? \u1077?\u1105? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1057?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?\u187? \u1076?\u1083?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1074? \u1092?\u1086?\u1088?\u1084?\u1077? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1074?\u1077?\u1089?\u1100? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?, \u1085?\u1077?\u1086?\u1073?\u1093?\u1086?\u1076?\u1080?\u1084?\u1099?\u1081? \u1076?\u1083?\u1103? \u1089?\u1086?\u1079?\u1076?\u1072?\u1085?\u1080?\u1103?, \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1082?\u1080? \u1080? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072?, \u1072? \u1090?\u1072?\u1082?\u1078?\u1077? \u1076?\u1083?\u1103? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1103? \u1089?\u1082?\u1088?\u1080?\u1087?\u1090?\u1099? \u1091?\u1087?\u1088?\u1072?\u1074?\u1083?\u1077?\u1085?\u1080?\u1103? \u1101?\u1090?\u1080?\u1084?\u1080? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1103?\u1084?\u1080?. \u1054?\u1085? \u1085?\u1077? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1077?\u1090? \u1089?\u1080?\u1089?\u1090?\u1077?\u1084?\u1085?\u1099?\u1077? \u1073?\u1080?\u1073?\u1083?\u1080?\u1086?\u1090?\u1077?\u1082?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1080?\u1085?\u1089?\u1090?\u1088?\u1091?\u1084?\u1077?\u1085?\u1090?\u1099? \u1086?\u1073?\u1097?\u1077?\u1075?\u1086? \u1085?\u1072?\u1079?\u1085?\u1072?\u1095?\u1077?\u1085?\u1080?\u1103? \u1080? \u1086?\u1073?\u1097?\u1077?\u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1085?\u1099?\u1077? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1099?\u1077? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1102?\u1090?\u1089?\u1103? \u1073?\u1077?\u1079? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1081? \u1087?\u1088?\u1080? \u1074?\u1099?\u1087?\u1086?\u1083?\u1085?\u1077?\u1085?\u1080?\u1080? \u1101?\u1090?\u1080?\u1093? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1081?, \u1085?\u1086? \u1085?\u1077? \u1103?\u1074?\u1083?\u1103?\u1102?\u1090?\u1089?\u1103? \u1095?\u1072?\u1089?\u1090?\u1100?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?. \u1053?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088?, \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1077?\u1090? \u1092?\u1072?\u1081?\u1083?\u1099? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1077?\u1085?\u1080?\u1103? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089?\u1072?, \u1089?\u1074?\u1103?\u1079?\u1072?\u1085?\u1085?\u1099?\u1077? \u1089? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1084?\u1080? \u1092?\u1072?\u1081?\u1083?\u1072?\u1084?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1072? \u1090?\u1072?\u1082?\u1078?\u1077? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1086?\u1073?\u1097?\u1080?\u1093? \u1073?\u1080?\u1073?\u1083?\u1080?\u1086?\u1090?\u1077?\u1082? \u1080? \u1076?\u1080?\u1085?\u1072?\u1084?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1087?\u1086?\u1076?\u1082?\u1083?\u1102?\u1095?\u1072?\u1077?\u1084?\u1099?\u1093? \u1087?\u1086?\u1076?\u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072? \u1089?\u1087?\u1077?\u1094?\u1080?\u1072?\u1083?\u1100?\u1085?\u1086? \u1090?\u1088?\u1077?\u1073?\u1091?\u1077?\u1090?, \u1085?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088? \u1095?\u1077?\u1088?\u1077?\u1079? \u1090?\u1077?\u1089?\u1085?\u1086?\u1077? \u1074?\u1079?\u1072?\u1080?\u1084?\u1086?\u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1077? \u1076?\u1072?\u1085?\u1085?\u1099?\u1093? \u1080?\u1083?\u1080? \u1091?\u1087?\u1088?\u1072?\u1074?\u1083?\u1077?\u1085?\u1080?\u1103? \u1084?\u1077?\u1078?\u1076?\u1091? \u1090?\u1072?\u1082?\u1080?\u1084?\u1080? \u1087?\u1086?\u1076?\u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072?\u1084?\u1080? \u1080? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084?\u1080? \u1095?\u1072?\u1089?\u1090?\u1103?\u1084?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1057?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1085?\u1077? \u1086?\u1073?\u1103?\u1079?\u1072?\u1085? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1090?\u1100? \u1085?\u1080?\u1095?\u1077?\u1075?\u1086?, \u1095?\u1090?\u1086? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100? \u1084?\u1086?\u1078?\u1077?\u1090? \u1072?\u1074?\u1090?\u1086?\u1084?\u1072?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1074?\u1086?\u1089?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1080?\u1090?\u1100? \u1080?\u1079? \u1076?\u1088?\u1091?\u1075?\u1080?\u1093? \u1095?\u1072?\u1089?\u1090?\u1077?\u1081? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1075?\u1086? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1057?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1076?\u1083?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1074? \u1092?\u1086?\u1088?\u1084?\u1077? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1101?\u1090?\u1086?\u1081? \u1078?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1086?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 2. \u1054?\u1089?\u1085?\u1086?\u1074?\u1085?\u1099?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1089?\u1077? \u1087?\u1088?\u1072?\u1074?\u1072?, \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1099?\u1077? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1102?\u1090?\u1089?\u1103? \u1085?\u1072? \u1089?\u1088?\u1086?\u1082? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1103? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1086?\u1075?\u1086? \u1087?\u1088?\u1072?\u1074?\u1072? \u1085?\u1072? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091? \u1080? \u1103?\u1074?\u1083?\u1103?\u1102?\u1090?\u1089?\u1103? \u1073?\u1077?\u1079?\u1086?\u1090?\u1079?\u1099?\u1074?\u1085?\u1099?\u1084?\u1080? \u1087?\u1088?\u1080? \u1089?\u1086?\u1073?\u1083?\u1102?\u1076?\u1077?\u1085?\u1080?\u1080? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1085?\u1099?\u1093? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1081?. \u1069?\u1090?\u1072? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1087?\u1088?\u1103?\u1084?\u1086? \u1087?\u1086?\u1076?\u1090?\u1074?\u1077?\u1088?\u1078?\u1076?\u1072?\u1077?\u1090? \u1074?\u1072?\u1096?\u1077? \u1085?\u1077?\u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1085?\u1086?\u1077? \u1087?\u1088?\u1072?\u1074?\u1086? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072?\u1090?\u1100? \u1085?\u1077?\u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1091?\u1102? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091?. \u1042?\u1099?\u1074?\u1086?\u1076? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1087?\u1086?\u1082?\u1088?\u1099?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1074? \u1090?\u1086?\u1084? \u1089?\u1083?\u1091?\u1095?\u1072?\u1077?, \u1077?\u1089?\u1083?\u1080? \u1090?\u1072?\u1082?\u1086?\u1081? \u1074?\u1099?\u1074?\u1086?\u1076? \u1089?\u1072?\u1084? \u1087?\u1086? \u1089?\u1077?\u1073?\u1077? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1086?\u1081? \u1089? \u1091?\u1095?\u1105?\u1090?\u1086?\u1084? \u1077?\u1075?\u1086? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1072?\u1085?\u1080?\u1103?. \u1069?\u1090?\u1072? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1087?\u1088?\u1080?\u1079?\u1085?\u1072?\u1105?\u1090? \u1074?\u1072?\u1096?\u1080? \u1087?\u1088?\u1072?\u1074?\u1072? \u1076?\u1086?\u1073?\u1088?\u1086?\u1089?\u1086?\u1074?\u1077?\u1089?\u1090?\u1085?\u1086?\u1075?\u1086? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1080?\u1083?\u1080? \u1080?\u1085?\u1099?\u1077? \u1101?\u1082?\u1074?\u1080?\u1074?\u1072?\u1083?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1087?\u1088?\u1072?\u1074?\u1072?, \u1087?\u1088?\u1077?\u1076?\u1091?\u1089?\u1084?\u1086?\u1090?\u1088?\u1077?\u1085?\u1085?\u1099?\u1077? \u1079?\u1072?\u1082?\u1086?\u1085?\u1086?\u1084? \u1086?\u1073? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1086?\u1084? \u1087?\u1088?\u1072?\u1074?\u1077?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1089?\u1086?\u1079?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100?, \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072?\u1090?\u1100? \u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1099?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1074?\u1099? \u1085?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077?, \u1073?\u1077?\u1079? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1081?, \u1087?\u1086?\u1082?\u1072? \u1074?\u1072?\u1096?\u1072? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1086?\u1089?\u1090?\u1072?\u1105?\u1090?\u1089?\u1103? \u1074? \u1089?\u1080?\u1083?\u1077?. \u1042?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1099?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1083?\u1080?\u1094?\u1072?\u1084? \u1080?\u1089?\u1082?\u1083?\u1102?\u1095?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086? \u1076?\u1083?\u1103? \u1090?\u1086?\u1075?\u1086?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1086?\u1085?\u1080? \u1074?\u1085?\u1077?\u1089?\u1083?\u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1103? \u1076?\u1083?\u1103? \u1074?\u1072?\u1089? \u1080?\u1083?\u1080? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1080?\u1083?\u1080? \u1074?\u1072?\u1084? \u1089?\u1088?\u1077?\u1076?\u1089?\u1090?\u1074?\u1072? \u1076?\u1083?\u1103? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072? \u1090?\u1072?\u1082?\u1080?\u1093? \u1088?\u1072?\u1073?\u1086?\u1090?, \u1087?\u1088?\u1080? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1080?, \u1095?\u1090?\u1086? \u1074?\u1099? \u1089?\u1086?\u1073?\u1083?\u1102?\u1076?\u1072?\u1077?\u1090?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1087?\u1088?\u1080? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1077? \u1074?\u1089?\u1077?\u1075?\u1086? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1072?, \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1080?\u1084? \u1087?\u1088?\u1072?\u1074?\u1086?\u1084? \u1085?\u1072? \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1081? \u1074?\u1099? \u1085?\u1077? \u1074?\u1083?\u1072?\u1076?\u1077?\u1077?\u1090?\u1077?. \u1051?\u1080?\u1094?\u1072?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1089?\u1086?\u1079?\u1076?\u1072?\u1102?\u1090? \u1080?\u1083?\u1080? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072?\u1102?\u1090? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1099?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1076?\u1083?\u1103? \u1074?\u1072?\u1089?, \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1076?\u1077?\u1083?\u1072?\u1090?\u1100? \u1101?\u1090?\u1086? \u1080?\u1089?\u1082?\u1083?\u1102?\u1095?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086? \u1086?\u1090? \u1074?\u1072?\u1096?\u1077?\u1075?\u1086? \u1080?\u1084?\u1077?\u1085?\u1080?, \u1087?\u1086?\u1076? \u1074?\u1072?\u1096?\u1080?\u1084? \u1088?\u1091?\u1082?\u1086?\u1074?\u1086?\u1076?\u1089?\u1090?\u1074?\u1086?\u1084? \u1080? \u1082?\u1086?\u1085?\u1090?\u1088?\u1086?\u1083?\u1077?\u1084?, \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093?, \u1079?\u1072?\u1087?\u1088?\u1077?\u1097?\u1072?\u1102?\u1097?\u1080?\u1093? \u1080?\u1084? \u1076?\u1077?\u1083?\u1072?\u1090?\u1100? \u1082?\u1086?\u1087?\u1080?\u1080? \u1074?\u1072?\u1096?\u1077?\u1075?\u1086? \u1079?\u1072?\u1097?\u1080?\u1097?\u1105?\u1085?\u1085?\u1086?\u1075?\u1086? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1072? \u1074?\u1085?\u1077? \u1086?\u1090?\u1085?\u1086?\u1096?\u1077?\u1085?\u1080?\u1081? \u1089? \u1074?\u1072?\u1084?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1072? \u1087?\u1088?\u1080? \u1083?\u1102?\u1073?\u1099?\u1093? \u1076?\u1088?\u1091?\u1075?\u1080?\u1093? \u1086?\u1073?\u1089?\u1090?\u1086?\u1103?\u1090?\u1077?\u1083?\u1100?\u1089?\u1090?\u1074?\u1072?\u1093? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1072? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093?, \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1085?\u1099?\u1093? \u1085?\u1080?\u1078?\u1077?. \u1057?\u1091?\u1073?\u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1085?\u1077? \u1076?\u1086?\u1087?\u1091?\u1089?\u1082?\u1072?\u1077?\u1090?\u1089?\u1103?. \u1056?\u1072?\u1079?\u1076?\u1077?\u1083? 10 \u1076?\u1077?\u1083?\u1072?\u1077?\u1090? \u1077?\u1075?\u1086? \u1085?\u1077?\u1085?\u1091?\u1078?\u1085?\u1099?\u1084?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 3. \u1047?\u1072?\u1097?\u1080?\u1090?\u1072? \u1087?\u1088?\u1072?\u1074? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081? \u1086?\u1090? \u1079?\u1072?\u1082?\u1086?\u1085?\u1086?\u1074? \u1086?\u1073? \u1086?\u1073?\u1093?\u1086?\u1076?\u1077? \u1090?\u1077?\u1093?\u1085?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1093? \u1089?\u1088?\u1077?\u1076?\u1089?\u1090?\u1074?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1080? \u1086?\u1076?\u1085?\u1072? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1072?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072? \u1085?\u1077? \u1089?\u1095?\u1080?\u1090?\u1072?\u1077?\u1090?\u1089?\u1103? \u1095?\u1072?\u1089?\u1090?\u1100?\u1102? \u1101?\u1092?\u1092?\u1077?\u1082?\u1090?\u1080?\u1074?\u1085?\u1086?\u1081? \u1090?\u1077?\u1093?\u1085?\u1086?\u1083?\u1086?\u1075?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1081? \u1084?\u1077?\u1088?\u1099? \u1074? \u1089?\u1084?\u1099?\u1089?\u1083?\u1077? \u1089?\u1090?\u1072?\u1090?\u1100?\u1080? 11 \u1044?\u1086?\u1075?\u1086?\u1074?\u1086?\u1088?\u1072? \u1042?\u1054?\u1048?\u1057? \u1087?\u1086? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1086?\u1084?\u1091? \u1087?\u1088?\u1072?\u1074?\u1091? \u1086?\u1090? 20 \u1076?\u1077?\u1082?\u1072?\u1073?\u1088?\u1103? 1996 \u1075?\u1086?\u1076?\u1072? \u1080?\u1083?\u1080? \u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1093? \u1079?\u1072?\u1082?\u1086?\u1085?\u1086?\u1074?, \u1079?\u1072?\u1087?\u1088?\u1077?\u1097?\u1072?\u1102?\u1097?\u1080?\u1093? \u1080?\u1083?\u1080? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1080?\u1074?\u1072?\u1102?\u1097?\u1080?\u1093? \u1086?\u1073?\u1093?\u1086?\u1076? \u1090?\u1072?\u1082?\u1080?\u1093? \u1084?\u1077?\u1088?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1050?\u1086?\u1075?\u1076?\u1072? \u1074?\u1099? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1074?\u1099? \u1086?\u1090?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090?\u1077?\u1089?\u1100? \u1086?\u1090? \u1083?\u1102?\u1073?\u1099?\u1093? \u1087?\u1088?\u1072?\u1074? \u1079?\u1072?\u1087?\u1088?\u1077?\u1097?\u1072?\u1090?\u1100? \u1086?\u1073?\u1093?\u1086?\u1076? \u1090?\u1077?\u1093?\u1085?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1093? \u1089?\u1088?\u1077?\u1076?\u1089?\u1090?\u1074? \u1074? \u1090?\u1086?\u1081? \u1084?\u1077?\u1088?\u1077?, \u1074? \u1082?\u1072?\u1082?\u1086?\u1081? \u1090?\u1072?\u1082?\u1086?\u1081? \u1086?\u1073?\u1093?\u1086?\u1076? \u1086?\u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1076?\u1083?\u1103? \u1088?\u1077?\u1072?\u1083?\u1080?\u1079?\u1072?\u1094?\u1080?\u1080? \u1087?\u1088?\u1072?\u1074? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1074? \u1086?\u1090?\u1085?\u1086?\u1096?\u1077?\u1085?\u1080?\u1080? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?. \u1042?\u1099? \u1090?\u1072?\u1082?\u1078?\u1077? \u1086?\u1090?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090?\u1077?\u1089?\u1100? \u1086?\u1090? \u1085?\u1072?\u1084?\u1077?\u1088?\u1077?\u1085?\u1080?\u1103? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1080?\u1074?\u1072?\u1090?\u1100? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1080?\u1083?\u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1082?\u1072?\u1082? \u1089?\u1088?\u1077?\u1076?\u1089?\u1090?\u1074?\u1086? \u1087?\u1088?\u1080?\u1085?\u1091?\u1078?\u1076?\u1077?\u1085?\u1080?\u1103? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081? \u1082? \u1089?\u1086?\u1073?\u1083?\u1102?\u1076?\u1077?\u1085?\u1080?\u1102? \u1074?\u1072?\u1096?\u1080?\u1093? \u1080?\u1083?\u1080? \u1095?\u1091?\u1078?\u1080?\u1093? \u1087?\u1088?\u1072?\u1074? \u1079?\u1072?\u1087?\u1088?\u1077?\u1097?\u1072?\u1090?\u1100? \u1086?\u1073?\u1093?\u1086?\u1076? \u1090?\u1077?\u1093?\u1085?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1093? \u1089?\u1088?\u1077?\u1076?\u1089?\u1090?\u1074?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 4. \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1072? \u1090?\u1086?\u1095?\u1085?\u1099?\u1093? \u1082?\u1086?\u1087?\u1080?\u1081?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1090?\u1086?\u1095?\u1085?\u1099?\u1077? \u1082?\u1086?\u1087?\u1080?\u1080? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1074? \u1090?\u1086?\u1084? \u1074?\u1080?\u1076?\u1077?, \u1074? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1084? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1083?\u1080? \u1077?\u1075?\u1086?, \u1085?\u1072? \u1083?\u1102?\u1073?\u1086?\u1084? \u1085?\u1086?\u1089?\u1080?\u1090?\u1077?\u1083?\u1077?, \u1087?\u1088?\u1080? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1080?, \u1095?\u1090?\u1086? \u1074?\u1099? \u1079?\u1072?\u1084?\u1077?\u1090?\u1085?\u1086? \u1080? \u1085?\u1072?\u1076?\u1083?\u1077?\u1078?\u1072?\u1097?\u1080?\u1084? \u1086?\u1073?\u1088?\u1072?\u1079?\u1086?\u1084? \u1089?\u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1077? \u1085?\u1072? \u1082?\u1072?\u1078?\u1076?\u1086?\u1081? \u1082?\u1086?\u1087?\u1080?\u1080? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1077? \u1086?\u1073? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1080?\u1093? \u1087?\u1088?\u1072?\u1074?\u1072?\u1093?, \u1089?\u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1077? \u1074?\u1089?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103? \u1086? \u1090?\u1086?\u1084?, \u1095?\u1090?\u1086? \u1082? \u1082?\u1086?\u1076?\u1091? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1077?\u1090?\u1089?\u1103? \u1101?\u1090?\u1072? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1080? \u1083?\u1102?\u1073?\u1099?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?, \u1076?\u1086?\u1073?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1099?\u1077? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1091? 7, \u1089?\u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1077? \u1074?\u1089?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103? \u1086?\u1073? \u1086?\u1090?\u1089?\u1091?\u1090?\u1089?\u1090?\u1074?\u1080?\u1080? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1080? \u1080? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090?\u1077? \u1074?\u1089?\u1077?\u1084? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1103?\u1084? \u1082?\u1086?\u1087?\u1080?\u1102? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1086?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1074?\u1079?\u1080?\u1084?\u1072?\u1090?\u1100? \u1083?\u1102?\u1073?\u1091?\u1102? \u1094?\u1077?\u1085?\u1091? \u1080?\u1083?\u1080? \u1085?\u1077? \u1074?\u1079?\u1080?\u1084?\u1072?\u1090?\u1100? \u1087?\u1083?\u1072?\u1090?\u1091? \u1079?\u1072? \u1082?\u1072?\u1078?\u1076?\u1091?\u1102? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1085?\u1085?\u1091?\u1102? \u1082?\u1086?\u1087?\u1080?\u1102?, \u1072? \u1090?\u1072?\u1082?\u1078?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1088?\u1077?\u1076?\u1083?\u1072?\u1075?\u1072?\u1090?\u1100? \u1087?\u1086?\u1076?\u1076?\u1077?\u1088?\u1078?\u1082?\u1091? \u1080?\u1083?\u1080? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1081?\u1085?\u1091?\u1102? \u1079?\u1072?\u1097?\u1080?\u1090?\u1091? \u1079?\u1072? \u1087?\u1083?\u1072?\u1090?\u1091?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 5. \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1072? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1093? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1093? \u1074?\u1077?\u1088?\u1089?\u1080?\u1081?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1086?\u1089?\u1085?\u1086?\u1074?\u1072?\u1085?\u1085?\u1091?\u1102? \u1085?\u1072? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077?, \u1080?\u1083?\u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1103?, \u1089?\u1086?\u1079?\u1076?\u1072?\u1102?\u1097?\u1080?\u1077? \u1090?\u1072?\u1082?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1080?\u1079? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099?, \u1074? \u1092?\u1086?\u1088?\u1084?\u1077? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1072? 4, \u1077?\u1089?\u1083?\u1080? \u1074?\u1099? \u1090?\u1072?\u1082?\u1078?\u1077? \u1074?\u1099?\u1087?\u1086?\u1083?\u1085?\u1103?\u1077?\u1090?\u1077? \u1074?\u1089?\u1077? \u1089?\u1083?\u1077?\u1076?\u1091?\u1102?\u1097?\u1080?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1072?) \u1056?\u1072?\u1073?\u1086?\u1090?\u1072? \u1076?\u1086?\u1083?\u1078?\u1085?\u1072? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1072?\u1090?\u1100? \u1079?\u1072?\u1084?\u1077?\u1090?\u1085?\u1099?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103? \u1086? \u1090?\u1086?\u1084?, \u1095?\u1090?\u1086? \u1074?\u1099? \u1080?\u1079?\u1084?\u1077?\u1085?\u1080?\u1083?\u1080? \u1077?\u1105?, \u1089? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1080?\u1077?\u1084? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1081? \u1076?\u1072?\u1090?\u1099?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1073?) \u1056?\u1072?\u1073?\u1086?\u1090?\u1072? \u1076?\u1086?\u1083?\u1078?\u1085?\u1072? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1072?\u1090?\u1100? \u1079?\u1072?\u1084?\u1077?\u1090?\u1085?\u1099?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103? \u1086? \u1090?\u1086?\u1084?, \u1095?\u1090?\u1086? \u1086?\u1085?\u1072? \u1074?\u1099?\u1087?\u1091?\u1097?\u1077?\u1085?\u1072? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1080? \u1087?\u1086? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1084?, \u1076?\u1086?\u1073?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1099?\u1084? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1091? 7. \u1069?\u1090?\u1086? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1077?\u1090? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1072? 4 \u1089?\u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1074?\u1089?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103? \u1073?\u1077?\u1079? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1074?) \u1042?\u1099? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100? \u1074?\u1089?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1082?\u1072?\u1082? \u1077?\u1076?\u1080?\u1085?\u1086?\u1077? \u1094?\u1077?\u1083?\u1086?\u1077? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1076?\u1083?\u1103? \u1083?\u1102?\u1073?\u1086?\u1075?\u1086?, \u1082?\u1090?\u1086? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1077?\u1090? \u1082?\u1086?\u1087?\u1080?\u1102?. \u1055?\u1086?\u1101?\u1090?\u1086?\u1084?\u1091? \u1101?\u1090?\u1072? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1099?\u1084?\u1080? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1084?\u1080? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1084?\u1080? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1072? 7 \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1077?\u1090?\u1089?\u1103? \u1082?\u1086? \u1074?\u1089?\u1077?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1077? \u1080? \u1082?\u1086? \u1074?\u1089?\u1077?\u1084? \u1077?\u1105? \u1095?\u1072?\u1089?\u1090?\u1103?\u1084? \u1085?\u1077?\u1079?\u1072?\u1074?\u1080?\u1089?\u1080?\u1084?\u1086? \u1086?\u1090? \u1090?\u1086?\u1075?\u1086?, \u1082?\u1072?\u1082? \u1086?\u1085?\u1080? \u1091?\u1087?\u1072?\u1082?\u1086?\u1074?\u1072?\u1085?\u1099?. \u1069?\u1090?\u1072? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1085?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1077?\u1090? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1082?\u1072?\u1082?\u1080?\u1084?-\u1083?\u1080?\u1073?\u1086? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084?, \u1085?\u1086? \u1085?\u1077? \u1076?\u1077?\u1083?\u1072?\u1077?\u1090? \u1085?\u1077?\u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1084? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1077?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1077? \u1074?\u1099? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1083?\u1080? \u1086?\u1090?\u1076?\u1077?\u1083?\u1100?\u1085?\u1086?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1075?) \u1045?\u1089?\u1083?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072? \u1080?\u1084?\u1077?\u1077?\u1090? \u1080?\u1085?\u1090?\u1077?\u1088?\u1072?\u1082?\u1090?\u1080?\u1074?\u1085?\u1099?\u1077? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1080?\u1077? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089?\u1099?, \u1082?\u1072?\u1078?\u1076?\u1099?\u1081? \u1080?\u1079? \u1085?\u1080?\u1093? \u1076?\u1086?\u1083?\u1078?\u1077?\u1085? \u1087?\u1086?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1090?\u1100? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1077? \u1102?\u1088?\u1080?\u1076?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103?. \u1053?\u1086? \u1077?\u1089?\u1083?\u1080? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1080?\u1084?\u1077?\u1077?\u1090? \u1080?\u1085?\u1090?\u1077?\u1088?\u1072?\u1082?\u1090?\u1080?\u1074?\u1085?\u1099?\u1077? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089?\u1099?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1085?\u1077? \u1087?\u1086?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1102?\u1090? \u1090?\u1072?\u1082?\u1080?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103?, \u1074?\u1072?\u1096?\u1072? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072? \u1085?\u1077? \u1086?\u1073?\u1103?\u1079?\u1072?\u1085?\u1072? \u1076?\u1086?\u1073?\u1072?\u1074?\u1083?\u1103?\u1090?\u1100? \u1080?\u1093?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1054?\u1073?\u1098?\u1077?\u1076?\u1080?\u1085?\u1077?\u1085?\u1080?\u1077? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1089? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084?\u1080? \u1089?\u1072?\u1084?\u1086?\u1089?\u1090?\u1086?\u1103?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1084?\u1080? \u1080? \u1085?\u1077?\u1079?\u1072?\u1074?\u1080?\u1089?\u1080?\u1084?\u1099?\u1084?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072?\u1084?\u1080?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1087?\u1086? \u1089?\u1074?\u1086?\u1077?\u1081? \u1087?\u1088?\u1080?\u1088?\u1086?\u1076?\u1077? \u1085?\u1077? \u1103?\u1074?\u1083?\u1103?\u1102?\u1090?\u1089?\u1103? \u1088?\u1072?\u1089?\u1096?\u1080?\u1088?\u1077?\u1085?\u1080?\u1103?\u1084?\u1080? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1080? \u1085?\u1077? \u1086?\u1073?\u1098?\u1077?\u1076?\u1080?\u1085?\u1077?\u1085?\u1099? \u1089? \u1085?\u1077?\u1081? \u1090?\u1072?\u1082?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1086?\u1073?\u1088?\u1072?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100? \u1073?\u1086?\u1083?\u1077?\u1077? \u1082?\u1088?\u1091?\u1087?\u1085?\u1091?\u1102? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091?, \u1085?\u1072? \u1086?\u1076?\u1085?\u1086?\u1084? \u1085?\u1086?\u1089?\u1080?\u1090?\u1077?\u1083?\u1077? \u1080?\u1083?\u1080? \u1074? \u1086?\u1076?\u1085?\u1086?\u1084? \u1093?\u1088?\u1072?\u1085?\u1080?\u1083?\u1080?\u1097?\u1077? \u1080?\u1083?\u1080? \u1089?\u1088?\u1077?\u1076?\u1077? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1103? \u1085?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u171?\u1089?\u1073?\u1086?\u1088?\u1085?\u1080?\u1082?\u1086?\u1084?\u187?, \u1077?\u1089?\u1083?\u1080? \u1086?\u1073?\u1098?\u1077?\u1076?\u1080?\u1085?\u1077?\u1085?\u1080?\u1077? \u1080? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1077? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1086?\u1077? \u1087?\u1088?\u1072?\u1074?\u1086? \u1085?\u1077? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1102?\u1090?\u1089?\u1103? \u1076?\u1083?\u1103? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1103? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1072? \u1080?\u1083?\u1080? \u1102?\u1088?\u1080?\u1076?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1093? \u1087?\u1088?\u1072?\u1074? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081? \u1089?\u1073?\u1086?\u1088?\u1085?\u1080?\u1082?\u1072? \u1089?\u1074?\u1077?\u1088?\u1093? \u1090?\u1086?\u1075?\u1086?, \u1095?\u1090?\u1086? \u1087?\u1086?\u1079?\u1074?\u1086?\u1083?\u1103?\u1102?\u1090? \u1086?\u1090?\u1076?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?. \u1042?\u1082?\u1083?\u1102?\u1095?\u1077?\u1085?\u1080?\u1077? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1074? \u1089?\u1073?\u1086?\u1088?\u1085?\u1080?\u1082? \u1085?\u1077? \u1076?\u1077?\u1083?\u1072?\u1077?\u1090? \u1101?\u1090?\u1091? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1086?\u1081? \u1082? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1095?\u1072?\u1089?\u1090?\u1103?\u1084? \u1089?\u1073?\u1086?\u1088?\u1085?\u1080?\u1082?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 6. \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1072? \u1085?\u1077?\u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1093? \u1092?\u1086?\u1088?\u1084?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1074? \u1092?\u1086?\u1088?\u1084?\u1077? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1086?\u1074? 4 \u1080? 5, \u1077?\u1089?\u1083?\u1080? \u1090?\u1072?\u1082?\u1078?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077? \u1084?\u1072?\u1096?\u1080?\u1085?\u1085?\u1086? \u1095?\u1080?\u1090?\u1072?\u1077?\u1084?\u1099?\u1081? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1086?\u1076?\u1085?\u1080?\u1084? \u1080?\u1079? \u1089?\u1083?\u1077?\u1076?\u1091?\u1102?\u1097?\u1080?\u1093? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1074?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1072?) \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1090?\u1100? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1074? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1084? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1077? \u1080?\u1083?\u1080? \u1085?\u1072? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1084? \u1085?\u1086?\u1089?\u1080?\u1090?\u1077?\u1083?\u1077?, \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1103? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1081? \u1076?\u1080?\u1089?\u1090?\u1088?\u1080?\u1073?\u1091?\u1090?\u1080?\u1074?, \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1084? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1084? \u1082?\u1086?\u1076?\u1086?\u1084?, \u1079?\u1072?\u1087?\u1080?\u1089?\u1072?\u1085?\u1085?\u1099?\u1084? \u1085?\u1072? \u1076?\u1086?\u1083?\u1075?\u1086?\u1074?\u1077?\u1095?\u1085?\u1099?\u1081? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1081? \u1085?\u1086?\u1089?\u1080?\u1090?\u1077?\u1083?\u1100?, \u1086?\u1073?\u1099?\u1095?\u1085?\u1086? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1077?\u1084?\u1099?\u1081? \u1076?\u1083?\u1103? \u1086?\u1073?\u1084?\u1077?\u1085?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1099?\u1084? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077?\u1084?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1073?) \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1090?\u1100? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1074? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1084? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1077? \u1080?\u1083?\u1080? \u1085?\u1072? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1084? \u1085?\u1086?\u1089?\u1080?\u1090?\u1077?\u1083?\u1077? \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1087?\u1080?\u1089?\u1100?\u1084?\u1077?\u1085?\u1085?\u1099?\u1084? \u1087?\u1088?\u1077?\u1076?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1077?\u1084?, \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1084? \u1085?\u1077? \u1084?\u1077?\u1085?\u1077?\u1077? \u1090?\u1088?\u1105?\u1093? \u1083?\u1077?\u1090? \u1080? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1084? \u1076?\u1086? \u1090?\u1077?\u1093? \u1087?\u1086?\u1088?, \u1087?\u1086?\u1082?\u1072? \u1074?\u1099? \u1087?\u1088?\u1077?\u1076?\u1083?\u1072?\u1075?\u1072?\u1077?\u1090?\u1077? \u1079?\u1072?\u1087?\u1072?\u1089?\u1085?\u1099?\u1077? \u1095?\u1072?\u1089?\u1090?\u1080? \u1080?\u1083?\u1080? \u1087?\u1086?\u1076?\u1076?\u1077?\u1088?\u1078?\u1082?\u1091? \u1082?\u1083?\u1080?\u1077?\u1085?\u1090?\u1086?\u1074? \u1076?\u1083?\u1103? \u1101?\u1090?\u1086?\u1081? \u1084?\u1086?\u1076?\u1077?\u1083?\u1080? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1072?, \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1080?\u1090?\u1100? \u1083?\u1102?\u1073?\u1086?\u1084?\u1091?, \u1082?\u1090?\u1086? \u1074?\u1083?\u1072?\u1076?\u1077?\u1077?\u1090? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1084? \u1082?\u1086?\u1076?\u1086?\u1084?, \u1083?\u1080?\u1073?\u1086? \u1082?\u1086?\u1087?\u1080?\u1102? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1075?\u1086? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1076?\u1083?\u1103? \u1074?\u1089?\u1077?\u1075?\u1086? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1075?\u1086? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1103? \u1074? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1077?, \u1087?\u1086?\u1082?\u1088?\u1099?\u1090?\u1086?\u1075?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081?, \u1085?\u1072? \u1076?\u1086?\u1083?\u1075?\u1086?\u1074?\u1077?\u1095?\u1085?\u1086?\u1084? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1084? \u1085?\u1086?\u1089?\u1080?\u1090?\u1077?\u1083?\u1077? \u1087?\u1086? \u1094?\u1077?\u1085?\u1077? \u1085?\u1077? \u1074?\u1099?\u1096?\u1077? \u1088?\u1072?\u1079?\u1091?\u1084?\u1085?\u1086?\u1081? \u1089?\u1090?\u1086?\u1080?\u1084?\u1086?\u1089?\u1090?\u1080? \u1092?\u1080?\u1079?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1081? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1080? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072?, \u1083?\u1080?\u1073?\u1086? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087? \u1076?\u1083?\u1103? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1075?\u1086? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1089? \u1089?\u1077?\u1090?\u1077?\u1074?\u1086?\u1075?\u1086? \u1089?\u1077?\u1088?\u1074?\u1077?\u1088?\u1072? \u1073?\u1077?\u1089?\u1087?\u1083?\u1072?\u1090?\u1085?\u1086?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1074?) \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1090?\u1100? \u1086?\u1090?\u1076?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1082?\u1086?\u1087?\u1080?\u1080? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1082?\u1086?\u1087?\u1080?\u1077?\u1081? \u1087?\u1080?\u1089?\u1100?\u1084?\u1077?\u1085?\u1085?\u1086?\u1075?\u1086? \u1087?\u1088?\u1077?\u1076?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1103? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1080?\u1090?\u1100? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?. \u1058?\u1072?\u1082?\u1086?\u1081? \u1074?\u1072?\u1088?\u1080?\u1072?\u1085?\u1090? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1105?\u1085? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1080?\u1085?\u1086?\u1075?\u1076?\u1072? \u1080? \u1085?\u1077?\u1082?\u1086?\u1084?\u1084?\u1077?\u1088?\u1095?\u1077?\u1089?\u1082?\u1080? \u1080? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1077?\u1089?\u1083?\u1080? \u1074?\u1099? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1083?\u1080? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1089? \u1090?\u1072?\u1082?\u1080?\u1084? \u1087?\u1088?\u1077?\u1076?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1077?\u1084? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1087?\u1091?\u1085?\u1082?\u1090?\u1091? 6\u1073?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1075?) \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1090?\u1100? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?, \u1087?\u1088?\u1077?\u1076?\u1083?\u1086?\u1078?\u1080?\u1074? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087? \u1076?\u1083?\u1103? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1080?\u1079? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1085?\u1086?\u1075?\u1086? \u1084?\u1077?\u1089?\u1090?\u1072?, \u1080? \u1087?\u1088?\u1077?\u1076?\u1083?\u1086?\u1078?\u1080?\u1090?\u1100? \u1088?\u1072?\u1074?\u1085?\u1086?\u1079?\u1085?\u1072?\u1095?\u1085?\u1099?\u1081? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087? \u1082? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1084?\u1091? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1084?\u1091? \u1082?\u1086?\u1076?\u1091? \u1090?\u1077?\u1084? \u1078?\u1077? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084? \u1095?\u1077?\u1088?\u1077?\u1079? \u1090?\u1086? \u1078?\u1077? \u1084?\u1077?\u1089?\u1090?\u1086? \u1073?\u1077?\u1079? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086?\u1081? \u1087?\u1083?\u1072?\u1090?\u1099?. \u1042?\u1099? \u1085?\u1077? \u1086?\u1073?\u1103?\u1079?\u1072?\u1085?\u1099? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1090?\u1100? \u1086?\u1090? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1084? \u1082?\u1086?\u1076?\u1086?\u1084?. \u1045?\u1089?\u1083?\u1080? \u1084?\u1077?\u1089?\u1090?\u1086? \u1076?\u1083?\u1103? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1089?\u1077?\u1090?\u1077?\u1074?\u1099?\u1084? \u1089?\u1077?\u1088?\u1074?\u1077?\u1088?\u1086?\u1084?, \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1084?\u1086?\u1078?\u1077?\u1090? \u1085?\u1072?\u1093?\u1086?\u1076?\u1080?\u1090?\u1100?\u1089?\u1103? \u1085?\u1072? \u1076?\u1088?\u1091?\u1075?\u1086?\u1084? \u1089?\u1077?\u1088?\u1074?\u1077?\u1088?\u1077?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1081? \u1087?\u1086?\u1076?\u1076?\u1077?\u1088?\u1078?\u1080?\u1074?\u1072?\u1077?\u1090? \u1088?\u1072?\u1074?\u1085?\u1086?\u1079?\u1085?\u1072?\u1095?\u1085?\u1099?\u1077? \u1089?\u1088?\u1077?\u1076?\u1089?\u1090?\u1074?\u1072? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?, \u1087?\u1088?\u1080? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1080?, \u1095?\u1090?\u1086? \u1088?\u1103?\u1076?\u1086?\u1084? \u1089? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1084? \u1082?\u1086?\u1076?\u1086?\u1084? \u1074?\u1099? \u1091?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090?\u1077? \u1103?\u1089?\u1085?\u1099?\u1077? \u1080?\u1085?\u1089?\u1090?\u1088?\u1091?\u1082?\u1094?\u1080?\u1080?, \u1075?\u1076?\u1077? \u1085?\u1072?\u1081?\u1090?\u1080? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?. \u1053?\u1077?\u1079?\u1072?\u1074?\u1080?\u1089?\u1080?\u1084?\u1086? \u1086?\u1090? \u1090?\u1086?\u1075?\u1086?, \u1085?\u1072? \u1082?\u1072?\u1082?\u1086?\u1084? \u1089?\u1077?\u1088?\u1074?\u1077?\u1088?\u1077? \u1088?\u1072?\u1079?\u1084?\u1077?\u1097?\u1105?\u1085? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?, \u1074?\u1099? \u1086?\u1073?\u1103?\u1079?\u1072?\u1085?\u1099? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1080?\u1090?\u1100? \u1077?\u1075?\u1086? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1085?\u1086?\u1089?\u1090?\u1100? \u1089?\u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1074?\u1088?\u1077?\u1084?\u1077?\u1085?\u1080?, \u1089?\u1082?\u1086?\u1083?\u1100?\u1082?\u1086? \u1085?\u1077?\u1086?\u1073?\u1093?\u1086?\u1076?\u1080?\u1084?\u1086? \u1076?\u1083?\u1103? \u1074?\u1099?\u1087?\u1086?\u1083?\u1085?\u1077?\u1085?\u1080?\u1103? \u1101?\u1090?\u1080?\u1093? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1076?) \u1055?\u1077?\u1088?\u1077?\u1076?\u1072?\u1090?\u1100? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1095?\u1077?\u1088?\u1077?\u1079? \u1086?\u1076?\u1085?\u1086?\u1088?\u1072?\u1085?\u1075?\u1086?\u1074?\u1091?\u1102? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1091?, \u1077?\u1089?\u1083?\u1080? \u1074?\u1099? \u1089?\u1086?\u1086?\u1073?\u1097?\u1072?\u1077?\u1090?\u1077? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u1072?\u1084?, \u1075?\u1076?\u1077? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1080? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1087?\u1088?\u1077?\u1076?\u1083?\u1072?\u1075?\u1072?\u1102?\u1090?\u1089?\u1103? \u1096?\u1080?\u1088?\u1086?\u1082?\u1086?\u1081? \u1087?\u1091?\u1073?\u1083?\u1080?\u1082?\u1077? \u1073?\u1077?\u1089?\u1087?\u1083?\u1072?\u1090?\u1085?\u1086? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1087?\u1091?\u1085?\u1082?\u1090?\u1091? 6\u1075?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1054?\u1090?\u1076?\u1077?\u1083?\u1080?\u1084?\u1072?\u1103? \u1095?\u1072?\u1089?\u1090?\u1100? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072?, \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1081? \u1080?\u1089?\u1082?\u1083?\u1102?\u1095?\u1105?\u1085? \u1080?\u1079? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1075?\u1086? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1082?\u1072?\u1082? \u1089?\u1080?\u1089?\u1090?\u1077?\u1084?\u1085?\u1072?\u1103? \u1073?\u1080?\u1073?\u1083?\u1080?\u1086?\u1090?\u1077?\u1082?\u1072?, \u1085?\u1077? \u1076?\u1086?\u1083?\u1078?\u1085?\u1072? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1090?\u1100?\u1089?\u1103? \u1074? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1091? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1055?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1080?\u1081? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1083?\u1080?\u1073?\u1086? \u1087?\u1086?\u1090?\u1088?\u1077?\u1073?\u1080?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1080?\u1081? \u1090?\u1086?\u1074?\u1072?\u1088?, \u1090?\u1086? \u1077?\u1089?\u1090?\u1100? \u1083?\u1102?\u1073?\u1086?\u1077? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1100?\u1085?\u1086?\u1077? \u1083?\u1080?\u1095?\u1085?\u1086?\u1077? \u1080?\u1084?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1086?, \u1086?\u1073?\u1099?\u1095?\u1085?\u1086? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1077?\u1084?\u1086?\u1077? \u1076?\u1083?\u1103? \u1083?\u1080?\u1095?\u1085?\u1099?\u1093?, \u1089?\u1077?\u1084?\u1077?\u1081?\u1085?\u1099?\u1093? \u1080?\u1083?\u1080? \u1076?\u1086?\u1084?\u1072?\u1096?\u1085?\u1080?\u1093? \u1094?\u1077?\u1083?\u1077?\u1081?, \u1083?\u1080?\u1073?\u1086? \u1074?\u1089?\u1105?, \u1095?\u1090?\u1086? \u1087?\u1088?\u1077?\u1076?\u1085?\u1072?\u1079?\u1085?\u1072?\u1095?\u1077?\u1085?\u1086? \u1080?\u1083?\u1080? \u1087?\u1088?\u1086?\u1076?\u1072?\u1105?\u1090?\u1089?\u1103? \u1076?\u1083?\u1103? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1082?\u1080? \u1074? \u1078?\u1080?\u1083?\u1086?\u1084? \u1087?\u1086?\u1084?\u1077?\u1097?\u1077?\u1085?\u1080?\u1080?. \u1055?\u1088?\u1080? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1077?\u1085?\u1080?\u1080?, \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1083?\u1080? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090? \u1087?\u1086?\u1090?\u1088?\u1077?\u1073?\u1080?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1080?\u1084? \u1090?\u1086?\u1074?\u1072?\u1088?\u1086?\u1084?, \u1089?\u1086?\u1084?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1089?\u1083?\u1091?\u1095?\u1072?\u1080? \u1090?\u1086?\u1083?\u1082?\u1091?\u1102?\u1090?\u1089?\u1103? \u1074? \u1087?\u1086?\u1083?\u1100?\u1079?\u1091? \u1086?\u1093?\u1074?\u1072?\u1090?\u1072?. \u1044?\u1083?\u1103? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1086?\u1075?\u1086? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1072?, \u1087?\u1086?\u1083?\u1091?\u1095?\u1077?\u1085?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1099?\u1084? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1077?\u1084?, \u171?\u1086?\u1073?\u1099?\u1095?\u1085?\u1086? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1077?\u1084?\u1099?\u1081?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1090?\u1080?\u1087?\u1080?\u1095?\u1085?\u1086?\u1077? \u1080?\u1083?\u1080? \u1086?\u1073?\u1099?\u1095?\u1085?\u1086?\u1077? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1090?\u1072?\u1082?\u1086?\u1075?\u1086? \u1082?\u1083?\u1072?\u1089?\u1089?\u1072? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1072? \u1085?\u1077?\u1079?\u1072?\u1074?\u1080?\u1089?\u1080?\u1084?\u1086? \u1086?\u1090? \u1089?\u1090?\u1072?\u1090?\u1091?\u1089?\u1072? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1086?\u1075?\u1086? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1103? \u1080?\u1083?\u1080? \u1090?\u1086?\u1075?\u1086?, \u1082?\u1072?\u1082? \u1080?\u1084?\u1077?\u1085?\u1085?\u1086? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1099?\u1081? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100? \u1092?\u1072?\u1082?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1077?\u1090? \u1080?\u1083?\u1080? \u1086?\u1078?\u1080?\u1076?\u1072?\u1077?\u1090? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?. \u1055?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090? \u1089?\u1095?\u1080?\u1090?\u1072?\u1077?\u1090?\u1089?\u1103? \u1087?\u1086?\u1090?\u1088?\u1077?\u1073?\u1080?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1080?\u1084? \u1090?\u1086?\u1074?\u1072?\u1088?\u1086?\u1084? \u1085?\u1077?\u1079?\u1072?\u1074?\u1080?\u1089?\u1080?\u1084?\u1086? \u1086?\u1090? \u1090?\u1086?\u1075?\u1086?, \u1080?\u1084?\u1077?\u1077?\u1090? \u1083?\u1080? \u1086?\u1085? \u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1077? \u1082?\u1086?\u1084?\u1084?\u1077?\u1088?\u1095?\u1077?\u1089?\u1082?\u1086?\u1077?, \u1087?\u1088?\u1086?\u1084?\u1099?\u1096?\u1083?\u1077?\u1085?\u1085?\u1086?\u1077? \u1080?\u1083?\u1080? \u1085?\u1077?\u1087?\u1086?\u1090?\u1088?\u1077?\u1073?\u1080?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1086?\u1077? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1077?, \u1077?\u1089?\u1083?\u1080? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1090?\u1072?\u1082?\u1080?\u1077? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1103? \u1085?\u1077? \u1103?\u1074?\u1083?\u1103?\u1102?\u1090?\u1089?\u1103? \u1077?\u1076?\u1080?\u1085?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1099?\u1084? \u1079?\u1085?\u1072?\u1095?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1084? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1048?\u1085?\u1092?\u1086?\u1088?\u1084?\u1072?\u1094?\u1080?\u1103? \u1076?\u1083?\u1103? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1082?\u1080?\u187? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1086?\u1075?\u1086? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1072? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1083?\u1102?\u1073?\u1099?\u1077? \u1084?\u1077?\u1090?\u1086?\u1076?\u1099?, \u1087?\u1088?\u1086?\u1094?\u1077?\u1076?\u1091?\u1088?\u1099?, \u1082?\u1083?\u1102?\u1095?\u1080? \u1072?\u1074?\u1090?\u1086?\u1088?\u1080?\u1079?\u1072?\u1094?\u1080?\u1080? \u1080?\u1083?\u1080? \u1076?\u1088?\u1091?\u1075?\u1091?\u1102? \u1080?\u1085?\u1092?\u1086?\u1088?\u1084?\u1072?\u1094?\u1080?\u1102?, \u1085?\u1077?\u1086?\u1073?\u1093?\u1086?\u1076?\u1080?\u1084?\u1099?\u1077? \u1076?\u1083?\u1103? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1082?\u1080? \u1080? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1093? \u1074?\u1077?\u1088?\u1089?\u1080?\u1081? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1074? \u1101?\u1090?\u1086?\u1084? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1086?\u1084? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1077? \u1080?\u1079? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1086?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1075?\u1086? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072?. \u1048?\u1085?\u1092?\u1086?\u1088?\u1084?\u1072?\u1094?\u1080?\u1103? \u1076?\u1086?\u1083?\u1078?\u1085?\u1072? \u1073?\u1099?\u1090?\u1100? \u1076?\u1086?\u1089?\u1090?\u1072?\u1090?\u1086?\u1095?\u1085?\u1086?\u1081?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1080?\u1090?\u1100?, \u1095?\u1090?\u1086? \u1076?\u1072?\u1083?\u1100?\u1085?\u1077?\u1081?\u1096?\u1077?\u1077? \u1092?\u1091?\u1085?\u1082?\u1094?\u1080?\u1086?\u1085?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1086?\u1075?\u1086? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072? \u1085?\u1077? \u1073?\u1091?\u1076?\u1077?\u1090? \u1087?\u1088?\u1077?\u1076?\u1086?\u1090?\u1074?\u1088?\u1072?\u1097?\u1077?\u1085?\u1086? \u1080?\u1083?\u1080? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1086? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1087?\u1086?\u1090?\u1086?\u1084?\u1091?, \u1095?\u1090?\u1086? \u1086?\u1085? \u1073?\u1099?\u1083? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1074?\u1099? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1087?\u1086? \u1101?\u1090?\u1086?\u1084?\u1091? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1091? \u1074? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1086?\u1084? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1077?, \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1085?\u1080?\u1084? \u1080?\u1083?\u1080? \u1089?\u1087?\u1077?\u1094?\u1080?\u1072?\u1083?\u1100?\u1085?\u1086? \u1076?\u1083?\u1103? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1074? \u1085?\u1105?\u1084?, \u1080? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1072? \u1087?\u1088?\u1086?\u1080?\u1089?\u1093?\u1086?\u1076?\u1080?\u1090? \u1082?\u1072?\u1082? \u1095?\u1072?\u1089?\u1090?\u1100? \u1089?\u1076?\u1077?\u1083?\u1082?\u1080?, \u1074? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1081? \u1087?\u1088?\u1072?\u1074?\u1086? \u1074?\u1083?\u1072?\u1076?\u1077?\u1085?\u1080?\u1103? \u1080? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1086?\u1075?\u1086? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1072? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1089?\u1103? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1102? \u1085?\u1072?\u1074?\u1089?\u1077?\u1075?\u1076?\u1072? \u1080?\u1083?\u1080? \u1085?\u1072? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1105?\u1085?\u1085?\u1099?\u1081? \u1089?\u1088?\u1086?\u1082?, \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076?, \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1077?\u1084?\u1099?\u1081? \u1087?\u1086? \u1101?\u1090?\u1086?\u1084?\u1091? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1091?, \u1076?\u1086?\u1083?\u1078?\u1077?\u1085? \u1089?\u1086?\u1087?\u1088?\u1086?\u1074?\u1086?\u1078?\u1076?\u1072?\u1090?\u1100?\u1089?\u1103? \u1080?\u1085?\u1092?\u1086?\u1088?\u1084?\u1072?\u1094?\u1080?\u1077?\u1081? \u1076?\u1083?\u1103? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1082?\u1080?. \u1069?\u1090?\u1086? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1085?\u1077? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1077?\u1090?\u1089?\u1103?, \u1077?\u1089?\u1083?\u1080? \u1085?\u1080? \u1074?\u1099?, \u1085?\u1080? \u1090?\u1088?\u1077?\u1090?\u1100?\u1103? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1072? \u1085?\u1077? \u1089?\u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1077? \u1074?\u1086?\u1079?\u1084?\u1086?\u1078?\u1085?\u1086?\u1089?\u1090?\u1100? \u1091?\u1089?\u1090?\u1072?\u1085?\u1072?\u1074?\u1083?\u1080?\u1074?\u1072?\u1090?\u1100? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1081? \u1086?\u1073?\u1098?\u1077?\u1082?\u1090?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1085?\u1072? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1080?\u1081? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?, \u1085?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088? \u1077?\u1089?\u1083?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1083?\u1077?\u1085?\u1072? \u1074? \u1087?\u1086?\u1089?\u1090?\u1086?\u1103?\u1085?\u1085?\u1086?\u1081? \u1087?\u1072?\u1084?\u1103?\u1090?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1058?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1080?\u1090?\u1100? \u1080?\u1085?\u1092?\u1086?\u1088?\u1084?\u1072?\u1094?\u1080?\u1102? \u1076?\u1083?\u1103? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1082?\u1080? \u1085?\u1077? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1077?\u1090? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1087?\u1088?\u1086?\u1076?\u1086?\u1083?\u1078?\u1072?\u1090?\u1100? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1090?\u1100? \u1087?\u1086?\u1076?\u1076?\u1077?\u1088?\u1078?\u1082?\u1091?, \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1102? \u1080?\u1083?\u1080? \u1086?\u1073?\u1085?\u1086?\u1074?\u1083?\u1077?\u1085?\u1080?\u1103? \u1076?\u1083?\u1103? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1072?\u1103? \u1073?\u1099?\u1083?\u1072? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1072? \u1080?\u1083?\u1080? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1083?\u1077?\u1085?\u1072? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1077?\u1084?, \u1080?\u1083?\u1080? \u1076?\u1083?\u1103? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1082?\u1086?\u1075?\u1086? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1072?, \u1074? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1084? \u1086?\u1085?\u1072? \u1073?\u1099?\u1083?\u1072? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1072? \u1080?\u1083?\u1080? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1083?\u1077?\u1085?\u1072?. \u1044?\u1086?\u1089?\u1090?\u1091?\u1087? \u1082? \u1089?\u1077?\u1090?\u1080? \u1084?\u1086?\u1078?\u1077?\u1090? \u1073?\u1099?\u1090?\u1100? \u1079?\u1072?\u1087?\u1088?\u1077?\u1097?\u1105?\u1085?, \u1077?\u1089?\u1083?\u1080? \u1089?\u1072?\u1084?\u1086? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1077? \u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086? \u1080? \u1086?\u1090?\u1088?\u1080?\u1094?\u1072?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086? \u1074?\u1083?\u1080?\u1103?\u1077?\u1090? \u1085?\u1072? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1089?\u1077?\u1090?\u1080? \u1080?\u1083?\u1080? \u1085?\u1072?\u1088?\u1091?\u1096?\u1072?\u1077?\u1090? \u1087?\u1088?\u1072?\u1074?\u1080?\u1083?\u1072? \u1080? \u1087?\u1088?\u1086?\u1090?\u1086?\u1082?\u1086?\u1083?\u1099? \u1089?\u1074?\u1103?\u1079?\u1080? \u1074? \u1089?\u1077?\u1090?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1057?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1080? \u1080?\u1085?\u1092?\u1086?\u1088?\u1084?\u1072?\u1094?\u1080?\u1103? \u1076?\u1083?\u1103? \u1091?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1082?\u1080?, \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1085?\u1085?\u1099?\u1077? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1101?\u1090?\u1086?\u1084?\u1091? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1091?, \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1073?\u1099?\u1090?\u1100? \u1074? \u1092?\u1086?\u1088?\u1084?\u1072?\u1090?\u1077?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1081? \u1087?\u1091?\u1073?\u1083?\u1080?\u1095?\u1085?\u1086? \u1076?\u1086?\u1082?\u1091?\u1084?\u1077?\u1085?\u1090?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085? \u1080? \u1085?\u1077? \u1090?\u1088?\u1077?\u1073?\u1091?\u1077?\u1090? \u1089?\u1087?\u1077?\u1094?\u1080?\u1072?\u1083?\u1100?\u1085?\u1086?\u1075?\u1086? \u1087?\u1072?\u1088?\u1086?\u1083?\u1103? \u1080?\u1083?\u1080? \u1082?\u1083?\u1102?\u1095?\u1072? \u1076?\u1083?\u1103? \u1088?\u1072?\u1089?\u1087?\u1072?\u1082?\u1086?\u1074?\u1082?\u1080?, \u1095?\u1090?\u1077?\u1085?\u1080?\u1103? \u1080?\u1083?\u1080? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 7. \u1044?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1044?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1102?\u1090? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1103?\u1102?\u1090? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1076?\u1077?\u1083?\u1072?\u1103? \u1080?\u1089?\u1082?\u1083?\u1102?\u1095?\u1077?\u1085?\u1080?\u1103? \u1080?\u1079? \u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1080?\u1083?\u1080? \u1085?\u1077?\u1089?\u1082?\u1086?\u1083?\u1100?\u1082?\u1080?\u1093? \u1077?\u1105? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1081?. \u1044?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103?, \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1099?\u1077? \u1082?\u1086? \u1074?\u1089?\u1077?\u1081? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077?, \u1088?\u1072?\u1089?\u1089?\u1084?\u1072?\u1090?\u1088?\u1080?\u1074?\u1072?\u1102?\u1090?\u1089?\u1103? \u1082?\u1072?\u1082? \u1074?\u1082?\u1083?\u1102?\u1095?\u1105?\u1085?\u1085?\u1099?\u1077? \u1074? \u1101?\u1090?\u1091? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102? \u1074? \u1090?\u1086?\u1081? \u1084?\u1077?\u1088?\u1077?, \u1074? \u1082?\u1072?\u1082?\u1086?\u1081? \u1086?\u1085?\u1080? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099? \u1087?\u1086? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1086?\u1084?\u1091? \u1087?\u1088?\u1072?\u1074?\u1091?. \u1045?\u1089?\u1083?\u1080? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1099? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1082? \u1095?\u1072?\u1089?\u1090?\u1080? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099?, \u1101?\u1090?\u1072? \u1095?\u1072?\u1089?\u1090?\u1100? \u1084?\u1086?\u1078?\u1077?\u1090? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100?\u1089?\u1103? \u1086?\u1090?\u1076?\u1077?\u1083?\u1100?\u1085?\u1086? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1101?\u1090?\u1080?\u1084? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103?\u1084?, \u1085?\u1086? \u1074?\u1089?\u1103? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1086?\u1089?\u1090?\u1072?\u1105?\u1090?\u1089?\u1103? \u1088?\u1077?\u1075?\u1091?\u1083?\u1080?\u1088?\u1091?\u1077?\u1084?\u1086?\u1081? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081? \u1073?\u1077?\u1079? \u1091?\u1095?\u1105?\u1090?\u1072? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1093? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1050?\u1086?\u1075?\u1076?\u1072? \u1074?\u1099? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077? \u1082?\u1086?\u1087?\u1080?\u1102? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1074?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1086? \u1089?\u1074?\u1086?\u1077?\u1084?\u1091? \u1074?\u1099?\u1073?\u1086?\u1088?\u1091? \u1091?\u1076?\u1072?\u1083?\u1080?\u1090?\u1100? \u1083?\u1102?\u1073?\u1099?\u1077? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103? \u1080?\u1079? \u1101?\u1090?\u1086?\u1081? \u1082?\u1086?\u1087?\u1080?\u1080? \u1080?\u1083?\u1080? \u1080?\u1079? \u1083?\u1102?\u1073?\u1086?\u1081? \u1077?\u1105? \u1095?\u1072?\u1089?\u1090?\u1080?. \u1044?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103? \u1084?\u1086?\u1075?\u1091?\u1090? \u1073?\u1099?\u1090?\u1100? \u1085?\u1072?\u1087?\u1080?\u1089?\u1072?\u1085?\u1099? \u1090?\u1072?\u1082?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1090?\u1100? \u1089?\u1086?\u1073?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1075?\u1086? \u1091?\u1076?\u1072?\u1083?\u1077?\u1085?\u1080?\u1103? \u1074? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1105?\u1085?\u1085?\u1099?\u1093? \u1089?\u1083?\u1091?\u1095?\u1072?\u1103?\u1093?, \u1082?\u1086?\u1075?\u1076?\u1072? \u1074?\u1099? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1077?\u1090?\u1077? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?. \u1042?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1076?\u1086?\u1073?\u1072?\u1074?\u1080?\u1090?\u1100? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103? \u1082? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1091?, \u1076?\u1086?\u1073?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1086?\u1084?\u1091? \u1074?\u1072?\u1084?\u1080? \u1082? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1077?, \u1077?\u1089?\u1083?\u1080? \u1091? \u1074?\u1072?\u1089? \u1077?\u1089?\u1090?\u1100? \u1080?\u1083?\u1080? \u1074?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1076?\u1072?\u1090?\u1100? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1077? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1077?\u1074?\u1079?\u1080?\u1088?\u1072?\u1103? \u1085?\u1072? \u1083?\u1102?\u1073?\u1099?\u1077? \u1076?\u1088?\u1091?\u1075?\u1080?\u1077? \u1087?\u1086?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1076?\u1083?\u1103? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1072?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1081? \u1074?\u1099? \u1076?\u1086?\u1073?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090?\u1077? \u1082? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1077?, \u1074?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077?, \u1077?\u1089?\u1083?\u1080? \u1101?\u1090?\u1086? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1086? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1103?\u1084?\u1080? \u1101?\u1090?\u1086?\u1075?\u1086? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1072?, \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1100? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1089?\u1083?\u1077?\u1076?\u1091?\u1102?\u1097?\u1080?\u1084?\u1080? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1084?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1072?) \u1054?\u1090?\u1082?\u1072?\u1079? \u1086?\u1090? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1080? \u1080?\u1083?\u1080? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1077? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080? \u1080?\u1085?\u1072?\u1095?\u1077?, \u1095?\u1077?\u1084? \u1074? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1072?\u1093? 15 \u1080? 16 \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1073?) \u1058?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1089?\u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1085?\u1099?\u1077? \u1088?\u1072?\u1079?\u1091?\u1084?\u1085?\u1099?\u1077? \u1102?\u1088?\u1080?\u1076?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103? \u1080?\u1083?\u1080? \u1089?\u1074?\u1077?\u1076?\u1077?\u1085?\u1080?\u1103? \u1086?\u1073? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1090?\u1074?\u1077? \u1074? \u1101?\u1090?\u1086?\u1084? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1077? \u1080?\u1083?\u1080? \u1074? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1093? \u1102?\u1088?\u1080?\u1076?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1093? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103?\u1093?, \u1087?\u1086?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1084?\u1099?\u1093? \u1088?\u1072?\u1073?\u1086?\u1090?\u1072?\u1084?\u1080?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1077?\u1075?\u1086? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1072?\u1090?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1074?) \u1047?\u1072?\u1087?\u1088?\u1077?\u1090? \u1085?\u1077?\u1074?\u1077?\u1088?\u1085?\u1086?\u1075?\u1086? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1080?\u1103? \u1087?\u1088?\u1086?\u1080?\u1089?\u1093?\u1086?\u1078?\u1076?\u1077?\u1085?\u1080?\u1103? \u1101?\u1090?\u1086?\u1075?\u1086? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1072? \u1080?\u1083?\u1080? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1090?\u1072?\u1082?\u1086?\u1075?\u1086? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1072? \u1073?\u1099?\u1083?\u1080? \u1087?\u1086?\u1084?\u1077?\u1095?\u1077?\u1085?\u1099? \u1088?\u1072?\u1079?\u1091?\u1084?\u1085?\u1099?\u1084? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084? \u1082?\u1072?\u1082? \u1086?\u1090?\u1083?\u1080?\u1095?\u1072?\u1102?\u1097?\u1080?\u1077?\u1089?\u1103? \u1086?\u1090? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1075?) \u1054?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1077? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1080?\u1084?\u1105?\u1085? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1072?\u1088?\u1086?\u1074? \u1080?\u1083?\u1080? \u1072?\u1074?\u1090?\u1086?\u1088?\u1086?\u1074? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1072? \u1074? \u1088?\u1077?\u1082?\u1083?\u1072?\u1084?\u1085?\u1099?\u1093? \u1094?\u1077?\u1083?\u1103?\u1093?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1076?) \u1054?\u1090?\u1082?\u1072?\u1079? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1090?\u1100? \u1087?\u1088?\u1072?\u1074?\u1072? \u1087?\u1086? \u1079?\u1072?\u1082?\u1086?\u1085?\u1091? \u1086? \u1090?\u1086?\u1074?\u1072?\u1088?\u1085?\u1099?\u1093? \u1079?\u1085?\u1072?\u1082?\u1072?\u1093? \u1085?\u1072? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1085?\u1077?\u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1093? \u1090?\u1086?\u1088?\u1075?\u1086?\u1074?\u1099?\u1093? \u1085?\u1072?\u1080?\u1084?\u1077?\u1085?\u1086?\u1074?\u1072?\u1085?\u1080?\u1081?, \u1090?\u1086?\u1074?\u1072?\u1088?\u1085?\u1099?\u1093? \u1079?\u1085?\u1072?\u1082?\u1086?\u1074? \u1080?\u1083?\u1080? \u1079?\u1085?\u1072?\u1082?\u1086?\u1074? \u1086?\u1073?\u1089?\u1083?\u1091?\u1078?\u1080?\u1074?\u1072?\u1085?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1077?) \u1058?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1074?\u1086?\u1079?\u1084?\u1077?\u1089?\u1090?\u1080?\u1090?\u1100? \u1091?\u1073?\u1099?\u1090?\u1082?\u1080? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1072?\u1088?\u1072?\u1084? \u1080? \u1072?\u1074?\u1090?\u1086?\u1088?\u1072?\u1084? \u1101?\u1090?\u1086?\u1075?\u1086? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?\u1072? \u1086?\u1090? \u1083?\u1102?\u1073?\u1086?\u1075?\u1086?, \u1082?\u1090?\u1086? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083? \u1080?\u1083?\u1080? \u1077?\u1075?\u1086? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1089? \u1076?\u1086?\u1075?\u1086?\u1074?\u1086?\u1088?\u1085?\u1099?\u1084?\u1080? \u1087?\u1088?\u1077?\u1076?\u1087?\u1086?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1103?\u1084?\u1080? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080? \u1087?\u1077?\u1088?\u1077?\u1076? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1077?\u1084?, \u1079?\u1072? \u1083?\u1102?\u1073?\u1091?\u1102? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1100?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1091?\u1102? \u1090?\u1072?\u1082?\u1080?\u1077? \u1076?\u1086?\u1075?\u1086?\u1074?\u1086?\u1088?\u1085?\u1099?\u1077? \u1087?\u1088?\u1077?\u1076?\u1087?\u1086?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1103? \u1087?\u1088?\u1103?\u1084?\u1086? \u1085?\u1072?\u1083?\u1072?\u1075?\u1072?\u1102?\u1090? \u1085?\u1072? \u1101?\u1090?\u1080?\u1093? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1072?\u1088?\u1086?\u1074? \u1080? \u1072?\u1074?\u1090?\u1086?\u1088?\u1086?\u1074?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1089?\u1077? \u1076?\u1088?\u1091?\u1075?\u1080?\u1077? \u1085?\u1077?\u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1102?\u1097?\u1080?\u1077? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1089?\u1095?\u1080?\u1090?\u1072?\u1102?\u1090?\u1089?\u1103? \u171?\u1076?\u1072?\u1083?\u1100?\u1085?\u1077?\u1081?\u1096?\u1080?\u1084?\u1080? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1103?\u1084?\u1080?\u187? \u1074? \u1089?\u1084?\u1099?\u1089?\u1083?\u1077? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1072? 10. \u1045?\u1089?\u1083?\u1080? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1074? \u1090?\u1086?\u1084? \u1074?\u1080?\u1076?\u1077?, \u1074? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1084? \u1074?\u1099? \u1077?\u1105? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1083?\u1080?, \u1080?\u1083?\u1080? \u1083?\u1102?\u1073?\u1072?\u1103? \u1077?\u1105? \u1095?\u1072?\u1089?\u1090?\u1100? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1080?\u1090? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1077? \u1086? \u1090?\u1086?\u1084?, \u1095?\u1090?\u1086? \u1086?\u1085?\u1072? \u1088?\u1077?\u1075?\u1091?\u1083?\u1080?\u1088?\u1091?\u1077?\u1090?\u1089?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081? \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1077?\u1084?, \u1103?\u1074?\u1083?\u1103?\u1102?\u1097?\u1080?\u1084?\u1089?\u1103? \u1076?\u1072?\u1083?\u1100?\u1085?\u1077?\u1081?\u1096?\u1080?\u1084? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1077?\u1084?, \u1074?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1091?\u1076?\u1072?\u1083?\u1080?\u1090?\u1100? \u1090?\u1072?\u1082?\u1086?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1077?. \u1045?\u1089?\u1083?\u1080? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1086?\u1085?\u1085?\u1099?\u1081? \u1076?\u1086?\u1082?\u1091?\u1084?\u1077?\u1085?\u1090? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1080?\u1090? \u1076?\u1072?\u1083?\u1100?\u1085?\u1077?\u1081?\u1096?\u1077?\u1077? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1077?, \u1085?\u1086? \u1076?\u1086?\u1087?\u1091?\u1089?\u1082?\u1072?\u1077?\u1090? \u1087?\u1086?\u1074?\u1090?\u1086?\u1088?\u1085?\u1086?\u1077? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1080?\u1083?\u1080? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1091? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1074?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1076?\u1086?\u1073?\u1072?\u1074?\u1080?\u1090?\u1100? \u1082? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1077? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083?, \u1088?\u1077?\u1075?\u1091?\u1083?\u1080?\u1088?\u1091?\u1077?\u1084?\u1099?\u1081? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1084?\u1080? \u1090?\u1072?\u1082?\u1086?\u1075?\u1086? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1086?\u1085?\u1085?\u1086?\u1075?\u1086? \u1076?\u1086?\u1082?\u1091?\u1084?\u1077?\u1085?\u1090?\u1072?, \u1087?\u1088?\u1080? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1080?, \u1095?\u1090?\u1086? \u1076?\u1072?\u1083?\u1100?\u1085?\u1077?\u1081?\u1096?\u1077?\u1077? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1077? \u1085?\u1077? \u1089?\u1086?\u1093?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1089?\u1103? \u1087?\u1088?\u1080? \u1090?\u1072?\u1082?\u1086?\u1084? \u1087?\u1086?\u1074?\u1090?\u1086?\u1088?\u1085?\u1086?\u1084? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1080? \u1080?\u1083?\u1080? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1077?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1074?\u1099? \u1076?\u1086?\u1073?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1082? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1077? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1101?\u1090?\u1086?\u1084?\u1091? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1091?, \u1074?\u1099? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1088?\u1072?\u1079?\u1084?\u1077?\u1089?\u1090?\u1080?\u1090?\u1100? \u1074? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1093? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1093? \u1092?\u1072?\u1081?\u1083?\u1072?\u1093? \u1079?\u1072?\u1103?\u1074?\u1083?\u1077?\u1085?\u1080?\u1077? \u1086? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1093? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093?, \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1099?\u1093? \u1082? \u1101?\u1090?\u1080?\u1084? \u1092?\u1072?\u1081?\u1083?\u1072?\u1084?, \u1080?\u1083?\u1080? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1077?, \u1091?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1102?\u1097?\u1077?\u1077?, \u1075?\u1076?\u1077? \u1085?\u1072?\u1081?\u1090?\u1080? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1099?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1044?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?, \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1102?\u1097?\u1080?\u1077? \u1080?\u1083?\u1080? \u1085?\u1077?\u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1102?\u1097?\u1080?\u1077?, \u1084?\u1086?\u1075?\u1091?\u1090? \u1073?\u1099?\u1090?\u1100? \u1080?\u1079?\u1083?\u1086?\u1078?\u1077?\u1085?\u1099? \u1074? \u1074?\u1080?\u1076?\u1077? \u1086?\u1090?\u1076?\u1077?\u1083?\u1100?\u1085?\u1086?\u1081? \u1087?\u1080?\u1089?\u1100?\u1084?\u1077?\u1085?\u1085?\u1086?\u1081? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1080?\u1083?\u1080? \u1082?\u1072?\u1082? \u1080?\u1089?\u1082?\u1083?\u1102?\u1095?\u1077?\u1085?\u1080?\u1103?. \u1042? \u1083?\u1102?\u1073?\u1086?\u1084? \u1089?\u1083?\u1091?\u1095?\u1072?\u1077? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1102?\u1090?\u1089?\u1103? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1085?\u1099?\u1077? \u1074?\u1099?\u1096?\u1077? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 8. \u1055?\u1088?\u1077?\u1082?\u1088?\u1072?\u1097?\u1077?\u1085?\u1080?\u1077? \u1087?\u1088?\u1072?\u1074?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1085?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1080?\u1083?\u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1080?\u1085?\u1072?\u1095?\u1077?, \u1095?\u1077?\u1084? \u1087?\u1088?\u1103?\u1084?\u1086? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081?. \u1051?\u1102?\u1073?\u1072?\u1103? \u1080?\u1085?\u1072?\u1103? \u1087?\u1086?\u1087?\u1099?\u1090?\u1082?\u1072? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1080?\u1090?\u1100? \u1080?\u1083?\u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1080?\u1090?\u1100? \u1077?\u1105? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1085?\u1077?\u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086?\u1081? \u1080? \u1072?\u1074?\u1090?\u1086?\u1084?\u1072?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1087?\u1088?\u1077?\u1082?\u1088?\u1072?\u1097?\u1072?\u1077?\u1090? \u1074?\u1072?\u1096?\u1080? \u1087?\u1088?\u1072?\u1074?\u1072? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1103? \u1083?\u1102?\u1073?\u1099?\u1077? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1099?\u1077? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1090?\u1088?\u1077?\u1090?\u1100?\u1077?\u1084?\u1091? \u1072?\u1073?\u1079?\u1072?\u1094?\u1091? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1072? 11.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1054?\u1076?\u1085?\u1072?\u1082?\u1086? \u1077?\u1089?\u1083?\u1080? \u1074?\u1099? \u1087?\u1088?\u1077?\u1082?\u1088?\u1072?\u1097?\u1072?\u1077?\u1090?\u1077? \u1074?\u1089?\u1077? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1074?\u1072?\u1096?\u1072? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1086?\u1090? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1086?\u1075?\u1086? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1103? \u1074?\u1086?\u1089?\u1089?\u1090?\u1072?\u1085?\u1072?\u1074?\u1083?\u1080?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u1074?\u1088?\u1077?\u1084?\u1077?\u1085?\u1085?\u1086?, \u1087?\u1086?\u1082?\u1072? \u1101?\u1090?\u1086?\u1090? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1100? \u1103?\u1074?\u1085?\u1086? \u1080? \u1086?\u1082?\u1086?\u1085?\u1095?\u1072?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086? \u1085?\u1077? \u1087?\u1088?\u1077?\u1082?\u1088?\u1072?\u1090?\u1080?\u1090? \u1074?\u1072?\u1096?\u1091? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102?, \u1080? \u1074?\u1086?\u1089?\u1089?\u1090?\u1072?\u1085?\u1072?\u1074?\u1083?\u1080?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u1087?\u1086?\u1089?\u1090?\u1086?\u1103?\u1085?\u1085?\u1086?, \u1077?\u1089?\u1083?\u1080? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1100? \u1085?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1080?\u1090? \u1074?\u1072?\u1089? \u1086? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1080? \u1088?\u1072?\u1079?\u1091?\u1084?\u1085?\u1099?\u1084? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084? \u1074? \u1090?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077? 60 \u1076?\u1085?\u1077?\u1081? \u1087?\u1086?\u1089?\u1083?\u1077? \u1087?\u1088?\u1077?\u1082?\u1088?\u1072?\u1097?\u1077?\u1085?\u1080?\u1103? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1050?\u1088?\u1086?\u1084?\u1077? \u1090?\u1086?\u1075?\u1086?, \u1074?\u1072?\u1096?\u1072? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1086?\u1090? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1086?\u1075?\u1086? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1103? \u1074?\u1086?\u1089?\u1089?\u1090?\u1072?\u1085?\u1072?\u1074?\u1083?\u1080?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u1087?\u1086?\u1089?\u1090?\u1086?\u1103?\u1085?\u1085?\u1086?, \u1077?\u1089?\u1083?\u1080? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1100? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1103?\u1077?\u1090? \u1074?\u1072?\u1089? \u1086? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1080? \u1088?\u1072?\u1079?\u1091?\u1084?\u1085?\u1099?\u1084? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084?, \u1101?\u1090?\u1086? \u1087?\u1077?\u1088?\u1074?\u1099?\u1081? \u1088?\u1072?\u1079?, \u1082?\u1086?\u1075?\u1076?\u1072? \u1074?\u1099? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1083?\u1080? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1077? \u1086? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1080? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1076?\u1083?\u1103? \u1083?\u1102?\u1073?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1086?\u1090? \u1101?\u1090?\u1086?\u1075?\u1086? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1103?, \u1080? \u1074?\u1099? \u1091?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1077? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1077? \u1074? \u1090?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077? 30 \u1076?\u1085?\u1077?\u1081? \u1087?\u1086?\u1089?\u1083?\u1077? \u1087?\u1086?\u1083?\u1091?\u1095?\u1077?\u1085?\u1080?\u1103? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1055?\u1088?\u1077?\u1082?\u1088?\u1072?\u1097?\u1077?\u1085?\u1080?\u1077? \u1074?\u1072?\u1096?\u1080?\u1093? \u1087?\u1088?\u1072?\u1074? \u1087?\u1086? \u1101?\u1090?\u1086?\u1084?\u1091? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1091? \u1085?\u1077? \u1087?\u1088?\u1077?\u1082?\u1088?\u1072?\u1097?\u1072?\u1077?\u1090? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1083?\u1080? \u1086?\u1090? \u1074?\u1072?\u1089? \u1082?\u1086?\u1087?\u1080?\u1080? \u1080?\u1083?\u1080? \u1087?\u1088?\u1072?\u1074?\u1072? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?. \u1045?\u1089?\u1083?\u1080? \u1074?\u1072?\u1096?\u1080? \u1087?\u1088?\u1072?\u1074?\u1072? \u1073?\u1099?\u1083?\u1080? \u1087?\u1088?\u1077?\u1082?\u1088?\u1072?\u1097?\u1077?\u1085?\u1099? \u1080? \u1085?\u1077? \u1074?\u1086?\u1089?\u1089?\u1090?\u1072?\u1085?\u1086?\u1074?\u1083?\u1077?\u1085?\u1099? \u1087?\u1086?\u1089?\u1090?\u1086?\u1103?\u1085?\u1085?\u1086?, \u1074?\u1099? \u1085?\u1077? \u1080?\u1084?\u1077?\u1077?\u1090?\u1077? \u1087?\u1088?\u1072?\u1074?\u1072? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1100? \u1085?\u1086?\u1074?\u1099?\u1077? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1085?\u1072? \u1090?\u1086?\u1090? \u1078?\u1077? \u1084?\u1072?\u1090?\u1077?\u1088?\u1080?\u1072?\u1083? \u1087?\u1086? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1091? 10.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 9. \u1055?\u1088?\u1080?\u1085?\u1103?\u1090?\u1080?\u1077? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1085?\u1077? \u1090?\u1088?\u1077?\u1073?\u1091?\u1077?\u1090?\u1089?\u1103? \u1076?\u1083?\u1103? \u1074?\u1083?\u1072?\u1076?\u1077?\u1085?\u1080?\u1103? \u1082?\u1086?\u1087?\u1080?\u1103?\u1084?\u1080?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1085?\u1077? \u1086?\u1073?\u1103?\u1079?\u1072?\u1085?\u1099? \u1087?\u1088?\u1080?\u1085?\u1080?\u1084?\u1072?\u1090?\u1100? \u1101?\u1090?\u1091? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1100? \u1080?\u1083?\u1080? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072?\u1090?\u1100? \u1082?\u1086?\u1087?\u1080?\u1102? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099?. \u1055?\u1086?\u1073?\u1086?\u1095?\u1085?\u1086?\u1077? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1077? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1074?\u1086?\u1079?\u1085?\u1080?\u1082?\u1072?\u1102?\u1097?\u1077?\u1077? \u1080?\u1089?\u1082?\u1083?\u1102?\u1095?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086? \u1082?\u1072?\u1082? \u1089?\u1083?\u1077?\u1076?\u1089?\u1090?\u1074?\u1080?\u1077? \u1086?\u1076?\u1085?\u1086?\u1088?\u1072?\u1085?\u1075?\u1086?\u1074?\u1086?\u1081? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1080? \u1076?\u1083?\u1103? \u1087?\u1086?\u1083?\u1091?\u1095?\u1077?\u1085?\u1080?\u1103? \u1082?\u1086?\u1087?\u1080?\u1080?, \u1090?\u1072?\u1082?\u1078?\u1077? \u1085?\u1077? \u1090?\u1088?\u1077?\u1073?\u1091?\u1077?\u1090? \u1087?\u1088?\u1080?\u1085?\u1103?\u1090?\u1080?\u1103?. \u1054?\u1076?\u1085?\u1072?\u1082?\u1086? \u1085?\u1080?\u1095?\u1090?\u1086?, \u1082?\u1088?\u1086?\u1084?\u1077? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1085?\u1077? \u1076?\u1072?\u1105?\u1090? \u1074?\u1072?\u1084? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1080?\u1083?\u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1083?\u1102?\u1073?\u1091?\u1102? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?. \u1069?\u1090?\u1080? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1103? \u1085?\u1072?\u1088?\u1091?\u1096?\u1072?\u1102?\u1090? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1086?\u1077? \u1087?\u1088?\u1072?\u1074?\u1086?, \u1077?\u1089?\u1083?\u1080? \u1074?\u1099? \u1085?\u1077? \u1087?\u1088?\u1080?\u1085?\u1080?\u1084?\u1072?\u1077?\u1090?\u1077? \u1101?\u1090?\u1091? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102?. \u1055?\u1086?\u1101?\u1090?\u1086?\u1084?\u1091?, \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1103? \u1080?\u1083?\u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1103? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1074?\u1099? \u1087?\u1086?\u1076?\u1090?\u1074?\u1077?\u1088?\u1078?\u1076?\u1072?\u1077?\u1090?\u1077? \u1087?\u1088?\u1080?\u1085?\u1103?\u1090?\u1080?\u1077? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1076?\u1083?\u1103? \u1090?\u1072?\u1082?\u1080?\u1093? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 10. \u1040?\u1074?\u1090?\u1086?\u1084?\u1072?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1077? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1087?\u1086?\u1089?\u1083?\u1077?\u1076?\u1091?\u1102?\u1097?\u1080?\u1093? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1050?\u1072?\u1078?\u1076?\u1099?\u1081? \u1088?\u1072?\u1079?, \u1082?\u1086?\u1075?\u1076?\u1072? \u1074?\u1099? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1100? \u1072?\u1074?\u1090?\u1086?\u1084?\u1072?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1077?\u1090? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102? \u1086?\u1090? \u1087?\u1077?\u1088?\u1074?\u1086?\u1085?\u1072?\u1095?\u1072?\u1083?\u1100?\u1085?\u1099?\u1093? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1072?\u1088?\u1086?\u1074? \u1085?\u1072? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?, \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1077? \u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1077? \u1101?\u1090?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?. \u1042?\u1099? \u1085?\u1077? \u1085?\u1077?\u1089?\u1105?\u1090?\u1077? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080? \u1079?\u1072? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077? \u1089?\u1086?\u1073?\u1083?\u1102?\u1076?\u1077?\u1085?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1090?\u1088?\u1077?\u1090?\u1100?\u1080?\u1084?\u1080? \u1083?\u1080?\u1094?\u1072?\u1084?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1057?\u1076?\u1077?\u1083?\u1082?\u1072? \u1089? \u1086?\u1088?\u1075?\u1072?\u1085?\u1080?\u1079?\u1072?\u1094?\u1080?\u1077?\u1081?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1089?\u1076?\u1077?\u1083?\u1082?\u1091?, \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1102?\u1097?\u1091?\u1102? \u1082?\u1086?\u1085?\u1090?\u1088?\u1086?\u1083?\u1100? \u1085?\u1072?\u1076? \u1086?\u1088?\u1075?\u1072?\u1085?\u1080?\u1079?\u1072?\u1094?\u1080?\u1077?\u1081? \u1080?\u1083?\u1080? \u1087?\u1088?\u1072?\u1082?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1074?\u1089?\u1077?\u1084?\u1080? \u1077?\u1105? \u1072?\u1082?\u1090?\u1080?\u1074?\u1072?\u1084?\u1080?, \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1103?\u1102?\u1097?\u1091?\u1102? \u1086?\u1088?\u1075?\u1072?\u1085?\u1080?\u1079?\u1072?\u1094?\u1080?\u1102? \u1080?\u1083?\u1080? \u1086?\u1073?\u1098?\u1077?\u1076?\u1080?\u1085?\u1103?\u1102?\u1097?\u1091?\u1102? \u1086?\u1088?\u1075?\u1072?\u1085?\u1080?\u1079?\u1072?\u1094?\u1080?\u1080?. \u1045?\u1089?\u1083?\u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1077? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1087?\u1088?\u1086?\u1080?\u1089?\u1093?\u1086?\u1076?\u1080?\u1090? \u1074?\u1089?\u1083?\u1077?\u1076?\u1089?\u1090?\u1074?\u1080?\u1077? \u1089?\u1076?\u1077?\u1083?\u1082?\u1080? \u1089? \u1086?\u1088?\u1075?\u1072?\u1085?\u1080?\u1079?\u1072?\u1094?\u1080?\u1077?\u1081?, \u1082?\u1072?\u1078?\u1076?\u1072?\u1103? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1072? \u1089?\u1076?\u1077?\u1083?\u1082?\u1080?, \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1102?\u1097?\u1072?\u1103? \u1082?\u1086?\u1087?\u1080?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1090?\u1072?\u1082?\u1078?\u1077? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1077?\u1090? \u1074?\u1089?\u1077? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1085?\u1072? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1087?\u1088?\u1077?\u1076?\u1096?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1080?\u1082? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1099? \u1080?\u1084?\u1077?\u1083? \u1080?\u1083?\u1080? \u1084?\u1086?\u1075? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1080?\u1090?\u1100? \u1087?\u1086? \u1087?\u1088?\u1077?\u1076?\u1099?\u1076?\u1091?\u1097?\u1077?\u1084?\u1091? \u1072?\u1073?\u1079?\u1072?\u1094?\u1091?, \u1072? \u1090?\u1072?\u1082?\u1078?\u1077? \u1087?\u1088?\u1072?\u1074?\u1086? \u1074?\u1083?\u1072?\u1076?\u1077?\u1085?\u1080?\u1103? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1084? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1084? \u1082?\u1086?\u1076?\u1086?\u1084? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1086?\u1090? \u1087?\u1088?\u1077?\u1076?\u1096?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1080?\u1082?\u1072?, \u1077?\u1089?\u1083?\u1080? \u1087?\u1088?\u1077?\u1076?\u1096?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1080?\u1082? \u1080?\u1084?\u1077?\u1077?\u1090? \u1077?\u1075?\u1086? \u1080?\u1083?\u1080? \u1084?\u1086?\u1078?\u1077?\u1090? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1090?\u1100? \u1088?\u1072?\u1079?\u1091?\u1084?\u1085?\u1099?\u1084?\u1080? \u1091?\u1089?\u1080?\u1083?\u1080?\u1103?\u1084?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1085?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1085?\u1072?\u1083?\u1072?\u1075?\u1072?\u1090?\u1100? \u1076?\u1072?\u1083?\u1100?\u1085?\u1077?\u1081?\u1096?\u1080?\u1077? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1103? \u1085?\u1072? \u1086?\u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1083?\u1077?\u1085?\u1080?\u1077? \u1087?\u1088?\u1072?\u1074?, \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1099?\u1093? \u1080?\u1083?\u1080? \u1087?\u1086?\u1076?\u1090?\u1074?\u1077?\u1088?\u1078?\u1076?\u1105?\u1085?\u1085?\u1099?\u1093? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081?. \u1053?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088?, \u1074?\u1099? \u1085?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1074?\u1079?\u1080?\u1084?\u1072?\u1090?\u1100? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1086?\u1085?\u1085?\u1099?\u1081? \u1089?\u1073?\u1086?\u1088?, \u1088?\u1086?\u1103?\u1083?\u1090?\u1080? \u1080?\u1083?\u1080? \u1076?\u1088?\u1091?\u1075?\u1091?\u1102? \u1087?\u1083?\u1072?\u1090?\u1091? \u1079?\u1072? \u1086?\u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1083?\u1077?\u1085?\u1080?\u1077? \u1087?\u1088?\u1072?\u1074?, \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1099?\u1093? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081?, \u1080? \u1085?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1080?\u1085?\u1080?\u1094?\u1080?\u1080?\u1088?\u1086?\u1074?\u1072?\u1090?\u1100? \u1089?\u1091?\u1076?\u1077?\u1073?\u1085?\u1099?\u1081? \u1089?\u1087?\u1086?\u1088?, \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1103? \u1074?\u1089?\u1090?\u1088?\u1077?\u1095?\u1085?\u1099?\u1081? \u1080?\u1089?\u1082? \u1080?\u1083?\u1080? \u1074?\u1089?\u1090?\u1088?\u1077?\u1095?\u1085?\u1086?\u1077? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077?, \u1091?\u1090?\u1074?\u1077?\u1088?\u1078?\u1076?\u1072?\u1103?, \u1095?\u1090?\u1086? \u1080?\u1079?\u1075?\u1086?\u1090?\u1086?\u1074?\u1083?\u1077?\u1085?\u1080?\u1077?, \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077?, \u1087?\u1088?\u1086?\u1076?\u1072?\u1078?\u1072?, \u1087?\u1088?\u1077?\u1076?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1077? \u1082? \u1087?\u1088?\u1086?\u1076?\u1072?\u1078?\u1077? \u1080?\u1083?\u1080? \u1080?\u1084?\u1087?\u1086?\u1088?\u1090? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1080?\u1083?\u1080? \u1083?\u1102?\u1073?\u1086?\u1081? \u1077?\u1105? \u1095?\u1072?\u1089?\u1090?\u1080? \u1085?\u1072?\u1088?\u1091?\u1096?\u1072?\u1077?\u1090? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1087?\u1088?\u1072?\u1074?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 11. \u1055?\u1072?\u1090?\u1077?\u1085?\u1090?\u1099?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1059?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1103?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1081? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1077?\u1090? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1080?\u1083?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1085?\u1072? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1081? \u1086?\u1089?\u1085?\u1086?\u1074?\u1072?\u1085?\u1072? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072?. \u1056?\u1072?\u1073?\u1086?\u1090?\u1072?, \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1085?\u1072?\u1103? \u1090?\u1072?\u1082?\u1080?\u1084? \u1086?\u1073?\u1088?\u1072?\u1079?\u1086?\u1084?, \u1085?\u1072?\u1079?\u1099?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u171?\u1074?\u1077?\u1088?\u1089?\u1080?\u1077?\u1081? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u1072?\u187?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u171?\u1057?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1099?\u1077? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?\u187? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u1072? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1102?\u1090? \u1074?\u1089?\u1077? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?, \u1087?\u1088?\u1080?\u1085?\u1072?\u1076?\u1083?\u1077?\u1078?\u1072?\u1097?\u1080?\u1077? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u1091? \u1080?\u1083?\u1080? \u1082?\u1086?\u1085?\u1090?\u1088?\u1086?\u1083?\u1080?\u1088?\u1091?\u1077?\u1084?\u1099?\u1077? \u1080?\u1084?, \u1091?\u1078?\u1077? \u1087?\u1088?\u1080?\u1086?\u1073?\u1088?\u1077?\u1090?\u1105?\u1085?\u1085?\u1099?\u1077? \u1080?\u1083?\u1080? \u1087?\u1088?\u1080?\u1086?\u1073?\u1088?\u1077?\u1090?\u1105?\u1085?\u1085?\u1099?\u1077? \u1087?\u1086?\u1079?\u1076?\u1085?\u1077?\u1077?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1073?\u1099?\u1083?\u1080? \u1073?\u1099? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1099? \u1082?\u1072?\u1082?\u1080?\u1084?-\u1083?\u1080?\u1073?\u1086? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084?, \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1105?\u1085?\u1085?\u1099?\u1084? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081?, \u1087?\u1088?\u1080? \u1089?\u1086?\u1079?\u1076?\u1072?\u1085?\u1080?\u1080?, \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1080? \u1080?\u1083?\u1080? \u1087?\u1088?\u1086?\u1076?\u1072?\u1078?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u1072?. \u1054?\u1085?\u1080? \u1085?\u1077? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1102?\u1090? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1073?\u1099?\u1083?\u1080? \u1073?\u1099? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1099? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1074?\u1089?\u1083?\u1077?\u1076?\u1089?\u1090?\u1074?\u1080?\u1077? \u1076?\u1072?\u1083?\u1100?\u1085?\u1077?\u1081?\u1096?\u1077?\u1075?\u1086? \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1103? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u1072?. \u1042? \u1101?\u1090?\u1086?\u1084? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1077?\u1085?\u1080?\u1080? \u171?\u1082?\u1086?\u1085?\u1090?\u1088?\u1086?\u1083?\u1100?\u187? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1077?\u1090? \u1087?\u1088?\u1072?\u1074?\u1086? \u1074?\u1099?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1089?\u1091?\u1073?\u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084?, \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1084? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?\u1084? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1050?\u1072?\u1078?\u1076?\u1099?\u1081? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090? \u1074?\u1072?\u1084? \u1085?\u1077?\u1080?\u1089?\u1082?\u1083?\u1102?\u1095?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1091?\u1102?, \u1074?\u1089?\u1077?\u1084?\u1080?\u1088?\u1085?\u1091?\u1102?, \u1073?\u1077?\u1079?\u1074?\u1086?\u1079?\u1084?\u1077?\u1079?\u1076?\u1085?\u1091?\u1102? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1091?\u1102? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102? \u1085?\u1072? \u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1099?\u1077? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u1072? \u1076?\u1083?\u1103? \u1089?\u1086?\u1079?\u1076?\u1072?\u1085?\u1080?\u1103?, \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?, \u1087?\u1088?\u1086?\u1076?\u1072?\u1078?\u1080?, \u1087?\u1088?\u1077?\u1076?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1103? \u1082? \u1087?\u1088?\u1086?\u1076?\u1072?\u1078?\u1077?, \u1080?\u1084?\u1087?\u1086?\u1088?\u1090?\u1072? \u1080? \u1080?\u1085?\u1099?\u1093? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1074? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1072?, \u1080?\u1079?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1103? \u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1103? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1080?\u1084?\u1086?\u1075?\u1086? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1091?\u1095?\u1072?\u1089?\u1090?\u1085?\u1080?\u1082?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042? \u1089?\u1083?\u1077?\u1076?\u1091?\u1102?\u1097?\u1080?\u1093? \u1090?\u1088?\u1105?\u1093? \u1072?\u1073?\u1079?\u1072?\u1094?\u1072?\u1093? \u171?\u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1072?\u1103? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1083?\u1102?\u1073?\u1086?\u1077? \u1103?\u1074?\u1085?\u1086?\u1077? \u1089?\u1086?\u1075?\u1083?\u1072?\u1096?\u1077?\u1085?\u1080?\u1077? \u1080?\u1083?\u1080? \u1086?\u1073?\u1103?\u1079?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1090?\u1074?\u1086?, \u1082?\u1072?\u1082? \u1073?\u1099? \u1086?\u1085?\u1086? \u1085?\u1080? \u1085?\u1072?\u1079?\u1099?\u1074?\u1072?\u1083?\u1086?\u1089?\u1100?, \u1085?\u1077? \u1087?\u1088?\u1077?\u1076?\u1098?\u1103?\u1074?\u1083?\u1103?\u1090?\u1100? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?, \u1085?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088? \u1103?\u1074?\u1085?\u1086?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1077? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090? \u1080?\u1083?\u1080? \u1089?\u1086?\u1075?\u1083?\u1072?\u1096?\u1077?\u1085?\u1080?\u1077? \u1085?\u1077? \u1087?\u1088?\u1077?\u1076?\u1098?\u1103?\u1074?\u1083?\u1103?\u1090?\u1100? \u1080?\u1089?\u1082? \u1079?\u1072? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1077? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1072?. \u171?\u1055?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1080?\u1090?\u1100?\u187? \u1090?\u1072?\u1082?\u1091?\u1102? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1091?\u1102? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1077? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090? \u1079?\u1072?\u1082?\u1083?\u1102?\u1095?\u1080?\u1090?\u1100? \u1090?\u1072?\u1082?\u1086?\u1077? \u1089?\u1086?\u1075?\u1083?\u1072?\u1096?\u1077?\u1085?\u1080?\u1077? \u1080?\u1083?\u1080? \u1086?\u1073?\u1103?\u1079?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1090?\u1074?\u1086? \u1085?\u1077? \u1087?\u1088?\u1077?\u1076?\u1098?\u1103?\u1074?\u1083?\u1103?\u1090?\u1100? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1099?\u1077? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1082? \u1101?\u1090?\u1086?\u1081? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1077?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1074?\u1099? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1089?\u1086?\u1079?\u1085?\u1072?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086? \u1087?\u1086?\u1083?\u1072?\u1075?\u1072?\u1103?\u1089?\u1100? \u1085?\u1072? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1091?\u1102? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102?, \u1080? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1081? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1099?\u1081? \u1082?\u1086?\u1076? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1085?\u1077? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1077?\u1085? \u1074?\u1089?\u1077?\u1084? \u1076?\u1083?\u1103? \u1073?\u1077?\u1089?\u1087?\u1083?\u1072?\u1090?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1087?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1095?\u1077?\u1088?\u1077?\u1079? \u1086?\u1073?\u1097?\u1077?\u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1085?\u1099?\u1081? \u1089?\u1077?\u1090?\u1077?\u1074?\u1086?\u1081? \u1089?\u1077?\u1088?\u1074?\u1077?\u1088? \u1080?\u1083?\u1080? \u1076?\u1088?\u1091?\u1075?\u1080?\u1084? \u1083?\u1077?\u1075?\u1082?\u1086?\u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1085?\u1099?\u1084? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084?, \u1074?\u1099? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1083?\u1080?\u1073?\u1086? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1080?\u1090?\u1100? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1085?\u1086?\u1089?\u1090?\u1100? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1077?\u1075?\u1086? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1082?\u1086?\u1076?\u1072?, \u1083?\u1080?\u1073?\u1086? \u1083?\u1080?\u1096?\u1080?\u1090?\u1100?\u1089?\u1103? \u1074?\u1099?\u1075?\u1086?\u1076?\u1099? \u1086?\u1090? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1086?\u1081? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1076?\u1083?\u1103? \u1101?\u1090?\u1086?\u1081? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1083?\u1080?\u1073?\u1086? \u1076?\u1086?\u1075?\u1086?\u1074?\u1086?\u1088?\u1080?\u1090?\u1100?\u1089?\u1103? \u1086? \u1088?\u1072?\u1089?\u1096?\u1080?\u1088?\u1077?\u1085?\u1080?\u1080? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1086?\u1081? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1085?\u1072? \u1087?\u1086?\u1089?\u1083?\u1077?\u1076?\u1091?\u1102?\u1097?\u1080?\u1093? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073?\u1086?\u1084?, \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1084? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103?\u1084? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?. \u171?\u1057?\u1086?\u1079?\u1085?\u1072?\u1090?\u1077?\u1083?\u1100?\u1085?\u1086? \u1087?\u1086?\u1083?\u1072?\u1075?\u1072?\u1103?\u1089?\u1100?\u187? \u1086?\u1079?\u1085?\u1072?\u1095?\u1072?\u1077?\u1090?, \u1095?\u1090?\u1086? \u1074?\u1072?\u1084? \u1092?\u1072?\u1082?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1080?\u1079?\u1074?\u1077?\u1089?\u1090?\u1085?\u1086?, \u1095?\u1090?\u1086? \u1073?\u1077?\u1079? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1086?\u1081? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1074?\u1072?\u1096?\u1072? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1072? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1074? \u1089?\u1090?\u1088?\u1072?\u1085?\u1077? \u1080?\u1083?\u1080? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1077?\u1084? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1074? \u1089?\u1090?\u1088?\u1072?\u1085?\u1077? \u1085?\u1072?\u1088?\u1091?\u1096?\u1080?\u1083?\u1086? \u1073?\u1099? \u1086?\u1076?\u1080?\u1085? \u1080?\u1083?\u1080? \u1085?\u1077?\u1089?\u1082?\u1086?\u1083?\u1100?\u1082?\u1086? \u1080?\u1076?\u1077?\u1085?\u1090?\u1080?\u1092?\u1080?\u1094?\u1080?\u1088?\u1091?\u1077?\u1084?\u1099?\u1093? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1086?\u1074? \u1074? \u1101?\u1090?\u1086?\u1081? \u1089?\u1090?\u1088?\u1072?\u1085?\u1077?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1091? \u1074?\u1072?\u1089? \u1077?\u1089?\u1090?\u1100? \u1086?\u1089?\u1085?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1089?\u1095?\u1080?\u1090?\u1072?\u1090?\u1100? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1084?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1074? \u1089?\u1074?\u1103?\u1079?\u1080? \u1089? \u1086?\u1076?\u1085?\u1086?\u1081? \u1089?\u1076?\u1077?\u1083?\u1082?\u1086?\u1081? \u1080?\u1083?\u1080? \u1076?\u1086?\u1075?\u1086?\u1074?\u1086?\u1088?\u1105?\u1085?\u1085?\u1086?\u1089?\u1090?\u1100?\u1102? \u1074?\u1099? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077? \u1080?\u1083?\u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1077? \u1087?\u1091?\u1090?\u1105?\u1084? \u1086?\u1088?\u1075?\u1072?\u1085?\u1080?\u1079?\u1072?\u1094?\u1080?\u1080? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1080? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1080? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090?\u1077? \u1085?\u1077?\u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1084? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1072?\u1084?, \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1102?\u1097?\u1080?\u1084? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1091?\u1102? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102?, \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1102?\u1097?\u1091?\u1102? \u1080?\u1084? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100?, \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100?, \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1080?\u1083?\u1080? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1091?\u1102? \u1082?\u1086?\u1087?\u1080?\u1102? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1072?\u1103? \u1074?\u1072?\u1084?\u1080? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1072?\u1103? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1072?\u1074?\u1090?\u1086?\u1084?\u1072?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1089?\u1103? \u1085?\u1072? \u1074?\u1089?\u1077?\u1093? \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1090?\u1077?\u1083?\u1077?\u1081? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1080? \u1088?\u1072?\u1073?\u1086?\u1090?, \u1086?\u1089?\u1085?\u1086?\u1074?\u1072?\u1085?\u1085?\u1099?\u1093? \u1085?\u1072? \u1085?\u1077?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1055?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1072?\u1103? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1076?\u1080?\u1089?\u1082?\u1088?\u1080?\u1084?\u1080?\u1085?\u1072?\u1094?\u1080?\u1086?\u1085?\u1085?\u1086?\u1081?, \u1077?\u1089?\u1083?\u1080? \u1086?\u1085?\u1072? \u1085?\u1077? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1077?\u1090? \u1074? \u1086?\u1073?\u1098?\u1105?\u1084? \u1089?\u1074?\u1086?\u1077?\u1075?\u1086? \u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1103?, \u1079?\u1072?\u1087?\u1088?\u1077?\u1097?\u1072?\u1077?\u1090? \u1086?\u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1083?\u1077?\u1085?\u1080?\u1077? \u1080?\u1083?\u1080? \u1086?\u1073?\u1091?\u1089?\u1083?\u1086?\u1074?\u1083?\u1077?\u1085?\u1072? \u1085?\u1077?\u1086?\u1089?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1083?\u1077?\u1085?\u1080?\u1077?\u1084? \u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1080?\u1083?\u1080? \u1085?\u1077?\u1089?\u1082?\u1086?\u1083?\u1100?\u1082?\u1080?\u1093? \u1087?\u1088?\u1072?\u1074?, \u1089?\u1087?\u1077?\u1094?\u1080?\u1072?\u1083?\u1100?\u1085?\u1086? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1085?\u1099?\u1093? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1077?\u1081?. \u1042?\u1099? \u1085?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1077?\u1089?\u1083?\u1080? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1077?\u1089?\u1100? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1086?\u1081? \u1089?\u1086?\u1075?\u1083?\u1072?\u1096?\u1077?\u1085?\u1080?\u1103? \u1089? \u1090?\u1088?\u1077?\u1090?\u1100?\u1077?\u1081? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1086?\u1081?, \u1079?\u1072?\u1085?\u1080?\u1084?\u1072?\u1102?\u1097?\u1077?\u1081?\u1089?\u1103? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1077?\u1085?\u1080?\u1077?\u1084? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1075?\u1086? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1103?, \u1087?\u1086? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1084?\u1091? \u1074?\u1099? \u1087?\u1083?\u1072?\u1090?\u1080?\u1090?\u1077? \u1101?\u1090?\u1086?\u1081? \u1090?\u1088?\u1077?\u1090?\u1100?\u1077?\u1081? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1077? \u1074? \u1079?\u1072?\u1074?\u1080?\u1089?\u1080?\u1084?\u1086?\u1089?\u1090?\u1080? \u1086?\u1090? \u1086?\u1073?\u1098?\u1105?\u1084?\u1072? \u1074?\u1072?\u1096?\u1077?\u1081? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1080? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099? \u1080? \u1087?\u1086? \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1084?\u1091? \u1090?\u1088?\u1077?\u1090?\u1100?\u1103? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1072? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090? \u1083?\u1102?\u1073?\u1086?\u1081? \u1089?\u1090?\u1086?\u1088?\u1086?\u1085?\u1077?, \u1087?\u1086?\u1083?\u1091?\u1095?\u1072?\u1102?\u1097?\u1077?\u1081? \u1086?\u1090? \u1074?\u1072?\u1089? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1076?\u1080?\u1089?\u1082?\u1088?\u1080?\u1084?\u1080?\u1085?\u1072?\u1094?\u1080?\u1086?\u1085?\u1085?\u1091?\u1102? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1091?\u1102? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102? \u1074? \u1089?\u1074?\u1103?\u1079?\u1080? \u1089? \u1082?\u1086?\u1087?\u1080?\u1103?\u1084?\u1080? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1099?, \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1085?\u1085?\u1099?\u1084?\u1080? \u1074?\u1072?\u1084?\u1080? \u1080?\u1083?\u1080? \u1089?\u1086?\u1079?\u1076?\u1072?\u1085?\u1085?\u1099?\u1084?\u1080? \u1085?\u1072? \u1080?\u1093? \u1086?\u1089?\u1085?\u1086?\u1074?\u1077?, \u1083?\u1080?\u1073?\u1086? \u1087?\u1088?\u1077?\u1080?\u1084?\u1091?\u1097?\u1077?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086? \u1076?\u1083?\u1103? \u1082?\u1086?\u1085?\u1082?\u1088?\u1077?\u1090?\u1085?\u1099?\u1093? \u1087?\u1088?\u1086?\u1076?\u1091?\u1082?\u1090?\u1086?\u1074? \u1080?\u1083?\u1080? \u1089?\u1073?\u1086?\u1088?\u1085?\u1080?\u1082?\u1086?\u1074?, \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1072?\u1097?\u1080?\u1093? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?, \u1077?\u1089?\u1083?\u1080? \u1090?\u1072?\u1082?\u1086?\u1077? \u1089?\u1086?\u1075?\u1083?\u1072?\u1096?\u1077?\u1085?\u1080?\u1077? \u1080?\u1083?\u1080? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1072?\u1103? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1103? \u1073?\u1099?\u1083?\u1080? \u1079?\u1072?\u1082?\u1083?\u1102?\u1095?\u1077?\u1085?\u1099? \u1080?\u1083?\u1080? \u1087?\u1088?\u1077?\u1076?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1077?\u1085?\u1099? \u1076?\u1086? 28 \u1084?\u1072?\u1088?\u1090?\u1072? 2007 \u1075?\u1086?\u1076?\u1072?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1080?\u1095?\u1090?\u1086? \u1074? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1085?\u1077? \u1076?\u1086?\u1083?\u1078?\u1085?\u1086? \u1090?\u1086?\u1083?\u1082?\u1086?\u1074?\u1072?\u1090?\u1100?\u1089?\u1103? \u1082?\u1072?\u1082? \u1080?\u1089?\u1082?\u1083?\u1102?\u1095?\u1077?\u1085?\u1080?\u1077? \u1080?\u1083?\u1080? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1077? \u1083?\u1102?\u1073?\u1086?\u1081? \u1087?\u1086?\u1076?\u1088?\u1072?\u1079?\u1091?\u1084?\u1077?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1080?\u1083?\u1080? \u1080?\u1085?\u1099?\u1093? \u1079?\u1072?\u1097?\u1080?\u1090? \u1086?\u1090? \u1085?\u1072?\u1088?\u1091?\u1096?\u1077?\u1085?\u1080?\u1103?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1084?\u1086?\u1075?\u1091?\u1090? \u1073?\u1099?\u1090?\u1100? \u1076?\u1086?\u1089?\u1090?\u1091?\u1087?\u1085?\u1099? \u1074?\u1072?\u1084? \u1087?\u1086? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1086?\u1084?\u1091? \u1087?\u1072?\u1090?\u1077?\u1085?\u1090?\u1085?\u1086?\u1084?\u1091? \u1087?\u1088?\u1072?\u1074?\u1091?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 12. \u1053?\u1077?\u1083?\u1100?\u1079?\u1103? \u1086?\u1090?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1090?\u1100?\u1089?\u1103? \u1086?\u1090? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1099? \u1076?\u1088?\u1091?\u1075?\u1080?\u1093?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1085?\u1072? \u1074?\u1072?\u1089? \u1085?\u1072?\u1083?\u1086?\u1078?\u1077?\u1085?\u1099? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?, \u1085?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088? \u1089?\u1091?\u1076?\u1077?\u1073?\u1085?\u1099?\u1084? \u1087?\u1088?\u1080?\u1082?\u1072?\u1079?\u1086?\u1084?, \u1089?\u1086?\u1075?\u1083?\u1072?\u1096?\u1077?\u1085?\u1080?\u1077?\u1084? \u1080?\u1083?\u1080? \u1080?\u1085?\u1099?\u1084? \u1086?\u1073?\u1088?\u1072?\u1079?\u1086?\u1084?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1087?\u1088?\u1086?\u1090?\u1080?\u1074?\u1086?\u1088?\u1077?\u1095?\u1072?\u1090? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1084? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1086?\u1085?\u1080? \u1085?\u1077? \u1086?\u1089?\u1074?\u1086?\u1073?\u1086?\u1078?\u1076?\u1072?\u1102?\u1090? \u1074?\u1072?\u1089? \u1086?\u1090? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1081? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?. \u1045?\u1089?\u1083?\u1080? \u1074?\u1099? \u1085?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1090?\u1100? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1090?\u1072?\u1082?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1086?\u1076?\u1085?\u1086?\u1074?\u1088?\u1077?\u1084?\u1077?\u1085?\u1085?\u1086? \u1074?\u1099?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1100? \u1089?\u1074?\u1086?\u1080? \u1086?\u1073?\u1103?\u1079?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1090?\u1074?\u1072? \u1087?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1080? \u1083?\u1102?\u1073?\u1099?\u1077? \u1076?\u1088?\u1091?\u1075?\u1080?\u1077? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1084?\u1099?\u1077? \u1086?\u1073?\u1103?\u1079?\u1072?\u1090?\u1077?\u1083?\u1100?\u1089?\u1090?\u1074?\u1072?, \u1074?\u1099? \u1085?\u1077? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1077?\u1105? \u1074?\u1086?\u1086?\u1073?\u1097?\u1077?. \u1053?\u1072?\u1087?\u1088?\u1080?\u1084?\u1077?\u1088?, \u1077?\u1089?\u1083?\u1080? \u1074?\u1099? \u1089?\u1086?\u1075?\u1083?\u1072?\u1096?\u1072?\u1077?\u1090?\u1077?\u1089?\u1100? \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1099?\u1077? \u1086?\u1073?\u1103?\u1079?\u1099?\u1074?\u1072?\u1102?\u1090? \u1074?\u1072?\u1089? \u1074?\u1079?\u1080?\u1084?\u1072?\u1090?\u1100? \u1088?\u1086?\u1103?\u1083?\u1090?\u1080? \u1079?\u1072? \u1076?\u1072?\u1083?\u1100?\u1085?\u1077?\u1081?\u1096?\u1091?\u1102? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1091? \u1089? \u1090?\u1077?\u1093?, \u1082?\u1086?\u1084?\u1091? \u1074?\u1099? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1105?\u1090?\u1077? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091?, \u1077?\u1076?\u1080?\u1085?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1099?\u1081? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073? \u1074?\u1099?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1100? \u1080? \u1101?\u1090?\u1080? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?, \u1080? \u1101?\u1090?\u1091? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1102? \u1089?\u1086?\u1089?\u1090?\u1086?\u1080?\u1090? \u1074? \u1087?\u1086?\u1083?\u1085?\u1086?\u1084? \u1086?\u1090?\u1082?\u1072?\u1079?\u1077? \u1086?\u1090? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1095?\u1080? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 13. \u1048?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1089? GNU Affero General Public License.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1077?\u1074?\u1079?\u1080?\u1088?\u1072?\u1103? \u1085?\u1072? \u1083?\u1102?\u1073?\u1099?\u1077? \u1076?\u1088?\u1091?\u1075?\u1080?\u1077? \u1087?\u1086?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1074?\u1099? \u1080?\u1084?\u1077?\u1077?\u1090?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1077? \u1089?\u1074?\u1103?\u1079?\u1099?\u1074?\u1072?\u1090?\u1100? \u1080?\u1083?\u1080? \u1086?\u1073?\u1098?\u1077?\u1076?\u1080?\u1085?\u1103?\u1090?\u1100? \u1083?\u1102?\u1073?\u1091?\u1102? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1089? \u1088?\u1072?\u1073?\u1086?\u1090?\u1086?\u1081?, \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1088?\u1086?\u1074?\u1072?\u1085?\u1085?\u1086?\u1081? \u1087?\u1086? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? 3 GNU Affero General Public License, \u1074? \u1086?\u1076?\u1085?\u1091? \u1086?\u1073?\u1098?\u1077?\u1076?\u1080?\u1085?\u1105?\u1085?\u1085?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091? \u1080? \u1087?\u1077?\u1088?\u1077?\u1076?\u1072?\u1074?\u1072?\u1090?\u1100? \u1087?\u1086?\u1083?\u1091?\u1095?\u1077?\u1085?\u1085?\u1091?\u1102? \u1088?\u1072?\u1073?\u1086?\u1090?\u1091?. \u1059?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1087?\u1088?\u1086?\u1076?\u1086?\u1083?\u1078?\u1072?\u1102?\u1090? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100?\u1089?\u1103? \u1082? \u1095?\u1072?\u1089?\u1090?\u1080?, \u1103?\u1074?\u1083?\u1103?\u1102?\u1097?\u1077?\u1081?\u1089?\u1103? \u1086?\u1093?\u1074?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1086?\u1081?, \u1085?\u1086? \u1089?\u1087?\u1077?\u1094?\u1080?\u1072?\u1083?\u1100?\u1085?\u1099?\u1077? \u1090?\u1088?\u1077?\u1073?\u1086?\u1074?\u1072?\u1085?\u1080?\u1103? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1072? 13 GNU Affero General Public License \u1086? \u1074?\u1079?\u1072?\u1080?\u1084?\u1086?\u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1080?\u1080? \u1095?\u1077?\u1088?\u1077?\u1079? \u1089?\u1077?\u1090?\u1100? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1102?\u1090?\u1089?\u1103? \u1082? \u1086?\u1073?\u1098?\u1077?\u1076?\u1080?\u1085?\u1105?\u1085?\u1085?\u1086?\u1081? \u1088?\u1072?\u1073?\u1086?\u1090?\u1077? \u1082?\u1072?\u1082? \u1090?\u1072?\u1082?\u1086?\u1074?\u1086?\u1081?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 14. \u1048?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 Free Software Foundation \u1084?\u1086?\u1078?\u1077?\u1090? \u1074?\u1088?\u1077?\u1084?\u1103? \u1086?\u1090? \u1074?\u1088?\u1077?\u1084?\u1077?\u1085?\u1080? \u1087?\u1091?\u1073?\u1083?\u1080?\u1082?\u1086?\u1074?\u1072?\u1090?\u1100? \u1080?\u1079?\u1084?\u1077?\u1085?\u1105?\u1085?\u1085?\u1099?\u1077? \u1080?\u1083?\u1080? \u1085?\u1086?\u1074?\u1099?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? GNU General Public License. \u1058?\u1072?\u1082?\u1080?\u1077? \u1085?\u1086?\u1074?\u1099?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1073?\u1091?\u1076?\u1091?\u1090? \u1089?\u1093?\u1086?\u1076?\u1085?\u1099? \u1087?\u1086? \u1076?\u1091?\u1093?\u1091? \u1089? \u1090?\u1077?\u1082?\u1091?\u1097?\u1077?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1077?\u1081?, \u1085?\u1086? \u1084?\u1086?\u1075?\u1091?\u1090? \u1086?\u1090?\u1083?\u1080?\u1095?\u1072?\u1090?\u1100?\u1089?\u1103? \u1074? \u1076?\u1077?\u1090?\u1072?\u1083?\u1103?\u1093?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1091?\u1095?\u1080?\u1090?\u1099?\u1074?\u1072?\u1090?\u1100? \u1085?\u1086?\u1074?\u1099?\u1077? \u1087?\u1088?\u1086?\u1073?\u1083?\u1077?\u1084?\u1099? \u1080?\u1083?\u1080? \u1074?\u1086?\u1087?\u1088?\u1086?\u1089?\u1099?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1050?\u1072?\u1078?\u1076?\u1086?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1087?\u1088?\u1080?\u1089?\u1074?\u1072?\u1080?\u1074?\u1072?\u1077?\u1090?\u1089?\u1103? \u1086?\u1090?\u1083?\u1080?\u1095?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1081? \u1085?\u1086?\u1084?\u1077?\u1088? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080?. \u1045?\u1089?\u1083?\u1080? \u1074? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1086?, \u1095?\u1090?\u1086? \u1082? \u1085?\u1077?\u1081? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1077?\u1090?\u1089?\u1103? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1105?\u1085?\u1085?\u1072?\u1103? \u1087?\u1088?\u1086?\u1085?\u1091?\u1084?\u1077?\u1088?\u1086?\u1074?\u1072?\u1085?\u1085?\u1072?\u1103? \u1074?\u1077?\u1088?\u1089?\u1080?\u1103? GNU General Public License \u171?\u1080?\u1083?\u1080? \u1083?\u1102?\u1073?\u1072?\u1103? \u1073?\u1086?\u1083?\u1077?\u1077? \u1087?\u1086?\u1079?\u1076?\u1085?\u1103?\u1103? \u1074?\u1077?\u1088?\u1089?\u1080?\u1103?\u187?, \u1074?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1089?\u1083?\u1077?\u1076?\u1086?\u1074?\u1072?\u1090?\u1100? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1084? \u1101?\u1090?\u1086?\u1081? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1085?\u1086?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1080?\u1083?\u1080? \u1083?\u1102?\u1073?\u1086?\u1081? \u1073?\u1086?\u1083?\u1077?\u1077? \u1087?\u1086?\u1079?\u1076?\u1085?\u1077?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080?, \u1086?\u1087?\u1091?\u1073?\u1083?\u1080?\u1082?\u1086?\u1074?\u1072?\u1085?\u1085?\u1086?\u1081? Free Software Foundation. \u1045?\u1089?\u1083?\u1080? \u1074? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077? \u1085?\u1077? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085? \u1085?\u1086?\u1084?\u1077?\u1088? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? GNU General Public License, \u1074?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1074?\u1099?\u1073?\u1088?\u1072?\u1090?\u1100? \u1083?\u1102?\u1073?\u1091?\u1102? \u1074?\u1077?\u1088?\u1089?\u1080?\u1102?, \u1082?\u1086?\u1075?\u1076?\u1072?-\u1083?\u1080?\u1073?\u1086? \u1086?\u1087?\u1091?\u1073?\u1083?\u1080?\u1082?\u1086?\u1074?\u1072?\u1085?\u1085?\u1091?\u1102? Free Software Foundation.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1074? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077? \u1091?\u1082?\u1072?\u1079?\u1072?\u1085?\u1086?, \u1095?\u1090?\u1086? \u1087?\u1088?\u1077?\u1076?\u1089?\u1090?\u1072?\u1074?\u1080?\u1090?\u1077?\u1083?\u1100? \u1084?\u1086?\u1078?\u1077?\u1090? \u1088?\u1077?\u1096?\u1072?\u1090?\u1100?, \u1082?\u1072?\u1082?\u1080?\u1077? \u1073?\u1091?\u1076?\u1091?\u1097?\u1080?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? GNU General Public License \u1084?\u1086?\u1075?\u1091?\u1090? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100?\u1089?\u1103?, \u1087?\u1091?\u1073?\u1083?\u1080?\u1095?\u1085?\u1086?\u1077? \u1079?\u1072?\u1103?\u1074?\u1083?\u1077?\u1085?\u1080?\u1077? \u1090?\u1072?\u1082?\u1086?\u1075?\u1086? \u1087?\u1088?\u1077?\u1076?\u1089?\u1090?\u1072?\u1074?\u1080?\u1090?\u1077?\u1083?\u1103? \u1086? \u1087?\u1088?\u1080?\u1085?\u1103?\u1090?\u1080?\u1080? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1085?\u1072?\u1074?\u1089?\u1077?\u1075?\u1076?\u1072? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1077?\u1090? \u1074?\u1072?\u1084? \u1074?\u1099?\u1073?\u1088?\u1072?\u1090?\u1100? \u1101?\u1090?\u1091? \u1074?\u1077?\u1088?\u1089?\u1080?\u1102? \u1076?\u1083?\u1103? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1041?\u1086?\u1083?\u1077?\u1077? \u1087?\u1086?\u1079?\u1076?\u1085?\u1080?\u1077? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? \u1083?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080? \u1084?\u1086?\u1075?\u1091?\u1090? \u1076?\u1072?\u1090?\u1100? \u1074?\u1072?\u1084? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1080?\u1083?\u1080? \u1086?\u1090?\u1083?\u1080?\u1095?\u1072?\u1102?\u1097?\u1080?\u1077?\u1089?\u1103? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1077?\u1085?\u1080?\u1103?. \u1054?\u1076?\u1085?\u1072?\u1082?\u1086? \u1085?\u1072? \u1072?\u1074?\u1090?\u1086?\u1088?\u1072? \u1080?\u1083?\u1080? \u1087?\u1088?\u1072?\u1074?\u1086?\u1086?\u1073?\u1083?\u1072?\u1076?\u1072?\u1090?\u1077?\u1083?\u1103? \u1085?\u1077? \u1074?\u1086?\u1079?\u1083?\u1072?\u1075?\u1072?\u1102?\u1090?\u1089?\u1103? \u1076?\u1086?\u1087?\u1086?\u1083?\u1085?\u1080?\u1090?\u1077?\u1083?\u1100?\u1085?\u1099?\u1077? \u1086?\u1073?\u1103?\u1079?\u1072?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080? \u1074?\u1089?\u1083?\u1077?\u1076?\u1089?\u1090?\u1074?\u1080?\u1077? \u1074?\u1072?\u1096?\u1077?\u1075?\u1086? \u1074?\u1099?\u1073?\u1086?\u1088?\u1072? \u1073?\u1086?\u1083?\u1077?\u1077? \u1087?\u1086?\u1079?\u1076?\u1085?\u1077?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 15. \u1054?\u1090?\u1082?\u1072?\u1079? \u1086?\u1090? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1080?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1040? \u1055?\u1056?\u1054?\u1043?\u1056?\u1040?\u1052?\u1052?\u1059? \u1053?\u1045? \u1055?\u1056?\u1045?\u1044?\u1054?\u1057?\u1058?\u1040?\u1042?\u1051?\u1071?\u1045?\u1058?\u1057?\u1071? \u1043?\u1040?\u1056?\u1040?\u1053?\u1058?\u1048?\u1071? \u1042? \u1052?\u1040?\u1050?\u1057?\u1048?\u1052?\u1040?\u1051?\u1068?\u1053?\u1054?\u1049? \u1057?\u1058?\u1045?\u1055?\u1045?\u1053?\u1048?, \u1056?\u1040?\u1047?\u1056?\u1045?\u1064?\u1025?\u1053?\u1053?\u1054?\u1049? \u1055?\u1056?\u1048?\u1052?\u1045?\u1053?\u1048?\u1052?\u1067?\u1052? \u1055?\u1056?\u1040?\u1042?\u1054?\u1052?. \u1045?\u1057?\u1051?\u1048? \u1048?\u1053?\u1054?\u1045? \u1053?\u1045? \u1059?\u1050?\u1040?\u1047?\u1040?\u1053?\u1054? \u1055?\u1048?\u1057?\u1068?\u1052?\u1045?\u1053?\u1053?\u1054?, \u1055?\u1056?\u1040?\u1042?\u1054?\u1054?\u1041?\u1051?\u1040?\u1044?\u1040?\u1058?\u1045?\u1051?\u1048? \u1048? \u1044?\u1056?\u1059?\u1043?\u1048?\u1045? \u1057?\u1058?\u1054?\u1056?\u1054?\u1053?\u1067? \u1055?\u1056?\u1045?\u1044?\u1054?\u1057?\u1058?\u1040?\u1042?\u1051?\u1071?\u1070?\u1058? \u1055?\u1056?\u1054?\u1043?\u1056?\u1040?\u1052?\u1052?\u1059? \u171?\u1050?\u1040?\u1050? \u1045?\u1057?\u1058?\u1068?\u187? \u1041?\u1045?\u1047? \u1050?\u1040?\u1050?\u1048?\u1061?-\u1051?\u1048?\u1041?\u1054? \u1043?\u1040?\u1056?\u1040?\u1053?\u1058?\u1048?\u1049?, \u1071?\u1042?\u1053?\u1067?\u1061? \u1048?\u1051?\u1048? \u1055?\u1054?\u1044?\u1056?\u1040?\u1047?\u1059?\u1052?\u1045?\u1042?\u1040?\u1045?\u1052?\u1067?\u1061?, \u1042?\u1050?\u1051?\u1070?\u1063?\u1040?\u1071?, \u1053?\u1054? \u1053?\u1045? \u1054?\u1043?\u1056?\u1040?\u1053?\u1048?\u1063?\u1048?\u1042?\u1040?\u1071?\u1057?\u1068?, \u1055?\u1054?\u1044?\u1056?\u1040?\u1047?\u1059?\u1052?\u1045?\u1042?\u1040?\u1045?\u1052?\u1067?\u1045? \u1043?\u1040?\u1056?\u1040?\u1053?\u1058?\u1048?\u1048? \u1058?\u1054?\u1042?\u1040?\u1056?\u1053?\u1054?\u1049? \u1055?\u1056?\u1048?\u1043?\u1054?\u1044?\u1053?\u1054?\u1057?\u1058?\u1048? \u1048? \u1055?\u1056?\u1048?\u1043?\u1054?\u1044?\u1053?\u1054?\u1057?\u1058?\u1048? \u1044?\u1051?\u1071? \u1054?\u1055?\u1056?\u1045?\u1044?\u1045?\u1051?\u1025?\u1053?\u1053?\u1054?\u1049? \u1062?\u1045?\u1051?\u1048?. \u1042?\u1045?\u1057?\u1068? \u1056?\u1048?\u1057?\u1050?, \u1057?\u1042?\u1071?\u1047?\u1040?\u1053?\u1053?\u1067?\u1049? \u1057? \u1050?\u1040?\u1063?\u1045?\u1057?\u1058?\u1042?\u1054?\u1052? \u1048? \u1056?\u1040?\u1041?\u1054?\u1058?\u1054?\u1049? \u1055?\u1056?\u1054?\u1043?\u1056?\u1040?\u1052?\u1052?\u1067?, \u1053?\u1045?\u1057?\u1025?\u1058?\u1045? \u1042?\u1067?. \u1045?\u1057?\u1051?\u1048? \u1055?\u1056?\u1054?\u1043?\u1056?\u1040?\u1052?\u1052?\u1040? \u1054?\u1050?\u1040?\u1046?\u1045?\u1058?\u1057?\u1071? \u1044?\u1045?\u1060?\u1045?\u1050?\u1058?\u1053?\u1054?\u1049?, \u1042?\u1067? \u1053?\u1045?\u1057?\u1025?\u1058?\u1045? \u1042?\u1057?\u1070? \u1057?\u1058?\u1054?\u1048?\u1052?\u1054?\u1057?\u1058?\u1068? \u1053?\u1045?\u1054?\u1041?\u1061?\u1054?\u1044?\u1048?\u1052?\u1054?\u1043?\u1054? \u1054?\u1041?\u1057?\u1051?\u1059?\u1046?\u1048?\u1042?\u1040?\u1053?\u1048?\u1071?, \u1048?\u1057?\u1055?\u1056?\u1040?\u1042?\u1051?\u1045?\u1053?\u1048?\u1071? \u1048?\u1051?\u1048? \u1056?\u1045?\u1052?\u1054?\u1053?\u1058?\u1040?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 16. \u1054?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1077? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080?.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1053?\u1048? \u1055?\u1056?\u1048? \u1050?\u1040?\u1050?\u1048?\u1061? \u1054?\u1041?\u1057?\u1058?\u1054?\u1071?\u1058?\u1045?\u1051?\u1068?\u1057?\u1058?\u1042?\u1040?\u1061?, \u1050?\u1056?\u1054?\u1052?\u1045? \u1058?\u1056?\u1045?\u1041?\u1054?\u1042?\u1040?\u1053?\u1048?\u1049? \u1055?\u1056?\u1048?\u1052?\u1045?\u1053?\u1048?\u1052?\u1054?\u1043?\u1054? \u1055?\u1056?\u1040?\u1042?\u1040? \u1048?\u1051?\u1048? \u1055?\u1048?\u1057?\u1068?\u1052?\u1045?\u1053?\u1053?\u1054?\u1043?\u1054? \u1057?\u1054?\u1043?\u1051?\u1040?\u1057?\u1048?\u1071?, \u1053?\u1048? \u1054?\u1044?\u1048?\u1053? \u1055?\u1056?\u1040?\u1042?\u1054?\u1054?\u1041?\u1051?\u1040?\u1044?\u1040?\u1058?\u1045?\u1051?\u1068? \u1048? \u1053?\u1048? \u1054?\u1044?\u1053?\u1040? \u1044?\u1056?\u1059?\u1043?\u1040?\u1071? \u1057?\u1058?\u1054?\u1056?\u1054?\u1053?\u1040?, \u1050?\u1054?\u1058?\u1054?\u1056?\u1040?\u1071? \u1048?\u1047?\u1052?\u1045?\u1053?\u1071?\u1045?\u1058? \u1048?\u1051?\u1048? \u1055?\u1045?\u1056?\u1045?\u1044?\u1040?\u1025?\u1058? \u1055?\u1056?\u1054?\u1043?\u1056?\u1040?\u1052?\u1052?\u1059?, \u1050?\u1040?\u1050? \u1056?\u1040?\u1047?\u1056?\u1045?\u1064?\u1045?\u1053?\u1054? \u1042?\u1067?\u1064?\u1045?, \u1053?\u1045? \u1053?\u1045?\u1057?\u1025?\u1058? \u1055?\u1045?\u1056?\u1045?\u1044? \u1042?\u1040?\u1052?\u1048? \u1054?\u1058?\u1042?\u1045?\u1058?\u1057?\u1058?\u1042?\u1045?\u1053?\u1053?\u1054?\u1057?\u1058?\u1048? \u1047?\u1040? \u1059?\u1065?\u1045?\u1056?\u1041?, \u1042?\u1050?\u1051?\u1070?\u1063?\u1040?\u1071? \u1051?\u1070?\u1041?\u1054?\u1049? \u1054?\u1041?\u1065?\u1048?\u1049?, \u1057?\u1055?\u1045?\u1062?\u1048?\u1040?\u1051?\u1068?\u1053?\u1067?\u1049?, \u1057?\u1051?\u1059?\u1063?\u1040?\u1049?\u1053?\u1067?\u1049? \u1048?\u1051?\u1048? \u1050?\u1054?\u1057?\u1042?\u1045?\u1053?\u1053?\u1067?\u1049? \u1059?\u1065?\u1045?\u1056?\u1041?, \u1042?\u1054?\u1047?\u1053?\u1048?\u1050?\u1040?\u1070?\u1065?\u1048?\u1049? \u1048?\u1047? \u1048?\u1057?\u1055?\u1054?\u1051?\u1068?\u1047?\u1054?\u1042?\u1040?\u1053?\u1048?\u1071? \u1048?\u1051?\u1048? \u1053?\u1045?\u1042?\u1054?\u1047?\u1052?\u1054?\u1046?\u1053?\u1054?\u1057?\u1058?\u1048? \u1048?\u1057?\u1055?\u1054?\u1051?\u1068?\u1047?\u1054?\u1042?\u1040?\u1053?\u1048?\u1071? \u1055?\u1056?\u1054?\u1043?\u1056?\u1040?\u1052?\u1052?\u1067?, \u1042?\u1050?\u1051?\u1070?\u1063?\u1040?\u1071? \u1055?\u1054?\u1058?\u1045?\u1056?\u1070? \u1044?\u1040?\u1053?\u1053?\u1067?\u1061?, \u1053?\u1045?\u1058?\u1054?\u1063?\u1053?\u1054?\u1057?\u1058?\u1068? \u1044?\u1040?\u1053?\u1053?\u1067?\u1061?, \u1059?\u1041?\u1067?\u1058?\u1050?\u1048? \u1042?\u1040?\u1064?\u1048? \u1048?\u1051?\u1048? \u1058?\u1056?\u1045?\u1058?\u1068?\u1048?\u1061? \u1051?\u1048?\u1062?, \u1048?\u1051?\u1048? \u1053?\u1045?\u1057?\u1055?\u1054?\u1057?\u1054?\u1041?\u1053?\u1054?\u1057?\u1058?\u1068? \u1055?\u1056?\u1054?\u1043?\u1056?\u1040?\u1052?\u1052?\u1067? \u1056?\u1040?\u1041?\u1054?\u1058?\u1040?\u1058?\u1068? \u1057? \u1044?\u1056?\u1059?\u1043?\u1048?\u1052?\u1048? \u1055?\u1056?\u1054?\u1043?\u1056?\u1040?\u1052?\u1052?\u1040?\u1052?\u1048?, \u1044?\u1040?\u1046?\u1045? \u1045?\u1057?\u1051?\u1048? \u1058?\u1040?\u1050?\u1054?\u1049? \u1055?\u1056?\u1040?\u1042?\u1054?\u1054?\u1041?\u1051?\u1040?\u1044?\u1040?\u1058?\u1045?\u1051?\u1068? \u1048?\u1051?\u1048? \u1044?\u1056?\u1059?\u1043?\u1040?\u1071? \u1057?\u1058?\u1054?\u1056?\u1054?\u1053?\u1040? \u1041?\u1067?\u1051?\u1048? \u1059?\u1042?\u1045?\u1044?\u1054?\u1052?\u1051?\u1045?\u1053?\u1067? \u1054? \u1042?\u1054?\u1047?\u1052?\u1054?\u1046?\u1053?\u1054?\u1057?\u1058?\u1048? \u1058?\u1040?\u1050?\u1054?\u1043?\u1054? \u1059?\u1065?\u1045?\u1056?\u1041?\u1040?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 17. \u1058?\u1086?\u1083?\u1082?\u1086?\u1074?\u1072?\u1085?\u1080?\u1077? \u1088?\u1072?\u1079?\u1076?\u1077?\u1083?\u1086?\u1074? 15 \u1080? 16.\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1086?\u1090?\u1082?\u1072?\u1079? \u1086?\u1090? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1080? \u1080? \u1086?\u1075?\u1088?\u1072?\u1085?\u1080?\u1095?\u1077?\u1085?\u1080?\u1077? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080?, \u1087?\u1088?\u1080?\u1074?\u1077?\u1076?\u1105?\u1085?\u1085?\u1099?\u1077? \u1074?\u1099?\u1096?\u1077?, \u1085?\u1077? \u1084?\u1086?\u1075?\u1091?\u1090? \u1080?\u1084?\u1077?\u1090?\u1100? \u1087?\u1086?\u1083?\u1085?\u1086?\u1081? \u1102?\u1088?\u1080?\u1076?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1081? \u1089?\u1080?\u1083?\u1099? \u1089?\u1086?\u1075?\u1083?\u1072?\u1089?\u1085?\u1086? \u1089?\u1074?\u1086?\u1080?\u1084? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1084?, \u1089?\u1091?\u1076?\u1099? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1084?\u1077?\u1089?\u1090?\u1085?\u1086?\u1077? \u1087?\u1088?\u1072?\u1074?\u1086?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1077? \u1085?\u1072?\u1080?\u1073?\u1086?\u1083?\u1077?\u1077? \u1073?\u1083?\u1080?\u1079?\u1082?\u1086? \u1082? \u1072?\u1073?\u1089?\u1086?\u1083?\u1102?\u1090?\u1085?\u1086?\u1084?\u1091? \u1086?\u1090?\u1082?\u1072?\u1079?\u1091? \u1086?\u1090? \u1074?\u1089?\u1077?\u1081? \u1075?\u1088?\u1072?\u1078?\u1076?\u1072?\u1085?\u1089?\u1082?\u1086?\u1081? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080? \u1074? \u1089?\u1074?\u1103?\u1079?\u1080? \u1089? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1086?\u1081?, \u1077?\u1089?\u1083?\u1080? \u1090?\u1086?\u1083?\u1100?\u1082?\u1086? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1103? \u1080?\u1083?\u1080? \u1087?\u1088?\u1080?\u1085?\u1103?\u1090?\u1080?\u1077? \u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1077?\u1085?\u1085?\u1086?\u1089?\u1090?\u1080? \u1085?\u1077? \u1089?\u1086?\u1087?\u1088?\u1086?\u1074?\u1086?\u1078?\u1076?\u1072?\u1077?\u1090? \u1082?\u1086?\u1087?\u1080?\u1102? \u1055?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1079?\u1072? \u1087?\u1083?\u1072?\u1090?\u1091?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs26 \u1050?\u1054?\u1053?\u1045?\u1062? \u1059?\u1057?\u1051?\u1054?\u1042?\u1048?\u1049?\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs24 \u1050?\u1072?\u1082? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1080?\u1090?\u1100? \u1101?\u1090?\u1080? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103? \u1082? \u1074?\u1072?\u1096?\u1080?\u1084? \u1085?\u1086?\u1074?\u1099?\u1084? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072?\u1084?\b0 \par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1074?\u1099? \u1088?\u1072?\u1079?\u1088?\u1072?\u1073?\u1072?\u1090?\u1099?\u1074?\u1072?\u1077?\u1090?\u1077? \u1085?\u1086?\u1074?\u1091?\u1102? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091? \u1080? \u1093?\u1086?\u1090?\u1080?\u1090?\u1077?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1086?\u1085?\u1072? \u1073?\u1099?\u1083?\u1072? \u1084?\u1072?\u1082?\u1089?\u1080?\u1084?\u1072?\u1083?\u1100?\u1085?\u1086? \u1087?\u1086?\u1083?\u1077?\u1079?\u1085?\u1086?\u1081? \u1076?\u1083?\u1103? \u1086?\u1073?\u1097?\u1077?\u1089?\u1090?\u1074?\u1072?, \u1083?\u1091?\u1095?\u1096?\u1080?\u1081? \u1089?\u1087?\u1086?\u1089?\u1086?\u1073? \u1076?\u1086?\u1073?\u1080?\u1090?\u1100?\u1089?\u1103? \u1101?\u1090?\u1086?\u1075?\u1086? \u1089?\u1086?\u1089?\u1090?\u1086?\u1080?\u1090? \u1074? \u1090?\u1086?\u1084?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1089?\u1076?\u1077?\u1083?\u1072?\u1090?\u1100? \u1077?\u1105? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1099?\u1084? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1099?\u1084? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077?\u1084?, \u1082?\u1086?\u1090?\u1086?\u1088?\u1086?\u1077? \u1082?\u1072?\u1078?\u1076?\u1099?\u1081? \u1084?\u1086?\u1078?\u1077?\u1090? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1085?\u1072? \u1101?\u1090?\u1080?\u1093? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1044?\u1083?\u1103? \u1101?\u1090?\u1086?\u1075?\u1086? \u1087?\u1088?\u1080?\u1083?\u1086?\u1078?\u1080?\u1090?\u1077? \u1082? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077? \u1089?\u1083?\u1077?\u1076?\u1091?\u1102?\u1097?\u1080?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103?. \u1041?\u1077?\u1079?\u1086?\u1087?\u1072?\u1089?\u1085?\u1077?\u1077? \u1074?\u1089?\u1077?\u1075?\u1086? \u1087?\u1088?\u1080?\u1082?\u1088?\u1077?\u1087?\u1080?\u1090?\u1100? \u1080?\u1093? \u1082? \u1085?\u1072?\u1095?\u1072?\u1083?\u1091? \u1082?\u1072?\u1078?\u1076?\u1086?\u1075?\u1086? \u1080?\u1089?\u1093?\u1086?\u1076?\u1085?\u1086?\u1075?\u1086? \u1092?\u1072?\u1081?\u1083?\u1072?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1085?\u1072?\u1080?\u1073?\u1086?\u1083?\u1077?\u1077? \u1101?\u1092?\u1092?\u1077?\u1082?\u1090?\u1080?\u1074?\u1085?\u1086? \u1089?\u1086?\u1086?\u1073?\u1097?\u1080?\u1090?\u1100? \u1086?\u1073? \u1086?\u1090?\u1089?\u1091?\u1090?\u1089?\u1090?\u1074?\u1080?\u1080? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1080?. \u1050?\u1072?\u1078?\u1076?\u1099?\u1081? \u1092?\u1072?\u1081?\u1083? \u1076?\u1086?\u1083?\u1078?\u1077?\u1085? \u1089?\u1086?\u1076?\u1077?\u1088?\u1078?\u1072?\u1090?\u1100? \u1082?\u1072?\u1082? \u1084?\u1080?\u1085?\u1080?\u1084?\u1091?\u1084? \u1089?\u1090?\u1088?\u1086?\u1082?\u1091? \u1089? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1080?\u1084? \u1087?\u1088?\u1072?\u1074?\u1086?\u1084? \u1080? \u1089?\u1089?\u1099?\u1083?\u1082?\u1091? \u1085?\u1072? \u1087?\u1086?\u1083?\u1085?\u1099?\u1081? \u1090?\u1077?\u1082?\u1089?\u1090? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1103?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 <\u1086?\u1076?\u1085?\u1072? \u1089?\u1090?\u1088?\u1086?\u1082?\u1072? \u1089? \u1085?\u1072?\u1079?\u1074?\u1072?\u1085?\u1080?\u1077?\u1084? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1080? \u1082?\u1088?\u1072?\u1090?\u1082?\u1080?\u1084? \u1086?\u1087?\u1080?\u1089?\u1072?\u1085?\u1080?\u1077?\u1084? \u1090?\u1086?\u1075?\u1086?, \u1095?\u1090?\u1086? \u1086?\u1085?\u1072? \u1076?\u1077?\u1083?\u1072?\u1077?\u1090?>\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 Copyright \u169? <\u1075?\u1086?\u1076?> <\u1080?\u1084?\u1103? \u1072?\u1074?\u1090?\u1086?\u1088?\u1072?>\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1069?\u1090?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1099?\u1084? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1099?\u1084? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077?\u1084?. \u1042?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1077?\u1105? \u1080? \u1080?\u1079?\u1084?\u1077?\u1085?\u1103?\u1090?\u1100? \u1077?\u1105? \u1085?\u1072? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093? GNU General Public License, \u1086?\u1087?\u1091?\u1073?\u1083?\u1080?\u1082?\u1086?\u1074?\u1072?\u1085?\u1085?\u1086?\u1081? Free Software Foundation, \u1083?\u1080?\u1073?\u1086? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080? 3 \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?, \u1083?\u1080?\u1073?\u1086?, \u1087?\u1086? \u1074?\u1072?\u1096?\u1077?\u1084?\u1091? \u1074?\u1099?\u1073?\u1086?\u1088?\u1091?, \u1083?\u1102?\u1073?\u1086?\u1081? \u1073?\u1086?\u1083?\u1077?\u1077? \u1087?\u1086?\u1079?\u1076?\u1085?\u1077?\u1081? \u1074?\u1077?\u1088?\u1089?\u1080?\u1080?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1069?\u1090?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1077?\u1090?\u1089?\u1103? \u1074? \u1085?\u1072?\u1076?\u1077?\u1078?\u1076?\u1077?, \u1095?\u1090?\u1086? \u1086?\u1085?\u1072? \u1073?\u1091?\u1076?\u1077?\u1090? \u1087?\u1086?\u1083?\u1077?\u1079?\u1085?\u1086?\u1081?, \u1085?\u1086? \u1041?\u1045?\u1047? \u1050?\u1040?\u1050?\u1054?\u1049?-\u1051?\u1048?\u1041?\u1054? \u1043?\u1040?\u1056?\u1040?\u1053?\u1058?\u1048?\u1048?, \u1076?\u1072?\u1078?\u1077? \u1073?\u1077?\u1079? \u1087?\u1086?\u1076?\u1088?\u1072?\u1079?\u1091?\u1084?\u1077?\u1074?\u1072?\u1077?\u1084?\u1086?\u1081? \u1075?\u1072?\u1088?\u1072?\u1085?\u1090?\u1080?\u1080? \u1058?\u1054?\u1042?\u1040?\u1056?\u1053?\u1054?\u1049? \u1055?\u1056?\u1048?\u1043?\u1054?\u1044?\u1053?\u1054?\u1057?\u1058?\u1048? \u1080?\u1083?\u1080? \u1055?\u1056?\u1048?\u1043?\u1054?\u1044?\u1053?\u1054?\u1057?\u1058?\u1048? \u1044?\u1051?\u1071? \u1054?\u1055?\u1056?\u1045?\u1044?\u1045?\u1051?\u1025?\u1053?\u1053?\u1054?\u1049? \u1062?\u1045?\u1051?\u1048?. \u1055?\u1086?\u1076?\u1088?\u1086?\u1073?\u1085?\u1077?\u1077? \u1089?\u1084?\u1086?\u1090?\u1088?\u1080?\u1090?\u1077? GNU General Public License.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1042?\u1099? \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1073?\u1099?\u1083?\u1080? \u1087?\u1086?\u1083?\u1091?\u1095?\u1080?\u1090?\u1100? \u1082?\u1086?\u1087?\u1080?\u1102? GNU General Public License \u1074?\u1084?\u1077?\u1089?\u1090?\u1077? \u1089? \u1101?\u1090?\u1086?\u1081? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1086?\u1081?. \u1045?\u1089?\u1083?\u1080? \u1085?\u1077?\u1090?, \u1089?\u1084?\u1086?\u1090?\u1088?\u1080?\u1090?\u1077? .\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1058?\u1072?\u1082?\u1078?\u1077? \u1076?\u1086?\u1073?\u1072?\u1074?\u1100?\u1090?\u1077? \u1080?\u1085?\u1092?\u1086?\u1088?\u1084?\u1072?\u1094?\u1080?\u1102? \u1086? \u1090?\u1086?\u1084?, \u1082?\u1072?\u1082? \u1089?\u1074?\u1103?\u1079?\u1072?\u1090?\u1100?\u1089?\u1103? \u1089? \u1074?\u1072?\u1084?\u1080? \u1087?\u1086? \u1101?\u1083?\u1077?\u1082?\u1090?\u1088?\u1086?\u1085?\u1085?\u1086?\u1081? \u1080? \u1086?\u1073?\u1099?\u1095?\u1085?\u1086?\u1081? \u1087?\u1086?\u1095?\u1090?\u1077?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1074?\u1079?\u1072?\u1080?\u1084?\u1086?\u1076?\u1077?\u1081?\u1089?\u1090?\u1074?\u1091?\u1077?\u1090? \u1089? \u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1077?\u1083?\u1103?\u1084?\u1080? \u1095?\u1077?\u1088?\u1077?\u1079? \u1090?\u1077?\u1088?\u1084?\u1080?\u1085?\u1072?\u1083?, \u1089?\u1076?\u1077?\u1083?\u1072?\u1081?\u1090?\u1077? \u1090?\u1072?\u1082?, \u1095?\u1090?\u1086?\u1073?\u1099? \u1087?\u1088?\u1080? \u1079?\u1072?\u1087?\u1091?\u1089?\u1082?\u1077? \u1074? \u1080?\u1085?\u1090?\u1077?\u1088?\u1072?\u1082?\u1090?\u1080?\u1074?\u1085?\u1086?\u1084? \u1088?\u1077?\u1078?\u1080?\u1084?\u1077? \u1086?\u1085?\u1072? \u1074?\u1099?\u1074?\u1086?\u1076?\u1080?\u1083?\u1072? \u1082?\u1086?\u1088?\u1086?\u1090?\u1082?\u1086?\u1077? \u1091?\u1074?\u1077?\u1076?\u1086?\u1084?\u1083?\u1077?\u1085?\u1080?\u1077? \u1074?\u1088?\u1086?\u1076?\u1077? \u1101?\u1090?\u1086?\u1075?\u1086?:\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 <\u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072?> Copyright \u169? <\u1075?\u1086?\u1076?> <\u1080?\u1084?\u1103? \u1072?\u1074?\u1090?\u1086?\u1088?\u1072?>\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1069?\u1090?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1087?\u1086?\u1089?\u1090?\u1072?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1041?\u1045?\u1047? \u1050?\u1040?\u1050?\u1054?\u1049?-\u1051?\u1048?\u1041?\u1054? \u1043?\u1040?\u1056?\u1040?\u1053?\u1058?\u1048?\u1048?. \u1063?\u1090?\u1086?\u1073?\u1099? \u1091?\u1074?\u1080?\u1076?\u1077?\u1090?\u1100? \u1087?\u1086?\u1076?\u1088?\u1086?\u1073?\u1085?\u1086?\u1089?\u1090?\u1080?, \u1074?\u1074?\u1077?\u1076?\u1080?\u1090?\u1077? `show w`. \u1069?\u1090?\u1086? \u1089?\u1074?\u1086?\u1073?\u1086?\u1076?\u1085?\u1086?\u1077? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1085?\u1086?\u1077? \u1086?\u1073?\u1077?\u1089?\u1087?\u1077?\u1095?\u1077?\u1085?\u1080?\u1077?, \u1080? \u1074?\u1099? \u1084?\u1086?\u1078?\u1077?\u1090?\u1077? \u1088?\u1072?\u1089?\u1087?\u1088?\u1086?\u1089?\u1090?\u1088?\u1072?\u1085?\u1103?\u1090?\u1100? \u1077?\u1075?\u1086? \u1085?\u1072? \u1086?\u1087?\u1088?\u1077?\u1076?\u1077?\u1083?\u1105?\u1085?\u1085?\u1099?\u1093? \u1091?\u1089?\u1083?\u1086?\u1074?\u1080?\u1103?\u1093?. \u1063?\u1090?\u1086?\u1073?\u1099? \u1091?\u1074?\u1080?\u1076?\u1077?\u1090?\u1100? \u1087?\u1086?\u1076?\u1088?\u1086?\u1073?\u1085?\u1086?\u1089?\u1090?\u1080?, \u1074?\u1074?\u1077?\u1076?\u1080?\u1090?\u1077? `show c`.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1043?\u1080?\u1087?\u1086?\u1090?\u1077?\u1090?\u1080?\u1095?\u1077?\u1089?\u1082?\u1080?\u1077? \u1082?\u1086?\u1084?\u1072?\u1085?\u1076?\u1099? `show w` \u1080? `show c` \u1076?\u1086?\u1083?\u1078?\u1085?\u1099? \u1087?\u1086?\u1082?\u1072?\u1079?\u1099?\u1074?\u1072?\u1090?\u1100? \u1089?\u1086?\u1086?\u1090?\u1074?\u1077?\u1090?\u1089?\u1090?\u1074?\u1091?\u1102?\u1097?\u1080?\u1077? \u1095?\u1072?\u1089?\u1090?\u1080? GNU General Public License. \u1050?\u1086?\u1085?\u1077?\u1095?\u1085?\u1086?, \u1082?\u1086?\u1084?\u1072?\u1085?\u1076?\u1099? \u1074?\u1072?\u1096?\u1077?\u1081? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099? \u1084?\u1086?\u1075?\u1091?\u1090? \u1085?\u1072?\u1079?\u1099?\u1074?\u1072?\u1090?\u1100?\u1089?\u1103? \u1080?\u1085?\u1072?\u1095?\u1077?. \u1044?\u1083?\u1103? \u1075?\u1088?\u1072?\u1092?\u1080?\u1095?\u1077?\u1089?\u1082?\u1086?\u1075?\u1086? \u1080?\u1085?\u1090?\u1077?\u1088?\u1092?\u1077?\u1081?\u1089?\u1072? \u1084?\u1086?\u1078?\u1085?\u1086? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1086?\u1074?\u1072?\u1090?\u1100? \u1086?\u1082?\u1085?\u1086? \u171?\u1054? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1077?\u187?.\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 \u1045?\u1089?\u1083?\u1080? \u1085?\u1077?\u1086?\u1073?\u1093?\u1086?\u1076?\u1080?\u1084?\u1086?, \u1090?\u1072?\u1082?\u1078?\u1077? \u1087?\u1086?\u1087?\u1088?\u1086?\u1089?\u1080?\u1090?\u1077? \u1074?\u1072?\u1096?\u1077?\u1075?\u1086? \u1088?\u1072?\u1073?\u1086?\u1090?\u1086?\u1076?\u1072?\u1090?\u1077?\u1083?\u1103? \u1080?\u1083?\u1080? \u1091?\u1095?\u1077?\u1073?\u1085?\u1086?\u1077? \u1079?\u1072?\u1074?\u1077?\u1076?\u1077?\u1085?\u1080?\u1077? \u1087?\u1086?\u1076?\u1087?\u1080?\u1089?\u1072?\u1090?\u1100? \u1086?\u1090?\u1082?\u1072?\u1079? \u1086?\u1090? \u1072?\u1074?\u1090?\u1086?\u1088?\u1089?\u1082?\u1080?\u1093? \u1087?\u1088?\u1072?\u1074? \u1085?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091?. \u1055?\u1086?\u1076?\u1088?\u1086?\u1073?\u1085?\u1077?\u1077? \u1086?\u1073? \u1101?\u1090?\u1086?\u1084? \u1080? \u1086? \u1087?\u1088?\u1080?\u1084?\u1077?\u1085?\u1077?\u1085?\u1080?\u1080? GNU GPL \u1089?\u1084?\u1086?\u1090?\u1088?\u1080?\u1090?\u1077? .\par} +{\pard \ql \f0 \sa180 \li0 \fi0 \fs20 GNU General Public License \u1085?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1072?\u1077?\u1090? \u1074?\u1082?\u1083?\u1102?\u1095?\u1072?\u1090?\u1100? \u1074?\u1072?\u1096?\u1091? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1091? \u1074? \u1087?\u1088?\u1086?\u1087?\u1088?\u1080?\u1077?\u1090?\u1072?\u1088?\u1085?\u1099?\u1077? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1099?. \u1045?\u1089?\u1083?\u1080? \u1074?\u1072?\u1096?\u1072? \u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?\u1072? \u1103?\u1074?\u1083?\u1103?\u1077?\u1090?\u1089?\u1103? \u1073?\u1080?\u1073?\u1083?\u1080?\u1086?\u1090?\u1077?\u1082?\u1086?\u1081? \u1087?\u1086?\u1076?\u1087?\u1088?\u1086?\u1075?\u1088?\u1072?\u1084?\u1084?, \u1074?\u1086?\u1079?\u1084?\u1086?\u1078?\u1085?\u1086?, \u1073?\u1091?\u1076?\u1077?\u1090? \u1087?\u1086?\u1083?\u1077?\u1079?\u1085?\u1077?\u1077? \u1088?\u1072?\u1079?\u1088?\u1077?\u1096?\u1080?\u1090?\u1100? \u1089?\u1074?\u1103?\u1079?\u1099?\u1074?\u1072?\u1085?\u1080?\u1077? \u1087?\u1088?\u1086?\u1087?\u1088?\u1080?\u1077?\u1090?\u1072?\u1088?\u1085?\u1099?\u1093? \u1087?\u1088?\u1080?\u1083?\u1086?\u1078?\u1077?\u1085?\u1080?\u1081? \u1089? \u1073?\u1080?\u1073?\u1083?\u1080?\u1086?\u1090?\u1077?\u1082?\u1086?\u1081?. \u1042? \u1090?\u1072?\u1082?\u1086?\u1084? \u1089?\u1083?\u1091?\u1095?\u1072?\u1077? \u1080?\u1089?\u1087?\u1086?\u1083?\u1100?\u1079?\u1091?\u1081?\u1090?\u1077? GNU Lesser General Public License \u1074?\u1084?\u1077?\u1089?\u1090?\u1086? \u1101?\u1090?\u1086?\u1081? \u1051?\u1080?\u1094?\u1077?\u1085?\u1079?\u1080?\u1080?. \u1057?\u1085?\u1072?\u1095?\u1072?\u1083?\u1072? \u1087?\u1088?\u1086?\u1095?\u1080?\u1090?\u1072?\u1081?\u1090?\u1077? .\par} +} \ No newline at end of file diff --git a/Installer/Languages/English.isl b/Installer/Languages/English.isl new file mode 100644 index 000000000..fe360b84b --- /dev/null +++ b/Installer/Languages/English.isl @@ -0,0 +1,414 @@ +; *** Inno Setup version 6.5.0+ English messages *** +; +; To download user-contributed translations of this file, go to: +; https://jrsoftware.org/files/istrans/ +; +; Note: When translating this text, do not add periods (.) to the end of +; messages that didn't have them already, because on those messages Inno +; Setup adds the periods automatically (appending a period would result in +; two periods being displayed). + +[LangOptions] +; The following three entries are very important. Be sure to read and +; understand the '[LangOptions] section' topic in the help file. +LanguageName=English +LanguageID=$0409 +; LanguageCodePage should always be set if possible, even if this file is Unicode +; For English it's set to zero anyway because English only uses ASCII characters +LanguageCodePage=0 +; If the language you are translating to requires special font faces or +; sizes, uncomment any of the following entries and change them accordingly. +;DialogFontName= +;DialogFontSize=9 +;DialogFontBaseScaleWidth=7 +;DialogFontBaseScaleHeight=15 +;WelcomeFontName=Segoe UI +;WelcomeFontSize=14 + +[Messages] + +; *** Application titles +SetupAppTitle=Setup +SetupWindowTitle=Setup - %1 +UninstallAppTitle=Uninstall +UninstallAppFullTitle=%1 Uninstall + +; *** Misc. common +InformationTitle=Information +ConfirmTitle=Confirm +ErrorTitle=Error + +; *** SetupLdr messages +SetupLdrStartupMessage=This will install %1. Do you wish to continue? +LdrCannotCreateTemp=Unable to create a temporary file. Setup aborted +LdrCannotExecTemp=Unable to execute file in the temporary directory. Setup aborted +HelpTextNote= + +; *** Startup error messages +LastErrorMessage=%1.%n%nError %2: %3 +SetupFileMissing=The file %1 is missing from the installation directory. Please correct the problem or obtain a new copy of the program. +SetupFileCorrupt=The setup files are corrupted. Please obtain a new copy of the program. +SetupFileCorruptOrWrongVer=The setup files are corrupted, or are incompatible with this version of Setup. Please correct the problem or obtain a new copy of the program. +InvalidParameter=An invalid parameter was passed on the command line:%n%n%1 +SetupAlreadyRunning=Setup is already running. +WindowsVersionNotSupported=This program does not support the version of Windows your computer is running. +WindowsServicePackRequired=This program requires %1 Service Pack %2 or later. +NotOnThisPlatform=This program will not run on %1. +OnlyOnThisPlatform=This program must be run on %1. +OnlyOnTheseArchitectures=This program can only be installed on versions of Windows designed for the following processor architectures:%n%n%1 +WinVersionTooLowError=This program requires %1 version %2 or later. +WinVersionTooHighError=This program cannot be installed on %1 version %2 or later. +AdminPrivilegesRequired=You must be logged in as an administrator when installing this program. +PowerUserPrivilegesRequired=You must be logged in as an administrator or as a member of the Power Users group when installing this program. +SetupAppRunningError=Setup has detected that %1 is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit. +UninstallAppRunningError=Uninstall has detected that %1 is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit. + +; *** Startup questions +PrivilegesRequiredOverrideTitle=Select Setup Install Mode +PrivilegesRequiredOverrideInstruction=Select install mode +PrivilegesRequiredOverrideText1=%1 can be installed for all users (requires administrative privileges), or for you only. +PrivilegesRequiredOverrideText2=%1 can be installed for you only, or for all users (requires administrative privileges). +PrivilegesRequiredOverrideAllUsers=Install for &all users +PrivilegesRequiredOverrideAllUsersRecommended=Install for &all users (recommended) +PrivilegesRequiredOverrideCurrentUser=Install for &me only +PrivilegesRequiredOverrideCurrentUserRecommended=Install for &me only (recommended) + +; *** Misc. errors +ErrorCreatingDir=Setup was unable to create the directory "%1" +ErrorTooManyFilesInDir=Unable to create a file in the directory "%1" because it contains too many files + +; *** Setup common messages +ExitSetupTitle=Exit Setup +ExitSetupMessage=Setup is not complete. If you exit now, the program will not be installed.%n%nYou may run Setup again at another time to complete the installation.%n%nExit Setup? +AboutSetupMenuItem=&About Setup... +AboutSetupTitle=About Setup +AboutSetupMessage=%1 version %2%n%3%n%n%1 home page:%n%4 +AboutSetupNote= +TranslatorNote= + +; *** Buttons +ButtonBack=< &Back +ButtonNext=&Next > +ButtonInstall=&Install +ButtonOK=OK +ButtonCancel=Cancel +ButtonYes=&Yes +ButtonYesToAll=Yes to &All +ButtonNo=&No +ButtonNoToAll=N&o to All +ButtonFinish=&Finish +ButtonBrowse=&Browse... +ButtonWizardBrowse=B&rowse... +ButtonNewFolder=&Make New Folder + +; *** "Select Language" dialog messages +SelectLanguageTitle=Select Setup Language +SelectLanguageLabel=Select the language to use during the installation. + +; *** Common wizard text +ClickNext=Click Next to continue, or Cancel to exit Setup. +BeveledLabel= +BrowseDialogTitle=Browse For Folder +BrowseDialogLabel=Select a folder in the list below, then click OK. +NewFolderName=New Folder + +; *** "Welcome" wizard page +WelcomeLabel1=Welcome to the [name] Setup Wizard +WelcomeLabel2=This will install [name/ver] on your computer.%n%nIt is recommended that you close all other applications before continuing. + +; *** "Password" wizard page +WizardPassword=Password +PasswordLabel1=This installation is password protected. +PasswordLabel3=Please provide the password, then click Next to continue. Passwords are case-sensitive. +PasswordEditLabel=&Password: +IncorrectPassword=The password you entered is not correct. Please try again. + +; *** "License Agreement" wizard page +WizardLicense=License Agreement +LicenseLabel=Please read the following important information before continuing. +LicenseLabel3=Please read the following License Agreement. You must accept the terms of this agreement before continuing with the installation. +LicenseAccepted=I &accept the agreement +LicenseNotAccepted=I &do not accept the agreement + +; *** "Information" wizard pages +WizardInfoBefore=Information +InfoBeforeLabel=Please read the following important information before continuing. +InfoBeforeClickLabel=When you are ready to continue with Setup, click Next. +WizardInfoAfter=Information +InfoAfterLabel=Please read the following important information before continuing. +InfoAfterClickLabel=When you are ready to continue with Setup, click Next. + +; *** "User Information" wizard page +WizardUserInfo=User Information +UserInfoDesc=Please enter your information. +UserInfoName=&User Name: +UserInfoOrg=&Organization: +UserInfoSerial=&Serial Number: +UserInfoNameRequired=You must enter a name. + +; *** "Select Destination Location" wizard page +WizardSelectDir=Select Destination Location +SelectDirDesc=Where should [name] be installed? +SelectDirLabel3=Setup will install [name] into the following folder. +SelectDirBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse. +DiskSpaceGBLabel=At least [gb] GB of free disk space is required. +DiskSpaceMBLabel=At least [mb] MB of free disk space is required. +CannotInstallToNetworkDrive=Setup cannot install to a network drive. +CannotInstallToUNCPath=Setup cannot install to a UNC path. +InvalidPath=You must enter a full path with drive letter; for example:%n%nC:\APP%n%nor a UNC path in the form:%n%n\\server\share +InvalidDrive=The drive or UNC share you selected does not exist or is not accessible. Please select another. +DiskSpaceWarningTitle=Not Enough Disk Space +DiskSpaceWarning=Setup requires at least %1 KB of free space to install, but the selected drive only has %2 KB available.%n%nDo you want to continue anyway? +DirNameTooLong=The folder name or path is too long. +InvalidDirName=The folder name is not valid. +BadDirName32=Folder names cannot include any of the following characters:%n%n%1 +DirExistsTitle=Folder Exists +DirExists=The folder:%n%n%1%n%nalready exists. Would you like to install to that folder anyway? +DirDoesntExistTitle=Folder Does Not Exist +DirDoesntExist=The folder:%n%n%1%n%ndoes not exist. Would you like the folder to be created? + +; *** "Select Components" wizard page +WizardSelectComponents=Select Components +SelectComponentsDesc=Which components should be installed? +SelectComponentsLabel2=Select the components you want to install; clear the components you do not want to install. Click Next when you are ready to continue. +FullInstallation=Full installation +; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language) +CompactInstallation=Compact installation +CustomInstallation=Custom installation +NoUninstallWarningTitle=Components Exist +NoUninstallWarning=Setup has detected that the following components are already installed on your computer:%n%n%1%n%nDeselecting these components will not uninstall them.%n%nWould you like to continue anyway? +ComponentSize1=%1 KB +ComponentSize2=%1 MB +ComponentsDiskSpaceGBLabel=Current selection requires at least [gb] GB of disk space. +ComponentsDiskSpaceMBLabel=Current selection requires at least [mb] MB of disk space. + +; *** "Select Additional Tasks" wizard page +WizardSelectTasks=Select Additional Tasks +SelectTasksDesc=Which additional tasks should be performed? +SelectTasksLabel2=Select the additional tasks you would like Setup to perform while installing [name], then click Next. + +; *** "Select Start Menu Folder" wizard page +WizardSelectProgramGroup=Select Start Menu Folder +SelectStartMenuFolderDesc=Where should Setup place the program's shortcuts? +SelectStartMenuFolderLabel3=Setup will create the program's shortcuts in the following Start Menu folder. +SelectStartMenuFolderBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse. +MustEnterGroupName=You must enter a folder name. +GroupNameTooLong=The folder name or path is too long. +InvalidGroupName=The folder name is not valid. +BadGroupName=The folder name cannot include any of the following characters:%n%n%1 +NoProgramGroupCheck2=&Don't create a Start Menu folder + +; *** "Ready to Install" wizard page +WizardReady=Ready to Install +ReadyLabel1=Setup is now ready to begin installing [name] on your computer. +ReadyLabel2a=Click Install to continue with the installation, or click Back if you want to review or change any settings. +ReadyLabel2b=Click Install to continue with the installation. +ReadyMemoUserInfo=User information: +ReadyMemoDir=Destination location: +ReadyMemoType=Setup type: +ReadyMemoComponents=Selected components: +ReadyMemoGroup=Start Menu folder: +ReadyMemoTasks=Additional tasks: + +; *** TDownloadWizardPage wizard page and DownloadTemporaryFile +DownloadingLabel2=Downloading files... +ButtonStopDownload=&Stop download +StopDownload=Are you sure you want to stop the download? +ErrorDownloadAborted=Download aborted +ErrorDownloadFailed=Download failed: %1 %2 +ErrorDownloadSizeFailed=Getting size failed: %1 %2 +ErrorProgress=Invalid progress: %1 of %2 +ErrorFileSize=Invalid file size: expected %1, found %2 + +; *** TExtractionWizardPage wizard page and ExtractArchive +ExtractingLabel=Extracting files... +ButtonStopExtraction=&Stop extraction +StopExtraction=Are you sure you want to stop the extraction? +ErrorExtractionAborted=Extraction aborted +ErrorExtractionFailed=Extraction failed: %1 + +; *** Archive extraction failure details +ArchiveIncorrectPassword=The password is incorrect +ArchiveIsCorrupted=The archive is corrupted +ArchiveUnsupportedFormat=The archive format is unsupported + +; *** "Preparing to Install" wizard page +WizardPreparing=Preparing to Install +PreparingDesc=Setup is preparing to install [name] on your computer. +PreviousInstallNotCompleted=The installation/removal of a previous program was not completed. You will need to restart your computer to complete that installation.%n%nAfter restarting your computer, run Setup again to complete the installation of [name]. +CannotContinue=Setup cannot continue. Please click Cancel to exit. +ApplicationsFound=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications. +ApplicationsFound2=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications. After the installation has completed, Setup will attempt to restart the applications. +CloseApplications=&Automatically close the applications +DontCloseApplications=&Do not close the applications +ErrorCloseApplications=Setup was unable to automatically close all applications. It is recommended that you close all applications using files that need to be updated by Setup before continuing. +PrepareToInstallNeedsRestart=Setup must restart your computer. After restarting your computer, run Setup again to complete the installation of [name].%n%nWould you like to restart now? + +; *** "Installing" wizard page +WizardInstalling=Installing +InstallingLabel=Please wait while Setup installs [name] on your computer. + +; *** "Setup Completed" wizard page +FinishedHeadingLabel=Completing the [name] Setup Wizard +FinishedLabelNoIcons=Setup has finished installing [name] on your computer. +FinishedLabel=Setup has finished installing [name] on your computer. The application may be launched by selecting the installed shortcuts. +ClickFinish=Click Finish to exit Setup. +FinishedRestartLabel=To complete the installation of [name], Setup must restart your computer. Would you like to restart now? +FinishedRestartMessage=To complete the installation of [name], Setup must restart your computer.%n%nWould you like to restart now? +ShowReadmeCheck=Yes, I would like to view the README file +YesRadio=&Yes, restart the computer now +NoRadio=&No, I will restart the computer later +; used for example as 'Run MyProg.exe' +RunEntryExec=Run %1 +; used for example as 'View Readme.txt' +RunEntryShellExec=View %1 + +; *** "Setup Needs the Next Disk" stuff +ChangeDiskTitle=Setup Needs the Next Disk +SelectDiskLabel2=Please insert Disk %1 and click OK.%n%nIf the files on this disk can be found in a folder other than the one displayed below, enter the correct path or click Browse. +PathLabel=&Path: +FileNotInDir2=The file "%1" could not be located in "%2". Please insert the correct disk or select another folder. +SelectDirectoryLabel=Please specify the location of the next disk. + +; *** Installation phase messages +SetupAborted=Setup was not completed.%n%nPlease correct the problem and run Setup again. +AbortRetryIgnoreSelectAction=Select action +AbortRetryIgnoreRetry=&Try again +AbortRetryIgnoreIgnore=&Ignore the error and continue +AbortRetryIgnoreCancel=Cancel installation +RetryCancelSelectAction=Select action +RetryCancelRetry=&Try again +RetryCancelCancel=Cancel + +; *** Installation status messages +StatusClosingApplications=Closing applications... +StatusCreateDirs=Creating directories... +StatusExtractFiles=Extracting files... +StatusDownloadFiles=Downloading files... +StatusCreateIcons=Creating shortcuts... +StatusCreateIniEntries=Creating INI entries... +StatusCreateRegistryEntries=Creating registry entries... +StatusRegisterFiles=Registering files... +StatusSavingUninstall=Saving uninstall information... +StatusRunProgram=Finishing installation... +StatusRestartingApplications=Restarting applications... +StatusRollback=Rolling back changes... + +; *** Misc. errors +ErrorInternal2=Internal error: %1 +ErrorFunctionFailedNoCode=%1 failed +ErrorFunctionFailed=%1 failed; code %2 +ErrorFunctionFailedWithMessage=%1 failed; code %2.%n%3 +ErrorExecutingProgram=Unable to execute file:%n%1 + +; *** Registry errors +ErrorRegOpenKey=Error opening registry key:%n%1\%2 +ErrorRegCreateKey=Error creating registry key:%n%1\%2 +ErrorRegWriteKey=Error writing to registry key:%n%1\%2 + +; *** INI errors +ErrorIniEntry=Error creating INI entry in file "%1". + +; *** File copying errors +FileAbortRetryIgnoreSkipNotRecommended=&Skip this file (not recommended) +FileAbortRetryIgnoreIgnoreNotRecommended=&Ignore the error and continue (not recommended) +SourceIsCorrupted=The source file is corrupted +SourceDoesntExist=The source file "%1" does not exist +SourceVerificationFailed=Verification of the source file failed: %1 +VerificationSignatureDoesntExist=The signature file "%1" does not exist +VerificationSignatureInvalid=The signature file "%1" is invalid +VerificationKeyNotFound=The signature file "%1" uses an unknown key +VerificationFileNameIncorrect=The name of the file is incorrect +VerificationFileTagIncorrect=The tag of the file is incorrect +VerificationFileSizeIncorrect=The size of the file is incorrect +VerificationFileHashIncorrect=The hash of the file is incorrect +ExistingFileReadOnly2=The existing file could not be replaced because it is marked read-only. +ExistingFileReadOnlyRetry=&Remove the read-only attribute and try again +ExistingFileReadOnlyKeepExisting=&Keep the existing file +ErrorReadingExistingDest=An error occurred while trying to read the existing file: +FileExistsSelectAction=Select action +FileExists2=The file already exists. +FileExistsOverwriteExisting=&Overwrite the existing file +FileExistsKeepExisting=&Keep the existing file +FileExistsOverwriteOrKeepAll=&Do this for the next conflicts +ExistingFileNewerSelectAction=Select action +ExistingFileNewer2=The existing file is newer than the one Setup is trying to install. +ExistingFileNewerOverwriteExisting=&Overwrite the existing file +ExistingFileNewerKeepExisting=&Keep the existing file (recommended) +ExistingFileNewerOverwriteOrKeepAll=&Do this for the next conflicts +ErrorChangingAttr=An error occurred while trying to change the attributes of the existing file: +ErrorCreatingTemp=An error occurred while trying to create a file in the destination directory: +ErrorReadingSource=An error occurred while trying to read the source file: +ErrorCopying=An error occurred while trying to copy a file: +ErrorDownloading=An error occurred while trying to download a file: +ErrorExtracting=An error occurred while trying to extract an archive: +ErrorReplacingExistingFile=An error occurred while trying to replace the existing file: +ErrorRestartReplace=RestartReplace failed: +ErrorRenamingTemp=An error occurred while trying to rename a file in the destination directory: +ErrorRegisterServer=Unable to register the DLL/OCX: %1 +ErrorRegSvr32Failed=RegSvr32 failed with exit code %1 +ErrorRegisterTypeLib=Unable to register the type library: %1 + +; *** Uninstall display name markings +; used for example as 'My Program (32-bit)' +UninstallDisplayNameMark=%1 (%2) +; used for example as 'My Program (32-bit, All users)' +UninstallDisplayNameMarks=%1 (%2, %3) +UninstallDisplayNameMark32Bit=32-bit +UninstallDisplayNameMark64Bit=64-bit +UninstallDisplayNameMarkAllUsers=All users +UninstallDisplayNameMarkCurrentUser=Current user + +; *** Post-installation errors +ErrorOpeningReadme=An error occurred while trying to open the README file. +ErrorRestartingComputer=Setup was unable to restart the computer. Please do this manually. + +; *** Uninstaller messages +UninstallNotFound=File "%1" does not exist. Cannot uninstall. +UninstallOpenError=File "%1" could not be opened. Cannot uninstall +UninstallUnsupportedVer=The uninstall log file "%1" is in a format not recognized by this version of the uninstaller. Cannot uninstall +UninstallUnknownEntry=An unknown entry (%1) was encountered in the uninstall log +ConfirmUninstall=Are you sure you want to completely remove %1 and all of its components? +UninstallOnlyOnWin64=This installation can only be uninstalled on 64-bit Windows. +OnlyAdminCanUninstall=This installation can only be uninstalled by a user with administrative privileges. +UninstallStatusLabel=Please wait while %1 is removed from your computer. +UninstalledAll=%1 was successfully removed from your computer. +UninstalledMost=%1 uninstall complete.%n%nSome elements could not be removed. These can be removed manually. +UninstalledAndNeedsRestart=To complete the uninstallation of %1, your computer must be restarted.%n%nWould you like to restart now? +UninstallDataCorrupted="%1" file is corrupted. Cannot uninstall + +; *** Uninstallation phase messages +ConfirmDeleteSharedFileTitle=Remove Shared File? +ConfirmDeleteSharedFile2=The system indicates that the following shared file is no longer in use by any programs. Would you like for Uninstall to remove this shared file?%n%nIf any programs are still using this file and it is removed, those programs may not function properly. If you are unsure, choose No. Leaving the file on your system will not cause any harm. +SharedFileNameLabel=File name: +SharedFileLocationLabel=Location: +WizardUninstalling=Uninstall Status +StatusUninstalling=Uninstalling %1... + +; *** Shutdown block reasons +ShutdownBlockReasonInstallingApp=Installing %1. +ShutdownBlockReasonUninstallingApp=Uninstalling %1. + +; The custom messages below aren't used by Setup itself, but if you make +; use of them in your scripts, you'll want to translate them. + +[CustomMessages] + +NameAndVersion=%1 version %2 +AdditionalIcons=Additional shortcuts: +CreateDesktopIcon=Create a &desktop shortcut +CreateQuickLaunchIcon=Create a &Quick Launch shortcut +ProgramOnTheWeb=%1 on the Web +UninstallProgram=Uninstall %1 +LaunchProgram=Launch %1 +AssocFileExtension=&Associate %1 with the %2 file extension +AssocingFileExtension=Associating %1 with the %2 file extension... +AutoStartProgramGroupDescription=Startup: +AutoStartProgram=Automatically start %1 +AddonHostProgramNotFound=%1 could not be located in the folder you selected.%n%nDo you want to continue anyway? +InstallerWord=Installer +UninstallerWord=Uninstaller +AutoReloadTaskDescription=Install automatic image reload service +ServicesTaskGroup=Services +AutoReloadServiceDisplayName=DISMTools Automatic Image Reload Service +AutoReloadServiceDescription=This service automatically reloads the servicing sessions of all mounted images on this computer. Feel free to disable this service if you do not need it. diff --git a/Installer/Languages/French.isl b/Installer/Languages/French.isl index e5707e7ae..0260c3f89 100644 --- a/Installer/Languages/French.isl +++ b/Installer/Languages/French.isl @@ -426,3 +426,9 @@ AssocingFileExtension=Associe %1 avec l'extension de fichier %2... AutoStartProgramGroupDescription=Démarrage : AutoStartProgram=Démarrer automatiquement %1 AddonHostProgramNotFound=%1 n'a pas été trouvé dans le dossier que vous avez choisi.%n%nVoulez-vous continuer malgré tout ? +InstallerWord=programme d’installation +UninstallerWord=programme de désinstallation +AutoReloadTaskDescription=Installer le service de rechargement automatique des images +ServicesTaskGroup=Services +AutoReloadServiceDisplayName=Service de rechargement automatique des images DISMTools +AutoReloadServiceDescription=Ce service recharge automatiquement les sessions de maintenance de toutes les images montées sur cet ordinateur. Vous pouvez le désactiver si vous n’en avez pas besoin. diff --git a/Installer/Languages/German.isl b/Installer/Languages/German.isl index 88d21f6c2..fd368ff00 100644 --- a/Installer/Languages/German.isl +++ b/Installer/Languages/German.isl @@ -1,4 +1,4 @@ -; ****************************************************** +; ****************************************************** ; *** *** ; *** Inno Setup version 6.5.0+ German messages *** ; *** *** @@ -47,10 +47,10 @@ LanguageCodePage=1252 [Messages] ; *** Application titles -SetupAppTitle=Setup -SetupWindowTitle=Setup - %1 -UninstallAppTitle=Entfernen -UninstallAppFullTitle=%1 entfernen +SetupAppTitle=Installation +SetupWindowTitle=Installation: %1 +UninstallAppTitle=Deinstallation +UninstallAppFullTitle=Deinstallation von %1 ; *** Misc. common InformationTitle=Information @@ -425,4 +425,9 @@ AssocingFileExtension=%1 wird mit der %2-Dateierweiterung registriert... AutoStartProgramGroupDescription=Beginn des Setups: AutoStartProgram=Starte automatisch %1 AddonHostProgramNotFound=%1 konnte im ausgewählten Ordner nicht gefunden werden.%n%nMöchten Sie dennoch fortfahren? - +InstallerWord=Installationsprogramm +UninstallerWord=Deinstallationsprogramm +AutoReloadTaskDescription=Dienst zum automatischen Neuladen von Images installieren +ServicesTaskGroup=Dienste +AutoReloadServiceDisplayName=DISMTools Dienst zum automatischen Neuladen von Images +AutoReloadServiceDescription=Dieser Dienst lädt die Wartungssitzungen aller auf diesem Computer eingebundenen Images automatisch neu. Sie können ihn deaktivieren, wenn Sie ihn nicht benötigen. diff --git a/Installer/Languages/Italian.isl b/Installer/Languages/Italian.isl index c3df0299f..6f9af620a 100644 --- a/Installer/Languages/Italian.isl +++ b/Installer/Languages/Italian.isl @@ -413,3 +413,9 @@ AssocingFileExtension=Associazione dei file con estensione %2 a %1... AutoStartProgramGroupDescription=Esecuzione automatica: AutoStartProgram=Esegui automaticamente %1 AddonHostProgramNotFound=Impossibile individuare %1 nella cartella selezionata.%n%nVuoi continuare ugualmente? +InstallerWord=programma di installazione +UninstallerWord=programma di disinstallazione +AutoReloadTaskDescription=Installa il servizio di ricaricamento automatico delle immagini +ServicesTaskGroup=Servizi +AutoReloadServiceDisplayName=Servizio di ricaricamento automatico delle immagini DISMTools +AutoReloadServiceDescription=Questo servizio ricarica automaticamente le sessioni di manutenzione di tutte le immagini montate su questo computer. Puoi disabilitarlo se non ti serve. diff --git a/Installer/Languages/Portuguese.isl b/Installer/Languages/Portuguese.isl index 41a2c2eb9..0f30c3b0e 100644 --- a/Installer/Languages/Portuguese.isl +++ b/Installer/Languages/Portuguese.isl @@ -390,3 +390,9 @@ AssocingFileExtension=A associar o %1 aos ficheiros com a extensão %2... AutoStartProgramGroupDescription=Inicialização Automática: AutoStartProgram=Iniciar %1 automaticamente AddonHostProgramNotFound=Não foi possível localizar %1 na pasta selecionada.%n%nDeseja continuar de qualquer forma? +InstallerWord=instalador +UninstallerWord=desinstalador +AutoReloadTaskDescription=Instalar o serviço de recarregamento automático de imagens +ServicesTaskGroup=Serviços +AutoReloadServiceDisplayName=Serviço de recarregamento automático de imagens do DISMTools +AutoReloadServiceDescription=Este serviço recarrega automaticamente as sessões de manutenção de todas as imagens montadas neste computador. Pode desativá-lo se não precisar dele. diff --git a/Installer/Languages/Russian.isl b/Installer/Languages/Russian.isl new file mode 100644 index 000000000..5f7e9399a --- /dev/null +++ b/Installer/Languages/Russian.isl @@ -0,0 +1,414 @@ +; *** Inno Setup version 6.5.0+ Russian messages for DISMTools *** +; +; To download user-contributed translations of this file, go to: +; https://jrsoftware.org/files/istrans/ +; +; Note: When translating this text, do not add periods (.) to the end of +; messages that didn't have them already, because on those messages Inno +; Setup adds the periods automatically (appending a period would result in +; two periods being displayed). + +[LangOptions] +; The following three entries are very important. Be sure to read and +; understand the '[LangOptions] section' topic in the help file. +LanguageName=Русский +LanguageID=$0419 +; LanguageCodePage should always be set if possible, even if this file is Unicode +; For English it's set to zero anyway because English only uses ASCII characters +LanguageCodePage=1251 +; If the language you are translating to requires special font faces or +; sizes, uncomment any of the following entries and change them accordingly. +;DialogFontName= +;DialogFontSize=9 +;DialogFontBaseScaleWidth=7 +;DialogFontBaseScaleHeight=15 +;WelcomeFontName=Segoe UI +;WelcomeFontSize=14 + +[Messages] + +; *** Application titles +SetupAppTitle=Установка +SetupWindowTitle=Установка: %1 +UninstallAppTitle=Удаление +UninstallAppFullTitle=Удаление %1 + +; *** Misc. common +InformationTitle=Информация +ConfirmTitle=Подтверждение +ErrorTitle=Ошибка + +; *** SetupLdr messages +SetupLdrStartupMessage=Будет установлен %1. Продолжить? +LdrCannotCreateTemp=Не удалось создать временный файл. Установка прервана +LdrCannotExecTemp=Не удалось выполнить файл во временной папке. Установка прервана +HelpTextNote= + +; *** Startup error messages +LastErrorMessage=%1.%n%nОшибка %2: %3 +SetupFileMissing=Файл %1 отсутствует в папке установки. Исправьте проблему или получите новую копию программы. +SetupFileCorrupt=Файлы установки повреждены. Получите новую копию программы. +SetupFileCorruptOrWrongVer=Файлы установки повреждены или несовместимы с этой версией установщика. Исправьте проблему или получите новую копию программы. +InvalidParameter=В командной строке передан недопустимый параметр:%n%n%1 +SetupAlreadyRunning=Установщик уже запущен. +WindowsVersionNotSupported=Эта программа не поддерживает версию Windows, установленную на этом компьютере. +WindowsServicePackRequired=Для этой программы требуется %1 Service Pack %2 или новее. +NotOnThisPlatform=Эта программа не запускается на %1. +OnlyOnThisPlatform=Эта программа должна запускаться только на %1. +OnlyOnTheseArchitectures=Эту программу можно установить только в версиях Windows для следующих архитектур процессора:%n%n%1 +WinVersionTooLowError=Для этой программы требуется %1 версии %2 или новее. +WinVersionTooHighError=Эту программу нельзя установить на %1 версии %2 или новее. +AdminPrivilegesRequired=Для установки программы необходимо войти в систему с правами администратора. +PowerUserPrivilegesRequired=Для установки программы необходимо войти в систему с правами администратора или участника группы опытных пользователей. +SetupAppRunningError=Установщик обнаружил, что %1 сейчас запущен.%n%nЗакройте все экземпляры программы и нажмите OK для продолжения или Отмена для выхода. +UninstallAppRunningError=Удаление обнаружило, что %1 сейчас запущен.%n%nЗакройте все экземпляры программы и нажмите OK для продолжения или Отмена для выхода. + +; *** Startup questions +PrivilegesRequiredOverrideTitle=Выбор режима установки +PrivilegesRequiredOverrideInstruction=Выберите режим установки +PrivilegesRequiredOverrideText1=%1 можно установить для всех пользователей, что требует прав администратора, или только для вас. +PrivilegesRequiredOverrideText2=%1 можно установить только для вас или для всех пользователей, что требует прав администратора. +PrivilegesRequiredOverrideAllUsers=Установить для &всех пользователей +PrivilegesRequiredOverrideAllUsersRecommended=Установить для &всех пользователей, рекомендуется +PrivilegesRequiredOverrideCurrentUser=Установить только для &меня +PrivilegesRequiredOverrideCurrentUserRecommended=Установить только для &меня, рекомендуется + +; *** Misc. errors +ErrorCreatingDir=Установщик не смог создать папку "%1" +ErrorTooManyFilesInDir=Не удалось создать файл в папке "%1", потому что в ней слишком много файлов + +; *** Setup common messages +ExitSetupTitle=Выход из установщика +ExitSetupMessage=Установка не завершена. Если выйти сейчас, программа не будет установлена.%n%nВы можете запустить установщик позже, чтобы завершить установку.%n%nВыйти из установщика? +AboutSetupMenuItem=&О программе установки... +AboutSetupTitle=О программе установки +AboutSetupMessage=%1 версия %2%n%3%n%nДомашняя страница %1:%n%4 +AboutSetupNote= +TranslatorNote= + +; *** Buttons +ButtonBack=< &Назад +ButtonNext=&Далее > +ButtonInstall=&Установить +ButtonOK=OK +ButtonCancel=Отмена +ButtonYes=&Да +ButtonYesToAll=Да для &всех +ButtonNo=&Нет +ButtonNoToAll=Н&ет для всех +ButtonFinish=&Готово +ButtonBrowse=&Обзор... +ButtonWizardBrowse=О&бзор... +ButtonNewFolder=&Создать папку + +; *** "Select Language" dialog messages +SelectLanguageTitle=Выбор языка установки +SelectLanguageLabel=Выберите язык, который будет использоваться во время установки. + +; *** Common wizard text +ClickNext=Нажмите Далее, чтобы продолжить, или Отмена, чтобы выйти из установщика. +BeveledLabel= +BrowseDialogTitle=Выбор папки +BrowseDialogLabel=Выберите папку в списке ниже и нажмите OK. +NewFolderName=Новая папка + +; *** "Welcome" wizard page +WelcomeLabel1=Добро пожаловать в мастер установки [name] +WelcomeLabel2=[name/ver] будет установлен на этот компьютер.%n%nПеред продолжением рекомендуется закрыть все остальные приложения. + +; *** "Password" wizard page +WizardPassword=Пароль +PasswordLabel1=Эта установка защищена паролем. +PasswordLabel3=Введите пароль и нажмите Далее для продолжения. Регистр букв имеет значение. +PasswordEditLabel=&Пароль: +IncorrectPassword=Введён неверный пароль. Попробуйте ещё раз. + +; *** "License Agreement" wizard page +WizardLicense=Лицензионное соглашение +LicenseLabel=Перед продолжением прочитайте следующую важную информацию. +LicenseLabel3=Перед продолжением установки прочитайте лицензионное соглашение и примите его условия. +LicenseAccepted=Я &принимаю соглашение +LicenseNotAccepted=Я &не принимаю соглашение + +; *** "Information" wizard pages +WizardInfoBefore=Информация +InfoBeforeLabel=Перед продолжением прочитайте следующую важную информацию. +InfoBeforeClickLabel=Когда будете готовы продолжить установку, нажмите Далее. +WizardInfoAfter=Информация +InfoAfterLabel=Перед продолжением прочитайте следующую важную информацию. +InfoAfterClickLabel=Когда будете готовы продолжить установку, нажмите Далее. + +; *** "User Information" wizard page +WizardUserInfo=Информация о пользователе +UserInfoDesc=Введите информацию о себе. +UserInfoName=&Имя пользователя: +UserInfoOrg=&Организация: +UserInfoSerial=&Серийный номер: +UserInfoNameRequired=Необходимо ввести имя. + +; *** "Select Destination Location" wizard page +WizardSelectDir=Выбор папки установки +SelectDirDesc=Где установить [name]? +SelectDirLabel3=Установщик установит [name] в следующую папку. +SelectDirBrowseLabel=Чтобы продолжить, нажмите Далее. Чтобы выбрать другую папку, нажмите Обзор. +DiskSpaceGBLabel=Для установки требуется как минимум [gb] ГБ свободного места. +DiskSpaceMBLabel=Для установки требуется как минимум [mb] МБ свободного места. +CannotInstallToNetworkDrive=Установщик не может установить программу на сетевой диск. +CannotInstallToUNCPath=Установщик не может установить программу по UNC пути. +InvalidPath=Необходимо указать полный путь с буквой диска, например:%n%nC:\APP%n%nили UNC путь в формате:%n%n\\server\share +InvalidDrive=Выбранный диск или UNC ресурс не существует либо недоступен. Выберите другой путь. +DiskSpaceWarningTitle=Недостаточно места на диске +DiskSpaceWarning=Для установки нужно как минимум %1 КБ свободного места, но на выбранном диске доступно только %2 КБ.%n%nПродолжить всё равно? +DirNameTooLong=Имя папки или путь слишком длинные. +InvalidDirName=Имя папки недопустимо. +BadDirName32=Имена папок не могут содержать следующие символы:%n%n%1 +DirExistsTitle=Папка уже существует +DirExists=Папка:%n%n%1%n%nуже существует. Установить программу в эту папку? +DirDoesntExistTitle=Папка не существует +DirDoesntExist=Папка:%n%n%1%n%nне существует. Создать эту папку? + +; *** "Select Components" wizard page +WizardSelectComponents=Выбор компонентов +SelectComponentsDesc=Какие компоненты установить? +SelectComponentsLabel2=Выберите компоненты для установки. Снимите выбор с компонентов, которые устанавливать не нужно. Нажмите Далее для продолжения. +FullInstallation=Полная установка +; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language) +CompactInstallation=Компактная установка +CustomInstallation=Выборочная установка +NoUninstallWarningTitle=Компоненты уже существуют +NoUninstallWarning=Установщик обнаружил, что следующие компоненты уже установлены на этом компьютере:%n%n%1%n%nЕсли снять выбор с этих компонентов, они не будут удалены.%n%nПродолжить всё равно? +ComponentSize1=%1 KB +ComponentSize2=%1 MB +ComponentsDiskSpaceGBLabel=Для текущего выбора требуется как минимум [gb] ГБ свободного места. +ComponentsDiskSpaceMBLabel=Для текущего выбора требуется как минимум [mb] МБ свободного места. + +; *** "Select Additional Tasks" wizard page +WizardSelectTasks=Выбор дополнительных задач +SelectTasksDesc=Какие дополнительные задачи выполнить? +SelectTasksLabel2=Выберите дополнительные задачи, которые нужно выполнить при установке [name], затем нажмите Далее. + +; *** "Select Start Menu Folder" wizard page +WizardSelectProgramGroup=Выбор папки в меню Пуск +SelectStartMenuFolderDesc=Где установщик должен создать ярлыки программы? +SelectStartMenuFolderLabel3=Установщик создаст ярлыки программы в следующей папке меню Пуск. +SelectStartMenuFolderBrowseLabel=Чтобы продолжить, нажмите Далее. Чтобы выбрать другую папку, нажмите Обзор. +MustEnterGroupName=Необходимо ввести имя папки. +GroupNameTooLong=Имя папки или путь слишком длинные. +InvalidGroupName=Имя папки недопустимо. +BadGroupName=Имя папки не может содержать следующие символы:%n%n%1 +NoProgramGroupCheck2=&Не создавать папку в меню Пуск + +; *** "Ready to Install" wizard page +WizardReady=Готово к установке +ReadyLabel1=Установщик готов установить [name] на ваш компьютер. +ReadyLabel2a=Нажмите Установить для продолжения или Назад, чтобы проверить либо изменить параметры. +ReadyLabel2b=Нажмите Установить, чтобы продолжить установку. +ReadyMemoUserInfo=Информация о пользователе: +ReadyMemoDir=Папка установки: +ReadyMemoType=Тип установки: +ReadyMemoComponents=Выбранные компоненты: +ReadyMemoGroup=Папка меню Пуск: +ReadyMemoTasks=Дополнительные задачи: + +; *** TDownloadWizardPage wizard page and DownloadTemporaryFile +DownloadingLabel2=Загрузка файлов... +ButtonStopDownload=&Остановить загрузку +StopDownload=Остановить загрузку? +ErrorDownloadAborted=Загрузка прервана +ErrorDownloadFailed=Ошибка загрузки: %1 %2 +ErrorDownloadSizeFailed=Не удалось получить размер: %1 %2 +ErrorProgress=Недопустимый прогресс: %1 из %2 +ErrorFileSize=Недопустимый размер файла: ожидалось %1, найдено %2 + +; *** TExtractionWizardPage wizard page and ExtractArchive +ExtractingLabel=Извлечение файлов... +ButtonStopExtraction=&Остановить извлечение +StopExtraction=Остановить извлечение? +ErrorExtractionAborted=Извлечение прервано +ErrorExtractionFailed=Ошибка извлечения: %1 + +; *** Archive extraction failure details +ArchiveIncorrectPassword=Неверный пароль +ArchiveIsCorrupted=Архив повреждён +ArchiveUnsupportedFormat=Формат архива не поддерживается + +; *** "Preparing to Install" wizard page +WizardPreparing=Подготовка к установке +PreparingDesc=Установщик подготавливает установку [name] на ваш компьютер. +PreviousInstallNotCompleted=Предыдущая установка или удаление программы не были завершены. Необходимо перезапустить компьютер, чтобы завершить эту операцию.%n%nПосле перезапуска компьютера снова запустите установщик, чтобы завершить установку [name]. +CannotContinue=Установщик не может продолжить. Нажмите Отмена для выхода. +ApplicationsFound=Следующие приложения используют файлы, которые нужно обновить. Рекомендуется разрешить установщику автоматически закрыть эти приложения. +ApplicationsFound2=Следующие приложения используют файлы, которые нужно обновить. Рекомендуется разрешить установщику автоматически закрыть эти приложения. После завершения установки установщик попытается снова запустить приложения. +CloseApplications=&Автоматически закрыть приложения +DontCloseApplications=&Не закрывать приложения +ErrorCloseApplications=Установщик не смог автоматически закрыть все приложения. Перед продолжением рекомендуется закрыть все приложения, которые используют файлы, требующие обновления. +PrepareToInstallNeedsRestart=Установщик должен перезапустить компьютер. После перезапуска снова запустите установщик, чтобы завершить установку [name].%n%nПерезапустить сейчас? + +; *** "Installing" wizard page +WizardInstalling=Установка +InstallingLabel=Подождите, пока [name] устанавливается на ваш компьютер. + +; *** "Setup Completed" wizard page +FinishedHeadingLabel=Завершение мастера установки [name] +FinishedLabelNoIcons=Установка [name] на компьютер завершена. +FinishedLabel=Установка [name] на компьютер завершена. Приложение можно запустить через установленные ярлыки. +ClickFinish=Нажмите Готово, чтобы выйти из установщика. +FinishedRestartLabel=Для завершения установки [name] установщик должен перезапустить компьютер. Перезапустить сейчас? +FinishedRestartMessage=Для завершения установки [name] установщик должен перезапустить компьютер.%n%nПерезапустить сейчас? +ShowReadmeCheck=Да, открыть файл README +YesRadio=&Да, перезапустить компьютер сейчас +NoRadio=&Нет, я перезапущу компьютер позже +; used for example as 'Run MyProg.exe' +RunEntryExec=Запустить %1 +; used for example as 'View Readme.txt' +RunEntryShellExec=Открыть %1 + +; *** "Setup Needs the Next Disk" stuff +ChangeDiskTitle=Установщику нужен следующий диск +SelectDiskLabel2=Вставьте диск %1 и нажмите OK.%n%nЕсли файлы на этом диске находятся в другой папке, укажите правильный путь или нажмите Обзор. +PathLabel=&Путь: +FileNotInDir2=Файл "%1" не найден в "%2". Вставьте правильный диск или выберите другую папку. +SelectDirectoryLabel=Укажите расположение следующего диска. + +; *** Installation phase messages +SetupAborted=Установка не завершена.%n%nИсправьте проблему и снова запустите установщик. +AbortRetryIgnoreSelectAction=Выбор действия +AbortRetryIgnoreRetry=&Повторить +AbortRetryIgnoreIgnore=&Игнорировать ошибку и продолжить +AbortRetryIgnoreCancel=Отменить установку +RetryCancelSelectAction=Выбор действия +RetryCancelRetry=&Повторить +RetryCancelCancel=Отмена + +; *** Installation status messages +StatusClosingApplications=Закрытие приложений... +StatusCreateDirs=Создание папок... +StatusExtractFiles=Извлечение файлов... +StatusDownloadFiles=Загрузка файлов... +StatusCreateIcons=Создание ярлыков... +StatusCreateIniEntries=Создание записей INI... +StatusCreateRegistryEntries=Создание записей реестра... +StatusRegisterFiles=Регистрация файлов... +StatusSavingUninstall=Сохранение информации для удаления... +StatusRunProgram=Завершение установки... +StatusRestartingApplications=Перезапуск приложений... +StatusRollback=Откат изменений... + +; *** Misc. errors +ErrorInternal2=Внутренняя ошибка: %1 +ErrorFunctionFailedNoCode=Сбой выполнения %1 +ErrorFunctionFailed=Сбой выполнения %1, код %2 +ErrorFunctionFailedWithMessage=Сбой выполнения %1, код %2.%n%3 +ErrorExecutingProgram=Не удалось выполнить файл:%n%1 + +; *** Registry errors +ErrorRegOpenKey=Ошибка открытия ключа реестра:%n%1\%2 +ErrorRegCreateKey=Ошибка создания ключа реестра:%n%1\%2 +ErrorRegWriteKey=Ошибка записи в ключ реестра:%n%1\%2 + +; *** INI errors +ErrorIniEntry=Ошибка создания записи INI в файле "%1". + +; *** File copying errors +FileAbortRetryIgnoreSkipNotRecommended=&Пропустить этот файл, не рекомендуется +FileAbortRetryIgnoreIgnoreNotRecommended=&Игнорировать ошибку и продолжить, не рекомендуется +SourceIsCorrupted=Исходный файл повреждён +SourceDoesntExist=Исходный файл "%1" не существует +SourceVerificationFailed=Проверка исходного файла не пройдена: %1 +VerificationSignatureDoesntExist=Файл подписи "%1" не существует +VerificationSignatureInvalid=Файл подписи "%1" недействителен +VerificationKeyNotFound=Файл подписи "%1" использует неизвестный ключ +VerificationFileNameIncorrect=Имя файла неверное +VerificationFileTagIncorrect=Тег файла неверный +VerificationFileSizeIncorrect=Размер файла неверный +VerificationFileHashIncorrect=Хеш файла неверный +ExistingFileReadOnly2=Существующий файл не удалось заменить, потому что он помечен как доступный только для чтения. +ExistingFileReadOnlyRetry=&Убрать атрибут только для чтения и повторить +ExistingFileReadOnlyKeepExisting=&Оставить существующий файл +ErrorReadingExistingDest=Произошла ошибка при чтении существующего файла: +FileExistsSelectAction=Выбор действия +FileExists2=Файл уже существует. +FileExistsOverwriteExisting=&Заменить существующий файл +FileExistsKeepExisting=&Оставить существующий файл +FileExistsOverwriteOrKeepAll=&Применить это действие к следующим конфликтам +ExistingFileNewerSelectAction=Выбор действия +ExistingFileNewer2=Существующий файл новее файла, который установщик пытается установить. +ExistingFileNewerOverwriteExisting=&Заменить существующий файл +ExistingFileNewerKeepExisting=&Оставить существующий файл, рекомендуется +ExistingFileNewerOverwriteOrKeepAll=&Применить это действие к следующим конфликтам +ErrorChangingAttr=Произошла ошибка при изменении атрибутов существующего файла: +ErrorCreatingTemp=Произошла ошибка при создании файла в папке назначения: +ErrorReadingSource=Произошла ошибка при чтении исходного файла: +ErrorCopying=Произошла ошибка при копировании файла: +ErrorDownloading=Произошла ошибка при загрузке файла: +ErrorExtracting=Произошла ошибка при извлечении архива: +ErrorReplacingExistingFile=Произошла ошибка при замене существующего файла: +ErrorRestartReplace=Сбой RestartReplace: +ErrorRenamingTemp=Произошла ошибка при переименовании файла в папке назначения: +ErrorRegisterServer=Не удалось зарегистрировать DLL/OCX: %1 +ErrorRegSvr32Failed=Сбой RegSvr32 с кодом выхода %1 +ErrorRegisterTypeLib=Не удалось зарегистрировать библиотеку типов: %1 + +; *** Uninstall display name markings +; used for example as 'My Program (32-bit)' +UninstallDisplayNameMark=%1 (%2) +; used for example as 'My Program (32-bit, All users)' +UninstallDisplayNameMarks=%1 (%2, %3) +UninstallDisplayNameMark32Bit=32 битная +UninstallDisplayNameMark64Bit=64 битная +UninstallDisplayNameMarkAllUsers=Все пользователи +UninstallDisplayNameMarkCurrentUser=Текущий пользователь + +; *** Post-installation errors +ErrorOpeningReadme=Произошла ошибка при попытке открыть файл README. +ErrorRestartingComputer=Установщик не смог перезапустить компьютер. Сделайте это вручную. + +; *** Uninstaller messages +UninstallNotFound=Файл "%1" не существует. Удаление невозможно. +UninstallOpenError=Файл "%1" не удалось открыть. Удаление невозможно +UninstallUnsupportedVer=Файл журнала удаления "%1" имеет формат, который не распознан этой версией деинсталлятора. Удаление невозможно +UninstallUnknownEntry=В журнале удаления обнаружена неизвестная запись (%1) +ConfirmUninstall=Вы действительно хотите полностью удалить %1 и все его компоненты? +UninstallOnlyOnWin64=Эту установку можно удалить только в 64 битной Windows. +OnlyAdminCanUninstall=Эту установку может удалить только пользователь с правами администратора. +UninstallStatusLabel=Подождите, пока %1 удаляется с компьютера. +UninstalledAll=%1 успешно удалён с компьютера. +UninstalledMost=Удаление %1 завершено.%n%nНекоторые элементы удалить не удалось. Их можно удалить вручную. +UninstalledAndNeedsRestart=Чтобы завершить удаление %1, компьютер нужно перезапустить.%n%nПерезапустить сейчас? +UninstallDataCorrupted=Файл "%1" повреждён. Удаление невозможно + +; *** Uninstallation phase messages +ConfirmDeleteSharedFileTitle=Удалить общий файл? +ConfirmDeleteSharedFile2=Система указывает, что следующий общий файл больше не используется программами. Удалить этот общий файл?%n%nЕсли какие либо программы всё ещё используют этот файл и он будет удалён, они могут работать неправильно. Если вы не уверены, выберите Нет. Если оставить файл в системе, это не причинит вреда. +SharedFileNameLabel=Имя файла: +SharedFileLocationLabel=Расположение: +WizardUninstalling=Состояние удаления +StatusUninstalling=Удаление %1... + +; *** Shutdown block reasons +ShutdownBlockReasonInstallingApp=Установка %1. +ShutdownBlockReasonUninstallingApp=Удаление %1. + +; The custom messages below aren't used by Setup itself, but if you make +; use of them in your scripts, you'll want to translate them. + +[CustomMessages] + +NameAndVersion=%1 версия %2 +AdditionalIcons=Дополнительные ярлыки: +CreateDesktopIcon=Создать ярлык на &рабочем столе +CreateQuickLaunchIcon=Создать ярлык в панели &быстрого запуска +ProgramOnTheWeb=%1 в интернете +UninstallProgram=Удалить %1 +LaunchProgram=Запустить %1 +AssocFileExtension=&Связать %1 с расширением файлов %2 +AssocingFileExtension=Связывание %1 с расширением файлов %2... +AutoStartProgramGroupDescription=Автозагрузка: +AutoStartProgram=Автоматически запускать %1 +AddonHostProgramNotFound=%1 не найден в выбранной папке.%n%nПродолжить всё равно? +InstallerWord=Установщик +UninstallerWord=Деинсталлятор +AutoReloadTaskDescription=Установить службу автоматической перезагрузки образов +ServicesTaskGroup=Службы +AutoReloadServiceDisplayName=Служба автоматической перезагрузки образов DISMTools +AutoReloadServiceDescription=Эта служба автоматически перезагружает сеансы обслуживания всех смонтированных образов на этом компьютере. Её можно отключить, если она не нужна. diff --git a/Installer/Languages/Spanish.isl b/Installer/Languages/Spanish.isl index 90401256b..058994602 100644 --- a/Installer/Languages/Spanish.isl +++ b/Installer/Languages/Spanish.isl @@ -405,3 +405,9 @@ AssocingFileExtension=Asociando %1 con la extensión de archivo %2... AutoStartProgramGroupDescription=Inicio: AutoStartProgram=Iniciar automáticamente %1 AddonHostProgramNotFound=%1 no pudo ser localizado en la carpeta seleccionada.%n%n¿Desea continuar de todas formas? +InstallerWord=instalador +UninstallerWord=desinstalador +AutoReloadTaskDescription=Instalar el servicio de recarga automática de imágenes +ServicesTaskGroup=Servicios +AutoReloadServiceDisplayName=Servicio de recarga automática de imágenes de DISMTools +AutoReloadServiceDescription=Este servicio recarga automáticamente las sesiones de mantenimiento de todas las imágenes montadas en este equipo. Puede deshabilitarlo si no lo necesita. diff --git a/Installer/PrepareISScript.ps1 b/Installer/PrepareISScript.ps1 index 63aa926ec..132024891 100644 --- a/Installer/PrepareISScript.ps1 +++ b/Installer/PrepareISScript.ps1 @@ -1,36 +1,41 @@ param ( - [Parameter(Mandatory = $true, Position = 0)] [string] $ReleaseID + [Parameter(Mandatory = $true, Position = 0)] [string] $ReleaseID ) +$ErrorActionPreference = "Stop" + try { - if ($ReleaseID -ne "") { - # Get the contents of the ISS and modify them - $issInstaller = Get-Content -Path "$((Get-Location).Path)\dt.iss" - - switch ($ReleaseID) { - "stable" { - $issInstaller = $issInstaller.Replace("DISMTools\Preview", "DISMTools\Stable").Trim() - $issInstaller = $issInstaller.Replace("AppId={{AB033696-A4AC-4DF2-B802-9D8BB8B0EEB5}}", "AppId={{BC1A3BB3-3B0A-4D21-B778-0B21C136C6E0}}").Trim() - $issInstaller = $issInstaller.Replace("#define scName `"DISMTools Preview`"", "#define scName `"DISMTools`"").Trim() - $issInstaller = $issInstaller.Replace(" Preview`"", "`"").Trim() - } - "preview" { - $issInstaller = $issInstaller.Replace("DISMTools\Stable", "DISMTools\Preview").Trim() - $issInstaller = $issInstaller.Replace("AppId={{BC1A3BB3-3B0A-4D21-B778-0B21C136C6E0}}", "AppId={{AB033696-A4AC-4DF2-B802-9D8BB8B0EEB5}}").Trim() - $issInstaller = $issInstaller.Replace("#define scName `"DISMTools`"", "#define scName `"DISMTools Preview`"").Trim() - Write-Host "Please update verConst in Inno Setup script to include `"Preview`"" -BackgroundColor DarkGreen - } - default { - Write-Host "Unknown release ID `"$ReleaseID`". Available IDs: preview, stable" - return - } - } - - $issInstaller | Out-File "$((Get-Location).Path)\dt.iss" -Encoding utf8 - - } else { - Write-Host "No release ID has been specified. Available IDs: preview, stable" - } + if ([string]::IsNullOrWhiteSpace($ReleaseID)) { + Write-Host "No release ID has been specified. Available IDs: preview, stable" + return + } + + $scriptPath = Join-Path (Get-Location).Path "dt.iss" + $issInstaller = Get-Content -LiteralPath $scriptPath -Raw -Encoding UTF8 + + switch ($ReleaseID) { + "stable" { + $issInstaller = $issInstaller -replace '#define pfDir\s+"\{commonpf\}\\DISMTools\\Preview"', '#define pfDir "{commonpf}\DISMTools"' + $issInstaller = $issInstaller.Replace("AppId={{AB033696-A4AC-4DF2-B802-9D8BB8B0EEB5}}", "AppId={{BC1A3BB3-3B0A-4D21-B778-0B21C136C6E0}}") + $issInstaller = $issInstaller.Replace("#define scName `"DISMTools Preview`"", "#define scName `"DISMTools`"") + $issInstaller = $issInstaller.Replace(" Preview`"", "`"") + } + "preview" { + $issInstaller = $issInstaller -replace '#define pfDir\s+"\{commonpf\}\\DISMTools"', '#define pfDir "{commonpf}\DISMTools\Preview"' + $issInstaller = $issInstaller.Replace("AppId={{BC1A3BB3-3B0A-4D21-B778-0B21C136C6E0}}", "AppId={{AB033696-A4AC-4DF2-B802-9D8BB8B0EEB5}}") + $issInstaller = $issInstaller.Replace("#define scName `"DISMTools`"", "#define scName `"DISMTools Preview`"") + if ($issInstaller -notmatch 'Preview') { + Write-Host "Please update verConst in Inno Setup script to include `"Preview`"" -BackgroundColor DarkGreen + } + } + default { + Write-Host "Unknown release ID `"$ReleaseID`". Available IDs: preview, stable" + return + } + } + + $issInstaller | Out-File -LiteralPath $scriptPath -Encoding utf8 } catch { - Write-Host "Could not modify file. Reason: $_" -} \ No newline at end of file + Write-Host "Could not modify file. Reason: $_" + throw +} diff --git a/Installer/dt.iss b/Installer/dt.iss index 88fa5f2cc..7ad03c4d0 100644 --- a/Installer/dt.iss +++ b/Installer/dt.iss @@ -1,4 +1,4 @@ -; Script generated by the Inno Setup Script Wizard. +; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define verConst "0.8" @@ -12,7 +12,7 @@ #define MyAppAssocExt ".dtproj" #define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt -#define pfDir "{commonpf}\DISMTools\Stable" +#define pfDir "{commonpf}\DISMTools" #define scName "DISMTools" @@ -53,7 +53,7 @@ VersionInfoTextVersion={#MyAppVersion} ; Language info ShowLanguageDialog=yes UsePreviousLanguage=no -LanguageDetectionMethod=uilanguage +LanguageDetectionMethod=none ;Wizard setup WizardStyle=modern dynamic windows11 @@ -86,16 +86,17 @@ UninstallFilesDir={#pfDir} UsedUserAreasWarning=no [Languages] -Name: "en"; MessagesFile: "compiler:Default.isl" +Name: "en"; MessagesFile: ".\Languages\English.isl" Name: "es"; MessagesFile: ".\Languages\Spanish.isl" Name: "fr"; MessagesFile: ".\Languages\French.isl" Name: "de"; MessagesFile: ".\Languages\German.isl" Name: "it"; MessagesFile: ".\Languages\Italian.isl" Name: "pt"; MessagesFile: ".\Languages\Portuguese.isl" +Name: "ru"; MessagesFile: ".\Languages\Russian.isl"; LicenseFile: ".\LICENSE-ru-RU.rtf" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked -Name: "autoreload"; Description: "Install automatic image reload service"; GroupDescription: "Services"; Flags: unchecked +Name: "autoreload"; Description: "{cm:AutoReloadTaskDescription}"; GroupDescription: "{cm:ServicesTaskGroup}"; Flags: unchecked [Files] Source: ".\files\{#MyAppExeName}"; DestDir: "{#pfDir}"; Flags: ignoreversion @@ -132,6 +133,7 @@ Source: ".\files\AutoUnattend\*"; DestDir: "{#pfDir}\AutoUnattend"; Flags: ignor Source: ".\files\AutoReload\*"; DestDir: "{#pfDir}\AutoReload"; Flags: ignoreversion recursesubdirs createallsubdirs skipifsourcedoesntexist Source: ".\files\bin\*"; DestDir: "{#pfDir}\bin"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\files\docs\*"; DestDir: "{#pfDir}\docs"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ".\files\language\*"; DestDir: "{#pfDir}\language"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\files\runtimes\*"; DestDir: "{#pfDir}\runtimes"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\files\tools\*"; DestDir: "{#pfDir}\tools"; Flags: ignoreversion recursesubdirs createallsubdirs Source: ".\files\videos\*"; DestDir: "{#pfDir}\videos"; Flags: ignoreversion recursesubdirs createallsubdirs @@ -195,7 +197,7 @@ Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: dwor Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: dword; ValueName: "ColorTheme_Dark"; ValueData: 0; Flags: uninsdeletevalue createvalueifdoesntexist Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: dword; ValueName: "ColorTheme_Light"; ValueData: 1; Flags: uninsdeletevalue createvalueifdoesntexist Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: dword; ValueName: "ExpandedProgressPanel"; ValueData: 1; Flags: uninsdeletevalue createvalueifdoesntexist -Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: dword; ValueName: "Language"; ValueData: 0; Flags: uninsdeletevalue createvalueifdoesntexist +Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: string; ValueName: "LanguageCode"; ValueData: "en-US"; Flags: uninsdeletevalue createvalueifdoesntexist Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: string; ValueName: "LogFont"; ValueData: "Consolas"; Flags: uninsdeletevalue createvalueifdoesntexist Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: dword; ValueName: "LogFontBold"; ValueData: 0; Flags: uninsdeletevalue createvalueifdoesntexist Root: HKCU; Subkey: "Software\DISMTools\Stable\Personalization"; ValueType: dword; ValueName: "LogFontSi"; ValueData: 11; Flags: uninsdeletevalue createvalueifdoesntexist @@ -247,11 +249,6 @@ Root: HKCU; Subkey: "Software\DISMTools\Stable\PEPolicy"; ValueType: dword; Valu ; Special - Set Internet Explorer browser emulation settings Root: HKCU; Subkey: "Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"; ValueType: dword; ValueName: "DISMTools.exe"; ValueData: 11001; Flags: uninsdeletevalue createvalueifdoesntexist -[Messages] -SetupAppTitle={#MyAppName} {#verConst} Installer -SetupWindowTitle={#MyAppName} {#verConst} Installer ({#MyAppVersion}) -UninstallAppTitle={#MyAppName} {#verConst} Uninstaller -UninstallAppFullTitle={#MyAppName} {#verConst} Uninstaller ({#MyAppVersion}) [Icons] Name: "{autoprograms}\{#scName}"; Filename: "{#pfDir}\{#MyAppExeName}" @@ -259,8 +256,8 @@ Name: "{autodesktop}\{#scName}"; Filename: "{#pfDir}\{#MyAppExeName}"; Tasks: de [Run] Filename: "{#pfDir}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent shellexec -Filename: "{cmd}"; Tasks: "autoreload"; Parameters: "/C sc create DT_AutoReload binPath= ""{#pfDir}\AutoReload\AutoReloadSvc.exe"" start= auto DisplayName= ""DISMTools Automatic Image Reload Service"" depend= EventLog"; Flags: waituntilterminated shellexec runhidden -Filename: "{cmd}"; Tasks: "autoreload"; Parameters: "/C sc description DT_AutoReload ""This service automatically reloads the servicing sessions of all mounted images on this computer. Feel free to disable this service if you don't need it."""; Flags: waituntilterminated shellexec runhidden +Filename: "{cmd}"; Tasks: "autoreload"; Parameters: "/C sc create DT_AutoReload binPath= ""{#pfDir}\AutoReload\AutoReloadSvc.exe"" start= auto DisplayName= ""{cm:AutoReloadServiceDisplayName}"" depend= EventLog"; Flags: waituntilterminated shellexec runhidden +Filename: "{cmd}"; Tasks: "autoreload"; Parameters: "/C sc description DT_AutoReload ""{cm:AutoReloadServiceDescription}"""; Flags: waituntilterminated shellexec runhidden [UninstallRun] ; Ends wimserv, as it causes log files to not be deleted diff --git a/MainForm.Designer.vb b/MainForm.Designer.vb index 8780b85af..817ad44f7 100644 --- a/MainForm.Designer.vb +++ b/MainForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MainForm Inherits System.Windows.Forms.Form @@ -606,19 +606,19 @@ Partial Class MainForm Me.FileToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NewProjectToolStripMenuItem, Me.OpenExistingProjectToolStripMenuItem, Me.ToolStripSeparator26, Me.ManageOnlineInstallationToolStripMenuItem, Me.ManageOfflineInstallationToolStripMenuItem, Me.ToolStripSeparator37, Me.RecentProjectsListMenu, Me.ToolStripSeparator1, Me.SaveProjectToolStripMenuItem, Me.SaveProjectasToolStripMenuItem, Me.ToolStripSeparator2, Me.ExitToolStripMenuItem}) Me.FileToolStripMenuItem.Name = "FileToolStripMenuItem" Me.FileToolStripMenuItem.Size = New System.Drawing.Size(37, 20) - Me.FileToolStripMenuItem.Text = "&File" + Me.FileToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("File.Label") ' 'NewProjectToolStripMenuItem ' Me.NewProjectToolStripMenuItem.Name = "NewProjectToolStripMenuItem" Me.NewProjectToolStripMenuItem.Size = New System.Drawing.Size(224, 22) - Me.NewProjectToolStripMenuItem.Text = "&New project..." + Me.NewProjectToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("NewProject.Button") ' 'OpenExistingProjectToolStripMenuItem ' Me.OpenExistingProjectToolStripMenuItem.Name = "OpenExistingProjectToolStripMenuItem" Me.OpenExistingProjectToolStripMenuItem.Size = New System.Drawing.Size(224, 22) - Me.OpenExistingProjectToolStripMenuItem.Text = "&Open existing project" + Me.OpenExistingProjectToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Open.Existing.Project.Label") ' 'ToolStripSeparator26 ' @@ -629,13 +629,13 @@ Partial Class MainForm ' Me.ManageOnlineInstallationToolStripMenuItem.Name = "ManageOnlineInstallationToolStripMenuItem" Me.ManageOnlineInstallationToolStripMenuItem.Size = New System.Drawing.Size(224, 22) - Me.ManageOnlineInstallationToolStripMenuItem.Text = "&Manage online installation" + Me.ManageOnlineInstallationToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Manage.Online.Install.Label") ' 'ManageOfflineInstallationToolStripMenuItem ' Me.ManageOfflineInstallationToolStripMenuItem.Name = "ManageOfflineInstallationToolStripMenuItem" Me.ManageOfflineInstallationToolStripMenuItem.Size = New System.Drawing.Size(224, 22) - Me.ManageOfflineInstallationToolStripMenuItem.Text = "Manage o&ffline installation..." + Me.ManageOfflineInstallationToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Manage.Ffline.Button") ' 'ToolStripSeparator37 ' @@ -647,7 +647,7 @@ Partial Class MainForm Me.RecentProjectsListMenu.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.RecentProject1ToolStripMenuItem, Me.RecentProject2ToolStripMenuItem, Me.RecentProject3ToolStripMenuItem, Me.RecentProject4ToolStripMenuItem, Me.RecentProject5ToolStripMenuItem, Me.RecentProject6ToolStripMenuItem, Me.RecentProject7ToolStripMenuItem, Me.RecentProject8ToolStripMenuItem, Me.RecentProject9ToolStripMenuItem, Me.RecentProject10ToolStripMenuItem}) Me.RecentProjectsListMenu.Name = "RecentProjectsListMenu" Me.RecentProjectsListMenu.Size = New System.Drawing.Size(224, 22) - Me.RecentProjectsListMenu.Text = "Recent projects" + Me.RecentProjectsListMenu.Text = LocalizationService.ForSection("Designer.Main")("RecentProjects.Label") ' 'RecentProject1ToolStripMenuItem ' @@ -729,14 +729,14 @@ Partial Class MainForm Me.SaveProjectToolStripMenuItem.Enabled = False Me.SaveProjectToolStripMenuItem.Name = "SaveProjectToolStripMenuItem" Me.SaveProjectToolStripMenuItem.Size = New System.Drawing.Size(224, 22) - Me.SaveProjectToolStripMenuItem.Text = "&Save project..." + Me.SaveProjectToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("SaveProject.Button") ' 'SaveProjectasToolStripMenuItem ' Me.SaveProjectasToolStripMenuItem.Enabled = False Me.SaveProjectasToolStripMenuItem.Name = "SaveProjectasToolStripMenuItem" Me.SaveProjectasToolStripMenuItem.Size = New System.Drawing.Size(224, 22) - Me.SaveProjectasToolStripMenuItem.Text = "Save project &as..." + Me.SaveProjectasToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Save.Project.Button") ' 'ToolStripSeparator2 ' @@ -747,27 +747,27 @@ Partial Class MainForm ' Me.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem" Me.ExitToolStripMenuItem.Size = New System.Drawing.Size(224, 22) - Me.ExitToolStripMenuItem.Text = "E&xit" + Me.ExitToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Exit.Label") ' 'ProjectToolStripMenuItem ' Me.ProjectToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ViewProjectFilesInFileExplorerToolStripMenuItem, Me.UnloadProjectToolStripMenuItem, Me.ToolStripSeparator3, Me.SwitchImageIndexesToolStripMenuItem, Me.ToolStripSeparator11, Me.ProjectPropertiesToolStripMenuItem, Me.ImagePropertiesToolStripMenuItem}) Me.ProjectToolStripMenuItem.Name = "ProjectToolStripMenuItem" Me.ProjectToolStripMenuItem.Size = New System.Drawing.Size(56, 20) - Me.ProjectToolStripMenuItem.Text = "&Project" + Me.ProjectToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Project.Label") Me.ProjectToolStripMenuItem.Visible = False ' 'ViewProjectFilesInFileExplorerToolStripMenuItem ' Me.ViewProjectFilesInFileExplorerToolStripMenuItem.Name = "ViewProjectFilesInFileExplorerToolStripMenuItem" Me.ViewProjectFilesInFileExplorerToolStripMenuItem.Size = New System.Drawing.Size(242, 22) - Me.ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "View project files in File Explorer" + Me.ViewProjectFilesInFileExplorerToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("View.Project.Files.Label") ' 'UnloadProjectToolStripMenuItem ' Me.UnloadProjectToolStripMenuItem.Name = "UnloadProjectToolStripMenuItem" Me.UnloadProjectToolStripMenuItem.Size = New System.Drawing.Size(242, 22) - Me.UnloadProjectToolStripMenuItem.Text = "Unload project..." + Me.UnloadProjectToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("UnloadProject.Button") ' 'ToolStripSeparator3 ' @@ -778,7 +778,7 @@ Partial Class MainForm ' Me.SwitchImageIndexesToolStripMenuItem.Name = "SwitchImageIndexesToolStripMenuItem" Me.SwitchImageIndexesToolStripMenuItem.Size = New System.Drawing.Size(242, 22) - Me.SwitchImageIndexesToolStripMenuItem.Text = "Switch image indexes..." + Me.SwitchImageIndexesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Switch.Image.Indexes.Button") ' 'ToolStripSeparator11 ' @@ -789,20 +789,20 @@ Partial Class MainForm ' Me.ProjectPropertiesToolStripMenuItem.Name = "ProjectPropertiesToolStripMenuItem" Me.ProjectPropertiesToolStripMenuItem.Size = New System.Drawing.Size(242, 22) - Me.ProjectPropertiesToolStripMenuItem.Text = "Project properties" + Me.ProjectPropertiesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ProjectProps.Label") ' 'ImagePropertiesToolStripMenuItem ' Me.ImagePropertiesToolStripMenuItem.Name = "ImagePropertiesToolStripMenuItem" Me.ImagePropertiesToolStripMenuItem.Size = New System.Drawing.Size(242, 22) - Me.ImagePropertiesToolStripMenuItem.Text = "Image properties" + Me.ImagePropertiesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ImageProps.Label") ' 'CommandsToolStripMenuItem ' Me.CommandsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ImageManagementToolStripMenuItem, Me.OSPackagesToolStripMenuItem, Me.ProvisioningPackagesToolStripMenuItem, Me.AppPackagesToolStripMenuItem, Me.AppPatchesToolStripMenuItem, Me.DefaultAppAssociationsToolStripMenuItem, Me.LanguagesAndRegionSettingsToolStripMenuItem, Me.CapabilitiesToolStripMenuItem, Me.WindowsEditionsToolStripMenuItem, Me.DriversToolStripMenuItem, Me.UnattendedAnswerFilesToolStripMenuItem, Me.WindowsPEServicingToolStripMenuItem, Me.OSUninstallToolStripMenuItem, Me.ReservedStorageToolStripMenuItem, Me.MicrosoftEdgeToolStripMenuItem}) Me.CommandsToolStripMenuItem.Name = "CommandsToolStripMenuItem" Me.CommandsToolStripMenuItem.Size = New System.Drawing.Size(81, 20) - Me.CommandsToolStripMenuItem.Text = "Com&mands" + Me.CommandsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Commands.Label") Me.CommandsToolStripMenuItem.Visible = False ' 'ImageManagementToolStripMenuItem @@ -810,142 +810,142 @@ Partial Class MainForm Me.ImageManagementToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AppendImage, Me.ApplyFFU, Me.ApplyImage, Me.CaptureCustomImage, Me.CaptureFFU, Me.CaptureImage, Me.CleanupMountpoints, Me.CommitImage, Me.DeleteImage, Me.ExportImage, Me.GetImageInfo, Me.GetWIMBootEntry, Me.ListImage, Me.MountImage, Me.OptimizeFFU, Me.OptimizeImage, Me.RemountImage, Me.SplitFFU, Me.SplitImage, Me.UnmountImage, Me.UpdateWIMBootEntry, Me.ApplySiloedPackage, Me.ToolStripSeparator34, Me.SaveImageInformationToolStripMenuItem}) Me.ImageManagementToolStripMenuItem.Name = "ImageManagementToolStripMenuItem" Me.ImageManagementToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.ImageManagementToolStripMenuItem.Text = "Image management" + Me.ImageManagementToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ImageManagement.Label") ' 'AppendImage ' Me.AppendImage.Name = "AppendImage" Me.AppendImage.Size = New System.Drawing.Size(289, 22) - Me.AppendImage.Text = "Append capture directory to image..." + Me.AppendImage.Text = LocalizationService.ForSection("Designer.Main")("Append.Capture.Dir.Button") ' 'ApplyFFU ' Me.ApplyFFU.Name = "ApplyFFU" Me.ApplyFFU.Size = New System.Drawing.Size(289, 22) - Me.ApplyFFU.Text = "Apply FFU or SFU file..." + Me.ApplyFFU.Text = LocalizationService.ForSection("Designer.Main")("ApplyFfusfufile.Button") ' 'ApplyImage ' Me.ApplyImage.Name = "ApplyImage" Me.ApplyImage.Size = New System.Drawing.Size(289, 22) - Me.ApplyImage.Text = "Apply WIM or SWM file..." + Me.ApplyImage.Text = LocalizationService.ForSection("Designer.Main")("ApplyWimswmfile.Button") ' 'CaptureCustomImage ' Me.CaptureCustomImage.Name = "CaptureCustomImage" Me.CaptureCustomImage.Size = New System.Drawing.Size(289, 22) - Me.CaptureCustomImage.Text = "Capture incremental changes to file..." + Me.CaptureCustomImage.Text = LocalizationService.ForSection("Designer.Main")("Capture.Incremental.Button") Me.CaptureCustomImage.Visible = False ' 'CaptureFFU ' Me.CaptureFFU.Name = "CaptureFFU" Me.CaptureFFU.Size = New System.Drawing.Size(289, 22) - Me.CaptureFFU.Text = "Capture partitions to FFU file..." + Me.CaptureFFU.Text = LocalizationService.ForSection("Designer.Main")("Capture.Partitions.Button") ' 'CaptureImage ' Me.CaptureImage.Name = "CaptureImage" Me.CaptureImage.Size = New System.Drawing.Size(289, 22) - Me.CaptureImage.Text = "Capture image of a drive to WIM file..." + Me.CaptureImage.Text = LocalizationService.ForSection("Designer.Main")("Capture.Image.Drive.Button") ' 'CleanupMountpoints ' Me.CleanupMountpoints.Name = "CleanupMountpoints" Me.CleanupMountpoints.Size = New System.Drawing.Size(289, 22) - Me.CleanupMountpoints.Text = "Delete resources from corrupted image..." + Me.CleanupMountpoints.Text = LocalizationService.ForSection("Designer.Main")("Delete.Resources.Button") ' 'CommitImage ' Me.CommitImage.Name = "CommitImage" Me.CommitImage.Size = New System.Drawing.Size(289, 22) - Me.CommitImage.Text = "Apply changes to image..." + Me.CommitImage.Text = LocalizationService.ForSection("Designer.Main")("Apply.Changes.Image.Button") ' 'DeleteImage ' Me.DeleteImage.Name = "DeleteImage" Me.DeleteImage.Size = New System.Drawing.Size(289, 22) - Me.DeleteImage.Text = "Delete volume image from WIM file..." + Me.DeleteImage.Text = LocalizationService.ForSection("Designer.Main")("Delete.Volume.Image.Button") ' 'ExportImage ' Me.ExportImage.Name = "ExportImage" Me.ExportImage.Size = New System.Drawing.Size(289, 22) - Me.ExportImage.Text = "Export image..." + Me.ExportImage.Text = LocalizationService.ForSection("Designer.Main")("ExportImage.Button") ' 'GetImageInfo ' Me.GetImageInfo.Name = "GetImageInfo" Me.GetImageInfo.Size = New System.Drawing.Size(289, 22) - Me.GetImageInfo.Text = "Get image information..." + Me.GetImageInfo.Text = LocalizationService.ForSection("Designer.Main")("Get.Image.Button") ' 'GetWIMBootEntry ' Me.GetWIMBootEntry.Name = "GetWIMBootEntry" Me.GetWIMBootEntry.Size = New System.Drawing.Size(289, 22) - Me.GetWIMBootEntry.Text = "Get WIMBoot configuration entries..." + Me.GetWIMBootEntry.Text = LocalizationService.ForSection("Designer.Main")("Get.WIM.Boot.Button") Me.GetWIMBootEntry.Visible = False ' 'ListImage ' Me.ListImage.Name = "ListImage" Me.ListImage.Size = New System.Drawing.Size(289, 22) - Me.ListImage.Text = "List files and directories in image..." + Me.ListImage.Text = LocalizationService.ForSection("Designer.Main")("List.Files.Dirs.Button") ' 'MountImage ' Me.MountImage.Name = "MountImage" Me.MountImage.Size = New System.Drawing.Size(289, 22) - Me.MountImage.Text = "Mount image..." + Me.MountImage.Text = LocalizationService.ForSection("Designer.Main")("MountImage.Button") ' 'OptimizeFFU ' Me.OptimizeFFU.Name = "OptimizeFFU" Me.OptimizeFFU.Size = New System.Drawing.Size(289, 22) - Me.OptimizeFFU.Text = "Optimize FFU file..." + Me.OptimizeFFU.Text = LocalizationService.ForSection("Designer.Main")("Optimize.FFU.File.Button") ' 'OptimizeImage ' Me.OptimizeImage.Name = "OptimizeImage" Me.OptimizeImage.Size = New System.Drawing.Size(289, 22) - Me.OptimizeImage.Text = "Optimize image..." + Me.OptimizeImage.Text = LocalizationService.ForSection("Designer.Main")("OptimizeImage.Button") ' 'RemountImage ' Me.RemountImage.Name = "RemountImage" Me.RemountImage.Size = New System.Drawing.Size(289, 22) - Me.RemountImage.Text = "Remount image for servicing..." + Me.RemountImage.Text = LocalizationService.ForSection("Designer.Main")("Remount.Image.Button") ' 'SplitFFU ' Me.SplitFFU.Name = "SplitFFU" Me.SplitFFU.Size = New System.Drawing.Size(289, 22) - Me.SplitFFU.Text = "Splt FFU file into SFU files..." + Me.SplitFFU.Text = LocalizationService.ForSection("Designer.Main")("Split.FFU.File.Button") ' 'SplitImage ' Me.SplitImage.Name = "SplitImage" Me.SplitImage.Size = New System.Drawing.Size(289, 22) - Me.SplitImage.Text = "Split WIM file into SWM files..." + Me.SplitImage.Text = LocalizationService.ForSection("Designer.Main")("Split.WIM.File.Button") ' 'UnmountImage ' Me.UnmountImage.Name = "UnmountImage" Me.UnmountImage.Size = New System.Drawing.Size(289, 22) - Me.UnmountImage.Text = "Unmount image..." + Me.UnmountImage.Text = LocalizationService.ForSection("Designer.Main")("UnmountImage.Button") ' 'UpdateWIMBootEntry ' Me.UpdateWIMBootEntry.Name = "UpdateWIMBootEntry" Me.UpdateWIMBootEntry.Size = New System.Drawing.Size(289, 22) - Me.UpdateWIMBootEntry.Text = "Update WIMBoot configuration entry..." + Me.UpdateWIMBootEntry.Text = LocalizationService.ForSection("Designer.Main")("Update.WIM.Boot.Button") Me.UpdateWIMBootEntry.Visible = False ' 'ApplySiloedPackage ' Me.ApplySiloedPackage.Name = "ApplySiloedPackage" Me.ApplySiloedPackage.Size = New System.Drawing.Size(289, 22) - Me.ApplySiloedPackage.Text = "Apply siloed provisioning package..." + Me.ApplySiloedPackage.Text = LocalizationService.ForSection("Designer.Main")("Apply.Siloed.Prov.Button") Me.ApplySiloedPackage.Visible = False ' 'ToolStripSeparator34 @@ -957,50 +957,50 @@ Partial Class MainForm ' Me.SaveImageInformationToolStripMenuItem.Name = "SaveImageInformationToolStripMenuItem" Me.SaveImageInformationToolStripMenuItem.Size = New System.Drawing.Size(289, 22) - Me.SaveImageInformationToolStripMenuItem.Text = "Save image information..." + Me.SaveImageInformationToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Save.Image.Button") ' 'OSPackagesToolStripMenuItem ' Me.OSPackagesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GetPackages, Me.AddPackage, Me.RemovePackage, Me.GetFeatures, Me.EnableFeature, Me.DisableFeature, Me.ToolStripSeparator4, Me.CleanupImage}) Me.OSPackagesToolStripMenuItem.Name = "OSPackagesToolStripMenuItem" Me.OSPackagesToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.OSPackagesToolStripMenuItem.Text = "OS packages" + Me.OSPackagesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("OSPackages.Label") ' 'GetPackages ' Me.GetPackages.Name = "GetPackages" Me.GetPackages.Size = New System.Drawing.Size(292, 22) - Me.GetPackages.Text = "Get package information..." + Me.GetPackages.Text = LocalizationService.ForSection("Designer.Main")("GetPackages.Button") ' 'AddPackage ' Me.AddPackage.Name = "AddPackage" Me.AddPackage.Size = New System.Drawing.Size(292, 22) - Me.AddPackage.Text = "Add package..." + Me.AddPackage.Text = LocalizationService.ForSection("Designer.Main")("AddPackage.Button") ' 'RemovePackage ' Me.RemovePackage.Name = "RemovePackage" Me.RemovePackage.Size = New System.Drawing.Size(292, 22) - Me.RemovePackage.Text = "Remove package..." + Me.RemovePackage.Text = LocalizationService.ForSection("Designer.Main")("RemovePackage.Button") ' 'GetFeatures ' Me.GetFeatures.Name = "GetFeatures" Me.GetFeatures.Size = New System.Drawing.Size(292, 22) - Me.GetFeatures.Text = "Get feature information..." + Me.GetFeatures.Text = LocalizationService.ForSection("Designer.Main")("GetFeatures.Button") ' 'EnableFeature ' Me.EnableFeature.Name = "EnableFeature" Me.EnableFeature.Size = New System.Drawing.Size(292, 22) - Me.EnableFeature.Text = "Enable feature..." + Me.EnableFeature.Text = LocalizationService.ForSection("Designer.Main")("EnableFeature.Button") ' 'DisableFeature ' Me.DisableFeature.Name = "DisableFeature" Me.DisableFeature.Size = New System.Drawing.Size(292, 22) - Me.DisableFeature.Text = "Disable feature..." + Me.DisableFeature.Text = LocalizationService.ForSection("Designer.Main")("DisableFeature.Button") ' 'ToolStripSeparator4 ' @@ -1011,33 +1011,33 @@ Partial Class MainForm ' Me.CleanupImage.Name = "CleanupImage" Me.CleanupImage.Size = New System.Drawing.Size(292, 22) - Me.CleanupImage.Text = "Perform cleanup or recovery operations..." + Me.CleanupImage.Text = LocalizationService.ForSection("Designer.Main")("CleanupRecovery.Button") ' 'ProvisioningPackagesToolStripMenuItem ' Me.ProvisioningPackagesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AddProvisioningPackage, Me.GetProvisioningPackageInfo, Me.ApplyCustomDataImage}) Me.ProvisioningPackagesToolStripMenuItem.Name = "ProvisioningPackagesToolStripMenuItem" Me.ProvisioningPackagesToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.ProvisioningPackagesToolStripMenuItem.Text = "Provisioning packages" + Me.ProvisioningPackagesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ProvPackages.Label") ' 'AddProvisioningPackage ' Me.AddProvisioningPackage.Name = "AddProvisioningPackage" Me.AddProvisioningPackage.Size = New System.Drawing.Size(283, 22) - Me.AddProvisioningPackage.Text = "Add provisioning package..." + Me.AddProvisioningPackage.Text = LocalizationService.ForSection("Designer.Main")("Add.Prov.Package.Button") ' 'GetProvisioningPackageInfo ' Me.GetProvisioningPackageInfo.Name = "GetProvisioningPackageInfo" Me.GetProvisioningPackageInfo.Size = New System.Drawing.Size(283, 22) - Me.GetProvisioningPackageInfo.Text = "Get provisioning package information..." + Me.GetProvisioningPackageInfo.Text = LocalizationService.ForSection("Designer.Main")("Get.Prov.Package.Button") Me.GetProvisioningPackageInfo.Visible = False ' 'ApplyCustomDataImage ' Me.ApplyCustomDataImage.Name = "ApplyCustomDataImage" Me.ApplyCustomDataImage.Size = New System.Drawing.Size(283, 22) - Me.ApplyCustomDataImage.Text = "Apply custom data image..." + Me.ApplyCustomDataImage.Text = LocalizationService.ForSection("Designer.Main")("Apply.CustomData.Button") Me.ApplyCustomDataImage.Visible = False ' 'AppPackagesToolStripMenuItem @@ -1045,38 +1045,38 @@ Partial Class MainForm Me.AppPackagesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GetProvisionedAppxPackages, Me.AddProvisionedAppxPackage, Me.RemoveProvisionedAppxPackage, Me.OptimizeProvisionedAppxPackages, Me.SetProvisionedAppxDataFile}) Me.AppPackagesToolStripMenuItem.Name = "AppPackagesToolStripMenuItem" Me.AppPackagesToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.AppPackagesToolStripMenuItem.Text = "App packages" + Me.AppPackagesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("AppPackages.Label") ' 'GetProvisionedAppxPackages ' Me.GetProvisionedAppxPackages.Name = "GetProvisionedAppxPackages" Me.GetProvisionedAppxPackages.Size = New System.Drawing.Size(287, 22) - Me.GetProvisionedAppxPackages.Text = "Get app package information..." + Me.GetProvisionedAppxPackages.Text = LocalizationService.ForSection("Designer.Main")("Get.App.Package.Button") ' 'AddProvisionedAppxPackage ' Me.AddProvisionedAppxPackage.Name = "AddProvisionedAppxPackage" Me.AddProvisionedAppxPackage.Size = New System.Drawing.Size(287, 22) - Me.AddProvisionedAppxPackage.Text = "Add provisioned app package..." + Me.AddProvisionedAppxPackage.Text = LocalizationService.ForSection("Designer.Main")("Add.Provisioned.App.Button") ' 'RemoveProvisionedAppxPackage ' Me.RemoveProvisionedAppxPackage.Name = "RemoveProvisionedAppxPackage" Me.RemoveProvisionedAppxPackage.Size = New System.Drawing.Size(287, 22) - Me.RemoveProvisionedAppxPackage.Text = "Remove provisioning for app package..." + Me.RemoveProvisionedAppxPackage.Text = LocalizationService.ForSection("Designer.Main")("Remove.Prov.App.Button") ' 'OptimizeProvisionedAppxPackages ' Me.OptimizeProvisionedAppxPackages.Name = "OptimizeProvisionedAppxPackages" Me.OptimizeProvisionedAppxPackages.Size = New System.Drawing.Size(287, 22) - Me.OptimizeProvisionedAppxPackages.Text = "Optimize provisioned packages..." + Me.OptimizeProvisionedAppxPackages.Text = LocalizationService.ForSection("Designer.Main")("Optimize.Provisioned.Button") Me.OptimizeProvisionedAppxPackages.Visible = False ' 'SetProvisionedAppxDataFile ' Me.SetProvisionedAppxDataFile.Name = "SetProvisionedAppxDataFile" Me.SetProvisionedAppxDataFile.Size = New System.Drawing.Size(287, 22) - Me.SetProvisionedAppxDataFile.Text = "Add custom data file into app package..." + Me.SetProvisionedAppxDataFile.Text = LocalizationService.ForSection("Designer.Main")("Add.CustomData.File.Button") Me.SetProvisionedAppxDataFile.Visible = False ' 'AppPatchesToolStripMenuItem @@ -1084,125 +1084,125 @@ Partial Class MainForm Me.AppPatchesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.CheckAppPatch, Me.GetAppPatchInfo, Me.GetAppPatches, Me.GetAppInfo, Me.GetApps}) Me.AppPatchesToolStripMenuItem.Name = "AppPatchesToolStripMenuItem" Me.AppPatchesToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.AppPatchesToolStripMenuItem.Text = "App (MSP) servicing" + Me.AppPatchesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("AppMspservicing.Label") Me.AppPatchesToolStripMenuItem.Visible = False ' 'CheckAppPatch ' Me.CheckAppPatch.Name = "CheckAppPatch" Me.CheckAppPatch.Size = New System.Drawing.Size(408, 22) - Me.CheckAppPatch.Text = "Get application patch information..." + Me.CheckAppPatch.Text = LocalizationService.ForSection("Designer.Main")("Get.App.Patch.Button") ' 'GetAppPatchInfo ' Me.GetAppPatchInfo.Name = "GetAppPatchInfo" Me.GetAppPatchInfo.Size = New System.Drawing.Size(408, 22) - Me.GetAppPatchInfo.Text = "Get detailed installed application patch information..." + Me.GetAppPatchInfo.Text = LocalizationService.ForSection("Designer.Main")("Installed.App.Details.Button") ' 'GetAppPatches ' Me.GetAppPatches.Name = "GetAppPatches" Me.GetAppPatches.Size = New System.Drawing.Size(408, 22) - Me.GetAppPatches.Text = "Get basic installed application patch information..." + Me.GetAppPatches.Text = LocalizationService.ForSection("Designer.Main")("Basic.Installed.App.Button") ' 'GetAppInfo ' Me.GetAppInfo.Name = "GetAppInfo" Me.GetAppInfo.Size = New System.Drawing.Size(408, 22) - Me.GetAppInfo.Text = "Get detailed Windows Installer (*.msi) application information..." + Me.GetAppInfo.Text = LocalizationService.ForSection("Designer.Main")("Get.Detailed.Button") ' 'GetApps ' Me.GetApps.Name = "GetApps" Me.GetApps.Size = New System.Drawing.Size(408, 22) - Me.GetApps.Text = "Get basic Windows Installer (*.msi) application information..." + Me.GetApps.Text = LocalizationService.ForSection("Designer.Main")("Get.Basic.Windows.Button") ' 'DefaultAppAssociationsToolStripMenuItem ' Me.DefaultAppAssociationsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExportDefaultAppAssociations, Me.GetDefaultAppAssociations, Me.ImportDefaultAppAssociations, Me.RemoveDefaultAppAssociations}) Me.DefaultAppAssociationsToolStripMenuItem.Name = "DefaultAppAssociationsToolStripMenuItem" Me.DefaultAppAssociationsToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.DefaultAppAssociationsToolStripMenuItem.Text = "Default app associations" + Me.DefaultAppAssociationsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("DefaultApp.Assoc.Label") Me.DefaultAppAssociationsToolStripMenuItem.Visible = False ' 'ExportDefaultAppAssociations ' Me.ExportDefaultAppAssociations.Name = "ExportDefaultAppAssociations" Me.ExportDefaultAppAssociations.Size = New System.Drawing.Size(331, 22) - Me.ExportDefaultAppAssociations.Text = "Export default application associations..." + Me.ExportDefaultAppAssociations.Text = LocalizationService.ForSection("Designer.Main")("Export.Default.Button") ' 'GetDefaultAppAssociations ' Me.GetDefaultAppAssociations.Name = "GetDefaultAppAssociations" Me.GetDefaultAppAssociations.Size = New System.Drawing.Size(331, 22) - Me.GetDefaultAppAssociations.Text = "Get default application association information..." + Me.GetDefaultAppAssociations.Text = LocalizationService.ForSection("Designer.Main")("DefaultApp.Assoc.Button") ' 'ImportDefaultAppAssociations ' Me.ImportDefaultAppAssociations.Name = "ImportDefaultAppAssociations" Me.ImportDefaultAppAssociations.Size = New System.Drawing.Size(331, 22) - Me.ImportDefaultAppAssociations.Text = "Import default application associations..." + Me.ImportDefaultAppAssociations.Text = LocalizationService.ForSection("Designer.Main")("Import.Default.Button") ' 'RemoveDefaultAppAssociations ' Me.RemoveDefaultAppAssociations.Name = "RemoveDefaultAppAssociations" Me.RemoveDefaultAppAssociations.Size = New System.Drawing.Size(331, 22) - Me.RemoveDefaultAppAssociations.Text = "Remove default application associations..." + Me.RemoveDefaultAppAssociations.Text = LocalizationService.ForSection("Designer.Main")("Remove.Default.Button") ' 'LanguagesAndRegionSettingsToolStripMenuItem ' Me.LanguagesAndRegionSettingsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GetIntl, Me.SetUILang, Me.SetUILangFallback, Me.SetSysUILang, Me.SetSysLocale, Me.SetUserLocale, Me.SetInputLocale, Me.ToolStripSeparator5, Me.SetAllIntl, Me.ToolStripSeparator6, Me.SetTimeZone, Me.ToolStripSeparator7, Me.SetSKUIntlDefaults, Me.ToolStripSeparator8, Me.SetLayeredDriver, Me.GenLangINI, Me.SetSetupUILang}) Me.LanguagesAndRegionSettingsToolStripMenuItem.Name = "LanguagesAndRegionSettingsToolStripMenuItem" Me.LanguagesAndRegionSettingsToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.LanguagesAndRegionSettingsToolStripMenuItem.Text = "Languages and regional settings" + Me.LanguagesAndRegionSettingsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Languages.Regional.Label") ' 'GetIntl ' Me.GetIntl.Name = "GetIntl" Me.GetIntl.Size = New System.Drawing.Size(295, 22) - Me.GetIntl.Text = "Get international settings and languages..." + Me.GetIntl.Text = LocalizationService.ForSection("Designer.Main")("Intl.Settings.Button") Me.GetIntl.Visible = False ' 'SetUILang ' Me.SetUILang.Name = "SetUILang" Me.SetUILang.Size = New System.Drawing.Size(295, 22) - Me.SetUILang.Text = "Set UI language..." + Me.SetUILang.Text = LocalizationService.ForSection("Designer.Main")("SetUilanguage.Button") Me.SetUILang.Visible = False ' 'SetUILangFallback ' Me.SetUILangFallback.Name = "SetUILangFallback" Me.SetUILangFallback.Size = New System.Drawing.Size(295, 22) - Me.SetUILangFallback.Text = "Set default UI fallback language..." + Me.SetUILangFallback.Text = LocalizationService.ForSection("Designer.Main")("Set.Default.Button") Me.SetUILangFallback.Visible = False ' 'SetSysUILang ' Me.SetSysUILang.Name = "SetSysUILang" Me.SetSysUILang.Size = New System.Drawing.Size(295, 22) - Me.SetSysUILang.Text = "Set system preferred UI language..." + Me.SetSysUILang.Text = LocalizationService.ForSection("Designer.Main")("Set.System.Preferred.Button") Me.SetSysUILang.Visible = False ' 'SetSysLocale ' Me.SetSysLocale.Name = "SetSysLocale" Me.SetSysLocale.Size = New System.Drawing.Size(295, 22) - Me.SetSysLocale.Text = "Set system locale..." + Me.SetSysLocale.Text = LocalizationService.ForSection("Designer.Main")("Set.System.Locale.Button") Me.SetSysLocale.Visible = False ' 'SetUserLocale ' Me.SetUserLocale.Name = "SetUserLocale" Me.SetUserLocale.Size = New System.Drawing.Size(295, 22) - Me.SetUserLocale.Text = "Set user locale..." + Me.SetUserLocale.Text = LocalizationService.ForSection("Designer.Main")("Set.User.Locale.Button") Me.SetUserLocale.Visible = False ' 'SetInputLocale ' Me.SetInputLocale.Name = "SetInputLocale" Me.SetInputLocale.Size = New System.Drawing.Size(295, 22) - Me.SetInputLocale.Text = "Set input locale..." + Me.SetInputLocale.Text = LocalizationService.ForSection("Designer.Main")("Set.Input.Locale.Button") Me.SetInputLocale.Visible = False ' 'ToolStripSeparator5 @@ -1215,7 +1215,7 @@ Partial Class MainForm ' Me.SetAllIntl.Name = "SetAllIntl" Me.SetAllIntl.Size = New System.Drawing.Size(295, 22) - Me.SetAllIntl.Text = "Set UI language and locales..." + Me.SetAllIntl.Text = LocalizationService.ForSection("Designer.Main")("Set.UI.Button") Me.SetAllIntl.Visible = False ' 'ToolStripSeparator6 @@ -1228,7 +1228,7 @@ Partial Class MainForm ' Me.SetTimeZone.Name = "SetTimeZone" Me.SetTimeZone.Size = New System.Drawing.Size(295, 22) - Me.SetTimeZone.Text = "Set default time zone..." + Me.SetTimeZone.Text = LocalizationService.ForSection("Designer.Main")("Set.Default.Time.Button") Me.SetTimeZone.Visible = False ' 'ToolStripSeparator7 @@ -1241,7 +1241,7 @@ Partial Class MainForm ' Me.SetSKUIntlDefaults.Name = "SetSKUIntlDefaults" Me.SetSKUIntlDefaults.Size = New System.Drawing.Size(295, 22) - Me.SetSKUIntlDefaults.Text = "Set default languages and locales..." + Me.SetSKUIntlDefaults.Text = LocalizationService.ForSection("Designer.Main")("Set.Default.Languages.Button") Me.SetSKUIntlDefaults.Visible = False ' 'ToolStripSeparator8 @@ -1254,20 +1254,20 @@ Partial Class MainForm ' Me.SetLayeredDriver.Name = "SetLayeredDriver" Me.SetLayeredDriver.Size = New System.Drawing.Size(295, 22) - Me.SetLayeredDriver.Text = "Set layered driver..." + Me.SetLayeredDriver.Text = LocalizationService.ForSection("Designer.Main")("Set.Layered.Driver.Button") ' 'GenLangINI ' Me.GenLangINI.Name = "GenLangINI" Me.GenLangINI.Size = New System.Drawing.Size(295, 22) - Me.GenLangINI.Text = "Generate Lang.ini file..." + Me.GenLangINI.Text = LocalizationService.ForSection("Designer.Main")("Generate.Lang.Ini.Button") Me.GenLangINI.Visible = False ' 'SetSetupUILang ' Me.SetSetupUILang.Name = "SetSetupUILang" Me.SetSetupUILang.Size = New System.Drawing.Size(295, 22) - Me.SetSetupUILang.Text = "Set default Setup language..." + Me.SetSetupUILang.Text = LocalizationService.ForSection("Designer.Main")("Set.Default.Setup.Button") Me.SetSetupUILang.Visible = False ' 'CapabilitiesToolStripMenuItem @@ -1275,119 +1275,119 @@ Partial Class MainForm Me.CapabilitiesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AddCapability, Me.ExportSource, Me.GetCapabilities, Me.RemoveCapability}) Me.CapabilitiesToolStripMenuItem.Name = "CapabilitiesToolStripMenuItem" Me.CapabilitiesToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.CapabilitiesToolStripMenuItem.Text = "Capabilities" + Me.CapabilitiesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Capabilities.Label") ' 'AddCapability ' Me.AddCapability.Name = "AddCapability" Me.AddCapability.Size = New System.Drawing.Size(258, 22) - Me.AddCapability.Text = "Add capability..." + Me.AddCapability.Text = LocalizationService.ForSection("Designer.Main")("AddCapability.Button") ' 'ExportSource ' Me.ExportSource.Name = "ExportSource" Me.ExportSource.Size = New System.Drawing.Size(258, 22) - Me.ExportSource.Text = "Export capabilities into repository..." + Me.ExportSource.Text = LocalizationService.ForSection("Designer.Main")("Export.Capabilities.Button") Me.ExportSource.Visible = False ' 'GetCapabilities ' Me.GetCapabilities.Name = "GetCapabilities" Me.GetCapabilities.Size = New System.Drawing.Size(258, 22) - Me.GetCapabilities.Text = "Get capability information..." + Me.GetCapabilities.Text = LocalizationService.ForSection("Designer.Main")("GetCapabilities.Button") ' 'RemoveCapability ' Me.RemoveCapability.Name = "RemoveCapability" Me.RemoveCapability.Size = New System.Drawing.Size(258, 22) - Me.RemoveCapability.Text = "Remove capability..." + Me.RemoveCapability.Text = LocalizationService.ForSection("Designer.Main")("RemoveCapability.Button") ' 'WindowsEditionsToolStripMenuItem ' Me.WindowsEditionsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GetCurrentEdition, Me.GetTargetEditions, Me.SetEdition, Me.SetProductKey}) Me.WindowsEditionsToolStripMenuItem.Name = "WindowsEditionsToolStripMenuItem" Me.WindowsEditionsToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.WindowsEditionsToolStripMenuItem.Text = "Windows editions" + Me.WindowsEditionsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("WindowsEditions.Label") ' 'GetCurrentEdition ' Me.GetCurrentEdition.Name = "GetCurrentEdition" Me.GetCurrentEdition.Size = New System.Drawing.Size(187, 22) - Me.GetCurrentEdition.Text = "Get current edition..." + Me.GetCurrentEdition.Text = LocalizationService.ForSection("Designer.Main")("Get.Edition.Button") ' 'GetTargetEditions ' Me.GetTargetEditions.Name = "GetTargetEditions" Me.GetTargetEditions.Size = New System.Drawing.Size(187, 22) - Me.GetTargetEditions.Text = "Get upgrade targets..." + Me.GetTargetEditions.Text = LocalizationService.ForSection("Designer.Main")("Get.Upgrade.Targets.Button") ' 'SetEdition ' Me.SetEdition.Name = "SetEdition" Me.SetEdition.Size = New System.Drawing.Size(187, 22) - Me.SetEdition.Text = "Upgrade image..." + Me.SetEdition.Text = LocalizationService.ForSection("Designer.Main")("UpgradeImage.Button") ' 'SetProductKey ' Me.SetProductKey.Name = "SetProductKey" Me.SetProductKey.Size = New System.Drawing.Size(187, 22) - Me.SetProductKey.Text = "Set product key..." + Me.SetProductKey.Text = LocalizationService.ForSection("Designer.Main")("SetProductKey.Button") ' 'DriversToolStripMenuItem ' Me.DriversToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GetDrivers, Me.AddDriver, Me.RemoveDriver, Me.ExportDriver, Me.ImportDriver}) Me.DriversToolStripMenuItem.Name = "DriversToolStripMenuItem" Me.DriversToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.DriversToolStripMenuItem.Text = "Drivers" + Me.DriversToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Drivers.Label") ' 'GetDrivers ' Me.GetDrivers.Name = "GetDrivers" Me.GetDrivers.Size = New System.Drawing.Size(204, 22) - Me.GetDrivers.Text = "Get driver information..." + Me.GetDrivers.Text = LocalizationService.ForSection("Designer.Main")("GetDrivers.Button") ' 'AddDriver ' Me.AddDriver.Name = "AddDriver" Me.AddDriver.Size = New System.Drawing.Size(204, 22) - Me.AddDriver.Text = "Add driver..." + Me.AddDriver.Text = LocalizationService.ForSection("Designer.Main")("AddDriver.Button") ' 'RemoveDriver ' Me.RemoveDriver.Name = "RemoveDriver" Me.RemoveDriver.Size = New System.Drawing.Size(204, 22) - Me.RemoveDriver.Text = "Remove driver..." + Me.RemoveDriver.Text = LocalizationService.ForSection("Designer.Main")("RemoveDriver.Button") ' 'ExportDriver ' Me.ExportDriver.Name = "ExportDriver" Me.ExportDriver.Size = New System.Drawing.Size(204, 22) - Me.ExportDriver.Text = "Export driver packages..." + Me.ExportDriver.Text = LocalizationService.ForSection("Designer.Main")("Export.DriverPackages.Button") ' 'ImportDriver ' Me.ImportDriver.Name = "ImportDriver" Me.ImportDriver.Size = New System.Drawing.Size(204, 22) - Me.ImportDriver.Text = "Import driver packages..." + Me.ImportDriver.Text = LocalizationService.ForSection("Designer.Main")("Import.DriverPackages.Button") ' 'UnattendedAnswerFilesToolStripMenuItem ' Me.UnattendedAnswerFilesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ApplyUnattend, Me.RemoveAppliedAnswerFileToolStripMenuItem, Me.ToolStripSeparator48, Me.AuditModeTSMI}) Me.UnattendedAnswerFilesToolStripMenuItem.Name = "UnattendedAnswerFilesToolStripMenuItem" Me.UnattendedAnswerFilesToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.UnattendedAnswerFilesToolStripMenuItem.Text = "Unattended answer files" + Me.UnattendedAnswerFilesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Unattended.Answer.Label") ' 'ApplyUnattend ' Me.ApplyUnattend.Name = "ApplyUnattend" Me.ApplyUnattend.Size = New System.Drawing.Size(237, 22) - Me.ApplyUnattend.Text = "Apply unattended answer file..." + Me.ApplyUnattend.Text = LocalizationService.ForSection("Designer.Main")("Apply.Unattended.Button") ' 'RemoveAppliedAnswerFileToolStripMenuItem ' Me.RemoveAppliedAnswerFileToolStripMenuItem.Name = "RemoveAppliedAnswerFileToolStripMenuItem" Me.RemoveAppliedAnswerFileToolStripMenuItem.Size = New System.Drawing.Size(237, 22) - Me.RemoveAppliedAnswerFileToolStripMenuItem.Text = "Remove applied answer file" + Me.RemoveAppliedAnswerFileToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Remove.Applied.Label") ' 'ToolStripSeparator48 ' @@ -1398,129 +1398,129 @@ Partial Class MainForm ' Me.AuditModeTSMI.Name = "AuditModeTSMI" Me.AuditModeTSMI.Size = New System.Drawing.Size(237, 22) - Me.AuditModeTSMI.Text = "Make system enter audit mode" + Me.AuditModeTSMI.Text = LocalizationService.ForSection("Designer.Main")("System.Enter.Audit.Label") ' 'WindowsPEServicingToolStripMenuItem ' Me.WindowsPEServicingToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GetPESettings, Me.SetScratchSpace, Me.SetTargetPath}) Me.WindowsPEServicingToolStripMenuItem.Name = "WindowsPEServicingToolStripMenuItem" Me.WindowsPEServicingToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.WindowsPEServicingToolStripMenuItem.Text = "Windows PE servicing" + Me.WindowsPEServicingToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("WindowsPE.Label") ' 'GetPESettings ' Me.GetPESettings.Name = "GetPESettings" Me.GetPESettings.Size = New System.Drawing.Size(173, 22) - Me.GetPESettings.Text = "Get settings..." + Me.GetPESettings.Text = LocalizationService.ForSection("Designer.Main")("GetSettings.Button") ' 'SetScratchSpace ' Me.SetScratchSpace.Name = "SetScratchSpace" Me.SetScratchSpace.Size = New System.Drawing.Size(173, 22) - Me.SetScratchSpace.Text = "Set scratch space..." + Me.SetScratchSpace.Text = LocalizationService.ForSection("Designer.Main")("SetScratchSpace.Button") ' 'SetTargetPath ' Me.SetTargetPath.Name = "SetTargetPath" Me.SetTargetPath.Size = New System.Drawing.Size(173, 22) - Me.SetTargetPath.Text = "Set target path..." + Me.SetTargetPath.Text = LocalizationService.ForSection("Designer.Main")("Set.Target.Path.Button") ' 'OSUninstallToolStripMenuItem ' Me.OSUninstallToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GetOSUninstallWindow, Me.InitiateOSUninstall, Me.RemoveOSUninstall, Me.SetOSUninstallWindow}) Me.OSUninstallToolStripMenuItem.Name = "OSUninstallToolStripMenuItem" Me.OSUninstallToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.OSUninstallToolStripMenuItem.Text = "OS uninstall" + Me.OSUninstallToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("OSUninstall.Label") ' 'GetOSUninstallWindow ' Me.GetOSUninstallWindow.Name = "GetOSUninstallWindow" Me.GetOSUninstallWindow.Size = New System.Drawing.Size(209, 22) - Me.GetOSUninstallWindow.Text = "Get uninstall window..." + Me.GetOSUninstallWindow.Text = LocalizationService.ForSection("Designer.Main")("Get.Uninstall.Window.Button") ' 'InitiateOSUninstall ' Me.InitiateOSUninstall.Name = "InitiateOSUninstall" Me.InitiateOSUninstall.Size = New System.Drawing.Size(209, 22) - Me.InitiateOSUninstall.Text = "Initiate uninstall..." + Me.InitiateOSUninstall.Text = LocalizationService.ForSection("Designer.Main")("Initiate.Uninstall.Button") ' 'RemoveOSUninstall ' Me.RemoveOSUninstall.Name = "RemoveOSUninstall" Me.RemoveOSUninstall.Size = New System.Drawing.Size(209, 22) - Me.RemoveOSUninstall.Text = "Remove roll back ability..." + Me.RemoveOSUninstall.Text = LocalizationService.ForSection("Designer.Main")("Remove.Roll.Back.Button") ' 'SetOSUninstallWindow ' Me.SetOSUninstallWindow.Name = "SetOSUninstallWindow" Me.SetOSUninstallWindow.Size = New System.Drawing.Size(209, 22) - Me.SetOSUninstallWindow.Text = "Set uninstall window..." + Me.SetOSUninstallWindow.Text = LocalizationService.ForSection("Designer.Main")("Set.Uninstall.Window.Button") ' 'ReservedStorageToolStripMenuItem ' Me.ReservedStorageToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SetReservedStorageState, Me.GetReservedStorageState}) Me.ReservedStorageToolStripMenuItem.Name = "ReservedStorageToolStripMenuItem" Me.ReservedStorageToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.ReservedStorageToolStripMenuItem.Text = "Reserved storage" + Me.ReservedStorageToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ReservedStorage.Label") Me.ReservedStorageToolStripMenuItem.Visible = False ' 'SetReservedStorageState ' Me.SetReservedStorageState.Name = "SetReservedStorageState" Me.SetReservedStorageState.Size = New System.Drawing.Size(218, 22) - Me.SetReservedStorageState.Text = "Set reserved storage state..." + Me.SetReservedStorageState.Text = LocalizationService.ForSection("Designer.Main")("Set.Reserved.Storage.Button") ' 'GetReservedStorageState ' Me.GetReservedStorageState.Name = "GetReservedStorageState" Me.GetReservedStorageState.Size = New System.Drawing.Size(218, 22) - Me.GetReservedStorageState.Text = "Get reserved storage state..." + Me.GetReservedStorageState.Text = LocalizationService.ForSection("Designer.Main")("Get.Reserved.Storage.Button") ' 'MicrosoftEdgeToolStripMenuItem ' Me.MicrosoftEdgeToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AddEdge, Me.AddEdgeBrowser, Me.AddEdgeWebView}) Me.MicrosoftEdgeToolStripMenuItem.Name = "MicrosoftEdgeToolStripMenuItem" Me.MicrosoftEdgeToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.MicrosoftEdgeToolStripMenuItem.Text = "Microsoft Edge" + Me.MicrosoftEdgeToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("MicrosoftEdge.Label") Me.MicrosoftEdgeToolStripMenuItem.Visible = False ' 'AddEdge ' Me.AddEdge.Name = "AddEdge" Me.AddEdge.Size = New System.Drawing.Size(186, 22) - Me.AddEdge.Text = "Add Edge..." + Me.AddEdge.Text = LocalizationService.ForSection("Designer.Main")("AddEdge.Button") ' 'AddEdgeBrowser ' Me.AddEdgeBrowser.Name = "AddEdgeBrowser" Me.AddEdgeBrowser.Size = New System.Drawing.Size(186, 22) - Me.AddEdgeBrowser.Text = "Add Edge browser..." + Me.AddEdgeBrowser.Text = LocalizationService.ForSection("Designer.Main")("Add.Edge.Browser.Button") ' 'AddEdgeWebView ' Me.AddEdgeWebView.Name = "AddEdgeWebView" Me.AddEdgeWebView.Size = New System.Drawing.Size(186, 22) - Me.AddEdgeWebView.Text = "Add Edge WebView..." + Me.AddEdgeWebView.Text = LocalizationService.ForSection("Designer.Main")("Add.Edge.Web.Button") ' 'ToolsToolStripMenuItem ' Me.ToolsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ImageConversionToolStripMenuItem, Me.ToolStripSeparator12, Me.MergeSWM, Me.ToolStripSeparator18, Me.RemountImageWithWritePermissionsToolStripMenuItem, Me.ToolStripSeparator13, Me.CommandShellToolStripMenuItem, Me.ToolStripSeparator16, Me.UnattendedAnswerFileManagerToolStripMenuItem, Me.UnattendedAnswerFileCreatorToolStripMenuItem, Me.ToolStripSeparator42, Me.RegCplToolStripMenuItem, Me.ManageSystemServicesToolStripMenuItem, Me.ManageSystemEnvironmentVariablesToolStripMenuItem, Me.ToolStripSeparator43, Me.WebResourcesToolStripMenuItem, Me.ToolStripSeparator45, Me.PxeHelperServersTSMI, Me.ToolStripSeparator41, Me.EvaluateWindowsUEFICA2023ReadinessToolStripMenuItem, Me.ToolStripSeparator47, Me.ReportManagerToolStripMenuItem, Me.MountedImageManagerTSMI, Me.ToolStripSeparator28, Me.CreateDiscImageToolStripMenuItem, Me.CreateTestingEnvironmentToolStripMenuItem, Me.ToolStripSeparator38, Me.WimScriptEditorCommand, Me.ToolStripSeparator49, Me.SSE_TSMI, Me.ThemeDesigner_TSMI, Me.ToolStripSeparator9, Me.OptionsToolStripMenuItem}) Me.ToolsToolStripMenuItem.Name = "ToolsToolStripMenuItem" Me.ToolsToolStripMenuItem.Size = New System.Drawing.Size(47, 20) - Me.ToolsToolStripMenuItem.Text = "&Tools" + Me.ToolsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Tools.Label") ' 'ImageConversionToolStripMenuItem ' Me.ImageConversionToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.WIMESDToolStripMenuItem}) Me.ImageConversionToolStripMenuItem.Name = "ImageConversionToolStripMenuItem" Me.ImageConversionToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.ImageConversionToolStripMenuItem.Text = "Image conversion" + Me.ImageConversionToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ImageConversion.Label") ' 'WIMESDToolStripMenuItem ' Me.WIMESDToolStripMenuItem.Name = "WIMESDToolStripMenuItem" Me.WIMESDToolStripMenuItem.Size = New System.Drawing.Size(146, 22) - Me.WIMESDToolStripMenuItem.Text = "WIM <-> ESD" + Me.WIMESDToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Wimesd.Label") ' 'ToolStripSeparator12 ' @@ -1531,7 +1531,7 @@ Partial Class MainForm ' Me.MergeSWM.Name = "MergeSWM" Me.MergeSWM.Size = New System.Drawing.Size(373, 22) - Me.MergeSWM.Text = "Merge SWM files..." + Me.MergeSWM.Text = LocalizationService.ForSection("Designer.Main")("MergeSwmfiles.Button") ' 'ToolStripSeparator18 ' @@ -1543,7 +1543,7 @@ Partial Class MainForm Me.RemountImageWithWritePermissionsToolStripMenuItem.Enabled = False Me.RemountImageWithWritePermissionsToolStripMenuItem.Name = "RemountImageWithWritePermissionsToolStripMenuItem" Me.RemountImageWithWritePermissionsToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remount image with write permissions" + Me.RemountImageWithWritePermissionsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Remount.Image.Write.Label") ' 'ToolStripSeparator13 ' @@ -1554,7 +1554,7 @@ Partial Class MainForm ' Me.CommandShellToolStripMenuItem.Name = "CommandShellToolStripMenuItem" Me.CommandShellToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.CommandShellToolStripMenuItem.Text = "Command Console" + Me.CommandShellToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("CommandConsole.Label") ' 'ToolStripSeparator16 ' @@ -1565,13 +1565,13 @@ Partial Class MainForm ' Me.UnattendedAnswerFileManagerToolStripMenuItem.Name = "UnattendedAnswerFileManagerToolStripMenuItem" Me.UnattendedAnswerFileManagerToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.UnattendedAnswerFileManagerToolStripMenuItem.Text = "Unattended answer file manager" + Me.UnattendedAnswerFileManagerToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Unattended.AnswerFile.Label") ' 'UnattendedAnswerFileCreatorToolStripMenuItem ' Me.UnattendedAnswerFileCreatorToolStripMenuItem.Name = "UnattendedAnswerFileCreatorToolStripMenuItem" Me.UnattendedAnswerFileCreatorToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Unattended answer file creator" + Me.UnattendedAnswerFileCreatorToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Unattended.Creator.Label") ' 'ToolStripSeparator42 ' @@ -1582,19 +1582,19 @@ Partial Class MainForm ' Me.RegCplToolStripMenuItem.Name = "RegCplToolStripMenuItem" Me.RegCplToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.RegCplToolStripMenuItem.Text = "Manage image registry hives..." + Me.RegCplToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Manage.Image.Registry.Button") ' 'ManageSystemServicesToolStripMenuItem ' Me.ManageSystemServicesToolStripMenuItem.Name = "ManageSystemServicesToolStripMenuItem" Me.ManageSystemServicesToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.ManageSystemServicesToolStripMenuItem.Text = "Manage system services..." + Me.ManageSystemServicesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Manage.System.Button") ' 'ManageSystemEnvironmentVariablesToolStripMenuItem ' Me.ManageSystemEnvironmentVariablesToolStripMenuItem.Name = "ManageSystemEnvironmentVariablesToolStripMenuItem" Me.ManageSystemEnvironmentVariablesToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.ManageSystemEnvironmentVariablesToolStripMenuItem.Text = "Manage system environment variables..." + Me.ManageSystemEnvironmentVariablesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Manage.System.Env.Button") ' 'ToolStripSeparator43 ' @@ -1606,19 +1606,19 @@ Partial Class MainForm Me.WebResourcesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LanguagesAndOptionalFeaturesISOToolStripMenuItem, Me.LanguagesAndFODWin10ToolStripMenuItem}) Me.WebResourcesToolStripMenuItem.Name = "WebResourcesToolStripMenuItem" Me.WebResourcesToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.WebResourcesToolStripMenuItem.Text = "Web Resources" + Me.WebResourcesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("WebResources.Label") ' 'LanguagesAndOptionalFeaturesISOToolStripMenuItem ' Me.LanguagesAndOptionalFeaturesISOToolStripMenuItem.Name = "LanguagesAndOptionalFeaturesISOToolStripMenuItem" Me.LanguagesAndOptionalFeaturesISOToolStripMenuItem.Size = New System.Drawing.Size(360, 22) - Me.LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Download Languages and Optional Features ISOs..." + Me.LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Download.Languages.Button") ' 'LanguagesAndFODWin10ToolStripMenuItem ' Me.LanguagesAndFODWin10ToolStripMenuItem.Name = "LanguagesAndFODWin10ToolStripMenuItem" Me.LanguagesAndFODWin10ToolStripMenuItem.Size = New System.Drawing.Size(360, 22) - Me.LanguagesAndFODWin10ToolStripMenuItem.Text = "Download Languages and FOD discs for Windows 10..." + Me.LanguagesAndFODWin10ToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Download.FOD.Button") ' 'ToolStripSeparator45 ' @@ -1630,19 +1630,19 @@ Partial Class MainForm Me.PxeHelperServersTSMI.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.StartWdsHelperTSMI, Me.StartFogHelperTSMI, Me.ToolStripSeparator46, Me.UnixFogInstructionTSMI, Me.CopyImageToWdsServerTSMI}) Me.PxeHelperServersTSMI.Name = "PxeHelperServersTSMI" Me.PxeHelperServersTSMI.Size = New System.Drawing.Size(373, 22) - Me.PxeHelperServersTSMI.Text = "Start PXE Helper Server for..." + Me.PxeHelperServersTSMI.Text = LocalizationService.ForSection("Designer.Main")("StartPXE.Button") ' 'StartWdsHelperTSMI ' Me.StartWdsHelperTSMI.Name = "StartWdsHelperTSMI" Me.StartWdsHelperTSMI.Size = New System.Drawing.Size(377, 22) - Me.StartWdsHelperTSMI.Text = "Windows Deployment Services" + Me.StartWdsHelperTSMI.Text = LocalizationService.ForSection("Designer.Main")("Windows.Label") ' 'StartFogHelperTSMI ' Me.StartFogHelperTSMI.Name = "StartFogHelperTSMI" Me.StartFogHelperTSMI.Size = New System.Drawing.Size(377, 22) - Me.StartFogHelperTSMI.Text = "FOG" + Me.StartFogHelperTSMI.Text = LocalizationService.ForSection("Designer.Main")("FOG.Label") ' 'ToolStripSeparator46 ' @@ -1653,13 +1653,13 @@ Partial Class MainForm ' Me.UnixFogInstructionTSMI.Name = "UnixFogInstructionTSMI" Me.UnixFogInstructionTSMI.Size = New System.Drawing.Size(377, 22) - Me.UnixFogInstructionTSMI.Text = "Show instructions for FOG Helper Server on UNIX systems" + Me.UnixFogInstructionTSMI.Text = LocalizationService.ForSection("Designer.Main")("Show.Instructions.Label") ' 'CopyImageToWdsServerTSMI ' Me.CopyImageToWdsServerTSMI.Name = "CopyImageToWdsServerTSMI" Me.CopyImageToWdsServerTSMI.Size = New System.Drawing.Size(377, 22) - Me.CopyImageToWdsServerTSMI.Text = "Copy my Windows image to a WDS server..." + Me.CopyImageToWdsServerTSMI.Text = LocalizationService.ForSection("Designer.Main")("Copy.My.Windows.Button") ' 'ToolStripSeparator41 ' @@ -1670,7 +1670,7 @@ Partial Class MainForm ' Me.EvaluateWindowsUEFICA2023ReadinessToolStripMenuItem.Name = "EvaluateWindowsUEFICA2023ReadinessToolStripMenuItem" Me.EvaluateWindowsUEFICA2023ReadinessToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.EvaluateWindowsUEFICA2023ReadinessToolStripMenuItem.Text = "Evaluate Windows UEFI CA 2023 readiness on this system" + Me.EvaluateWindowsUEFICA2023ReadinessToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Evaluate.Windows.Label") ' 'ToolStripSeparator47 ' @@ -1681,13 +1681,13 @@ Partial Class MainForm ' Me.ReportManagerToolStripMenuItem.Name = "ReportManagerToolStripMenuItem" Me.ReportManagerToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.ReportManagerToolStripMenuItem.Text = "Report manager" + Me.ReportManagerToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ReportManager.Label") ' 'MountedImageManagerTSMI ' Me.MountedImageManagerTSMI.Name = "MountedImageManagerTSMI" Me.MountedImageManagerTSMI.Size = New System.Drawing.Size(373, 22) - Me.MountedImageManagerTSMI.Text = "Mounted image manager" + Me.MountedImageManagerTSMI.Text = LocalizationService.ForSection("Designer.Main")("Mounted.Image.Manager.Label") ' 'ToolStripSeparator28 ' @@ -1698,13 +1698,13 @@ Partial Class MainForm ' Me.CreateDiscImageToolStripMenuItem.Name = "CreateDiscImageToolStripMenuItem" Me.CreateDiscImageToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.CreateDiscImageToolStripMenuItem.Text = "Create disc image..." + Me.CreateDiscImageToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Create.Disc.Image.Button") ' 'CreateTestingEnvironmentToolStripMenuItem ' Me.CreateTestingEnvironmentToolStripMenuItem.Name = "CreateTestingEnvironmentToolStripMenuItem" Me.CreateTestingEnvironmentToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.CreateTestingEnvironmentToolStripMenuItem.Text = "Create testing environment..." + Me.CreateTestingEnvironmentToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Create.Testing.Button") ' 'ToolStripSeparator38 ' @@ -1715,7 +1715,7 @@ Partial Class MainForm ' Me.WimScriptEditorCommand.Name = "WimScriptEditorCommand" Me.WimScriptEditorCommand.Size = New System.Drawing.Size(373, 22) - Me.WimScriptEditorCommand.Text = "Configuration list editor" + Me.WimScriptEditorCommand.Text = LocalizationService.ForSection("Designer.Main")("Config.List.Editor.Label") ' 'ToolStripSeparator49 ' @@ -1726,13 +1726,13 @@ Partial Class MainForm ' Me.SSE_TSMI.Name = "SSE_TSMI" Me.SSE_TSMI.Size = New System.Drawing.Size(373, 22) - Me.SSE_TSMI.Text = "Create a starter script" + Me.SSE_TSMI.Text = LocalizationService.ForSection("Designer.Main")("Create.StarterScript.Label") ' 'ThemeDesigner_TSMI ' Me.ThemeDesigner_TSMI.Name = "ThemeDesigner_TSMI" Me.ThemeDesigner_TSMI.Size = New System.Drawing.Size(373, 22) - Me.ThemeDesigner_TSMI.Text = "Design a theme" + Me.ThemeDesigner_TSMI.Text = LocalizationService.ForSection("Designer.Main")("DesignTheme.Label") ' 'ToolStripSeparator9 ' @@ -1743,28 +1743,28 @@ Partial Class MainForm ' Me.OptionsToolStripMenuItem.Name = "OptionsToolStripMenuItem" Me.OptionsToolStripMenuItem.Size = New System.Drawing.Size(373, 22) - Me.OptionsToolStripMenuItem.Text = "Options" + Me.OptionsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Options.Label") ' 'HelpToolStripMenuItem ' Me.HelpToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.HelpTopicsToolStripMenuItem, Me.DISMToolsTourToolStripMenuItem, Me.ToolStripSeparator10, Me.AboutDISMToolsToolStripMenuItem, Me.ToolStripSeparator21, Me.Discord, Me.ReportFeedbackToolStripMenuItem, Me.OpenDiagnosticLogsInLogViewerToolStripMenuItem, Me.ToolStripSeparator35, Me.ContributeToTheHelpSystemToolStripMenuItem}) Me.HelpToolStripMenuItem.Name = "HelpToolStripMenuItem" Me.HelpToolStripMenuItem.Size = New System.Drawing.Size(44, 20) - Me.HelpToolStripMenuItem.Text = "&Help" + Me.HelpToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Help.Label") ' 'HelpTopicsToolStripMenuItem ' Me.HelpTopicsToolStripMenuItem.Name = "HelpTopicsToolStripMenuItem" Me.HelpTopicsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F1 Me.HelpTopicsToolStripMenuItem.Size = New System.Drawing.Size(286, 22) - Me.HelpTopicsToolStripMenuItem.Text = "Help Topics" + Me.HelpTopicsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("HelpTopics.Label") ' 'DISMToolsTourToolStripMenuItem ' Me.DISMToolsTourToolStripMenuItem.Name = "DISMToolsTourToolStripMenuItem" Me.DISMToolsTourToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Shift Or System.Windows.Forms.Keys.F1), System.Windows.Forms.Keys) Me.DISMToolsTourToolStripMenuItem.Size = New System.Drawing.Size(286, 22) - Me.DISMToolsTourToolStripMenuItem.Text = "DISMTools Tour" + Me.DISMToolsTourToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("DISM.Tools.Tour.Label") ' 'ToolStripSeparator10 ' @@ -1775,7 +1775,7 @@ Partial Class MainForm ' Me.AboutDISMToolsToolStripMenuItem.Name = "AboutDISMToolsToolStripMenuItem" Me.AboutDISMToolsToolStripMenuItem.Size = New System.Drawing.Size(286, 22) - Me.AboutDISMToolsToolStripMenuItem.Text = "About DISMTools" + Me.AboutDISMToolsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("DISM.Tools.Label") ' 'ToolStripSeparator21 ' @@ -1786,19 +1786,19 @@ Partial Class MainForm ' Me.Discord.Name = "Discord" Me.Discord.Size = New System.Drawing.Size(286, 22) - Me.Discord.Text = "Join the discord (opens in web browser)" + Me.Discord.Text = LocalizationService.ForSection("Designer.Main")("Join.Discord.Opens.Label") ' 'ReportFeedbackToolStripMenuItem ' Me.ReportFeedbackToolStripMenuItem.Name = "ReportFeedbackToolStripMenuItem" Me.ReportFeedbackToolStripMenuItem.Size = New System.Drawing.Size(286, 22) - Me.ReportFeedbackToolStripMenuItem.Text = "Report feedback (opens in web browser)" + Me.ReportFeedbackToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Report.Feedback.Opens.Label") ' 'OpenDiagnosticLogsInLogViewerToolStripMenuItem ' Me.OpenDiagnosticLogsInLogViewerToolStripMenuItem.Name = "OpenDiagnosticLogsInLogViewerToolStripMenuItem" Me.OpenDiagnosticLogsInLogViewerToolStripMenuItem.Size = New System.Drawing.Size(286, 22) - Me.OpenDiagnosticLogsInLogViewerToolStripMenuItem.Text = "Open diagnostic logs in log viewer" + Me.OpenDiagnosticLogsInLogViewerToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Open.Diagnostic.Logs.Label") ' 'ToolStripSeparator35 ' @@ -1809,7 +1809,7 @@ Partial Class MainForm ' Me.ContributeToTheHelpSystemToolStripMenuItem.Name = "ContributeToTheHelpSystemToolStripMenuItem" Me.ContributeToTheHelpSystemToolStripMenuItem.Size = New System.Drawing.Size(286, 22) - Me.ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribute to the help system" + Me.ContributeToTheHelpSystemToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Contribute.Help.System.Label") ' 'BranchTSMI ' @@ -1817,7 +1817,7 @@ Partial Class MainForm Me.BranchTSMI.Image = CType(resources.GetObject("BranchTSMI.Image"), System.Drawing.Image) Me.BranchTSMI.Name = "BranchTSMI" Me.BranchTSMI.Size = New System.Drawing.Size(72, 20) - Me.BranchTSMI.Text = "Branch" + Me.BranchTSMI.Text = LocalizationService.ForSection("Designer.Main")("Branch.Label") Me.BranchTSMI.Visible = False ' 'VersionTSMI @@ -1825,9 +1825,8 @@ Partial Class MainForm Me.VersionTSMI.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right Me.VersionTSMI.Name = "VersionTSMI" Me.VersionTSMI.Size = New System.Drawing.Size(66, 20) - Me.VersionTSMI.Text = "PREVIEW" - Me.VersionTSMI.ToolTipText = "This is a beta release. In it, you will encounter lots of bugs and incomplete fea" & _ - "tures." + Me.VersionTSMI.Text = LocalizationService.ForSection("Designer.Main")("Preview.Label") + Me.VersionTSMI.ToolTipText = LocalizationService.ForSection("Designer.Main")("Beta.Release.Tooltip") Me.VersionTSMI.Visible = False ' 'ExitFullScreenTSMI @@ -1836,7 +1835,7 @@ Partial Class MainForm Me.ExitFullScreenTSMI.Image = Global.DISMTools.My.Resources.Resources.exit_full_screen_glyph Me.ExitFullScreenTSMI.Name = "ExitFullScreenTSMI" Me.ExitFullScreenTSMI.Size = New System.Drawing.Size(61, 20) - Me.ExitFullScreenTSMI.Text = "(F11)" + Me.ExitFullScreenTSMI.Text = LocalizationService.ForSection("Designer.Main")("Full.Screen.Shortcut.Label") Me.ExitFullScreenTSMI.Visible = False ' 'InvalidSettingsTSMI @@ -1846,14 +1845,14 @@ Partial Class MainForm Me.InvalidSettingsTSMI.Image = CType(resources.GetObject("InvalidSettingsTSMI.Image"), System.Drawing.Image) Me.InvalidSettingsTSMI.Name = "InvalidSettingsTSMI" Me.InvalidSettingsTSMI.Size = New System.Drawing.Size(220, 20) - Me.InvalidSettingsTSMI.Text = "Invalid settings have been detected" + Me.InvalidSettingsTSMI.Text = LocalizationService.ForSection("Designer.Main")("Settings.Detected.Label") Me.InvalidSettingsTSMI.Visible = False ' 'ISFix ' Me.ISFix.Name = "ISFix" Me.ISFix.Size = New System.Drawing.Size(168, 22) - Me.ISFix.Text = "More information" + Me.ISFix.Text = LocalizationService.ForSection("Designer.Main")("MoreInfo.Label") ' 'ToolStripSeparator19 ' @@ -1864,7 +1863,7 @@ Partial Class MainForm ' Me.ISHelp.Name = "ISHelp" Me.ISHelp.Size = New System.Drawing.Size(168, 22) - Me.ISHelp.Text = "What's this?" + Me.ISHelp.Text = LocalizationService.ForSection("Designer.Main")("WhatsThis.Label") ' 'TourActionsTSMI ' @@ -1873,7 +1872,7 @@ Partial Class MainForm Me.TourActionsTSMI.Image = Global.DISMTools.My.Resources.Resources.tour_glyph_light Me.TourActionsTSMI.Name = "TourActionsTSMI" Me.TourActionsTSMI.Size = New System.Drawing.Size(161, 20) - Me.TourActionsTSMI.Text = "DISMTools Tour Actions" + Me.TourActionsTSMI.Text = LocalizationService.ForSection("Designer.Main")("DISM.Tools.Actions.Label") Me.TourActionsTSMI.Visible = False ' 'ServerStatusTSMI @@ -1881,7 +1880,7 @@ Partial Class MainForm Me.ServerStatusTSMI.Enabled = False Me.ServerStatusTSMI.Name = "ServerStatusTSMI" Me.ServerStatusTSMI.Size = New System.Drawing.Size(247, 22) - Me.ServerStatusTSMI.Text = "Tour Server is active on port 2022" + Me.ServerStatusTSMI.Text = LocalizationService.ForSection("Designer.Main")("Tour.Server.Active.Label") ' 'ToolStripSeparator44 ' @@ -1892,7 +1891,7 @@ Partial Class MainForm ' Me.RestartDTTourTSMI.Name = "RestartDTTourTSMI" Me.RestartDTTourTSMI.Size = New System.Drawing.Size(247, 22) - Me.RestartDTTourTSMI.Text = "Restart Tour" + Me.RestartDTTourTSMI.Text = LocalizationService.ForSection("Designer.Main")("RestartTour.Label") ' 'ToolStripSeparator22 ' @@ -1903,7 +1902,7 @@ Partial Class MainForm ' Me.StopDTTourServerTSMI.Name = "StopDTTourServerTSMI" Me.StopDTTourServerTSMI.Size = New System.Drawing.Size(247, 22) - Me.StopDTTourServerTSMI.Text = "Stop Tour Server" + Me.StopDTTourServerTSMI.Text = LocalizationService.ForSection("Designer.Main")("Stop.Tour.Server.Label") ' 'HomePanel ' @@ -2015,7 +2014,7 @@ Partial Class MainForm Me.Label6.Padding = New System.Windows.Forms.Padding(8, 0, 0, 0) Me.Label6.Size = New System.Drawing.Size(236, 32) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Video content could not be loaded." + Me.Label6.Text = LocalizationService.ForSection("Designer.Main")("Video.Content.Loaded.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'LinkLabel31 @@ -2030,7 +2029,7 @@ Partial Class MainForm Me.LinkLabel31.Size = New System.Drawing.Size(96, 32) Me.LinkLabel31.TabIndex = 1 Me.LinkLabel31.TabStop = True - Me.LinkLabel31.Text = "Learn more" + Me.LinkLabel31.Text = LocalizationService.ForSection("Designer.Main")("LearnMore.Link") Me.LinkLabel31.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel32 @@ -2045,7 +2044,7 @@ Partial Class MainForm Me.LinkLabel32.Size = New System.Drawing.Size(96, 32) Me.LinkLabel32.TabIndex = 1 Me.LinkLabel32.TabStop = True - Me.LinkLabel32.Text = "Retry" + Me.LinkLabel32.Text = LocalizationService.ForSection("Designer.Main")("Retry.Button") Me.LinkLabel32.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'ListView2 @@ -2067,7 +2066,7 @@ Partial Class MainForm ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Name" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.Main")("Name.Column") Me.ColumnHeader4.Width = 384 ' 'RefreshFactButton @@ -2090,7 +2089,7 @@ Partial Class MainForm Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(94, 17) Me.Label9.TabIndex = 1 - Me.Label9.Text = "Fact of the day" + Me.Label9.Text = LocalizationService.ForSection("Designer.Main")("FactDay.Label") ' 'Label12 ' @@ -2100,7 +2099,7 @@ Partial Class MainForm Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(155, 17) Me.Label12.TabIndex = 1 - Me.Label12.Text = "Learn by watching videos" + Me.Label12.Text = LocalizationService.ForSection("Designer.Main")("Learn.Watching.Videos.Label") ' 'LinkLabel30 ' @@ -2112,7 +2111,7 @@ Partial Class MainForm Me.LinkLabel30.Size = New System.Drawing.Size(223, 15) Me.LinkLabel30.TabIndex = 0 Me.LinkLabel30.TabStop = True - Me.LinkLabel30.Text = "Managing external Windows installations" + Me.LinkLabel30.Text = LocalizationService.ForSection("Designer.Main")("Managing.External.Link") ' 'LinkLabel29 ' @@ -2124,7 +2123,7 @@ Partial Class MainForm Me.LinkLabel29.Size = New System.Drawing.Size(190, 15) Me.LinkLabel29.TabIndex = 0 Me.LinkLabel29.TabStop = True - Me.LinkLabel29.Text = "Managing your current installation" + Me.LinkLabel29.Text = LocalizationService.ForSection("Designer.Main")("Managing.Install.Link") ' 'LinkLabel28 ' @@ -2136,7 +2135,7 @@ Partial Class MainForm Me.LinkLabel28.Size = New System.Drawing.Size(258, 15) Me.LinkLabel28.TabIndex = 0 Me.LinkLabel28.TabStop = True - Me.LinkLabel28.Text = "Get started with DISMTools and image servicing" + Me.LinkLabel28.Text = LocalizationService.ForSection("Designer.Main")("Get.Started.DISM.Link") ' 'LinkLabel27 ' @@ -2148,7 +2147,7 @@ Partial Class MainForm Me.LinkLabel27.Size = New System.Drawing.Size(172, 15) Me.LinkLabel27.TabIndex = 0 Me.LinkLabel27.TabStop = True - Me.LinkLabel27.Text = "Learn what's new in this release" + Me.LinkLabel27.Text = LocalizationService.ForSection("Designer.Main")("Learn.Snew.Link") ' 'Panel5 ' @@ -2168,7 +2167,7 @@ Partial Class MainForm Me.Label4.Padding = New System.Windows.Forms.Padding(6, 0, 0, 0) Me.Label4.Size = New System.Drawing.Size(428, 32) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Explore and get started" + Me.Label4.Text = LocalizationService.ForSection("Designer.Main")("Explore.Get.Started.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'NewsPanel @@ -2212,7 +2211,7 @@ Partial Class MainForm Me.Label7.Padding = New System.Windows.Forms.Padding(8, 0, 0, 0) Me.Label7.Size = New System.Drawing.Size(384, 32) Me.Label7.TabIndex = 0 - Me.Label7.Text = "The news feed could not be loaded." + Me.Label7.Text = LocalizationService.ForSection("Designer.Main")("News.Feed.Loaded.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'LinkLabel34 @@ -2227,7 +2226,7 @@ Partial Class MainForm Me.LinkLabel34.Size = New System.Drawing.Size(96, 32) Me.LinkLabel34.TabIndex = 1 Me.LinkLabel34.TabStop = True - Me.LinkLabel34.Text = "Learn more" + Me.LinkLabel34.Text = LocalizationService.ForSection("Main.News")("LearnMore.Link") Me.LinkLabel34.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel33 @@ -2242,7 +2241,7 @@ Partial Class MainForm Me.LinkLabel33.Size = New System.Drawing.Size(96, 32) Me.LinkLabel33.TabIndex = 1 Me.LinkLabel33.TabStop = True - Me.LinkLabel33.Text = "Retry" + Me.LinkLabel33.Text = LocalizationService.ForSection("Main.News.Load")("Retry.Button") Me.LinkLabel33.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel7 @@ -2264,7 +2263,7 @@ Partial Class MainForm Me.Label5.Padding = New System.Windows.Forms.Padding(6, 0, 0, 0) Me.Label5.Size = New System.Drawing.Size(216, 32) Me.Label5.TabIndex = 1 - Me.Label5.Text = "Stay up-to-date" + Me.Label5.Text = LocalizationService.ForSection("Designer.Main")("Stay.Up.Date.Label") Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label8 @@ -2275,7 +2274,7 @@ Partial Class MainForm Me.Label8.Padding = New System.Windows.Forms.Padding(0, 0, 6, 0) Me.Label8.Size = New System.Drawing.Size(360, 32) Me.Label8.TabIndex = 2 - Me.Label8.Text = "News last updated: " + Me.Label8.Text = LocalizationService.ForSection("Designer.Main")("News.Last.Updated.Label") Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'NewsContentPreviewerPanel @@ -2309,7 +2308,7 @@ Partial Class MainForm Me.NewsFeedTextLabel.Padding = New System.Windows.Forms.Padding(6, 0, 0, 0) Me.NewsFeedTextLabel.Size = New System.Drawing.Size(583, 32) Me.NewsFeedTextLabel.TabIndex = 1 - Me.NewsFeedTextLabel.Text = "Item Feed Text" + Me.NewsFeedTextLabel.Text = LocalizationService.ForSection("Designer.Main")("NewsFeed.Item.Label") Me.NewsFeedTextLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'NewsFeedDateLabel @@ -2320,7 +2319,7 @@ Partial Class MainForm Me.NewsFeedDateLabel.Padding = New System.Windows.Forms.Padding(0, 0, 6, 0) Me.NewsFeedDateLabel.Size = New System.Drawing.Size(384, 32) Me.NewsFeedDateLabel.TabIndex = 3 - Me.NewsFeedDateLabel.Text = "Item Feed Date" + Me.NewsFeedDateLabel.Text = LocalizationService.ForSection("Designer.Main")("Item.Feed.Date.Label") Me.NewsFeedDateLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'NewsFeedCloseBtn @@ -2360,7 +2359,7 @@ Partial Class MainForm Me.ComputerOSLabel.Name = "ComputerOSLabel" Me.ComputerOSLabel.Size = New System.Drawing.Size(322, 15) Me.ComputerOSLabel.TabIndex = 7 - Me.ComputerOSLabel.Text = "OS" + Me.ComputerOSLabel.Text = LocalizationService.ForSection("Designer.Main")("OS.Label") Me.ComputerOSLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'AdminToolsBtn @@ -2424,7 +2423,7 @@ Partial Class MainForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(233, 24) Me.Label3.TabIndex = 3 - Me.Label3.Text = "IP Address Configuration:" + Me.Label3.Text = LocalizationService.ForSection("Designer.Main")("IP.Address.Config.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComputerDhcpStatusLabel @@ -2446,7 +2445,7 @@ Partial Class MainForm Me.ComputerProcessorLabel.Name = "ComputerProcessorLabel" Me.ComputerProcessorLabel.Size = New System.Drawing.Size(473, 23) Me.ComputerProcessorLabel.TabIndex = 2 - Me.ComputerProcessorLabel.Text = "Processor" + Me.ComputerProcessorLabel.Text = LocalizationService.ForSection("Designer.Main")("Processor.Label") Me.ComputerProcessorLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label1 @@ -2457,7 +2456,7 @@ Partial Class MainForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(233, 23) Me.Label1.TabIndex = 2 - Me.Label1.Text = "Domain Membership:" + Me.Label1.Text = LocalizationService.ForSection("Designer.Main")("DomainMembership.Label") Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComputerMemoryLabel @@ -2469,7 +2468,7 @@ Partial Class MainForm Me.ComputerMemoryLabel.Name = "ComputerMemoryLabel" Me.ComputerMemoryLabel.Size = New System.Drawing.Size(473, 23) Me.ComputerMemoryLabel.TabIndex = 2 - Me.ComputerMemoryLabel.Text = "Memory" + Me.ComputerMemoryLabel.Text = LocalizationService.ForSection("Designer.Main")("Memory.Label") Me.ComputerMemoryLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComputerStorageLabel @@ -2481,7 +2480,7 @@ Partial Class MainForm Me.ComputerStorageLabel.Name = "ComputerStorageLabel" Me.ComputerStorageLabel.Size = New System.Drawing.Size(473, 23) Me.ComputerStorageLabel.TabIndex = 2 - Me.ComputerStorageLabel.Text = "Storage" + Me.ComputerStorageLabel.Text = LocalizationService.ForSection("Designer.Main")("Storage.Label") Me.ComputerStorageLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComputerDomainStatusLabel @@ -2492,7 +2491,7 @@ Partial Class MainForm Me.ComputerDomainStatusLabel.Name = "ComputerDomainStatusLabel" Me.ComputerDomainStatusLabel.Size = New System.Drawing.Size(234, 23) Me.ComputerDomainStatusLabel.TabIndex = 2 - Me.ComputerDomainStatusLabel.Text = "Domain Status" + Me.ComputerDomainStatusLabel.Text = LocalizationService.ForSection("Designer.Main")("DomainStatus.Label") Me.ComputerDomainStatusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label2 @@ -2503,7 +2502,7 @@ Partial Class MainForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(233, 23) Me.Label2.TabIndex = 2 - Me.Label2.Text = "Workgroup/Domain:" + Me.Label2.Text = LocalizationService.ForSection("Designer.Main")("WorkgroupDomain.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComputerDomainWorkgroupLabel @@ -2524,7 +2523,7 @@ Partial Class MainForm Me.ComputerModelLabel.Name = "ComputerModelLabel" Me.ComputerModelLabel.Size = New System.Drawing.Size(322, 21) Me.ComputerModelLabel.TabIndex = 1 - Me.ComputerModelLabel.Text = "Computer Model" + Me.ComputerModelLabel.Text = LocalizationService.ForSection("Designer.Main")("ComputerModel.Label") ' 'ComputerNameLabel ' @@ -2534,7 +2533,7 @@ Partial Class MainForm Me.ComputerNameLabel.Name = "ComputerNameLabel" Me.ComputerNameLabel.Size = New System.Drawing.Size(322, 30) Me.ComputerNameLabel.TabIndex = 1 - Me.ComputerNameLabel.Text = "Computer Name" + Me.ComputerNameLabel.Text = LocalizationService.ForSection("Designer.Main")("ComputerName.Label") ' 'ComputerWallpaperPB ' @@ -2556,7 +2555,7 @@ Partial Class MainForm Me.ChangeComputerNameLink.Size = New System.Drawing.Size(50, 15) Me.ChangeComputerNameLink.TabIndex = 5 Me.ChangeComputerNameLink.TabStop = True - Me.ChangeComputerNameLink.Text = "Rename" + Me.ChangeComputerNameLink.Text = LocalizationService.ForSection("Designer.Main")("Rename.Link") Me.ChangeComputerNameLink.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'SidePanel @@ -2598,7 +2597,7 @@ Partial Class MainForm ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Path/Name" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.Main")("PathName.Column") Me.ColumnHeader3.Width = 163 ' 'UpdatePanel @@ -2624,8 +2623,7 @@ Partial Class MainForm Me.UpdateLink.Size = New System.Drawing.Size(223, 56) Me.UpdateLink.TabIndex = 0 Me.UpdateLink.TabStop = True - Me.UpdateLink.Text = "A new version is available for download and installation. Click here to learn mor" & _ - "e" + Me.UpdateLink.Text = LocalizationService.ForSection("Designer.Main")("NewVersion.Available.Link") Me.UpdateLink.UseCompatibleTextRendering = True ' 'RecentRemoveLink @@ -2639,7 +2637,7 @@ Partial Class MainForm Me.RecentRemoveLink.Size = New System.Drawing.Size(190, 15) Me.RecentRemoveLink.TabIndex = 2 Me.RecentRemoveLink.TabStop = True - Me.RecentRemoveLink.Text = "Remove entry" + Me.RecentRemoveLink.Text = LocalizationService.ForSection("Designer.Main")("RemoveEntry.Link") Me.RecentRemoveLink.TextAlign = System.Drawing.ContentAlignment.TopRight Me.RecentRemoveLink.Visible = False ' @@ -2653,7 +2651,7 @@ Partial Class MainForm Me.OfflineInstMgmt.Size = New System.Drawing.Size(157, 15) Me.OfflineInstMgmt.TabIndex = 2 Me.OfflineInstMgmt.TabStop = True - Me.OfflineInstMgmt.Text = "Manage offline installation..." + Me.OfflineInstMgmt.Text = LocalizationService.ForSection("Designer.Main")("Manage.Offline.Button.Button") ' 'OnlineInstMgmt ' @@ -2665,7 +2663,7 @@ Partial Class MainForm Me.OnlineInstMgmt.Size = New System.Drawing.Size(147, 15) Me.OnlineInstMgmt.TabIndex = 2 Me.OnlineInstMgmt.TabStop = True - Me.OnlineInstMgmt.Text = "Manage online installation" + Me.OnlineInstMgmt.Text = LocalizationService.ForSection("Designer.Main")("Manage.Online.Install.Link") ' 'ExistingProjLink ' @@ -2677,7 +2675,7 @@ Partial Class MainForm Me.ExistingProjLink.Size = New System.Drawing.Size(128, 15) Me.ExistingProjLink.TabIndex = 2 Me.ExistingProjLink.TabStop = True - Me.ExistingProjLink.Text = "Open existing project..." + Me.ExistingProjLink.Text = LocalizationService.ForSection("Designer.Main")("Open.Existing.Project.Link") ' 'NewProjLink ' @@ -2689,7 +2687,7 @@ Partial Class MainForm Me.NewProjLink.Size = New System.Drawing.Size(80, 15) Me.NewProjLink.TabIndex = 2 Me.NewProjLink.TabStop = True - Me.NewProjLink.Text = "New project..." + Me.NewProjLink.Text = LocalizationService.ForSection("Designer.Main")("NewProject.Link") ' 'Label10 ' @@ -2699,7 +2697,7 @@ Partial Class MainForm Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(116, 21) Me.Label10.TabIndex = 1 - Me.Label10.Text = "Recent projects" + Me.Label10.Text = LocalizationService.ForSection("Designer.Main")("RecentProjects.Label") ' 'LabelHeader1 ' @@ -2709,7 +2707,7 @@ Partial Class MainForm Me.LabelHeader1.Name = "LabelHeader1" Me.LabelHeader1.Size = New System.Drawing.Size(49, 21) Me.LabelHeader1.TabIndex = 1 - Me.LabelHeader1.Text = "Begin" + Me.LabelHeader1.Text = LocalizationService.ForSection("Designer.Main")("Begin.Label") ' 'Panel3 ' @@ -2801,7 +2799,7 @@ Partial Class MainForm Me.GroupBox4.Size = New System.Drawing.Size(666, 230) Me.GroupBox4.TabIndex = 0 Me.GroupBox4.TabStop = False - Me.GroupBox4.Text = "Image operations" + Me.GroupBox4.Text = LocalizationService.ForSection("Designer.Main")("ImageOperations.Group") ' 'Button24 ' @@ -2811,7 +2809,7 @@ Partial Class MainForm Me.Button24.Name = "Button24" Me.Button24.Size = New System.Drawing.Size(324, 63) Me.Button24.TabIndex = 1 - Me.Button24.Text = "Switch image indexes..." + Me.Button24.Text = LocalizationService.ForSection("Designer.Main")("Switch.Image.Indexes.Button") Me.Button24.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button24.UseVisualStyleBackColor = True ' @@ -2823,7 +2821,7 @@ Partial Class MainForm Me.Button31.Name = "Button31" Me.Button31.Size = New System.Drawing.Size(159, 63) Me.Button31.TabIndex = 1 - Me.Button31.Text = "Capture image..." + Me.Button31.Text = LocalizationService.ForSection("Designer.Main")("CaptureImage.Button") Me.Button31.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button31.UseVisualStyleBackColor = True ' @@ -2835,7 +2833,7 @@ Partial Class MainForm Me.Button30.Name = "Button30" Me.Button30.Size = New System.Drawing.Size(159, 63) Me.Button30.TabIndex = 1 - Me.Button30.Text = "Apply image..." + Me.Button30.Text = LocalizationService.ForSection("Designer.Main")("ApplyImage.Button") Me.Button30.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button30.UseVisualStyleBackColor = True ' @@ -2846,7 +2844,7 @@ Partial Class MainForm Me.Button33.Name = "Button33" Me.Button33.Size = New System.Drawing.Size(159, 63) Me.Button33.TabIndex = 1 - Me.Button33.Text = "Save complete image information..." + Me.Button33.Text = LocalizationService.ForSection("Designer.Main")("Save.Complete.Image.Button") Me.Button33.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button33.UseVisualStyleBackColor = True ' @@ -2858,7 +2856,7 @@ Partial Class MainForm Me.Button32.Name = "Button32" Me.Button32.Size = New System.Drawing.Size(159, 63) Me.Button32.TabIndex = 1 - Me.Button32.Text = "Remove volume images..." + Me.Button32.Text = LocalizationService.ForSection("Designer.Main")("Remove.VolumeImages.Button") Me.Button32.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button32.UseVisualStyleBackColor = True ' @@ -2870,7 +2868,7 @@ Partial Class MainForm Me.Button26.Name = "Button26" Me.Button26.Size = New System.Drawing.Size(159, 63) Me.Button26.TabIndex = 1 - Me.Button26.Text = "Mount image..." + Me.Button26.Text = LocalizationService.ForSection("Designer.Main")("MountImage.Button") Me.Button26.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button26.UseVisualStyleBackColor = True ' @@ -2882,7 +2880,7 @@ Partial Class MainForm Me.Button25.Name = "Button25" Me.Button25.Size = New System.Drawing.Size(324, 63) Me.Button25.TabIndex = 1 - Me.Button25.Text = "Reload servicing session" + Me.Button25.Text = LocalizationService.ForSection("Designer.Main")("Reload.Servicing.Button") Me.Button25.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button25.UseVisualStyleBackColor = True ' @@ -2895,7 +2893,7 @@ Partial Class MainForm Me.Button29.Name = "Button29" Me.Button29.Size = New System.Drawing.Size(324, 28) Me.Button29.TabIndex = 1 - Me.Button29.Text = "Unmount image discarding changes" + Me.Button29.Text = LocalizationService.ForSection("Designer.Main")("Unmount.Image.Button") Me.Button29.UseVisualStyleBackColor = True ' 'Button28 @@ -2907,7 +2905,7 @@ Partial Class MainForm Me.Button28.Name = "Button28" Me.Button28.Size = New System.Drawing.Size(324, 28) Me.Button28.TabIndex = 1 - Me.Button28.Text = "Commit and unmount image" + Me.Button28.Text = LocalizationService.ForSection("Designer.Main")("CommitImage.Button") Me.Button28.UseVisualStyleBackColor = True ' 'Button27 @@ -2918,7 +2916,7 @@ Partial Class MainForm Me.Button27.Name = "Button27" Me.Button27.Size = New System.Drawing.Size(159, 63) Me.Button27.TabIndex = 1 - Me.Button27.Text = "Commit current changes" + Me.Button27.Text = LocalizationService.ForSection("Designer.Main")("Commit.Changes.Button") Me.Button27.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button27.UseVisualStyleBackColor = True ' @@ -2934,7 +2932,7 @@ Partial Class MainForm Me.GroupBox5.Size = New System.Drawing.Size(666, 162) Me.GroupBox5.TabIndex = 0 Me.GroupBox5.TabStop = False - Me.GroupBox5.Text = "Package operations" + Me.GroupBox5.Text = LocalizationService.ForSection("Designer.Main")("Package.Operations.Group") ' 'Button38 ' @@ -2943,7 +2941,7 @@ Partial Class MainForm Me.Button38.Name = "Button38" Me.Button38.Size = New System.Drawing.Size(214, 63) Me.Button38.TabIndex = 1 - Me.Button38.Text = "Save installed package information..." + Me.Button38.Text = LocalizationService.ForSection("Designer.Main")("Save.Installed.Button") Me.Button38.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button38.UseVisualStyleBackColor = True ' @@ -2955,7 +2953,7 @@ Partial Class MainForm Me.Button35.Name = "Button35" Me.Button35.Size = New System.Drawing.Size(324, 63) Me.Button35.TabIndex = 1 - Me.Button35.Text = "Remove package..." + Me.Button35.Text = LocalizationService.ForSection("Designer.Main")("RemovePackage.Button") Me.Button35.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button35.UseVisualStyleBackColor = True ' @@ -2967,7 +2965,7 @@ Partial Class MainForm Me.Button37.Name = "Button37" Me.Button37.Size = New System.Drawing.Size(324, 63) Me.Button37.TabIndex = 1 - Me.Button37.Text = "Perform component store maintenance and cleanup..." + Me.Button37.Text = LocalizationService.ForSection("Designer.Main")("Component.Store.Maint.Button") Me.Button37.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button37.UseVisualStyleBackColor = True ' @@ -2979,7 +2977,7 @@ Partial Class MainForm Me.Button34.Name = "Button34" Me.Button34.Size = New System.Drawing.Size(214, 63) Me.Button34.TabIndex = 1 - Me.Button34.Text = "Get package information..." + Me.Button34.Text = LocalizationService.ForSection("Designer.Main")("Get.Package.Button") Me.Button34.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button34.UseVisualStyleBackColor = True ' @@ -2991,7 +2989,7 @@ Partial Class MainForm Me.Button36.Name = "Button36" Me.Button36.Size = New System.Drawing.Size(214, 63) Me.Button36.TabIndex = 1 - Me.Button36.Text = "Add package..." + Me.Button36.Text = LocalizationService.ForSection("Designer.Main")("AddPackage.Button") Me.Button36.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button36.UseVisualStyleBackColor = True ' @@ -3006,7 +3004,7 @@ Partial Class MainForm Me.GroupBox6.Size = New System.Drawing.Size(666, 93) Me.GroupBox6.TabIndex = 0 Me.GroupBox6.TabStop = False - Me.GroupBox6.Text = "Feature operations" + Me.GroupBox6.Text = LocalizationService.ForSection("Designer.Main")("Feature.Operations.Group") ' 'Button42 ' @@ -3015,7 +3013,7 @@ Partial Class MainForm Me.Button42.Name = "Button42" Me.Button42.Size = New System.Drawing.Size(159, 63) Me.Button42.TabIndex = 1 - Me.Button42.Text = "Save feature information..." + Me.Button42.Text = LocalizationService.ForSection("Designer.Main")("Save.Feature.Button") Me.Button42.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button42.UseVisualStyleBackColor = True ' @@ -3027,7 +3025,7 @@ Partial Class MainForm Me.Button39.Name = "Button39" Me.Button39.Size = New System.Drawing.Size(159, 63) Me.Button39.TabIndex = 1 - Me.Button39.Text = "Get feature information..." + Me.Button39.Text = LocalizationService.ForSection("Designer.Main")("Get.Feature.Button") Me.Button39.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button39.UseVisualStyleBackColor = True ' @@ -3039,7 +3037,7 @@ Partial Class MainForm Me.Button41.Name = "Button41" Me.Button41.Size = New System.Drawing.Size(159, 63) Me.Button41.TabIndex = 1 - Me.Button41.Text = "Enable feature..." + Me.Button41.Text = LocalizationService.ForSection("Designer.Main")("EnableFeature.Button") Me.Button41.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button41.UseVisualStyleBackColor = True ' @@ -3051,7 +3049,7 @@ Partial Class MainForm Me.Button40.Name = "Button40" Me.Button40.Size = New System.Drawing.Size(159, 63) Me.Button40.TabIndex = 1 - Me.Button40.Text = "Disable feature..." + Me.Button40.Text = LocalizationService.ForSection("Designer.Main")("DisableFeature.Button") Me.Button40.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button40.UseVisualStyleBackColor = True ' @@ -3066,7 +3064,7 @@ Partial Class MainForm Me.GroupBox7.Size = New System.Drawing.Size(666, 93) Me.GroupBox7.TabIndex = 0 Me.GroupBox7.TabStop = False - Me.GroupBox7.Text = "AppX package operations" + Me.GroupBox7.Text = LocalizationService.ForSection("Designer.Main")("AppX.Package.Operations") ' 'Button46 ' @@ -3075,7 +3073,7 @@ Partial Class MainForm Me.Button46.Name = "Button46" Me.Button46.Size = New System.Drawing.Size(159, 63) Me.Button46.TabIndex = 1 - Me.Button46.Text = "Save installed AppX package information..." + Me.Button46.Text = LocalizationService.ForSection("Designer.Main")("Save.Installed.AppX.Button") Me.Button46.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button46.UseVisualStyleBackColor = True ' @@ -3087,7 +3085,7 @@ Partial Class MainForm Me.Button44.Name = "Button44" Me.Button44.Size = New System.Drawing.Size(159, 63) Me.Button44.TabIndex = 1 - Me.Button44.Text = "Add AppX package..." + Me.Button44.Text = LocalizationService.ForSection("Designer.Main")("Add.AppX.Package.Button") Me.Button44.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button44.UseVisualStyleBackColor = True ' @@ -3099,7 +3097,7 @@ Partial Class MainForm Me.Button45.Name = "Button45" Me.Button45.Size = New System.Drawing.Size(159, 63) Me.Button45.TabIndex = 1 - Me.Button45.Text = "Get app information..." + Me.Button45.Text = LocalizationService.ForSection("Designer.Main")("Get.App.Button") Me.Button45.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button45.UseVisualStyleBackColor = True ' @@ -3111,7 +3109,7 @@ Partial Class MainForm Me.Button43.Name = "Button43" Me.Button43.Size = New System.Drawing.Size(159, 63) Me.Button43.TabIndex = 1 - Me.Button43.Text = "Remove AppX package..." + Me.Button43.Text = LocalizationService.ForSection("Designer.Main")("Remove.AppX.Package.Button") Me.Button43.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button43.UseVisualStyleBackColor = True ' @@ -3126,7 +3124,7 @@ Partial Class MainForm Me.GroupBox8.Size = New System.Drawing.Size(666, 93) Me.GroupBox8.TabIndex = 0 Me.GroupBox8.TabStop = False - Me.GroupBox8.Text = "Capability operations" + Me.GroupBox8.Text = LocalizationService.ForSection("Designer.Main")("Capability.Operations.Group") ' 'Button50 ' @@ -3135,7 +3133,7 @@ Partial Class MainForm Me.Button50.Name = "Button50" Me.Button50.Size = New System.Drawing.Size(159, 63) Me.Button50.TabIndex = 1 - Me.Button50.Text = "Save capability information..." + Me.Button50.Text = LocalizationService.ForSection("Designer.Main")("Save.Capability.Button") Me.Button50.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button50.UseVisualStyleBackColor = True ' @@ -3147,7 +3145,7 @@ Partial Class MainForm Me.Button48.Name = "Button48" Me.Button48.Size = New System.Drawing.Size(159, 63) Me.Button48.TabIndex = 1 - Me.Button48.Text = "Add capability..." + Me.Button48.Text = LocalizationService.ForSection("Designer.Main")("AddCapability.Button") Me.Button48.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button48.UseVisualStyleBackColor = True ' @@ -3159,7 +3157,7 @@ Partial Class MainForm Me.Button49.Name = "Button49" Me.Button49.Size = New System.Drawing.Size(159, 63) Me.Button49.TabIndex = 1 - Me.Button49.Text = "Get capability information..." + Me.Button49.Text = LocalizationService.ForSection("Designer.Main")("Get.Capability.Button") Me.Button49.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button49.UseVisualStyleBackColor = True ' @@ -3171,7 +3169,7 @@ Partial Class MainForm Me.Button47.Name = "Button47" Me.Button47.Size = New System.Drawing.Size(159, 63) Me.Button47.TabIndex = 1 - Me.Button47.Text = "Remove capability..." + Me.Button47.Text = LocalizationService.ForSection("Designer.Main")("RemoveCapability.Button") Me.Button47.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button47.UseVisualStyleBackColor = True ' @@ -3186,7 +3184,7 @@ Partial Class MainForm Me.GroupBox9.Size = New System.Drawing.Size(666, 93) Me.GroupBox9.TabIndex = 0 Me.GroupBox9.TabStop = False - Me.GroupBox9.Text = "Driver operations" + Me.GroupBox9.Text = LocalizationService.ForSection("Designer.Main")("DriverOperations.Group") ' 'Button54 ' @@ -3195,7 +3193,7 @@ Partial Class MainForm Me.Button54.Name = "Button54" Me.Button54.Size = New System.Drawing.Size(159, 63) Me.Button54.TabIndex = 1 - Me.Button54.Text = "Save installed driver information..." + Me.Button54.Text = LocalizationService.ForSection("Designer.Main")("Save.Installed.Driver.Button") Me.Button54.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button54.UseVisualStyleBackColor = True ' @@ -3207,7 +3205,7 @@ Partial Class MainForm Me.Button53.Name = "Button53" Me.Button53.Size = New System.Drawing.Size(159, 63) Me.Button53.TabIndex = 1 - Me.Button53.Text = "Add driver package..." + Me.Button53.Text = LocalizationService.ForSection("Designer.Main")("AddDriverPackage.Button") Me.Button53.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button53.UseVisualStyleBackColor = True ' @@ -3219,7 +3217,7 @@ Partial Class MainForm Me.Button51.Name = "Button51" Me.Button51.Size = New System.Drawing.Size(159, 63) Me.Button51.TabIndex = 1 - Me.Button51.Text = "Remove driver..." + Me.Button51.Text = LocalizationService.ForSection("Designer.Main")("RemoveDriver.Button") Me.Button51.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button51.UseVisualStyleBackColor = True ' @@ -3231,7 +3229,7 @@ Partial Class MainForm Me.Button52.Name = "Button52" Me.Button52.Size = New System.Drawing.Size(159, 63) Me.Button52.TabIndex = 1 - Me.Button52.Text = "Get driver information..." + Me.Button52.Text = LocalizationService.ForSection("Designer.Main")("Get.Driver.Button") Me.Button52.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button52.UseVisualStyleBackColor = True ' @@ -3246,7 +3244,7 @@ Partial Class MainForm Me.GroupBox10.Size = New System.Drawing.Size(666, 53) Me.GroupBox10.TabIndex = 0 Me.GroupBox10.TabStop = False - Me.GroupBox10.Text = "Windows PE operations" + Me.GroupBox10.Text = LocalizationService.ForSection("Designer.Main")("Windows.Group") ' 'Button58 ' @@ -3257,7 +3255,7 @@ Partial Class MainForm Me.Button58.Name = "Button58" Me.Button58.Size = New System.Drawing.Size(159, 23) Me.Button58.TabIndex = 1 - Me.Button58.Text = "Set scratch space..." + Me.Button58.Text = LocalizationService.ForSection("Designer.Main")("SetScratchSpace.Button") Me.Button58.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button58.UseVisualStyleBackColor = True ' @@ -3270,7 +3268,7 @@ Partial Class MainForm Me.Button57.Name = "Button57" Me.Button57.Size = New System.Drawing.Size(159, 23) Me.Button57.TabIndex = 1 - Me.Button57.Text = "Set target path..." + Me.Button57.Text = LocalizationService.ForSection("Designer.Main")("Set.Target.Path.Button") Me.Button57.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button57.UseVisualStyleBackColor = True ' @@ -3283,7 +3281,7 @@ Partial Class MainForm Me.Button56.Name = "Button56" Me.Button56.Size = New System.Drawing.Size(159, 23) Me.Button56.TabIndex = 1 - Me.Button56.Text = "Save configuration..." + Me.Button56.Text = LocalizationService.ForSection("Designer.Main")("SaveConfig.Button") Me.Button56.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button56.UseVisualStyleBackColor = True ' @@ -3296,7 +3294,7 @@ Partial Class MainForm Me.Button55.Name = "Button55" Me.Button55.Size = New System.Drawing.Size(159, 23) Me.Button55.TabIndex = 1 - Me.Button55.Text = "Get configuration..." + Me.Button55.Text = LocalizationService.ForSection("Designer.Main")("GetConfig.Button") Me.Button55.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText Me.Button55.UseVisualStyleBackColor = True ' @@ -3330,7 +3328,7 @@ Partial Class MainForm Me.BWFailLearnMoreBtn.Name = "BWFailLearnMoreBtn" Me.BWFailLearnMoreBtn.Size = New System.Drawing.Size(147, 23) Me.BWFailLearnMoreBtn.TabIndex = 1 - Me.BWFailLearnMoreBtn.Text = "Learn more..." + Me.BWFailLearnMoreBtn.Text = LocalizationService.ForSection("Designer.Main")("LearnMore.Button") Me.BWFailLearnMoreBtn.UseVisualStyleBackColor = True ' 'BWFailLabel @@ -3343,8 +3341,7 @@ Partial Class MainForm Me.BWFailLabel.Name = "BWFailLabel" Me.BWFailLabel.Size = New System.Drawing.Size(530, 13) Me.BWFailLabel.TabIndex = 0 - Me.BWFailLabel.Text = "One or more background processes did not finish successfully. Some functionality " & _ - "may not be available." + Me.BWFailLabel.Text = LocalizationService.ForSection("Designer.Main")("One.Bg.Procs.Message") ' 'ProjectSidePanel ' @@ -3391,7 +3388,7 @@ Partial Class MainForm Me.Label55.Name = "Label55" Me.Label55.Size = New System.Drawing.Size(79, 15) Me.Label55.TabIndex = 14 - Me.Label55.Text = "Project Tasks" + Me.Label55.Text = LocalizationService.ForSection("Designer.Main")("ProjectTasks.Label") ' 'PrjTasks ' @@ -3428,7 +3425,7 @@ Partial Class MainForm Me.LinkLabel17.Size = New System.Drawing.Size(245, 32) Me.LinkLabel17.TabIndex = 5 Me.LinkLabel17.TabStop = True - Me.LinkLabel17.Text = "Unload project" + Me.LinkLabel17.Text = LocalizationService.ForSection("Designer.Main")("UnloadProject.Link") Me.LinkLabel17.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox11 @@ -3455,7 +3452,7 @@ Partial Class MainForm Me.LinkLabel16.Size = New System.Drawing.Size(245, 31) Me.LinkLabel16.TabIndex = 3 Me.LinkLabel16.TabStop = True - Me.LinkLabel16.Text = "Open in File Explorer" + Me.LinkLabel16.Text = LocalizationService.ForSection("Designer.Main")("Open.File.Explorer.Link") Me.LinkLabel16.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox10 @@ -3482,7 +3479,7 @@ Partial Class MainForm Me.LinkLabel15.Size = New System.Drawing.Size(245, 31) Me.LinkLabel15.TabIndex = 0 Me.LinkLabel15.TabStop = True - Me.LinkLabel15.Text = "View project properties" + Me.LinkLabel15.Text = LocalizationService.ForSection("Designer.Main")("View.Project.Props.Link") Me.LinkLabel15.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox9 @@ -3505,7 +3502,7 @@ Partial Class MainForm Me.Button21.Name = "Button21" Me.Button21.Size = New System.Drawing.Size(221, 28) Me.Button21.TabIndex = 10 - Me.Button21.Text = "Unload project" + Me.Button21.Text = LocalizationService.ForSection("Designer.Main")("UnloadProject.ActionButton") Me.Button21.UseVisualStyleBackColor = True Me.Button21.Visible = False ' @@ -3518,7 +3515,7 @@ Partial Class MainForm Me.Button22.Name = "Button22" Me.Button22.Size = New System.Drawing.Size(221, 28) Me.Button22.TabIndex = 11 - Me.Button22.Text = "View in File Explorer" + Me.Button22.Text = LocalizationService.ForSection("Designer.Main")("View.File.Explorer.Button") Me.Button22.UseVisualStyleBackColor = True Me.Button22.Visible = False ' @@ -3531,7 +3528,7 @@ Partial Class MainForm Me.Button23.Name = "Button23" Me.Button23.Size = New System.Drawing.Size(221, 28) Me.Button23.TabIndex = 12 - Me.Button23.Text = "View project properties" + Me.Button23.Text = LocalizationService.ForSection("Designer.Main")("View.Project.Props.Button") Me.Button23.UseVisualStyleBackColor = True Me.Button23.Visible = False ' @@ -3571,7 +3568,7 @@ Partial Class MainForm Me.LinkLabel14.Size = New System.Drawing.Size(157, 223) Me.LinkLabel14.TabIndex = 5 Me.LinkLabel14.TabStop = True - Me.LinkLabel14.Text = "Click here to mount an image" + Me.LinkLabel14.Text = LocalizationService.ForSection("Designer.Main")("Mount.Image.Link") ' 'Label50 ' @@ -3582,7 +3579,7 @@ Partial Class MainForm Me.Label50.Name = "Label50" Me.Label50.Size = New System.Drawing.Size(157, 15) Me.Label50.TabIndex = 2 - Me.Label50.Text = "imgStatus" + Me.Label50.Text = LocalizationService.ForSection("Designer.Main")("ImgStatus.Label") ' 'Label51 ' @@ -3592,7 +3589,7 @@ Partial Class MainForm Me.Label51.Name = "Label51" Me.Label51.Size = New System.Drawing.Size(123, 102) Me.Label51.TabIndex = 1 - Me.Label51.Text = "Location:" + Me.Label51.Text = LocalizationService.ForSection("Designer.Main")("Location.Label") Me.Label51.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label52 @@ -3603,7 +3600,7 @@ Partial Class MainForm Me.Label52.Name = "Label52" Me.Label52.Size = New System.Drawing.Size(157, 102) Me.Label52.TabIndex = 2 - Me.Label52.Text = "projPath" + Me.Label52.Text = LocalizationService.ForSection("Designer.Main")("ProjPath.Label") ' 'Label53 ' @@ -3614,7 +3611,7 @@ Partial Class MainForm Me.TableLayoutPanel6.SetRowSpan(Me.Label53, 2) Me.Label53.Size = New System.Drawing.Size(123, 238) Me.Label53.TabIndex = 1 - Me.Label53.Text = "Images mounted?" + Me.Label53.Text = LocalizationService.ForSection("Designer.Main")("ImagesMounted.Label") Me.Label53.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Panel13 @@ -3633,7 +3630,7 @@ Partial Class MainForm Me.Label54.Name = "Label54" Me.Label54.Size = New System.Drawing.Size(123, 23) Me.Label54.TabIndex = 1 - Me.Label54.Text = "Name:" + Me.Label54.Text = LocalizationService.ForSection("Designer.Main")("Name.Label") Me.Label54.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label49 @@ -3644,7 +3641,7 @@ Partial Class MainForm Me.Label49.Name = "Label49" Me.Label49.Size = New System.Drawing.Size(157, 29) Me.Label49.TabIndex = 2 - Me.Label49.Text = "Label49" + Me.Label49.Text = LocalizationService.ForSection("Designer.Main")("ProjectName.DynamicLabel") Me.Label49.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'SidePanel_ImageView @@ -3679,7 +3676,7 @@ Partial Class MainForm Me.Label59.Name = "Label59" Me.Label59.Size = New System.Drawing.Size(285, 32) Me.Label59.TabIndex = 19 - Me.Label59.Text = "No image has been mounted" + Me.Label59.Text = LocalizationService.ForSection("Designer.Main")("ImageMounted.Label") Me.Label59.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label58 @@ -3691,7 +3688,7 @@ Partial Class MainForm Me.Label58.Name = "Label58" Me.Label58.Size = New System.Drawing.Size(285, 71) Me.Label58.TabIndex = 19 - Me.Label58.Text = "You need to mount an image in order to view its information." + Me.Label58.Text = LocalizationService.ForSection("Designer.Main")("Mount.Image.Order.Label") Me.Label58.TextAlign = System.Drawing.ContentAlignment.TopCenter ' 'Label57 @@ -3703,7 +3700,7 @@ Partial Class MainForm Me.Label57.Name = "Label57" Me.Label57.Size = New System.Drawing.Size(49, 15) Me.Label57.TabIndex = 18 - Me.Label57.Text = "Choices" + Me.Label57.Text = LocalizationService.ForSection("Designer.Main")("Choices.Label") ' 'TableLayoutPanel7 ' @@ -3738,7 +3735,7 @@ Partial Class MainForm Me.LinkLabel18.Size = New System.Drawing.Size(245, 32) Me.LinkLabel18.TabIndex = 3 Me.LinkLabel18.TabStop = True - Me.LinkLabel18.Text = "Pick a mounted image..." + Me.LinkLabel18.Text = LocalizationService.ForSection("Designer.Main")("Pick.Mounted.Image.Link") Me.LinkLabel18.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox12 @@ -3764,7 +3761,7 @@ Partial Class MainForm Me.LinkLabel21.Size = New System.Drawing.Size(245, 32) Me.LinkLabel21.TabIndex = 0 Me.LinkLabel21.TabStop = True - Me.LinkLabel21.Text = "Mount an image..." + Me.LinkLabel21.Text = LocalizationService.ForSection("Designer.Main")("MountImage.Link") Me.LinkLabel21.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox15 @@ -3798,7 +3795,7 @@ Partial Class MainForm Me.Label56.Name = "Label56" Me.Label56.Size = New System.Drawing.Size(74, 15) Me.Label56.TabIndex = 15 - Me.Label56.Text = "Image Tasks" + Me.Label56.Text = LocalizationService.ForSection("Designer.Main")("ImageTasks.Label") ' 'ImgTasks ' @@ -3833,7 +3830,7 @@ Partial Class MainForm Me.LinkLabel19.Size = New System.Drawing.Size(245, 32) Me.LinkLabel19.TabIndex = 3 Me.LinkLabel19.TabStop = True - Me.LinkLabel19.Text = "Unmount image" + Me.LinkLabel19.Text = LocalizationService.ForSection("Designer.Main")("UnmountImage.Link") Me.LinkLabel19.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox13 @@ -3859,7 +3856,7 @@ Partial Class MainForm Me.LinkLabel20.Size = New System.Drawing.Size(245, 32) Me.LinkLabel20.TabIndex = 0 Me.LinkLabel20.TabStop = True - Me.LinkLabel20.Text = "View image properties" + Me.LinkLabel20.Text = LocalizationService.ForSection("Designer.Main")("View.Image.Props.Link") Me.LinkLabel20.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox14 @@ -3909,7 +3906,7 @@ Partial Class MainForm Me.Label39.Name = "Label39" Me.Label39.Size = New System.Drawing.Size(106, 23) Me.Label39.TabIndex = 4 - Me.Label39.Text = "Image index:" + Me.Label39.Text = LocalizationService.ForSection("Designer.Main")("ImageIndex.Label") Me.Label39.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label40 @@ -3919,7 +3916,7 @@ Partial Class MainForm Me.Label40.Name = "Label40" Me.Label40.Size = New System.Drawing.Size(106, 178) Me.Label40.TabIndex = 3 - Me.Label40.Text = "Description:" + Me.Label40.Text = LocalizationService.ForSection("Designer.Main")("Description.Label") Me.Label40.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label41 @@ -3930,7 +3927,7 @@ Partial Class MainForm Me.Label41.Name = "Label41" Me.Label41.Size = New System.Drawing.Size(168, 23) Me.Label41.TabIndex = 6 - Me.Label41.Text = "imgIndex" + Me.Label41.Text = LocalizationService.ForSection("Designer.Main")("ImgIndex.Label") Me.Label41.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label42 @@ -3940,7 +3937,7 @@ Partial Class MainForm Me.Label42.Name = "Label42" Me.Label42.Size = New System.Drawing.Size(106, 84) Me.Label42.TabIndex = 3 - Me.Label42.Text = "Name:" + Me.Label42.Text = LocalizationService.ForSection("Designer.Main")("Name.Label") Me.Label42.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label43 @@ -3950,7 +3947,7 @@ Partial Class MainForm Me.Label43.Name = "Label43" Me.Label43.Size = New System.Drawing.Size(106, 74) Me.Label43.TabIndex = 3 - Me.Label43.Text = "Mount point:" + Me.Label43.Text = LocalizationService.ForSection("Designer.Main")("MountPoint.Label") Me.Label43.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label44 @@ -3961,7 +3958,7 @@ Partial Class MainForm Me.Label44.Name = "Label44" Me.Label44.Size = New System.Drawing.Size(168, 74) Me.Label44.TabIndex = 5 - Me.Label44.Text = "mountPoint" + Me.Label44.Text = LocalizationService.ForSection("Designer.Main")("MountPoint.Value") ' 'Label45 ' @@ -3970,7 +3967,7 @@ Partial Class MainForm Me.Label45.Name = "Label45" Me.Label45.Size = New System.Drawing.Size(106, 20) Me.Label45.TabIndex = 3 - Me.Label45.Text = "Version:" + Me.Label45.Text = LocalizationService.ForSection("Designer.Main")("Version.Label") Me.Label45.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label46 @@ -3981,7 +3978,7 @@ Partial Class MainForm Me.Label46.Name = "Label46" Me.Label46.Size = New System.Drawing.Size(168, 84) Me.Label46.TabIndex = 6 - Me.Label46.Text = "imgName" + Me.Label46.Text = LocalizationService.ForSection("Designer.Main")("ImgName.Label") Me.Label46.UseMnemonic = False ' 'Label47 @@ -3992,7 +3989,7 @@ Partial Class MainForm Me.Label47.Name = "Label47" Me.Label47.Size = New System.Drawing.Size(168, 178) Me.Label47.TabIndex = 6 - Me.Label47.Text = "imgDesc" + Me.Label47.Text = LocalizationService.ForSection("Designer.Main")("ImgDesc.Label") Me.Label47.UseMnemonic = False ' 'Label48 @@ -4003,7 +4000,7 @@ Partial Class MainForm Me.Label48.Name = "Label48" Me.Label48.Size = New System.Drawing.Size(168, 20) Me.Label48.TabIndex = 6 - Me.Label48.Text = "imgVersion" + Me.Label48.Text = LocalizationService.ForSection("Designer.Main")("ImgVersion.Label") Me.Label48.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Panel10 @@ -4043,7 +4040,7 @@ Partial Class MainForm Me.LinkLabel12.Size = New System.Drawing.Size(144, 36) Me.LinkLabel12.TabIndex = 3 Me.LinkLabel12.TabStop = True - Me.LinkLabel12.Text = "PROJECT" + Me.LinkLabel12.Text = LocalizationService.ForSection("Designer.Main")("Project.Link") Me.LinkLabel12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel13 @@ -4059,7 +4056,7 @@ Partial Class MainForm Me.LinkLabel13.Size = New System.Drawing.Size(144, 36) Me.LinkLabel13.TabIndex = 2 Me.LinkLabel13.TabStop = True - Me.LinkLabel13.Text = "IMAGE" + Me.LinkLabel13.Text = LocalizationService.ForSection("Designer.Main")("Image.Link") Me.LinkLabel13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'ProjectViewHeader @@ -4100,7 +4097,7 @@ Partial Class MainForm Me.TimeLabel.Padding = New System.Windows.Forms.Padding(0, 12, 8, 0) Me.TimeLabel.Size = New System.Drawing.Size(256, 48) Me.TimeLabel.TabIndex = 1 - Me.TimeLabel.Text = "Label40" + Me.TimeLabel.Text = LocalizationService.ForSection("Designer.Main")("Clock.DynamicLabel") Me.TimeLabel.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'GreetingLabel @@ -4113,7 +4110,7 @@ Partial Class MainForm Me.GreetingLabel.Padding = New System.Windows.Forms.Padding(8, 0, 0, 0) Me.GreetingLabel.Size = New System.Drawing.Size(692, 48) Me.GreetingLabel.TabIndex = 0 - Me.GreetingLabel.Text = "Welcome to this servicing session" + Me.GreetingLabel.Text = LocalizationService.ForSection("Designer.Main")("Welcome.Servicing.Label") Me.GreetingLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'MenuToggle @@ -4147,7 +4144,7 @@ Partial Class MainForm Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton1.Name = "ToolStripButton1" Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton1.Text = "Close tab" + Me.ToolStripButton1.Text = LocalizationService.ForSection("Designer.Main")("CloseTab.Label") Me.ToolStripButton1.Visible = False ' 'ToolStripButton2 @@ -4157,7 +4154,7 @@ Partial Class MainForm Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton2.Name = "ToolStripButton2" Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton2.Text = "Save project" + Me.ToolStripButton2.Text = LocalizationService.ForSection("Designer.Main")("SaveProject.Label") ' 'ToolStripSeparator14 ' @@ -4170,8 +4167,8 @@ Partial Class MainForm Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton3.Name = "ToolStripButton3" Me.ToolStripButton3.Size = New System.Drawing.Size(105, 22) - Me.ToolStripButton3.Text = "Unload project" - Me.ToolStripButton3.ToolTipText = "Unload project from this program" + Me.ToolStripButton3.Text = LocalizationService.ForSection("Designer.Main")("UnloadProject.Label") + Me.ToolStripButton3.ToolTipText = LocalizationService.ForSection("Designer.Main")("Unload.Project.Tooltip") ' 'ToolStripSeparator15 ' @@ -4188,7 +4185,7 @@ Partial Class MainForm Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton4.Name = "ToolStripButton4" Me.ToolStripButton4.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton4.Text = "Show progress window" + Me.ToolStripButton4.Text = LocalizationService.ForSection("Designer.Main")("Show.Progress.Window.Label") Me.ToolStripButton4.Visible = False ' 'Panel2 @@ -4227,7 +4224,7 @@ Partial Class MainForm Me.RefreshViewTSB.ImageTransparentColor = System.Drawing.Color.Magenta Me.RefreshViewTSB.Name = "RefreshViewTSB" Me.RefreshViewTSB.Size = New System.Drawing.Size(23, 22) - Me.RefreshViewTSB.Text = "Refresh view" + Me.RefreshViewTSB.Text = LocalizationService.ForSection("Designer.Main")("RefreshView.Label") ' 'ToolStripSeparator17 ' @@ -4240,7 +4237,7 @@ Partial Class MainForm Me.ExpandCollapseTSB.ImageTransparentColor = System.Drawing.Color.Magenta Me.ExpandCollapseTSB.Name = "ExpandCollapseTSB" Me.ExpandCollapseTSB.Size = New System.Drawing.Size(65, 22) - Me.ExpandCollapseTSB.Text = "Expand" + Me.ExpandCollapseTSB.Text = LocalizationService.ForSection("Designer.Main")("Expand.Label") ' 'prjTreeStatus ' @@ -4259,7 +4256,7 @@ Partial Class MainForm ' Me.ToolStripStatusLabel2.Name = "ToolStripStatusLabel2" Me.ToolStripStatusLabel2.Size = New System.Drawing.Size(125, 17) - Me.ToolStripStatusLabel2.Text = "Preparing project tree..." + Me.ToolStripStatusLabel2.Text = LocalizationService.ForSection("Designer.Main")("Preparing.Project.Button") ' 'ToolStripProgressBar1 ' @@ -4275,7 +4272,7 @@ Partial Class MainForm Me.StatusStrip.Name = "StatusStrip" Me.StatusStrip.Size = New System.Drawing.Size(1264, 26) Me.StatusStrip.TabIndex = 0 - Me.StatusStrip.Text = "Status" + Me.StatusStrip.Text = LocalizationService.ForSection("Designer.Main")("Status.Label") ' 'BackgroundProcessesButton ' @@ -4286,21 +4283,21 @@ Partial Class MainForm Me.BackgroundProcessesButton.ImageTransparentColor = System.Drawing.Color.Magenta Me.BackgroundProcessesButton.Name = "BackgroundProcessesButton" Me.BackgroundProcessesButton.Size = New System.Drawing.Size(25, 24) - Me.BackgroundProcessesButton.ToolTipText = "View background processes" + Me.BackgroundProcessesButton.ToolTipText = LocalizationService.ForSection("Designer.Main")("View.BgProcesses.Tooltip") ' 'MenuDesc ' Me.MenuDesc.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.MenuDesc.Name = "MenuDesc" Me.MenuDesc.Size = New System.Drawing.Size(39, 21) - Me.MenuDesc.Text = "Ready" + Me.MenuDesc.Text = LocalizationService.ForSection("Designer.Main")("Ready.Label") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "DISMTools project files|*.dtproj" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.Main")("DISM.Tools.Project.Filter") Me.OpenFileDialog1.RestoreDirectory = True Me.OpenFileDialog1.SupportMultiDottedExtensions = True - Me.OpenFileDialog1.Title = "Specify the project file to load" + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.Main")("Project.File.Load.Title") ' 'PkgInfoCMS ' @@ -4314,13 +4311,13 @@ Partial Class MainForm ' Me.PkgBasicInfo.Name = "PkgBasicInfo" Me.PkgBasicInfo.Size = New System.Drawing.Size(276, 22) - Me.PkgBasicInfo.Text = "Get basic information (all packages)" + Me.PkgBasicInfo.Text = LocalizationService.ForSection("Designer.Main")("Get.Basic.Label") ' 'PkgDetailedInfo ' Me.PkgDetailedInfo.Name = "PkgDetailedInfo" Me.PkgDetailedInfo.Size = New System.Drawing.Size(276, 22) - Me.PkgDetailedInfo.Text = "Get detailed information (specific package)" + Me.PkgDetailedInfo.Text = LocalizationService.ForSection("Designer.Main")("Get.Detailed.Specific.Label") ' 'ImgBW ' @@ -4339,7 +4336,7 @@ Partial Class MainForm ' 'LocalMountDirFBD ' - Me.LocalMountDirFBD.Description = "Please specify the mount directory you want to load into this project:" + Me.LocalMountDirFBD.Description = LocalizationService.ForSection("Designer.Main")("MountDir.Description") Me.LocalMountDirFBD.RootFolder = System.Environment.SpecialFolder.MyComputer Me.LocalMountDirFBD.ShowNewFolderButton = False ' @@ -4358,13 +4355,13 @@ Partial Class MainForm ' Me.CommitAndUnmountTSMI.Name = "CommitAndUnmountTSMI" Me.CommitAndUnmountTSMI.Size = New System.Drawing.Size(252, 22) - Me.CommitAndUnmountTSMI.Text = "Commit changes and unmount image" + Me.CommitAndUnmountTSMI.Text = LocalizationService.ForSection("Designer.Main")("CommitImage.Label") ' 'DiscardAndUnmountTSMI ' Me.DiscardAndUnmountTSMI.Name = "DiscardAndUnmountTSMI" Me.DiscardAndUnmountTSMI.Size = New System.Drawing.Size(252, 22) - Me.DiscardAndUnmountTSMI.Text = "Discard changes and unmount image" + Me.DiscardAndUnmountTSMI.Text = LocalizationService.ForSection("Designer.Main")("Discard.Changes.Label") ' 'ToolStripSeparator20 ' @@ -4375,7 +4372,7 @@ Partial Class MainForm ' Me.UnmountSettingsToolStripMenuItem.Name = "UnmountSettingsToolStripMenuItem" Me.UnmountSettingsToolStripMenuItem.Size = New System.Drawing.Size(252, 22) - Me.UnmountSettingsToolStripMenuItem.Text = "Unmount settings..." + Me.UnmountSettingsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("UnmountSettings.Button") ' 'AppxPackagePopupCMS ' @@ -4388,13 +4385,13 @@ Partial Class MainForm Me.ViewPackageDirectoryToolStripMenuItem.Image = Global.DISMTools.My.Resources.Resources.openfile Me.ViewPackageDirectoryToolStripMenuItem.Name = "ViewPackageDirectoryToolStripMenuItem" Me.ViewPackageDirectoryToolStripMenuItem.Size = New System.Drawing.Size(196, 22) - Me.ViewPackageDirectoryToolStripMenuItem.Text = "View package directory" + Me.ViewPackageDirectoryToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("View.Package.Dir.Label") ' 'ResViewTSMI ' Me.ResViewTSMI.Name = "ResViewTSMI" Me.ResViewTSMI.Size = New System.Drawing.Size(196, 22) - Me.ResViewTSMI.Text = "View resources for " + Me.ResViewTSMI.Text = LocalizationService.ForSection("Designer.Main")("ViewResources.Label") ' 'TreeViewCMS ' @@ -4406,13 +4403,13 @@ Partial Class MainForm ' Me.ExpandToolStripMenuItem.Name = "ExpandToolStripMenuItem" Me.ExpandToolStripMenuItem.Size = New System.Drawing.Size(218, 22) - Me.ExpandToolStripMenuItem.Text = "Expand item" + Me.ExpandToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ExpandItem.Label") ' 'AccessDirectoryToolStripMenuItem ' Me.AccessDirectoryToolStripMenuItem.Name = "AccessDirectoryToolStripMenuItem" Me.AccessDirectoryToolStripMenuItem.Size = New System.Drawing.Size(218, 22) - Me.AccessDirectoryToolStripMenuItem.Text = "Access directory" + Me.AccessDirectoryToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("AccessDirectory.Label") ' 'ToolStripSeparator23 ' @@ -4423,7 +4420,7 @@ Partial Class MainForm ' Me.UnloadProjectToolStripMenuItem1.Name = "UnloadProjectToolStripMenuItem1" Me.UnloadProjectToolStripMenuItem1.Size = New System.Drawing.Size(218, 22) - Me.UnloadProjectToolStripMenuItem1.Text = "Unload project" + Me.UnloadProjectToolStripMenuItem1.Text = LocalizationService.ForSection("Designer.Main")("UnloadProject.Label") ' 'ToolStripSeparator24 ' @@ -4435,19 +4432,19 @@ Partial Class MainForm Me.CopyDeploymentToolsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OfAllArchitecturesToolStripMenuItem, Me.OfSelectedArchitectureToolStripMenuItem, Me.ToolStripSeparator25, Me.ForX86ArchitectureToolStripMenuItem, Me.ForAmd64ArchitectureToolStripMenuItem, Me.ForARMArchitectureToolStripMenuItem, Me.ForARM64ArchitectureToolStripMenuItem}) Me.CopyDeploymentToolsToolStripMenuItem.Name = "CopyDeploymentToolsToolStripMenuItem" Me.CopyDeploymentToolsToolStripMenuItem.Size = New System.Drawing.Size(218, 22) - Me.CopyDeploymentToolsToolStripMenuItem.Text = "Copy deployment tools" + Me.CopyDeploymentToolsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Copy.Deployment.Tools.Label") ' 'OfAllArchitecturesToolStripMenuItem ' Me.OfAllArchitecturesToolStripMenuItem.Name = "OfAllArchitecturesToolStripMenuItem" Me.OfAllArchitecturesToolStripMenuItem.Size = New System.Drawing.Size(199, 22) - Me.OfAllArchitecturesToolStripMenuItem.Text = "Of all architectures" + Me.OfAllArchitecturesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("AllArchitectures.Label") ' 'OfSelectedArchitectureToolStripMenuItem ' Me.OfSelectedArchitectureToolStripMenuItem.Name = "OfSelectedArchitectureToolStripMenuItem" Me.OfSelectedArchitectureToolStripMenuItem.Size = New System.Drawing.Size(199, 22) - Me.OfSelectedArchitectureToolStripMenuItem.Text = "Of selected architecture" + Me.OfSelectedArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Selected.Architecture.Label") ' 'ToolStripSeparator25 ' @@ -4458,25 +4455,25 @@ Partial Class MainForm ' Me.ForX86ArchitectureToolStripMenuItem.Name = "ForX86ArchitectureToolStripMenuItem" Me.ForX86ArchitectureToolStripMenuItem.Size = New System.Drawing.Size(199, 22) - Me.ForX86ArchitectureToolStripMenuItem.Text = "For x86 architecture" + Me.ForX86ArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Xarchitecture.Label") ' 'ForAmd64ArchitectureToolStripMenuItem ' Me.ForAmd64ArchitectureToolStripMenuItem.Name = "ForAmd64ArchitectureToolStripMenuItem" Me.ForAmd64ArchitectureToolStripMenuItem.Size = New System.Drawing.Size(199, 22) - Me.ForAmd64ArchitectureToolStripMenuItem.Text = "For AMD64 architecture" + Me.ForAmd64ArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Amarkdown.Architecture.Label") ' 'ForARMArchitectureToolStripMenuItem ' Me.ForARMArchitectureToolStripMenuItem.Name = "ForARMArchitectureToolStripMenuItem" Me.ForARMArchitectureToolStripMenuItem.Size = New System.Drawing.Size(199, 22) - Me.ForARMArchitectureToolStripMenuItem.Text = "For ARM architecture" + Me.ForARMArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ARM.Label") ' 'ForARM64ArchitectureToolStripMenuItem ' Me.ForARM64ArchitectureToolStripMenuItem.Name = "ForARM64ArchitectureToolStripMenuItem" Me.ForARM64ArchitectureToolStripMenuItem.Size = New System.Drawing.Size(199, 22) - Me.ForARM64ArchitectureToolStripMenuItem.Text = "For ARM64 architecture" + Me.ForARM64ArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ARM64.Label") ' 'ToolStripSeparator27 ' @@ -4488,19 +4485,19 @@ Partial Class MainForm Me.ImageOperationsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MountImageToolStripMenuItem, Me.UnmountImageToolStripMenuItem, Me.ToolStripSeparator29, Me.RemoveVolumeImagesToolStripMenuItem, Me.SwitchImageIndexesToolStripMenuItem1}) Me.ImageOperationsToolStripMenuItem.Name = "ImageOperationsToolStripMenuItem" Me.ImageOperationsToolStripMenuItem.Size = New System.Drawing.Size(218, 22) - Me.ImageOperationsToolStripMenuItem.Text = "Image operations" + Me.ImageOperationsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ImageOperations.Label") ' 'MountImageToolStripMenuItem ' Me.MountImageToolStripMenuItem.Name = "MountImageToolStripMenuItem" Me.MountImageToolStripMenuItem.Size = New System.Drawing.Size(210, 22) - Me.MountImageToolStripMenuItem.Text = "Mount image..." + Me.MountImageToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("MountImage.Button") ' 'UnmountImageToolStripMenuItem ' Me.UnmountImageToolStripMenuItem.Name = "UnmountImageToolStripMenuItem" Me.UnmountImageToolStripMenuItem.Size = New System.Drawing.Size(210, 22) - Me.UnmountImageToolStripMenuItem.Text = "Unmount image..." + Me.UnmountImageToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("UnmountImage.Button") ' 'ToolStripSeparator29 ' @@ -4511,13 +4508,13 @@ Partial Class MainForm ' Me.RemoveVolumeImagesToolStripMenuItem.Name = "RemoveVolumeImagesToolStripMenuItem" Me.RemoveVolumeImagesToolStripMenuItem.Size = New System.Drawing.Size(210, 22) - Me.RemoveVolumeImagesToolStripMenuItem.Text = "Remove volume images..." + Me.RemoveVolumeImagesToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Remove.VolumeImages.Button") ' 'SwitchImageIndexesToolStripMenuItem1 ' Me.SwitchImageIndexesToolStripMenuItem1.Name = "SwitchImageIndexesToolStripMenuItem1" Me.SwitchImageIndexesToolStripMenuItem1.Size = New System.Drawing.Size(210, 22) - Me.SwitchImageIndexesToolStripMenuItem1.Text = "Switch image indexes..." + Me.SwitchImageIndexesToolStripMenuItem1.Text = LocalizationService.ForSection("Designer.Main")("Switch.Image.Indexes.Button") ' 'ToolStripSeparator30 ' @@ -4529,19 +4526,19 @@ Partial Class MainForm Me.UnattendedAnswerFilesToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ManageToolStripMenuItem, Me.CreationWizardToolStripMenuItem}) Me.UnattendedAnswerFilesToolStripMenuItem1.Name = "UnattendedAnswerFilesToolStripMenuItem1" Me.UnattendedAnswerFilesToolStripMenuItem1.Size = New System.Drawing.Size(218, 22) - Me.UnattendedAnswerFilesToolStripMenuItem1.Text = "Unattended answer files" + Me.UnattendedAnswerFilesToolStripMenuItem1.Text = LocalizationService.ForSection("Designer.Main")("Unattended.Answer.Label") ' 'ManageToolStripMenuItem ' Me.ManageToolStripMenuItem.Name = "ManageToolStripMenuItem" Me.ManageToolStripMenuItem.Size = New System.Drawing.Size(117, 22) - Me.ManageToolStripMenuItem.Text = "Manage" + Me.ManageToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Manage.Label") ' 'CreationWizardToolStripMenuItem ' Me.CreationWizardToolStripMenuItem.Name = "CreationWizardToolStripMenuItem" Me.CreationWizardToolStripMenuItem.Size = New System.Drawing.Size(117, 22) - Me.CreationWizardToolStripMenuItem.Text = "Create" + Me.CreationWizardToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Create.Label") ' 'ToolStripSeparator31 ' @@ -4552,7 +4549,7 @@ Partial Class MainForm ' Me.ScratchDirectorySettingsToolStripMenuItem.Name = "ScratchDirectorySettingsToolStripMenuItem" Me.ScratchDirectorySettingsToolStripMenuItem.Size = New System.Drawing.Size(218, 22) - Me.ScratchDirectorySettingsToolStripMenuItem.Text = "Configure scratch directory" + Me.ScratchDirectorySettingsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Configure.Scratch.Dir.Label") ' 'ToolStripSeparator32 ' @@ -4563,7 +4560,7 @@ Partial Class MainForm ' Me.ManageReportsToolStripMenuItem.Name = "ManageReportsToolStripMenuItem" Me.ManageReportsToolStripMenuItem.Size = New System.Drawing.Size(218, 22) - Me.ManageReportsToolStripMenuItem.Text = "Manage reports" + Me.ManageReportsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ManageReports.Label") ' 'ToolStripSeparator33 ' @@ -4575,19 +4572,19 @@ Partial Class MainForm Me.AddToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NewFileToolStripMenuItem, Me.ExistingFileToolStripMenuItem}) Me.AddToolStripMenuItem.Name = "AddToolStripMenuItem" Me.AddToolStripMenuItem.Size = New System.Drawing.Size(218, 22) - Me.AddToolStripMenuItem.Text = "Add" + Me.AddToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Add.Button") ' 'NewFileToolStripMenuItem ' Me.NewFileToolStripMenuItem.Name = "NewFileToolStripMenuItem" Me.NewFileToolStripMenuItem.Size = New System.Drawing.Size(142, 22) - Me.NewFileToolStripMenuItem.Text = "New file..." + Me.NewFileToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("NewFile.Button") ' 'ExistingFileToolStripMenuItem ' Me.ExistingFileToolStripMenuItem.Name = "ExistingFileToolStripMenuItem" Me.ExistingFileToolStripMenuItem.Size = New System.Drawing.Size(142, 22) - Me.ExistingFileToolStripMenuItem.Text = "Existing file..." + Me.ExistingFileToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("ExistingFile.Button") ' 'ADKCopierBW ' @@ -4610,17 +4607,17 @@ Partial Class MainForm ' Me.SaveResourceToolStripMenuItem.Name = "SaveResourceToolStripMenuItem" Me.SaveResourceToolStripMenuItem.Size = New System.Drawing.Size(130, 22) - Me.SaveResourceToolStripMenuItem.Text = "Save resource..." + Me.SaveResourceToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("SaveResource.Button") ' 'CopyToolStripMenuItem ' Me.CopyToolStripMenuItem.Name = "CopyToolStripMenuItem" Me.CopyToolStripMenuItem.Size = New System.Drawing.Size(130, 22) - Me.CopyToolStripMenuItem.Text = "Copy resource" + Me.CopyToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("CopyResource.Label") ' 'AppxResSFD ' - Me.AppxResSFD.Filter = "PNG files|*.png" + Me.AppxResSFD.Filter = LocalizationService.ForSection("Designer.Main")("PngFiles.Filter") ' 'Notifications ' @@ -4636,13 +4633,13 @@ Partial Class MainForm ' Me.MicrosoftAppsToolStripMenuItem.Name = "MicrosoftAppsToolStripMenuItem" Me.MicrosoftAppsToolStripMenuItem.Size = New System.Drawing.Size(319, 22) - Me.MicrosoftAppsToolStripMenuItem.Text = "Visit the Microsoft Apps website" + Me.MicrosoftAppsToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Visit.Microsoft.Apps.Label") ' 'MicrosoftStoreGenerationProjectToolStripMenuItem ' Me.MicrosoftStoreGenerationProjectToolStripMenuItem.Name = "MicrosoftStoreGenerationProjectToolStripMenuItem" Me.MicrosoftStoreGenerationProjectToolStripMenuItem.Size = New System.Drawing.Size(319, 22) - Me.MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visit the Microsoft Store Generation Project website" + Me.MicrosoftStoreGenerationProjectToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Visit.Microsoft.Label") ' 'ToolStripSeparator36 ' @@ -4653,11 +4650,11 @@ Partial Class MainForm ' Me.AppxDownloadHelpToolStripMenuItem.Name = "AppxDownloadHelpToolStripMenuItem" Me.AppxDownloadHelpToolStripMenuItem.Size = New System.Drawing.Size(319, 22) - Me.AppxDownloadHelpToolStripMenuItem.Text = "How do I get applications?" + Me.AppxDownloadHelpToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Iget.Apps.Label") ' 'ImgInfoSFD ' - Me.ImgInfoSFD.Filter = "Markdown files|*.md" + Me.ImgInfoSFD.Filter = LocalizationService.ForSection("Designer.Main")("MarkdownFiles.Filter") ' 'Timer1 ' @@ -4691,7 +4688,7 @@ Partial Class MainForm ' Me.GetImageFileInformationToolStripMenuItem.Name = "GetImageFileInformationToolStripMenuItem" Me.GetImageFileInformationToolStripMenuItem.Size = New System.Drawing.Size(250, 22) - Me.GetImageFileInformationToolStripMenuItem.Text = "Get image file information..." + Me.GetImageFileInformationToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Get.ImageFile.Button") ' 'ToolStripSeparator39 ' @@ -4702,7 +4699,7 @@ Partial Class MainForm ' Me.SaveCompleteImageInformationToolStripMenuItem.Name = "SaveCompleteImageInformationToolStripMenuItem" Me.SaveCompleteImageInformationToolStripMenuItem.Size = New System.Drawing.Size(250, 22) - Me.SaveCompleteImageInformationToolStripMenuItem.Text = "Save complete image information..." + Me.SaveCompleteImageInformationToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Save.Complete.Image.Button") ' 'ToolStripSeparator40 ' @@ -4713,13 +4710,13 @@ Partial Class MainForm ' Me.CreateDiscImageWithThisFileToolStripMenuItem.Name = "CreateDiscImageWithThisFileToolStripMenuItem" Me.CreateDiscImageWithThisFileToolStripMenuItem.Size = New System.Drawing.Size(250, 22) - Me.CreateDiscImageWithThisFileToolStripMenuItem.Text = "Create disc image with this file..." + Me.CreateDiscImageWithThisFileToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Create.Disc.ImageFile.Button") ' 'UploadThisImageToMyWDSServerToolStripMenuItem ' Me.UploadThisImageToMyWDSServerToolStripMenuItem.Name = "UploadThisImageToMyWDSServerToolStripMenuItem" Me.UploadThisImageToMyWDSServerToolStripMenuItem.Size = New System.Drawing.Size(250, 22) - Me.UploadThisImageToMyWDSServerToolStripMenuItem.Text = "Upload this image to my WDS server..." + Me.UploadThisImageToMyWDSServerToolStripMenuItem.Text = LocalizationService.ForSection("Designer.Main")("Upload.Image.My.Button") ' 'WIEDownloaderBW ' @@ -4744,13 +4741,13 @@ Partial Class MainForm ' Me.ApplyWimTSMI.Name = "ApplyWimTSMI" Me.ApplyWimTSMI.Size = New System.Drawing.Size(194, 22) - Me.ApplyWimTSMI.Text = "Apply WIM/SWM/ESD file..." + Me.ApplyWimTSMI.Text = LocalizationService.ForSection("Designer.Main")("ApplyWimswmesd.Button") ' 'ApplyFfuTSMI ' Me.ApplyFfuTSMI.Name = "ApplyFfuTSMI" Me.ApplyFfuTSMI.Size = New System.Drawing.Size(194, 22) - Me.ApplyFfuTSMI.Text = "Apply FFU file..." + Me.ApplyFfuTSMI.Text = LocalizationService.ForSection("Designer.Main")("Apply.FFU.File.Button") ' 'ImgCaptureModeCMS ' @@ -4763,13 +4760,13 @@ Partial Class MainForm ' Me.CaptureWimTSMI.Name = "CaptureWimTSMI" Me.CaptureWimTSMI.Size = New System.Drawing.Size(272, 22) - Me.CaptureWimTSMI.Text = "Capture installation directory to WIM file..." + Me.CaptureWimTSMI.Text = LocalizationService.ForSection("Designer.Main")("Capture.Install.Dir.Button") ' 'CaptureFfuTSMI ' Me.CaptureFfuTSMI.Name = "CaptureFfuTSMI" Me.CaptureFfuTSMI.Size = New System.Drawing.Size(272, 22) - Me.CaptureFfuTSMI.Text = "Capture installation drive to FFU file..." + Me.CaptureFfuTSMI.Text = LocalizationService.ForSection("Designer.Main")("Capture.Install.Drive.Button") ' 'SSETimer ' @@ -4792,7 +4789,7 @@ Partial Class MainForm Me.MinimumSize = New System.Drawing.Size(1280, 720) Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.Main")("DISMTools.Label") Me.MenuStrip1.ResumeLayout(False) Me.MenuStrip1.PerformLayout() Me.HomePanel.ResumeLayout(False) diff --git a/MainForm.vb b/MainForm.vb index 8b8222681..db059cbd0 100644 --- a/MainForm.vb +++ b/MainForm.vb @@ -1,4 +1,4 @@ -Imports System.Net +Imports System.Net Imports System.IO Imports System.Threading Imports Microsoft.VisualBasic.ControlChars @@ -48,7 +48,7 @@ Public Class MainForm Public DismExe As String Public SaveOnSettingsIni As Boolean Public ColorMode As Integer - Public Language As Integer + Public LanguageCode As String = LocalizationService.CurrentCultureCode Public LogFont As String Public LogFile As String Public LogLevel As Integer = 3 @@ -249,28 +249,7 @@ Public Class MainForm ElseIf args.Length = 2 And args(1) = "/?" Then DynaLog.LogMessage("Help has been requested by the user. Showing help message...") ' Show command-line argument help - MsgBox("You can pass command line arguments like this:" & CrLf & CrLf & _ - " DISMTools.exe " & CrLf & CrLf & _ - "The command line arguments that are available to you are the following:" & CrLf & CrLf & _ - " /setup" & CrLf & _ - " Shows the initial setup wizard and reconfigures the program" & CrLf & _ - " /load=" & CrLf & _ - " Loads a project file. You need to provide an absolute path for a project file, like this:" & CrLf & _ - " DISMTools.exe /load=" & Quote & "C:\foo\bar.dtproj" & Quote & CrLf & _ - " /online" & CrLf & _ - " Enters the online installation management mode" & CrLf & _ - " /offline:" & CrLf & _ - " Enters the offline installation management mode. You need to provide a drive, like this:" & CrLf & _ - " DISMTools.exe /offline:E:\" & CrLf & _ - " /migrate" & CrLf & _ - " Forces setting migration. While you can use this parameter, it should be used by the update system" & CrLf & _ - " /nomig" & CrLf & _ - " Skips setting migration. This parameter speeds up testing" & CrLf & _ - " /noupd" & CrLf & _ - " Disables update checks. Don't use this parameter unless you're testing a change" & CrLf & _ - " /exp" & CrLf & _ - " Enables program experiments if there are any" & CrLf & CrLf & _ - "DISMTools will continue starting up after you close this help message.", vbOKOnly + vbInformation, "DISMTools command line arguments") + MsgBox(LocalizationService.ForSection("Main.CommandLineHelp")("Pass.Arguments.Message"), vbOKOnly + vbInformation, LocalizationService.ForSection("Main.CommandLineHelp")("DISM.Tools.Title")) DynaLog.LogMessage("User accepted the dialog. Continuing startup...") Else DynaLog.LogMessage("Parsing command-line arguments...") @@ -282,36 +261,13 @@ Public Class MainForm PrgSetup.ShowDialog() ElseIf arg.StartsWith("/load", StringComparison.OrdinalIgnoreCase) Then DynaLog.LogMessage("Determining if specified project can be loaded...") - If File.Exists(arg.Replace("/load=", "").Trim()) And Directory.Exists(Path.GetDirectoryName(arg.Replace("/load=", "").Trim())) Then + Dim requestedProjectPath As String = arg.Substring(arg.IndexOf("="c) + 1).Trim().Trim(Quote) + If File.Exists(requestedProjectPath) AndAlso Directory.Exists(Path.GetDirectoryName(requestedProjectPath)) Then DynaLog.LogMessage("Specified project satisfies all requirements (projfile exists, dir exists). Passing to load...") - argProjPath = arg.Replace("/load=", "").Trim() + argProjPath = requestedProjectPath Else - DynaLog.LogMessage("Specified project does NOT satisfy all requirements (either projfile or dir doesn't exist). Cannot continue loading project") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("An invalid project has been specified", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Se ha especificado un proyecto no válido", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Un projet non valide a été spécifié", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Foi especificado um projeto inválido", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("È stato specificato un progetto non valido", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("An invalid project has been specified", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Se ha especificado un proyecto no válido", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Un projet non valide a été spécifié", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Foi especificado um projeto inválido", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("È stato specificato un progetto non valido", vbOKOnly + vbCritical, Text) - End Select + DynaLog.LogMessage("Specified project does NOT satisfy all requirements (either projfile or dir doesn't exist). Cannot continue loading project. Path: " & Quote & requestedProjectPath & Quote) + MsgBox(LocalizationService.ForSection("Main.GetArguments").Format("Project.Message", requestedProjectPath), vbOKOnly + vbCritical, Text) End If ElseIf arg.StartsWith("/online", StringComparison.OrdinalIgnoreCase) Then DynaLog.LogMessage("Detecting if no projects had been passed by the /load flag...") @@ -507,10 +463,20 @@ Public Class MainForm Return Adk10KitsRoot End If + Dim kitsRootRegistryPath As String = String.Format("SOFTWARE{0}\Microsoft\Windows Kits\Installed Roots", If(IsWOW6432Environment, "\WOW6432Node", "")) + Try - Dim KitsRootRk As RegistryKey = Registry.LocalMachine.OpenSubKey(String.Format("SOFTWARE{0}\Microsoft\Windows Kits\Installed Roots", If(IsWOW6432Environment, "\WOW6432Node", "")), False) - Adk10KitsRoot = KitsRootRk.GetValue("KitsRoot10", "") - KitsRootRk.Close() + Using KitsRootRk As RegistryKey = Registry.LocalMachine.OpenSubKey(kitsRootRegistryPath, False) + If KitsRootRk Is Nothing Then + DynaLog.LogMessage("ADK kits root registry key was not found: HKLM\" & kitsRootRegistryPath) + Return Adk10KitsRoot + End If + + Dim kitsRootValue As Object = KitsRootRk.GetValue("KitsRoot10") + If kitsRootValue IsNot Nothing Then + Adk10KitsRoot = kitsRootValue.ToString() + End If + End Using Catch ex As Exception DynaLog.LogMessage("Could not check kits root. Error message: " & ex.Message) End Try @@ -617,6 +583,28 @@ Public Class MainForm DynaLog.LogMessage("-------- Powered by CONTEMPOR/\NE\/S Wave 1 PREVIEW 2 --------") End Sub + Private Sub MainForm_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown + ' The Load handler performs asynchronous startup work. Request foreground activation only + ' after WinForms has actually displayed the main window for the first time. + BeginInvoke(New MethodInvoker(AddressOf ActivateMainWindowAfterShown)) + End Sub + + Private Sub ActivateMainWindowAfterShown() + If IsDisposed OrElse Not Visible Then Exit Sub + + DynaLog.LogMessage("The main program window has been shown. Requesting foreground activation...") + BringToFront() + Dim normalZOrderRestored As Boolean = False + Dim raisedAboveOtherWindows As Boolean = WindowHelper.RaiseWindowAndRestoreNormalZOrder(Handle, normalZOrderRestored) + Dim foregroundRequested As Boolean = WindowHelper.RequestForegroundWindow(Handle) + Activate() + DynaLog.LogMessage("One-time window raise succeeded: " & raisedAboveOtherWindows & + "; normal z-order restored: " & normalZOrderRestored & + "; foreground activation request succeeded: " & foregroundRequested & + "; main window is foreground: " & WindowHelper.IsForegroundWindow(Handle) & + "; main window remains topmost: " & WindowHelper.IsTopMostWindow(Handle)) + End Sub + Private Async Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load InitDynaLog() @@ -629,7 +617,7 @@ Public Class MainForm If Environment.OSVersion.Version.Major = 6 And Environment.OSVersion.Version.Minor < 2 Then DynaLog.LogMessage("Windows 7 or an earlier version has been detected on this system. Program incompatible -- aborting any future procedures!") SplashScreen.Hide() - MsgBox("This program is incompatible with Windows 7 and Server 2008 R2." & CrLf & "This program uses the DISM API, which requires files from the Assessment and Deployment Kit (ADK). However, support for Windows 7 is not included." & CrLf & CrLf & "The program will be closed.", vbOKOnly + vbCritical, "DISMTools") + MsgBox(LocalizationService.ForSection("Main.Messages")("Incompatible.Win7.Message"), vbOKOnly + vbCritical, "DISMTools") Environment.Exit(1) End If ' Detect .NET Framework version, as the program somehow runs without it @@ -643,7 +631,7 @@ Public Class MainForm If NDPReleaseInt < 528040 Then DynaLog.LogMessage(NDPReleaseInt & " < 528040 - Incompatible .NET Framework Release -- aborting any future procedures!") SplashScreen.Hide() - MsgBox("This program requires .NET Framework 4.8 to function." & CrLf & "You can download it from: dotnet.microsoft.com. Install the framework and run the program again. You may need to restart your system" & CrLf & CrLf & "The program will be closed.", vbOKOnly + vbCritical, "DISMTools") + MsgBox(LocalizationService.ForSection("Main.Messages")("Requires.NET.Message"), vbOKOnly + vbCritical, "DISMTools") Environment.Exit(1) End If Catch ex As Exception @@ -675,7 +663,7 @@ Public Class MainForm If Not My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator) Then DynaLog.LogMessage("This user is not part of the Administrators group/role -- aborting any future procedures!") SplashScreen.Hide() - MsgBox("This program must be run as an administrator." & CrLf & "There are certain software configurations in which Windows will run this program without admin privileges, so you must ask for them manually." & CrLf & CrLf & "Right-click the executable, and select " & Quote & "Run as administrator" & Quote, vbOKOnly + vbCritical, "DISMTools") + MsgBox(LocalizationService.ForSection("Main.Messages")("Run.Admin.Message"), vbOKOnly + vbCritical, "DISMTools") Environment.Exit(1) End If Visible = False @@ -721,8 +709,8 @@ Public Class MainForm End If If Environment.GetCommandLineArgs().Contains("/english") Then DynaLog.LogMessage("DISMTools is forced to use English as its language because /english has been passed. Changing language...") - Language = 1 - ChangeLangs(Language) + LanguageCode = LocalizationService.DefaultCultureCode + ApplyLanguage(LanguageCode) End If UnblockPSHelpers() If StartupRemount Then RemountOrphanedImages() Else HasRemounted = True @@ -755,6 +743,7 @@ Public Class MainForm ' Center form Location = New Point((Screen.FromControl(Me).WorkingArea.Width - Width) / 2, (Screen.FromControl(Me).WorkingArea.Height - Height) / 2) End If + DynaLog.LogMessage("Showing the main program window...") Visible = True If argProjPath <> "" Then DynaLog.LogMessage("A project path has been specified with /load. Loading project...") @@ -860,41 +849,8 @@ Public Class MainForm DynaLog.LogMessage("A custom theme has been detected. There may be visual issues with DISMTools") Dim msg As String = "" Dim titleMsg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = "Beware of custom themes" - msg = "DISMTools has detected that a custom theme has been set on this system. Some custom themes make the program not look correctly, so it's recommended to switch to the default theme." - Case "ESN" - titleMsg = "Cuidado con temas personalizados" - msg = "DISMTools ha detectado que se ha establecido un tema personalizado en este sistema. Algunos temas de terceros hacen que el programa tenga errores visuales, así que se recomienda que cambie al tema predeterminado." - Case "FRA" - titleMsg = "Attention aux thèmes personnalisés" - msg = "DISMTools a détecté qu'un thème personnalisé a été défini sur ce système. Certains thèmes personnalisés font que le programme ne s'affiche pas correctement, il est donc recommandé de passer au thème par défaut." - Case "PTB", "PTG" - titleMsg = "Cuidado com os temas personalizados" - msg = "O DISMTools detectou que foi definido um tema personalizado neste sistema. Alguns temas personalizados fazem com que o programa não tenha um aspeto correto, pelo que se recomenda a mudança para o tema predefinido." - Case "ITA" - titleMsg = "Attenzione ai temi personalizzati" - msg = "DISMTools ha rilevato che in questo sistema è stato impostato un tema personalizzato. Alcuni temi personalizzati fanno sì che il programma non abbia un aspetto corretto, quindi si consiglia di passare al tema predefinito." - End Select - Case 1 - titleMsg = "Beware of custom themes" - msg = "DISMTools has detected that a custom theme has been set on this system. Some custom themes make the program not look correctly, so it's recommended to switch to the default theme." - Case 2 - titleMsg = "Cuidado con temas personalizados" - msg = "DISMTools ha detectado que se ha establecido un tema personalizado en este sistema. Algunos temas de terceros hacen que el programa tenga errores visuales, así que se recomienda que cambie al tema predeterminado." - Case 3 - titleMsg = "Attention aux thèmes personnalisés" - msg = "DISMTools a détecté qu'un thème personnalisé a été défini sur ce système. Certains thèmes personnalisés font que le programme ne s'affiche pas correctement, il est donc recommandé de passer au thème par défaut." - Case 4 - titleMsg = "Cuidado com os temas personalizados" - msg = "O DISMTools detectou que foi definido um tema personalizado neste sistema. Alguns temas personalizados fazem com que o programa não tenha um aspeto correto, pelo que se recomenda a mudança para o tema predefinido." - Case 5 - titleMsg = "Attenzione ai temi personalizzati" - msg = "DISMTools ha rilevato che in questo sistema è stato impostato un tema personalizzato. Alcuni temi personalizzati fanno sì che il programma non abbia un aspetto corretto, quindi si consiglia di passare al tema predefinito." - End Select + titleMsg = LocalizationService.ForSection("Main.InitDynaLog")("Beware.Custom.Themes.Title") + msg = LocalizationService.ForSection("Main.InitDynaLog")("DISM.Tools.Detected.Message") MsgBox(msg, vbOKOnly + vbExclamation, titleMsg) Else DynaLog.LogMessage("System Theme and PrePolicy Theme are the same.") @@ -923,9 +879,8 @@ Public Class MainForm ' about this. If dx > 120 Or dy > 120 Then DynaLog.LogMessage("Display scaling is over 125%. The program may not look correctly...") - MsgBox("DISMTools has detected that a higher display scaling setting has been set. This can make the program look incorrectly." & CrLf & CrLf & - "We recommend that you lower your scaling setting to 125% (120 DPI) or less, unless you have a small display panel set to a large resolution.", - vbOKOnly + vbInformation, "Higher display scaling setting detected") + MsgBox(LocalizationService.ForSection("Main.Messages")("DISM.Tools.Detected.Message"), + vbOKOnly + vbInformation, LocalizationService.ForSection("Main.Messages")("Higher.Display.Scaling.Title")) End If Catch ex As Exception DynaLog.LogMessage("Could not check DPI settings. Error message: " & ex.Message) @@ -934,8 +889,8 @@ Public Class MainForm If DetectPossibleADKs() = 1 Then DynaLog.LogMessage("An ADK has been installed but is not detected by DISMTools") Dim msg As String = "" - msg = "DISMTools has found a possible Assessment and Deployment Kit installed on your system. However, it is not being detected. Do you want to fix it?" - If MsgBox(msg, vbYesNo + vbQuestion, "Possible ADK installed on your system") = MsgBoxResult.Yes Then + msg = LocalizationService.ForSection("Main.Messages")("DISM.Tools.Found.Message") + If MsgBox(msg, vbYesNo + vbQuestion, LocalizationService.ForSection("Main.Messages")("Possible.ADK.Title")) = MsgBoxResult.Yes Then Try DynaLog.LogMessage("Creating keys...") Dim AdkProc As New Process() @@ -955,50 +910,20 @@ Public Class MainForm DynaLog.LogMessage(SystemInformation.BootMode) If SystemInformation.BootMode <> BootMode.Normal Then DynaLog.LogMessage("This system is in limp home mode. Offering choice to enter online installation management mode...") - Dim safeModeMessage As String = "This computer has booted into Safe Mode. This mode is designed for live operating system recovery." & CrLf & CrLf & - "DISMTools can automatically load the online installation management mode so that you can start attempting repairs." & CrLf & CrLf & - "Do you want to load the online installation management mode?" - If MsgBox(safeModeMessage, vbYesNo + vbQuestion, "Windows is in Safe Mode") = MsgBoxResult.Yes Then + Dim safeModeMessage As String = LocalizationService.ForSection("Main.Messages")("SafeMode.Prompt") + If MsgBox(safeModeMessage, vbYesNo + vbQuestion, LocalizationService.ForSection("Main.Messages")("Windows.Title")) = MsgBoxResult.Yes Then DynaLog.LogMessage("It is official. We are entering online installation management mode to (try to) save this installation...") BeginOnlineManagement(False) End If End If If IsFirstTime Then - Dim tourMessage As String = "Is this your first time using DISMTools? If so, we can help you get started with the Tour." & CrLf & CrLf & - "With the Tour, you can make your first Windows image and test it afterwards. You can follow the tour at any pace you prefer, and you can access it at any time by going to the Help menu." & CrLf & CrLf & - "Do you want to launch the Tour now?" - If MsgBox(tourMessage, vbYesNo + vbQuestion, "Getting Started with DISMTools") = MsgBoxResult.Yes Then + Dim tourMessage As String = LocalizationService.ForSection("Main.Messages")("Tour.Prompt") + If MsgBox(tourMessage, vbYesNo + vbQuestion, LocalizationService.ForSection("Main.Messages")("Getting.Started.DISM.Title")) = MsgBoxResult.Yes Then If Directory.Exists(Path.Combine(Application.StartupPath, "docs", "tour")) Then DynaLog.LogMessage("Tour directory exists. Starting the tour!") - Dim languageCode As String = "en" - - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - languageCode = "en" - Case "ESN" - languageCode = "es" - Case "FRA" - languageCode = "fr" - Case "PTB", "PTG" - languageCode = "pt" - Case "ITA" - languageCode = "it" - End Select - Case 1 - languageCode = "en" - Case 2 - languageCode = "es" - Case 3 - languageCode = "fr" - Case 4 - languageCode = "pt" - Case 5 - languageCode = "it" - End Select + Dim languageCode As String = LocalizationService.GetDocumentationLanguageCode() tourServer.StartServer() If tourServer.IsListenerAlive() Then @@ -1026,8 +951,8 @@ Public Class MainForm ColumnHeader4.Width = WindowHelper.ScaleLogical(375) If InstallationType.Equals("Server Core", StringComparison.InvariantCultureIgnoreCase) Then - MessageBox.Show("DISMTools has detected that it is running on a Windows Server Core system. Some functionality may not work as expected.", - "Windows Server Core detected", MessageBoxButtons.OK, MessageBoxIcon.Warning) + MessageBox.Show(LocalizationService.ForSection("Main.Messages")("DISM.Tools.Running.Message"), + LocalizationService.ForSection("Main.Messages")("ServerCore.Title"), MessageBoxButtons.OK, MessageBoxIcon.Warning) End If ' If the window size is lower than 720p (1280x720), then we'll make it 1280x720, since, @@ -1102,121 +1027,16 @@ Public Class MainForm ManualIPStr As String = "", DHCPStr As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - BuildStr = "build" - SysMemStr = "of system memory" - CurDiskStr = "used out of" - NoDomStr = "Not part of a domain" - DomainStr = "Part of a domain" - BDCStr = "Backup domain controller" - PDCStr = "Primary domain controller" - NoIPStr = "Not connected to a network" - ManualIPStr = "Manual" - DHCPStr = "Automatic (assigned by DHCP)" - Case "ESN" - BuildStr = "compilación" - SysMemStr = "de memoria de sistema" - CurDiskStr = "usados de" - NoDomStr = "No es parte de un dominio" - DomainStr = "Es parte de un dominio" - BDCStr = "Controlador de dominio secundario" - PDCStr = "Controlador de dominio primario" - NoIPStr = "No conectado a una red" - ManualIPStr = "Manual" - DHCPStr = "Automática (asignada por DHCP)" - Case "FRA" - BuildStr = "build" - SysMemStr = "de la mémoire système" - CurDiskStr = "utilisé sur" - NoDomStr = "N'appartient pas à un domaine" - DomainStr = "Appartient à un domaine" - BDCStr = "Contrôleur de domaine de secours" - PDCStr = "Contrôleur de domaine principal" - NoIPStr = "Non connecté à un réseau" - ManualIPStr = "Manuel" - DHCPStr = "Automatique (attribué par DHCP)" - Case "PTB", "PTG" - BuildStr = "compilação" - SysMemStr = "da memória do sistema" - CurDiskStr = "utilizada de" - NoDomStr = "Não faz parte de um domínio" - DomainStr = "Faz parte de um domínio" - BDCStr = "Controlador de domínio de backup" - PDCStr = "Controlador de domínio primário" - NoIPStr = "Não está ligado a uma rede" - ManualIPStr = "Manual" - DHCPStr = "Automático (atribuído por DHCP)" - Case "ITA" - BuildStr = "build" - SysMemStr = "della memoria di sistema" - CurDiskStr = "utilizzata su" - NoDomStr = "Non fa parte di un dominio" - DomainStr = "Fa parte di un dominio" - BDCStr = "Controller di dominio di backup" - PDCStr = "Controller di dominio primario" - NoIPStr = "Non connesso a una rete" - ManualIPStr = "Manuale" - DHCPStr = "Automatico (assegnato da DHCP)" - End Select - Case 1 - BuildStr = "build" - SysMemStr = "of system memory" - CurDiskStr = "used out of" - NoDomStr = "Not part of a domain" - DomainStr = "Part of a domain" - BDCStr = "Backup domain controller" - PDCStr = "Primary domain controller" - NoIPStr = "Not connected to a network" - ManualIPStr = "Manual" - DHCPStr = "Automatic (assigned by DHCP)" - Case 2 - BuildStr = "compilación" - SysMemStr = "de memoria de sistema" - CurDiskStr = "usados de" - NoDomStr = "No es parte de un dominio" - DomainStr = "Es parte de un dominio" - BDCStr = "Controlador de dominio secundario" - PDCStr = "Controlador de dominio primario" - NoIPStr = "No conectado a una red" - ManualIPStr = "Manual" - DHCPStr = "Automática (asignada por DHCP)" - Case 3 - BuildStr = "build" - SysMemStr = "de la mémoire système" - CurDiskStr = "utilisé sur" - NoDomStr = "N'appartient pas à un domaine" - DomainStr = "Appartient à un domaine" - BDCStr = "Contrôleur de domaine de secours" - PDCStr = "Contrôleur de domaine principal" - NoIPStr = "Non connecté à un réseau" - ManualIPStr = "Manuel" - DHCPStr = "Automatique (attribué par DHCP)" - Case 4 - BuildStr = "compilação" - SysMemStr = "da memória do sistema" - CurDiskStr = "utilizada de" - NoDomStr = "Não faz parte de um domínio" - DomainStr = "Faz parte de um domínio" - BDCStr = "Controlador de domínio de backup" - PDCStr = "Controlador de domínio primário" - NoIPStr = "Não está ligado a uma rede" - ManualIPStr = "Manual" - DHCPStr = "Automático (atribuído por DHCP)" - Case 5 - BuildStr = "build" - SysMemStr = "della memoria di sistema" - CurDiskStr = "utilizzata su" - NoDomStr = "Non fa parte di un dominio" - DomainStr = "Fa parte di un dominio" - BDCStr = "Controller di dominio di backup" - PDCStr = "Controller di dominio primario" - NoIPStr = "Non connesso a una rete" - ManualIPStr = "Manuale" - DHCPStr = "Automatico (assegnato da DHCP)" - End Select + BuildStr = LocalizationService.ForSection("Main.ComputerInfo")("Build.Label") + SysMemStr = LocalizationService.ForSection("Main.ComputerInfo")("SystemMemory.Label") + CurDiskStr = LocalizationService.ForSection("Main.ComputerInfo")("UsedOut.Label") + NoDomStr = LocalizationService.ForSection("Main.ComputerInfo")("Part.Domain.Label") + DomainStr = LocalizationService.ForSection("Main.ComputerInfo")("PartDomain.Label") + BDCStr = LocalizationService.ForSection("Main.ComputerInfo")("Backup.Domain.Label") + PDCStr = LocalizationService.ForSection("Main.ComputerInfo")("Primary.Domain.Label") + NoIPStr = LocalizationService.ForSection("Main.ComputerInfo")("ConnectedNetwork.Label") + ManualIPStr = LocalizationService.ForSection("Main.ComputerInfo")("Manual.Label") + DHCPStr = LocalizationService.ForSection("Main.ComputerInfo")("Automatic.Assigned.Label") ' Computer Information ComputerOSLabel.Text = String.Format("{0} ({1} {2})", My.Computer.Info.OSFullName, BuildStr, Environment.OSVersion.Version.Build) @@ -1228,7 +1048,7 @@ Public Class MainForm ComputerModelLabel.Text = ComputerSystemProps("Model") ComputerProcessorLabel.Text = WMIHelper.GetObjectValue(ComputerProcMOC(0), "Name") ComputerMemoryLabel.Text = String.Format("{0} {1}", Converters.BytesToReadableSize(ComputerSystemProps("TotalPhysicalMemory"), - (Language = 0 AndAlso My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName = "FRA") OrElse Language = 3), SysMemStr) + LanguageCode.Equals("fr-FR", StringComparison.OrdinalIgnoreCase)), SysMemStr) Try Dim CurrentVolProps As Dictionary(Of String, Object) = WMIHelper.GetObjectValues(ComputerCurrentVolMOC(0), "Capacity", "FreeSpace", "Label"), DiskCapacity As Long = CurrentVolProps("Capacity"), @@ -1237,9 +1057,9 @@ Public Class MainForm DiskVolumeLetter As String = Environment.GetEnvironmentVariable("SYSTEMDRIVE"), DiskLabel As String = CurrentVolProps("Label") ComputerStorageLabel.Text = String.Format("{0}\{1}: {2} {3} {4} ({5}%)", DiskVolumeLetter, If(DiskLabel <> "", String.Format(" ({0})", DiskLabel), ""), - Converters.BytesToReadableSize(DiskUsedSpace, (Language = 0 AndAlso My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName = "FRA") OrElse Language = 3), + Converters.BytesToReadableSize(DiskUsedSpace, LanguageCode.Equals("fr-FR", StringComparison.OrdinalIgnoreCase)), CurDiskStr, - Converters.BytesToReadableSize(DiskCapacity, (Language = 0 AndAlso My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName = "FRA") OrElse Language = 3), + Converters.BytesToReadableSize(DiskCapacity, LanguageCode.Equals("fr-FR", StringComparison.OrdinalIgnoreCase)), Math.Round((DiskUsedSpace / DiskCapacity) * 100, 2)) Catch ex As Exception DynaLog.LogMessage("Could not display disk information: " & ex.Message) @@ -1375,31 +1195,7 @@ Public Class MainForm Sub CheckForUpdates(branch As String) DynaLog.LogMessage("Checking for program updates...") UpdateLink.LinkArea = New LinkArea(0, 0) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - UpdateLink.Text = "Checking for updates..." - Case "ESN" - UpdateLink.Text = "Comprobando actualizaciones..." - Case "FRA" - UpdateLink.Text = "Vérification des mises à jour en cours..." - Case "PTB", "PTG" - UpdateLink.Text = "Verificar actualizações..." - Case "ITA" - UpdateLink.Text = "Verifica aggiornamenti..." - End Select - Case 1 - UpdateLink.Text = "Checking for updates..." - Case 2 - UpdateLink.Text = "Comprobando actualizaciones..." - Case 3 - UpdateLink.Text = "Vérification des mises à jour en cours..." - Case 4 - UpdateLink.Text = "Verificar actualizações..." - Case 5 - UpdateLink.Text = "Verifica aggiornamenti..." - End Select + UpdateLink.Text = LocalizationService.ForSection("Main.CheckForUpdates")("CheckingUpdates.Link") Dim latestVer As String = "" Using client As New WebClient() DynaLog.LogMessage("Downloading update information from DISMTools repository...") @@ -1429,41 +1225,8 @@ Public Class MainForm UpdatePanel.Visible = False Else DynaLog.LogMessage("The program is outdated. Recommending the user to update in a subtle way...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - UpdateLink.Text = "A new version is available for download and installation. Click here to learn more" - UpdateLink.LinkArea = New LinkArea(58, 24) - Case "ESN" - UpdateLink.Text = "Hay una nueva versión disponible para su descarga e instalación. Haga clic aquí para saber más" - UpdateLink.LinkArea = New LinkArea(65, 29) - Case "FRA" - UpdateLink.Text = "Une nouvelle version est disponible pour le téléchargement et l'installation. Cliquez ici pour en savoir plus" - UpdateLink.LinkArea = New LinkArea(78, 31) - Case "PTB", "PTG" - UpdateLink.Text = "Está disponível uma nova versão para transferência e instalação. Clique aqui para saber mais" - UpdateLink.LinkArea = New LinkArea(65, 27) - Case "ITA" - UpdateLink.Text = "È disponibile una nuova versione da scaricare e installare. Fare clic qui per saperne di più" - UpdateLink.LinkArea = New LinkArea(60, 32) - End Select - Case 1 - UpdateLink.Text = "A new version is available for download and installation. Click here to learn more" - UpdateLink.LinkArea = New LinkArea(58, 24) - Case 2 - UpdateLink.Text = "Hay una nueva versión disponible para su descarga e instalación. Haga clic aquí para saber más" - UpdateLink.LinkArea = New LinkArea(65, 29) - Case 3 - UpdateLink.Text = "Une nouvelle version est disponible pour le téléchargement et l'installation. Cliquez ici pour en savoir plus" - UpdateLink.LinkArea = New LinkArea(78, 31) - Case 4 - UpdateLink.Text = "Está disponível uma nova versão para transferência e instalação. Clique aqui para saber mais" - UpdateLink.LinkArea = New LinkArea(65, 27) - Case 5 - UpdateLink.Text = "È disponibile una nuova versione da scaricare e installare. Fai clic qui per saperne di più" - UpdateLink.LinkArea = New LinkArea(60, 32) - End Select + UpdateLink.Text = LocalizationService.ForSection("Main.CheckForUpdates")("NewVersion.Available.Link") + UpdateLink.LinkArea = LocalizationService.GetLinkArea(UpdateLink.Text, LocalizationService.ForSection("Main.CheckForUpdates")("Learn.Link")) UpdatePanel.Visible = True End If End If @@ -1484,59 +1247,11 @@ Public Class MainForm DynaLog.LogMessage("Determining if an image is mounted in the project. This is also run at startup...") If imgStatus = 0 Then DynaLog.LogMessage("Nothing/Zero/Zilch/Nada. Report so") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = "No" - Case "ESN" - Label50.Text = "No" - Case "FRA" - Label50.Text = "Non" - Case "PTB", "PTG" - Label50.Text = "Não" - Case "ITA" - Label50.Text = "No" - End Select - Case 1 - Label50.Text = "No" - Case 2 - Label50.Text = "No" - Case 3 - Label50.Text = "Non" - Case 4 - Label50.Text = "Não" - Case 5 - Label50.Text = "No" - End Select + Label50.Text = LocalizationService.ForSection("Main.ChangeImgStatus")("No.Button") LinkLabel14.Visible = True Else DynaLog.LogMessage("Yes, we have an image mounted here...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = "Yes" - Case "ESN" - Label50.Text = "Sí" - Case "FRA" - Label50.Text = "Oui" - Case "PTB", "PTG" - Label50.Text = "Sim" - Case "ITA" - Label50.Text = "Sì" - End Select - Case 1 - Label50.Text = "Yes" - Case 2 - Label50.Text = "Sí" - Case 3 - Label50.Text = "Oui" - Case 4 - Label50.Text = "Sim" - Case 5 - Label50.Text = "Sì" - End Select + Label50.Text = LocalizationService.ForSection("Main.ChangeImgStatus")("Yes.Button") LinkLabel14.Visible = False End If End Sub @@ -1565,7 +1280,7 @@ Public Class MainForm ColorMode = PersKey.GetValue("ColorMode") DarkThemeIndex = PersKey.GetValue("ColorTheme_Dark") LightThemeIndex = PersKey.GetValue("ColorTheme_Light") - Language = PersKey.GetValue("Language") + LanguageCode = LocalizationService.ResolveStartupCultureCode(PersKey.GetValue("LanguageCode", LocalizationService.DefaultCultureCode)) LogFont = PersKey.GetValue("LogFont").ToString() LogFontSize = CInt(PersKey.GetValue("LogFontSi")) LogFontIsBold = (CInt(PersKey.GetValue("LogFontBold")) = 1) @@ -1661,7 +1376,7 @@ Public Class MainForm ' Apply program colors immediately ChangePrgColors(ColorMode) ' Apply language settings immediately - ChangeLangs(Language) + ApplyLanguage(LanguageCode) Catch ex As Exception DynaLog.LogMessage("Could not grab settings from registry: " & ex.Message & ". Loading from INI File...") LoadDTSettings(1, True) @@ -1684,10 +1399,13 @@ Public Class MainForm ColorMode = CInt(settingData("Personalization")("ColorMode")) If ColorMode < 0 Then ColorMode = 0 If ColorMode > 2 Then ColorMode = 2 - Language = CInt(settingData("Personalization")("Language")) - If Language < 0 Then Language = 0 - If Language > 5 Then Language = 5 - ChangeLangs(Language) + Dim rawLanguageSetting As String = "" + Try + rawLanguageSetting = settingData("Personalization")("LanguageCode") + Catch + End Try + LanguageCode = LocalizationService.ResolveStartupCultureCode(rawLanguageSetting) + ApplyLanguage(LanguageCode) LightThemeIndex = CInt(settingData("Personalization")("ColorTheme_Light")) DarkThemeIndex = CInt(settingData("Personalization")("ColorTheme_Dark")) ChangePrgColors(ColorMode) @@ -1917,7 +1635,7 @@ Public Class MainForm "ColorMode = " & ColorMode & CrLf & "ColorTheme_Light = " & LightThemeIndex & CrLf & "ColorTheme_Dark = " & DarkThemeIndex & CrLf & - "Language = " & Language & CrLf & + "LanguageCode = " & Quote & LanguageCode & Quote & CrLf & "LogFont = " & Quote & LogFont & Quote & CrLf & "LogFontSi = " & LogFontSize & CrLf & "LogFontBold = " & LogFontIsBold & CrLf & @@ -2090,59 +1808,11 @@ Public Class MainForm End Select DynaLog.LogMessage("Amount of steps: " & pbOpNums) If pbOpNums > 1 Then progressDivs = 100 / pbOpNums Else progressDivs = 0 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Running processes" - Case "ESN" - progressLabel = "Ejecutando procesos" - Case "FRA" - progressLabel = "Processus en cours" - Case "PTB", "PTG" - progressLabel = "Processos em curso" - Case "ITA" - progressLabel = "Processi in corso" - End Select - Case 1 - progressLabel = "Running processes" - Case 2 - progressLabel = "Ejecutando procesos" - Case 3 - progressLabel = "Processus en cours" - Case 4 - progressLabel = "Processos em curso" - Case 5 - progressLabel = "Processi in corso" - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("RunningProcesses.Label") ImgBW.ReportProgress(0) If GatherBasicInfo Then DynaLog.LogMessage("Beginning background process work by getting standard image info...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting basic image information..." - Case "ESN" - progressLabel = "Obteniendo información básica de la imagen..." - Case "FRA" - progressLabel = "Obtention des informations basiques sur l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter informações básicas sobre a imagem..." - Case "ITA" - progressLabel = "Verifica informazioni elementari immagine..." - End Select - Case 1 - progressLabel = "Getting basic image information..." - Case 2 - progressLabel = "Obteniendo información básica de la imagen..." - Case 3 - progressLabel = "Obtention des informations basiques sur l'image en cours..." - Case 4 - progressLabel = "Obter informações básicas sobre a imagem..." - Case 5 - progressLabel = "Verifica informazioni principali dell'immagine..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Getting.Basic.Image.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetBasicImageInfo(OnlineMode, OfflineMode) If isOrphaned Then @@ -2162,31 +1832,7 @@ Public Class MainForm If Not IsCompatible Then Exit Sub If GatherAdvancedInfo Then DynaLog.LogMessage("Getting the remaining bits of information...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting advanced image information..." - Case "ESN" - progressLabel = "Obteniendo información avanzada de la imagen..." - Case "FRA" - progressLabel = "Obtention des informations avancées sur l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter informações avançadas sobre a imagem..." - Case "ITA" - progressLabel = "Verifica informazioni avanzate immagine..." - End Select - Case 1 - progressLabel = "Getting advanced image information..." - Case 2 - progressLabel = "Obteniendo información avanzada de la imagen..." - Case 3 - progressLabel = "Obtention des informations avancées sur l'image en cours..." - Case 4 - progressLabel = "Obter informações avançadas sobre a imagem..." - Case 5 - progressLabel = "Verifica informazioni dettagliate dell'immagine..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("AdvancedImageInfo.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetAdvancedImageInfo(OnlineMode, OfflineMode) End If @@ -2251,31 +1897,7 @@ Public Class MainForm progressMin = 20 Select Case bgProcOptn Case 0 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image packages..." - Case "ESN" - progressLabel = "Obteniendo paquetes de la imagen..." - Case "FRA" - progressLabel = "Obtention des paquets de l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter pacotes de imagem..." - Case "ITA" - progressLabel = "Verifica pacchetti immagine..." - End Select - Case 1 - progressLabel = "Getting image packages..." - Case 2 - progressLabel = "Obteniendo paquetes de la imagen..." - Case 3 - progressLabel = "Obtention des paquets de l'image en cours..." - Case 4 - progressLabel = "Obter pacotes de imagem..." - Case 5 - progressLabel = "Ricerca pacchetti immagine..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Getting.Image.Packages.Label") ImgBW.ReportProgress(20) GetImagePackages(OnlineMode) If ImgBW.CancellationPending Then @@ -2283,31 +1905,7 @@ Public Class MainForm If session IsNot Nothing Then DismApi.CloseSession(session) Exit Sub End If - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image features..." - Case "ESN" - progressLabel = "Obteniendo características de la imagen..." - Case "FRA" - progressLabel = "Obtention des caractéristiques de l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter características de imagem..." - Case "ITA" - progressLabel = "Verifica funzionalità immagini..." - End Select - Case 1 - progressLabel = "Getting image features..." - Case 2 - progressLabel = "Obteniendo características de la imagen..." - Case 3 - progressLabel = "Obtention des caractéristiques de l'image en cours..." - Case 4 - progressLabel = "Obter características de imagem..." - Case 5 - progressLabel = "Verifica funzionalità immagine..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Getting.Image.Features.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetImageFeatures(OnlineMode) If ImgBW.CancellationPending Then @@ -2319,31 +1917,7 @@ Public Class MainForm If Not (CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise) And Not (CurrentImage.ImageInstallationType.Contains("Nano") Or CurrentImage.ImageInstallationType.Contains("Core")) Then DynaLog.LogMessage("Windows 8 or later") pbOpNums += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image provisioned AppX packages (Metro-style applications)..." - Case "ESN" - progressLabel = "Obteniendo paquetes aprovisionados AppX de la imagen (aplicaciones estilo Metro)..." - Case "FRA" - progressLabel = "Obtention des paquets AppX (applications de style Metro) provisionnés de l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter pacotes AppX provisionados por imagem (aplicações de estilo Metro)..." - Case "ITA" - progressLabel = "Verifica pacchetti AppX immagine (applicazioni in stile Metro)..." - End Select - Case 1 - progressLabel = "Getting image provisioned AppX packages (Metro-style applications)..." - Case 2 - progressLabel = "Obteniendo paquetes aprovisionados AppX de la imagen (aplicaciones estilo Metro)..." - Case 3 - progressLabel = "Obtention des paquets AppX (applications de style Metro) provisionnés de l'image en cours..." - Case 4 - progressLabel = "Obter pacotes AppX provisionados por imagem (aplicações de estilo Metro)..." - Case 5 - progressLabel = "Ricerca pacchetti AppX immagine (applicazioni in stile Metro)..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Get.Image.Provisioned.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetImageAppxPackages(OnlineMode) If ImgBW.CancellationPending Then @@ -2361,31 +1935,7 @@ Public Class MainForm If Not (CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise) And Not CurrentImage.ImageInstallationType.Contains("Nano") Then DynaLog.LogMessage("Windows 10 or later") pbOpNums += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image Features on Demand (capabilities)..." - Case "ESN" - progressLabel = "Obteniendo características opcionales de la imagen (funcionalidades)..." - Case "FRA" - progressLabel = "Obtention de caractéristiques de l'image à la demande (capacités) en cours..." - Case "PTB", "PTG" - progressLabel = "Obter capacidades de imagem..." - Case "ITA" - progressLabel = "Verifica funzionalità su richiesta dell'immagine (capacità)..." - End Select - Case 1 - progressLabel = "Getting image Features on Demand (capabilities)..." - Case 2 - progressLabel = "Obteniendo características opcionales de la imagen (funcionalidades)..." - Case 3 - progressLabel = "Obtention de caractéristiques de l'image à la demande (capacités) en cours..." - Case 4 - progressLabel = "Obter capacidades de imagem..." - Case 5 - progressLabel = "Verifica funzionalità su richiesta dell'immagine (capacità)..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Get.Image.Features.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetImageCapabilities(OnlineMode) If ImgBW.CancellationPending Then @@ -2399,31 +1949,7 @@ Public Class MainForm Else DynaLog.LogMessage("Not Windows 10 or later") End If - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image drivers..." - Case "ESN" - progressLabel = "Obteniendo controladores de la imagen..." - Case "FRA" - progressLabel = "Obtention des pilotes de l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter controladores de imagem..." - Case "ITA" - progressLabel = "Verifica driver dispositivo immagine..." - End Select - Case 1 - progressLabel = "Getting image drivers..." - Case 2 - progressLabel = "Obteniendo controladores de la imagen..." - Case 3 - progressLabel = "Obtention des pilotes de l'image en cours..." - Case 4 - progressLabel = "Obter controladores de imagem..." - Case 5 - progressLabel = "Ricerca driver immagine..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Getting.Image.Drivers.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetImageDrivers(OnlineMode) If ImgBW.CancellationPending Then @@ -2433,60 +1959,12 @@ Public Class MainForm End If Case 1 DynaLog.LogMessage("Updating recorded OS package information...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image packages..." - Case "ESN" - progressLabel = "Obteniendo paquetes de la imagen..." - Case "FRA" - progressLabel = "Obtention des paquets de l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter pacotes de imagem..." - Case "ITA" - progressLabel = "Verifica pacchetti immagine..." - End Select - Case 1 - progressLabel = "Getting image packages..." - Case 2 - progressLabel = "Obteniendo paquetes de la imagen..." - Case 3 - progressLabel = "Obtention des paquets de l'image en cours..." - Case 4 - progressLabel = "Obter pacotes de imagem..." - Case 5 - progressLabel = "Ricerca pacchetti immagine..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Getting.Image.Packages.Label") ImgBW.ReportProgress(20) GetImagePackages(OnlineMode) Case 2 DynaLog.LogMessage("Updating recorded feature information...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image features..." - Case "ESN" - progressLabel = "Obteniendo características de la imagen..." - Case "FRA" - progressLabel = "Obtention des caractéristiques de l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter características de imagem..." - Case "ITA" - progressLabel = "Verifica funzionalità immagini..." - End Select - Case 1 - progressLabel = "Getting image features..." - Case 2 - progressLabel = "Obteniendo características de la imagen..." - Case 3 - progressLabel = "Obtention des caractéristiques de l'image en cours..." - Case 4 - progressLabel = "Obter características de imagem..." - Case 5 - progressLabel = "Verifica funzionalità immagine..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Getting.Image.Features.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetImageFeatures(OnlineMode) Case 3 @@ -2494,31 +1972,7 @@ Public Class MainForm If IsWindows8OrHigher(MountDir & "\Windows\system32\ntoskrnl.exe") = True Then DynaLog.LogMessage("Windows 8 or later") pbOpNums += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image provisioned AppX packages (Metro-style applications)..." - Case "ESN" - progressLabel = "Obteniendo paquetes aprovisionados AppX de la imagen (aplicaciones estilo Metro)..." - Case "FRA" - progressLabel = "Obtention des paquets AppX (applications de style Metro) provisionnés de l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter pacotes AppX provisionados por imagem (aplicações de estilo Metro)..." - Case "ITA" - progressLabel = "Verifica pacchetti AppX immagine (applicazioni in stile Metro)..." - End Select - Case 1 - progressLabel = "Getting image provisioned AppX packages (Metro-style applications)..." - Case 2 - progressLabel = "Obteniendo paquetes aprovisionados AppX de la imagen (aplicaciones estilo Metro)..." - Case 3 - progressLabel = "Obtention des paquets AppX (applications de style Metro) provisionnés de l'image en cours..." - Case 4 - progressLabel = "Obter pacotes AppX provisionados por imagem (aplicações de estilo Metro)..." - Case 5 - progressLabel = "Ricerca pacchetti AppX immagine (applicazioni in stile Metro)..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Get.Image.Provisioned.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetImageAppxPackages(OnlineMode) Else @@ -2530,31 +1984,7 @@ Public Class MainForm If IsWindows10OrHigher(MountDir & "\Windows\system32\ntoskrnl.exe") = True Then DynaLog.LogMessage("Windows 10 or later") pbOpNums += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image Features on Demand (capabilities)..." - Case "ESN" - progressLabel = "Obteniendo características opcionales de la imagen (funcionalidades)..." - Case "FRA" - progressLabel = "Obtention de caractéristiques de l'image à la demande (capacités) en cours..." - Case "PTB", "PTG" - progressLabel = "Obter capacidades de imagem..." - Case "ITA" - progressLabel = "Verifica funzionalità su richiesta immagine (capacità)..." - End Select - Case 1 - progressLabel = "Getting image Features on Demand (capabilities)..." - Case 2 - progressLabel = "Obteniendo características opcionales de la imagen (funcionalidades)..." - Case 3 - progressLabel = "Obtention de caractéristiques de l'image à la demande (capacités) en cours..." - Case 4 - progressLabel = "Obter capacidades de imagem..." - Case 5 - progressLabel = "Verifica funzionalità su richiesta immagine (capacità)..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Get.Image.Features.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetImageCapabilities(OnlineMode) Else @@ -2563,61 +1993,13 @@ Public Class MainForm End If Case 5 DynaLog.LogMessage("Updating recorded driver information...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Getting image drivers..." - Case "ESN" - progressLabel = "Obteniendo controladores de la imagen..." - Case "FRA" - progressLabel = "Obtention des pilotes de l'image en cours..." - Case "PTB", "PTG" - progressLabel = "Obter controladores de imagem..." - Case "ITA" - progressLabel = "Ricerca driver immagine..." - End Select - Case 1 - progressLabel = "Getting image drivers..." - Case 2 - progressLabel = "Obteniendo controladores de la imagen..." - Case 3 - progressLabel = "Obtention des pilotes de l'image en cours..." - Case 4 - progressLabel = "Obter controladores de imagem..." - Case 5 - progressLabel = "Ricerca driver immagine..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Getting.Image.Drivers.Label") ImgBW.ReportProgress(progressMin + progressDivs) GetImageDrivers(OnlineMode) End Select If bgProcOptn <> 0 And PendingTasks.Contains(True) Then DynaLog.LogMessage("Some tasks need to be finished before we're happy. Finishing them...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Running pending tasks. This may take some time..." - Case "ESN" - progressLabel = "Ejecutando tareas pendientes. Esto puede llevar algo de tiempo..." - Case "FRA" - progressLabel = "Exécution des tâches en cours. Cela peut prendre un certain temps ..." - Case "PTB", "PTG" - progressLabel = "Execução de tarefas pendentes. Isto pode demorar algum tempo..." - Case "ITA" - progressLabel = "Esecuzione di attività in sospeso. Questa operazione potrebbe richiedere del tempo..." - End Select - Case 1 - progressLabel = "Running pending tasks. This may take some time..." - Case 2 - progressLabel = "Ejecutando tareas pendientes. Esto puede llevar algo de tiempo..." - Case 3 - progressLabel = "Exécution des tâches en cours. Cela peut prendre un certain temps ..." - Case 4 - progressLabel = "Execução de tarefas pendentes. Isto pode demorar algum tempo..." - Case 5 - progressLabel = "Esecuzione di attività in sospeso. Questa operazione potrebbe richiedere del tempo..." - End Select + progressLabel = LocalizationService.ForSection("Main.Run.BgProcesses")("Running.Pending.Tasks.Label") ImgBW.ReportProgress(99) DynaLog.LogMessage("Determining whether or not OS package information processes remain. Do them if they do remain...") If PendingTasks(0) Then GetImagePackages(OnlineMode) @@ -2678,51 +2060,9 @@ Public Class MainForm Label48.Text = Environment.OSVersion.Version.Major & "." & Environment.OSVersion.Version.Minor & "." & Environment.OSVersion.Version.Build & "." & revisionNumber CurrentImage.ImageVersion = Environment.OSVersion.Version - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label41.Text = "(Online installation)" - Label47.Text = "(Online installation)" - Label49.Text = "(Online installation)" - Case "ESN" - Label41.Text = "(Instalación activa)" - Label47.Text = "(Instalación activa)" - Label49.Text = "(Instalación activa)" - Case "FRA" - Label41.Text = "(Installation en ligne)" - Label47.Text = "(Installation en ligne)" - Label49.Text = "(Installation en ligne)" - Case "PTB", "PTG" - Label41.Text = "(Instalação em linha)" - Label47.Text = "(Instalação em linha)" - Label49.Text = "(Instalação em linha)" - Case "ITA" - Label41.Text = "(Installazione attiva)" - Label47.Text = "(Installazione attiva)" - Label49.Text = "(Installazione attiva)" - End Select - Case 1 - Label41.Text = "(Online installation)" - Label47.Text = "(Online installation)" - Label49.Text = "(Online installation)" - Case 2 - Label41.Text = "(Instalación activa)" - Label47.Text = "(Instalación activa)" - Label49.Text = "(Instalación activa)" - Case 3 - Label41.Text = "(Installation en ligne)" - Label47.Text = "(Installation en ligne)" - Label49.Text = "(Installation en ligne)" - Case 4 - Label41.Text = "(Instalação em linha)" - Label47.Text = "(Instalação em linha)" - Label49.Text = "(Instalação em linha)" - Case 5 - Label41.Text = "(Installazione attiva)" - Label47.Text = "(Installazione attiva)" - Label49.Text = "(Installazione attiva)" - End Select + Label41.Text = LocalizationService.ForSection("Main.Get.Basic")("Online.Install.Label") + Label47.Text = LocalizationService.ForSection("Main.Get.Basic")("Online.Install.Label") + Label49.Text = LocalizationService.ForSection("Main.Get.Basic")("Online.Install.Label") Label46.Text = My.Computer.Info.OSFullName Label44.Text = Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)) Label52.Text = Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)) @@ -2742,61 +2082,10 @@ Public Class MainForm DynaLog.LogMessage("Getting information about the offline installation...") Label48.Text = FileVersionInfo.GetVersionInfo(MountDir & "\Windows\system32\ntoskrnl.exe").ProductVersion CurrentImage.ImageVersion = New Version(FileVersionInfo.GetVersionInfo(MountDir & "\Windows\system32\ntoskrnl.exe").ProductVersion) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label41.Text = "(Offline installation)" - Label46.Text = "(Offline installation)" - Label47.Text = "(Offline installation)" - Label49.Text = "(Offline installation)" - Case "ESN" - Label41.Text = "(Instalación fuera de línea)" - Label46.Text = "(Instalación fuera de línea)" - Label47.Text = "(Instalación fuera de línea)" - Label49.Text = "(Instalación fuera de línea)" - Case "FRA" - Label41.Text = "(Installation hors ligne)" - Label46.Text = "(Installation hors ligne)" - Label47.Text = "(Installation hors ligne)" - Label49.Text = "(Installation hors ligne)" - Case "PTB", "PTG" - Label41.Text = "(Instalação offline)" - Label46.Text = "(Instalação offline)" - Label47.Text = "(Instalação offline)" - Label49.Text = "(Instalação offline)" - Case "ITA" - Label41.Text = "(Installazione offline)" - Label46.Text = "(Installazione offline)" - Label47.Text = "(Installazione offline)" - Label49.Text = "(Installazione offline)" - End Select - Case 1 - Label41.Text = "(Offline installation)" - Label46.Text = "(Offline installation)" - Label47.Text = "(Offline installation)" - Label49.Text = "(Offline installation)" - Case 2 - Label41.Text = "(Instalación fuera de línea)" - Label46.Text = "(Instalación fuera de línea)" - Label47.Text = "(Instalación fuera de línea)" - Label49.Text = "(Instalación fuera de línea)" - Case 3 - Label41.Text = "(Installation hors ligne)" - Label46.Text = "(Installation hors ligne)" - Label47.Text = "(Installation hors ligne)" - Label49.Text = "(Installation hors ligne)" - Case 4 - Label41.Text = "(Instalação offline)" - Label46.Text = "(Instalação offline)" - Label47.Text = "(Instalação offline)" - Label49.Text = "(Instalação offline)" - Case 5 - Label41.Text = "(Installazione offline)" - Label46.Text = "(Installazione offline)" - Label47.Text = "(Installazione offline)" - Label49.Text = "(Installazione offline)" - End Select + Label41.Text = LocalizationService.ForSection("Main.Get.Basic")("Offline.Install.Item") + Label46.Text = LocalizationService.ForSection("Main.Get.Basic")("Offline.Install.Label") + Label47.Text = LocalizationService.ForSection("Main.Get.Basic")("Offline.Install.Item") + Label49.Text = LocalizationService.ForSection("Main.Get.Basic")("Offline.Install.Item") Label41.Text = MountDir Label44.Text = MountDir Label52.Text = MountDir @@ -4141,7 +3430,7 @@ Public Class MainForm End Try settingsData("Personalization").AddKey("ColorTheme_Light", 1) settingsData("Personalization").AddKey("ColorTheme_Dark", 0) - settingsData("Personalization").AddKey("Language", 0) + settingsData("Personalization").AddKey("LanguageCode", Quote & LocalizationService.CurrentCultureCode & Quote) settingsData("Personalization").AddKey("LogFont", Quote & "Consolas" & Quote) settingsData("Personalization").AddKey("LogFontSi", 11) settingsData("Personalization").AddKey("LogFontBold", 0) @@ -4236,7 +3525,7 @@ Public Class MainForm End Try PersKey.SetValue("ColorTheme_Light", 1, RegistryValueKind.DWord) PersKey.SetValue("ColorTheme_Dark", 0, RegistryValueKind.DWord) - PersKey.SetValue("Language", 0, RegistryValueKind.DWord) + PersKey.SetValue("LanguageCode", LocalizationService.DefaultCultureCode, RegistryValueKind.String) PersKey.SetValue("LogFont", "Consolas", RegistryValueKind.String) PersKey.SetValue("LogFontSi", 11, RegistryValueKind.DWord) PersKey.SetValue("LogFontBold", 0, RegistryValueKind.DWord) @@ -4345,7 +3634,8 @@ Public Class MainForm settingsData("Personalization").AddKey("ColorMode", ColorMode) settingsData("Personalization").AddKey("ColorTheme_Light", LightThemeIndex) settingsData("Personalization").AddKey("ColorTheme_Dark", DarkThemeIndex) - settingsData("Personalization").AddKey("Language", Language) + LanguageCode = LocalizationService.NormalizeCultureCode(LanguageCode) + settingsData("Personalization").AddKey("LanguageCode", Quote & LanguageCode & Quote) settingsData("Personalization").AddKey("LogFont", Quote & LogFont & Quote) settingsData("Personalization").AddKey("LogFontSi", LogFontSize) settingsData("Personalization").AddKey("LogFontBold", If(LogFontIsBold, 1, 0)) @@ -4445,7 +3735,8 @@ Public Class MainForm PersKey.SetValue("ColorMode", ColorMode, RegistryValueKind.DWord) PersKey.SetValue("ColorTheme_Light", LightThemeIndex, RegistryValueKind.DWord) PersKey.SetValue("ColorTheme_Dark", DarkThemeIndex, RegistryValueKind.DWord) - PersKey.SetValue("Language", Language, RegistryValueKind.DWord) + LanguageCode = LocalizationService.NormalizeCultureCode(LanguageCode) + PersKey.SetValue("LanguageCode", LanguageCode, RegistryValueKind.String) PersKey.SetValue("LogFont", LogFont, RegistryValueKind.String) PersKey.SetValue("LogFontSi", LogFontSize, RegistryValueKind.DWord) PersKey.SetValue("LogFontBold", If(LogFontIsBold, 1, 0), RegistryValueKind.DWord) @@ -4750,3401 +4041,353 @@ Public Class MainForm Next End Sub - Sub ChangeLangs(LangCode As Integer) - DynaLog.LogMessage("Changing program language... (language code: " & LangCode & ")") - Select Case LangCode - Case 0 - DynaLog.LogMessage("Language code is 0. Getting language from host system (may give inaccurate results on systems with multiple MUI packs)...") - DynaLog.LogMessage("Host System language in 3 letters: " & My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName) - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&File".ToUpper(), "&File") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Project".ToUpper(), "&Project") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Com&mands".ToUpper(), "Com&mands") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Tools".ToUpper(), "&Tools") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Help".ToUpper(), "&Help") - InvalidSettingsTSMI.Text = "Invalid settings have been detected" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&New project..." - OpenExistingProjectToolStripMenuItem.Text = "&Open existing project" - ManageOnlineInstallationToolStripMenuItem.Text = "&Manage online installation" - ManageOfflineInstallationToolStripMenuItem.Text = "Manage o&ffline installation..." - RecentProjectsListMenu.Text = "Recent projects" - SaveProjectToolStripMenuItem.Text = "&Save project..." - SaveProjectasToolStripMenuItem.Text = "Save project &as..." - ExitToolStripMenuItem.Text = "E&xit" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "View project files in File Explorer" - UnloadProjectToolStripMenuItem.Text = "Unload project..." - SwitchImageIndexesToolStripMenuItem.Text = "Switch image indexes..." - ProjectPropertiesToolStripMenuItem.Text = "Project properties" - ImagePropertiesToolStripMenuItem.Text = "Image properties" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Image management" - OSPackagesToolStripMenuItem.Text = "OS packages" - ProvisioningPackagesToolStripMenuItem.Text = "Provisioning packages" - AppPackagesToolStripMenuItem.Text = "AppX packages" - AppPatchesToolStripMenuItem.Text = "App (MSP) servicing" - DefaultAppAssociationsToolStripMenuItem.Text = "Default app associations" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Languages and regional settings" - CapabilitiesToolStripMenuItem.Text = "Capabilities" - WindowsEditionsToolStripMenuItem.Text = "Windows editions" - DriversToolStripMenuItem.Text = "Drivers" - UnattendedAnswerFilesToolStripMenuItem.Text = "Unattended answer files" - WindowsPEServicingToolStripMenuItem.Text = "Windows PE servicing" - OSUninstallToolStripMenuItem.Text = "OS uninstall" - ReservedStorageToolStripMenuItem.Text = "Reserved storage" - ' Menu - Commands - Image management - AppendImage.Text = "Append capture directory to image..." - ApplyFFU.Text = "Apply FFU or SFU file..." - ApplyImage.Text = "Apply WIM or SWM file..." - CaptureCustomImage.Text = "Capture incremental changes to file..." - CaptureFFU.Text = "Capture partitions to FFU file..." - CaptureImage.Text = "Capture image of a drive to WIM file..." - CleanupMountpoints.Text = "Delete resources from corrupted image..." - CommitImage.Text = "Apply changes to image..." - DeleteImage.Text = "Delete volume images from WIM file..." - ExportImage.Text = "Export image..." - GetImageInfo.Text = "Get image information..." - GetWIMBootEntry.Text = "Get WIMBoot configuration entries..." - ListImage.Text = "List files and directories in image..." - MountImage.Text = "Mount image..." - OptimizeFFU.Text = "Optimize FFU file..." - OptimizeImage.Text = "Optimize image..." - RemountImage.Text = "Remount image for servicing..." - SplitFFU.Text = "Split FFU file into SFU files..." - SplitImage.Text = "Split WIM file into SWM files..." - UnmountImage.Text = "Unmount image..." - UpdateWIMBootEntry.Text = "Update WIMBoot configuration entry..." - ApplySiloedPackage.Text = "Apply siloed provisioning package..." - ' Menu - Commands - OS packages - GetPackages.Text = "Get package information..." - AddPackage.Text = "Add package..." - RemovePackage.Text = "Remove package..." - GetFeatures.Text = "Get feature information..." - EnableFeature.Text = "Enable feature..." - DisableFeature.Text = "Disable feature..." - CleanupImage.Text = "Perform cleanup or recovery operations..." - SaveImageInformationToolStripMenuItem.Text = "Save image information..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Add provisioning package..." - GetProvisioningPackageInfo.Text = "Get provisioning package information..." - ApplyCustomDataImage.Text = "Apply custom data image..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Get AppX package information..." - AddProvisionedAppxPackage.Text = "Add provisioned AppX package..." - RemoveProvisionedAppxPackage.Text = "Remove provisioning for AppX package..." - OptimizeProvisionedAppxPackages.Text = "Optimize provisioned packages..." - SetProvisionedAppxDataFile.Text = "Add custom data file into AppX package..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Get application patch information..." - GetAppPatchInfo.Text = "Get detailed application patch information..." - GetAppPatches.Text = "Get basic installed application patch information..." - GetAppInfo.Text = "Get detailed Windows Installer (*.msi) application information..." - GetApps.Text = "Get basic Windows Installer (*.msi) application information..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Export default application associations..." - GetDefaultAppAssociations.Text = "Get default application association information..." - ImportDefaultAppAssociations.Text = "Import default application associations..." - RemoveDefaultAppAssociations.Text = "Remove default application associations..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Get international settings and languages..." - SetUILang.Text = "Set UI language..." - SetUILangFallback.Text = "Set default UI fallback language..." - SetSysUILang.Text = "Set system preferred UI language..." - SetSysLocale.Text = "Set system locale..." - SetUserLocale.Text = "Set user locale..." - SetInputLocale.Text = "Set input locale..." - SetAllIntl.Text = "Set UI language and locales..." - SetTimeZone.Text = "Set default time zone..." - SetSKUIntlDefaults.Text = "Set default languages and locales..." - SetLayeredDriver.Text = "Set layered driver..." - GenLangINI.Text = "Generate Lang.ini file..." - SetSetupUILang.Text = "Set default Setup language..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Add capability..." - ExportSource.Text = "Export capabilities into repository..." - GetCapabilities.Text = "Get capability information..." - RemoveCapability.Text = "Remove capability..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Get current edition..." - GetTargetEditions.Text = "Get upgrade targets..." - SetEdition.Text = "Upgrade image..." - SetProductKey.Text = "Set product key..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Get driver information..." - AddDriver.Text = "Add driver..." - RemoveDriver.Text = "Remove driver..." - ExportDriver.Text = "Export driver packages..." - ImportDriver.Text = "Import driver packages..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Apply unattended answer file..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Get settings..." - SetScratchSpace.Text = "Set scratch space..." - SetTargetPath.Text = "Set target path..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Get uninstall window..." - InitiateOSUninstall.Text = "Initiate uninstall..." - RemoveOSUninstall.Text = "Remove roll back ability..." - SetOSUninstallWindow.Text = "Set uninstall window..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Set reserved storage state..." - GetReservedStorageState.Text = "Get reserved storage state..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Add Edge..." - AddEdgeBrowser.Text = "Add Edge browser..." - AddEdgeWebView.Text = "Add Edge WebView..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Image conversion" - MergeSWM.Text = "Merge SWM files..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remount image with write permissions" - CommandShellToolStripMenuItem.Text = "Command Console" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Unattended answer file manager" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Unattended answer file creator" - RegCplToolStripMenuItem.Text = "Manage image registry hives..." - WebResourcesToolStripMenuItem.Text = "Web Resources" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Download Languages and Optional Features ISOs..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Download Languages and FOD discs for Windows 10..." - ReportManagerToolStripMenuItem.Text = "Report manager" - MountedImageManagerTSMI.Text = "Mounted image manager" - CreateDiscImageToolStripMenuItem.Text = "Create disc image..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Create a testing environment..." - WimScriptEditorCommand.Text = "Configuration list editor" - OptionsToolStripMenuItem.Text = "Options" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Help Topics" - AboutDISMToolsToolStripMenuItem.Text = "About DISMTools" - ' Menu - Invalid settings - ISFix.Text = "More information" - ISHelp.Text = "What's this?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Report feedback (opens in web browser)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribute to the help system" - ' Menu - Tour Server - TourActionsTSMI.Text = "Tour Actions" - ServerStatusTSMI.Text = String.Format("Tour Server is active on port {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Restart Tour" - StopDTTourServerTSMI.Text = "Stop Tour Server" - ' Start Panel - LabelHeader1.Text = "Begin" - Label10.Text = "Recent projects" - NewProjLink.Text = "New project..." - ExistingProjLink.Text = "Open existing project..." - OnlineInstMgmt.Text = "Manage online installation" - OfflineInstMgmt.Text = "Manage offline installation..." - RecentRemoveLink.Text = "Remove entry" - ' ToolStrip buttons - ToolStripButton1.Text = "Close tab" - ToolStripButton2.Text = "Save project" - ToolStripButton3.Text = "Unload project" - ToolStripButton3.ToolTipText = "Unload project from this program" - ToolStripButton4.Text = "Show progress window" - RefreshViewTSB.Text = "Refresh view" - ExpandCollapseTSB.Text = "Expand" - UpdateLink.Text = "A new version is available for download and installation. Click here to learn more" - UpdateLink.LinkArea = New LinkArea(58, 24) - ' Pop-up context menus - PkgBasicInfo.Text = "Get basic information (all packages)" - PkgDetailedInfo.Text = "Get detailed information (specific package)" - CommitAndUnmountTSMI.Text = "Commit changes and unmount image" - DiscardAndUnmountTSMI.Text = "Discard changes and unmount image" - UnmountSettingsToolStripMenuItem.Text = "Unmount settings..." - ViewPackageDirectoryToolStripMenuItem.Text = "View package directory" - GetImageFileInformationToolStripMenuItem.Text = "Get image file information..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Save complete image information..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Create disc image with this file..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Specify the project file to load" - LocalMountDirFBD.Description = "Please specify the mount directory you want to load into this project:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "Image processes have completed" - End If - MenuDesc.Text = "Ready" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Access directory" - UnloadProjectToolStripMenuItem1.Text = "Unload project" - CopyDeploymentToolsToolStripMenuItem.Text = "Copy deployment tools" - OfAllArchitecturesToolStripMenuItem.Text = "Of all architectures" - OfSelectedArchitectureToolStripMenuItem.Text = "Of selected architecture" - ForX86ArchitectureToolStripMenuItem.Text = "For x86 architecture" - ForAmd64ArchitectureToolStripMenuItem.Text = "For AMD64 architecture" - ForARMArchitectureToolStripMenuItem.Text = "For ARM architecture" - ForARM64ArchitectureToolStripMenuItem.Text = "For ARM64 architecture" - ImageOperationsToolStripMenuItem.Text = "Image operations" - MountImageToolStripMenuItem.Text = "Mount image..." - UnmountImageToolStripMenuItem.Text = "Unmount image..." - RemoveVolumeImagesToolStripMenuItem.Text = "Remove volume images..." - SwitchImageIndexesToolStripMenuItem1.Text = "Switch image indexes..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "Unattended answer files" - ManageToolStripMenuItem.Text = "Manage" - CreationWizardToolStripMenuItem.Text = "Create" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configure scratch directory" - ManageReportsToolStripMenuItem.Text = "Manage reports" - AddToolStripMenuItem.Text = "Add" - NewFileToolStripMenuItem.Text = "New file..." - ExistingFileToolStripMenuItem.Text = "Existing file..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Save resource..." - CopyToolStripMenuItem.Text = "Copy resource" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visit the Microsoft Apps website" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visit the Microsoft Store Generation Project website" - AppxDownloadHelpToolStripMenuItem.Text = "How do I get applications?" - ' New design - GreetingLabel.Text = "Welcome to this servicing session" - LinkLabel12.Text = "PROJECT" - LinkLabel13.Text = "IMAGE" - Label54.Text = "Name:" - Label51.Text = "Location:" - Label53.Text = "Images mounted?" - LinkLabel14.Text = "Click here to mount an image" - Label55.Text = "Project Tasks" - LinkLabel15.Text = "View project properties" - LinkLabel16.Text = "Open in File Explorer" - LinkLabel17.Text = "Unload project" - Label59.Text = "No image has been mounted" - Label58.Text = "You need to mount an image in order to view its information" - Label57.Text = "Choices" - LinkLabel21.Text = "Mount an image..." - LinkLabel18.Text = "Pick a mounted image..." - Label39.Text = "Image index:" - Label43.Text = "Mount point:" - Label45.Text = "Version:" - Label42.Text = "Name:" - Label40.Text = "Description:" - Label56.Text = "Image Tasks" - LinkLabel20.Text = "View image properties" - LinkLabel19.Text = "Unmount image" - GroupBox4.Text = "Image operations" - Button26.Text = "Mount image..." - Button27.Text = "Commit current changes" - Button28.Text = "Commit and unmount image" - Button29.Text = "Unmount image discarding changes" - Button25.Text = "Reload servicing session" - Button24.Text = "Switch image indexes..." - Button30.Text = "Apply image..." - Button31.Text = "Capture image..." - Button32.Text = "Remove volume images..." - Button33.Text = "Save complete image information..." - GroupBox5.Text = "Package operations" - Button36.Text = "Add package..." - Button34.Text = "Get package information..." - Button38.Text = "Save installed package information..." - Button35.Text = "Remove package..." - Button37.Text = "Perform component store maintenance and cleanup..." - GroupBox6.Text = "Feature operations" - Button41.Text = "Enable feature..." - Button39.Text = "Get feature information..." - Button42.Text = "Save feature information..." - Button40.Text = "Disable feature..." - GroupBox7.Text = "AppX package operations" - Button44.Text = "Add AppX package..." - Button45.Text = "Get app information..." - Button46.Text = "Save installed AppX package information..." - Button43.Text = "Remove AppX package..." - GroupBox8.Text = "Capability operations" - Button48.Text = "Add capability..." - Button49.Text = "Get capability information..." - Button50.Text = "Save capability information..." - Button47.Text = "Remove capability..." - GroupBox9.Text = "Driver operations" - Button53.Text = "Add driver package..." - Button52.Text = "Get driver information..." - Button54.Text = "Save installed driver information..." - Button51.Text = "Remove driver..." - GroupBox10.Text = "Windows PE operations" - Button55.Text = "Get configuration" - Button56.Text = "Save configuration..." - Button57.Text = "Set target path..." - Button58.Text = "Set scratch space..." - Case "ESN" - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Archivo".ToUpper(), "&Archivo") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Proyecto".ToUpper(), "&Proyecto") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Co&mandos".ToUpper(), "Co&mandos") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Her&ramientas".ToUpper(), "Her&ramientas") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Ay&uda".ToUpper(), "Ay&uda") - InvalidSettingsTSMI.Text = "Se han detectado configuraciones inválidas" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&Nuevo proyecto..." - OpenExistingProjectToolStripMenuItem.Text = "&Abrir proyecto existente" - ManageOnlineInstallationToolStripMenuItem.Text = "Administrar &instalación activa" - ManageOfflineInstallationToolStripMenuItem.Text = "Administrar instalación &fuera de línea..." - RecentProjectsListMenu.Text = "Proyectos recientes" - SaveProjectToolStripMenuItem.Text = "&Guardar proyecto..." - SaveProjectasToolStripMenuItem.Text = "Guardar proyecto &como..." - ExitToolStripMenuItem.Text = "Sa&lir" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "Ver archivos del proyecto en el Explorador de archivos" - UnloadProjectToolStripMenuItem.Text = "Descargar proyecto..." - SwitchImageIndexesToolStripMenuItem.Text = "Cambiar índices de imagen..." - ProjectPropertiesToolStripMenuItem.Text = "Propiedades del proyecto" - ImagePropertiesToolStripMenuItem.Text = "Propiedades de la imagen" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Administración de la imagen" - OSPackagesToolStripMenuItem.Text = "Paquetes del sistema operativo" - ProvisioningPackagesToolStripMenuItem.Text = "Paquetes de aprovisionamiento" - AppPackagesToolStripMenuItem.Text = "Paquetes AppX" - AppPatchesToolStripMenuItem.Text = "Servicio de aplicaciones (MSP)" - DefaultAppAssociationsToolStripMenuItem.Text = "Asociaciones predeterminadas de aplicaciones" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Configuración de idiomas y regiones" - CapabilitiesToolStripMenuItem.Text = "Funcionalidades" - WindowsEditionsToolStripMenuItem.Text = "Ediciones de Windows" - DriversToolStripMenuItem.Text = "Controladores" - UnattendedAnswerFilesToolStripMenuItem.Text = "Archivos de respuesta desatendida" - WindowsPEServicingToolStripMenuItem.Text = "Servicio de Windows PE" - OSUninstallToolStripMenuItem.Text = "Desinstalación del sistema operativo" - ReservedStorageToolStripMenuItem.Text = "Almacenamiento reservado" - ' Menu - Commands - Image management - AppendImage.Text = "Anexar directorio de captura a imagen..." - ApplyFFU.Text = "Aplicar archivo FFU o SFU..." - ApplyImage.Text = "Aplicar archivo WIM o SWM..." - CaptureCustomImage.Text = "Capturar cambios incrementales a un archivo..." - CaptureFFU.Text = "Capturar particiones a un archivo FFU..." - CaptureImage.Text = "Capturar imagen de un disco a un archivo WIM..." - CleanupMountpoints.Text = "Eliminar recursos de una imagen corrupta..." - CommitImage.Text = "Aplicar cambios a la imagen..." - DeleteImage.Text = "Eliminar imágenes de volumen de un archivo WIM..." - ExportImage.Text = "Exportar imagen..." - GetImageInfo.Text = "Obtener información de imagen..." - GetWIMBootEntry.Text = "Obtener entradas de configuración WIMBoot..." - ListImage.Text = "Enumerar archivos y directorios de un archivo WIM..." - MountImage.Text = "Montar imagen..." - OptimizeFFU.Text = "Optimizar archivo FFU..." - OptimizeImage.Text = "Optimizar imagen..." - RemountImage.Text = "Remontar imagen para su servicio..." - SplitFFU.Text = "Dividir archivo FFU en archivos SFU..." - SplitImage.Text = "Dividir archivo WIM en archivos SWM..." - UnmountImage.Text = "Desmontar imagen..." - UpdateWIMBootEntry.Text = "Actualizar entradas de configuración WIMBoot..." - ApplySiloedPackage.Text = "Aplicar paquete de aprovisionamiento en silos..." - SaveImageInformationToolStripMenuItem.Text = "Guardar información de la imagen..." - ' Menu - Commands - OS packages - GetPackages.Text = "Obtener información de paquetes..." - AddPackage.Text = "Añadir paquete..." - RemovePackage.Text = "Eliminar paquete..." - GetFeatures.Text = "Obtener información de características..." - EnableFeature.Text = "Habilitar característica..." - DisableFeature.Text = "Deshabilitar característica..." - CleanupImage.Text = "Realizar operaciones de limpieza o recuperación..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Añadir paquete de aprovisionamiento..." - GetProvisioningPackageInfo.Text = "Obtener información de paquete de aprovisionamiento..." - ApplyCustomDataImage.Text = "Aplicar imagen de datos personalizada..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Obtener información de paquete AppX..." - AddProvisionedAppxPackage.Text = "Añadir paquete AppX aprovisionado..." - RemoveProvisionedAppxPackage.Text = "Eliminar aprovisionamiento para un paquete AppX..." - OptimizeProvisionedAppxPackages.Text = "Optimizar paquete de aprovisionamiento..." - SetProvisionedAppxDataFile.Text = "Añadir archivo de datos personalizado en paquete AppX..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Obtener información de parche de aplicación..." - GetAppPatchInfo.Text = "Obtener información detallada de parches de aplicación instalados..." - GetAppPatches.Text = "Obtener información básica de parches de aplicación instalados..." - GetAppInfo.Text = "Obtener información detallada de aplicaciones de Windows Installer (*.msi)..." - GetApps.Text = "Obtener información básica de aplicaciones de Windows Installer (*.msi)..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Exportar asociaciones de aplicaciones predeterminadas..." - GetDefaultAppAssociations.Text = "Obtener información de asociaciones de aplicaciones predeterminadas..." - ImportDefaultAppAssociations.Text = "Importar asociaciones de aplicaciones predeterminadas..." - RemoveDefaultAppAssociations.Text = "Eliminar asociaciones de aplicaciones predeterminadas..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Obtener configuraciones e idiomas internacionales..." - SetUILang.Text = "Establecer idioma de la interfaz de usuario..." - SetUILangFallback.Text = "Establecer idioma predeterminado de la interfaz de usuario de último recurso..." - SetSysUILang.Text = "Estabñecer idioma de la interfaz de usuario preferido para el sistema..." - SetSysLocale.Text = "Establecer zona del sistema..." - SetUserLocale.Text = "Establecer zona del usuario..." - SetInputLocale.Text = "Establecer zona de entrada..." - SetAllIntl.Text = "Establecer idioma de la interfaz de usuario y zonas..." - SetTimeZone.Text = "Establecer zona horaria predeterminada..." - SetSKUIntlDefaults.Text = "Establecer lenguajes y zonas predeterminadas..." - SetLayeredDriver.Text = "Establecer controlador en capas..." - GenLangINI.Text = "Generar archivo Lang.ini..." - SetSetupUILang.Text = "Establecer idioma predeterminado del programa de instalación..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Añadir funcionalidad..." - ExportSource.Text = "Exportar funcionalidades en un repositorio..." - GetCapabilities.Text = "Obtener información de funcionalidades..." - RemoveCapability.Text = "Eliminar funcionalidad..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Obtener edición actual..." - GetTargetEditions.Text = "Obtener destinos de actualización..." - SetEdition.Text = "Actualizar imagen..." - SetProductKey.Text = "Establecer clave de producto..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Obtener información de controladores..." - AddDriver.Text = "Añadir controlador..." - RemoveDriver.Text = "Eliminar controlador..." - ExportDriver.Text = "Exportar paquetes de controlador..." - ImportDriver.Text = "Importar paquetes de controlador..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Aplicar archivo de respuesta desatendida..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Obtener configuración..." - SetScratchSpace.Text = "Establecer espacio temporal..." - SetTargetPath.Text = "Establecer ruta de destino..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Obtener margen de desinstalación..." - InitiateOSUninstall.Text = "Iniciar desinstalación..." - RemoveOSUninstall.Text = "Eliminar habilidad de desinstalación..." - SetOSUninstallWindow.Text = "Establecer margen de desinstalación..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Establecer estado de almacenamiento reservado..." - GetReservedStorageState.Text = "Obtener estado de almacenamiento reservado..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Añadir Edge..." - AddEdgeBrowser.Text = "Añadir navegador Edge..." - AddEdgeWebView.Text = "Añadir Edge WebView..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Conversión de imágenes" - MergeSWM.Text = "Combinar archivos SWM..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remontar imagen con permisos de escritura" - CommandShellToolStripMenuItem.Text = "Consola de comandos" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Administrador de archivos de respuesta desatendida" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Creador de archivos de respuesta desatendida" - RegCplToolStripMenuItem.Text = "Administrar subárboles del registro de la imagen..." - WebResourcesToolStripMenuItem.Text = "Recursos web" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Descargar archivos ISO de idiomas y características opcionales..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Descargar discos de idiomas y características opcionales para Windows 10..." - ReportManagerToolStripMenuItem.Text = "Administrador de informes" - MountedImageManagerTSMI.Text = "Administrador de imágenes montadas" - CreateDiscImageToolStripMenuItem.Text = "Crear imagen de disco..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Crear un entorno de pruebas..." - WimScriptEditorCommand.Text = "Editor de lista de configuraciones" - OptionsToolStripMenuItem.Text = "Opciones" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Ver la ayuda" - AboutDISMToolsToolStripMenuItem.Text = "Acerca de DISMTools" - ' Menu - Invalid settings - ISFix.Text = "Más información" - ISHelp.Text = "¿Qué es esto?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Enviar comentarios (se abre en navegador web)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribuir al sistema de ayuda" - ' Menu - Tour Server - TourActionsTSMI.Text = "Acciones del tour" - ServerStatusTSMI.Text = String.Format("El servidor del tour está activo en el puerto {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Reiniciar tour" - StopDTTourServerTSMI.Text = "Detener servidor del tour" - ' Start Panel - LabelHeader1.Text = "Comenzar" - Label10.Text = "Proyectos recientes" - NewProjLink.Text = "Nuevo proyecto..." - ExistingProjLink.Text = "Abrir proyecto existente..." - OnlineInstMgmt.Text = "Administrar instalación activa" - OfflineInstMgmt.Text = "Administrar instalación fuera de línea..." - RecentRemoveLink.Text = "Eliminar entrada" - ' ToolStrip buttons - ToolStripButton1.Text = "Cerrar pestaña" - ToolStripButton2.Text = "Guardar proyecto" - ToolStripButton3.Text = "Descargar proyecto" - ToolStripButton3.ToolTipText = "Descargar proyecto de este programa" - ToolStripButton4.Text = "Mostrar ventana de progreso" - RefreshViewTSB.Text = "Actualizar vista" - ExpandCollapseTSB.Text = "Expandir" - UpdateLink.Text = "Hay una nueva versión disponible para su descarga e instalación. Haga clic aquí para saber más" - UpdateLink.LinkArea = New LinkArea(65, 29) - ' Pop-up context menus - PkgBasicInfo.Text = "Obtener información básica (todos los paquetes)" - PkgDetailedInfo.Text = "Obtener información detallada (paquete específico)" - CommitAndUnmountTSMI.Text = "Guardar cambios y desmontar imagen" - DiscardAndUnmountTSMI.Text = "Descartar cambios y desmontar imagen" - UnmountSettingsToolStripMenuItem.Text = "Configuración de desmontaje..." - ViewPackageDirectoryToolStripMenuItem.Text = "Ver directorio del paquete" - GetImageFileInformationToolStripMenuItem.Text = "Obtener información del archivo de imagen..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Guardar información completa de la imagen..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Crear archivo de disco con este archivo..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Especifique el archivo de proyecto a cargar" - LocalMountDirFBD.Description = "Especifique el directorio de montaje que desea cargar en este proyecto:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "Los procesos de la imagen han completado" - End If - MenuDesc.Text = "Listo" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Acceder directorio" - UnloadProjectToolStripMenuItem1.Text = "Descargar proyecto" - CopyDeploymentToolsToolStripMenuItem.Text = "Copiar herramientas de implementación" - OfAllArchitecturesToolStripMenuItem.Text = "De todas las arquitecturas" - OfSelectedArchitectureToolStripMenuItem.Text = "De la arquitectura seleccionada" - ForX86ArchitectureToolStripMenuItem.Text = "Para arquitectura x86" - ForAmd64ArchitectureToolStripMenuItem.Text = "Para arquitectura AMD64" - ForARMArchitectureToolStripMenuItem.Text = "Para arquitectura ARM" - ForARM64ArchitectureToolStripMenuItem.Text = "Para arquitectura ARM64" - ImageOperationsToolStripMenuItem.Text = "Operaciones de la imagen" - MountImageToolStripMenuItem.Text = "Montar imagen..." - UnmountImageToolStripMenuItem.Text = "Desmontar imagen..." - RemoveVolumeImagesToolStripMenuItem.Text = "Eliminar imágenes de volumen..." - SwitchImageIndexesToolStripMenuItem1.Text = "Cambiar índices de imagen..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "Archivos de respuesta desatendida" - ManageToolStripMenuItem.Text = "Administrar" - CreationWizardToolStripMenuItem.Text = "Crear" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configurar directorio temporal" - ManageReportsToolStripMenuItem.Text = "Administrar informes" - AddToolStripMenuItem.Text = "Añadir" - NewFileToolStripMenuItem.Text = "Nuevo archivo..." - ExistingFileToolStripMenuItem.Text = "Archivo existente..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Guardar recurso..." - CopyToolStripMenuItem.Text = "Copiar recurso" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visitar el sitio web de Aplicaciones de Microsoft" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visitar el sitio web del proyecto de generación de Microsoft Store" - AppxDownloadHelpToolStripMenuItem.Text = "¿Cómo puedo obtener aplicaciones?" - ' New design - GreetingLabel.Text = "Le damos la bienvenida a esta sesión de servicio" - LinkLabel12.Text = "PROYECTO" - LinkLabel13.Text = "IMAGEN" - Label54.Text = "Nombre:" - Label51.Text = "Ubicación:" - Label53.Text = "¿Hay imágenes montadas?" - LinkLabel14.Text = "Haga clic aquí para montar una imagen" - Label55.Text = "Tareas del proyecto" - LinkLabel15.Text = "Ver propiedades del proyecto" - LinkLabel16.Text = "Abrir en el Explorador de Archivos" - LinkLabel17.Text = "Descargar proyecto" - Label59.Text = "No se ha montado una imagen" - Label58.Text = "Debe montar una imagen para poder ver su información" - Label57.Text = "Elecciones" - LinkLabel21.Text = "Montar una imagen..." - LinkLabel18.Text = "Escoger una imagen montada..." - Label39.Text = "Índice de la imagen:" - Label43.Text = "Punto de montaje:" - Label45.Text = "Versión:" - Label42.Text = "Nombre:" - Label40.Text = "Descripción:" - Label56.Text = "Tareas de la imagen" - LinkLabel20.Text = "Ver propiedades de la imagen" - LinkLabel19.Text = "Desmontar imagen" - GroupBox4.Text = "Operaciones de la imagen" - Button26.Text = "Montar imagen..." - Button27.Text = "Guardar cambios actuales" - Button28.Text = "Guardar cambios y desmontar imagen" - Button29.Text = "Desmontar imagen descartando cambios" - Button25.Text = "Recargar sesión de servicio" - Button24.Text = "Cambiar índices de la imagen..." - Button30.Text = "Aplicar imagen..." - Button31.Text = "Capturar imagen..." - Button32.Text = "Eliminar imágenes de volumen..." - Button33.Text = "Guardar información completa de la imagen..." - GroupBox5.Text = "Operaciones de paquetes" - Button36.Text = "Añadir paquete..." - Button34.Text = "Obtener información de paquetes..." - Button38.Text = "Guardar información de paquetes instalados..." - Button35.Text = "Eliminar paquete..." - Button37.Text = "Realizar mantenimiento y limpieza del almacén de componentes..." - GroupBox6.Text = "Operaciones de características" - Button41.Text = "Habilitar característica..." - Button39.Text = "Obtener información de características..." - Button42.Text = "Guardar información de características..." - Button40.Text = "Deshabilitar característica..." - GroupBox7.Text = "Operaciones de paquetes AppX" - Button44.Text = "Añadir paquete AppX..." - Button45.Text = "Obtener información de aplicaciones..." - Button46.Text = "Guardar información de paquetes AppX instalados..." - Button43.Text = "Eliminar paquete AppX..." - GroupBox8.Text = "Operaciones de funcionalidades" - Button48.Text = "Añadir funcionalidad..." - Button49.Text = "Obtener información de funcionalidades..." - Button50.Text = "Guardar información de funcionalidades..." - Button47.Text = "Eliminar funcionalidades..." - GroupBox9.Text = "Operaciones de controladores" - Button53.Text = "Añadir controlador..." - Button52.Text = "Obtener información de controladores..." - Button54.Text = "Guardar información de controladores instalados..." - Button51.Text = "Eliminar controlador..." - GroupBox10.Text = "Operaciones de Windows PE" - Button55.Text = "Obtener configuración" - Button56.Text = "Guardar configuración..." - Button57.Text = "Establecer ruta de destino..." - Button58.Text = "Establecer espacio temporal..." - Case "FRA" - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Fichier".ToUpper(), "&Fichier") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Projet".ToUpper(), "&Projet") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Com&mandes".ToUpper(), "Com&mandes") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Ou&tils".ToUpper(), "Ou&tils") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Aide".ToUpper(), "&Aide") - InvalidSettingsTSMI.Text = "Des paramètres non valides ont été détectés" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&Nouveau projet..." - OpenExistingProjectToolStripMenuItem.Text = "&Ouvrir un projet existant" - ManageOnlineInstallationToolStripMenuItem.Text = "&Gérer l'installation en ligne" - ManageOfflineInstallationToolStripMenuItem.Text = "Gérer l'installation &hors ligne..." - RecentProjectsListMenu.Text = "Projets récents" - SaveProjectToolStripMenuItem.Text = "&Sauvegarder le projet..." - SaveProjectasToolStripMenuItem.Text = "Sauvegarder le projet so&us..." - ExitToolStripMenuItem.Text = "Sor&tir" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "Visualiser les fichiers du projet dans l'explorateur de fichiers" - UnloadProjectToolStripMenuItem.Text = "Décharget le projet..." - SwitchImageIndexesToolStripMenuItem.Text = "Changer d'index de l'image..." - ProjectPropertiesToolStripMenuItem.Text = "Propriétés du projet" - ImagePropertiesToolStripMenuItem.Text = "Propriétés de l'image" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Gestion des images" - OSPackagesToolStripMenuItem.Text = "Paquets de systèmes d'exploitation" - ProvisioningPackagesToolStripMenuItem.Text = "Paquets de provisionnement" - AppPackagesToolStripMenuItem.Text = "Paquets AppX" - AppPatchesToolStripMenuItem.Text = "Maintenance des applications (MSP)" - DefaultAppAssociationsToolStripMenuItem.Text = "Associations d'applications par défaut" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Langues et paramètres régionaux" - CapabilitiesToolStripMenuItem.Text = "Capacités" - WindowsEditionsToolStripMenuItem.Text = "Éditions Windows" - DriversToolStripMenuItem.Text = "Pilotes" - UnattendedAnswerFilesToolStripMenuItem.Text = "Fichiers de réponse non surveillés" - WindowsPEServicingToolStripMenuItem.Text = "Maintenance de Windows PE" - OSUninstallToolStripMenuItem.Text = "Désinstallation du système d'exploitation" - ReservedStorageToolStripMenuItem.Text = "Stockage réservé" - ' Menu - Commands - Image management - AppendImage.Text = "Ajouter le répertoire de capture à l'image..." - ApplyFFU.Text = "Appliquer le fichier FFU ou SFU..." - ApplyImage.Text = "Appliquer le fichier WIM ou SWM..." - CaptureCustomImage.Text = "Capturer les modifications incrémentales d'un fichier..." - CaptureFFU.Text = "Capturer des partitions dans un fichier FFU..." - CaptureImage.Text = "Capturer l'image d'un lecteur dans un fichier WIM..." - CleanupMountpoints.Text = "Supprimer les resources d'une image corrompue..." - CommitImage.Text = "Appliquer les modifications à l'image..." - DeleteImage.Text = "Supprimer les images de volume du fichier WIM..." - ExportImage.Text = "Exporter l'image..." - GetImageInfo.Text = "Obtenir des informations sur l'image..." - GetWIMBootEntry.Text = "Obtenir les entrées de configuration WIMBoot..." - ListImage.Text = "Lister des fichiers et répertoires dans l'image..." - MountImage.Text = "Monter l'image..." - OptimizeFFU.Text = "Optimiser le fichier FFU..." - OptimizeImage.Text = "Optimiser l'image..." - RemountImage.Text = "Remonter l'image pour la maintenance..." - SplitFFU.Text = "Diviser un fichier FFU en fichiers SFU..." - SplitImage.Text = "Diviser un fichier WIM en fichiers SWM..." - UnmountImage.Text = "Démonter l'image..." - UpdateWIMBootEntry.Text = "Mettre à jour de l'entrée de configuration de WIMBoot..." - ApplySiloedPackage.Text = "Appliquer un package de provisionnement en silo..." - SaveImageInformationToolStripMenuItem.Text = "Sauvegarder les informations de l'image..." - ' Menu - Commands - OS packages - GetPackages.Text = "Obtenir des informations sur le paquet..." - AddPackage.Text = "Ajouter un paquet..." - RemovePackage.Text = "Supprimer le paquet..." - GetFeatures.Text = "Obtenir des informations sur les caractéristiques..." - EnableFeature.Text = "Activer la caractéristique..." - DisableFeature.Text = "Désactiver la caractéristique..." - CleanupImage.Text = "Effectuer des opérations de nettoyage ou de récupération..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Ajouter un paquet de provisionnement..." - GetProvisioningPackageInfo.Text = "Obtenir des informations sur le paquet de provisionnement..." - ApplyCustomDataImage.Text = "Appliquer une image de données personnalisée..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Obtenir des informations sur le paquet d'applications..." - AddProvisionedAppxPackage.Text = "Ajouter un paquet d'applications provisionnées..." - RemoveProvisionedAppxPackage.Text = "Supprimer le provisionnement pour les paquets AppX..." - OptimizeProvisionedAppxPackages.Text = "Optimiser les paquets provisionnés..." - SetProvisionedAppxDataFile.Text = "Ajouter un fichier de données personnalisé dans le paquet d'applications..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Obtenir des informations sur les correctifs de l'application..." - GetAppPatchInfo.Text = "Obtenir des informations détaillées sur les correctifs des applications..." - GetAppPatches.Text = "Obtenir des informations basiques sur les correctifs des applications installées..." - GetAppInfo.Text = "Obtenir des informations détaillées sur l'application Windows Installer (*.msi)..." - GetApps.Text = "Obtenir des informations basiques sur l'application Windows Installer (*.msi)..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Exporter les associations d'applications par défaut..." - GetDefaultAppAssociations.Text = "Obtenir des informations sur l'association d'applications par défaut..." - ImportDefaultAppAssociations.Text = "Importer les associations d'applications par défaut..." - RemoveDefaultAppAssociations.Text = "Supprimer les associations d'applications par défaut..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Obtenir des paramètres et des langues internationaux..." - SetUILang.Text = "Définir la langue de l'interface utilisateur..." - SetUILangFallback.Text = "Définir la langue par défaut de l'interface utilisateur..." - SetSysUILang.Text = "Définir la langue préférée de l'interface utilisateur du système..." - SetSysLocale.Text = "Définir les paramètres linguistiques du système..." - SetUserLocale.Text = "Définir les paramètres linguistiques de l'utilisateur..." - SetInputLocale.Text = "Définir la langue d'entrée..." - SetAllIntl.Text = "Définir la langue de l'interface utilisateur et les paramètres locaux..." - SetTimeZone.Text = "Définir le fuseau horaire par défaut..." - SetSKUIntlDefaults.Text = "Définir les langues et les locales par défaut..." - SetLayeredDriver.Text = "Régler le pilote en couches..." - GenLangINI.Text = "Générer le fichier Lang.ini..." - SetSetupUILang.Text = "Définir la langue d'installation par défaut..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Ajouter une capacité..." - ExportSource.Text = "Exporter les capacités dans le référentiel..." - GetCapabilities.Text = "Obtenir des informations sur les capacités..." - RemoveCapability.Text = "Supprimer la capacité..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Obtenir l'édition actuelle..." - GetTargetEditions.Text = "Obtenir des objectifs de mise à niveau..." - SetEdition.Text = "Mettre à jour l'image..." - SetProductKey.Text = "Définir la clé de produit..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Obtenir des informations sur le pilote..." - AddDriver.Text = "Ajouter un pilote..." - RemoveDriver.Text = "Retirer le pilote..." - ExportDriver.Text = "Exporter des paquets de pilotes..." - ImportDriver.Text = "Importer des paquets de pilotes..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Appliquer un fichier de réponse non surveillé..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Obtenir des paramètres..." - SetScratchSpace.Text = "Définir l'espace temporaire..." - SetTargetPath.Text = "Définir le chemin cible..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Obtenir la créneau de désinstallation..." - InitiateOSUninstall.Text = "Démarrer la désinstallation..." - RemoveOSUninstall.Text = "Supprimer la possibilité de revenir en arrière..." - SetOSUninstallWindow.Text = "Définir la créneau de désinstallation..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Définir l'état du stockage réservé..." - GetReservedStorageState.Text = "Obtenir l'état du stockage réservé..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Ajouter Edge..." - AddEdgeBrowser.Text = "Ajouter le navigateur Edge..." - AddEdgeWebView.Text = "Ajouter Edge WebView..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Conversion des images" - MergeSWM.Text = "Fusionner des fichiers SWM..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remonter l'image avec les droits d'écriture" - CommandShellToolStripMenuItem.Text = "Console de commande" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Gestionnaire de fichiers de réponse sans surveillance" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Créateur de fichiers de réponse sans surveillance" - RegCplToolStripMenuItem.Text = "Gérer les ruches du registre de l'image..." - WebResourcesToolStripMenuItem.Text = "Ressources Web" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Télécharger les ISO de langues et de fonctionnalités optionnelles..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Télécharger les langues et les disques FOD pour Windows 10..." - ReportManagerToolStripMenuItem.Text = "Gestionnaire de rapports" - MountedImageManagerTSMI.Text = "Gestionnaire des images montées" - CreateDiscImageToolStripMenuItem.Text = "Créer une image disque..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Créer un environnement de test..." - WimScriptEditorCommand.Text = "Éditeur de listes de configuration" - OptionsToolStripMenuItem.Text = "Paramètres" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Rubriques d'aide" - AboutDISMToolsToolStripMenuItem.Text = "À propos de DISMTools" - ' Menu - Invalid settings - ISFix.Text = "Plus d'informations" - ISHelp.Text = "Qu'est-ce que c'est ?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Rapport de rétroaction (s'ouvre dans un navigateur web)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribuer au système d'aide" - ' Menu - Tour Server - TourActionsTSMI.Text = "Actions de visite guidée" - ServerStatusTSMI.Text = String.Format("Le serveur de visite guidée est actif sur le port {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Redémarrer la visite guidée" - StopDTTourServerTSMI.Text = "Arrêter le serveur de visite guidée" - ' Start Panel - LabelHeader1.Text = "Commencer" - Label10.Text = "Projets récents" - NewProjLink.Text = "Nouveau projet..." - ExistingProjLink.Text = "Ouvrir un projet existant..." - OnlineInstMgmt.Text = "Gérer l'installation en ligne" - OfflineInstMgmt.Text = "Gérer l'installation hors ligne..." - RecentRemoveLink.Text = "Supprimer entrée" - ' ToolStrip buttons - ToolStripButton1.Text = "Fermer l'onglet" - ToolStripButton2.Text = "Sauvegarder le projet" - ToolStripButton3.Text = "Décharger le projet" - ToolStripButton3.ToolTipText = "Décharger le projet de ce programme" - ToolStripButton4.Text = "Afficher la fenêtre de progression" - RefreshViewTSB.Text = "Rafraîchir la vue" - ExpandCollapseTSB.Text = "Élargir" - UpdateLink.Text = "Une nouvelle version est disponible pour le téléchargement et l'installation. Cliquez ici pour en savoir plus" - ' Pop-up context menus - PkgBasicInfo.Text = "Obtenir des informations basiques (tous les paquets)" - PkgDetailedInfo.Text = "Obtenir des informations détaillées (paquet spécifique)" - CommitAndUnmountTSMI.Text = "Valider les modifications et démonter l'image" - DiscardAndUnmountTSMI.Text = "Annuler les modifications et démonter l'image" - UnmountSettingsToolStripMenuItem.Text = "Configurer les paramètres de démontage......" - ViewPackageDirectoryToolStripMenuItem.Text = "Afficher le répertoire des paquets" - GetImageFileInformationToolStripMenuItem.Text = "Obtenir des informations sur le fichier image..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Enregistrer les informations complètes sur l'image..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Créer une image disque avec ce fichier..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Spécifier le fichier de projet à charger" - LocalMountDirFBD.Description = "Veuillez spécifier le répertoire de montage que vous souhaitez charger dans ce projet:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "Les processus de l'image sont terminés" - End If - MenuDesc.Text = "Prêt" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Accéder à ce répertoire" - UnloadProjectToolStripMenuItem1.Text = "Décharger le projet" - CopyDeploymentToolsToolStripMenuItem.Text = "Copier les outils de déploiement" - OfAllArchitecturesToolStripMenuItem.Text = "De toutes les architectures" - OfSelectedArchitectureToolStripMenuItem.Text = "De l'architecture sélectionnée" - ForX86ArchitectureToolStripMenuItem.Text = "Pour l'architecture x86" - ForAmd64ArchitectureToolStripMenuItem.Text = "Pour l'architecture AMD64" - ForARMArchitectureToolStripMenuItem.Text = "Pour l'architecture ARM" - ForARM64ArchitectureToolStripMenuItem.Text = "Pour l'architecture ARM64" - ImageOperationsToolStripMenuItem.Text = "Opérations sur les images" - MountImageToolStripMenuItem.Text = "Monter l'image..." - UnmountImageToolStripMenuItem.Text = "Démonter l'image..." - RemoveVolumeImagesToolStripMenuItem.Text = "Supprimer les images de volume..." - SwitchImageIndexesToolStripMenuItem1.Text = "Changer d'index de l'image..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "Fichiers de réponse non surveillés" - ManageToolStripMenuItem.Text = "Gérer" - CreationWizardToolStripMenuItem.Text = "Créer" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configurer le répertoire temporaire" - ManageReportsToolStripMenuItem.Text = "Gérer les rapports" - AddToolStripMenuItem.Text = "Ajouter" - NewFileToolStripMenuItem.Text = "Nouveau fichier..." - ExistingFileToolStripMenuItem.Text = "Fichier existant..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Sauvegarder les ressources..." - CopyToolStripMenuItem.Text = "Copier la ressource" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visiter le site web de Microsoft Apps" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visiter le site web du projet Microsoft Store Generation" - AppxDownloadHelpToolStripMenuItem.Text = "Comment puis-je obtenir des applications ?" - ' New design - GreetingLabel.Text = "Bienvenue à cette session de service" - LinkLabel12.Text = "PROJET" - LinkLabel13.Text = "IMAGE" - Label54.Text = "Nom :" - Label51.Text = "Lieu :" - Label53.Text = "Images montées ?" - LinkLabel14.Text = "Cliquez ici pour monter une image" - Label55.Text = "Tâches du projet" - LinkLabel15.Text = "Voir les propriétés du projet" - LinkLabel16.Text = "Ouvrir dans l'explorateur de fichiers" - LinkLabel17.Text = "Décharger le projet" - Label59.Text = "Aucune image n'a été montée" - Label58.Text = "Vous devez monter une image pour pouvoir consulter ses informations." - Label57.Text = "Choix" - LinkLabel21.Text = "Monter une image..." - LinkLabel18.Text = "Choisir une image montée..." - Label39.Text = "Index de l'image :" - Label43.Text = "Répertoire de montage :" - Label45.Text = "Version :" - Label42.Text = "Nom :" - Label40.Text = "Description :" - Label56.Text = "Tâches de l'image" - LinkLabel20.Text = "Voir les propriétés de l'image" - LinkLabel19.Text = "Démonter l'image" - GroupBox4.Text = "Opérations sur les images" - Button26.Text = "Monter une image..." - Button27.Text = "Sauvegarder les modifications pendants" - Button28.Text = "Sauvegarder modifications et démonter l'image" - Button29.Text = "Démonter l'image en supprimant les modifications" - Button25.Text = "Recharger la session de service" - Button24.Text = "Changer d'index de l'image..." - Button30.Text = "Appliquer l'image..." - Button31.Text = "Capturer image..." - Button32.Text = "Supprimer les images de volume..." - Button33.Text = "Sauvegarder les informations complètes de l'image..." - GroupBox5.Text = "Opérations sur les paquets" - Button36.Text = "Ajouter des paquets..." - Button34.Text = "Obtenir des informations sur le paquet..." - Button38.Text = "Sauvegarder les informations sur les paquets installés..." - Button35.Text = "Supprimer des paquets..." - Button37.Text = "Effectuer la maintenance et le nettoyage du stock de composants..." - GroupBox6.Text = "Opérations sur les caractéristiques" - Button41.Text = "Activer des caractéristiques..." - Button39.Text = "Obtenir des informations sur les caractéristiques..." - Button42.Text = "Sauvegarder les caractéristiques..." - Button40.Text = "Désactiver des caractéristiques..." - GroupBox7.Text = "Opérations sur les paquets AppX" - Button44.Text = "Ajouter des paquets AppX..." - Button45.Text = "Obtenir des informations sur les applications..." - Button46.Text = "Sauvegarder les informations sur les paquets AppX installés..." - Button43.Text = "Supprimer des paquets AppX..." - GroupBox8.Text = "Opérations sur les capacités" - Button48.Text = "Ajouter des capacités..." - Button49.Text = "Obtenir des informations sur les capacités..." - Button50.Text = "Sauvegarder les informations sur les capacités..." - Button47.Text = "Supprimer des capacités..." - GroupBox9.Text = "Opérations sur les pilotes" - Button53.Text = "Ajouter des paquets de pilotes..." - Button52.Text = "Obtenir des informations sur les pilotes..." - Button54.Text = "Sauvegarder les informations sur les pilotes installés..." - Button51.Text = "Supprimer des pilotes..." - GroupBox10.Text = "Opérations de Windows PE" - Button55.Text = "Obtenir des paramètres..." - Button56.Text = "Sauvegarder les paramètres..." - Button57.Text = "Configurer le chemin d'accès..." - Button58.Text = "Configurer l'espace temporaire..." - Case "PTB", "PTG" - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Ficheiro".ToUpper(), "&Ficheiro") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Projeto".ToUpper(), "&Projeto") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Co&mandos".ToUpper(), "Co&mandos") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Ferramentas".ToUpper(), "&Ferramentas") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Ajuda".ToUpper(), "&Ajuda") - InvalidSettingsTSMI.Text = "Foram detectadas configurações inválidas" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&Novo projeto..." - OpenExistingProjectToolStripMenuItem.Text = "&Abrir projeto existente" - ManageOnlineInstallationToolStripMenuItem.Text = "&Gerir a instalação em linha" - ManageOfflineInstallationToolStripMenuItem.Text = "Gerir a instalação o&ffline..." - RecentProjectsListMenu.Text = "Projectos recentes" - SaveProjectToolStripMenuItem.Text = "&Guardar projeto..." - SaveProjectasToolStripMenuItem.Text = "Save project &como..." - ExitToolStripMenuItem.Text = "Sa&ir" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "Ver ficheiros de projeto no Explorador de Ficheiros" - UnloadProjectToolStripMenuItem.Text = "Descarregar o projeto..." - SwitchImageIndexesToolStripMenuItem.Text = "Alternar os índices de imagem..." - ProjectPropertiesToolStripMenuItem.Text = "Propriedades do projeto" - ImagePropertiesToolStripMenuItem.Text = "Propriedades da imagem" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Gestão de imagens" - OSPackagesToolStripMenuItem.Text = "Pacotes do sistema operativo" - ProvisioningPackagesToolStripMenuItem.Text = "Pacotes de provisionamento" - AppPackagesToolStripMenuItem.Text = "Pacotes AppX" - AppPatchesToolStripMenuItem.Text = "Serviço de aplicações (MSP)" - DefaultAppAssociationsToolStripMenuItem.Text = "Associações de aplicações predefinidas" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Línguas e definições regionais" - CapabilitiesToolStripMenuItem.Text = "Capacidades" - WindowsEditionsToolStripMenuItem.Text = "Edições do Windows" - DriversToolStripMenuItem.Text = "Controladores de dispositivos" - UnattendedAnswerFilesToolStripMenuItem.Text = "Ficheiros de resposta não assistidos" - WindowsPEServicingToolStripMenuItem.Text = "Manutenção do Windows PE" - OSUninstallToolStripMenuItem.Text = "Desinstalação do sistema operativo" - ReservedStorageToolStripMenuItem.Text = "Armazenamento reservado" - ' Menu - Commands - Image management - AppendImage.Text = "Anexar o diretório de captura à imagem..." - ApplyFFU.Text = "Aplicar o ficheiro FFU ou SFU..." - ApplyImage.Text = "Aplicar ficheiro WIM ou SWM..." - CaptureCustomImage.Text = "Capturar alterações incrementais no ficheiro..." - CaptureFFU.Text = "Capturar partições para o ficheiro FFU..." - CaptureImage.Text = "Capturar imagem de uma unidade para um ficheiro WIM..." - CleanupMountpoints.Text = "Eliminar recursos de uma imagem corrompida..." - CommitImage.Text = "Aplicar alterações à imagem..." - DeleteImage.Text = "Eliminar imagens de volume do ficheiro WIM..." - ExportImage.Text = "Exportar imagem..." - GetImageInfo.Text = "Obter informações sobre a imagem..." - GetWIMBootEntry.Text = "Obter entradas de configuração do WIMBoot..." - ListImage.Text = "Listar ficheiros e directórios na imagem..." - MountImage.Text = "Montar imagem..." - OptimizeFFU.Text = "Otimizar ficheiro FFU..." - OptimizeImage.Text = "Otimizar imagem..." - RemountImage.Text = "Remontar imagem para manutenção..." - SplitFFU.Text = "Dividir o arquivo FFU em arquivos SFU..." - SplitImage.Text = "Dividir ficheiro WIM em ficheiros SWM..." - UnmountImage.Text = "Desmontar imagem..." - UpdateWIMBootEntry.Text = "Atualizar a entrada de configuração WIMBoot..." - ApplySiloedPackage.Text = "Aplicar pacote de provisionamento em silo..." - ' Menu - Commands - OS packages - GetPackages.Text = "Obter informações sobre os pacotes..." - AddPackage.Text = "Adicionar pacotes..." - RemovePackage.Text = "Remove package..." - GetFeatures.Text = "Obter informações sobre as características..." - EnableFeature.Text = "Ativar características..." - DisableFeature.Text = "Desativar funcionalidades..." - CleanupImage.Text = "Efetuar operações de limpeza ou de recuperação..." - SaveImageInformationToolStripMenuItem.Text = "Guardar informações da imagem..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Adicionar pacote de aprovisionamento..." - GetProvisioningPackageInfo.Text = "Obter informações sobre o pacote de aprovisionamento..." - ApplyCustomDataImage.Text = "Aplicar imagens de dados personalizadas..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Obter informações sobre o pacote AppX..." - AddProvisionedAppxPackage.Text = "Adicionar pacote AppX provisionado..." - RemoveProvisionedAppxPackage.Text = "Remover o aprovisionamento do pacote AppX..." - OptimizeProvisionedAppxPackages.Text = "Otimizar os pacotes provisionados..." - SetProvisionedAppxDataFile.Text = "Adicionar ficheiro de dados personalizado ao pacote AppX..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Obter informações sobre patches de aplicações..." - GetAppPatchInfo.Text = "Obter informações detalhadas sobre patches de aplicações..." - GetAppPatches.Text = "Obter informações básicas sobre patches de aplicações instaladas..." - GetAppInfo.Text = "Obter informações detalhadas sobre a aplicação Windows Installer (*.msi)..." - GetApps.Text = "Obter informações básicas sobre a aplicação Windows Installer (*.msi)..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Exportar associações de aplicações predefinidas..." - GetDefaultAppAssociations.Text = "Obter informações de associação de aplicações predefinidas..." - ImportDefaultAppAssociations.Text = "Importar associações de aplicações predefinidas..." - RemoveDefaultAppAssociations.Text = "Remover associações de aplicações predefinidas..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Obter definições e línguas internacionais..." - SetUILang.Text = "Definir o idioma da IU..." - SetUILangFallback.Text = "Definir o idioma de recurso predefinido da IU..." - SetSysUILang.Text = "Definir o idioma preferido da IU do sistema..." - SetSysLocale.Text = "Definir a localidade do sistema..." - SetUserLocale.Text = "Definir a localidade do utilizador..." - SetInputLocale.Text = "Definir localidade de entrada..." - SetAllIntl.Text = "Definir o idioma e as localidades da IU..." - SetTimeZone.Text = "Definir o fuso horário predefinido..." - SetSKUIntlDefaults.Text = "Definir idiomas e localidades predefinidos..." - SetLayeredDriver.Text = "Definir driver em camadas..." - GenLangINI.Text = "Gerar ficheiro Lang.ini..." - SetSetupUILang.Text = "Definir idioma de configuração padrão..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Adicionar capacidade..." - ExportSource.Text = "Exportar capacidades para o repositório..." - GetCapabilities.Text = "Obter informações sobre a capacidade..." - RemoveCapability.Text = "Remover capacidade..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Obter a edição atual..." - GetTargetEditions.Text = "Obter objectivos de atualização..." - SetEdition.Text = "Atualizar a imagem..." - SetProductKey.Text = "Definir a chave do produto..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Obter informações sobre o controlador..." - AddDriver.Text = "Adicionar controlador..." - RemoveDriver.Text = "Remover controlador..." - ExportDriver.Text = "Exportar pacotes de controladores..." - ImportDriver.Text = "Importar pacotes de controladores..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Aplicar ficheiro de resposta não assistida..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Obter definições..." - SetScratchSpace.Text = "Definir espaço de temporário..." - SetTargetPath.Text = "Definir caminho de destino..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Obter janela de desinstalação..." - InitiateOSUninstall.Text = "Iniciar a desinstalação..." - RemoveOSUninstall.Text = "Remover a capacidade de reversão..." - SetOSUninstallWindow.Text = "Definir janela de desinstalação..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Definir estado de armazenamento reservado..." - GetReservedStorageState.Text = "Obter estado de armazenamento reservado..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Adicionar Edge..." - AddEdgeBrowser.Text = "Adicionar navegador do Edge..." - AddEdgeWebView.Text = "Adicionar Edge WebView..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Conversão de imagens" - MergeSWM.Text = "Fundir ficheiros SWM..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remontar imagem com permissões de escrita" - CommandShellToolStripMenuItem.Text = "Consola de comandos" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Gestor de ficheiros de resposta não assistida" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Criador de ficheiros de resposta não assistida" - RegCplToolStripMenuItem.Text = "Gerir as colmeias do registo de imagens..." - WebResourcesToolStripMenuItem.Text = "Recursos da Web" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = " Descarregar ISOs de idiomas e caraterísticas opcionais..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Descarregar discos de idiomas e FOD para o Windows 10..." - ReportManagerToolStripMenuItem.Text = "Gestor de relatórios" - MountedImageManagerTSMI.Text = "Gestor de imagens montadas" - CreateDiscImageToolStripMenuItem.Text = "Criar imagem de disco..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Criar um ambiente de teste..." - WimScriptEditorCommand.Text = "Editor de listas de configuração" - OptionsToolStripMenuItem.Text = "Opções" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Tópicos de Ajuda" - AboutDISMToolsToolStripMenuItem.Text = "Acerca do DISMTools" - ' Menu - Invalid settings - ISFix.Text = "Mais informações" - ISHelp.Text = "O que é isto?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Comunicar comentários (abre no navegador Web)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribuir para o sistema de ajuda" - ' Menu - Tour Server - TourActionsTSMI.Text = "Ações do Tour" - ServerStatusTSMI.Text = String.Format("O servidor de tour está ativo na porta {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Reiniciar Tour" - StopDTTourServerTSMI.Text = "Parar Servidor de Tour" - ' Start Panel - LabelHeader1.Text = "Início" - Label10.Text = "Projectos recentes" - NewProjLink.Text = "Novo projeto..." - ExistingProjLink.Text = "Abrir projeto existente..." - OnlineInstMgmt.Text = "Gerir a instalação online" - OfflineInstMgmt.Text = "Gerir a instalação offline..." - ' ToolStrip buttons - ToolStripButton1.Text = "Fechar separador" - ToolStripButton2.Text = "Guardar projeto" - ToolStripButton3.Text = "Descarregar projeto" - ToolStripButton3.ToolTipText = "Descarregar projeto a partir deste programa" - ToolStripButton4.Text = "Mostrar janela de progresso" - RefreshViewTSB.Text = "Atualizar vista" - ExpandCollapseTSB.Text = "Expandir" - UpdateLink.Text = "Está disponível uma nova versão para transferência e instalação. Clique aqui para saber mais" - UpdateLink.LinkArea = New LinkArea(65, 27) - ' Pop-up context menus - PkgBasicInfo.Text = "Obter informações básicas (todos os pacotes)" - PkgDetailedInfo.Text = "Obter informações detalhadas (pacote específico)" - CommitAndUnmountTSMI.Text = "Confirmar alterações e desmontar imagem" - DiscardAndUnmountTSMI.Text = "Descartar alterações e desmontar a imagem" - UnmountSettingsToolStripMenuItem.Text = "Desmontar definições..." - ViewPackageDirectoryToolStripMenuItem.Text = "Ver diretório de pacotes" - GetImageFileInformationToolStripMenuItem.Text = "Obter informações sobre o ficheiro de imagem..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Guardar informações completas sobre a imagem..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Criar imagem de disco com este ficheiro..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Especifique o ficheiro de projeto a carregar" - LocalMountDirFBD.Description = "Especifique o diretório de montagem que pretende carregar para este projeto:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "Os processos de imagem foram concluídos" - End If - MenuDesc.Text = "Pronto" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Aceder ao diretório" - UnloadProjectToolStripMenuItem1.Text = "Descarregar projeto" - CopyDeploymentToolsToolStripMenuItem.Text = "Copiar ferramentas de implementação" - OfAllArchitecturesToolStripMenuItem.Text = "De todas as arquitecturas" - OfSelectedArchitectureToolStripMenuItem.Text = "Da arquitetura selecionada" - ForX86ArchitectureToolStripMenuItem.Text = "Para a arquitetura x86" - ForAmd64ArchitectureToolStripMenuItem.Text = "Para a arquitetura AMD64" - ForARMArchitectureToolStripMenuItem.Text = "Para a arquitetura ARM" - ForARM64ArchitectureToolStripMenuItem.Text = "Para a arquitetura ARM64" - ImageOperationsToolStripMenuItem.Text = "Operações de imagem" - MountImageToolStripMenuItem.Text = "Montar imagem..." - UnmountImageToolStripMenuItem.Text = "Desmontar imagem..." - RemoveVolumeImagesToolStripMenuItem.Text = "Remover imagens de volume..." - SwitchImageIndexesToolStripMenuItem1.Text = "Mudar os índices de imagem..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "Ficheiros de resposta não assistidos" - ManageToolStripMenuItem.Text = "Gerir" - CreationWizardToolStripMenuItem.Text = "Criar" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configurar o diretório de temporário" - ManageReportsToolStripMenuItem.Text = "Gerir relatórios" - AddToolStripMenuItem.Text = "Adicionar" - NewFileToolStripMenuItem.Text = "Novo ficheiro..." - ExistingFileToolStripMenuItem.Text = "Ficheiro existente..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Guardar recurso..." - CopyToolStripMenuItem.Text = "Copiar recurso" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visite o sítio Web das Aplicações Microsoft" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visite o Web site do Projeto de Geração da Microsoft Store" - AppxDownloadHelpToolStripMenuItem.Text = "Como é que obtenho aplicações?" - ' New design - GreetingLabel.Text = "Bem-vindo a esta sessão de manutenção" - LinkLabel12.Text = "PROJECTO" - LinkLabel13.Text = "IMAGEM" - Label54.Text = "Nome:" - Label51.Text = "Localização:" - Label53.Text = "Imagens montadas?" - LinkLabel14.Text = "Clique aqui para montar uma imagem" - Label55.Text = "Tarefas do projeto" - LinkLabel15.Text = "Ver propriedades do projeto" - LinkLabel16.Text = "Abrir no Explorador de Ficheiros" - LinkLabel17.Text = "Descarregar projeto" - Label59.Text = "Não foi montada nenhuma imagem" - Label58.Text = "É necessário montar uma imagem para ver a sua informação" - Label57.Text = "Escolhas" - LinkLabel21.Text = "Montar uma imagem..." - LinkLabel18.Text = "Escolher uma imagem montada..." - Label39.Text = "Índice da imagem:" - Label43.Text = "Ponto de montagem:" - Label45.Text = "Versão:" - Label42.Text = "Nome:" - Label40.Text = "Descrição:" - Label56.Text = "Tarefas de imagem" - LinkLabel20.Text = "Ver propriedades da imagem" - LinkLabel19.Text = "Desmontar imagem" - GroupBox4.Text = "Operações de imagem" - Button26.Text = "Montar imagem..." - Button27.Text = "Confirmar alterações actuais" - Button28.Text = "Confirmar e desmontar a imagem" - Button29.Text = "Desmontar imagem, descartando alterações" - Button25.Text = "Recarregar sessão de manutenção" - Button24.Text = "Mudar os índices de imagem..." - Button30.Text = "Aplicar imagem..." - Button31.Text = "Capturar imagem..." - Button32.Text = "Remover imagens de volume..." - Button33.Text = "Guardar informações completas da imagem..." - GroupBox5.Text = "Operações do pacote" - Button36.Text = "Adicionar pacote..." - Button34.Text = "Obter informações sobre o pacote..." - Button38.Text = "Guardar informações do pacote instalado..." - Button35.Text = "Remover pacote..." - Button37.Text = "Executar manutenção e limpeza do arquivo de componentes..." - GroupBox6.Text = "Operações de funcionalidades" - Button41.Text = "Ativar caraterística..." - Button39.Text = "Obter informações sobre a caraterística..." - Button42.Text = "Guardar informação da caraterística..." - Button40.Text = "Desativar caraterística..." - GroupBox7.Text = "Operações do pacote AppX" - Button44.Text = "Adicionar pacote AppX..." - Button45.Text = "Obter informações sobre a aplicação..." - Button46.Text = "Guardar informações do pacote AppX instalado..." - Button43.Text = "Remover pacote AppX..." - GroupBox8.Text = "Operações de capacidade" - Button48.Text = "Adicionar capacidade..." - Button49.Text = "Obter informações de capacidade..." - Button50.Text = "Guardar informações de capacidade..." - Button47.Text = "Remover capacidade..." - GroupBox9.Text = "Operações do controlador" - Button53.Text = "Adicionar pacote de controlador..." - Button52.Text = "Obter informações do controlador..." - Button54.Text = "Guardar informações do controlador instalado..." - Button51.Text = "Remover controlador..." - GroupBox10.Text = "Operações do Windows PE" - Button55.Text = "Obter configuração" - Button56.Text = "Guardar configuração..." - Button57.Text = "Definir caminho de destino..." - Button58.Text = "Definir espaço temporário..." - Case "ITA" - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&File".ToUpper(), "&File") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Progetto".ToUpper(), "&Progetto") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Com&andi".ToUpper(), "Com&andi") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Strumenti".ToUpper(), "&Strumenti") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Aiuto".ToUpper(), "&Aiuto") - InvalidSettingsTSMI.Text = "Sono state rilevate impostazioni non valide" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&Nuovo progetto..." - OpenExistingProjectToolStripMenuItem.Text = "&Apri progetto esistente" - ManageOnlineInstallationToolStripMenuItem.Text = "&Gestisci installazione online..." - ManageOfflineInstallationToolStripMenuItem.Text = "Gestisci installazione &offline..." - RecentProjectsListMenu.Text = "Progetti recenti" - SaveProjectToolStripMenuItem.Text = "&Salva progetto..." - SaveProjectasToolStripMenuItem.Text = "Salva progetto &come..." - ExitToolStripMenuItem.Text = "E&sci" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "Visualizza file progetto in Esplora file" - UnloadProjectToolStripMenuItem.Text = "Download progetto..." - SwitchImageIndexesToolStripMenuItem.Text = "Modifica indici immagini..." - ProjectPropertiesToolStripMenuItem.Text = "Proprietà progetto" - ImagePropertiesToolStripMenuItem.Text = "Proprietà immagine" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Gestisci immagini" - OSPackagesToolStripMenuItem.Text = "Pacchetti SO" - ProvisioningPackagesToolStripMenuItem.Text = "Pacchetti provisioning" - AppPackagesToolStripMenuItem.Text = "Pacchetti AppX" - AppPatchesToolStripMenuItem.Text = "Assistenza app (MSP)" - DefaultAppAssociationsToolStripMenuItem.Text = "Associazioni app predefinite" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Lingue ed impostazioni regionali" - CapabilitiesToolStripMenuItem.Text = "Capacità" - WindowsEditionsToolStripMenuItem.Text = "Edizioni Windows" - DriversToolStripMenuItem.Text = "Driver" - UnattendedAnswerFilesToolStripMenuItem.Text = "File risposte non presidiate" - WindowsPEServicingToolStripMenuItem.Text = "Assistenza Windows PE" - OSUninstallToolStripMenuItem.Text = "Disinstallazione sistema operativo" - ReservedStorageToolStripMenuItem.Text = "Archiviazione riservata" - ' Menu - Commands - Image management - AppendImage.Text = "Aggiungi cartella cattura all'immagine..." - ApplyFFU.Text = "Applica file FFU o SFU..." - ApplyImage.Text = "Applica file WIM o SWM..." - CaptureCustomImage.Text = "Cattura modifiche incrementali al file..." - CaptureFFU.Text = "Cattura partizioni nel file FFU..." - CaptureImage.Text = "Cattura immagine di un'unità in un file WIM..." - CleanupMountpoints.Text = "Elimina risorse dall'immagine danneggiata..." - CommitImage.Text = "Applica modifiche all'immagine..." - DeleteImage.Text = "Cancella immagini volume dal file WIM..." - ExportImage.Text = "Esporta immagine..." - GetImageInfo.Text = "Verifica informazioni immagine..." - GetWIMBootEntry.Text = "Verifica voci configurazione WIMBoot..." - ListImage.Text = "Elenca file/cartelle nell'immagine..." - MountImage.Text = "Monta immagine..." - OptimizeFFU.Text = "Ottimizza file FFU..." - OptimizeImage.Text = "Ottimizza immagine..." - RemountImage.Text = "Rimonta immagine per la manutenzione..." - SplitFFU.Text = "Dividi file FFU in file SFU..." - SplitImage.Text = "Dividi file WIM in file SWM..." - UnmountImage.Text = "Smonta immagine..." - UpdateWIMBootEntry.Text = "Aggiorna voce configurazione WIMBoot..." - ApplySiloedPackage.Text = "Applica pacchetto provisioning a silo..." - ' Menu - Commands - OS packages - GetPackages.Text = "Verifica informazioni pacchetti..." - AddPackage.Text = "Aggiungi pacchetto..." - RemovePackage.Text = "Rimuovi pacchetto..." - GetFeatures.Text = "Verifica informazioni funzionalità..." - EnableFeature.Text = "Abilita funzionalità..." - DisableFeature.Text = "Disabilita funzionalità..." - CleanupImage.Text = "Esegui operazioni pulizia/ripristino..." - SaveImageInformationToolStripMenuItem.Text = "Salva informazioni immagine..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Aggiungi pacchetto provisioning..." - GetProvisioningPackageInfo.Text = "Verifica informazioni pacchetto provisioning..." - ApplyCustomDataImage.Text = "Applica immagine dati personalizzata..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Verifica informazioni pacchetto AppX..." - AddProvisionedAppxPackage.Text = "Aggiungi pacchetto AppX in provisioning..." - RemoveProvisionedAppxPackage.Text = "Rimuovi provisioning del pacchetto AppX..." - OptimizeProvisionedAppxPackages.Text = "Ottimizza pacchetti in provisioning..." - SetProvisionedAppxDataFile.Text = "Aggiungi file dati personalizzato al pacchetto AppX..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Verifica informazioni sulle patch applicazione..." - GetAppPatchInfo.Text = "Verifica informazioni dettagliate patch applicazione..." - GetAppPatches.Text = "Verifica informazioni basi patch applicazioni installate..." - GetAppInfo.Text = "Verifica informazioni dettagliate applicazione Windows Installer (*.msi)..." - GetApps.Text = "Verifica informazioni basi applicazione Windows Installer (*.msi)..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Esporta associazioni predefinite applicazioni..." - GetDefaultAppAssociations.Text = "Verifica informazioni associazioni predefinite applicazioni..." - ImportDefaultAppAssociations.Text = "Importa associazioni predefinite applicazioni..." - RemoveDefaultAppAssociations.Text = "Rimuovi associazioni predefinite applicazioni..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Verifica impostazioni e lingue internazionali..." - SetUILang.Text = "Imposta lingua interfaccia utente..." - SetUILangFallback.Text = "Imposta lingua fallback predefinita interfaccia utente..." - SetSysUILang.Text = "Imposta lingua interfaccia utente preferita sistema..." - SetSysLocale.Text = "Imposta locale sistema..." - SetUserLocale.Text = "Imposta locale utente..." - SetInputLocale.Text = "Imposta locale input..." - SetAllIntl.Text = "Imposta la lingua interfaccia utente e locali..." - SetTimeZone.Text = "Imposta il fuso orario predefinito..." - SetSKUIntlDefaults.Text = "Imposta le lingue e i locali predefiniti..." - SetLayeredDriver.Text = "Imposta driver a livelli..." - GenLangINI.Text = "Genera file Lang.ini..." - SetSetupUILang.Text = "Imposta lingua predefinita programma installazione..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Aggiungi capacità..." - ExportSource.Text = "Esporta capacità nel repository..." - GetCapabilities.Text = "Verifica informazioni capacità..." - RemoveCapability.Text = "Rimuovi capacità..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Verifica edizione attuale..." - GetTargetEditions.Text = "Verifica obiettivi aggiornamento..." - SetEdition.Text = "Aggiorna immagine..." - SetProductKey.Text = "Imposta chiave prodotto..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Verifica informazioni driver..." - AddDriver.Text = "Aggiungi driver..." - RemoveDriver.Text = "Rimuovi driver..." - ExportDriver.Text = "Esporta pacchetti driver..." - ImportDriver.Text = "Importa pacchetti driver..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Applica file di risposte non presidiate..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Verifica impostazioni..." - SetScratchSpace.Text = "Imposta spazio per lo scratch..." - SetTargetPath.Text = "Imposta percorso destinazione..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Verifica finestra disinstallazione..." - InitiateOSUninstall.Text = "Avvia disinstallazione..." - RemoveOSUninstall.Text = "Rimuovi opzione rollback..." - SetOSUninstallWindow.Text = "Imposta finestra disinstallazione..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Imposta stato archiviazione riservato..." - GetReservedStorageState.Text = "Verifica stato archiviazione riservato..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Aggiungi Edge..." - AddEdgeBrowser.Text = "Aggiungi browser Edge..." - AddEdgeWebView.Text = "Aggiungi WebView Edge..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Conversione immagine" - MergeSWM.Text = "Unisci file SWM..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Rimonta l'immagine con i permessi di scrittura" - CommandShellToolStripMenuItem.Text = "Console comandi" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Gestisci file risposte non presidiate" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Crea file risposte non presidiate" - RegCplToolStripMenuItem.Text = "Gestisci struttura registro immagini..." - WebResourcesToolStripMenuItem.Text = "Risorse web" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Download ISO lingue/funzionalità opzionali..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Download lingue/dischi FOD per Windows 10..." - ReportManagerToolStripMenuItem.Text = "Gestisci rapporti" - MountedImageManagerTSMI.Text = "Gestisci immagini montate" - CreateDiscImageToolStripMenuItem.Text = "Crea immagine disco..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Crea ambiente test..." - WimScriptEditorCommand.Text = "Editor elenco configurazione" - OptionsToolStripMenuItem.Text = "Opzioni" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Argomenti guida in linea" - AboutDISMToolsToolStripMenuItem.Text = "Informazioni su DISMTools" - ' Menu - Invalid settings - ISFix.Text = "Altre informazioni" - ISHelp.Text = "Che cos'è questo?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Invia feedback (si apre nel browser web)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribuisci al supporto del programma" - ' Menu - Tour Server - TourActionsTSMI.Text = "Azioni tour" - ServerStatusTSMI.Text = String.Format("Il server tour è attivo sulla porta {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Riavvia tour" - StopDTTourServerTSMI.Text = "Interrompi server tour" - ' Start Panel - LabelHeader1.Text = "Inizia" - Label10.Text = "Progetti recenti" - NewProjLink.Text = "Nuovo progetto..." - ExistingProjLink.Text = "Apri progetto esistente..." - OnlineInstMgmt.Text = "Gestisci installazione online..." - OfflineInstMgmt.Text = "Gestisci installazione offline..." - RecentRemoveLink.Text = "Rimuovi elemento" - ' ToolStrip buttons - ToolStripButton1.Text = "Chiudi scheda" - ToolStripButton2.Text = "Salva progetto" - ToolStripButton3.Text = "Download progetto" - ToolStripButton3.ToolTipText = "Rimuovi progetto da questo programma" - ToolStripButton4.Text = "Visualizza finestra avanzamento" - RefreshViewTSB.Text = "Aggiorna vista" - ExpandCollapseTSB.Text = "Espandi" - UpdateLink.Text = "È disponibile una nuova versione da scaricare ed installare. Fai clic qui per maggiori informazioni." - UpdateLink.LinkArea = New LinkArea(60, 32) - ' Pop-up context menus - PkgBasicInfo.Text = "Verifica informazioni di base (tutti i pacchetti)" - PkgDetailedInfo.Text = "Verifica informazioni dettagliate (pacchetto specifico)" - CommitAndUnmountTSMI.Text = "Applica modifiche e smonta immagine" - DiscardAndUnmountTSMI.Text = "Scarta modifiche e smonta immagine" - UnmountSettingsToolStripMenuItem.Text = "Impostazioni smontaggio..." - ViewPackageDirectoryToolStripMenuItem.Text = "Visualizza cartella pacchetti" - GetImageFileInformationToolStripMenuItem.Text = "Verifica informazioni immagine..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Salva informazioni complete immagine..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Crea immagine disco con questo file..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Specifica il file progetto da caricare" - LocalMountDirFBD.Description = "Specifica la cartella di montaggio che vuoi caricare in questo progetto:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "I processi dell'immagine sono stati completati" - End If - MenuDesc.Text = "Pronto" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Accesso alla cartella" - UnloadProjectToolStripMenuItem1.Text = "Rimuovi progetto" - CopyDeploymentToolsToolStripMenuItem.Text = "Copia strumenti distribuzione" - OfAllArchitecturesToolStripMenuItem.Text = "Per tutte le architetture" - OfSelectedArchitectureToolStripMenuItem.Text = "Per l'architettura selezionata" - ForX86ArchitectureToolStripMenuItem.Text = "Per l'architettura x86" - ForAmd64ArchitectureToolStripMenuItem.Text = "Per l'architettura AMD64" - ForARMArchitectureToolStripMenuItem.Text = "Per architettura ARM" - ForARM64ArchitectureToolStripMenuItem.Text = "Per l'architettura ARM64" - ImageOperationsToolStripMenuItem.Text = "Operazioni immagini" - MountImageToolStripMenuItem.Text = "Monta immagine..." - UnmountImageToolStripMenuItem.Text = "Smonta immagine..." - RemoveVolumeImagesToolStripMenuItem.Text = "Rimuovi immagini volume..." - SwitchImageIndexesToolStripMenuItem1.Text = "Modifica indici immagine..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "File risposte non presidiate" - ManageToolStripMenuItem.Text = "Gestisci" - CreationWizardToolStripMenuItem.Text = "Crea" - ScratchDirectorySettingsToolStripMenuItem.Text = "Imposta cartella temporanea" - ManageReportsToolStripMenuItem.Text = "Gestisci rapporti" - AddToolStripMenuItem.Text = "Aggiungi" - NewFileToolStripMenuItem.Text = "Nuovo file..." - ExistingFileToolStripMenuItem.Text = "File esistente..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Salva risorsa..." - CopyToolStripMenuItem.Text = "Copia risorsa" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visita il sito web Microsoft Apps" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visita il sito web Microsoft Store Generation Project" - AppxDownloadHelpToolStripMenuItem.Text = "Come si ottengono le applicazioni?" - ' New design - GreetingLabel.Text = "Benvenuto in questa sessione di assistenza" - LinkLabel12.Text = "PROGETTO" - LinkLabel13.Text = "IMMAGINE" - Label54.Text = "Nome:" - Label51.Text = "Percorso:" - Label53.Text = "Immagini montate?" - LinkLabel14.Text = "Fai clic qui per montare un'immagine" - Label55.Text = "Attività progetto" - LinkLabel15.Text = "Visualizza proprietà progetto" - LinkLabel16.Text = "Apri in Esplora file" - LinkLabel17.Text = "Rimuovi progetto" - Label59.Text = "Non è stata montata alcuna immagine" - Label58.Text = "Per visualizzare le informazioni sull'immagine è necessario montarla" - Label57.Text = "Scelte" - LinkLabel21.Text = "Monta immagine..." - LinkLabel18.Text = "Scegli immagine montata..." - Label39.Text = "Indice immagine:" - Label43.Text = "Punto montaggio:" - Label45.Text = "Versione:" - Label42.Text = "Nome:" - Label40.Text = "Descrizione:" - Label56.Text = "Attività immagine" - LinkLabel20.Text = "Visualizza proprietà immagine" - LinkLabel19.Text = "Smonta immagine" - GroupBox4.Text = "Operazioni immagine" - Button26.Text = "Monta immagine..." - Button27.Text = "Applica modifiche attuali" - Button28.Text = "Applica e smonta immagine" - Button29.Text = "Smonta immagine eliminando le modifiche" - Button25.Text = "Ricarica sessione assistenza" - Button24.Text = "Modifica indici immagine..." - Button30.Text = "Applica immagine..." - Button31.Text = "Cattura immagine..." - Button32.Text = "Rimuovi immagini volume..." - Button33.Text = "Salva informazioni complete immagine..." - GroupBox5.Text = "Operazioni pacchetto" - Button36.Text = "Aggiungi pacchetto..." - Button34.Text = "Verifica informazioni pacchetto..." - Button38.Text = "Salva informazioni pacchetto installato..." - Button35.Text = "Rimuovi pacchetto..." - Button37.Text = "Esegui la manutenzione/pulizia archivio componenti..." - GroupBox6.Text = "Operazioni funzionalutà" - Button41.Text = "Attiva funzionalità..." - Button39.Text = "Verifica informazioni funzionalità..." - Button42.Text = "Salva informazioni funzionalità..." - Button40.Text = "Disattiva funzionalità..." - GroupBox7.Text = "Operazioni pacchetto AppX" - Button44.Text = "Aggiungi pacchetto AppX..." - Button45.Text = "Verifica informazioni applicazione..." - Button46.Text = "Salva informazioni pacchetto AppX installato..." - Button43.Text = "Rimuovi pacchetto AppX..." - GroupBox8.Text = "Operazioni capacità" - Button48.Text = "Aggiungi capacità..." - Button49.Text = "Verifica informazioni capacità..." - Button50.Text = "Salva informazioni capacità..." - Button47.Text = "Rimuovi capacità..." - GroupBox9.Text = "Operazioni driver dispositivo" - Button53.Text = "Aggiungi pacchetto driver..." - Button52.Text = "Verifica informazioni driver..." - Button54.Text = "Salva informazioni driver installato..." - Button51.Text = "Rimuovi driver..." - GroupBox10.Text = "Operazioni Windows PE" - Button55.Text = "Verifica configurazione" - Button56.Text = "Salva configurazione..." - Button57.Text = "Imposta percorso destinazione..." - Button58.Text = "Imposta spazio temporaneo..." - Case Else - Language = 1 - ChangeLangs(Language) - Exit Sub - End Select - Case 1 - DynaLog.LogMessage("Language code is 1. Switching to English...") - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&File".ToUpper(), "&File") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Project".ToUpper(), "&Project") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Com&mands".ToUpper(), "Com&mands") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Tools".ToUpper(), "&Tools") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Help".ToUpper(), "&Help") - InvalidSettingsTSMI.Text = "Invalid settings have been detected" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&New project..." - OpenExistingProjectToolStripMenuItem.Text = "&Open existing project" - ManageOnlineInstallationToolStripMenuItem.Text = "&Manage online installation" - ManageOfflineInstallationToolStripMenuItem.Text = "Manage o&ffline installation..." - RecentProjectsListMenu.Text = "Recent projects" - SaveProjectToolStripMenuItem.Text = "&Save project..." - SaveProjectasToolStripMenuItem.Text = "Save project &as..." - ExitToolStripMenuItem.Text = "E&xit" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "View project files in File Explorer" - UnloadProjectToolStripMenuItem.Text = "Unload project..." - SwitchImageIndexesToolStripMenuItem.Text = "Switch image indexes..." - ProjectPropertiesToolStripMenuItem.Text = "Project properties" - ImagePropertiesToolStripMenuItem.Text = "Image properties" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Image management" - OSPackagesToolStripMenuItem.Text = "OS packages" - ProvisioningPackagesToolStripMenuItem.Text = "Provisioning packages" - AppPackagesToolStripMenuItem.Text = "AppX packages" - AppPatchesToolStripMenuItem.Text = "App (MSP) servicing" - DefaultAppAssociationsToolStripMenuItem.Text = "Default app associations" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Languages and regional settings" - CapabilitiesToolStripMenuItem.Text = "Capabilities" - WindowsEditionsToolStripMenuItem.Text = "Windows editions" - DriversToolStripMenuItem.Text = "Drivers" - UnattendedAnswerFilesToolStripMenuItem.Text = "Unattended answer files" - WindowsPEServicingToolStripMenuItem.Text = "Windows PE servicing" - OSUninstallToolStripMenuItem.Text = "OS uninstall" - ReservedStorageToolStripMenuItem.Text = "Reserved storage" - ' Menu - Commands - Image management - AppendImage.Text = "Append capture directory to image..." - ApplyFFU.Text = "Apply FFU or SFU file..." - ApplyImage.Text = "Apply WIM or SWM file..." - CaptureCustomImage.Text = "Capture incremental changes to file..." - CaptureFFU.Text = "Capture partitions to FFU file..." - CaptureImage.Text = "Capture image of a drive to WIM file..." - CleanupMountpoints.Text = "Delete resources from corrupted image..." - CommitImage.Text = "Apply changes to image..." - DeleteImage.Text = "Delete volume images from WIM file..." - ExportImage.Text = "Export image..." - GetImageInfo.Text = "Get image information..." - GetWIMBootEntry.Text = "Get WIMBoot configuration entries..." - ListImage.Text = "List files and directories in image..." - MountImage.Text = "Mount image..." - OptimizeFFU.Text = "Optimize FFU file..." - OptimizeImage.Text = "Optimize image..." - RemountImage.Text = "Remount image for servicing..." - SplitFFU.Text = "Split FFU file into SFU files..." - SplitImage.Text = "Split WIM file into SWM files..." - UnmountImage.Text = "Unmount image..." - UpdateWIMBootEntry.Text = "Update WIMBoot configuration entry..." - ApplySiloedPackage.Text = "Apply siloed provisioning package..." - SaveImageInformationToolStripMenuItem.Text = "Save image information..." - ' Menu - Commands - OS packages - GetPackages.Text = "Get package information..." - AddPackage.Text = "Add package..." - RemovePackage.Text = "Remove package..." - GetFeatures.Text = "Get feature information..." - EnableFeature.Text = "Enable feature..." - DisableFeature.Text = "Disable feature..." - CleanupImage.Text = "Perform cleanup or recovery operations..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Add provisioning package..." - GetProvisioningPackageInfo.Text = "Get provisioning package information..." - ApplyCustomDataImage.Text = "Apply custom data image..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Get app package information..." - AddProvisionedAppxPackage.Text = "Add provisioned app package..." - RemoveProvisionedAppxPackage.Text = "Remove provisioning for app package..." - OptimizeProvisionedAppxPackages.Text = "Optimize provisioned packages..." - SetProvisionedAppxDataFile.Text = "Add custom data file into app package..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Get application patch information..." - GetAppPatchInfo.Text = "Get detailed application patch information..." - GetAppPatches.Text = "Get basic installed application patch information..." - GetAppInfo.Text = "Get detailed Windows Installer (*.msi) application information..." - GetApps.Text = "Get basic Windows Installer (*.msi) application information..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Export default application associations..." - GetDefaultAppAssociations.Text = "Get default application association information..." - ImportDefaultAppAssociations.Text = "Import default application associations..." - RemoveDefaultAppAssociations.Text = "Remove default application associations..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Get international settings and languages..." - SetUILang.Text = "Set UI language..." - SetUILangFallback.Text = "Set default UI fallback language..." - SetSysUILang.Text = "Set system preferred UI language..." - SetSysLocale.Text = "Set system locale..." - SetUserLocale.Text = "Set user locale..." - SetInputLocale.Text = "Set input locale..." - SetAllIntl.Text = "Set UI language and locales..." - SetTimeZone.Text = "Set default time zone..." - SetSKUIntlDefaults.Text = "Set default languages and locales..." - SetLayeredDriver.Text = "Set layered driver..." - GenLangINI.Text = "Generate Lang.ini file..." - SetSetupUILang.Text = "Set default Setup language..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Add capability..." - ExportSource.Text = "Export capabilities into repository..." - GetCapabilities.Text = "Get capability information..." - RemoveCapability.Text = "Remove capability..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Get current edition..." - GetTargetEditions.Text = "Get upgrade targets..." - SetEdition.Text = "Upgrade image..." - SetProductKey.Text = "Set product key..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Get driver information..." - AddDriver.Text = "Add driver..." - RemoveDriver.Text = "Remove driver..." - ExportDriver.Text = "Export driver packages..." - ImportDriver.Text = "Import driver packages..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Apply unattended answer file..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Get settings..." - SetScratchSpace.Text = "Set scratch space..." - SetTargetPath.Text = "Set target path..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Get uninstall window..." - InitiateOSUninstall.Text = "Initiate uninstall..." - RemoveOSUninstall.Text = "Remove roll back ability..." - SetOSUninstallWindow.Text = "Set uninstall window..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Set reserved storage state..." - GetReservedStorageState.Text = "Get reserved storage state..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Add Edge..." - AddEdgeBrowser.Text = "Add Edge browser..." - AddEdgeWebView.Text = "Add Edge WebView..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Image conversion" - MergeSWM.Text = "Merge SWM files..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remount image with write permissions" - CommandShellToolStripMenuItem.Text = "Command Console" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Unattended answer file manager" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Unattended answer file creator" - RegCplToolStripMenuItem.Text = "Manage image registry hives..." - WebResourcesToolStripMenuItem.Text = "Web Resources" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Download Languages and Optional Features ISOs..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Download Languages and FOD discs for Windows 10..." - ReportManagerToolStripMenuItem.Text = "Report manager" - MountedImageManagerTSMI.Text = "Mounted image manager" - CreateDiscImageToolStripMenuItem.Text = "Create disc image..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Create a testing environment..." - WimScriptEditorCommand.Text = "Configuration list editor" - OptionsToolStripMenuItem.Text = "Options" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Help Topics" - AboutDISMToolsToolStripMenuItem.Text = "About DISMTools" - ' Menu - Invalid settings - ISFix.Text = "More information" - ISHelp.Text = "What's this?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Report feedback (opens in web browser)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribute to the help system" - ' Menu - Tour Server - TourActionsTSMI.Text = "Tour Actions" - ServerStatusTSMI.Text = String.Format("Tour Server is active on port {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Restart Tour" - StopDTTourServerTSMI.Text = "Stop Tour Server" - ' Start Panel - LabelHeader1.Text = "Begin" - Label10.Text = "Recent projects" - NewProjLink.Text = "New project..." - ExistingProjLink.Text = "Open existing project..." - OnlineInstMgmt.Text = "Manage online installation" - OfflineInstMgmt.Text = "Manage offline installation..." - RecentRemoveLink.Text = "Remove entry" - ' ToolStrip buttons - ToolStripButton1.Text = "Close tab" - ToolStripButton2.Text = "Save project" - ToolStripButton3.Text = "Unload project" - ToolStripButton3.ToolTipText = "Unload project from this program" - ToolStripButton4.Text = "Show progress window" - RefreshViewTSB.Text = "Refresh view" - ExpandCollapseTSB.Text = "Expand" - UpdateLink.Text = "A new version is available for download and installation. Click here to learn more" - UpdateLink.LinkArea = New LinkArea(58, 24) - ' Pop-up context menus - PkgBasicInfo.Text = "Get basic information (all packages)" - PkgDetailedInfo.Text = "Get detailed information (specific package)" - CommitAndUnmountTSMI.Text = "Commit changes and unmount image" - DiscardAndUnmountTSMI.Text = "Discard changes and unmount image" - UnmountSettingsToolStripMenuItem.Text = "Unmount settings..." - ViewPackageDirectoryToolStripMenuItem.Text = "View package directory" - GetImageFileInformationToolStripMenuItem.Text = "Get image file information..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Save complete image information..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Create disc image with this file..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Specify the project file to load" - LocalMountDirFBD.Description = "Please specify the mount directory you want to load into this project:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "Image processes have completed" - End If - MenuDesc.Text = "Ready" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Access directory" - UnloadProjectToolStripMenuItem1.Text = "Unload project" - CopyDeploymentToolsToolStripMenuItem.Text = "Copy deployment tools" - OfAllArchitecturesToolStripMenuItem.Text = "Of all architectures" - OfSelectedArchitectureToolStripMenuItem.Text = "Of selected architecture" - ForX86ArchitectureToolStripMenuItem.Text = "For x86 architecture" - ForAmd64ArchitectureToolStripMenuItem.Text = "For AMD64 architecture" - ForARMArchitectureToolStripMenuItem.Text = "For ARM architecture" - ForARM64ArchitectureToolStripMenuItem.Text = "For ARM64 architecture" - ImageOperationsToolStripMenuItem.Text = "Image operations" - MountImageToolStripMenuItem.Text = "Mount image..." - UnmountImageToolStripMenuItem.Text = "Unmount image..." - RemoveVolumeImagesToolStripMenuItem.Text = "Remove volume images..." - SwitchImageIndexesToolStripMenuItem1.Text = "Switch image indexes..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "Unattended answer files" - ManageToolStripMenuItem.Text = "Manage" - CreationWizardToolStripMenuItem.Text = "Create" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configure scratch directory" - ManageReportsToolStripMenuItem.Text = "Manage reports" - AddToolStripMenuItem.Text = "Add" - NewFileToolStripMenuItem.Text = "New file..." - ExistingFileToolStripMenuItem.Text = "Existing file..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Save resource..." - CopyToolStripMenuItem.Text = "Copy resource" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visit the Microsoft Apps website" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visit the Microsoft Store Generation Project website" - AppxDownloadHelpToolStripMenuItem.Text = "How do I get applications?" - ' New design - GreetingLabel.Text = "Welcome to this servicing session" - LinkLabel12.Text = "PROJECT" - LinkLabel13.Text = "IMAGE" - Label54.Text = "Name:" - Label51.Text = "Location:" - Label53.Text = "Images mounted?" - LinkLabel14.Text = "Click here to mount an image" - Label55.Text = "Project Tasks" - LinkLabel15.Text = "View project properties" - LinkLabel16.Text = "Open in File Explorer" - LinkLabel17.Text = "Unload project" - Label59.Text = "No image has been mounted" - Label58.Text = "You need to mount an image in order to view its information" - Label57.Text = "Choices" - LinkLabel21.Text = "Mount an image..." - LinkLabel18.Text = "Pick a mounted image..." - Label39.Text = "Image index:" - Label43.Text = "Mount point:" - Label45.Text = "Version:" - Label42.Text = "Name:" - Label40.Text = "Description:" - Label56.Text = "Image Tasks" - LinkLabel20.Text = "View image properties" - LinkLabel19.Text = "Unmount image" - GroupBox4.Text = "Image operations" - Button26.Text = "Mount image..." - Button27.Text = "Commit current changes" - Button28.Text = "Commit and unmount image" - Button29.Text = "Unmount image discarding changes" - Button25.Text = "Reload servicing session" - Button24.Text = "Switch image indexes..." - Button30.Text = "Apply image..." - Button31.Text = "Capture image..." - Button32.Text = "Remove volume images..." - Button33.Text = "Save complete image information..." - GroupBox5.Text = "Package operations" - Button36.Text = "Add package..." - Button34.Text = "Get package information..." - Button38.Text = "Save installed package information..." - Button35.Text = "Remove package..." - Button37.Text = "Perform component store maintenance and cleanup..." - GroupBox6.Text = "Feature operations" - Button41.Text = "Enable feature..." - Button39.Text = "Get feature information..." - Button42.Text = "Save feature information..." - Button40.Text = "Disable feature..." - GroupBox7.Text = "AppX package operations" - Button44.Text = "Add AppX package..." - Button45.Text = "Get app information..." - Button46.Text = "Save installed AppX package information..." - Button43.Text = "Remove AppX package..." - GroupBox8.Text = "Capability operations" - Button48.Text = "Add capability..." - Button49.Text = "Get capability information..." - Button50.Text = "Save capability information..." - Button47.Text = "Remove capability..." - GroupBox9.Text = "Driver operations" - Button53.Text = "Add driver package..." - Button52.Text = "Get driver information..." - Button54.Text = "Save installed driver information..." - Button51.Text = "Remove driver..." - GroupBox10.Text = "Windows PE operations" - Button55.Text = "Get configuration" - Button56.Text = "Save configuration..." - Button57.Text = "Set target path..." - Button58.Text = "Set scratch space..." - Case 2 - DynaLog.LogMessage("Language code is 2. Switching to Spanish...") - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Archivo".ToUpper(), "&Archivo") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Proyecto".ToUpper(), "&Proyecto") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Co&mandos".ToUpper(), "Co&mandos") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Her&ramientas".ToUpper(), "Her&ramientas") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Ay&uda".ToUpper(), "Ay&uda") - InvalidSettingsTSMI.Text = "Se han detectado configuraciones inválidas" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&Nuevo proyecto..." - OpenExistingProjectToolStripMenuItem.Text = "&Abrir proyecto existente" - ManageOnlineInstallationToolStripMenuItem.Text = "Administrar &instalación activa" - ManageOfflineInstallationToolStripMenuItem.Text = "Administrar instalación &fuera de línea..." - RecentProjectsListMenu.Text = "Proyectos recientes" - SaveProjectToolStripMenuItem.Text = "&Guardar proyecto..." - SaveProjectasToolStripMenuItem.Text = "Guardar proyecto &como..." - ExitToolStripMenuItem.Text = "Sa&lir" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "Ver archivos del proyecto en el Explorador de archivos" - UnloadProjectToolStripMenuItem.Text = "Descargar proyecto..." - SwitchImageIndexesToolStripMenuItem.Text = "Cambiar índices de imagen..." - ProjectPropertiesToolStripMenuItem.Text = "Propiedades del proyecto" - ImagePropertiesToolStripMenuItem.Text = "Propiedades de la imagen" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Administración de la imagen" - OSPackagesToolStripMenuItem.Text = "Paquetes del sistema operativo" - ProvisioningPackagesToolStripMenuItem.Text = "Paquetes de aprovisionamiento" - AppPackagesToolStripMenuItem.Text = "Paquetes AppX" - AppPatchesToolStripMenuItem.Text = "Servicio de aplicaciones (MSP)" - DefaultAppAssociationsToolStripMenuItem.Text = "Asociaciones predeterminadas de aplicaciones" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Configuración de idiomas y regiones" - CapabilitiesToolStripMenuItem.Text = "Funcionalidades" - WindowsEditionsToolStripMenuItem.Text = "Ediciones de Windows" - DriversToolStripMenuItem.Text = "Controladores" - UnattendedAnswerFilesToolStripMenuItem.Text = "Archivos de respuesta desatendida" - WindowsPEServicingToolStripMenuItem.Text = "Servicio de Windows PE" - OSUninstallToolStripMenuItem.Text = "Desinstalación del sistema operativo" - ReservedStorageToolStripMenuItem.Text = "Almacenamiento reservado" - ' Menu - Commands - Image management - AppendImage.Text = "Anexar directorio de captura a imagen..." - ApplyFFU.Text = "Aplicar archivo FFU o SFU..." - ApplyImage.Text = "Aplicar archivo WIM o SWM..." - CaptureCustomImage.Text = "Capturar cambios incrementales a un archivo..." - CaptureFFU.Text = "Capturar particiones a un archivo FFU..." - CaptureImage.Text = "Capturar imagen de un disco a un archivo WIM..." - CleanupMountpoints.Text = "Eliminar recursos de una imagen corrupta..." - CommitImage.Text = "Aplicar cambios a la imagen..." - DeleteImage.Text = "Eliminar imágenes de volumen de un archivo WIM..." - ExportImage.Text = "Exportar imagen..." - GetImageInfo.Text = "Obtener información de imagen..." - GetWIMBootEntry.Text = "Obtener entradas de configuración WIMBoot..." - ListImage.Text = "Enumerar archivos y directorios de un archivo WIM..." - MountImage.Text = "Montar imagen..." - OptimizeFFU.Text = "Optimizar archivo FFU..." - OptimizeImage.Text = "Optimizar imagen..." - RemountImage.Text = "Remontar imagen para su servicio..." - SplitFFU.Text = "Dividir archivo FFU en archivos SFU..." - SplitImage.Text = "Dividir archivo WIM en archivos SWM..." - UnmountImage.Text = "Desmontar imagen..." - UpdateWIMBootEntry.Text = "Actualizar entradas de configuración WIMBoot..." - ApplySiloedPackage.Text = "Aplicar paquete de aprovisionamiento en silos..." - SaveImageInformationToolStripMenuItem.Text = "Guardar información de la imagen..." - ' Menu - Commands - OS packages - GetPackages.Text = "Obtener información de paquetes..." - AddPackage.Text = "Añadir paquete..." - RemovePackage.Text = "Eliminar paquete..." - GetFeatures.Text = "Obtener información de características..." - EnableFeature.Text = "Habilitar característica..." - DisableFeature.Text = "Deshabilitar característica..." - CleanupImage.Text = "Realizar operaciones de limpieza o recuperación..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Añadir paquete de aprovisionamiento..." - GetProvisioningPackageInfo.Text = "Obtener información de paquete de aprovisionamiento..." - ApplyCustomDataImage.Text = "Aplicar imagen de datos personalizada..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Obtener información de paquete AppX..." - AddProvisionedAppxPackage.Text = "Añadir paquete AppX aprovisionada..." - RemoveProvisionedAppxPackage.Text = "Eliminar aprovisionamiento para un paquete AppX..." - OptimizeProvisionedAppxPackages.Text = "Optimizar paquete de aprovisionamiento..." - SetProvisionedAppxDataFile.Text = "Añadir archivo de datos personalizado en paquete AppX..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Obtener información de parche de aplicación..." - GetAppPatchInfo.Text = "Obtener información detallada de parches de aplicación instalados..." - GetAppPatches.Text = "Obtener información básica de parches de aplicación instalados..." - GetAppInfo.Text = "Obtener información detallada de aplicaciones de Windows Installer (*.msi)..." - GetApps.Text = "Obtener información básica de aplicaciones de Windows Installer (*.msi)..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Exportar asociaciones de aplicaciones predeterminadas..." - GetDefaultAppAssociations.Text = "Obtener información de asociaciones de aplicaciones predeterminadas..." - ImportDefaultAppAssociations.Text = "Importar asociaciones de aplicaciones predeterminadas..." - RemoveDefaultAppAssociations.Text = "Eliminar asociaciones de aplicaciones predeterminadas..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Obtener configuraciones e idiomas internacionales..." - SetUILang.Text = "Establecer idioma de la interfaz de usuario..." - SetUILangFallback.Text = "Establecer idioma predeterminado de la interfaz de usuario de último recurso..." - SetSysUILang.Text = "Estabñecer idioma de la interfaz de usuario preferido para el sistema..." - SetSysLocale.Text = "Establecer zona del sistema..." - SetUserLocale.Text = "Establecer zona del usuario..." - SetInputLocale.Text = "Establecer zona de entrada..." - SetAllIntl.Text = "Establecer idioma de la interfaz de usuario y zonas..." - SetTimeZone.Text = "Establecer zona horaria predeterminada..." - SetSKUIntlDefaults.Text = "Establecer lenguajes y zonas predeterminadas..." - SetLayeredDriver.Text = "Establecer controlador en capas..." - GenLangINI.Text = "Generar archivo Lang.ini..." - SetSetupUILang.Text = "Establecer idioma predeterminado del programa de instalación..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Añadir funcionalidad..." - ExportSource.Text = "Exportar funcionalidades en un repositorio..." - GetCapabilities.Text = "Obtener información de funcionalidades..." - RemoveCapability.Text = "Eliminar funcionalidad..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Obtener edición actual..." - GetTargetEditions.Text = "Obtener destinos de actualización..." - SetEdition.Text = "Actualizar imagen..." - SetProductKey.Text = "Establecer clave de producto..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Obtener información de controladores..." - AddDriver.Text = "Añadir controlador..." - RemoveDriver.Text = "Eliminar controlador..." - ExportDriver.Text = "Exportar paquetes de controlador..." - ImportDriver.Text = "Importar paquetes de controlador..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Aplicar archivo de respuesta desatendida..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Obtener configuración..." - SetScratchSpace.Text = "Establecer espacio temporal..." - SetTargetPath.Text = "Establecer ruta de destino..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Obtener margen de desinstalación..." - InitiateOSUninstall.Text = "Iniciar desinstalación..." - RemoveOSUninstall.Text = "Eliminar habilidad de desinstalación..." - SetOSUninstallWindow.Text = "Establecer margen de desinstalación..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Establecer estado de almacenamiento reservado..." - GetReservedStorageState.Text = "Obtener estado de almacenamiento reservado..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Añadir Edge..." - AddEdgeBrowser.Text = "Añadir navegador Edge..." - AddEdgeWebView.Text = "Añadir Edge WebView..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Conversión de imágenes" - MergeSWM.Text = "Combinar archivos SWM..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remontar imagen con permisos de escritura" - CommandShellToolStripMenuItem.Text = "Consola de comandos" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Administrador de archivos de respuesta desatendida" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Creador de archivos de respuesta desatendida" - RegCplToolStripMenuItem.Text = "Administrar subárboles del registro de la imagen..." - WebResourcesToolStripMenuItem.Text = "Recursos web" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Descargar archivos ISO de idiomas y características opcionales..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Descargar discos de idiomas y características opcionales para Windows 10..." - ReportManagerToolStripMenuItem.Text = "Administrador de informes" - MountedImageManagerTSMI.Text = "Administrador de imágenes montadas" - CreateDiscImageToolStripMenuItem.Text = "Crear imagen de disco..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Crear un entorno de pruebas..." - WimScriptEditorCommand.Text = "Editor de lista de configuraciones" - OptionsToolStripMenuItem.Text = "Opciones" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Ver la ayuda" - AboutDISMToolsToolStripMenuItem.Text = "Acerca de DISMTools" - ' Menu - Invalid settings - ISFix.Text = "Más información" - ISHelp.Text = "¿Qué es esto?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Enviar comentarios (se abre en navegador web)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribuir al sistema de ayuda" - ' Menu - Tour Server - TourActionsTSMI.Text = "Acciones del tour" - ServerStatusTSMI.Text = String.Format("El servidor del tour está activo en el puerto {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Reiniciar tour" - StopDTTourServerTSMI.Text = "Detener servidor del tour" - ' Start Panel - LabelHeader1.Text = "Comenzar" - Label10.Text = "Proyectos recientes" - NewProjLink.Text = "Nuevo proyecto..." - ExistingProjLink.Text = "Abrir proyecto existente..." - OnlineInstMgmt.Text = "Administrar instalación activa" - OfflineInstMgmt.Text = "Administrar instalación fuera de línea..." - RecentRemoveLink.Text = "Eliminar entrada" - ' ToolStrip buttons - ToolStripButton1.Text = "Cerrar pestaña" - ToolStripButton2.Text = "Guardar proyecto" - ToolStripButton3.Text = "Descargar proyecto" - ToolStripButton3.ToolTipText = "Descargar proyecto de este programa" - ToolStripButton4.Text = "Mostrar ventana de progreso" - RefreshViewTSB.Text = "Actualizar vista" - ExpandCollapseTSB.Text = "Expandir" - UpdateLink.Text = "Hay una nueva versión disponible para su descarga e instalación. Haga clic aquí para saber más" - UpdateLink.LinkArea = New LinkArea(65, 29) - ' Pop-up context menus - PkgBasicInfo.Text = "Obtener información básica (todos los paquetes)" - PkgDetailedInfo.Text = "Obtener información detallada (paquete específico)" - CommitAndUnmountTSMI.Text = "Guardar cambios y desmontar imagen" - DiscardAndUnmountTSMI.Text = "Descartar cambios y desmontar imagen" - UnmountSettingsToolStripMenuItem.Text = "Configuración de desmontaje..." - ViewPackageDirectoryToolStripMenuItem.Text = "Ver directorio del paquete" - GetImageFileInformationToolStripMenuItem.Text = "Obtener información del archivo de imagen..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Guardar información completa de la imagen..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Crear archivo de disco con este archivo..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Especifique el archivo de proyecto a cargar" - LocalMountDirFBD.Description = "Especifique el directorio de montaje que desea cargar en este proyecto:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "Los procesos de la imagen han completado" - End If - MenuDesc.Text = "Listo" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Acceder directorio" - UnloadProjectToolStripMenuItem1.Text = "Descargar proyecto" - CopyDeploymentToolsToolStripMenuItem.Text = "Copiar herramientas de implementación" - OfAllArchitecturesToolStripMenuItem.Text = "De todas las arquitecturas" - OfSelectedArchitectureToolStripMenuItem.Text = "De la arquitectura seleccionada" - ForX86ArchitectureToolStripMenuItem.Text = "Para arquitectura x86" - ForAmd64ArchitectureToolStripMenuItem.Text = "Para arquitectura AMD64" - ForARMArchitectureToolStripMenuItem.Text = "Para arquitectura ARM" - ForARM64ArchitectureToolStripMenuItem.Text = "Para arquitectura ARM64" - ImageOperationsToolStripMenuItem.Text = "Operaciones de la imagen" - MountImageToolStripMenuItem.Text = "Montar imagen..." - UnmountImageToolStripMenuItem.Text = "Desmontar imagen..." - RemoveVolumeImagesToolStripMenuItem.Text = "Eliminar imágenes de volumen..." - SwitchImageIndexesToolStripMenuItem1.Text = "Cambiar índices de imagen..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "Archivos de respuesta desatendida" - ManageToolStripMenuItem.Text = "Administrar" - CreationWizardToolStripMenuItem.Text = "Crear" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configurar directorio temporal" - ManageReportsToolStripMenuItem.Text = "Administrar informes" - AddToolStripMenuItem.Text = "Añadir" - NewFileToolStripMenuItem.Text = "Nuevo archivo..." - ExistingFileToolStripMenuItem.Text = "Archivo existente..." - SaveResourceToolStripMenuItem.Text = "Guardar recurso..." - CopyToolStripMenuItem.Text = "Copiar recurso" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visitar el sitio web de Aplicaciones de Microsoft" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visitar el sitio web del proyecto de generación de Microsoft Store" - AppxDownloadHelpToolStripMenuItem.Text = "¿Cómo puedo obtener aplicaciones?" - ' New design - GreetingLabel.Text = "Le damos la bienvenida a esta sesión de servicio" - LinkLabel12.Text = "PROYECTO" - LinkLabel13.Text = "IMAGEN" - Label54.Text = "Nombre:" - Label51.Text = "Ubicación:" - Label53.Text = "¿Hay imágenes montadas?" - LinkLabel14.Text = "Haga clic aquí para montar una imagen" - Label55.Text = "Tareas del proyecto" - LinkLabel15.Text = "Ver propiedades del proyecto" - LinkLabel16.Text = "Abrir en el Explorador de Archivos" - LinkLabel17.Text = "Descargar proyecto" - Label59.Text = "No se ha montado una imagen" - Label58.Text = "Debe montar una imagen para poder ver su información" - Label57.Text = "Elecciones" - LinkLabel21.Text = "Montar una imagen..." - LinkLabel18.Text = "Escoger una imagen montada..." - Label39.Text = "Índice de la imagen:" - Label43.Text = "Punto de montaje:" - Label45.Text = "Versión:" - Label42.Text = "Nombre:" - Label40.Text = "Descripción:" - Label56.Text = "Tareas de la imagen" - LinkLabel20.Text = "Ver propiedades de la imagen" - LinkLabel19.Text = "Desmontar imagen" - GroupBox4.Text = "Operaciones de la imagen" - Button26.Text = "Montar imagen..." - Button27.Text = "Guardar cambios actuales" - Button28.Text = "Guardar cambios y desmontar imagen" - Button29.Text = "Desmontar imagen descartando cambios" - Button25.Text = "Recargar sesión de servicio" - Button24.Text = "Cambiar índices de la imagen..." - Button30.Text = "Aplicar imagen..." - Button31.Text = "Capturar imagen..." - Button32.Text = "Eliminar imágenes de volumen..." - Button33.Text = "Guardar información completa de la imagen..." - GroupBox5.Text = "Operaciones de paquetes" - Button36.Text = "Añadir paquete..." - Button34.Text = "Obtener información de paquetes..." - Button38.Text = "Guardar información de paquetes instalados..." - Button35.Text = "Eliminar paquete..." - Button37.Text = "Realizar mantenimiento y limpieza del almacén de componentes..." - GroupBox6.Text = "Operaciones de características" - Button41.Text = "Habilitar característica..." - Button39.Text = "Obtener información de características..." - Button42.Text = "Guardar información de características..." - Button40.Text = "Deshabilitar característica..." - GroupBox7.Text = "Operaciones de paquetes AppX" - Button44.Text = "Añadir paquete AppX..." - Button45.Text = "Obtener información de aplicaciones..." - Button46.Text = "Guardar información de paquetes AppX instalados..." - Button43.Text = "Eliminar paquete AppX..." - GroupBox8.Text = "Operaciones de funcionalidades" - Button48.Text = "Añadir funcionalidad..." - Button49.Text = "Obtener información de funcionalidades..." - Button50.Text = "Guardar información de funcionalidades..." - Button47.Text = "Eliminar funcionalidades..." - GroupBox9.Text = "Operaciones de controladores" - Button53.Text = "Añadir controlador..." - Button52.Text = "Obtener información de controladores..." - Button54.Text = "Guardar información de controladores instalados..." - Button51.Text = "Eliminar controlador..." - GroupBox10.Text = "Operaciones de Windows PE" - Button55.Text = "Obtener configuración" - Button56.Text = "Guardar configuración..." - Button57.Text = "Establecer ruta de destino..." - Button58.Text = "Establecer espacio temporal..." - Case 3 - DynaLog.LogMessage("Language code is 3. Switching to French...") - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Fichier".ToUpper(), "&Fichier") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Projet".ToUpper(), "&Projet") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Com&mandes".ToUpper(), "Com&mandes") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Ou&tils".ToUpper(), "Ou&tils") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Aide".ToUpper(), "&Aide") - InvalidSettingsTSMI.Text = "Des paramètres non valides ont été détectés" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&Nouveau projet..." - OpenExistingProjectToolStripMenuItem.Text = "&Ouvrir un projet existant" - ManageOnlineInstallationToolStripMenuItem.Text = "&Gérer l'installation en ligne" - ManageOfflineInstallationToolStripMenuItem.Text = "Gérer l'installation &hors ligne..." - RecentProjectsListMenu.Text = "Projets récents" - SaveProjectToolStripMenuItem.Text = "&Sauvegarder le projet..." - SaveProjectasToolStripMenuItem.Text = "Sauvegarder le projet so&us..." - ExitToolStripMenuItem.Text = "Sor&tir" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "Visualiser les fichiers du projet dans l'explorateur de fichiers" - UnloadProjectToolStripMenuItem.Text = "Décharget le projet..." - SwitchImageIndexesToolStripMenuItem.Text = "Changer d'index de l'image..." - ProjectPropertiesToolStripMenuItem.Text = "Propriétés du projet" - ImagePropertiesToolStripMenuItem.Text = "Propriétés de l'image" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Gestion des images" - OSPackagesToolStripMenuItem.Text = "Paquets de systèmes d'exploitation" - ProvisioningPackagesToolStripMenuItem.Text = "Paquets de provisionnement" - AppPackagesToolStripMenuItem.Text = "Paquets AppX" - AppPatchesToolStripMenuItem.Text = "Maintenance des applications (MSP)" - DefaultAppAssociationsToolStripMenuItem.Text = "Associations d'applications par défaut" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Langues et paramètres régionaux" - CapabilitiesToolStripMenuItem.Text = "Capacités" - WindowsEditionsToolStripMenuItem.Text = "Éditions Windows" - DriversToolStripMenuItem.Text = "Pilotes" - UnattendedAnswerFilesToolStripMenuItem.Text = "Fichiers de réponse non surveillés" - WindowsPEServicingToolStripMenuItem.Text = "Maintenance de Windows PE" - OSUninstallToolStripMenuItem.Text = "Désinstallation du système d'exploitation" - ReservedStorageToolStripMenuItem.Text = "Stockage réservé" - ' Menu - Commands - Image management - AppendImage.Text = "Ajouter le répertoire de capture à l'image..." - ApplyFFU.Text = "Appliquer le fichier FFU ou SFU..." - ApplyImage.Text = "Appliquer le fichier WIM ou SWM..." - CaptureCustomImage.Text = "Capturer les modifications incrémentales d'un fichier..." - CaptureFFU.Text = "Capturer des partitions dans un fichier FFU..." - CaptureImage.Text = "Capturer l'image d'un lecteur dans un fichier WIM..." - CleanupMountpoints.Text = "Supprimer les resources d'une image corrompue..." - CommitImage.Text = "Appliquer les modifications à l'image..." - DeleteImage.Text = "Supprimer les images de volume du fichier WIM..." - ExportImage.Text = "Exporter l'image..." - GetImageInfo.Text = "Obtenir des informations sur l'image..." - GetWIMBootEntry.Text = "Obtenir les entrées de configuration WIMBoot..." - ListImage.Text = "Lister des fichiers et répertoires dans l'image..." - MountImage.Text = "Monter l'image..." - OptimizeFFU.Text = "Optimiser le fichier FFU..." - OptimizeImage.Text = "Optimiser l'image..." - RemountImage.Text = "Remonter l'image pour la maintenance..." - SplitFFU.Text = "Diviser un fichier FFU en fichiers SFU..." - SplitImage.Text = "Diviser un fichier WIM en fichiers SWM..." - UnmountImage.Text = "Démonter l'image..." - UpdateWIMBootEntry.Text = "Mettre à jour de l'entrée de configuration de WIMBoot..." - ApplySiloedPackage.Text = "Appliquer un package de provisionnement en silo..." - SaveImageInformationToolStripMenuItem.Text = "Sauvegarder les informations de l'image..." - ' Menu - Commands - OS packages - GetPackages.Text = "Obtenir des informations sur le paquet..." - AddPackage.Text = "Ajouter un paquet..." - RemovePackage.Text = "Supprimer le paquet..." - GetFeatures.Text = "Obtenir des informations sur les caractéristiques..." - EnableFeature.Text = "Activer la caractéristique..." - DisableFeature.Text = "Désactiver la caractéristique..." - CleanupImage.Text = "Effectuer des opérations de nettoyage ou de récupération..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Ajouter un paquet de provisionnement..." - GetProvisioningPackageInfo.Text = "Obtenir des informations sur le paquet de provisionnement..." - ApplyCustomDataImage.Text = "Appliquer une image de données personnalisée..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Obtenir des informations sur les paquets AppX..." - AddProvisionedAppxPackage.Text = "Ajouter les paquets AppX provisionnées..." - RemoveProvisionedAppxPackage.Text = "Supprimer le provisionnement pour les paquets AppX..." - OptimizeProvisionedAppxPackages.Text = "Optimiser les paquets provisionnés..." - SetProvisionedAppxDataFile.Text = "Ajouter un fichier de données personnalisé dans les paquets AppX..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Obtenir des informations sur les correctifs de l'application..." - GetAppPatchInfo.Text = "Obtenir des informations détaillées sur les correctifs des applications..." - GetAppPatches.Text = "Obtenir des informations basiques sur les correctifs des applications installées..." - GetAppInfo.Text = "Obtenir des informations détaillées sur l'application Windows Installer (*.msi)..." - GetApps.Text = "Obtenir des informations basiques sur l'application Windows Installer (*.msi)..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Exporter les associations d'applications par défaut..." - GetDefaultAppAssociations.Text = "Obtenir des informations sur l'association d'applications par défaut..." - ImportDefaultAppAssociations.Text = "Importer les associations d'applications par défaut..." - RemoveDefaultAppAssociations.Text = "Supprimer les associations d'applications par défaut..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Obtenir des paramètres et des langues internationaux..." - SetUILang.Text = "Définir la langue de l'interface utilisateur..." - SetUILangFallback.Text = "Définir la langue par défaut de l'interface utilisateur..." - SetSysUILang.Text = "Définir la langue préférée de l'interface utilisateur du système..." - SetSysLocale.Text = "Définir les paramètres linguistiques du système..." - SetUserLocale.Text = "Définir les paramètres linguistiques de l'utilisateur..." - SetInputLocale.Text = "Définir la langue d'entrée..." - SetAllIntl.Text = "Définir la langue de l'interface utilisateur et les paramètres locaux..." - SetTimeZone.Text = "Définir le fuseau horaire par défaut..." - SetSKUIntlDefaults.Text = "Définir les langues et les locales par défaut..." - SetLayeredDriver.Text = "Régler le pilote en couches..." - GenLangINI.Text = "Générer le fichier Lang.ini..." - SetSetupUILang.Text = "Définir la langue d'installation par défaut..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Ajouter une capacité..." - ExportSource.Text = "Exporter les capacités dans le référentiel..." - GetCapabilities.Text = "Obtenir des informations sur les capacités..." - RemoveCapability.Text = "Supprimer la capacité..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Obtenir l'édition actuelle..." - GetTargetEditions.Text = "Obtenir des objectifs de mise à niveau..." - SetEdition.Text = "Mettre à jour l'image..." - SetProductKey.Text = "Définir la clé de produit..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Obtenir des informations sur le pilote..." - AddDriver.Text = "Ajouter un pilote..." - RemoveDriver.Text = "Retirer le pilote..." - ExportDriver.Text = "Exporter des paquets de pilotes..." - ImportDriver.Text = "Importer des paquets de pilotes..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Appliquer un fichier de réponse non surveillé..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Obtenir des paramètres..." - SetScratchSpace.Text = "Définir l'espace temporaire..." - SetTargetPath.Text = "Définir le chemin cible..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Obtenir la créneau de désinstallation..." - InitiateOSUninstall.Text = "Démarrer la désinstallation..." - RemoveOSUninstall.Text = "Supprimer la possibilité de revenir en arrière..." - SetOSUninstallWindow.Text = "Définir la créneau de désinstallation..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Définir l'état du stockage réservé..." - GetReservedStorageState.Text = "Obtenir l'état du stockage réservé..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Ajouter Edge..." - AddEdgeBrowser.Text = "Ajouter le navigateur Edge..." - AddEdgeWebView.Text = "Ajouter Edge WebView..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Conversion des images" - MergeSWM.Text = "Fusionner des fichiers SWM..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remonter l'image avec les droits d'écriture" - CommandShellToolStripMenuItem.Text = "Console de commande" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Gestionnaire de fichiers de réponse sans surveillance" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Créateur de fichiers de réponse sans surveillance" - RegCplToolStripMenuItem.Text = "Gérer les ruches du registre de l'image..." - WebResourcesToolStripMenuItem.Text = "Ressources Web" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Télécharger les ISO de langues et de fonctionnalités optionnelles..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Télécharger les langues et les disques FOD pour Windows 10..." - ReportManagerToolStripMenuItem.Text = "Gestionnaire de rapports" - MountedImageManagerTSMI.Text = "Gestionnaire des images montées" - CreateDiscImageToolStripMenuItem.Text = "Créer une image disque..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Créer un environnement de test..." - WimScriptEditorCommand.Text = "Éditeur de listes de configuration" - OptionsToolStripMenuItem.Text = "Paramètres" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Rubriques d'aide" - AboutDISMToolsToolStripMenuItem.Text = "À propos de DISMTools" - ' Menu - Invalid settings - ISFix.Text = "Plus d'informations" - ISHelp.Text = "Qu'est-ce que c'est ?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Rapport de rétroaction (s'ouvre dans un navigateur web)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribuer au système d'aide" - ' Menu - Tour Server - TourActionsTSMI.Text = "Actions de visite guidée" - ServerStatusTSMI.Text = String.Format("Le serveur de visite guidée est actif sur le port {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Redémarrer la visite guidée" - StopDTTourServerTSMI.Text = "Arrêter le serveur de visite guidée" - ' Start Panel - LabelHeader1.Text = "Commencer" - Label10.Text = "Projets récents" - NewProjLink.Text = "Nouveau projet..." - ExistingProjLink.Text = "Ouvrir un projet existant..." - OnlineInstMgmt.Text = "Gérer l'installation en ligne" - OfflineInstMgmt.Text = "Gérer l'installation hors ligne..." - RecentRemoveLink.Text = "Supprimer entrée" - ' ToolStrip buttons - ToolStripButton1.Text = "Fermer l'onglet" - ToolStripButton2.Text = "Sauvegarder le projet" - ToolStripButton3.Text = "Décharger le projet" - ToolStripButton3.ToolTipText = "Décharger le projet de ce programme" - ToolStripButton4.Text = "Afficher la fenêtre de progression" - RefreshViewTSB.Text = "Rafraîchir la vue" - ExpandCollapseTSB.Text = "Élargir" - UpdateLink.Text = "Une nouvelle version est disponible pour le téléchargement et l'installation. Cliquez ici pour en savoir plus" - UpdateLink.LinkArea = New LinkArea(78, 31) - ' Pop-up context menus - PkgBasicInfo.Text = "Obtenir des informations basiques (tous les paquets)" - PkgDetailedInfo.Text = "Obtenir des informations détaillées (paquet spécifique)" - CommitAndUnmountTSMI.Text = "Valider les modifications et démonter l'image" - DiscardAndUnmountTSMI.Text = "Annuler les modifications et démonter l'image" - UnmountSettingsToolStripMenuItem.Text = "Configurer les paramètres de démontage......" - ViewPackageDirectoryToolStripMenuItem.Text = "Afficher le répertoire des paquets" - GetImageFileInformationToolStripMenuItem.Text = "Obtenir des informations sur le fichier image..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Enregistrer les informations complètes sur l'image..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Créer une image disque avec ce fichier..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Spécifier le fichier de projet à charger" - LocalMountDirFBD.Description = "Veuillez spécifier le répertoire de montage que vous souhaitez charger dans ce projet:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "Les processus de l'image sont terminés" - End If - MenuDesc.Text = "Prêt" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Accéder à ce répertoire" - UnloadProjectToolStripMenuItem1.Text = "Décharger le projet" - CopyDeploymentToolsToolStripMenuItem.Text = "Copier les outils de déploiement" - OfAllArchitecturesToolStripMenuItem.Text = "De toutes les architectures" - OfSelectedArchitectureToolStripMenuItem.Text = "De l'architecture sélectionnée" - ForX86ArchitectureToolStripMenuItem.Text = "Pour l'architecture x86" - ForAmd64ArchitectureToolStripMenuItem.Text = "Pour l'architecture AMD64" - ForARMArchitectureToolStripMenuItem.Text = "Pour l'architecture ARM" - ForARM64ArchitectureToolStripMenuItem.Text = "Pour l'architecture ARM64" - ImageOperationsToolStripMenuItem.Text = "Opérations sur les images" - MountImageToolStripMenuItem.Text = "Monter l'image..." - UnmountImageToolStripMenuItem.Text = "Démonter l'image..." - RemoveVolumeImagesToolStripMenuItem.Text = "Supprimer les images de volume..." - SwitchImageIndexesToolStripMenuItem1.Text = "Changer d'index de l'image..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "Fichiers de réponse non surveillés" - ManageToolStripMenuItem.Text = "Gérer" - CreationWizardToolStripMenuItem.Text = "Créer" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configurer le répertoire temporaire" - ManageReportsToolStripMenuItem.Text = "Gérer les rapports" - AddToolStripMenuItem.Text = "Ajouter" - NewFileToolStripMenuItem.Text = "Nouveau fichier..." - ExistingFileToolStripMenuItem.Text = "Fichier existant..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Sauvegarder les ressources..." - CopyToolStripMenuItem.Text = "Copier la ressource" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visiter le site web de Microsoft Apps" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visiter le site web du projet Microsoft Store Generation" - AppxDownloadHelpToolStripMenuItem.Text = "Comment puis-je obtenir des applications ?" - ' New design - GreetingLabel.Text = "Bienvenue à cette session de service" - LinkLabel12.Text = "PROJET" - LinkLabel13.Text = "IMAGE" - Label54.Text = "Nom :" - Label51.Text = "Lieu :" - Label53.Text = "Images montées ?" - LinkLabel14.Text = "Cliquez ici pour monter une image" - Label55.Text = "Tâches du projet" - LinkLabel15.Text = "Voir les propriétés du projet" - LinkLabel16.Text = "Ouvrir dans l'explorateur de fichiers" - LinkLabel17.Text = "Décharger le projet" - Label59.Text = "Aucune image n'a été montée" - Label58.Text = "Vous devez monter une image pour pouvoir consulter ses informations." - Label57.Text = "Choix" - LinkLabel21.Text = "Monter une image..." - LinkLabel18.Text = "Choisir une image montée..." - Label39.Text = "Index de l'image :" - Label43.Text = "Répertoire de montage :" - Label45.Text = "Version :" - Label42.Text = "Nom :" - Label40.Text = "Description :" - Label56.Text = "Tâches de l'image" - LinkLabel20.Text = "Voir les propriétés de l'image" - LinkLabel19.Text = "Démonter l'image" - GroupBox4.Text = "Opérations sur les images" - Button26.Text = "Monter une image..." - Button27.Text = "Sauvegarder les modifications pendants" - Button28.Text = "Sauvegarder modifications et démonter l'image" - Button29.Text = "Démonter l'image en supprimant les modifications" - Button25.Text = "Recharger la session de service" - Button24.Text = "Changer d'index de l'image..." - Button30.Text = "Appliquer l'image..." - Button31.Text = "Capturer image..." - Button32.Text = "Supprimer les images de volume..." - Button33.Text = "Sauvegarder les informations complètes de l'image..." - GroupBox5.Text = "Opérations sur les paquets" - Button36.Text = "Ajouter des paquets..." - Button34.Text = "Obtenir des informations sur le paquet..." - Button38.Text = "Sauvegarder les informations sur les paquets installés..." - Button35.Text = "Supprimer des paquets..." - Button37.Text = "Effectuer la maintenance et le nettoyage du stock de composants..." - GroupBox6.Text = "Opérations sur les caractéristiques" - Button41.Text = "Activer des caractéristiques..." - Button39.Text = "Obtenir des informations sur les caractéristiques..." - Button42.Text = "Sauvegarder les caractéristiques..." - Button40.Text = "Désactiver des caractéristiques..." - GroupBox7.Text = "Opérations sur les paquets AppX" - Button44.Text = "Ajouter des paquets AppX..." - Button45.Text = "Obtenir des informations sur les applications..." - Button46.Text = "Sauvegarder les informations sur les paquets AppX installés..." - Button43.Text = "Supprimer des paquets AppX..." - GroupBox8.Text = "Opérations sur les capacités" - Button48.Text = "Ajouter des capacités..." - Button49.Text = "Obtenir des informations sur les capacités..." - Button50.Text = "Sauvegarder les informations sur les capacités..." - Button47.Text = "Supprimer des capacités..." - GroupBox9.Text = "Opérations sur les pilotes" - Button53.Text = "Ajouter des paquets de pilotes..." - Button52.Text = "Obtenir des informations sur les pilotes..." - Button54.Text = "Sauvegarder les informations sur les pilotes installés..." - Button51.Text = "Supprimer des pilotes..." - GroupBox10.Text = "Opérations de Windows PE" - Button55.Text = "Obtenir des paramètres..." - Button56.Text = "Sauvegarder les paramètres..." - Button57.Text = "Configurer le chemin d'accès..." - Button58.Text = "Configurer l'espace temporaire..." - Case 4 - DynaLog.LogMessage("Language code is 4. Switching to Portuguese...") - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Ficheiro".ToUpper(), "&Ficheiro") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Projeto".ToUpper(), "&Projeto") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Co&mandos".ToUpper(), "Co&mandos") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Ferramentas".ToUpper(), "&Ferramentas") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Ajuda".ToUpper(), "&Ajuda") - InvalidSettingsTSMI.Text = "Foram detectadas configurações inválidas" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&Novo projeto..." - OpenExistingProjectToolStripMenuItem.Text = "&Abrir projeto existente" - ManageOnlineInstallationToolStripMenuItem.Text = "&Gerir a instalação em linha" - ManageOfflineInstallationToolStripMenuItem.Text = "Gerir a instalação o&ffline..." - RecentProjectsListMenu.Text = "Projectos recentes" - SaveProjectToolStripMenuItem.Text = "&Guardar projeto..." - SaveProjectasToolStripMenuItem.Text = "Save project &como..." - ExitToolStripMenuItem.Text = "Sa&ir" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "Ver ficheiros de projeto no Explorador de Ficheiros" - UnloadProjectToolStripMenuItem.Text = "Descarregar o projeto..." - SwitchImageIndexesToolStripMenuItem.Text = "Alternar os índices de imagem..." - ProjectPropertiesToolStripMenuItem.Text = "Propriedades do projeto" - ImagePropertiesToolStripMenuItem.Text = "Propriedades da imagem" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Gestão de imagens" - OSPackagesToolStripMenuItem.Text = "Pacotes do sistema operativo" - ProvisioningPackagesToolStripMenuItem.Text = "Pacotes de provisionamento" - AppPackagesToolStripMenuItem.Text = "Pacotes AppX" - AppPatchesToolStripMenuItem.Text = "Serviço de aplicações (MSP)" - DefaultAppAssociationsToolStripMenuItem.Text = "Associações de aplicações predefinidas" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Línguas e definições regionais" - CapabilitiesToolStripMenuItem.Text = "Capacidades" - WindowsEditionsToolStripMenuItem.Text = "Edições do Windows" - DriversToolStripMenuItem.Text = "Controladores de dispositivos" - UnattendedAnswerFilesToolStripMenuItem.Text = "Ficheiros de resposta não assistidos" - WindowsPEServicingToolStripMenuItem.Text = "Manutenção do Windows PE" - OSUninstallToolStripMenuItem.Text = "Desinstalação do sistema operativo" - ReservedStorageToolStripMenuItem.Text = "Armazenamento reservado" - ' Menu - Commands - Image management - AppendImage.Text = "Anexar o diretório de captura à imagem..." - ApplyFFU.Text = "Aplicar o ficheiro FFU ou SFU..." - ApplyImage.Text = "Aplicar ficheiro WIM ou SWM..." - CaptureCustomImage.Text = "Capturar alterações incrementais no ficheiro..." - CaptureFFU.Text = "Capturar partições para o ficheiro FFU..." - CaptureImage.Text = "Capturar imagem de uma unidade para um ficheiro WIM..." - CleanupMountpoints.Text = "Eliminar recursos de uma imagem corrompida..." - CommitImage.Text = "Aplicar alterações à imagem..." - DeleteImage.Text = "Eliminar imagens de volume do ficheiro WIM..." - ExportImage.Text = "Exportar imagem..." - GetImageInfo.Text = "Obter informações sobre a imagem..." - GetWIMBootEntry.Text = "Obter entradas de configuração do WIMBoot..." - ListImage.Text = "Listar ficheiros e directórios na imagem..." - MountImage.Text = "Montar imagem..." - OptimizeFFU.Text = "Otimizar ficheiro FFU..." - OptimizeImage.Text = "Otimizar imagem..." - RemountImage.Text = "Remontar imagem para manutenção..." - SplitFFU.Text = "Dividir o arquivo FFU em arquivos SFU..." - SplitImage.Text = "Dividir ficheiro WIM em ficheiros SWM..." - UnmountImage.Text = "Desmontar imagem..." - UpdateWIMBootEntry.Text = "Atualizar a entrada de configuração WIMBoot..." - ApplySiloedPackage.Text = "Aplicar pacote de provisionamento em silo..." - ' Menu - Commands - OS packages - GetPackages.Text = "Obter informações sobre os pacotes..." - AddPackage.Text = "Adicionar pacotes..." - RemovePackage.Text = "Remove package..." - GetFeatures.Text = "Obter informações sobre as características..." - EnableFeature.Text = "Ativar características..." - DisableFeature.Text = "Desativar funcionalidades..." - CleanupImage.Text = "Efetuar operações de limpeza ou de recuperação..." - SaveImageInformationToolStripMenuItem.Text = "Guardar informações da imagem..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Adicionar pacote de aprovisionamento..." - GetProvisioningPackageInfo.Text = "Obter informações sobre o pacote de aprovisionamento..." - ApplyCustomDataImage.Text = "Aplicar imagens de dados personalizadas..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Obter informações sobre o pacote AppX..." - AddProvisionedAppxPackage.Text = "Adicionar pacote AppX provisionado..." - RemoveProvisionedAppxPackage.Text = "Remover o aprovisionamento do pacote AppX..." - OptimizeProvisionedAppxPackages.Text = "Otimizar os pacotes provisionados..." - SetProvisionedAppxDataFile.Text = "Adicionar ficheiro de dados personalizado ao pacote AppX..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Obter informações sobre patches de aplicações..." - GetAppPatchInfo.Text = "Obter informações detalhadas sobre patches de aplicações..." - GetAppPatches.Text = "Obter informações básicas sobre patches de aplicações instaladas..." - GetAppInfo.Text = "Obter informações detalhadas sobre a aplicação Windows Installer (*.msi)..." - GetApps.Text = "Obter informações básicas sobre a aplicação Windows Installer (*.msi)..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Exportar associações de aplicações predefinidas..." - GetDefaultAppAssociations.Text = "Obter informações de associação de aplicações predefinidas..." - ImportDefaultAppAssociations.Text = "Importar associações de aplicações predefinidas..." - RemoveDefaultAppAssociations.Text = "Remover associações de aplicações predefinidas..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Obter definições e línguas internacionais..." - SetUILang.Text = "Definir o idioma da IU..." - SetUILangFallback.Text = "Definir o idioma de recurso predefinido da IU..." - SetSysUILang.Text = "Definir o idioma preferido da IU do sistema..." - SetSysLocale.Text = "Definir a localidade do sistema..." - SetUserLocale.Text = "Definir a localidade do utilizador..." - SetInputLocale.Text = "Definir localidade de entrada..." - SetAllIntl.Text = "Definir o idioma e as localidades da IU..." - SetTimeZone.Text = "Definir o fuso horário predefinido..." - SetSKUIntlDefaults.Text = "Definir idiomas e localidades predefinidos..." - SetLayeredDriver.Text = "Definir driver em camadas..." - GenLangINI.Text = "Gerar ficheiro Lang.ini..." - SetSetupUILang.Text = "Definir idioma de configuração padrão..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Adicionar capacidade..." - ExportSource.Text = "Exportar capacidades para o repositório..." - GetCapabilities.Text = "Obter informações sobre a capacidade..." - RemoveCapability.Text = "Remover capacidade..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Obter a edição atual..." - GetTargetEditions.Text = "Obter objectivos de atualização..." - SetEdition.Text = "Atualizar a imagem..." - SetProductKey.Text = "Definir a chave do produto..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Obter informações sobre o controlador..." - AddDriver.Text = "Adicionar controlador..." - RemoveDriver.Text = "Remover controlador..." - ExportDriver.Text = "Exportar pacotes de controladores..." - ImportDriver.Text = "Importar pacotes de controladores..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Aplicar ficheiro de resposta não assistida..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Obter definições..." - SetScratchSpace.Text = "Definir espaço de temporário..." - SetTargetPath.Text = "Definir caminho de destino..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Obter janela de desinstalação..." - InitiateOSUninstall.Text = "Iniciar a desinstalação..." - RemoveOSUninstall.Text = "Remover a capacidade de reversão..." - SetOSUninstallWindow.Text = "Definir janela de desinstalação..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Definir estado de armazenamento reservado..." - GetReservedStorageState.Text = "Obter estado de armazenamento reservado..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Adicionar Edge..." - AddEdgeBrowser.Text = "Adicionar navegador do Edge..." - AddEdgeWebView.Text = "Adicionar Edge WebView..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Conversão de imagens" - MergeSWM.Text = "Fundir ficheiros SWM..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Remontar imagem com permissões de escrita" - CommandShellToolStripMenuItem.Text = "Consola de comandos" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Gestor de ficheiros de resposta não assistida" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Criador de ficheiros de resposta não assistida" - RegCplToolStripMenuItem.Text = "Gerir as colmeias do registo de imagens..." - WebResourcesToolStripMenuItem.Text = "Recursos da Web" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = " Descarregar ISOs de idiomas e caraterísticas opcionais..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Descarregar discos de idiomas e FOD para o Windows 10..." - ReportManagerToolStripMenuItem.Text = "Gestor de relatórios" - MountedImageManagerTSMI.Text = "Gestor de imagens montadas" - CreateDiscImageToolStripMenuItem.Text = "Criar imagem de disco..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Criar um ambiente de teste..." - WimScriptEditorCommand.Text = "Editor de listas de configuração" - OptionsToolStripMenuItem.Text = "Opções" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Tópicos de Ajuda" - AboutDISMToolsToolStripMenuItem.Text = "Acerca do DISMTools" - ' Menu - Invalid settings - ISFix.Text = "Mais informações" - ISHelp.Text = "O que é isto?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Comunicar comentários (abre no navegador Web)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribuir para o sistema de ajuda" - ' Menu - Tour Server - TourActionsTSMI.Text = "Ações do Tour" - ServerStatusTSMI.Text = String.Format("O servidor de tour está ativo na porta {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Reiniciar Tour" - StopDTTourServerTSMI.Text = "Parar Servidor de Tour" - ' Start Panel - LabelHeader1.Text = "Início" - Label10.Text = "Projectos recentes" - NewProjLink.Text = "Novo projeto..." - ExistingProjLink.Text = "Abrir projeto existente..." - OnlineInstMgmt.Text = "Gerir a instalação online" - OfflineInstMgmt.Text = "Gerir a instalação offline..." - ' ToolStrip buttons - ToolStripButton1.Text = "Fechar separador" - ToolStripButton2.Text = "Guardar projeto" - ToolStripButton3.Text = "Descarregar projeto" - ToolStripButton3.ToolTipText = "Descarregar projeto a partir deste programa" - ToolStripButton4.Text = "Mostrar janela de progresso" - RefreshViewTSB.Text = "Atualizar vista" - ExpandCollapseTSB.Text = "Expandir" - UpdateLink.Text = "Está disponível uma nova versão para transferência e instalação. Clique aqui para saber mais" - UpdateLink.LinkArea = New LinkArea(65, 27) - ' Pop-up context menus - PkgBasicInfo.Text = "Obter informações básicas (todos os pacotes)" - PkgDetailedInfo.Text = "Obter informações detalhadas (pacote específico)" - CommitAndUnmountTSMI.Text = "Confirmar alterações e desmontar imagem" - DiscardAndUnmountTSMI.Text = "Descartar alterações e desmontar a imagem" - UnmountSettingsToolStripMenuItem.Text = "Desmontar definições..." - ViewPackageDirectoryToolStripMenuItem.Text = "Ver diretório de pacotes" - GetImageFileInformationToolStripMenuItem.Text = "Obter informações sobre o ficheiro de imagem..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Guardar informações completas sobre a imagem..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Criar imagem de disco com este ficheiro..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Especifique o ficheiro de projeto a carregar" - LocalMountDirFBD.Description = "Especifique o diretório de montagem que pretende carregar para este projeto:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "Os processos de imagem foram concluídos" - End If - MenuDesc.Text = "Pronto" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Aceder ao diretório" - UnloadProjectToolStripMenuItem1.Text = "Descarregar projeto" - CopyDeploymentToolsToolStripMenuItem.Text = "Copiar ferramentas de implementação" - OfAllArchitecturesToolStripMenuItem.Text = "De todas as arquitecturas" - OfSelectedArchitectureToolStripMenuItem.Text = "Da arquitetura selecionada" - ForX86ArchitectureToolStripMenuItem.Text = "Para a arquitetura x86" - ForAmd64ArchitectureToolStripMenuItem.Text = "Para a arquitetura AMD64" - ForARMArchitectureToolStripMenuItem.Text = "Para a arquitetura ARM" - ForARM64ArchitectureToolStripMenuItem.Text = "Para a arquitetura ARM64" - ImageOperationsToolStripMenuItem.Text = "Operações de imagem" - MountImageToolStripMenuItem.Text = "Montar imagem..." - UnmountImageToolStripMenuItem.Text = "Desmontar imagem..." - RemoveVolumeImagesToolStripMenuItem.Text = "Remover imagens de volume..." - SwitchImageIndexesToolStripMenuItem1.Text = "Mudar os índices de imagem..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "Ficheiros de resposta não assistidos" - ManageToolStripMenuItem.Text = "Gerir" - CreationWizardToolStripMenuItem.Text = "Criar" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configurar o diretório de temporário" - ManageReportsToolStripMenuItem.Text = "Gerir relatórios" - AddToolStripMenuItem.Text = "Adicionar" - NewFileToolStripMenuItem.Text = "Novo ficheiro..." - ExistingFileToolStripMenuItem.Text = "Ficheiro existente..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Guardar recurso..." - CopyToolStripMenuItem.Text = "Copiar recurso" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visite o sítio Web das Aplicações Microsoft" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visite o Web site do Projeto de Geração da Microsoft Store" - AppxDownloadHelpToolStripMenuItem.Text = "Como é que obtenho aplicações?" - ' New design - GreetingLabel.Text = "Bem-vindo a esta sessão de manutenção" - LinkLabel12.Text = "PROJECTO" - LinkLabel13.Text = "IMAGEM" - Label54.Text = "Nome:" - Label51.Text = "Localização:" - Label53.Text = "Imagens montadas?" - LinkLabel14.Text = "Clique aqui para montar uma imagem" - Label55.Text = "Tarefas do projeto" - LinkLabel15.Text = "Ver propriedades do projeto" - LinkLabel16.Text = "Abrir no Explorador de Ficheiros" - LinkLabel17.Text = "Descarregar projeto" - Label59.Text = "Não foi montada nenhuma imagem" - Label58.Text = "É necessário montar uma imagem para ver a sua informação" - Label57.Text = "Escolhas" - LinkLabel21.Text = "Montar uma imagem..." - LinkLabel18.Text = "Escolher uma imagem montada..." - Label39.Text = "Índice da imagem:" - Label43.Text = "Ponto de montagem:" - Label45.Text = "Versão:" - Label42.Text = "Nome:" - Label40.Text = "Descrição:" - Label56.Text = "Tarefas de imagem" - LinkLabel20.Text = "Ver propriedades da imagem" - LinkLabel19.Text = "Desmontar imagem" - GroupBox4.Text = "Operações de imagem" - Button26.Text = "Montar imagem..." - Button27.Text = "Confirmar alterações actuais" - Button28.Text = "Confirmar e desmontar a imagem" - Button29.Text = "Desmontar imagem, descartando alterações" - Button25.Text = "Recarregar sessão de manutenção" - Button24.Text = "Mudar os índices de imagem..." - Button30.Text = "Aplicar imagem..." - Button31.Text = "Capturar imagem..." - Button32.Text = "Remover imagens de volume..." - Button33.Text = "Guardar informações completas da imagem..." - GroupBox5.Text = "Operações do pacote" - Button36.Text = "Adicionar pacote..." - Button34.Text = "Obter informações sobre o pacote..." - Button38.Text = "Guardar informações do pacote instalado..." - Button35.Text = "Remover pacote..." - Button37.Text = "Executar manutenção e limpeza do arquivo de componentes..." - GroupBox6.Text = "Operações de funcionalidades" - Button41.Text = "Ativar caraterística..." - Button39.Text = "Obter informações sobre a caraterística..." - Button42.Text = "Guardar informação da caraterística..." - Button40.Text = "Desativar caraterística..." - GroupBox7.Text = "Operações do pacote AppX" - Button44.Text = "Adicionar pacote AppX..." - Button45.Text = "Obter informações sobre a aplicação..." - Button46.Text = "Guardar informações do pacote AppX instalado..." - Button43.Text = "Remover pacote AppX..." - GroupBox8.Text = "Operações de capacidade" - Button48.Text = "Adicionar capacidade..." - Button49.Text = "Obter informações de capacidade..." - Button50.Text = "Guardar informações de capacidade..." - Button47.Text = "Remover capacidade..." - GroupBox9.Text = "Operações do controlador" - Button53.Text = "Adicionar pacote de controlador..." - Button52.Text = "Obter informações do controlador..." - Button54.Text = "Guardar informações do controlador instalado..." - Button51.Text = "Remover controlador..." - GroupBox10.Text = "Operações do Windows PE" - Button55.Text = "Obter configuração" - Button56.Text = "Guardar configuração..." - Button57.Text = "Definir caminho de destino..." - Button58.Text = "Definir espaço temporário..." - Case 5 - DynaLog.LogMessage("Language code is 5. Switching to Italian...") - ' Top-level menu items - FileToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&File".ToUpper(), "&File") - ProjectToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Progetto".ToUpper(), "&Progetto") - CommandsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "Com&andi".ToUpper(), "Com&andi") - ToolsToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Strumenti".ToUpper(), "&Strumenti") - HelpToolStripMenuItem.Text = If(Options.CheckBox9.Checked, "&Aiuto".ToUpper(), "&Aiuto") - InvalidSettingsTSMI.Text = "Sono state rilevate impostazioni non valide" - ' Submenu items - ' Menu - File - NewProjectToolStripMenuItem.Text = "&Nuovo progetto..." - OpenExistingProjectToolStripMenuItem.Text = "&Apri progetto esistente" - ManageOnlineInstallationToolStripMenuItem.Text = "&Gestisci installazione online..." - ManageOfflineInstallationToolStripMenuItem.Text = "Gestisci installazione &offline..." - RecentProjectsListMenu.Text = "Progetti recenti" - SaveProjectToolStripMenuItem.Text = "&Salva progetto..." - SaveProjectasToolStripMenuItem.Text = "Salva progetto &come..." - ExitToolStripMenuItem.Text = "E&sci" - ' Menu - Project - ViewProjectFilesInFileExplorerToolStripMenuItem.Text = "Visualizza i file del progetto in Esplora file" - UnloadProjectToolStripMenuItem.Text = "Scarica il progetto..." - SwitchImageIndexesToolStripMenuItem.Text = "Cambia gli indici delle immagini..." - ProjectPropertiesToolStripMenuItem.Text = "Proprietà del progetto" - ImagePropertiesToolStripMenuItem.Text = "Proprietà dell'immagine" - ' Menu - Commands - ImageManagementToolStripMenuItem.Text = "Gestione delle immagini" - OSPackagesToolStripMenuItem.Text = "Pacchetti OS" - ProvisioningPackagesToolStripMenuItem.Text = "Pacchetti di provisioning" - AppPackagesToolStripMenuItem.Text = "Pacchetti AppX" - AppPatchesToolStripMenuItem.Text = "Assistenza per le app (MSP)" - DefaultAppAssociationsToolStripMenuItem.Text = "Associazioni app predefinite" - LanguagesAndRegionSettingsToolStripMenuItem.Text = "Lingue e impostazioni regionali" - CapabilitiesToolStripMenuItem.Text = "Capacità" - WindowsEditionsToolStripMenuItem.Text = "Edizioni di Windows" - DriversToolStripMenuItem.Text = "Driver" - UnattendedAnswerFilesToolStripMenuItem.Text = "File di risposte non presidiati" - WindowsPEServicingToolStripMenuItem.Text = "Assistenza Windows PE" - OSUninstallToolStripMenuItem.Text = "Disinstallazione del sistema operativo" - ReservedStorageToolStripMenuItem.Text = "Archiviazione riservata" - ' Menu - Commands - Image management - AppendImage.Text = "Applica la directory di acquisizione all'immagine..." - ApplyFFU.Text = "Applicare file FFU o SFU..." - ApplyImage.Text = "Applica file WIM o SWM..." - CaptureCustomImage.Text = "Cattura modifiche incrementali al file..." - CaptureFFU.Text = "Cattura partizioni nel file FFU..." - CaptureImage.Text = "Cattura l'immagine di un'unità in un file WIM..." - CleanupMountpoints.Text = "Elimina le risorse dall'immagine danneggiata..." - CommitImage.Text = "Applica le modifiche all'immagine..." - DeleteImage.Text = "Cancellare le immagini del volume dal file WIM..." - ExportImage.Text = "Esportazione dell'immagine..." - GetImageInfo.Text = "Verifica informazioni immagine..." - GetWIMBootEntry.Text = "Verifica voci configurazione WIMBoot..." - ListImage.Text = "Elenca file e cartelle nell'immagine..." - MountImage.Text = "Monta immagine..." - OptimizeFFU.Text = "Ottimizzare il file FFU..." - OptimizeImage.Text = "Ottimizzare l'immagine..." - RemountImage.Text = "Rimonta l'immagine per la manutenzione..." - SplitFFU.Text = "Dividere il file FFU in file SFU..." - SplitImage.Text = "Dividere il file WIM in file SWM..." - UnmountImage.Text = "Smontare l'immagine..." - UpdateWIMBootEntry.Text = "Aggiornare la voce di configurazione di WIMBoot..." - ApplySiloedPackage.Text = "Applica il pacchetto di provisioning a silo..." - ' Menu - Commands - OS packages - GetPackages.Text = "Verifica informazioni pacchetti..." - AddPackage.Text = "Aggiungi pacchetto..." - RemovePackage.Text = "Rimuovi pacchetto..." - GetFeatures.Text = "Verifica informazioni funzionalità..." - EnableFeature.Text = "Abilita funzionalità..." - DisableFeature.Text = "Disabilita la funzionalità..." - CleanupImage.Text = "Eseguire operazioni di pulizia o ripristino..." - SaveImageInformationToolStripMenuItem.Text = "Salva informazioni sull'immagine..." - ' Menu - Commands - Provisioning packages - AddProvisioningPackage.Text = "Aggiungi pacchetto di provisioning..." - GetProvisioningPackageInfo.Text = "Verifica informazioni pacchetto provisioning..." - ApplyCustomDataImage.Text = "Applica immagine dati personalizzata..." - ' Menu - Commands - App packages - GetProvisionedAppxPackages.Text = "Verifica informazioni pacchetto AppX..." - AddProvisionedAppxPackage.Text = "Aggiungi pacchetto AppX in provisioning..." - RemoveProvisionedAppxPackage.Text = "Rimuovere il provisioning del pacchetto AppX..." - OptimizeProvisionedAppxPackages.Text = "Ottimizzare i pacchetti in provisioning..." - SetProvisionedAppxDataFile.Text = "Aggiungere un file di dati personalizzato al pacchetto AppX..." - ' Menu - Commands - App (MSP) servicing - CheckAppPatch.Text = "Verifica informazioni patch applicazione..." - GetAppPatchInfo.Text = "Verifica informazioni dettagliate patch applicazione..." - GetAppPatches.Text = "Verifica informazioni di base patch applicazioni installate..." - GetAppInfo.Text = "Verifica informazioni dettagliate applicazione Windows Installer (*.msi)..." - GetApps.Text = "Verifica informazioni di base applicazione Windows Installer (*.msi)..." - ' Menu - Commands - Default app associations - ExportDefaultAppAssociations.Text = "Esporta associazioni predefinite applicazioni..." - GetDefaultAppAssociations.Text = "Verifica informazioni associazioni predefinite delle applicazioni..." - ImportDefaultAppAssociations.Text = "Importa associazioni predefinite applicazioni..." - RemoveDefaultAppAssociations.Text = "Rimuovi associazioni predefinite applicazioni..." - ' Menu - Commands - Languages and regional settings - GetIntl.Text = "Verifica impostazioni e lingue internazionali..." - SetUILang.Text = "Imposta lingua interfaccia utente..." - SetUILangFallback.Text = "Imposta lingua di fallback predefinita interfaccia utente..." - SetSysUILang.Text = "Imposta lingua interfaccia utente preferita dal sistema..." - SetSysLocale.Text = "Imposta il locale del sistema..." - SetUserLocale.Text = "Imposta il locale dell'utente..." - SetInputLocale.Text = "Imposta il locale di input..." - SetAllIntl.Text = "Imposta la lingua e i locali dell'interfaccia utente..." - SetTimeZone.Text = "Imposta il fuso orario predefinito..." - SetSKUIntlDefaults.Text = "Imposta le lingue e i locali predefiniti..." - SetLayeredDriver.Text = "Imposta driver a strati..." - GenLangINI.Text = "Generare il file Lang.ini..." - SetSetupUILang.Text = "Imposta la lingua predefinita del programma di installazione..." - ' Menu - Commands - Capabilities - AddCapability.Text = "Aggiungi capacità..." - ExportSource.Text = "Esportazione capacità nel repository..." - GetCapabilities.Text = "Verifica informazioni capacità..." - RemoveCapability.Text = "Rimuovi capacità..." - ' Menu - Commands - Windows editions - GetCurrentEdition.Text = "Verifica edizione attuale..." - GetTargetEditions.Text = "Verifica obiettivi aggiornamento..." - SetEdition.Text = "Aggiorna immagine..." - SetProductKey.Text = "Imposta chiave prodotto..." - ' Menu - Commands - Drivers - GetDrivers.Text = "Verifica informazioni driver..." - AddDriver.Text = "Aggiungi driver..." - RemoveDriver.Text = "Rimuovi driver..." - ExportDriver.Text = "Esporta i pacchetti di driver..." - ImportDriver.Text = "Importa pacchetti di driver..." - ' Menu - Commands - Unattended answer files - ApplyUnattend.Text = "Applica il file di risposta non presidiato..." - ' Menu - Commands - Windows PE servicing - GetPESettings.Text = "Verifica impostazioni..." - SetScratchSpace.Text = "Imposta spazio per lo scratch..." - SetTargetPath.Text = "Imposta percorso destinazione..." - ' Menu - Commands - OS uninstall - GetOSUninstallWindow.Text = "Verifica finestra disinstallazione..." - InitiateOSUninstall.Text = "Avvia disinstallazione..." - RemoveOSUninstall.Text = "Rimuovi opzione fallback..." - SetOSUninstallWindow.Text = "Imposta finestra di disinstallazione..." - ' Menu - Commands - Reserved storage - SetReservedStorageState.Text = "Imposta stato archiviazione riservato..." - GetReservedStorageState.Text = "Verifica stato archiviazione riservato..." - ' Menu - Commands - Microsoft Edge - AddEdge.Text = "Aggiungi Edge..." - AddEdgeBrowser.Text = "Aggiungi browser Edge..." - AddEdgeWebView.Text = "Aggiungi WebView Edge..." - ' Menu - Tools - ImageConversionToolStripMenuItem.Text = "Conversione di immagini" - MergeSWM.Text = "Unire i file SWM..." - RemountImageWithWritePermissionsToolStripMenuItem.Text = "Rimonta l'immagine con i permessi di scrittura" - CommandShellToolStripMenuItem.Text = "Console dei comandi" - UnattendedAnswerFileManagerToolStripMenuItem.Text = "Gestore file di risposta non presidiata" - UnattendedAnswerFileCreatorToolStripMenuItem.Text = "Creatore file di risposta non presidiata" - RegCplToolStripMenuItem.Text = "Gestire gli alveari del registro delle immagini..." - WebResourcesToolStripMenuItem.Text = "Risorse Web" - LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = "Scarica le ISO delle lingue e delle funzionalità opzionali..." - LanguagesAndFODWin10ToolStripMenuItem.Text = "Scarica le lingue e i dischi FOD per Windows 10..." - ReportManagerToolStripMenuItem.Text = "Gestore dei rapporti" - MountedImageManagerTSMI.Text = "Gestore di immagini montate" - CreateDiscImageToolStripMenuItem.Text = "Crea immagine disco..." - CreateTestingEnvironmentToolStripMenuItem.Text = "Creare un ambiente di test..." - WimScriptEditorCommand.Text = "Editor dell'elenco di configurazione" - OptionsToolStripMenuItem.Text = "Opzioni" - ' Menu - Help - HelpTopicsToolStripMenuItem.Text = "Argomenti di aiuto" - AboutDISMToolsToolStripMenuItem.Text = "Informazioni su DISMTools" - ' Menu - Tour Server - TourActionsTSMI.Text = "Azioni tour" - ServerStatusTSMI.Text = String.Format("Il server tour è attivo sulla porta {0}", tourServer.GetTcpPort()) - RestartDTTourTSMI.Text = "Riavvia tour" - StopDTTourServerTSMI.Text = "Interrompi server tour" - ' Menu - Invalid settings - ISFix.Text = "Ulteriori informazioni" - ISHelp.Text = "Che cos'è questo?" - ' Menu - DevState - ReportFeedbackToolStripMenuItem.Text = "Segnala feedback (si apre nel browser web)" - ' Menu - Contributions - ContributeToTheHelpSystemToolStripMenuItem.Text = "Contribuisci al sistema di assistenza" - ' Start Panel - LabelHeader1.Text = "Iniziare" - Label10.Text = "Progetti recenti" - NewProjLink.Text = "Nuovo progetto..." - ExistingProjLink.Text = "Aprire progetto esistente..." - OnlineInstMgmt.Text = "Gestione dell'installazione online" - OfflineInstMgmt.Text = "Gestione dell'installazione offline..." - RecentRemoveLink.Text = "Rimuovi elemento" - ' ToolStrip buttons - ToolStripButton1.Text = "Chiudi la scheda" - ToolStripButton2.Text = "Salva il progetto" - ToolStripButton3.Text = "Scarica il progetto" - ToolStripButton3.ToolTipText = "Scarica il progetto da questo programma" - ToolStripButton4.Text = "Mostra la finestra di avanzamento" - RefreshViewTSB.Text = "Aggiorna vista" - ExpandCollapseTSB.Text = "Espandi" - UpdateLink.Text = "È disponibile una nuova versione da scaricare e installare. Fare clic qui per saperne di più" - UpdateLink.LinkArea = New LinkArea(60, 32) - ' Pop-up context menus - PkgBasicInfo.Text = "Verifica informazioni elementari (tutti i pacchetti)" - PkgDetailedInfo.Text = "Verifica informazioni dettagliate (pacchetto specifico)" - CommitAndUnmountTSMI.Text = "Applica le modifiche e smonta l'immagine" - DiscardAndUnmountTSMI.Text = "Scarta le modifiche e smonta l'immagine" - UnmountSettingsToolStripMenuItem.Text = "Smontare le impostazioni..." - ViewPackageDirectoryToolStripMenuItem.Text = "Visualizza la directory dei pacchetti" - GetImageFileInformationToolStripMenuItem.Text = "Verifica informazioni immagine..." - SaveCompleteImageInformationToolStripMenuItem.Text = "Salva informazioni complete sull'immagine..." - CreateDiscImageWithThisFileToolStripMenuItem.Text = "Crea l'immagine del disco con questo file..." - ' OpenFileDialogs and FolderBrowsers - OpenFileDialog1.Title = "Specificare il file del progetto da caricare" - LocalMountDirFBD.Description = "Specificare la directory di montaggio che si desidera caricare in questo progetto:" - If Not ImgBW.IsBusy And areBackgroundProcessesDone Then - BGProcDetails.Label2.Text = "I processi dell'immagine sono stati completati" - End If - MenuDesc.Text = "Pronto" - ' Tree view context menu - AccessDirectoryToolStripMenuItem.Text = "Accesso alla directory" - UnloadProjectToolStripMenuItem1.Text = "Scarica il progetto" - CopyDeploymentToolsToolStripMenuItem.Text = "Copia strumenti distribuzione" - OfAllArchitecturesToolStripMenuItem.Text = "Di tutte le architetture" - OfSelectedArchitectureToolStripMenuItem.Text = "Dell'architettura selezionata" - ForX86ArchitectureToolStripMenuItem.Text = "Per l'architettura x86" - ForAmd64ArchitectureToolStripMenuItem.Text = "Per l'architettura AMD64" - ForARMArchitectureToolStripMenuItem.Text = "Per architettura ARM" - ForARM64ArchitectureToolStripMenuItem.Text = "Per l'architettura ARM64" - ImageOperationsToolStripMenuItem.Text = "Operazioni con le immagini" - MountImageToolStripMenuItem.Text = "Monta immagine..." - UnmountImageToolStripMenuItem.Text = "Smontaggio immagine..." - RemoveVolumeImagesToolStripMenuItem.Text = "Rimuovere le immagini del volume..." - SwitchImageIndexesToolStripMenuItem1.Text = "Cambia gli indici dell'immagine..." - UnattendedAnswerFilesToolStripMenuItem1.Text = "File di risposta non presidiati" - ManageToolStripMenuItem.Text = "Gestione" - CreationWizardToolStripMenuItem.Text = "Creare" - ScratchDirectorySettingsToolStripMenuItem.Text = "Configura la directory temporanea" - ManageReportsToolStripMenuItem.Text = "Gestisci rapporti" - AddToolStripMenuItem.Text = "Aggiungere" - NewFileToolStripMenuItem.Text = "Nuovo file..." - ExistingFileToolStripMenuItem.Text = "File esistente..." - ' Context menu of AppX information dialog - SaveResourceToolStripMenuItem.Text = "Salva risorsa..." - CopyToolStripMenuItem.Text = "Copia risorsa" - ' Context menu of AppX addition dialog - MicrosoftAppsToolStripMenuItem.Text = "Visita il sito Web di Microsoft Apps" - MicrosoftStoreGenerationProjectToolStripMenuItem.Text = "Visita il sito Web di Microsoft Store Generation Project" - AppxDownloadHelpToolStripMenuItem.Text = "Come si ottengono le applicazioni?" - ' New design - GreetingLabel.Text = "Ti diamo il benvenuto in questa sessione di assistenza" - LinkLabel12.Text = "PROGETTO" - LinkLabel13.Text = "IMMAGINE" - Label54.Text = "Nome:" - Label51.Text = "Posizione:" - Label53.Text = "Immagini montate?" - LinkLabel14.Text = "Fai clic qui per montare un'immagine" - Label55.Text = "Attività progetto" - LinkLabel15.Text = "Visualizza proprietà progetto" - LinkLabel16.Text = "Apri in Esplora file" - LinkLabel17.Text = "Scarica il progetto" - Label59.Text = "Non è stata montata alcuna immagine" - Label58.Text = "Per visualizzare le informazioni sull'immagine è necessario montarla" - Label57.Text = "Scelte" - LinkLabel21.Text = "Monta immagine..." - LinkLabel18.Text = "Scegli immagine montata..." - Label39.Text = "Indice immagine:" - Label43.Text = "Punto di montaggio:" - Label45.Text = "Versione:" - Label42.Text = "Nome:" - Label40.Text = "Descrizione:" - Label56.Text = "Attività immagine" - LinkLabel20.Text = "Visualizza proprietà immagine" - LinkLabel19.Text = "Smonta immagine" - GroupBox4.Text = "Operazioni immagine" - Button26.Text = "Monta immagine..." - Button27.Text = "Applica modifiche attuali" - Button28.Text = "Applica e smonta l'immagine" - Button29.Text = "Smonta immagine eliminando le modifiche" - Button25.Text = "Ricarica la sessione di assistenza" - Button24.Text = "Cambia gli indici dell'immagine..." - Button30.Text = "Applica immagine..." - Button31.Text = "Cattura immagine..." - Button32.Text = "Rimuovi immagini volume..." - Button33.Text = "Salva informazioni complete immagine..." - GroupBox5.Text = "Operazioni pacchetto" - Button36.Text = "Aggiungi pacchetto..." - Button34.Text = "Verifica informazioni pacchetto..." - Button38.Text = "Salva informazioni pacchetto installato..." - Button35.Text = "Rimuovi pacchetto..." - Button37.Text = "Esegui la manutenzione e la pulizia dell'archivio componenti..." - GroupBox6.Text = "Operazioni funzionali" - Button41.Text = "Attiva funzionalità..." - Button39.Text = "Verifica informazioni funzionalità..." - Button42.Text = "Salva informazioni funzionalità..." - Button40.Text = "Disattiva funzionalità..." - GroupBox7.Text = "Operazioni pacchetto AppX" - Button44.Text = "Aggiungi pacchetto AppX..." - Button45.Text = "Verifica informazioni applicazione..." - Button46.Text = "Salva informazioni pacchetto AppX installato..." - Button43.Text = "Rimuovi pacchetto AppX..." - GroupBox8.Text = "Operazioni funzionalità" - Button48.Text = "Aggiungi capacità..." - Button49.Text = "Verifica informazioni capacità..." - Button50.Text = "Salva informazioni capacità..." - Button47.Text = "Rimuovi capacità..." - GroupBox9.Text = "Operazioni driver dispositivo" - Button53.Text = "Aggiungi pacchetto driver..." - Button52.Text = "Verifica informazioni driver..." - Button54.Text = "Salva informazioni sul driver installato..." - Button51.Text = "Rimuovi driver..." - GroupBox10.Text = "Operazioni di Windows PE" - Button55.Text = "Verifica configurazione" - Button56.Text = "Salva configurazione..." - Button57.Text = "Imposta percorso destinazione..." - Button58.Text = "Imposta spazio temporaneo..." - End Select + Sub ApplyLanguage(cultureCode As String) + Dim requestedCultureCode As String = LocalizationService.NormalizeCultureCode(cultureCode) + Dim validationMessage As String = "" + If Not LocalizationService.ValidateLanguage(requestedCultureCode, validationMessage) Then + DynaLog.LogMessage("The requested language file failed validation. Keeping the default language.") + MessageBox.Show(validationMessage, + "Incompatible or invalid DISMTools language file", + MessageBoxButtons.OK, + MessageBoxIcon.Error) + requestedCultureCode = LocalizationService.DefaultCultureCode + End If + + LanguageCode = requestedCultureCode + LocalizationService.SetLanguageByCultureCode(LanguageCode) + DynaLog.LogMessage("Changing program language... (culture code: " & LanguageCode & ")") + DynaLog.LogMessage("Language culture is " & LanguageCode & ". Applying localization resources...") + FileToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface").Upper("File.Label", AllCaps) + ProjectToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface").Upper("Project.Label", AllCaps) + CommandsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface").Upper("Commands.Label", AllCaps) + ToolsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface").Upper("Tools.Label", AllCaps) + HelpToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface").Upper("Help.Label", AllCaps) + InvalidSettingsTSMI.Text = LocalizationService.ForSection("Main.Interface")("Settings.Detected.Label") + NewProjectToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("NewProject.Button") + OpenExistingProjectToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Open.Existing.Project.Label") + ManageOnlineInstallationToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Manage.Online.Install.Label") + ManageOfflineInstallationToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Manage.Ffline.Button") + RecentProjectsListMenu.Text = LocalizationService.ForSection("Main.Interface")("RecentProjects.Label") + SaveProjectToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("SaveProject.Button") + SaveProjectasToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("SaveProjectas.Button") + ExitToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Exit.Label") + ViewProjectFilesInFileExplorerToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("View.Project.Files.Label") + UnloadProjectToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("UnloadProject.Button") + SwitchImageIndexesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Switch.Image.Indexes.Button") + ProjectPropertiesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ProjectProps.Label") + ImagePropertiesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ImageProps.Label") + ImageManagementToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ImageManagement.Label") + OSPackagesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("OSPackages.Label") + ProvisioningPackagesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ProvPackages.Label") + AppPackagesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("AppxPackages.Label") + AppPatchesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("AppMspservicing.Label") + DefaultAppAssociationsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("DefaultApp.Assoc.Label") + LanguagesAndRegionSettingsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Languages.Regional.Label") + CapabilitiesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Capabilities.Label") + WindowsEditionsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Windows.Label") + DriversToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Drivers.Label") + UnattendedAnswerFilesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Unattended.Answer.Label") + WindowsPEServicingToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("WindowsPE.Label") + OSUninstallToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("OSUninstall.Label") + ReservedStorageToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ReservedStorage.Label") + AppendImage.Text = LocalizationService.ForSection("Main.Interface")("Append.Capture.Dir.Button") + ApplyFFU.Text = LocalizationService.ForSection("Main.Interface")("ApplyFfusfufile.Button") + ApplyImage.Text = LocalizationService.ForSection("Main.Interface")("ApplyWimswmfile.Button") + CaptureCustomImage.Text = LocalizationService.ForSection("Main.Interface")("Capture.Incremental.Button") + CaptureFFU.Text = LocalizationService.ForSection("Main.Interface")("Capture.Partitions.Button") + CaptureImage.Text = LocalizationService.ForSection("Main.Interface")("Capture.Image.Drive.Button") + CleanupMountpoints.Text = LocalizationService.ForSection("Main.Interface")("Delete.Resources.Button") + CommitImage.Text = LocalizationService.ForSection("Main.Interface")("Apply.Changes.Image.Button") + DeleteImage.Text = LocalizationService.ForSection("Main.Interface")("Delete.VolumeImages.Button") + ExportImage.Text = LocalizationService.ForSection("Main.Interface")("ExportImage.Button") + GetImageInfo.Text = LocalizationService.ForSection("Main.Interface")("Get.Image.Button") + GetWIMBootEntry.Text = LocalizationService.ForSection("Main.Interface")("Get.WIM.Boot.Button") + ListImage.Text = LocalizationService.ForSection("Main.Interface")("List.Files.Dirs.Button") + MountImage.Text = LocalizationService.ForSection("Main.Interface")("MountImage.Button") + OptimizeFFU.Text = LocalizationService.ForSection("Main.Interface")("Optimize.FFU.File.Button") + OptimizeImage.Text = LocalizationService.ForSection("Main.Interface")("OptimizeImage.Button") + RemountImage.Text = LocalizationService.ForSection("Main.Interface")("Remount.Image.Button") + SplitFFU.Text = LocalizationService.ForSection("Main.Interface")("Split.FFU.File.Button") + SplitImage.Text = LocalizationService.ForSection("Main.Interface")("Split.WIM.File.Button") + UnmountImage.Text = LocalizationService.ForSection("Main.Interface")("UnmountImage.Button") + UpdateWIMBootEntry.Text = LocalizationService.ForSection("Main.Interface")("Update.WIM.Boot.Button") + ApplySiloedPackage.Text = LocalizationService.ForSection("Main.Interface")("Apply.Siloed.Prov.Button") + SaveImageInformationToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Save.Image.Button") + GetPackages.Text = LocalizationService.ForSection("Main.Interface")("GetPackages.Button") + AddPackage.Text = LocalizationService.ForSection("Main.Interface")("AddPackage.Button") + RemovePackage.Text = LocalizationService.ForSection("Main.Interface")("RemovePackage.Button") + GetFeatures.Text = LocalizationService.ForSection("Main.Interface")("GetFeatures.Button") + EnableFeature.Text = LocalizationService.ForSection("Main.Interface")("EnableFeature.Button") + DisableFeature.Text = LocalizationService.ForSection("Main.Interface")("DisableFeature.Button") + CleanupImage.Text = LocalizationService.ForSection("Main.Interface")("CleanupRecovery.Button") + AddProvisioningPackage.Text = LocalizationService.ForSection("Main.Interface")("Add.Prov.Package.Button") + GetProvisioningPackageInfo.Text = LocalizationService.ForSection("Main.Interface")("Get.Prov.Package.Button") + ApplyCustomDataImage.Text = LocalizationService.ForSection("Main.Interface")("Apply.CustomData.Button") + GetProvisionedAppxPackages.Text = LocalizationService.ForSection("Main.Interface")("Get.App.Package.Button") + AddProvisionedAppxPackage.Text = LocalizationService.ForSection("Main.Interface")("Add.Provisioned.App.Button") + RemoveProvisionedAppxPackage.Text = LocalizationService.ForSection("Main.Interface")("Remove.Prov.App.Button") + OptimizeProvisionedAppxPackages.Text = LocalizationService.ForSection("Main.Interface")("Optimize.Provisioned.Button") + SetProvisionedAppxDataFile.Text = LocalizationService.ForSection("Main.Interface")("Add.CustomData.File.Button") + CheckAppPatch.Text = LocalizationService.ForSection("Main.Interface")("Get.App.Patch.Button") + GetAppPatchInfo.Text = LocalizationService.ForSection("Main.Interface")("Detailed.App.Patch.Button") + GetAppPatches.Text = LocalizationService.ForSection("Main.Interface")("Basic.Installed.App.Button") + GetAppInfo.Text = LocalizationService.ForSection("Main.Interface")("Get.Detailed.Button") + GetApps.Text = LocalizationService.ForSection("Main.Interface")("Get.Basic.Windows.Button") + ExportDefaultAppAssociations.Text = LocalizationService.ForSection("Main.Interface")("Export.Default.Button") + GetDefaultAppAssociations.Text = LocalizationService.ForSection("Main.Interface")("DefaultApp.Assoc.Button") + ImportDefaultAppAssociations.Text = LocalizationService.ForSection("Main.Interface")("Import.Default.Button") + RemoveDefaultAppAssociations.Text = LocalizationService.ForSection("Main.Interface")("Remove.Default.Button") + GetIntl.Text = LocalizationService.ForSection("Main.Interface")("Intl.Settings.Button") + SetUILang.Text = LocalizationService.ForSection("Main.Interface")("SetUilanguage.Button") + SetUILangFallback.Text = LocalizationService.ForSection("Main.Interface")("Set.Default.Button") + SetSysUILang.Text = LocalizationService.ForSection("Main.Interface")("Set.System.Preferred.Button") + SetSysLocale.Text = LocalizationService.ForSection("Main.Interface")("Set.System.Locale.Button") + SetUserLocale.Text = LocalizationService.ForSection("Main.Interface")("Set.User.Locale.Button") + SetInputLocale.Text = LocalizationService.ForSection("Main.Interface")("Set.Input.Locale.Button") + SetAllIntl.Text = LocalizationService.ForSection("Main.Interface")("Set.UI.Button") + SetTimeZone.Text = LocalizationService.ForSection("Main.Interface")("Set.Default.Time.Button") + SetSKUIntlDefaults.Text = LocalizationService.ForSection("Main.Interface")("Set.Default.Languages.Button") + SetLayeredDriver.Text = LocalizationService.ForSection("Main.Interface")("Set.Layered.Driver.Button") + GenLangINI.Text = LocalizationService.ForSection("Main.Interface")("Generate.Lang.Ini.Button") + SetSetupUILang.Text = LocalizationService.ForSection("Main.Interface")("Set.Default.Setup.Button") + AddCapability.Text = LocalizationService.ForSection("Main.Interface")("AddCapability.Button") + ExportSource.Text = LocalizationService.ForSection("Main.Interface")("Export.Capabilities.Button") + GetCapabilities.Text = LocalizationService.ForSection("Main.Interface")("GetCapabilities.Button") + RemoveCapability.Text = LocalizationService.ForSection("Main.Interface")("RemoveCapability.Button") + GetCurrentEdition.Text = LocalizationService.ForSection("Main.Interface")("Get.Edition.Button") + GetTargetEditions.Text = LocalizationService.ForSection("Main.Interface")("Get.Upgrade.Targets.Button") + SetEdition.Text = LocalizationService.ForSection("Main.Interface")("UpgradeImage.Button") + SetProductKey.Text = LocalizationService.ForSection("Main.Interface")("SetProductKey.Button") + GetDrivers.Text = LocalizationService.ForSection("Main.Interface")("GetDrivers.Button") + AddDriver.Text = LocalizationService.ForSection("Main.Interface")("AddDriver.Button") + RemoveDriver.Text = LocalizationService.ForSection("Main.Interface")("RemoveDriver.Button") + ExportDriver.Text = LocalizationService.ForSection("Main.Interface")("Export.DriverPackages.Button") + ImportDriver.Text = LocalizationService.ForSection("Main.Interface")("Import.DriverPackages.Button") + ApplyUnattend.Text = LocalizationService.ForSection("Main.Interface")("Apply.Unattended.Button") + GetPESettings.Text = LocalizationService.ForSection("Main.Interface")("GetSettings.Button") + SetScratchSpace.Text = LocalizationService.ForSection("Main.Interface")("SetScratchSpace.Button") + SetTargetPath.Text = LocalizationService.ForSection("Main.Interface")("Set.Target.Path.Button") + GetOSUninstallWindow.Text = LocalizationService.ForSection("Main.Interface")("Get.Uninstall.Window.Button") + InitiateOSUninstall.Text = LocalizationService.ForSection("Main.Interface")("Initiate.Uninstall.Button") + RemoveOSUninstall.Text = LocalizationService.ForSection("Main.Interface")("Remove.Roll.Back.Button") + SetOSUninstallWindow.Text = LocalizationService.ForSection("Main.Interface")("Set.Uninstall.Window.Button") + SetReservedStorageState.Text = LocalizationService.ForSection("Main.Interface")("Set.Reserved.Storage.Button") + GetReservedStorageState.Text = LocalizationService.ForSection("Main.Interface")("Get.Reserved.Storage.Button") + AddEdge.Text = LocalizationService.ForSection("Main.Interface")("AddEdge.Button") + AddEdgeBrowser.Text = LocalizationService.ForSection("Main.Interface")("Add.Edge.Browser.Button") + AddEdgeWebView.Text = LocalizationService.ForSection("Main.Interface")("Add.Edge.Web.Button") + ImageConversionToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ImageConversion.Label") + MergeSWM.Text = LocalizationService.ForSection("Main.Interface")("MergeSwmfiles.Button") + RemountImageWithWritePermissionsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Remount.Image.Write.Label") + CommandShellToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("CommandConsole.Label") + UnattendedAnswerFileManagerToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Unattended.AnswerFile.Label") + UnattendedAnswerFileCreatorToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Unattended.Creator.Label") + RegCplToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Manage.Image.Registry.Button") + WebResourcesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("WebResources.Label") + LanguagesAndOptionalFeaturesISOToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Download.Languages.Button") + LanguagesAndFODWin10ToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Download.FOD.Button") + ReportManagerToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ReportManager.Label") + MountedImageManagerTSMI.Text = LocalizationService.ForSection("Main.Interface")("Mounted.Image.Manager.Label") + CreateDiscImageToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Create.Disc.Image.Button") + CreateTestingEnvironmentToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Create.Testing.Button") + WimScriptEditorCommand.Text = LocalizationService.ForSection("Main.Interface")("Config.List.Editor.Label") + OptionsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Options.Label") + HelpTopicsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("HelpTopics.Label") + AboutDISMToolsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("DISM.Tools.Label") + ISFix.Text = LocalizationService.ForSection("Main.Interface")("MoreInfo.Label") + ISHelp.Text = LocalizationService.ForSection("Main.Interface")("WhatsThis.Label") + ReportFeedbackToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Report.Feedback.Opens.Label") + ContributeToTheHelpSystemToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Contribute.Help.System.Label") + TourActionsTSMI.Text = LocalizationService.ForSection("Main.Interface")("TourActions.Label") + ServerStatusTSMI.Text = LocalizationService.ForSection("Main.Interface").Format("Tour.Server.Active.Label", tourServer.GetTcpPort()) + RestartDTTourTSMI.Text = LocalizationService.ForSection("Main.Interface")("RestartTour.Label") + StopDTTourServerTSMI.Text = LocalizationService.ForSection("Main.Interface")("Stop.Tour.Server.Label") + LabelHeader1.Text = LocalizationService.ForSection("Main.Interface")("Begin.Label") + Label10.Text = LocalizationService.ForSection("Main.Interface")("RecentProjects.Label") + NewProjLink.Text = LocalizationService.ForSection("Main.Interface")("NewProject.Link") + ExistingProjLink.Text = LocalizationService.ForSection("Main.Interface")("Open.Existing.Project.Link") + OnlineInstMgmt.Text = LocalizationService.ForSection("Main.Interface")("Manage.Online.Install.Link") + OfflineInstMgmt.Text = LocalizationService.ForSection("Main.Interface")("Manage.Offline.Button.Button") + RecentRemoveLink.Text = LocalizationService.ForSection("Main.Interface")("RemoveEntry.Link") + ToolStripButton1.Text = LocalizationService.ForSection("Main.Interface")("CloseTab.Label") + ToolStripButton2.Text = LocalizationService.ForSection("Main.Interface")("SaveProject.Label") + ToolStripButton3.Text = LocalizationService.ForSection("Main.Interface")("UnloadProject.Label") + ToolStripButton3.ToolTipText = LocalizationService.ForSection("Main.Interface")("Unload.Project.Tooltip") + ToolStripButton4.Text = LocalizationService.ForSection("Main.Interface")("Show.Progress.Window.Label") + RefreshViewTSB.Text = LocalizationService.ForSection("Main.Interface")("RefreshView.Label") + ExpandCollapseTSB.Text = LocalizationService.ForSection("Main.Interface")("Expand.Label") + UpdateLink.Text = LocalizationService.ForSection("Main.Interface")("NewVersion.Available.Link") + UpdateLink.LinkArea = LocalizationService.GetLinkArea(UpdateLink.Text, LocalizationService.ForSection("Main.CheckForUpdates")("Learn.Link")) + PkgBasicInfo.Text = LocalizationService.ForSection("Main.Interface")("Get.Basic.Label") + PkgDetailedInfo.Text = LocalizationService.ForSection("Main.Interface")("Get.Detailed.Specific.Label") + CommitAndUnmountTSMI.Text = LocalizationService.ForSection("Main.Interface")("CommitImage.Label") + DiscardAndUnmountTSMI.Text = LocalizationService.ForSection("Main.Interface")("Discard.Changes.Label") + UnmountSettingsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("UnmountSettings.Button") + ViewPackageDirectoryToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("View.Package.Dir.Label") + GetImageFileInformationToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Get.ImageFile.Button") + SaveCompleteImageInformationToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Save.Complete.Image.Button") + CreateDiscImageWithThisFileToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Create.Disc.ImageFile.Button") + OpenFileDialog1.Title = LocalizationService.ForSection("Main.Interface")("Project.File.Load.Title") + LocalMountDirFBD.Description = LocalizationService.ForSection("Main.Interface")("MountDir.Description") + If Not ImgBW.IsBusy And areBackgroundProcessesDone Then + BGProcDetails.Label2.Text = LocalizationService.ForSection("Main.Interface")("Image.Processes.Label") + End If + MenuDesc.Text = LocalizationService.ForSection("Main.Interface")("Ready.Label") + AccessDirectoryToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("AccessDirectory.Label") + UnloadProjectToolStripMenuItem1.Text = LocalizationService.ForSection("Main.Interface")("UnloadProject.Label") + CopyDeploymentToolsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Copy.Deployment.Tools.Label") + OfAllArchitecturesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("AllArchitectures.Label") + OfSelectedArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Selected.Architecture.Label") + ForX86ArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Xarchitecture.Label") + ForAmd64ArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Amarkdown.Architecture.Label") + ForARMArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ARM.Label") + ForARM64ArchitectureToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ARM64.Label") + ImageOperationsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ImageOperations.Label") + MountImageToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("MountImage.Button") + UnmountImageToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("UnmountImage.Button") + RemoveVolumeImagesToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Remove.VolumeImages.Button") + SwitchImageIndexesToolStripMenuItem1.Text = LocalizationService.ForSection("Main.Interface")("Switch.Image.Indexes.Button") + UnattendedAnswerFilesToolStripMenuItem1.Text = LocalizationService.ForSection("Main.Interface")("Unattended.Answer.Label") + ManageToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Manage.Label") + CreationWizardToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Create.Label") + ScratchDirectorySettingsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Configure.Scratch.Dir.Label") + ManageReportsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ManageReports.Label") + AddToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Add.Button") + NewFileToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("NewFile.Button") + ExistingFileToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("ExistingFile.Button") + SaveResourceToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("SaveResource.Button") + CopyToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("CopyResource.Label") + MicrosoftAppsToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Visit.Microsoft.Apps.Label") + MicrosoftStoreGenerationProjectToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Visit.Microsoft.Label") + AppxDownloadHelpToolStripMenuItem.Text = LocalizationService.ForSection("Main.Interface")("Iget.Apps.Label") + GreetingLabel.Text = LocalizationService.ForSection("Main.Interface")("Welcome.Servicing.Label") + LinkLabel12.Text = LocalizationService.ForSection("Main.Interface")("Project.Link") + LinkLabel13.Text = LocalizationService.ForSection("Main.Interface")("Image.Link") + Label54.Text = LocalizationService.ForSection("Main.Interface")("Name.Label") + Label51.Text = LocalizationService.ForSection("Main.Interface")("Location.Label") + Label53.Text = LocalizationService.ForSection("Main.Interface")("ImagesMounted.Label") + LinkLabel14.Text = LocalizationService.ForSection("Main.Interface")("Mount.Image.Link") + Label55.Text = LocalizationService.ForSection("Main.Interface")("ProjectTasks.Label") + LinkLabel15.Text = LocalizationService.ForSection("Main.Interface")("View.Project.Props.Link") + LinkLabel16.Text = LocalizationService.ForSection("Main.Interface")("Open.File.Explorer.Link") + LinkLabel17.Text = LocalizationService.ForSection("Main.Interface")("UnloadProject.Link") + Label59.Text = LocalizationService.ForSection("Main.Interface")("ImageMounted.Label") + Label58.Text = LocalizationService.ForSection("Main.Interface")("Mount.Image.Order.Label") + Label57.Text = LocalizationService.ForSection("Main.Interface")("Choices.Label") + LinkLabel21.Text = LocalizationService.ForSection("Main.Interface")("MountImage.Link") + LinkLabel18.Text = LocalizationService.ForSection("Main.Interface")("Pick.Mounted.Image.Link") + Label39.Text = LocalizationService.ForSection("Main.Interface")("ImageIndex.Label") + Label43.Text = LocalizationService.ForSection("Main.Interface")("MountPoint.Label") + Label45.Text = LocalizationService.ForSection("Main.Interface")("Version.Label") + Label42.Text = LocalizationService.ForSection("Main.Interface")("Name.Label") + Label40.Text = LocalizationService.ForSection("Main.Interface")("Description.Label") + Label56.Text = LocalizationService.ForSection("Main.Interface")("ImageTasks.Label") + LinkLabel20.Text = LocalizationService.ForSection("Main.Interface")("View.Image.Props.Link") + LinkLabel19.Text = LocalizationService.ForSection("Main.Interface")("UnmountImage.Link") + GroupBox4.Text = LocalizationService.ForSection("Main.Interface")("ImageOperations.Group") + Button26.Text = LocalizationService.ForSection("Main.Interface")("MountImage.Button") + Button27.Text = LocalizationService.ForSection("Main.Interface")("Commit.Changes.Button") + Button28.Text = LocalizationService.ForSection("Main.Interface")("CommitImage.Button") + Button29.Text = LocalizationService.ForSection("Main.Interface")("Unmount.Image.Button") + Button25.Text = LocalizationService.ForSection("Main.Interface")("Reload.Servicing.Button") + Button24.Text = LocalizationService.ForSection("Main.Interface")("Switch.Image.Indexes.Button") + Button30.Text = LocalizationService.ForSection("Main.Interface")("ApplyImage.Button") + Button31.Text = LocalizationService.ForSection("Main.Interface")("CaptureImage.Button") + Button32.Text = LocalizationService.ForSection("Main.Interface")("Remove.VolumeImages.Button") + Button33.Text = LocalizationService.ForSection("Main.Interface")("Save.Complete.Image.Button") + GroupBox5.Text = LocalizationService.ForSection("Main.Interface")("Package.Operations.Group") + Button36.Text = LocalizationService.ForSection("Main.Interface")("AddPackage.Button") + Button34.Text = LocalizationService.ForSection("Main.Interface")("Get.Package.Button") + Button38.Text = LocalizationService.ForSection("Main.Interface")("Save.Installed.Button") + Button35.Text = LocalizationService.ForSection("Main.Interface")("RemovePackage.Button") + Button37.Text = LocalizationService.ForSection("Main.Interface")("Component.Store.Maint.Button") + GroupBox6.Text = LocalizationService.ForSection("Main.Interface")("Feature.Operations.Group") + Button41.Text = LocalizationService.ForSection("Main.Interface")("EnableFeature.Button") + Button39.Text = LocalizationService.ForSection("Main.Interface")("Get.Feature.Button") + Button42.Text = LocalizationService.ForSection("Main.Interface")("Save.Feature.Button") + Button40.Text = LocalizationService.ForSection("Main.Interface")("DisableFeature.Button") + GroupBox7.Text = LocalizationService.ForSection("Main.Interface")("AppX.Package.Operations") + Button44.Text = LocalizationService.ForSection("Main.Interface")("Add.AppX.Package.Button") + Button45.Text = LocalizationService.ForSection("Main.Interface")("Get.App.Button") + Button46.Text = LocalizationService.ForSection("Main.Interface")("Save.Installed.AppX.Button") + Button43.Text = LocalizationService.ForSection("Main.Interface")("Remove.AppX.Package.Button") + GroupBox8.Text = LocalizationService.ForSection("Main.Interface")("Capability.Operations.Group") + Button48.Text = LocalizationService.ForSection("Main.Interface")("AddCapability.Button") + Button49.Text = LocalizationService.ForSection("Main.Interface")("Get.Capability.Button") + Button50.Text = LocalizationService.ForSection("Main.Interface")("Save.Capability.Button") + Button47.Text = LocalizationService.ForSection("Main.Interface")("RemoveCapability.Button") + GroupBox9.Text = LocalizationService.ForSection("Main.Interface")("DriverOperations.Group") + Button53.Text = LocalizationService.ForSection("Main.Interface")("AddDriverPackage.Button") + Button52.Text = LocalizationService.ForSection("Main.Interface")("Get.Driver.Button") + Button54.Text = LocalizationService.ForSection("Main.Interface")("Save.Installed.Driver.Button") + Button51.Text = LocalizationService.ForSection("Main.Interface")("RemoveDriver.Button") + GroupBox10.Text = LocalizationService.ForSection("Main.Interface")("Windows.Group") + Button55.Text = LocalizationService.ForSection("Main.Interface")("GetConfig.Button") + Button56.Text = LocalizationService.ForSection("Main.Interface")("SaveConfig.Button") + Button57.Text = LocalizationService.ForSection("Main.Interface")("Set.Target.Path.Button") + Button58.Text = LocalizationService.ForSection("Main.Interface")("SetScratchSpace.Button") If OnlineManagement Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = If(IsImageMounted, "Yes", "No") - Text = "Online installation - DISMTools" - Label41.Text = "(Online installation)" - Label47.Text = "(Online installation)" - Label49.Text = "(Online installation)" - Case "ESN" - Label50.Text = If(IsImageMounted, "Sí", "No") - Text = "Instalación activa - DISMTools" - Label41.Text = "(Instalación activa)" - Label47.Text = "(Instalación activa)" - Label49.Text = "(Instalación activa)" - Case "FRA" - Label50.Text = If(IsImageMounted, "Oui", "Non") - Text = "Installation en ligne - DISMTools" - Label41.Text = "(Installation en ligne)" - Label47.Text = "(Installation en ligne)" - Label49.Text = "(Installation en ligne)" - Case "PTB", "PTG" - Label50.Text = If(IsImageMounted, "Sim", "Não") - Text = "Instalação em linha - DISMTools" - Label41.Text = "(Instalação em linha)" - Label47.Text = "(Instalação em linha)" - Label49.Text = "(Instalação em linha)" - Case "ITA" - Label50.Text = If(IsImageMounted, "Sì", "No") - Text = "Installazione online - DISMTools" - Label41.Text = "(Installazione online)" - Label47.Text = "(Installazione online)" - Label49.Text = "(Installazione online)" - End Select - Case 1 - Label50.Text = If(IsImageMounted, "Yes", "No") - Text = "Online installation - DISMTools" - Label41.Text = "(Online installation)" - Label47.Text = "(Online installation)" - Label49.Text = "(Online installation)" - Case 2 - Label50.Text = If(IsImageMounted, "Sí", "No") - Text = "Instalación activa - DISMTools" - Label41.Text = "(Instalación activa)" - Label47.Text = "(Instalación activa)" - Label49.Text = "(Instalación activa)" - Case 3 - Label50.Text = If(IsImageMounted, "Oui", "Non") - Text = "Installation en ligne - DISMTools" - Label41.Text = "(Installation en ligne)" - Label47.Text = "(Installation en ligne)" - Label49.Text = "(Installation en ligne)" - Case 4 - Label50.Text = If(IsImageMounted, "Sim", "Não") - Text = "Instalação em linha - DISMTools" - Label41.Text = "(Instalação em linha)" - Label47.Text = "(Instalação em linha)" - Label49.Text = "(Instalação em linha)" - Case 5 - Label50.Text = If(IsImageMounted, "Sì", "No") - Text = "Installazione online - DISMTools" - Label41.Text = "(Installazione online)" - Label47.Text = "(Installazione online)" - Label49.Text = "(Installazione online)" - End Select + Dim onlineMountedText As String = LocalizationService.ForSection("Main.Interface")("Yes.Button") + Dim onlineNotMountedText As String = LocalizationService.ForSection("Main.Interface")("No.Button") + Label50.Text = If(IsImageMounted, onlineMountedText, onlineNotMountedText) + Text = LocalizationService.ForSection("Main.OnlineManagement.Start")("Install.DISM.Tools.Label") + Label41.Text = LocalizationService.ForSection("Main.OnlineManagement.Start")("Install.Label") + Label47.Text = LocalizationService.ForSection("Main.OnlineManagement.Start")("Install.Label") + Label49.Text = LocalizationService.ForSection("Main.OnlineManagement.Start")("Install.Label") ElseIf OfflineManagement Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = If(IsImageMounted, "Yes", "No") - Text = "Offline installation - DISMTools" - Label41.Text = "(Offline installation)" - Label46.Text = "(Offline installation)" - Label47.Text = "(Offline installation)" - Label49.Text = "(Offline installation)" - Case "ESN" - Label50.Text = If(IsImageMounted, "Sí", "No") - Text = "Instalación fuera de línea - DISMTools" - Label41.Text = "(Instalación fuera de línea)" - Label46.Text = "(Instalación fuera de línea)" - Label47.Text = "(Instalación fuera de línea)" - Label49.Text = "(Instalación fuera de línea)" - Case "FRA" - Label50.Text = If(IsImageMounted, "Oui", "Non") - Text = "Installation hors ligne - DISMTools" - Label41.Text = "(Installation hors ligne)" - Label46.Text = "(Installation hors ligne)" - Label47.Text = "(Installation hors ligne)" - Label49.Text = "(Installation hors ligne)" - Case "PTB", "PTG" - Label50.Text = If(IsImageMounted, "Sim", "Não") - Text = "Instalação offline - DISMTools" - Label41.Text = "(Instalação offline)" - Label46.Text = "(Instalação offline)" - Label47.Text = "(Instalação offline)" - Label49.Text = "(Instalação offline)" - Case "ITA" - Label50.Text = If(IsImageMounted, "Sì", "No") - Text = "Installazione offline - DISMTools" - Label41.Text = "(Installazione offline)" - Label46.Text = "(Installazione offline)" - Label47.Text = "(Installazione offline)" - Label49.Text = "(Installazione offline)" - End Select - Case 1 - Label50.Text = If(IsImageMounted, "Yes", "No") - Text = "Online installation - DISMTools" - Label41.Text = "(Offline installation)" - Label46.Text = "(Offline installation)" - Label47.Text = "(Offline installation)" - Label49.Text = "(Offline installation)" - Case 2 - Label50.Text = If(IsImageMounted, "Sí", "No") - Text = "Instalación fuera de línea - DISMTools" - Label41.Text = "(Instalación fuera de línea)" - Label46.Text = "(Instalación fuera de línea)" - Label47.Text = "(Instalación fuera de línea)" - Label49.Text = "(Instalación fuera de línea)" - Case 3 - Label50.Text = If(IsImageMounted, "Oui", "Non") - Text = "Installation hors ligne - DISMTools" - Label41.Text = "(Installation hors ligne)" - Label46.Text = "(Installation hors ligne)" - Label47.Text = "(Installation hors ligne)" - Label49.Text = "(Installation hors ligne)" - Case 4 - Label50.Text = If(IsImageMounted, "Sim", "Não") - Text = "Instalação offline - DISMTools" - Label41.Text = "(Instalação offline)" - Label46.Text = "(Instalação offline)" - Label47.Text = "(Instalação offline)" - Label49.Text = "(Instalação offline)" - Case 5 - Label50.Text = If(IsImageMounted, "Sì", "No") - Text = "Installazione offline - DISMTools" - Label41.Text = "(Installazione offline)" - Label46.Text = "(Installazione offline)" - Label47.Text = "(Installazione offline)" - Label49.Text = "(Installazione offline)" - End Select + Dim offlineMountedText As String = LocalizationService.ForSection("Main.Interface")("Offline.Management.Button") + Dim offlineNotMountedText As String = LocalizationService.ForSection("Main.Interface")("No.Button") + Label50.Text = If(IsImageMounted, offlineMountedText, offlineNotMountedText) + Text = LocalizationService.ForSection("Main.OfflineManagement")("OfflineInstall.Label") + Label41.Text = LocalizationService.ForSection("Main.OfflineManagement")("Install.Label") + Label46.Text = LocalizationService.ForSection("Main.OfflineManagement")("Install.Label") + Label47.Text = LocalizationService.ForSection("Main.OfflineManagement")("Install.Label") + Label49.Text = LocalizationService.ForSection("Main.OfflineManagement")("Install.Label") End If - ' Infinity Home -- don't refresh computer information - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ChangeComputerNameLink.Text = "Rename" - Label1.Text = "Domain Membership:" - Label2.Text = "Workgroup/Domain:" - Label3.Text = "IP Address Configuration:" - Label4.Text = "Explore and get started" - Label5.Text = "Stay up-to-date" - Label9.Text = "Fact of the day" - LinkLabel27.Text = "Learn what's new in this release" - LinkLabel28.Text = "Get started with DISMTools and image servicing" - LinkLabel29.Text = "Manage your current installation" - LinkLabel30.Text = "Manage external Windows installations" - Label12.Text = "Learn by watching videos" - Label6.Text = "Video content could not be loaded." - Label7.Text = "The news feed could not be loaded." - LinkLabel31.Text = "Learn more" - LinkLabel32.Text = "Retry" - LinkLabel33.Text = "Retry" - LinkLabel34.Text = "Learn more" - Case "ESN" - ChangeComputerNameLink.Text = "Cambiar nombre" - Label1.Text = "Membresía de dominio:" - Label2.Text = "Grupo de trabajo/dominio:" - Label3.Text = "Configuración de dirección IP:" - Label4.Text = "Explore y comience" - Label5.Text = "Manténgase informado" - Label9.Text = "Dato del día" - LinkLabel27.Text = "Aprenda qué hay de nuevo en esta versión" - LinkLabel28.Text = "Comience con DISMTools y con el servicio de imágenes" - LinkLabel29.Text = "Administre su instalación actual" - LinkLabel30.Text = "Administre instalaciones externas" - Label12.Text = "Aprenda viendo vídeos (en inglés)" - Label6.Text = "No se han podido cargar los vídeos." - Label7.Text = "No se han podido cargar las noticias." - LinkLabel31.Text = "Saber más" - LinkLabel32.Text = "Intentarlo de nuevo" - LinkLabel33.Text = "Intentarlo de nuevo" - LinkLabel34.Text = "Saber más" - Case "FRA" - ChangeComputerNameLink.Text = "Renommer" - Label1.Text = "Appartenance au domaine :" - Label2.Text = "Groupe de travail/Domaine :" - Label3.Text = "Configuration de l'adresse IP :" - Label4.Text = "Découvrir et commencer" - Label5.Text = "Rester à jour" - Label9.Text = "Le fait du jour" - LinkLabel27.Text = "Découvrez les nouveautés de cette version" - LinkLabel28.Text = "Commencer avec DISMTools et la gestion des images" - LinkLabel29.Text = "Gérer votre installation actuelle" - LinkLabel30.Text = "Gérer les installations Windows externes" - Label12.Text = "Apprendre en regardant des vidéos (en anglais)" - Label6.Text = "Impossible de charger le contenu vidéo." - Label7.Text = "Impossible de charger le fil d'actualité." - LinkLabel31.Text = "En savoir plus" - LinkLabel32.Text = "Réessayer" - LinkLabel33.Text = "Réessayer" - LinkLabel34.Text = "En savoir plus" - Case "PTB", "PTG" - ChangeComputerNameLink.Text = "Renomear" - Label1.Text = "Pertença a um domínio:" - Label2.Text = "Grupo de trabalho/Domínio:" - Label3.Text = "Configuração do endereço IP:" - Label4.Text = "Explorar e começar" - Label5.Text = "Manter-se atualizado" - Label9.Text = "Curiosidade do dia" - LinkLabel27.Text = "Descubra as novidades desta versão" - LinkLabel28.Text = "Começar a utilizar o DISMTools e a manutenção de imagens" - LinkLabel29.Text = "Gerir a sua instalação atual" - LinkLabel30.Text = "Gerir instalações externas do Windows" - Label12.Text = "Aprenda assistindo a vídeos (em inglês)" - Label6.Text = "Não foi possível carregar o conteúdo de vídeo." - Label7.Text = "Não foi possível carregar o feed de notícias." - LinkLabel31.Text = "Saiba mais" - LinkLabel32.Text = "Tentar novamente" - LinkLabel33.Text = "Tentar novamente" - LinkLabel34.Text = "Saiba mais" - Case "ITA" - ChangeComputerNameLink.Text = "Rinomina" - Label1.Text = "Appartenenza al dominio:" - Label2.Text = "Gruppo di lavoro/Dominio:" - Label3.Text = "Configurazione dell'indirizzo IP:" - Label4.Text = "Esplora e inizia" - Label5.Text = "Rimani aggiornato" - Label9.Text = "Curiosità del giorno" - LinkLabel27.Text = "Scopri le novità di questa versione" - LinkLabel28.Text = "Inizia a utilizzare DISMTools e la gestione delle immagini" - LinkLabel29.Text = "Gestisci la tua installazione attuale" - LinkLabel30.Text = "Gestisci installazioni Windows esterne" - Label12.Text = "Impara guardando i video (in inglese)" - Label6.Text = "Impossibile caricare il contenuto video." - Label7.Text = "Impossibile caricare il feed delle notizie." - LinkLabel31.Text = "Ulteriori informazioni" - LinkLabel32.Text = "Riprova" - LinkLabel33.Text = "Riprova" - LinkLabel34.Text = "Ulteriori informazioni" - End Select - Case 1 - ChangeComputerNameLink.Text = "Rename" - Label1.Text = "Domain Membership:" - Label2.Text = "Workgroup/Domain:" - Label3.Text = "IP Address Configuration:" - Label4.Text = "Explore and get started" - Label5.Text = "Stay up-to-date" - Label9.Text = "Fact of the day" - LinkLabel27.Text = "Learn what's new in this release" - LinkLabel28.Text = "Get started with DISMTools and image servicing" - LinkLabel29.Text = "Manage your current installation" - LinkLabel30.Text = "Manage external Windows installations" - Label12.Text = "Learn by watching videos" - Label6.Text = "Video content could not be loaded." - Label7.Text = "The news feed could not be loaded." - LinkLabel31.Text = "Learn more" - LinkLabel32.Text = "Retry" - LinkLabel33.Text = "Retry" - LinkLabel34.Text = "Learn more" - Case 2 - ChangeComputerNameLink.Text = "Cambiar nombre" - Label1.Text = "Membresía de dominio:" - Label2.Text = "Grupo de trabajo/dominio:" - Label3.Text = "Configuración de dirección IP:" - Label4.Text = "Explore y comience" - Label5.Text = "Manténgase informado" - Label9.Text = "Dato del día" - LinkLabel27.Text = "Aprenda qué hay de nuevo en esta versión" - LinkLabel28.Text = "Comience con DISMTools y con el servicio de imágenes" - LinkLabel29.Text = "Administre su instalación actual" - LinkLabel30.Text = "Administre instalaciones externas" - Label12.Text = "Aprenda viendo vídeos (en inglés)" - Label6.Text = "No se han podido cargar los vídeos." - Label7.Text = "No se han podido cargar las noticias." - LinkLabel31.Text = "Saber más" - LinkLabel32.Text = "Intentarlo de nuevo" - LinkLabel33.Text = "Intentarlo de nuevo" - LinkLabel34.Text = "Saber más" - Case 3 - ChangeComputerNameLink.Text = "Renommer" - Label1.Text = "Appartenance au domaine :" - Label2.Text = "Groupe de travail/Domaine :" - Label3.Text = "Configuration de l'adresse IP :" - Label4.Text = "Découvrir et commencer" - Label5.Text = "Rester à jour" - Label9.Text = "Le fait du jour" - LinkLabel27.Text = "Découvrez les nouveautés de cette version" - LinkLabel28.Text = "Commencer avec DISMTools et la gestion des images" - LinkLabel29.Text = "Gérer votre installation actuelle" - LinkLabel30.Text = "Gérer les installations Windows externes" - Label12.Text = "Apprendre en regardant des vidéos (en anglais)" - Label6.Text = "Impossible de charger le contenu vidéo." - Label7.Text = "Impossible de charger le fil d'actualité." - LinkLabel31.Text = "En savoir plus" - LinkLabel32.Text = "Réessayer" - LinkLabel33.Text = "Réessayer" - LinkLabel34.Text = "En savoir plus" - Case 4 - ChangeComputerNameLink.Text = "Renomear" - Label1.Text = "Pertença a um domínio:" - Label2.Text = "Grupo de trabalho/Domínio:" - Label3.Text = "Configuração do endereço IP:" - Label4.Text = "Explorar e começar" - Label5.Text = "Manter-se atualizado" - Label9.Text = "Curiosidade do dia" - LinkLabel27.Text = "Descubra as novidades desta versão" - LinkLabel28.Text = "Começar a utilizar o DISMTools e a manutenção de imagens" - LinkLabel29.Text = "Gerir a sua instalação atual" - LinkLabel30.Text = "Gerir instalações externas do Windows" - Label12.Text = "Aprenda assistindo a vídeos (em inglês)" - Label6.Text = "Não foi possível carregar o conteúdo de vídeo." - Label7.Text = "Não foi possível carregar o feed de notícias." - LinkLabel31.Text = "Saiba mais" - LinkLabel32.Text = "Tentar novamente" - LinkLabel33.Text = "Tentar novamente" - LinkLabel34.Text = "Saiba mais" - Case 5 - ChangeComputerNameLink.Text = "Rinomina" - Label1.Text = "Appartenenza al dominio:" - Label2.Text = "Gruppo di lavoro/Dominio:" - Label3.Text = "Configurazione dell'indirizzo IP:" - Label4.Text = "Esplora e inizia" - Label5.Text = "Rimani aggiornato" - Label9.Text = "Curiosità del giorno" - LinkLabel27.Text = "Scopri le novità di questa versione" - LinkLabel28.Text = "Inizia a utilizzare DISMTools e la gestione delle immagini" - LinkLabel29.Text = "Gestisci la tua installazione attuale" - LinkLabel30.Text = "Gestisci installazioni Windows esterne" - Label12.Text = "Impara guardando i video (in inglese)" - Label6.Text = "Impossibile caricare il contenuto video." - Label7.Text = "Impossibile caricare il feed delle notizie." - LinkLabel31.Text = "Ulteriori informazioni" - LinkLabel32.Text = "Riprova" - LinkLabel33.Text = "Riprova" - LinkLabel34.Text = "Ulteriori informazioni" - End Select + ' Infinity Home + ChangeComputerNameLink.Text = LocalizationService.ForSection("Main.Interface")("Rename.Link") + Label1.Text = LocalizationService.ForSection("Main.Interface")("DomainMembership.Label") + Label2.Text = LocalizationService.ForSection("Main.Interface")("WorkgroupDomain.Label") + Label3.Text = LocalizationService.ForSection("Main.Interface")("IP.Address.Config.Label") + Label4.Text = LocalizationService.ForSection("Main.Interface")("Explore.Get.Started.Label") + Label5.Text = LocalizationService.ForSection("Main.Interface")("Stay.Up.Date.Label") + Label9.Text = LocalizationService.ForSection("Main.Interface")("FactDay.Label") + LinkLabel27.Text = LocalizationService.ForSection("Main.Interface")("Learn.Snew.Link") + LinkLabel28.Text = LocalizationService.ForSection("Main.Interface")("Get.Started.DISM.Link") + LinkLabel29.Text = LocalizationService.ForSection("Main.Interface")("Manage.Install.Link") + LinkLabel30.Text = LocalizationService.ForSection("Main.Interface")("Manage.External.Link") + Label12.Text = LocalizationService.ForSection("Main.Interface")("Learn.Watching.Videos.Label") + Label6.Text = LocalizationService.ForSection("Main.Interface")("Video.Content.Loaded.Label") + Label7.Text = LocalizationService.ForSection("Main.Interface")("News.Feed.Loaded.Label") + LinkLabel31.Text = LocalizationService.ForSection("Main.Interface")("LearnMore.Link") + LinkLabel32.Text = LocalizationService.ForSection("Main.Interface")("Retry.Button") + LinkLabel33.Text = LocalizationService.ForSection("Main.News.Load")("Retry.Button") + LinkLabel34.Text = LocalizationService.ForSection("Main.News")("LearnMore.Link") + + RefreshInfinityHomeLocalizedInformation() + RefreshNewsFeedLocalizedInformation() + End Sub + + Private Sub RefreshNewsFeedLocalizedInformation() + If Not IsHandleCreated Then Exit Sub + + Try + If HasFeedItems(FeedContents) Then RenderNewsFeed() + Catch ex As Exception + DynaLog.LogMessage("Could not refresh localized news feed information: " & ex.Message) + End Try + End Sub + + Private Sub RefreshInfinityHomeLocalizedInformation() + If Not IsHandleCreated Then Exit Sub + + Try + DisplayInfinityComputerInformation() + Catch ex As Exception + DynaLog.LogMessage("Could not refresh Infinity Home localized information: " & ex.Message) + End Try End Sub Sub CheckDTProjHeaders(DTFileName As String) @@ -8171,31 +4414,7 @@ Public Class MainForm If RegistryControlPanel.Visible Then DynaLog.LogMessage("Second check determined the image registry control panel is still open. Cannot continue loading project until it's closed") Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The image registry control panel needs to be closed before loading projects." - Case "ESN" - msg = "El panel de control del registro de la imagen debe ser cerrado antes de cargar proyectos." - Case "FRA" - msg = "Le panneau de contrôle du registre des images doit être fermé avant le chargement des projets." - Case "PTB", "PTG" - msg = "O painel de controlo do registo de imagens tem de ser fechado antes de carregar projectos." - Case "ITA" - msg = "Prima di caricare i progetti il pannello di controllo del registro immagini deve essere chiuso." - End Select - Case 1 - msg = "The image registry control panel needs to be closed before loading projects." - Case 2 - msg = "El panel de control del registro de la imagen debe ser cerrado antes de cargar proyectos." - Case 3 - msg = "Le panneau de contrôle du registre des images doit être fermé avant le chargement des projets." - Case 4 - msg = "O painel de controlo do registo de imagens tem de ser fechado antes de carregar projectos." - Case 5 - msg = "Il pannello di controllo del registro immagini deve essere chiuso prima di caricare i progetti." - End Select + msg = LocalizationService.ForSection("Main.Project.Load.Guard")("Image.Registry.Message") MsgBox(msg, vbOKOnly + vbExclamation, Text) Exit Sub End If @@ -8206,7 +4425,7 @@ Public Class MainForm CheckDTProjHeaders(DTProjPath) If isSqlServerDTProj Then DynaLog.LogMessage("We are dealing with a SQL Server Data Tools project. Cancelling project load...") - MessageBox.Show("The specified project is not a DISMTools project.", Text, MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("Main.Messages")("Project.DISM.Tools.Label"), Text, MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If SaveProjectToolStripMenuItem.Enabled = True @@ -8219,31 +4438,7 @@ Public Class MainForm Text &= " (debug mode)" End If DynaLog.LogMessage("Project name: " & prjName) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Loading project: " & Quote & prjName & Quote - Case "ESN" - PleaseWaitDialog.Label2.Text = "Cargando proyecto: " & Quote & prjName & Quote - Case "FRA" - PleaseWaitDialog.Label2.Text = "Chargement du projet en cours : " & Quote & prjName & Quote - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Carregar projeto: " & Quote & prjName & Quote - Case "ITA" - PleaseWaitDialog.Label2.Text = "Caricamento progetto: " & Quote & prjName & Quote - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Loading project: " & Quote & prjName & Quote - Case 2 - PleaseWaitDialog.Label2.Text = "Cargando proyecto: " & Quote & prjName & Quote - Case 3 - PleaseWaitDialog.Label2.Text = "Chargement du projet en cours : " & Quote & prjName & Quote - Case 4 - PleaseWaitDialog.Label2.Text = "Carregar projeto: " & Quote & prjName & Quote - Case 5 - PleaseWaitDialog.Label2.Text = "Caricamento progetto: " & Quote & prjName & Quote - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main.Project.Load").Format("LoadingProject.Label", prjName) PleaseWaitDialog.ShowDialog(Me) Label49.Text = prjName Label52.Text = DTProjPath @@ -8326,31 +4521,7 @@ Public Class MainForm projPath = DTProjPath projPath = projPath.Replace("\" & DTProjFileName & ".dtproj", "").Trim() DynaLog.LogMessage("Project name: " & prjName) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Loading project: " & Quote & prjName & Quote - Case "ESN" - PleaseWaitDialog.Label2.Text = "Cargando proyecto: " & Quote & prjName & Quote - Case "FRA" - PleaseWaitDialog.Label2.Text = "Chargement du projet en cours : " & Quote & prjName & Quote - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Carregar projeto: " & Quote & prjName & Quote - Case "ITA" - PleaseWaitDialog.Label2.Text = "Caricamento progetto: " & Quote & prjName & Quote - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Loading project: " & Quote & prjName & Quote - Case 2 - PleaseWaitDialog.Label2.Text = "Cargando proyecto: " & Quote & prjName & Quote - Case 3 - PleaseWaitDialog.Label2.Text = "Chargement du projet en cours : " & Quote & prjName & Quote - Case 4 - PleaseWaitDialog.Label2.Text = "Carregar projeto: " & Quote & prjName & Quote - Case 5 - PleaseWaitDialog.Label2.Text = "Caricamento progetto: " & Quote & prjName & Quote - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main.Project.Load").Format("LoadingProject.Label", prjName) PleaseWaitDialog.ShowDialog(Me) Label49.Text = prjName DynaLog.LogMessage("Detecting if images are mounted here...") @@ -8496,31 +4667,7 @@ Public Class MainForm projPath = DTProjPath projPath = projPath.Replace("\" & DTProjFileName & ".dtproj", "").Trim() DynaLog.LogMessage("Project name: " & prjName) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Loading project: " & Quote & prjName & Quote - Case "ESN" - PleaseWaitDialog.Label2.Text = "Cargando proyecto: " & Quote & prjName & Quote - Case "FRA" - PleaseWaitDialog.Label2.Text = "Chargement du projet en cours : " & Quote & prjName & Quote - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Carregar projeto: " & Quote & prjName & Quote - Case "ITA" - PleaseWaitDialog.Label2.Text = "Caricamento progetto: " & Quote & prjName & Quote - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Loading project: " & Quote & prjName & Quote - Case 2 - PleaseWaitDialog.Label2.Text = "Cargando proyecto: " & Quote & prjName & Quote - Case 3 - PleaseWaitDialog.Label2.Text = "Chargement du projet en cours : " & Quote & prjName & Quote - Case 4 - PleaseWaitDialog.Label2.Text = "Carregar projeto: " & Quote & prjName & Quote - Case 5 - PleaseWaitDialog.Label2.Text = "Caricamento progetto: " & Quote & prjName & Quote - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main.Project.Load").Format("LoadingProject.Label", prjName) PleaseWaitDialog.ShowDialog(Me) Label49.Text = prjName DynaLog.LogMessage("Detecting if images are mounted here...") @@ -8674,7 +4821,7 @@ Public Class MainForm BackgroundProcessesButton.Image = GetGlyphResource("bg_ops_complete") Else DynaLog.LogMessage("Project file doesn't exist.") - MessageBox.Show("Cannot load the project. Reason: the project was not found. It may have been moved or its folder may have been deleted.", "Project load error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1) + MessageBox.Show(LocalizationService.ForSection("Main.Messages.Validation")("Cannot.Load.Project.Message"), LocalizationService.ForSection("Main.Messages.Validation")("Project.Load.Error.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1) If DialogResult.OK Then Exit Sub End If @@ -8758,8 +4905,8 @@ Public Class MainForm ProjectValueLoadForm.EpochRTB2.Text = DateTimeOffset.FromUnixTimeSeconds(CType(ProjectValueLoadForm.RichTextBox22.Text, Long)).ToString().Replace(" +00:00", "").Trim() ProjectValueLoadForm.EpochRTB3.Text = DateTimeOffset.FromUnixTimeSeconds(CType(ProjectValueLoadForm.RichTextBox23.Text, Long)).ToString().Replace(" +00:00", "").Trim() Catch ex As Exception - ProjectValueLoadForm.EpochRTB2.Text = "Not available" - ProjectValueLoadForm.EpochRTB3.Text = "Not available" + ProjectValueLoadForm.EpochRTB2.Text = LocalizationService.ForSection("Wait")("NotAvailable.Label") + ProjectValueLoadForm.EpochRTB3.Text = LocalizationService.ForSection("Wait")("ProjectValue.Label") End Try DynaLog.LogMessage("Configured project settings:" & CrLf & ProjectValueLoadForm.RichTextBox26.Text) If Debugger.IsAttached Then @@ -8788,31 +4935,7 @@ Public Class MainForm If ImgBW.IsBusy Then DynaLog.LogMessage("Background processes are busy. Ask the user what they want to do") Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes are still gathering information about this image. Do you want to cancel them?" - Case "ESN" - msg = "Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos?" - Case "FRA" - msg = "Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ?" - Case "PTB", "PTG" - msg = "Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los?" - Case "ITA" - msg = "I processi in background stanno ancora raccogliendo informazioni sull'immagine. Vuoi annullarli?" - End Select - Case 1 - msg = "Background processes are still gathering information about this image. Do you want to cancel them?" - Case 2 - msg = "Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos?" - Case 3 - msg = "Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ?" - Case 4 - msg = "Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los?" - Case 5 - msg = "I processi in background stanno ancora raccogliendo informazioni sull'immagine. Si desidera annullarli?" - End Select + msg = LocalizationService.ForSection("Main.Project.Unload")("Bg.Procs.Still.Message") If MsgBox(msg, vbYesNo + vbQuestion, Text) = MsgBoxResult.Yes Then DynaLog.LogMessage("Cancelling background processes...") ImgBW.CancelAsync() @@ -8820,62 +4943,14 @@ Public Class MainForm DynaLog.LogMessage("User decided not to cancel background processes. Exiting procedure...") Exit Sub End If - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case "ESN" - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case "FRA" - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case "PTB", "PTG" - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case "ITA" - MenuDesc.Text = "Annullamento dei processi in background..." - End Select - Case 1 - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case 2 - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case 3 - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case 4 - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case 5 - MenuDesc.Text = "Annullamento dei processi in backround..." - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.Project.Unload")("Cancelling.Bg.Procs.Button") While ImgBW.IsBusy() ToolStripButton3.Enabled = False Application.DoEvents() Thread.Sleep(100) End While ToolStripButton3.Enabled = True - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Ready" - Case "ESN" - MenuDesc.Text = "Listo" - Case "FRA" - MenuDesc.Text = "Prêt" - Case "PTB", "PTG" - MenuDesc.Text = "Pronto" - Case "ITA" - MenuDesc.Text = "Pronto" - End Select - Case 1 - MenuDesc.Text = "Ready" - Case 2 - MenuDesc.Text = "Listo" - Case 3 - MenuDesc.Text = "Prêt" - Case 4 - MenuDesc.Text = "Pronto" - Case 5 - MenuDesc.Text = "Pronto" - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.Project.Unload")("Ready.Item") End If bwBackgroundProcessAction = 0 bwGetImageInfo = True @@ -8982,61 +5057,13 @@ Public Class MainForm End If IsImageMounted = True isProjectLoaded = True - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Online installation - DISMTools" - Case "ESN" - Text = "Instalación activa - DISMTools" - Case "FRA" - Text = "Installation en ligne - DISMTools" - Case "PTB", "PTG" - Text = "Instalação em linha - DISMTools" - Case "ITA" - Text = "Installazione online - DISMTools" - End Select - Case 1 - Text = "Online installation - DISMTools" - Case 2 - Text = "Instalación activa - DISMTools" - Case 3 - Text = "Installation en ligne - DISMTools" - Case 4 - Text = "Instalação em linha - DISMTools" - Case 5 - Text = "Installazione attiva - DISMTools" - End Select + Text = LocalizationService.ForSection("Main.OnlineManagement.Start")("Install.DISM.Tools.Label") OnlineManagement = True ' Initialize background processes bwGetImageInfo = True bwGetAdvImgInfo = True bwBackgroundProcessAction = 0 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = "Yes" - Case "ESN" - Label50.Text = "Sí" - Case "FRA" - Label50.Text = "Oui" - Case "PTB", "PTG" - Label50.Text = "Sim" - Case "ITA" - Label50.Text = "Sì" - End Select - Case 1 - Label50.Text = "Yes" - Case 2 - Label50.Text = "Sí" - Case 3 - Label50.Text = "Oui" - Case 4 - Label50.Text = "Sim" - Case 5 - Label50.Text = "Sì" - End Select + Label50.Text = LocalizationService.ForSection("Main.OnlineManagement.Start")("Yes.Button") DynaLog.LogMessage("Clearing items in project tree. We don't need them") UnpopulateProjectTree() HomePanel.Visible = False @@ -9051,41 +5078,8 @@ Public Class MainForm Refresh() ' Saving a project is not possible in online mode ToolStripButton2.Enabled = False - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label41.Text = "(Online installation)" - Label44.Text = "(Online installation)" - Case "ESN" - Label41.Text = "(Instalación activa)" - Label44.Text = "(Instalación activa)" - Case "FRA" - Label41.Text = "(Installation en ligne)" - Label44.Text = "(Installation en ligne)" - Case "PTB", "PTG" - Label41.Text = "(Instalação em linha)" - Label44.Text = "(Instalação em linha)" - Case "ITA" - Label41.Text = "(Installazione online)" - Label44.Text = "(Installazione online)" - End Select - Case 1 - Label41.Text = "(Online installation)" - Label44.Text = "(Online installation)" - Case 2 - Label41.Text = "(Instalación activa)" - Label44.Text = "(Instalación activa)" - Case 3 - Label41.Text = "(Installation en ligne)" - Label44.Text = "(Installation en ligne)" - Case 4 - Label41.Text = "(Instalação em linha)" - Label44.Text = "(Instalação em linha)" - Case 5 - Label41.Text = "(Installazione online)" - Label44.Text = "(Installazione online)" - End Select + Label41.Text = LocalizationService.ForSection("Main.OnlineManagement.Start")("Install.Label") + Label44.Text = LocalizationService.ForSection("Main.OnlineManagement.Start")("Install.Label") Panel2.Visible = False ManageOnlineInstallationToolStripMenuItem.Enabled = False DynaLog.LogMessage("Setting mount directory to disk root...") @@ -9104,31 +5098,7 @@ Public Class MainForm If RegistryControlPanel.Visible Then DynaLog.LogMessage("Second check determined the image registry control panel is still open. Cannot continue loading project until it's closed") Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The image registry control panel needs to be closed before loading this mode." - Case "ESN" - msg = "El panel de control del registro de la imagen debe ser cerrado antes de cargar este modo." - Case "FRA" - msg = "Le panneau de contrôle du registre des images doit être fermé avant de charger ce mode." - Case "PTB", "PTG" - msg = "O painel de controlo do registo de imagens tem de ser fechado antes de carregar este modo." - Case "ITA" - msg = "Prima di caricare questa modalità il pannello di controllo del registro immagini deve essere chiuso." - End Select - Case 1 - msg = "The image registry control panel needs to be closed before loading this mode." - Case 2 - msg = "El panel de control del registro de la imagen debe ser cerrado antes de cargar este modo." - Case 3 - msg = "Le panneau de contrôle du registre des images doit être fermé avant de charger ce mode." - Case 4 - msg = "O painel de controlo do registo de imagens tem de ser fechado antes de carregar este modo." - Case 5 - msg = "Prima di caricare questa modalità Il pannello di controllo del registro immagini deve essere chiuso." - End Select + msg = LocalizationService.ForSection("Main.OfflineManagement")("Image.Registry.Message") MsgBox(msg, vbOKOnly + vbExclamation, Text) Exit Sub End If @@ -9136,61 +5106,13 @@ Public Class MainForm DynaLog.LogMessage("Either the control panel was closed successfully or wasn't opened in the first place. Continuing project load...") IsImageMounted = True isProjectLoaded = True - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Offline installation - DISMTools" - Case "ESN" - Text = "Instalación fuera de línea - DISMTools" - Case "FRA" - Text = "Installation hors ligne - DISMTools" - Case "PTB", "PTG" - Text = "Instalação offline - DISMTools" - Case "ITA" - Text = "Installazione offline - DISMTools" - End Select - Case 1 - Text = "Offline installation - DISMTools" - Case 2 - Text = "Instalación fuera de línea - DISMTools" - Case 3 - Text = "Installation hors ligne - DISMTools" - Case 4 - Text = "Instalação offline - DISMTools" - Case 5 - Text = "Installazione offline - DISMTools" - End Select + Text = LocalizationService.ForSection("Main.OfflineManagement")("OfflineInstall.Label") OfflineManagement = True ' Initialize background processes bwGetImageInfo = True bwGetAdvImgInfo = True bwBackgroundProcessAction = 0 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = "Yes" - Case "ESN" - Label50.Text = "Sí" - Case "FRA" - Label50.Text = "Oui" - Case "PTB", "PTG" - Label50.Text = "Sim" - Case "ITA" - Label50.Text = "Sì" - End Select - Case 1 - Label50.Text = "Yes" - Case 2 - Label50.Text = "Sí" - Case 3 - Label50.Text = "Oui" - Case 4 - Label50.Text = "Sim" - Case 5 - Label50.Text = "Sì" - End Select + Label50.Text = LocalizationService.ForSection("Main.OfflineManagement")("Yes.Button") DynaLog.LogMessage("Clearing items in project tree. We don't need them") UnpopulateProjectTree() HomePanel.Visible = False @@ -9205,41 +5127,8 @@ Public Class MainForm Refresh() ' Saving a project is not possible in offline mode either ToolStripButton2.Enabled = False - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label41.Text = "(Offline installation)" - Label44.Text = "(Offline installation)" - Case "ESN" - Label41.Text = "(Instalación fuera de línea)" - Label44.Text = "(Instalación fuera de línea)" - Case "FRA" - Label41.Text = "(Installation hors ligne)" - Label44.Text = "(Installation hors ligne)" - Case "PTB", "PTG" - Label41.Text = "(Instalação offline)" - Label44.Text = "(Instalação offline)" - Case "ITA" - Label41.Text = "(Installazione offline)" - Label44.Text = "(Installazione offline)" - End Select - Case 1 - Label41.Text = "(Offline installation)" - Label44.Text = "(Offline installation)" - Case 2 - Label41.Text = "(Instalación fuera de línea)" - Label44.Text = "(Instalación fuera de línea)" - Case 3 - Label41.Text = "(Installation hors ligne)" - Label44.Text = "(Installation hors ligne)" - Case 4 - Label41.Text = "(Instalação offline)" - Label44.Text = "(Instalação offline)" - Case 5 - Label41.Text = "(Installazione offline)" - Label44.Text = "(Installazione offline)" - End Select + Label41.Text = LocalizationService.ForSection("Main.OfflineManagement")("Install.Label") + Label44.Text = LocalizationService.ForSection("Main.OfflineManagement")("Install.Label") Panel2.Visible = False ManageOfflineInstallationToolStripMenuItem.Enabled = False DynaLog.LogMessage("Setting mount directory to disk...") @@ -9253,31 +5142,7 @@ Public Class MainForm If ImgBW.IsBusy Then DynaLog.LogMessage("Background processes are busy. Ask the user what they want to do") Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes are still gathering information about this image. Do you want to cancel them?" - Case "ESN" - msg = "Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos?" - Case "FRA" - msg = "Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ?" - Case "PTB", "PTG" - msg = "Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los?" - Case "ITA" - msg = "I processi in background stanno ancora raccogliendo informazioni sull'immagine. Vuoi annullarli?" - End Select - Case 1 - msg = "Background processes are still gathering information about this image. Do you want to cancel them?" - Case 2 - msg = "Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos?" - Case 3 - msg = "Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ?" - Case 4 - msg = "Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los?" - Case 5 - msg = "I processi in background stanno ancora raccogliendo informazioni sull'immagine. Vuoi annullarli?" - End Select + msg = LocalizationService.ForSection("Main.EndOfflineMgmt")("Bg.Procs.Still.Message") If MsgBox(msg, vbYesNo + vbQuestion, Text) = MsgBoxResult.Yes Then DynaLog.LogMessage("Cancelling background processes...") ImgBW.CancelAsync() @@ -9285,62 +5150,14 @@ Public Class MainForm DynaLog.LogMessage("User decided not to cancel background processes. Exiting procedure...") Exit Sub End If - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case "ESN" - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case "FRA" - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case "PTB", "PTG" - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case "ITA" - MenuDesc.Text = "Annullamento dei processi in background..." - End Select - Case 1 - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case 2 - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case 3 - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case 4 - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case 5 - MenuDesc.Text = "Annullamento dei processi in background..." - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.EndOfflineMgmt")("Cancelling.Bg.Procs.Button") While ImgBW.IsBusy() ToolStripButton3.Enabled = False Application.DoEvents() Thread.Sleep(100) End While ToolStripButton3.Enabled = True - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Ready" - Case "ESN" - MenuDesc.Text = "Listo" - Case "FRA" - MenuDesc.Text = "Prêt" - Case "PTB", "PTG" - MenuDesc.Text = "Pronto" - Case "ITA" - MenuDesc.Text = "Pronto" - End Select - Case 1 - MenuDesc.Text = "Ready" - Case 2 - MenuDesc.Text = "Listo" - Case 3 - MenuDesc.Text = "Prêt" - Case 4 - MenuDesc.Text = "Pronto" - Case 5 - MenuDesc.Text = "Pronto" - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.EndOffline")("Ready.Item") End If bwBackgroundProcessAction = 0 bwGetImageInfo = True @@ -9349,31 +5166,7 @@ Public Class MainForm isProjectLoaded = False Text = "DISMTools" OfflineManagement = False - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = "Yes" - Case "ESN" - Label50.Text = "Sí" - Case "FRA" - Label50.Text = "Oui" - Case "PTB", "PTG" - Label50.Text = "Sim" - Case "ITA" - Label50.Text = "Sì" - End Select - Case 1 - Label50.Text = "Yes" - Case 2 - Label50.Text = "Sí" - Case 3 - Label50.Text = "Oui" - Case 4 - Label50.Text = "Sim" - Case 5 - Label50.Text = "Sì" - End Select + Label50.Text = LocalizationService.ForSection("Main.EndOffline")("Yes.Button") HomePanel.Visible = True PrjPanel.Visible = False RemountImageWithWritePermissionsToolStripMenuItem.Enabled = False @@ -9404,31 +5197,7 @@ Public Class MainForm If ImgBW.IsBusy Then DynaLog.LogMessage("Background processes are busy. Ask the user what they want to do") Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes are still gathering information about this image. Do you want to cancel them?" - Case "ESN" - msg = "Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos?" - Case "FRA" - msg = "Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ?" - Case "PTB", "PTG" - msg = "Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los?" - Case "ITA" - msg = "I processi in background stanno ancora raccogliendo informazioni sull'immagine. Vuoi annullarli?" - End Select - Case 1 - msg = "Background processes are still gathering information about this image. Do you want to cancel them?" - Case 2 - msg = "Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos?" - Case 3 - msg = "Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ?" - Case 4 - msg = "Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los?" - Case 5 - msg = "I processi in background stanno ancora raccogliendo informazioni sull'immagine. Vuoi annullarli?" - End Select + msg = LocalizationService.ForSection("Main.EndOnlineMgmt")("Bg.Procs.Still.Message") If MsgBox(msg, vbYesNo + vbQuestion, Text) = MsgBoxResult.Yes Then DynaLog.LogMessage("Cancelling background processes...") ImgBW.CancelAsync() @@ -9436,62 +5205,14 @@ Public Class MainForm DynaLog.LogMessage("User decided not to cancel background processes. Exiting procedure...") Exit Sub End If - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case "ESN" - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case "FRA" - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case "PTB", "PTG" - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case "ITA" - MenuDesc.Text = "Annullamento dei processi in background..." - End Select - Case 1 - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case 2 - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case 3 - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case 4 - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case 5 - MenuDesc.Text = "Annullamento dei processi in background..." - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.EndOnlineMgmt")("Cancelling.Bg.Procs.Button") While ImgBW.IsBusy() ToolStripButton3.Enabled = False Application.DoEvents() Thread.Sleep(100) End While ToolStripButton3.Enabled = True - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Ready" - Case "ESN" - MenuDesc.Text = "Listo" - Case "FRA" - MenuDesc.Text = "Prêt" - Case "PTB", "PTG" - MenuDesc.Text = "Pronto" - Case "ITA" - MenuDesc.Text = "Pronto" - End Select - Case 1 - MenuDesc.Text = "Ready" - Case 2 - MenuDesc.Text = "Listo" - Case 3 - MenuDesc.Text = "Prêt" - Case 4 - MenuDesc.Text = "Pronto" - Case 5 - MenuDesc.Text = "Pronto" - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.EndOnline")("Ready.Item") End If bwBackgroundProcessAction = 0 bwGetImageInfo = True @@ -9500,31 +5221,7 @@ Public Class MainForm isProjectLoaded = False Text = "DISMTools" OnlineManagement = False - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = "Yes" - Case "ESN" - Label50.Text = "Sí" - Case "FRA" - Label50.Text = "Oui" - Case "PTB", "PTG" - Label50.Text = "Sim" - Case "ITA" - Label50.Text = "Sì" - End Select - Case 1 - Label50.Text = "Yes" - Case 2 - Label50.Text = "Sí" - Case 3 - Label50.Text = "Oui" - Case 4 - Label50.Text = "Sim" - Case 5 - Label50.Text = "Sì" - End Select + Label50.Text = LocalizationService.ForSection("Main.EndOnline")("Yes.Button") HomePanel.Visible = True PrjPanel.Visible = False RemountImageWithWritePermissionsToolStripMenuItem.Enabled = False @@ -9557,37 +5254,13 @@ Public Class MainForm DynaLog.LogMessage("- Is the mounted image read-only? " & If(IsReadOnly, "Yes", "No")) DynaLog.LogMessage("- Skip background processes? " & If(SkipBGProcs, "Yes", "No")) If WasImageMounted Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label50.Text = "Yes" - Case "ESN" - Label50.Text = "Sí" - Case "FRA" - Label50.Text = "Oui" - Case "PTB", "PTG" - Label50.Text = "Sim" - Case "ITA" - Label50.Text = "Sì" - End Select - Case 1 - Label50.Text = "Yes" - Case 2 - Label50.Text = "Sí" - Case 3 - Label50.Text = "Oui" - Case 4 - Label50.Text = "Sim" - Case 5 - Label50.Text = "Sì" - End Select + Label50.Text = LocalizationService.ForSection("Main.UpdateProjProps")("Yes.Button") LinkLabel14.Visible = False ImageView_NoImage.Visible = False ImageView_BasicInfo.Visible = True IsImageMounted = True Else - Label50.Text = "No" + Label50.Text = LocalizationService.ForSection("Main.UpdateProjProps")("No.Button") LinkLabel14.Visible = True ImageView_NoImage.Visible = True ImageView_BasicInfo.Visible = False @@ -9654,121 +5327,16 @@ Public Class MainForm prjTreeStatus.Visible = True DynaLog.LogMessage("Adding tree nodes...") Try - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - prjTreeView.Nodes.Add("parent", "Project: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "ADK Deployment Tools") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Deployment Tools (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Deployment Tools (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Deployment Tools (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Deployment Tools (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Mount point") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "Unattended answer files") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Scratch directory") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Project reports") - Case "ESN" - prjTreeView.Nodes.Add("parent", "Proyecto: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "Herramientas de implementación") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Herramientas de implementación (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Herramientas de implementación (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Herramientas de implementación (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Herramientas de implementación (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Punto de montaje") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "Archivos de respuesta desatendida") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Directorio temporal") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Informes del proyecto") - Case "FRA" - prjTreeView.Nodes.Add("parent", "Projet: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "Outils de déploiement ADK") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Outils de déploiement (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Outils de déploiement (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Outils de déploiement (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Outils de déploiement (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Point de montage") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "Fichiers de réponse non surveillés") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Répertoire temporaire") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Rapports de projet") - Case "PTB", "PTG" - prjTreeView.Nodes.Add("parent", "Projeto: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "Ferramentas de implantação do ADK") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Ferramentas de implementação (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Ferramentas de implementação (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Ferramentas de implementação (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Ferramentas de implementação (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Ponto de montagem") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "Ficheiros de resposta não assistidos") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Diretório temporário") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Relatórios de projectos") - Case "ITA" - prjTreeView.Nodes.Add("parent", "Progetto: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "Strumenti implementazione ADK") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Strumenti implementazione (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Strumenti implementazione (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Strumenti implementazione (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Strumenti installazione (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Punto montaggio") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "File risposte non presidiate") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Cartella temporanea") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Rapporti progetto") - End Select - Case 1 - prjTreeView.Nodes.Add("parent", "Project: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "ADK Deployment Tools") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Deployment Tools (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Deployment Tools (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Deployment Tools (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Deployment Tools (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Mount point") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "Unattended answer files") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Scratch directory") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Project reports") - Case 2 - prjTreeView.Nodes.Add("parent", "Proyecto: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "Herramientas de implementación") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Herramientas de implementación (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Herramientas de implementación (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Herramientas de implementación (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Herramientas de implementación (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Punto de montaje") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "Archivos de respuesta desatendida") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Directorio temporal") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Informes del proyecto") - Case 3 - prjTreeView.Nodes.Add("parent", "Projet: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "Outils de déploiement ADK") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Outils de déploiement (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Outils de déploiement (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Outils de déploiement (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Outils de déploiement (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Point de montage") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "Fichiers de réponse non surveillés") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Répertoire temporaire") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Rapports de projet") - Case 4 - prjTreeView.Nodes.Add("parent", "Projeto: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "Ferramentas de implantação do ADK") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Ferramentas de implementação (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Ferramentas de implementação (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Ferramentas de implementação (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Ferramentas de implementação (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Ponto de montagem") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "Ficheiros de resposta não assistidos") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Diretório temporário") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Relatórios de projectos") - Case 5 - prjTreeView.Nodes.Add("parent", "Progetto: " & Quote & MainProjNameNode & Quote) - prjTreeView.Nodes("parent").Nodes.Add("dandi", "Strumenti di implementazione ADK") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", "Strumenti di implementazione (x86)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", "Strumenti di implementazione (AMD64)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", "Strumenti di implementazione (ARM)") - prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", "Strumenti di installazione (ARM64)") - prjTreeView.Nodes("parent").Nodes.Add("mount", "Punto di montaggio") - prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", "File di risposta non presidiati") - prjTreeView.Nodes("parent").Nodes.Add("scr_temp", "Directory temporanea") - prjTreeView.Nodes("parent").Nodes.Add("reports", "Rapporti del progetto") - End Select + prjTreeView.Nodes.Add("parent", LocalizationService.ForSection("Main.Project.Load").Format("Project.Label", MainProjNameNode)) + prjTreeView.Nodes("parent").Nodes.Add("dandi", LocalizationService.ForSection("Main.Project.Load")("Adkdeployment.Tools.Label")) + prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_x86", LocalizationService.ForSection("Main.Project.Load")("DeploymentTools.X86.Label")) + prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_amd64", LocalizationService.ForSection("Main.Project.Load")("Deployment.Tools.Label")) + prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm", LocalizationService.ForSection("Main.Project.Load")("DeploymentTools.ARM.Label")) + prjTreeView.Nodes("parent").Nodes("dandi").Nodes.Add("dandi_arm64", LocalizationService.ForSection("Main.Project.Load")("DeploymentTools.ARM64.Label")) + prjTreeView.Nodes("parent").Nodes.Add("mount", LocalizationService.ForSection("Main.Project.Load")("MountPoint.Label")) + prjTreeView.Nodes("parent").Nodes.Add("unattend_xml", LocalizationService.ForSection("Main.Project.Load")("Unattended.Answer.Label")) + prjTreeView.Nodes("parent").Nodes.Add("scr_temp", LocalizationService.ForSection("Main.Project.Load")("ScratchDirectory.Label")) + prjTreeView.Nodes("parent").Nodes.Add("reports", LocalizationService.ForSection("Main.Project.Load")("ProjectReports.Label")) prjTreeView.ExpandAll() Catch ex As Exception @@ -9785,15 +5353,15 @@ Public Class MainForm Sub ShowParentDesc(ParentDescMode As Integer) Select Case ParentDescMode Case 1 - MenuDesc.Text = "View options related to files, like creating or opening projects" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowParentDesc")("View.Options.Related.Item") Case 2 - MenuDesc.Text = "View options related to this project, like viewing its properties" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowParentDesc")("View.Options.Project.Item") Case 3 - MenuDesc.Text = "View options related to image management, deployment and/or servicing" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowParentDesc")("View.Options.Image.Item") Case 4 - MenuDesc.Text = "View options related to additional tools, like the Command Console" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowParentDesc")("View.Options.Additional.Item") Case 5 - MenuDesc.Text = "View options related to help topics, glossary, command help and product information" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowParentDesc")("View.Options.Help.Item") Case Else ' Do not show anything End Select @@ -9805,349 +5373,253 @@ Public Class MainForm ' ChildDescMode follows the same style as ProgressPanel.OperationNum Select Case CommandDescriptionInt Case 1 - MenuDesc.Text = "Adds an additional image to a .wim file" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Adds.Additional.Item") Case 2 - MenuDesc.Text = "Applies a Full Flash Utility or split FFU to a physical drive" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Applies.Full.Flash.Item") Case 3 - MenuDesc.Text = "Applies a Windows image or split WIM to a partition" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Applies.Windows.Image.Item") Case 4 - MenuDesc.Text = "Captures incremental file changes on the specific WIM file to " & Quote & "custom.wim" & Quote + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Captures.Incremen.File.Item") Case 5 - MenuDesc.Text = "Captures an image of a drive's partitions to a new FFU file" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Captures.Image.Drive.Item") Case 6 - MenuDesc.Text = "Captures an image of a drive to a new WIM file" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Captures.Image.New.Item") Case 7 - MenuDesc.Text = "Deletes all resources associated with a corrupted mounted image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Deletes.Resources.Item") Case 8 - MenuDesc.Text = "Applies the changes made to the mounted image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Applies.Changes.Made.Item") Case 9 - MenuDesc.Text = "Deletes a volume image from a WIM file" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Deletes.Volume.Image.Item") Case 10 - MenuDesc.Text = "Exports a copy of the image to another file" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Exports.Copy.Image.Item") Case 11 - MenuDesc.Text = "Displays information about the images contained in a WIM, FFU, VHD or VHDX file" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Images.Item") Case 12 - MenuDesc.Text = "Displays a list of WIM, FFU, VHD or VHDX images that are currently mounted" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.List.Wimffu.Item") Case 13 - MenuDesc.Text = "Displays WIMBoot configuration entries for the specified disk volume" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.WIM.Boot.Item") Case 14 - MenuDesc.Text = "Displays a list of files and folders in an image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.List.Files.Item") Case 15 - MenuDesc.Text = "Mounts an image from a WIM, FFU, VHD or VHDX to make it available for servicing" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Mounts.Image.Wimffu.Item") Case 16 - MenuDesc.Text = "Optimizes a FFU image to make it faster to deploy" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Optimizes.Ffuimage.Item") Case 17 - MenuDesc.Text = "Optimizes an image to make it faster to deploy" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Optimizes.Image.Faster.Item") Case 18 - MenuDesc.Text = "Remounts a mounted image that is inaccessible to make it available for servicing" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Remounts.Mounted.Image.Item") Case 19 - MenuDesc.Text = "Splits a Full Flash Utility (FFU) file into read-only split FFU (.sfu) files" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Splits.Full.Flash.Item") Case 20 - MenuDesc.Text = "Splits an existing WIM file into read-only split WIM (.swm) files" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Splits.Existing.WIM.Item") Case 21 - MenuDesc.Text = "Unmounts the WIM, FFU, VHD or VHDX file and either commits or discards its changes" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Unmounts.Wimffuvhd.Item") Case 22 - MenuDesc.Text = "Updates the WIMBoot configuration entry" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Updates.WIM.Boot.Item") Case 23 - MenuDesc.Text = "Applies siloed provisioning packages to the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Applies.Siloed.Prov.Item") Case 24 - MenuDesc.Text = "Displays information about all packages in the image or in the installation or any package file you want to add" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Message") Case 26 - MenuDesc.Text = "Installs a .cab or .msu package in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Installs.Cabmsu.Package.Item") Case 27 - MenuDesc.Text = "Removes a .cab file package from the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Removes.Cabfile.Package.Item") Case 28 - MenuDesc.Text = "Displays information about the installed features in an image or an online installation" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Installed.Item") Case 30 - MenuDesc.Text = "Enables or updates the specified feature in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Enables.Updates.Feature.Item") Case 31 - MenuDesc.Text = "Disables the specified feature in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Disables.Feature.Image.Item") Case 32 - MenuDesc.Text = "Performs cleanup or recovery operations on the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Performs.Cleanup.Item") Case 33 - MenuDesc.Text = "Adds an applicable payload of a provisioning package to the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Adds.Applicable.Item") Case 34 - MenuDesc.Text = "Gets infomation of a provisioning package" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Gets.Infomation.Prov.Item") Case 35 - MenuDesc.Text = "Dehydrates files contained in the custom data image to save space" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Dehydrat.Files.Containe.Item") Case 36 - MenuDesc.Text = "Displays information about app packages in an image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.App.Item") Case 37 - MenuDesc.Text = "Adds one or more app packages to the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Addsone.App.Item") Case 38 - MenuDesc.Text = "Removes provisioning for app packages from the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Removes.Prov.App.Item") Case 39 - MenuDesc.Text = "Optimizes the total size of provisioned app packages on the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Optimizes.Total.Size.Item") Case 40 - MenuDesc.Text = "Adds a custom data file into the specified app package" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Addscustom.Data.File.Item") Case 41 - MenuDesc.Text = "Displays information of MSP patches applicable to the offline image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Msppatches.Item") Case 42 - MenuDesc.Text = "Displays information about installed MSP patches" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Command42.Item") Case 43 - MenuDesc.Text = "Displays information about all applied MSP patches for all applications installed on the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Item") Case 44 - MenuDesc.Text = "Displays information about a specific installed Windows Installer application" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Specific.Item") Case 45 - MenuDesc.Text = "Displays information about all Windows Installer applications in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Command45.Item") Case 46 - MenuDesc.Text = "Exports default application associations from a running OS to an XML file" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Exports.Default.Item") Case 47 - MenuDesc.Text = "Displays the list of default application associations set in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.List.Item") Case 48 - MenuDesc.Text = "Imports a set of default application associations from an XML file to an image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Imports.Set.DefaultApp.Item") Case 49 - MenuDesc.Text = "Removes default application associations from the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Removes.Default.Item") Case 50 - MenuDesc.Text = "Displays information about international settings and languages" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Intl.Item") Case 51 - MenuDesc.Text = "Sets the default UI language" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Default.Uilanguage.Item") Case 52 - MenuDesc.Text = "Sets the fallback default language for the system UI" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Fallback.Default.Item") Case 53 - MenuDesc.Text = "Sets the " & Quote & "System Preferred" & Quote & " UI language" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.System.Preferred.Item") Case 54 - MenuDesc.Text = "Sets the language for non-Unicode programs and font settings in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Language.Non.Item") Case 55 - MenuDesc.Text = "Sets the " & Quote & "standards and formats" & Quote & " language (user locale) in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Standards.Formats.Item") Case 56 - MenuDesc.Text = "Sets the input locales and keyboard layouts to use in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Input.Locales.Item") Case 57 - MenuDesc.Text = "Sets the default system UI language, the language for non-Unicode programs, the user locale, and the keyboard layouts to the language in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Default.System.Message") Case 58 - MenuDesc.Text = "Sets the default time zone in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Default.Time.Item") Case 59 - MenuDesc.Text = "Sets the default language for the UI and non-Unicode programs, locales for the user and input, keyboard layouts and time zone values in the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Default.Message") Case 60 - MenuDesc.Text = "Specifies a keyboard driver for Japanese and Korean keyboards" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Specifies.Keyboard.Item") Case 61 - MenuDesc.Text = "Generates a Lang.ini file, used by Setup to define the language packs inside the image and out" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Generates.Lang.Ini.Item") Case 62 - MenuDesc.Text = "Defines the default language that will be used by Setup" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Defines.Default.Item") Case 63 - MenuDesc.Text = "Adds a capability to an image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Addscapability.Image.Item") Case 64 - MenuDesc.Text = "Exports a set of capabilities into a new repository" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Exports.Set.Caps.Item") Case 65 - MenuDesc.Text = "Gets information about the installed capabilities of an image or an active installation" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Gets.Installed.Item") Case 67 - MenuDesc.Text = "Removes a capability from the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Removes.Capability.Item") Case 68 - MenuDesc.Text = "Displays the edition of the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Edition.Image.Item") Case 69 - MenuDesc.Text = "Displays the editions the image can be upgraded to" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Editions.Image.Item") Case 70 - MenuDesc.Text = "Changes an image to a higher edition" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Changes.Image.Higher.Item") Case 71 - MenuDesc.Text = "Enters the product key for the current edition" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Enters.ProductKey.Item") Case 72 - MenuDesc.Text = "Displays information about the driver packages you specify or the installed drivers in the image or in the installation" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.Driver.Message") Case 74 - MenuDesc.Text = "Adds third-party driver packages to the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Addsthird.Party.Driver.Item") Case 75 - MenuDesc.Text = "Removes third-party drivers from the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Removes.ThirdParty.Item") Case 76 - MenuDesc.Text = "Exports all third-party driver packages from the image to a destination path" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Exports.ThirdParty.Item") Case 77 - MenuDesc.Text = "Imports all third-party drivers from a specified source to this image to provide the same hardware compatibility" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Imports.ThirdParty.Message") Case 78 - MenuDesc.Text = "Applies an Unattend.xml file to the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Applies.Unattend.Item") Case 79 - MenuDesc.Text = "Displays a list of Windows PE settings in the WinPE image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Displays.List.Windows.Item") Case 80 - MenuDesc.Text = "Retrieves the configured amount of the Windows PE system volume scratch space" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Retrieves.Configured.Item") Case 81 - MenuDesc.Text = "Retrieves the target path of the Windows PE image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Retrieves.Target.Path.Item") Case 82 - MenuDesc.Text = "Sets the available scratch space (in MB)" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Available.Item") Case 83 - MenuDesc.Text = "Sets the location of the WinPE image on the disk (for hard disk boot scenarios)" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Location.Win.Item") Case 84 - MenuDesc.Text = "Gets the number of days an uninstall can be initiated after an upgrade" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Gets.Number.Days.Item") Case 85 - MenuDesc.Text = "Reverts a PC to a previous installation" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Reverts.PC.Item") Case 86 - MenuDesc.Text = "Removes the ability to roll back a PC to a previous installation" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Removes.Ability.Roll.Item") Case 87 - MenuDesc.Text = "Sets the number of days an uninstall can be initiated after an upgrade" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.Number.Days.Item") Case 88 - MenuDesc.Text = "Gets the current state of reserved storage" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Gets.State.Reserved.Item") Case 89 - MenuDesc.Text = "Sets the state of reserved storage" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Sets.State.Reserved.Item") Case 90 ' Edge can also be deployed - MenuDesc.Text = "Adds the Microsoft Edge Browser and WebView2 component to the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Adds.Microsoft.Item") Case 91 - MenuDesc.Text = "Adds the Microsoft Edge Browser to the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Command91.Item") Case 92 - MenuDesc.Text = "Adds the Microsoft Edge WebView2 component to the image" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Addsmicrosoft.Edge.Web.Item") Case 93 - MenuDesc.Text = "Saves complete image information to the file you want. Depending on the settings you had specified, you may be asked some questions during the process" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Saves.Complete.Image.Message") Case Else ' Do not show anything End Select Else Select Case ChildDescMode Case 1 - MenuDesc.Text = "Creates a new DISMTools project. The current project will be unloaded after creating it" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Creates.New.DISM.Item") Case 2 - MenuDesc.Text = "Opens an existing DISMTools project. The current project will be unloaded" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Opens.Existing.DISM.Item") Case 3 - MenuDesc.Text = "Enters online installation management mode" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Enters.Online.Install.Item") Case 4 - MenuDesc.Text = "Saves the changes of this project" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Saves.Changes.Project.Item") Case 5 - MenuDesc.Text = "Saves this project on another location" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Saves.Project.Another.Item") Case 6 - MenuDesc.Text = "Closes the program. If a project is loaded, you will be asked whether or not you would like to save it" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Closes.Project.Message") Case 7 - MenuDesc.Text = "Opens the File Explorer to view the project files" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Opens.File.Explorer.Item") Case 8 - MenuDesc.Text = "Unloads this project. If changes were made, you will be asked whether or not you would like to save it" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Unloads.Project.Message") Case 9 - MenuDesc.Text = "Switches the mounted image index" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Switches.Mounted.Image.Item") Case 10 - MenuDesc.Text = "Launches the project section of the project properties dialog" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Launches.Project.Item") Case 11 - MenuDesc.Text = "Launches the image section of the project properties dialog" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Launches.Image.Section.Item") Case 12 - MenuDesc.Text = "Performs image format conversion from WIM to ESD and vice versa" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("ImageFormat.Item") Case 13 - MenuDesc.Text = "Merges two or more SWM files into a single WIM file" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Merges.Two.SWM.Item") Case 14 - MenuDesc.Text = "Remounts the image with read-write permissions to allow making modifications to it" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Remounts.Image.Read.Item") Case 15 - MenuDesc.Text = "Opens the Command Console" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Opens.Command.Console.Item") Case 16 - MenuDesc.Text = "Lets you manage unattended answer files for this project" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Lets.Manage.Item") Case 17 - MenuDesc.Text = "Lets you manage project reports" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Lets.Manage.Project.Item") Case 18 - MenuDesc.Text = "Shows an overview of the mounted images" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Shows.Overview.Mounted.Item") Case 19 - MenuDesc.Text = "Configures settings for the program" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Configures.Settings.Item") Case 20 - MenuDesc.Text = "Opens the help topics for this program" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Opens.Help.Topics.Item") Case 21 - MenuDesc.Text = "Opens the glossary, if you don't understand a concept" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Opens.Glossary.Don.Item") Case 22 - MenuDesc.Text = "Shows the Command Help, letting you use commands to perform the same actions" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Shows.Command.Help.Item") Case 23 - MenuDesc.Text = "Shows program information" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Shows.Item") Case 24 - MenuDesc.Text = "Lets you report feedback through a new GitHub issue (a GitHub account is needed)" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Lets.Report.Feedback.Item") Case 25 - MenuDesc.Text = "Opens the GitHub repository containing the help documentation contents, to which you can contribute (a GitHub account is needed)" + MenuDesc.Text = LocalizationService.ForSection("Main.ShowChildDescs")("Opens.Git.Hub.Message") End Select End If End Sub Sub HideParentDesc() - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Ready" - Case "ESN" - MenuDesc.Text = "Listo" - Case "FRA" - MenuDesc.Text = "Prêt" - Case "PTB", "PTG" - MenuDesc.Text = "Pronto" - Case "ITA" - MenuDesc.Text = "Pronto" - End Select - Case 1 - MenuDesc.Text = "Ready" - Case 2 - MenuDesc.Text = "Listo" - Case 3 - MenuDesc.Text = "Prêt" - Case 4 - MenuDesc.Text = "Pronto" - Case 5 - MenuDesc.Text = "Pronto" - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.HideParentDesc")("Ready.Label") If ImgBW.CancellationPending Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case "ESN" - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case "FRA" - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case "PTB", "PTG" - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case "ITA" - MenuDesc.Text = "Annullamento dei processi in background..." - End Select - Case 1 - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case 2 - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case 3 - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case 4 - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case 5 - MenuDesc.Text = "Annullamento dei processi in background..." - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.HideParentDesc")("Cancelling.Bg.Procs.Item") End If End Sub Sub HideChildDescs() - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Ready" - Case "ESN" - MenuDesc.Text = "Listo" - Case "FRA" - MenuDesc.Text = "Prêt" - Case "PTB", "PTG" - MenuDesc.Text = "Pronto" - Case "ITA" - MenuDesc.Text = "Pronto" - End Select - Case 1 - MenuDesc.Text = "Ready" - Case 2 - MenuDesc.Text = "Listo" - Case 3 - MenuDesc.Text = "Prêt" - Case 4 - MenuDesc.Text = "Pronto" - Case 5 - MenuDesc.Text = "Pronto" - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.HideChildDescs")("Ready.Label") If ImgBW.CancellationPending Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case "ESN" - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case "FRA" - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case "PTB", "PTG" - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case "ITA" - MenuDesc.Text = "Annullamento dei processi in background..." - End Select - Case 1 - MenuDesc.Text = "Cancelling background processes. Please wait..." - Case 2 - MenuDesc.Text = "Espere mientras cancelamos los procesos en segundo plano..." - Case 3 - MenuDesc.Text = "Annulation des processus en arrière plan en cours. Veuillez patienter ..." - Case 4 - MenuDesc.Text = "Cancelamento de processos em segundo plano. Por favor, aguarde..." - Case 5 - MenuDesc.Text = "Annullamento dei processi in background..." - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.HideChildDescs")("Cancelling.Bg.Procs.Item") End If End Sub @@ -10727,31 +6199,7 @@ Public Class MainForm End Sub Private Sub Button14_Click(sender As Object, e As EventArgs) Handles ProjectPropertiesToolStripMenuItem.Click, Button23.Click - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ProjProperties.ImageTaskHeader1.ItemText = "Properties" - Case "ESN" - ProjProperties.ImageTaskHeader1.ItemText = "Propiedades" - Case "FRA" - ProjProperties.ImageTaskHeader1.ItemText = "Propriétés" - Case "PTB", "PTG" - ProjProperties.ImageTaskHeader1.ItemText = "Propriedades" - Case "ITA" - ProjProperties.ImageTaskHeader1.ItemText = "Proprietà" - End Select - Case 1 - ProjProperties.ImageTaskHeader1.ItemText = "Properties" - Case 2 - ProjProperties.ImageTaskHeader1.ItemText = "Propiedades" - Case 3 - ProjProperties.ImageTaskHeader1.ItemText = "Propriétés" - Case 4 - ProjProperties.ImageTaskHeader1.ItemText = "Propriedades" - Case 5 - ProjProperties.ImageTaskHeader1.ItemText = "Proprietà" - End Select + ProjProperties.ImageTaskHeader1.ItemText = LocalizationService.ForSection("Main")("Props.Label") If Environment.OSVersion.Version.Major = 10 Then ProjProperties.Text = "" Else @@ -10763,31 +6211,7 @@ Public Class MainForm Private Sub Button15_Click(sender As Object, e As EventArgs) Handles ImagePropertiesToolStripMenuItem.Click - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ProjProperties.ImageTaskHeader1.ItemText = "Properties" - Case "ESN" - ProjProperties.ImageTaskHeader1.ItemText = "Propiedades" - Case "FRA" - ProjProperties.ImageTaskHeader1.ItemText = "Propriétés" - Case "PTB", "PTG" - ProjProperties.ImageTaskHeader1.ItemText = "Propriedades" - Case "ITA" - ProjProperties.ImageTaskHeader1.ItemText = "Proprietà" - End Select - Case 1 - ProjProperties.ImageTaskHeader1.ItemText = "Properties" - Case 2 - ProjProperties.ImageTaskHeader1.ItemText = "Propiedades" - Case 3 - ProjProperties.ImageTaskHeader1.ItemText = "Propriétés" - Case 4 - ProjProperties.ImageTaskHeader1.ItemText = "Propriedades" - Case 5 - ProjProperties.ImageTaskHeader1.ItemText = "Proprietà" - End Select + ProjProperties.ImageTaskHeader1.ItemText = LocalizationService.ForSection("Main")("ProjProps.Label") If Environment.OSVersion.Version.Major = 10 Then ProjProperties.Text = "" Else @@ -10990,78 +6414,12 @@ Public Class MainForm Private Sub prjTreeView_AfterExpand(sender As Object, e As TreeViewEventArgs) Handles prjTreeView.AfterExpand Try If prjTreeView.SelectedNode.IsExpanded Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ExpandCollapseTSB.Text = "Collapse" - ExpandToolStripMenuItem.Text = "Collapse item" - Case "ESN" - ExpandCollapseTSB.Text = "Contraer" - ExpandToolStripMenuItem.Text = "Contraer objeto" - Case "FRA" - ExpandCollapseTSB.Text = "Réduire" - ExpandToolStripMenuItem.Text = "Réduire élément" - Case "PTB", "PTG" - ExpandCollapseTSB.Text = "Recolher" - ExpandToolStripMenuItem.Text = "Recolher item" - Case "ITA" - ExpandCollapseTSB.Text = "Minimizza" - ExpandToolStripMenuItem.Text = "Minimizza elemento" - End Select - Case 1 - ExpandCollapseTSB.Text = "Collapse" - ExpandToolStripMenuItem.Text = "Collapse item" - Case 2 - ExpandCollapseTSB.Text = "Contraer" - ExpandToolStripMenuItem.Text = "Contraer objeto" - Case 3 - ExpandCollapseTSB.Text = "Réduire" - ExpandToolStripMenuItem.Text = "Réduire élément" - Case 4 - ExpandCollapseTSB.Text = "Recolher" - ExpandToolStripMenuItem.Text = "Recolher item" - Case 5 - ExpandCollapseTSB.Text = "Minimizza" - ExpandToolStripMenuItem.Text = "Minimizza elemento" - End Select + ExpandCollapseTSB.Text = LocalizationService.ForSection("Main.ProjectTree.AfterExpand")("Collapse.Label") + ExpandToolStripMenuItem.Text = LocalizationService.ForSection("Main.ProjectTree.AfterExpand")("CollapseItem.Label") ExpandCollapseTSB.Image = GetGlyphResource("collapse_glyph") Else - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ExpandCollapseTSB.Text = "Expand" - ExpandToolStripMenuItem.Text = "Expand item" - Case "ESN" - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir objeto" - Case "FRA" - ExpandCollapseTSB.Text = "Agrandir" - ExpandToolStripMenuItem.Text = "Agrandir élément" - Case "PTB", "PTG" - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir item" - Case "ITA" - ExpandCollapseTSB.Text = "Espandi" - ExpandToolStripMenuItem.Text = "Espandi elemento" - End Select - Case 1 - ExpandCollapseTSB.Text = "Expand" - ExpandToolStripMenuItem.Text = "Expand item" - Case 2 - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir objeto" - Case 3 - ExpandCollapseTSB.Text = "Agrandir" - ExpandToolStripMenuItem.Text = "Agrandir élément" - Case 4 - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir item" - Case 5 - ExpandCollapseTSB.Text = "Espandi" - ExpandToolStripMenuItem.Text = "Espandi elemento" - End Select + ExpandCollapseTSB.Text = LocalizationService.ForSection("Main.ProjectTree.AfterExpand")("Expand.Item") + ExpandToolStripMenuItem.Text = LocalizationService.ForSection("Main.ProjectTree.AfterExpand")("ExpandItem") ExpandCollapseTSB.Image = GetGlyphResource("expand_glyph") End If Catch ex As Exception @@ -11073,194 +6431,29 @@ Public Class MainForm Private Sub prjTreeView_AfterCollapse(sender As Object, e As TreeViewEventArgs) Handles prjTreeView.AfterCollapse Try If prjTreeView.SelectedNode.IsExpanded Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ExpandCollapseTSB.Text = "Collapse" - ExpandToolStripMenuItem.Text = "Collapse item" - Case "ESN" - ExpandCollapseTSB.Text = "Contraer" - ExpandToolStripMenuItem.Text = "Contraer objeto" - Case "FRA" - ExpandCollapseTSB.Text = "Réduire" - ExpandToolStripMenuItem.Text = "Réduire élément" - Case "PTB", "PTG" - ExpandCollapseTSB.Text = "Recolher" - ExpandToolStripMenuItem.Text = "Recolher item" - Case "ITA" - ExpandCollapseTSB.Text = "Minimizza" - ExpandToolStripMenuItem.Text = "Minimizza elemento" - End Select - Case 1 - ExpandCollapseTSB.Text = "Collapse" - ExpandToolStripMenuItem.Text = "Collapse item" - Case 2 - ExpandCollapseTSB.Text = "Contraer" - ExpandToolStripMenuItem.Text = "Contraer objeto" - Case 3 - ExpandCollapseTSB.Text = "Réduire" - ExpandToolStripMenuItem.Text = "Réduire élément" - Case 4 - ExpandCollapseTSB.Text = "Recolher" - ExpandToolStripMenuItem.Text = "Recolher item" - Case 5 - ExpandCollapseTSB.Text = "Minimizza" - ExpandToolStripMenuItem.Text = "Minimizza elemento" - End Select + ExpandCollapseTSB.Text = LocalizationService.ForSection("Main.ProjectTree.AfterCollapse")("Collapse.Label") + ExpandToolStripMenuItem.Text = LocalizationService.ForSection("Main.ProjectTree.AfterCollapse")("CollapseItem.Label") ExpandCollapseTSB.Image = GetGlyphResource("collapse_glyph") Else - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ExpandCollapseTSB.Text = "Expand" - ExpandToolStripMenuItem.Text = "Expand item" - Case "ESN" - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir objeto" - Case "FRA" - ExpandCollapseTSB.Text = "Agrandir" - ExpandToolStripMenuItem.Text = "Agrandir élément" - Case "PTB", "PTG" - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir item" - Case "ITA" - ExpandCollapseTSB.Text = "Espandi" - ExpandToolStripMenuItem.Text = "Espandi elemento" - End Select - Case 1 - ExpandCollapseTSB.Text = "Expand" - ExpandToolStripMenuItem.Text = "Expand item" - Case 2 - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir objeto" - Case 3 - ExpandCollapseTSB.Text = "Agrandir" - ExpandToolStripMenuItem.Text = "Agrandir élément" - Case 4 - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir item" - Case 5 - ExpandCollapseTSB.Text = "Espandi" - ExpandToolStripMenuItem.Text = "Espandi elemento" - End Select + ExpandCollapseTSB.Text = LocalizationService.ForSection("Main.ProjectTree.AfterCollapse")("Expand.Item") + ExpandToolStripMenuItem.Text = LocalizationService.ForSection("Main.ProjectTree.AfterCollapse")("ExpandItem") ExpandCollapseTSB.Image = GetGlyphResource("expand_glyph") End If Catch ex As Exception - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ExpandCollapseTSB.Text = "Expand" - ExpandToolStripMenuItem.Text = "Expand item" - Case "ESN" - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir objeto" - Case "FRA" - ExpandCollapseTSB.Text = "Agrandir" - ExpandToolStripMenuItem.Text = "Agrandir élément" - Case "PTB", "PTG" - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir item" - Case "ITA" - ExpandCollapseTSB.Text = "Espandi" - ExpandToolStripMenuItem.Text = "Espandi elemento" - End Select - Case 1 - ExpandCollapseTSB.Text = "Expand" - ExpandToolStripMenuItem.Text = "Expand item" - Case 2 - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir objeto" - Case 3 - ExpandCollapseTSB.Text = "Agrandir" - ExpandToolStripMenuItem.Text = "Agrandir élément" - Case 4 - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir item" - Case 5 - ExpandCollapseTSB.Text = "Espandi" - ExpandToolStripMenuItem.Text = "Espandi elemento" - End Select + ExpandCollapseTSB.Text = LocalizationService.ForSection("Main.ProjectTree.AfterCollapse")("ExpandCollapse.Item") + ExpandToolStripMenuItem.Text = LocalizationService.ForSection("Main.ProjectTree.AfterCollapse")("ExpandTool.ExpandItem") ExpandCollapseTSB.Image = GetGlyphResource("expand_glyph") End Try End Sub Private Sub prjTreeView_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles prjTreeView.AfterSelect If prjTreeView.SelectedNode.IsExpanded Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ExpandCollapseTSB.Text = "Collapse" - ExpandToolStripMenuItem.Text = "Collapse item" - Case "ESN" - ExpandCollapseTSB.Text = "Contraer" - ExpandToolStripMenuItem.Text = "Contraer objeto" - Case "FRA" - ExpandCollapseTSB.Text = "Réduire" - ExpandToolStripMenuItem.Text = "Réduire élément" - Case "PTB", "PTG" - ExpandCollapseTSB.Text = "Recolher" - ExpandToolStripMenuItem.Text = "Recolher item" - Case "ITA" - ExpandCollapseTSB.Text = "Minimizzae" - ExpandToolStripMenuItem.Text = "Minimizza elemento" - End Select - Case 1 - ExpandCollapseTSB.Text = "Collapse" - ExpandToolStripMenuItem.Text = "Collapse item" - Case 2 - ExpandCollapseTSB.Text = "Contraer" - ExpandToolStripMenuItem.Text = "Contraer objeto" - Case 3 - ExpandCollapseTSB.Text = "Réduire" - ExpandToolStripMenuItem.Text = "Réduire élément" - Case 4 - ExpandCollapseTSB.Text = "Recolher" - ExpandToolStripMenuItem.Text = "Recolher item" - Case 5 - ExpandCollapseTSB.Text = "Minimizza" - ExpandToolStripMenuItem.Text = "Minimizza elemento" - End Select + ExpandCollapseTSB.Text = LocalizationService.ForSection("Main.ProjectTree.AfterSelect")("Collapse.Label") + ExpandToolStripMenuItem.Text = LocalizationService.ForSection("Main.ProjectTree.AfterSelect")("CollapseItem.Label") ExpandCollapseTSB.Image = GetGlyphResource("collapse_glyph") Else - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ExpandCollapseTSB.Text = "Expand" - ExpandToolStripMenuItem.Text = "Expand item" - Case "ESN" - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir objeto" - Case "FRA" - ExpandCollapseTSB.Text = "Agrandir" - ExpandToolStripMenuItem.Text = "Agrandir élément" - Case "PTB", "PTG" - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir item" - Case "ITA" - ExpandCollapseTSB.Text = "Espandi" - ExpandToolStripMenuItem.Text = "Espandi elemento" - End Select - Case 1 - ExpandCollapseTSB.Text = "Expand" - ExpandToolStripMenuItem.Text = "Expand item" - Case 2 - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir objeto" - Case 3 - ExpandCollapseTSB.Text = "Agrandir" - ExpandToolStripMenuItem.Text = "Agrandir élément" - Case 4 - ExpandCollapseTSB.Text = "Expandir" - ExpandToolStripMenuItem.Text = "Expandir item" - Case 5 - ExpandCollapseTSB.Text = "Espandi" - ExpandToolStripMenuItem.Text = "Espandi elemento" - End Select + ExpandCollapseTSB.Text = LocalizationService.ForSection("Main.ProjectTree.AfterSelect")("Expand.Item") + ExpandToolStripMenuItem.Text = LocalizationService.ForSection("Main.ProjectTree.AfterSelect")("ExpandItem") ExpandCollapseTSB.Image = GetGlyphResource("expand_glyph") End If If prjTreeView.SelectedNode.Nodes.Count = 0 Then @@ -11273,19 +6466,23 @@ Public Class MainForm End Sub Private Sub ExpandCollapseTSB_Click(sender As Object, e As EventArgs) Handles ExpandCollapseTSB.Click - If ExpandCollapseTSB.Text = "Expand" Or ExpandCollapseTSB.Text = "Expandir" Or ExpandCollapseTSB.Text = "Agrandir" Or ExpandCollapseTSB.Text = "Espandi" Then - Try + If prjTreeView.SelectedNode Is Nothing Then Exit Sub + Try + If prjTreeView.SelectedNode.IsExpanded Then + prjTreeView.SelectedNode.Collapse() + Else prjTreeView.SelectedNode.Expand() - Catch ex As Exception + End If + Catch ex As Exception - End Try - ElseIf ExpandCollapseTSB.Text = "Collapse" Or ExpandCollapseTSB.Text = "Contraer" Or ExpandCollapseTSB.Text = "Réduire" Or ExpandCollapseTSB.Text = "Recolher" Or ExpandCollapseTSB.Text = "Collassare" Then - Try - prjTreeView.SelectedNode.Collapse() - Catch ex As Exception + End Try + End Sub - End Try - End If + Private Sub RefreshViewTSB_Click(sender As Object, e As EventArgs) Handles RefreshViewTSB.Click + If Not isProjectLoaded Then Exit Sub + DynaLog.LogMessage("Refreshing the project tree...") + UnpopulateProjectTree() + PopulateProjectTree(prjName) End Sub Private Sub AddPackage_Click(sender As Object, e As EventArgs) Handles AddPackage.Click @@ -11323,6 +6520,126 @@ Public Class MainForm SaveDTProj() End Sub + Private Sub SaveProjectasToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveProjectasToolStripMenuItem.Click + DynaLog.LogMessage("Save Project As menu command received." & CrLf & + "- Is a project loaded? " & If(isProjectLoaded, "Yes", "No") & CrLf & + "- Online management mode? " & If(OnlineManagement, "Yes", "No") & CrLf & + "- Offline management mode? " & If(OfflineManagement, "Yes", "No") & CrLf & + "- Project path: " & Quote & projPath & Quote) + If Not isProjectLoaded OrElse OnlineManagement OrElse OfflineManagement Then + DynaLog.LogMessage("Save Project As cannot continue because no regular DISMTools project is loaded.") + MessageBox.Show(LocalizationService.ForSection("Main.SaveProjectAs")("Unavailable.Message"), + LocalizationService.ForSection("Main.SaveProjectAs")("Error.Title"), + MessageBoxButtons.OK, + MessageBoxIcon.Information) + Exit Sub + End If + + Dim sourceParent As DirectoryInfo = Directory.GetParent(Path.GetFullPath(projPath)) + Using saveAsDialog As New NewProj() + saveAsDialog.SaveAsMode = True + saveAsDialog.TextBox1.Text = prjName & " - Copy" + saveAsDialog.TextBox2.Text = If(sourceParent Is Nothing, projPath, sourceParent.FullName) + DynaLog.LogMessage("Opening the Save Project As dialog...") + Dim saveAsResult = saveAsDialog.ShowDialog(Me) + DynaLog.LogMessage("The Save Project As dialog returned: " & saveAsResult.ToString()) + If saveAsResult <> Windows.Forms.DialogResult.OK Then Exit Sub + + DynaLog.LogMessage("The user confirmed Save Project As. Beginning the copy operation...") + SaveProjectAsCopy(saveAsDialog.TextBox1.Text.Trim(), saveAsDialog.TextBox2.Text.Trim()) + End Using + End Sub + + Private Sub SaveProjectAsCopy(newProjectName As String, destinationParent As String) + Dim targetRoot As String = destinationParent + + Try + Dim sourceRoot = Path.GetFullPath(projPath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar) + Dim destinationRoot = Path.GetFullPath(destinationParent).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar) + targetRoot = Path.GetFullPath(Path.Combine(destinationRoot, newProjectName)).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar) + DynaLog.LogMessage("Preparing to save the project as a copy." & CrLf & + "- Source: " & Quote & sourceRoot & Quote & CrLf & + "- Destination: " & Quote & targetRoot & Quote) + + If targetRoot.Equals(sourceRoot, StringComparison.OrdinalIgnoreCase) OrElse + targetRoot.StartsWith(sourceRoot & Path.DirectorySeparatorChar, StringComparison.OrdinalIgnoreCase) Then + MessageBox.Show(LocalizationService.ForSection("Main.SaveProjectAs")("InvalidDestination.Message"), LocalizationService.ForSection("Main.SaveProjectAs")("Error.Title"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + Exit Sub + End If + If Directory.Exists(targetRoot) AndAlso Directory.GetFileSystemEntries(targetRoot).Length > 0 Then + MessageBox.Show(LocalizationService.ForSection("Main.SaveProjectAs").Format("DestinationExists.Message", targetRoot), LocalizationService.ForSection("Main.SaveProjectAs")("Error.Title"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + Exit Sub + End If + + SaveDTProj() + CopyProjectDirectory(sourceRoot, targetRoot, sourceRoot) + + Dim targetSettingsPath = Path.Combine(targetRoot, "settings", "project.ini") + Dim settingsLines = File.ReadAllLines(targetSettingsPath, ASCII) + For lineIndex = 0 To settingsLines.Length - 1 + If settingsLines(lineIndex).StartsWith("Name=", StringComparison.OrdinalIgnoreCase) Then + settingsLines(lineIndex) = "Name=" & Quote & newProjectName & Quote + ElseIf settingsLines(lineIndex).StartsWith("Location=", StringComparison.OrdinalIgnoreCase) Then + settingsLines(lineIndex) = "Location=" & destinationRoot + End If + Next + File.WriteAllLines(targetSettingsPath, settingsLines, ASCII) + + Dim targetProjectFile = Path.Combine(targetRoot, newProjectName & ".dtproj") + File.WriteAllText(targetProjectFile, + "# DISMTools project file. File version: 0.1" & CrLf & + "[Settings]" & CrLf & + "SettingsInclude=\settings\project.ini" & CrLf & CrLf & + "[Project]" & CrLf & + "ProjName=" & newProjectName & CrLf & + "ProjGuid=" & Guid.NewGuid().ToString(), ASCII) + + Dim previousCommitOperation = imgCommitOperation + Try + imgCommitOperation = -1 + UnloadDTProj(False, False) + Finally + imgCommitOperation = previousCommitOperation + End Try + + ProgressPanel.OperationNum = 990 + LoadDTProj(targetProjectFile, newProjectName, True, False) + If Not isProjectLoaded OrElse + Not Path.GetFullPath(projPath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar).Equals(targetRoot, StringComparison.OrdinalIgnoreCase) Then + Throw New InvalidOperationException(LocalizationService.ForSection("Main.SaveProjectAs").Format("OpenCopyFailed.Message", targetProjectFile)) + End If + DynaLog.LogMessage("Save Project As completed successfully. The copied project is loaded.") + Catch ex As Exception + DynaLog.LogMessage("Could not save the project as a copy. Error message: " & ex.Message) + MessageBox.Show(LocalizationService.ForSection("Main.SaveProjectAs").Format("Error.Message", targetRoot, ex.Message), LocalizationService.ForSection("Main.SaveProjectAs")("Error.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error) + End Try + End Sub + + Private Sub CopyProjectDirectory(sourceDirectory As String, targetDirectory As String, sourceRoot As String) + Directory.CreateDirectory(targetDirectory) + + For Each sourceFile In Directory.GetFiles(sourceDirectory) + If sourceDirectory.Equals(sourceRoot, StringComparison.OrdinalIgnoreCase) AndAlso + Path.GetExtension(sourceFile).Equals(".dtproj", StringComparison.OrdinalIgnoreCase) Then Continue For + File.Copy(sourceFile, Path.Combine(targetDirectory, Path.GetFileName(sourceFile)), True) + Next + + For Each sourceChildDirectory In Directory.GetDirectories(sourceDirectory) + Dim relativePath = sourceChildDirectory.Substring(sourceRoot.Length).TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar) + Dim targetChildDirectory = Path.Combine(targetDirectory, Path.GetFileName(sourceChildDirectory)) + Directory.CreateDirectory(targetChildDirectory) + If IsTemporaryProjectPath(relativePath) Then Continue For + CopyProjectDirectory(sourceChildDirectory, targetChildDirectory, sourceRoot) + Next + End Sub + + Private Function IsTemporaryProjectPath(relativePath As String) As Boolean + Dim pathParts = relativePath.Split({Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar}, StringSplitOptions.RemoveEmptyEntries) + If pathParts.Length = 0 Then Return False + Return pathParts(0).Equals("mount", StringComparison.OrdinalIgnoreCase) OrElse + pathParts(0).Equals("scr_temp", StringComparison.OrdinalIgnoreCase) + End Function + Private Sub ImgBW_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles ImgBW.DoWork DynaLog.LogMessage("Preparing background processes...") DynaLog.LogMessage("- Background process action: " & bwBackgroundProcessAction) @@ -11403,31 +6720,7 @@ Public Class MainForm WatcherTimer.Enabled = True areBackgroundProcessesDone = True BackgroundProcessesButton.Image = GetGlyphResource("bg_ops_complete") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressLabel = "Image processes have completed" - Case "ESN" - progressLabel = "Los procesos de la imagen han completado" - Case "FRA" - progressLabel = "Les processus de l'image sont terminés" - Case "PTB", "PTG" - progressLabel = "Os processos de imagem foram concluídos" - Case "ITA" - progressLabel = "I processi dell'immagine sono stati completati" - End Select - Case 1 - progressLabel = "Image processes have completed" - Case 2 - progressLabel = "Los procesos de la imagen han completado" - Case 3 - progressLabel = "Les processus de l'image sont terminés" - Case 4 - progressLabel = "Os processos de imagem foram concluídos" - Case 5 - progressLabel = "I processi dell'immagine sono stati completati" - End Select + progressLabel = LocalizationService.ForSection("Main.BgProcesses")("ImageCompleted.Label") BGProcDetails.Label2.Text = progressLabel BGProcDetails.ProgressBar1.Value = BGProcDetails.ProgressBar1.Maximum DynaLog.LogMessage("Disposing of progress panel if not disposed of previously...") @@ -11614,6 +6907,30 @@ Public Class MainForm End If End Sub + Private Sub ReportManagerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReportManagerToolStripMenuItem.Click, ManageReportsToolStripMenuItem.Click + If Not isProjectLoaded OrElse OnlineManagement OrElse OfflineManagement OrElse String.IsNullOrWhiteSpace(projPath) Then + DynaLog.LogMessage("The report manager cannot be opened because no DISMTools project is loaded.") + MessageBox.Show(LocalizationService.ForSection("Main.ReportManager")("ProjectRequired.Message"), + LocalizationService.ForSection("Main.ReportManager")("Error.Title"), + MessageBoxButtons.OK, + MessageBoxIcon.Information) + Exit Sub + End If + + Dim reportsPath As String = Path.Combine(projPath, "reports") + Try + If Not Directory.Exists(reportsPath) Then Directory.CreateDirectory(reportsPath) + DynaLog.LogMessage("Opening project reports directory: " & Quote & reportsPath & Quote) + Process.Start(reportsPath) + Catch ex As Exception + DynaLog.LogMessage("Could not open the project reports directory. Path: " & Quote & reportsPath & Quote & "; reason: " & ex.Message) + MessageBox.Show(LocalizationService.ForSection("Main.ReportManager").Format("OpenFailed.Message", reportsPath, ex.Message), + LocalizationService.ForSection("Main.ReportManager")("Error.Title"), + MessageBoxButtons.OK, + MessageBoxIcon.Error) + End Try + End Sub + Private Sub ReportFeedbackToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReportFeedbackToolStripMenuItem.Click DynaLog.LogMessage("Launching page to report feedback...") Process.Start("https://github.com/CodingWonders/DISMTools/issues/new/choose") @@ -11985,37 +7302,13 @@ Public Class MainForm End Using Catch ex As WebException DynaLog.LogMessage("Could not get updater. Error message: " & ex.Status.ToString()) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("We couldn't download the update checker. Reason:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Check for updates") - Case "ESN" - MsgBox("No pudimos descargar el comprobador de actualizaciones. Razón:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Comprobar actualizaciones") - Case "FRA" - MsgBox("Nous n'avons pas pu télécharger le vérificateur de mise à jour. Raison :" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Vérifier les mises à jour du programme") - Case "PTB", "PTG" - MsgBox("Não foi possível descarregar o verificador de actualizações. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Verificar actualizações") - Case "ITA" - MsgBox("Non è stato possibile scaricare il programma di controllo degli aggiornamenti. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Verifica aggiornamenti") - End Select - Case 1 - MsgBox("We couldn't download the update checker. Reason:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Check for updates") - Case 2 - MsgBox("No pudimos descargar el comprobador de actualizaciones. Razón:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Comprobar actualizaciones") - Case 3 - MsgBox("Nous n'avons pas pu télécharger le vérificateur de mise à jour. Raison :" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Vérifier les mises à jour du programme") - Case 4 - MsgBox("Não foi possível descarregar o verificador de actualizações. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Verificar actualizações") - Case 5 - MsgBox("Non è stato possibile scaricare il programma di controllo degli aggiornamenti. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Verifica aggiornamenti") - End Select + MsgBox(LocalizationService.ForSection("Main.UpdateChecker").Format("Couldn.Tdownload.Message", ex.Status.ToString()), vbOKOnly + vbCritical, LocalizationService.ForSection("Main.UpdateChecker")("CheckUpdates.Title")) Exit Sub End Try DynaLog.LogMessage("Information to pass to updater:") DynaLog.LogMessage("- Branch: " & dtBranch) DynaLog.LogMessage("- Process ID (PID): " & Process.GetCurrentProcess().Id) - If File.Exists(Application.StartupPath & "\update.exe") Then Process.Start(Application.StartupPath & "\update.exe", "/" & dtBranch & " /pid=" & Process.GetCurrentProcess().Id) + If File.Exists(Application.StartupPath & "\update.exe") Then Process.Start(Application.StartupPath & "\update.exe", "/" & dtBranch & " /pid=" & Process.GetCurrentProcess().Id & " " & LocalizationService.GetLanguageCommandLineArgument()) End Sub Private Sub prjTreeView_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles prjTreeView.NodeMouseClick @@ -12088,31 +7381,7 @@ Public Class MainForm ' Count files fileCount = My.Computer.FileSystem.GetFiles(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\" & arches(x), FileIO.SearchOption.SearchAllSubDirectories).Count DynaLog.LogMessage("Count of ADK files for " & currentArch & ": " & fileCount) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case "ESN" - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case "FRA" - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case "PTB", "PTG" - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case "ITA" - MenuDesc.Text = "Preparazione copia strumenti implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select - Case 1 - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case 2 - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case 3 - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case 4 - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case 5 - MenuDesc.Text = "Preparazione alla copia degli strumenti di implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Prepare.Deploy.Tools.Label", If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Architecture.Label", archIntg), "")) CurrentFileInt = 0 For Each folder In My.Computer.FileSystem.GetDirectories(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\" & arches(x), FileIO.SearchOption.SearchAllSubDirectories) Directory.CreateDirectory(folder.Replace(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\" & arches(x), projPath & "\DandI\" & arches(x))) @@ -12129,31 +7398,7 @@ Public Class MainForm ' Count files DynaLog.LogMessage("Copying ADK files for x86...") Dim fileCount As Integer = My.Computer.FileSystem.GetFiles(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86", FileIO.SearchOption.SearchAllSubDirectories).Count - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case "ESN" - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case "FRA" - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case "PTB", "PTG" - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case "ITA" - MenuDesc.Text = "Preparazione copia strumenti implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select - Case 1 - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case 2 - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case 3 - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case 4 - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case 5 - MenuDesc.Text = "Preparazione alla copia degli strumenti di implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Prepare.Deploy.Tools.Label", If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Architecture.Label", archIntg), "")) Dim CurrentFileInt As Integer = 0 For Each folder In My.Computer.FileSystem.GetDirectories(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86", FileIO.SearchOption.SearchAllSubDirectories) Directory.CreateDirectory(folder.Replace(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86", projPath & "\DandI\x86")) @@ -12168,31 +7413,7 @@ Public Class MainForm ' Count files DynaLog.LogMessage("Copying ADK files for AMD64...") Dim fileCount As Integer = My.Computer.FileSystem.GetFiles(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64", FileIO.SearchOption.SearchAllSubDirectories).Count - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case "ESN" - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case "FRA" - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case "PTB", "PTG" - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case "ITA" - MenuDesc.Text = "Preparazione copia strumenti implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select - Case 1 - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case 2 - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case 3 - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case 4 - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case 5 - MenuDesc.Text = "Preparazione alla copia degli strumenti di implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Prepare.Deploy.Tools.Label", If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Architecture.Label", archIntg), "")) Dim CurrentFileInt As Integer = 0 For Each folder In My.Computer.FileSystem.GetDirectories(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64", FileIO.SearchOption.SearchAllSubDirectories) Directory.CreateDirectory(folder.Replace(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64", projPath & "\DandI\amd64")) @@ -12207,31 +7428,7 @@ Public Class MainForm ' Count files DynaLog.LogMessage("Copying ADK files for ARM...") Dim fileCount As Integer = My.Computer.FileSystem.GetFiles(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\arm", FileIO.SearchOption.SearchAllSubDirectories).Count - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case "ESN" - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case "FRA" - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case "PTB", "PTG" - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case "ITA" - MenuDesc.Text = "Preparazione copia strumenti implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select - Case 1 - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case 2 - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case 3 - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case 4 - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case 5 - MenuDesc.Text = "Preparazione alla copia degli strumenti di implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Prepare.Deploy.Tools.Label", If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Architecture.Label", archIntg), "")) Dim CurrentFileInt As Integer = 0 For Each folder In My.Computer.FileSystem.GetDirectories(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\arm", FileIO.SearchOption.SearchAllSubDirectories) Directory.CreateDirectory(folder.Replace(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\arm", projPath & "\DandI\arm")) @@ -12246,31 +7443,7 @@ Public Class MainForm ' Count files DynaLog.LogMessage("Copying ADK files for ARM64...") Dim fileCount As Integer = My.Computer.FileSystem.GetFiles(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\arm64", FileIO.SearchOption.SearchAllSubDirectories).Count - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case "ESN" - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case "FRA" - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case "PTB", "PTG" - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case "ITA" - MenuDesc.Text = "Preparazione copia strumenti implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select - Case 1 - MenuDesc.Text = "Preparing to copy deployment tools..." & If(adkCopyArg = 0, " (architecture " & archIntg & " of 4)", "") - Case 2 - MenuDesc.Text = "Preparándonos para copiar las herramientas de implementación..." & If(adkCopyArg = 0, " (arquitectura " & archIntg & " de 4)", "") - Case 3 - MenuDesc.Text = "Préparation de la copie des outils de déploiement en cours..." & If(adkCopyArg = 0, " (architecture " & archIntg & " de 4)", "") - Case 4 - MenuDesc.Text = "Preparar a cópia das ferramentas de implantação..." & If(adkCopyArg = 0, " (arquitetura " & archIntg & " de 4)", "") - Case 5 - MenuDesc.Text = "Preparazione alla copia degli strumenti di implementazione..." & If(adkCopyArg = 0, " (architettura " & archIntg & " di 4)", "") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Prepare.Deploy.Tools.Label", If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Architecture.Label", archIntg), "")) Dim CurrentFileInt As Integer = 0 For Each folder In My.Computer.FileSystem.GetDirectories(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\arm64", FileIO.SearchOption.SearchAllSubDirectories) Directory.CreateDirectory(folder.Replace(Environment.GetFolderPath(If(Environment.Is64BitOperatingSystem, Environment.SpecialFolder.ProgramFilesX86, Environment.SpecialFolder.ProgramFiles)) & "\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\arm64", projPath & "\DandI\arm64")) @@ -12331,84 +7504,12 @@ Public Class MainForm Try ' Detect if ADKs are present If DetectPossibleADKs() = 2 Then - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Deployment tools were copied to the project successfully" - Case "ESN" - MenuDesc.Text = "Las herramientas de implementación fueron copiadas al proyecto satisfactoriamente" - Case "FRA" - MenuDesc.Text = "Les outils de déploiement ont été copiés dans le projet avec succès." - Case "PTB", "PTG" - MenuDesc.Text = "As ferramentas de implementação foram copiadas para o projeto com sucesso" - Case "ITA" - MenuDesc.Text = "Copia strumenti di distribuzione nel progetto completata" - End Select - Case 1 - MenuDesc.Text = "Deployment tools were copied to the project successfully" - Case 2 - MenuDesc.Text = "Las herramientas de implementación fueron copiadas al proyecto satisfactoriamente" - Case 3 - MenuDesc.Text = "Les outils de déploiement ont été copiés dans le projet avec succès." - Case 4 - MenuDesc.Text = "As ferramentas de implementação foram copiadas para o projeto com sucesso" - Case 5 - MenuDesc.Text = "Copia strumenti di distribuzione nel progetto completata" - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopierBW.Background")("ToolsCopied.Label") Else - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Deployment tools aren't present on this system" - Case "ESN" - MenuDesc.Text = "Las herramientas de implementación no están presentes en este sistema" - Case "FRA" - MenuDesc.Text = "Les outils de déploiement ne sont pas présents sur ce système." - Case "PTB", "PTG" - MenuDesc.Text = "As ferramentas de implantação não estão presentes neste sistema" - Case "ITA" - MenuDesc.Text = "In questo sistema non sono presenti gli strumenti di implementazione" - End Select - Case 1 - MenuDesc.Text = "Deployment tools aren't present on this system" - Case 2 - MenuDesc.Text = "Las herramientas de implementación no están presentes en este sistema" - Case 3 - MenuDesc.Text = "Les outils de déploiement ne sont pas présents sur ce système." - Case 4 - MenuDesc.Text = "As ferramentas de implantação não estão presentes neste sistema" - Case 5 - MenuDesc.Text = "In questo sistema non sono presenti gli strumenti di implementazione" - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopierBW.Background")("Deployment.Tools.Aren.Item") End If Catch ex As Exception - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Deployment tools could not be copied" - Case "ESN" - MenuDesc.Text = "Las herramientas de implementación no pudieron ser copiadas" - Case "FRA" - MenuDesc.Text = "Les outils de déploiement n'ont pas pu être copiés." - Case "PTB", "PTG" - MenuDesc.Text = "Não foi possível copiar as ferramentas de implantação" - Case "ITA" - MenuDesc.Text = "Non è stato possibile copiare gli strumenti di implementazione" - End Select - Case 1 - MenuDesc.Text = "Deployment tools could not be copied" - Case 2 - MenuDesc.Text = "Las herramientas de implementación no pudieron ser copiadas" - Case 3 - MenuDesc.Text = "Les outils de déploiement n'ont pas pu être copiés." - Case 4 - MenuDesc.Text = "Não foi possível copiar as ferramentas de implantação" - Case 5 - MenuDesc.Text = "Non è stato possibile copiare gli strumenti di implementazione" - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopierBW.Background")("Deployment.Tools.Copied.Item") If AdkCopyEx IsNot Nothing Then MenuDesc.Text &= " (" & AdkCopyEx.Message & ")" End If @@ -12418,135 +7519,15 @@ Public Class MainForm Private Sub ADKCopierBW_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles ADKCopierBW.ProgressChanged Select Case adkCopyArg Case 0 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Copying deployment tools for architecture (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case "ESN" - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case "FRA" - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case "PTB", "PTG" - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case "ITA" - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select - Case 1 - MenuDesc.Text = "Copying deployment tools for architecture (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case 2 - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case 3 - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case 4 - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case 5 - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (" & currentArch & ", " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Copying.Deployment.Label", currentArch, e.ProgressPercentage, If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Progress.Architecture.Label", archIntg), "")) Case 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Copying deployment tools for architecture (x86, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case "ESN" - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (x86, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case "FRA" - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (x86," & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case "PTB", "PTG" - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (x86, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case "ITA" - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (x86, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select - Case 1 - MenuDesc.Text = "Copying deployment tools for architecture (x86, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case 2 - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (x86, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case 3 - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (x86," & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case 4 - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (x86, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case 5 - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (x86, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Copying.Deployment.Label", "x86", e.ProgressPercentage, If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Progress.Architecture.Label", archIntg), "")) Case 2 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Copying deployment tools for architecture (amd64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case "ESN" - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (amd64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case "FRA" - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (amd64," & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case "PTB", "PTG" - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (amd64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case "ITA" - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (amd64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select - Case 1 - MenuDesc.Text = "Copying deployment tools for architecture (amd64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case 2 - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (amd64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case 3 - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (amd64," & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case 4 - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (amd64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case 5 - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (amd64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Copying.Deployment.Label", "amd64", e.ProgressPercentage, If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Progress.Architecture.Label", archIntg), "")) Case 3 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Copying deployment tools for architecture (arm, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case "ESN" - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (arm, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case "FRA" - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (arm," & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case "PTB", "PTG" - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (arm, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case "ITA" - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (arm, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select - Case 1 - MenuDesc.Text = "Copying deployment tools for architecture (arm, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case 2 - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (arm, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case 3 - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (arm," & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case 4 - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (arm, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case 5 - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (arm, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Copying.Deployment.Label", "arm", e.ProgressPercentage, If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Progress.Architecture.Label", archIntg), "")) Case 4 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MenuDesc.Text = "Copying deployment tools for architecture (arm64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case "ESN" - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (arm64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case "FRA" - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (arm64," & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case "PTB", "PTG" - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (arm64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case "ITA" - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (arm64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select - Case 1 - MenuDesc.Text = "Copying deployment tools for architecture (arm64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " of 4)...", ")...") - Case 2 - MenuDesc.Text = "Copiando herramientas de implementación para la arquitectura (arm64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitectura " & archIntg & " de 4)...", ")...") - Case 3 - MenuDesc.Text = "Copie des outils de déploiement pour l'architecture en cours (arm64," & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architecture " & archIntg & " de 4)...", ") ...") - Case 4 - MenuDesc.Text = "Cópia das ferramentas de implementação para a arquitetura (arm64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", arquitetura " & archIntg & " de 4)...", ")...") - Case 5 - MenuDesc.Text = "Copia strumenti implementazione per l'architettura (arm64, " & e.ProgressPercentage & "%" & If(adkCopyArg = 0, ", architettura " & archIntg & " di 4)...", ")...") - End Select + MenuDesc.Text = LocalizationService.ForSection("Main.ADKCopy").Format("Copying.Deployment.Label", "arm64", e.ProgressPercentage, If(adkCopyArg = 0, LocalizationService.ForSection("Main.ADKCopy").Format("Progress.Architecture.Label", archIntg), "")) End Select End Sub @@ -12628,7 +7609,7 @@ Public Class MainForm ImgIndexDelete.ShowDialog(Me) End Sub - Private Sub SwitchImageIndexesToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles SwitchImageIndexesToolStripMenuItem1.Click + Private Sub SwitchImageIndexesToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles SwitchImageIndexesToolStripMenuItem1.Click, SwitchImageIndexesToolStripMenuItem.Click ImgIndexSwitch.ShowDialog(Me) End Sub @@ -12728,31 +7709,7 @@ Public Class MainForm Private Sub GetDrivers_Click(sender As Object, e As EventArgs) Handles GetDrivers.Click DynaLog.LogMessage("Opening driver information dialog...") ProgressPanel.OperationNum = 994 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting installed driver packages..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo paquetes de controladores instalados..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des paquets de pilotes installés en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter pacotes de controladores instalados..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica pacchetti driver installati..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting installed driver packages..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo paquetes de controladores instalados..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des paquets de pilotes installés en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter pacotes de controladores instalados..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica pacchetti driver installati..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main.GetDrivers")("Loading.DriverPackages.Label") If Not CompletedTasks(4) Then DynaLog.LogMessage("Device driver background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -12787,31 +7744,7 @@ Public Class MainForm If Not IsImageMounted Then Exit Sub DynaLog.LogMessage("Opening feature information dialog...") ProgressPanel.OperationNum = 994 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting feature names and their state..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de características y sus estados..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des noms des caractéristiques et de leur état en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter os nomes das características e o seu estado..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica nomi e stato funzionalità..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting feature names and their state..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de características y sus estados..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des noms des caractéristiques et de leur état en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter os nomes das características e o seu estado..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica nomi e stato funzionalità..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main.GetFeatures")("Getting.Feature.Names.Label") If Not CompletedTasks(1) Then DynaLog.LogMessage("Feature background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -12825,61 +7758,13 @@ Public Class MainForm DynaLog.LogMessage("Checking edition and version information for any unmet requirements...") If (CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise) Or Not IsWindows10OrHigher(MountDir & "\Windows\system32\ntoskrnl.exe") Then DynaLog.LogMessage("The image is not supported") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("In questa immagine questa azione non è supportata", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("Main.GetCapabilities.Actions")("UnsupportedImage.Message"), vbOKOnly + vbCritical, Text) Exit Sub End If DynaLog.LogMessage("All requirements are met. Continuing with the task...") DynaLog.LogMessage("Opening capability information dialog...") ProgressPanel.OperationNum = 994 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting capability names and their state..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de funcionalidades y sus estados..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des noms des capacités et de leur état en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter os nomes das capacidades e o seu estado..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica nomi capacità e relativo stato..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting capability names and their state..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de funcionalidades y sus estados..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des noms des capacités et de leur état en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter os nomes das capacidades e o seu estado..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica nomi capacità e relativo stato..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main.GetCapabilities")("Cap.Names.Their.Label") If Not CompletedTasks(3) Then DynaLog.LogMessage("Capability background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -12892,31 +7777,7 @@ Public Class MainForm Private Sub GetPackages_Click(sender As Object, e As EventArgs) Handles GetPackages.Click DynaLog.LogMessage("Opening OS package information dialog...") ProgressPanel.OperationNum = 993 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting package names..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de paquetes..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des noms de paquets en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter nomes de pacotes..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica nomi pacchetti..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting package names..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de paquetes..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des noms de paquets en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter nomes de pacotes..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica nomi pacchetti..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main.GetPackages")("Getting.Package.Names.Label") If Not CompletedTasks(0) Then DynaLog.LogMessage("OS package background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -12930,61 +7791,13 @@ Public Class MainForm DynaLog.LogMessage("Checking edition and version information for any unmet requirements...") If (CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise) Or Not IsWindows8OrHigher(MountDir & "\Windows\system32\ntoskrnl.exe") Then DynaLog.LogMessage("The image is not supported") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("In questa immagine questa azione non è supportata", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("In questa immagine questa azione non è supportata", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("Main.ProvAppx")("UnsupportedImage.Message"), vbOKOnly + vbCritical, Text) Exit Sub End If DynaLog.LogMessage("All requirements are met. Continuing with the task...") DynaLog.LogMessage("Opening AppX package information dialog...") ProgressPanel.OperationNum = 993 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting package names..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de paquetes..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des noms de paquets en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter nomes de pacotes..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica nomi pacchetti..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting package names..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de paquetes..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des noms de paquets en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter nomes de pacotes..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica nomi pacchetti..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main.GetProvAppx")("Getting.Package.Names.Label") If Not CompletedTasks(2) Then DynaLog.LogMessage("AppX package background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -13007,41 +7820,8 @@ Public Class MainForm GetAppxPkgInfoDlg.PictureBox2.Image.Save(AppxResSFD.FileName, Imaging.ImageFormat.Png) Notifications.Visible = True Notifications.Icon = Icon - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Notifications.BalloonTipText = "The asset has been saved to the location you specified" - Notifications.BalloonTipTitle = "Save successful" - Case "ESN" - Notifications.BalloonTipText = "El recurso ha sido guardado en la ubicación que especificó" - Notifications.BalloonTipTitle = "Guardado satisfactorio" - Case "FRA" - Notifications.BalloonTipText = "Le fichier a été sauvegardé à l'emplacement que vous avez spécifié." - Notifications.BalloonTipTitle = "Sauvegarde du fichier réussie" - Case "PTB", "PTG" - Notifications.BalloonTipText = "O recurso foi guardado no local indicado" - Notifications.BalloonTipTitle = "Guardado com sucesso" - Case "ITA" - Notifications.BalloonTipText = "La risorsa è stata salvata nella posizione specificata" - Notifications.BalloonTipTitle = "Il salvataggio è stato completato correttamente" - End Select - Case 1 - Notifications.BalloonTipText = "The asset has been saved to the location you specified" - Notifications.BalloonTipTitle = "Save successful" - Case 2 - Notifications.BalloonTipText = "El recurso ha sido guardado en la ubicación que especificó" - Notifications.BalloonTipTitle = "Guardado satisfactorio" - Case 3 - Notifications.BalloonTipText = "Le fichier a été sauvegardé à l'emplacement que vous avez spécifié." - Notifications.BalloonTipTitle = "Sauvegarde du fichier réussie" - Case 4 - Notifications.BalloonTipText = "O recurso foi guardado no local indicado" - Notifications.BalloonTipTitle = "Guardado com sucesso" - Case 5 - Notifications.BalloonTipText = "La risorsa è stata salvata nella posizione specificata" - Notifications.BalloonTipTitle = "Il salvataggio è è stato completato correttamente" - End Select + Notifications.BalloonTipText = LocalizationService.ForSection("Main.SaveAsset")("Saved.Location.Label") + Notifications.BalloonTipTitle = LocalizationService.ForSection("Main.SaveAsset")("SaveSuccessful.Title") Notifications.ShowBalloonTip(3000) Catch ex As Exception DynaLog.LogMessage("Could not save logo asset. Error message: " & ex.Message) @@ -13056,41 +7836,8 @@ Public Class MainForm Clipboard.SetDataObject(data, True) Notifications.Visible = True Notifications.Icon = Icon - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Notifications.BalloonTipText = "The asset has been copied to the clipboard" - Notifications.BalloonTipTitle = "Copy successful" - Case "ESN" - Notifications.BalloonTipText = "El recurso ha sido copiado al portapapeles" - Notifications.BalloonTipTitle = "Copia satisfactoria" - Case "FRA" - Notifications.BalloonTipText = "Le fichier a été copié dans le presse-papiers." - Notifications.BalloonTipTitle = "Copie du fichier réussie" - Case "PTB", "PTG" - Notifications.BalloonTipText = "O recurso foi copiado para a área de transferência" - Notifications.BalloonTipTitle = "Cópia com sucesso" - Case "ITA" - Notifications.BalloonTipText = "La risorsa è stata copiata negli appunti" - Notifications.BalloonTipTitle = "Copia completata" - End Select - Case 1 - Notifications.BalloonTipText = "The asset has been copied to the clipboard" - Notifications.BalloonTipTitle = "Copy successful" - Case 2 - Notifications.BalloonTipText = "El recurso ha sido copiado al portapapeles" - Notifications.BalloonTipTitle = "Copia satisfactoria" - Case 3 - Notifications.BalloonTipText = "Le fichier a été copié dans le presse-papiers." - Notifications.BalloonTipTitle = "Copie du fichier réussie" - Case 4 - Notifications.BalloonTipText = "O recurso foi copiado para a área de transferência" - Notifications.BalloonTipTitle = "Cópia com sucesso" - Case 5 - Notifications.BalloonTipText = "La risorsa è stata copiata negli appunti" - Notifications.BalloonTipTitle = "Copia riuscita" - End Select + Notifications.BalloonTipText = LocalizationService.ForSection("Main.CopyAsset")("Copied.Clipboard.Label") + Notifications.BalloonTipTitle = LocalizationService.ForSection("Main.CopyAsset")("CopySuccessful.Title") Notifications.ShowBalloonTip(3000) Catch ex As Exception DynaLog.LogMessage("Could not copy logo asset. Error message: " & ex.Message) @@ -13211,32 +7958,12 @@ Public Class MainForm #Region "Task Links" + Private Sub LinkLabel14_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel14.LinkClicked + Button26.PerformClick() + End Sub + Private Sub LinkLabel15_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel15.LinkClicked - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ProjProperties.ImageTaskHeader1.ItemText = "Properties" - Case "ESN" - ProjProperties.ImageTaskHeader1.ItemText = "Propiedades" - Case "FRA" - ProjProperties.ImageTaskHeader1.ItemText = "Propriétés" - Case "PTB", "PTG" - ProjProperties.ImageTaskHeader1.ItemText = "Propriedades" - Case "ITA" - ProjProperties.ImageTaskHeader1.ItemText = "Proprietà" - End Select - Case 1 - ProjProperties.ImageTaskHeader1.ItemText = "Properties" - Case 2 - ProjProperties.ImageTaskHeader1.ItemText = "Propiedades" - Case 3 - ProjProperties.ImageTaskHeader1.ItemText = "Propriétés" - Case 4 - ProjProperties.ImageTaskHeader1.ItemText = "Propriedades" - Case 5 - ProjProperties.ImageTaskHeader1.ItemText = "Proprietà" - End Select + ProjProperties.ImageTaskHeader1.ItemText = LocalizationService.ForSection("Main.Links")("Props.Label") If Environment.OSVersion.Version.Major = 10 Then ProjProperties.Text = "" Else @@ -13294,31 +8021,7 @@ Public Class MainForm End Sub Private Sub LinkLabel20_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel20.LinkClicked - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ProjProperties.ImageTaskHeader1.ItemText = "Properties" - Case "ESN" - ProjProperties.ImageTaskHeader1.ItemText = "Propiedades" - Case "FRA" - ProjProperties.ImageTaskHeader1.ItemText = "Propriétés" - Case "PTB", "PTG" - ProjProperties.ImageTaskHeader1.ItemText = "Propriedades" - Case "ITA" - ProjProperties.ImageTaskHeader1.ItemText = "Proprietà" - End Select - Case 1 - ProjProperties.ImageTaskHeader1.ItemText = "Properties" - Case 2 - ProjProperties.ImageTaskHeader1.ItemText = "Propiedades" - Case 3 - ProjProperties.ImageTaskHeader1.ItemText = "Propriétés" - Case 4 - ProjProperties.ImageTaskHeader1.ItemText = "Propriedades" - Case 5 - ProjProperties.ImageTaskHeader1.ItemText = "Proprietà" - End Select + ProjProperties.ImageTaskHeader1.ItemText = LocalizationService.ForSection("Main.Links")("ProjProps.Label") If Environment.OSVersion.Version.Major = 10 Then ProjProperties.Text = "" Else @@ -13473,31 +8176,7 @@ Public Class MainForm Private Sub Button34_Click(sender As Object, e As EventArgs) Handles Button34.Click DynaLog.LogMessage("Opening OS package information dialog...") ProgressPanel.OperationNum = 993 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting package names..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de paquetes..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des noms de paquets en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter nomes de pacotes..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica nomi pacchetti..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting package names..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de paquetes..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des noms de paquets en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter nomes de pacotes..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica nomi pacchetti..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main")("Getting.Package.Names.Label") If Not CompletedTasks(0) Then DynaLog.LogMessage("OS package background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -13544,31 +8223,7 @@ Public Class MainForm If Not IsImageMounted Then Exit Sub DynaLog.LogMessage("Opening feature information dialog...") ProgressPanel.OperationNum = 994 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting feature names and their state..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de características y sus estados..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des noms des caractéristiques et de leur état en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter os nomes das características e o seu estado..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica nomi e stato funzionalità..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting feature names and their state..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de características y sus estados..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des noms des caractéristiques et de leur état en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter os nomes das características e o seu estado..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica nomi e stato funzionalità..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main")("Getting.Feature.Names.Label") If Not CompletedTasks(1) Then DynaLog.LogMessage("Feature background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -13615,63 +8270,15 @@ Public Class MainForm Private Sub Button45_Click(sender As Object, e As EventArgs) Handles Button45.Click DynaLog.LogMessage("Checking edition and version information for any unmet requirements...") - If (CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise) Or Not IsWindows8OrHigher(MountDir & "\Windows\system32\ntoskrnl.exe") Then - DynaLog.LogMessage("The image is not supported") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("In questa immagine questa azione non è supportata", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("In questa immagine questa azione non è supportata", vbOKOnly + vbCritical, Text) - End Select + If (CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise) Or Not IsWindows8OrHigher(MountDir & "\Windows\system32\ntoskrnl.exe") Then + DynaLog.LogMessage("The image is not supported") + MsgBox(LocalizationService.ForSection("Main.Actions")("UnsupportedImage.Message"), vbOKOnly + vbCritical, Text) Exit Sub End If DynaLog.LogMessage("All requirements are met. Continuing with the task...") DynaLog.LogMessage("Opening AppX package information dialog...") ProgressPanel.OperationNum = 993 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting package names..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de paquetes..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des noms de paquets en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter nomes de pacotes..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica nomi pacchetti..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting package names..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de paquetes..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des noms de paquets en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter nomes de pacotes..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica nomi pacchetti..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main")("Wait.Label") If Not CompletedTasks(2) Then DynaLog.LogMessage("AppX package background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -13711,61 +8318,13 @@ Public Class MainForm DynaLog.LogMessage("Checking edition and version information for any unmet requirements...") If (CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise) Or Not IsWindows10OrHigher(MountDir & "\Windows\system32\ntoskrnl.exe") Then DynaLog.LogMessage("The image is not supported") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("In questa immagine questa azione non è supportata", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("In questa immagine questa azione non è supportata", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("Main.Actions")("UnsupportedImage.Message"), vbOKOnly + vbCritical, Text) Exit Sub End If DynaLog.LogMessage("All requirements are met. Continuing with the task...") DynaLog.LogMessage("Opening capability information dialog...") ProgressPanel.OperationNum = 994 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting capability names and their state..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de funcionalidades y sus estados..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des noms des capacités et de leur état en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter os nomes das capacidades e o seu estado..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica nomi capacità e relativo stato..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting capability names and their state..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo nombres de funcionalidades y sus estados..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des noms des capacités et de leur état en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter os nomes das capacidades e o seu estado..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica nomi capacità e relativo stato..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main")("Get.Cap.Names.Label") If Not CompletedTasks(3) Then DynaLog.LogMessage("Capability background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -13801,31 +8360,7 @@ Public Class MainForm Private Sub Button52_Click(sender As Object, e As EventArgs) Handles Button52.Click DynaLog.LogMessage("Opening driver information dialog...") ProgressPanel.OperationNum = 994 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting installed driver packages..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo paquetes de controladores instalados..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des paquets de pilotes installés en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter pacotes de controladores instalados..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Verifica pacchetti driver installati..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting installed driver packages..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo paquetes de controladores instalados..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des paquets de pilotes installés en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter pacotes de controladores instalados..." - Case 5 - PleaseWaitDialog.Label2.Text = "Verifica pacchetti driver installati..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("Main")("Loading.DriverPackages.Label") If Not CompletedTasks(4) Then DynaLog.LogMessage("Device driver background processes haven't completed.") PleaseWaitDialog.ShowDialog(Me) @@ -13892,29 +8427,124 @@ Public Class MainForm #End Region + Private Function LoadNewsFeedFromUrl(rssUrl As String) As SyndicationFeed + Dim rssContent As String = "" + + Using client As New WebClient() + client.Headers(HttpRequestHeader.UserAgent) = "DISMTools/0.8 (+https://github.com/CodingWonders/DISMTools)" + client.Headers(HttpRequestHeader.Accept) = "application/rss+xml, application/xml;q=0.9, text/xml;q=0.8, */*;q=0.7" + client.Headers(HttpRequestHeader.AcceptLanguage) = "en-US,en;q=0.9" + rssContent = client.DownloadString(rssUrl) + End Using + + If String.IsNullOrWhiteSpace(rssContent) Then Throw New InvalidDataException("The feed response was empty.") + + DynaLog.LogMessage("RSS Feed Content is not nothing. Attempting to create XML reader from content...") + Using reader As XmlReader = XmlReader.Create(New StringReader(rssContent)) + DynaLog.LogMessage("Loading reader...") + Return SyndicationFeed.Load(reader) + End Using + End Function + + Private Function HasFeedItems(feed As SyndicationFeed) As Boolean + Return feed IsNot Nothing AndAlso feed.Items IsNot Nothing AndAlso feed.Items.Any() + End Function + + Private Function GetNewsLastUpdatedText() As String + Dim currentOSCulture As CultureInfo = CultureInfo.CurrentCulture + Dim dateText As String = If(HumanizeDates, + String.Format("{0}, {1}", NewsLastUpdateDate.ToString(currentOSCulture.DateTimeFormat.LongDatePattern, currentOSCulture), + NewsLastUpdateDate.ToString(currentOSCulture.DateTimeFormat.LongTimePattern, currentOSCulture)), + NewsLastUpdateDate.ToString("MM/dd/yyyy HH:mm:ss")) + + Dim lastUpdatedPrefix As String = LocalizationService.ForSection("Main.News")("Last.Updated.Label") + + Return String.Format("{0} {1}", lastUpdatedPrefix.TrimEnd(), dateText) + End Function + + Private Sub RenderNewsFeed() + DynaLog.LogMessage("Refreshing news feed...") + + If HasFeedItems(FeedContents) Then + Label8.Text = GetNewsLastUpdatedText() + NewsItemCardContainerPanel.Controls.Clear() + FeedLinks.Clear() + + Dim ValueAddedTop As Integer = WindowHelper.ScaleLogical(8), + PreviousTop As Integer + Dim FirstCard As Boolean = True + Dim sortedArticles As IOrderedEnumerable(Of SyndicationItem) = FeedContents.Items.OrderByDescending(Function(article) article.PublishDate) + Dim ItemCardControls As New List(Of NewsFeedItemCard) + + For Each Article In sortedArticles + Dim newsCard As New NewsFeedItemCard() + newsCard.SetColors() + newsCard.FeedItemText = Article.Title.Text + newsCard.FeedItemDate = TimeZoneInfo.ConvertTime(Article.PublishDate.DateTime, TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"), TimeZoneInfo.FindSystemTimeZoneById("Central European Standard Time")) + newsCard.FeedItemLink = Article.Links(0).Uri.AbsoluteUri + newsCard.FeedItemContents = CType(Article.Content, TextSyndicationContent).Text + newsCard.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right + newsCard.Left = WindowHelper.ScaleLogical(8) + newsCard.Top = If(FirstCard, ValueAddedTop, PreviousTop + newsCard.Height + ValueAddedTop) + newsCard.Width = NewsItemCardContainerPanel.Width - 32 + FirstCard = False + PreviousTop = newsCard.Top + AddHandler newsCard.LinkContentsEvent, AddressOf DisplayFeedItemCardContent + ItemCardControls.Add(newsCard) + Next + + NewsItemCardContainerPanel.Controls.AddRange(ItemCardControls.ToArray()) + Panel12.Visible = False + Else + If FeedEx IsNot Nothing Then + DynaLog.LogMessage("Could not get feed news. Error message: " & FeedEx.Message) + Else + DynaLog.LogMessage("Could not get feed news. No feed items were returned.") + End If + Panel12.Visible = True + End If + End Sub + Sub GetFeedNews() - NewsLastUpdateDate = Date.Now DynaLog.LogMessage("Pulling news feed from DISMTools subreddit...") - FeedContents = New SyndicationFeed() ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 - Try - Dim rssUrl As String = "https://reddit.com/r/DISMTools.rss" - Dim rssContent As String = "" - Using client As New WebClient() - client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36") - rssContent = client.DownloadString(rssUrl) - End Using - If Not String.IsNullOrWhiteSpace(rssContent) Then - DynaLog.LogMessage("RSS Feed Content is not nothing. Attempting to create XML reader from content...") - Dim reader As XmlReader = XmlReader.Create(New StringReader(rssContent)) - DynaLog.LogMessage("Loading reader...") - FeedContents = SyndicationFeed.Load(reader) - reader.Close() - End If - Catch ex As Exception - DynaLog.LogMessage("Failed to get feed news. Error message: " & ex.Message) - FeedEx = ex - End Try + FeedEx = Nothing + + Dim previousFeed As SyndicationFeed = FeedContents + Dim feedUrls() As String = { + "https://www.reddit.com/r/DISMTools/.rss", + "https://old.reddit.com/r/DISMTools/.rss", + "https://reddit.com/r/DISMTools.rss" + } + Dim feedErrors As New List(Of String) + Dim lastException As Exception = Nothing + + For Each rssUrl As String In feedUrls + Try + DynaLog.LogMessage("Trying news feed URL: " & rssUrl) + Dim loadedFeed As SyndicationFeed = LoadNewsFeedFromUrl(rssUrl) + If HasFeedItems(loadedFeed) Then + FeedContents = loadedFeed + NewsLastUpdateDate = Date.Now + DynaLog.LogMessage("News feed loaded successfully from: " & rssUrl) + Return + End If + Dim emptyFeedException As New InvalidDataException("The feed did not contain any items.") + lastException = emptyFeedException + feedErrors.Add(String.Format("{0}: {1}", rssUrl, emptyFeedException.Message)) + DynaLog.LogMessage("News feed URL returned no items: " & rssUrl) + Catch ex As Exception + lastException = ex + feedErrors.Add(String.Format("{0}: {1}", rssUrl, ex.Message)) + DynaLog.LogMessage("News feed URL failed: " & rssUrl & ". Error message: " & ex.Message) + End Try + Next + + If HasFeedItems(previousFeed) Then FeedContents = previousFeed Else FeedContents = New SyndicationFeed() + + Dim errorDetails As String = If(feedErrors.Any(), String.Join(" | ", feedErrors), "No feed URL returned usable content.") + FeedEx = New Exception("Could not load DISMTools news feed. " & errorDetails, lastException) + DynaLog.LogMessage("Failed to get feed news. Error message: " & FeedEx.Message) End Sub Private Sub HelpTopicsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HelpTopicsToolStripMenuItem.Click @@ -13960,7 +8590,7 @@ Public Class MainForm If FeedWorker.CancellationPending Then Exit Sub DynaLog.LogMessage("Getting feed news...") GetFeedNews() - DynaLog.LogMessage("Reporting progress to UI. We got feeds!!!") + DynaLog.LogMessage("Reporting feed result to UI.") FeedWorker.ReportProgress(0) If Not FeedWorker.CancellationPending Then Thread.Sleep(2000) End Sub @@ -14029,46 +8659,12 @@ Public Class MainForm End Sub Private Sub FeedWorker_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles FeedWorker.ProgressChanged - DynaLog.LogMessage("Refreshing news feed...") - Dim currentOSCulture As CultureInfo = CultureInfo.CurrentCulture - Label8.Text = String.Format("News last updated: {0}", If(HumanizeDates, - String.Format("{0}, {1}", NewsLastUpdateDate.ToString(currentOSCulture.DateTimeFormat.LongDatePattern, currentOSCulture), - NewsLastUpdateDate.ToString(currentOSCulture.DateTimeFormat.LongTimePattern, currentOSCulture)), - NewsLastUpdateDate.ToString("MM/dd/yyyy HH:mm:ss"))) - NewsItemCardContainerPanel.Controls.Clear() - FeedLinks.Clear() Try - DynaLog.LogMessage("Items in feed: " & FeedContents.Items.Count) - If FeedContents.Items.Count > 0 Then - Dim ValueAddedTop As Integer = WindowHelper.ScaleLogical(8), - PreviousTop As Integer - Dim FirstCard As Boolean = True - - Dim sortedArticles As IOrderedEnumerable(Of SyndicationItem) = FeedContents.Items.OrderByDescending(Function(article) article.PublishDate) - Dim ItemCardControls As New List(Of NewsFeedItemCard) - For Each Article In sortedArticles - Dim newsCard As New NewsFeedItemCard() - newsCard.SetColors() - newsCard.FeedItemText = Article.Title.Text - newsCard.FeedItemDate = TimeZoneInfo.ConvertTime(Article.PublishDate.DateTime, TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"), TimeZoneInfo.FindSystemTimeZoneById("Central European Standard Time")) - newsCard.FeedItemLink = Article.Links(0).Uri.AbsoluteUri - newsCard.FeedItemContents = CType(Article.Content, TextSyndicationContent).Text - newsCard.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right - newsCard.Left = WindowHelper.ScaleLogical(8) - newsCard.Top = If(FirstCard, ValueAddedTop, PreviousTop + newsCard.Height + ValueAddedTop) - newsCard.Width = NewsItemCardContainerPanel.Width - 32 - FirstCard = False - PreviousTop = newsCard.Top - AddHandler newsCard.LinkContentsEvent, AddressOf DisplayFeedItemCardContent - ItemCardControls.Add(newsCard) - Next - NewsItemCardContainerPanel.Controls.AddRange(ItemCardControls.ToArray()) - Else - DynaLog.LogMessage("Could not get feed news. Error message: " & FeedEx.Message) - End If - Panel12.Visible = Not FeedContents.Items.Any() + DynaLog.LogMessage("Items in feed: " & If(FeedContents IsNot Nothing AndAlso FeedContents.Items IsNot Nothing, FeedContents.Items.Count(), 0)) + RenderNewsFeed() Catch ex As Exception DynaLog.LogMessage("Could not get feed news. Error message: " & ex.Message) + FeedEx = ex Panel12.Visible = True End Try End Sub @@ -14194,92 +8790,14 @@ Public Class MainForm osUninstReg.Close() DynaLog.LogMessage("OS Uninstallation Window: " & RollbackDays & " day(s)") Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "You have " & RollbackDays & " days to go back to the old version of Windows." & CrLf & CrLf & - "- To increase or decrease this uninstall window, go to Commands -> OS uninstall -> Set uninstall window..." & CrLf & - "- To initiate the OS rollback, go to Commands -> OS uninstall -> Initiate uninstall..." & CrLf & - "- To remove the ability to revert to the old version, go to Commands -> OS uninstall -> Remove roll back ability..." - Case "ESN" - msg = "Tiene " & RollbackDays & " días para volver a la versión anterior de Windows." & CrLf & CrLf & - "- Para aumentar o reducir este margen de desinstalación, vaya a Comandos -> Desinstalación del sistema operativo -> Establecer margen de desinstalación..." & CrLf & - "- Para iniciar la desinstalación, vaya a Comandos -> Desinstalación del sistema operativo -> Iniciar desinstalación..." & CrLf & - "- Para eliminar la habilidad de revertir a la versión anterior, vaya a Comandos -> Desinstalación del sistema operativo -> Eliminar habilidad de desinstalación..." - Case "FRA" - msg = "Vous avez " & RollbackDays & " jours pour revenir à l'ancienne version de Windows." & CrLf & CrLf & - "- Pour augmenter ou réduire cette créneau de désinstallation, allez dans Commandes -> Désinstallation du système d'exploitation -> Définir la créneau de désinstallation..." & CrLf & - "- Pour démarrer le retour en arrière du système d'exploitation, cliquez sur Commandes -> Désinstallation du système d'exploitation -> Démarrer la désinstallation..." & CrLf & - "- Pour supprimer la possibilité de revenir à l'ancienne version, cliquez sur Commandes -> Désinstallation du système d'exploitation -> Supprimer la possibilité de revenir en arrière..." - Case "PTB", "PTG" - msg = "Tem " & RollbackDays & " dias para voltar à versão antiga do Windows." & CrLf & CrLf & - "- Para aumentar ou diminuir esta janela de desinstalação, aceda a Comandos -> Desinstalação do sistema operativo -> Definir janela de desinstalação..." & CrLf & - "- Para iniciar a reversão do SO, aceda a Comandos -> Desinstalação do sistema operativo -> Iniciar desinstalação..." & CrLf & - "- Para remover a capacidade de reverter para a versão antiga, vá para Comandos -> Desinstalação do sistema operacional -> Remover capacidade de reversão..." - Case "ITA" - msg = "Hai a disposizione " & RollbackDays & " giorni per tornare alla vecchia versione di Windows." & CrLf & CrLf & - "- Per aumentare o diminuire questa finestra di disinstallazione, vai su Comandi -> Disinstallazione del sistema operativo -> Imposta finestra disinstallazione..." & CrLf & - "- Per avviare il rollback del sistema operativo, vai su Comandi -> Disinstallazione del sistema operativo -> Avvia disinstallazione..." & CrLf & - "- Per rimuovere la possibilità di tornare alla vecchia versione, vai su Comandi -> Disinstallazione del sistema operativo -> Rimuovi la possibilità di fallback..." - End Select - Case 1 - msg = "You have " & RollbackDays & " days to go back to the old version of Windows." & CrLf & CrLf & - "- To increase or decrease this uninstall window, go to Commands -> OS uninstall -> Set uninstall window..." & CrLf & - "- To initiate the OS rollback, go to Commands -> OS uninstall -> Initiate uninstall..." & CrLf & - "- To remove the ability to revert to the old version, go to Commands -> OS uninstall -> Remove roll back ability..." - Case 2 - msg = "Tiene " & RollbackDays & " días para volver a la versión anterior de Windows." & CrLf & CrLf & - "- Para aumentar o reducir este margen de desinstalación, vaya a Comandos -> Desinstalación del sistema operativo -> Establecer margen de desinstalación..." & CrLf & - "- Para iniciar la desinstalación, vaya a Comandos -> Desinstalación del sistema operativo -> Iniciar desinstalación..." & CrLf & - "- Para eliminar la habilidad de revertir a la versión anterior, vaya a Comandos -> Desinstalación del sistema operativo -> Eliminar habilidad de desinstalación..." - Case 3 - msg = "Vous avez " & RollbackDays & " jours pour revenir à l'ancienne version de Windows." & CrLf & CrLf & - "- Pour augmenter ou réduire cette créneau de désinstallation, allez dans Commandes -> Désinstallation du système d'exploitation -> Définir la créneau de désinstallation..." & CrLf & - "- Pour démarrer le retour en arrière du système d'exploitation, cliquez sur Commandes -> Désinstallation du système d'exploitation -> Démarrer la désinstallation..." & CrLf & - "- Pour supprimer la possibilité de revenir à l'ancienne version, cliquez sur Commandes -> Désinstallation du système d'exploitation -> Supprimer la possibilité de revenir en arrière..." - Case 4 - msg = "Tem " & RollbackDays & " dias para voltar à versão antiga do Windows." & CrLf & CrLf & - "- Para aumentar ou diminuir esta janela de desinstalação, aceda a Comandos -> Desinstalação do sistema operativo -> Definir janela de desinstalação..." & CrLf & - "- Para iniciar a reversão do SO, aceda a Comandos -> Desinstalação do sistema operativo -> Iniciar desinstalação..." & CrLf & - "- Para remover a capacidade de reverter para a versão antiga, vá para Comandos -> Desinstalação do sistema operacional -> Remover capacidade de reversão..." - Case 5 - msg = "Hai a disposizione " & RollbackDays & " giorni per tornare alla vecchia versione di Windows." & CrLf & CrLf & - "- Per aumentare o diminuire questa finestra di disinstallazione, vai su Comandi -> Disinstallazione del sistema operativo -> Imposta finestra di disinstallazione..." & CrLf & - "- Per avviare il rollback del sistema operativo, vai su Comandi -> Disinstallazione del sistema operativo -> Avvia disinstallazione..." & CrLf & - "- Per rimuovere la possibilità di tornare alla vecchia versione, vai su Comandi -> Disinstallazione del sistema operativo -> Rimuovi la possibilità di fallback..." - End Select + msg = LocalizationService.ForSection("Main.Get.OS").Format("Days.Go.Back.Message", RollbackDays) MsgBox(msg, vbOKOnly + vbInformation, Text) Catch ex As Exception Exit Sub End Try Else DynaLog.LogMessage("The active installation is not being managed right now.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is only supported on online installations", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción solo está soportada en instalaciones activas", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action est seulement prise en charge par les installations en ligne", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação só é suportada em instalações online", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione è supportata solo su installazioni attive", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is only supported on online installations", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción solo está soportada en instalaciones activas", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action est seulement prise en charge par les installations en ligne", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação só é suportada em instalações online", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("Questa azione è supportata solo in installazioni online", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("Main.OSUninstallWindow")("OnlineOnly.Message"), vbOKOnly + vbCritical, Text) End If End Sub @@ -14293,71 +8811,7 @@ Public Class MainForm Exit Sub End If Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = Environment.UserName & ", please read this message carefully before proceeding." & CrLf & CrLf & - "If you have installed programs after the upgrade, proceeding with the rollback process may remove them. Make sure you have backed up their settings in case you need to reinstall them later on. Also, back up your files in case they are affected by the rollback process." & CrLf & CrLf & - "Next, don't get locked out. If you have set a password for your current user, make sure you know it. Otherwise, you may not be able to log in." & CrLf & CrLf & - "Finally, thanks for trying this version of Windows." & CrLf & CrLf & - "Do you want to start the rollback process?" - Case "ESN" - msg = Environment.UserName & ", lea este mensaje antes de proceder." & CrLf & CrLf & - "Si ha instalado programas tras la actualización, este proceso podría eliminarlos. Asegúrese de hacer una copia de seguridad de sus configuraciones en el caso de que deba reinstalarlos después. También, haga una copia de seguridad de sus archivos en el caso de que se vean afectados por este proceso." & CrLf & CrLf & - "Después, si ha establecido una contraseña, asegúrese de recordarla para ser capaz de iniciar sesión." & CrLf & CrLf & - "Finalmente, gracias por probar esta versión de Windows." & CrLf & CrLf & - "¿Desea iniciar el proceso de desinstalación?" - Case "FRA" - msg = Environment.UserName & ", veuillez lire attentivement ce message avant de poursuivre." & CrLf & CrLf & - "Si vous avez installé des programmes après la mise à niveau, le processus de retour en arrière risque de les supprimer. Assurez-vous d'avoir sauvegardé leurs paramètres au cas où vous devriez les réinstaller ultérieurement. Sauvegardez également vos fichiers au cas où ils seraient affectés par le processus de retour en arrière." & CrLf & CrLf & - "Ensuite, ne vous laissez pas bloquer. Si vous avez défini un mot de passe pour votre utilisateur actuel, assurez-vous de le connaître. Sinon, vous risquez de ne pas pouvoir vous connecter." & CrLf & CrLf & - "Enfin, merci d'avoir essayé cette version de Windows." & CrLf & CrLf & - "Souhaitez-vous démarrer le processus de retour en arrière ?" - Case "PTB", "PTG" - msg = Environment.UserName & ", leia atentamente esta mensagem antes de prosseguir." & CrLf & CrLf & - "Se tiver instalado programas após a atualização, o processo de reversão poderá removê-los. Certifique-se de que efectuou uma cópia de segurança das respectivas definições para o caso de ter de os reinstalar mais tarde. Além disso, faça uma cópia de segurança dos seus ficheiros para o caso de serem afectados pelo processo de reversão." & CrLf & CrLf & - "De seguida, não obtenha o seu acesso bloqueado. Se tiver definido uma palavra-passe para o seu utilizador atual, certifique-se de que a sabe. Caso contrário, poderá não conseguir iniciar sessão." & CrLf & CrLf & - "Por fim, obrigado por experimentar esta versão do Windows." & CrLf & CrLf & - "Pretende iniciar o processo de reversão?" - Case "ITA" - msg = Environment.UserName & ", prima di procedere leggi attentamente questo messaggio." & CrLf & CrLf & - "Se sono stati installati dei programmi dopo l'aggiornamento, procedere con il processo di rollback potrebbe rimuoverli. Nel caso in cui sia necessario reinstallarli in seguito assicurati di aver eseguito il backup delle impostazioni. Inoltre, nel caso in cui siano interessati dal processo di rollback esegui il backup dei file." & CrLf & CrLf & - "Poi, non rimanete chiusi fuori. Se è stata impostata una password per l'utente attuale, assicurati di conoscerla. In caso contrario, potresti non essere in grado di accedere" & CrLf & CrLf & - "Infine, grazie per aver provato questa versione di Windows." & CrLf & CrLf & - "Vuoi avviare il processo di rollback?" - End Select - Case 1 - msg = Environment.UserName & ", please read this message carefully before proceeding." & CrLf & CrLf & - "If you have installed programs after the upgrade, proceeding with the rollback process may remove them. Make sure you have backed up their settings in case you need to reinstall them later on. Also, back up your files in case they are affected by the rollback process." & CrLf & CrLf & - "Next, don't get locked out. If you have set a password for your current user, make sure you know it. Otherwise, you may not be able to log in." & CrLf & CrLf & - "Finally, thanks for trying this version of Windows." & CrLf & CrLf & - "Do you want to start the rollback process?" - Case 2 - msg = Environment.UserName & ", lea este mensaje antes de proceder." & CrLf & CrLf & - "Si ha instalado programas tras la actualización, este proceso podría eliminarlos. Asegúrese de hacer una copia de seguridad de sus configuraciones en el caso de que deba reinstalarlos después. También, haga una copia de seguridad de sus archivos en el caso de que se vean afectados por este proceso." & CrLf & CrLf & - "Después, si ha establecido una contraseña, asegúrese de recordarla para ser capaz de iniciar sesión." & CrLf & CrLf & - "Finalmente, gracias por probar esta versión de Windows." & CrLf & CrLf & - "¿Desea iniciar el proceso de desinstalación?" - Case 3 - msg = Environment.UserName & ", veuillez lire attentivement ce message avant de poursuivre." & CrLf & CrLf & - "Si vous avez installé des programmes après la mise à niveau, le processus de retour en arrière risque de les supprimer. Assurez-vous d'avoir sauvegardé leurs paramètres au cas où vous devriez les réinstaller ultérieurement. Sauvegardez également vos fichiers au cas où ils seraient affectés par le processus de retour en arrière." & CrLf & CrLf & - "Ensuite, ne vous laissez pas bloquer. Si vous avez défini un mot de passe pour votre utilisateur actuel, assurez-vous de le connaître. Sinon, vous risquez de ne pas pouvoir vous connecter." & CrLf & CrLf & - "Enfin, merci d'avoir essayé cette version de Windows." & CrLf & CrLf & - "Souhaitez-vous démarrer le processus de retour en arrière ?" - Case 4 - msg = Environment.UserName & ", leia atentamente esta mensagem antes de prosseguir." & CrLf & CrLf & - "Se tiver instalado programas após a atualização, o processo de reversão poderá removê-los. Certifique-se de que efectuou uma cópia de segurança das respectivas definições para o caso de ter de os reinstalar mais tarde. Além disso, faça uma cópia de segurança dos seus ficheiros para o caso de serem afectados pelo processo de reversão." & CrLf & CrLf & - "De seguida, não obtenha o seu acesso bloqueado. Se tiver definido uma palavra-passe para o seu utilizador atual, certifique-se de que a sabe. Caso contrário, poderá não conseguir iniciar sessão." & CrLf & CrLf & - "Por fim, obrigado por experimentar esta versão do Windows." & CrLf & CrLf & - "Pretende iniciar o processo de reversão?" - Case 5 - msg = Environment.UserName & ", prima di procedere leggi attentamente questo messaggio." & CrLf & CrLf & - "Se sono stati installati dei programmi dopo l'aggiornamento, procedere con il processo di rollback potrebbe rimuoverli. Nel caso in cui sia necessario reinstallarli in seguito assicurati di aver eseguito il backup delle impostazioni. Inoltre,nel caso in cui siano interessati dal processo di rollback esegui il backup dei file." & CrLf & CrLf & - "Poi, non rimanete chiusi fuori. Se è stata impostata una password per l'utente attuale, assicurati di conoscerla. In caso contrario, potresti non essere in grado di accedere" & CrLf & CrLf & - "Infine, grazie per aver provato questa versione di Windows." & CrLf & CrLf & - "Vuoi avviare il processo di rollback?" - End Select + msg = LocalizationService.ForSection("Main.StartOSUninstall").Format("ReadCarefully.Message", Environment.UserName) If MsgBox(msg, vbYesNo + vbExclamation, Text) = MsgBoxResult.Yes Then DynaLog.LogMessage("User accepted the question. Proceeding with OS uninstallation...") If Not ProgressPanel.IsDisposed Then ProgressPanel.Dispose() @@ -14374,31 +8828,7 @@ Public Class MainForm End Try Else DynaLog.LogMessage("The active installation is not being managed right now.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is only supported on online installations", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción solo está soportada en instalaciones activas", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action est seulement prise en charge par les installations en ligne", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação só é suportada em instalações online", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione è supportata solo in installazioni online", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is only supported on online installations", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción solo está soportada en instalaciones activas", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action est seulement prise en charge par les installations en ligne", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação só é suportada em instalações online", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("Questa azione è supportata solo in installazioni online", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("Main.OSUninstall")("OnlineOnly.Message"), vbOKOnly + vbCritical, Text) End If End Sub @@ -14412,61 +8842,7 @@ Public Class MainForm Exit Sub End If Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = Environment.UserName & ", please read this message carefully before proceeding." & CrLf & CrLf & - "If you have used this new Windows version for some time and have determined that no issues are present, you can remove the ability to initiate a rollback." & CrLf & CrLf & - "This won't delete the files from the old installation, so you need to use Disk Cleanup (cleanmgr) if you want to free up some space." & CrLf & CrLf & - "Do you want to remove the ability to roll back to an older version of Windows?" - Case "ESN" - msg = Environment.UserName & ", lea este mensaje antes de proceder." & CrLf & CrLf & - "Si ha utilizado esta versión nueva de Windows por un rato y ha determinado que no hay errores, puede eliminar la habilidad para iniciar un restablecimiento a una versión anterior." & CrLf & CrLf & - "Esto no eliminará los archivos de la instalación anterior, así que debe utilizar la herramienta de Limpieza de Disco (cleanmgr) si desea liberar algo de espacio." & CrLf & CrLf & - "¿Desea eliminar la habilidad para revertir a una versión anterior de Windows?" - Case "FRA" - msg = Environment.UserName & ", veuillez lire attentivement ce message avant de poursuivre." & CrLf & CrLf & - "Si vous avez utilisé cette nouvelle version de Windows pendant un certain temps et que vous avez déterminé qu'il n'y a pas de problème, vous pouvez supprimer la possibilité de lancer un retour en arrière." & CrLf & CrLf & - "Cette opération ne supprime pas les fichiers de l'ancienne installation ; vous devez donc utiliser l'outil de nettoyage de disque (cleanmgr) si vous souhaitez libérer de l'espace." & CrLf & CrLf & - "Voulez-vous supprimer la possibilité de revenir à une ancienne version de Windows ?" - Case "PTB", "PTG" - msg = Environment.UserName & ", leia atentamente esta mensagem antes de prosseguir." & CrLf & CrLf & - "Se já utilizou esta nova versão do Windows durante algum tempo e determinou que não existem problemas, pode remover a capacidade de iniciar uma reversão." & CrLf & CrLf & - "Isto não eliminará os ficheiros da instalação antiga, pelo que terá de utilizar a Limpeza de disco (cleanmgr) se pretender libertar algum espaço." & CrLf & CrLf & - "Pretende remover a capacidade de retroceder para uma versão mais antiga do Windows?" - Case "ITA" - msg = Environment.UserName & ", prima di procedere leggi attentamente questo messaggio." & CrLf & CrLf & - "Se si usa la nuova versione di Windows da qualche tempo e si è accertato che non ci sono problemi, è possibile rimuovere la possibilità di avviare un ripristino." & CrLf & CrLf & - "Questa operazione non cancellerà i file della vecchia installazione, quindi se vuoi liberare un po' di spazio è necessario usare Pulizia disco (cleanmgr)." & CrLf & CrLf & - "Vuoi rimuovere la possibilità di tornare a una versione precedente di Windows?" - End Select - Case 1 - msg = Environment.UserName & ", please read this message carefully before proceeding." & CrLf & CrLf & - "If you have used this new Windows version for some time and have determined that no issues are present, you can remove the ability to initiate a rollback." & CrLf & CrLf & - "This won't delete the files from the old installation, so you need to use Disk Cleanup (cleanmgr) if you want to free up some space." & CrLf & CrLf & - "Do you want to remove the ability to roll back to an older version of Windows?" - Case 2 - msg = Environment.UserName & ", lea este mensaje antes de proceder." & CrLf & CrLf & - "Si ha utilizado esta versión nueva de Windows por un rato y ha determinado que no hay errores, puede eliminar la habilidad para iniciar un restablecimiento a una versión anterior." & CrLf & CrLf & - "Esto no eliminará los archivos de la instalación anterior, así que debe utilizar la herramienta de Limpieza de Disco (cleanmgr) si desea liberar algo de espacio." & CrLf & CrLf & - "¿Desea eliminar la habilidad para revertir a una versión anterior de Windows?" - Case 3 - msg = Environment.UserName & ", veuillez lire attentivement ce message avant de poursuivre." & CrLf & CrLf & - "Si vous avez utilisé cette nouvelle version de Windows pendant un certain temps et que vous avez déterminé qu'il n'y a pas de problème, vous pouvez supprimer la possibilité de lancer un retour en arrière." & CrLf & CrLf & - "Cette opération ne supprime pas les fichiers de l'ancienne installation ; vous devez donc utiliser l'outil de nettoyage de disque (cleanmgr) si vous souhaitez libérer de l'espace." & CrLf & CrLf & - "Voulez-vous supprimer la possibilité de revenir à une ancienne version de Windows ?" - Case 4 - msg = Environment.UserName & ", leia atentamente esta mensagem antes de prosseguir." & CrLf & CrLf & - "Se já utilizou esta nova versão do Windows durante algum tempo e determinou que não existem problemas, pode remover a capacidade de iniciar uma reversão." & CrLf & CrLf & - "Isto não eliminará os ficheiros da instalação antiga, pelo que terá de utilizar a Limpeza de disco (cleanmgr) se pretender libertar algum espaço." & CrLf & CrLf & - "Pretende remover a capacidade de retroceder para uma versão mais antiga do Windows?" - Case 5 - msg = Environment.UserName & ", prima di procedere leggi attentamente questo messaggio." & CrLf & CrLf & - "Se si usa la nuova versione di Windows da qualche tempo e si è accertato che non ci sono problemi, è possibile rimuovere la possibilità di avviare un ripristino." & CrLf & CrLf & - "Questa operazione non cancellerà i file della vecchia installazione, quindi se vuoi liberare un po' di spazio è necessario utilizzare Pulizia disco (cleanmgr)." & CrLf & CrLf & - "Vuoi rimuovere la possibilità di tornare a una versione precedente di Windows?" - End Select + msg = LocalizationService.ForSection("Main.RemoveOSUninstall").Format("ReadCarefully.Message", Environment.UserName) If MsgBox(msg, vbYesNo + vbExclamation, Text) = MsgBoxResult.Yes Then DynaLog.LogMessage("User accepted the question. Proceeding with removal of OS uninstallation capability...") If Not ProgressPanel.IsDisposed Then ProgressPanel.Dispose() @@ -14482,31 +8858,7 @@ Public Class MainForm End Try Else DynaLog.LogMessage("The active installation is not being managed right now.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is only supported on online installations", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción solo está soportada en instalaciones activas", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action est seulement prise en charge par les installations en ligne", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação só é suportada em instalações online", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione è supportata solo in installazioni online", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is only supported on online installations", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción solo está soportada en instalaciones activas", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action est seulement prise en charge par les installations en ligne", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação só é suportada em instalações online", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("Questa azione è supportata solo in installazioni online", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("Main.RemoveOSUninstall")("OnlineOnly.Message"), vbOKOnly + vbCritical, Text) End If End Sub @@ -14674,14 +9026,14 @@ Public Class MainForm DynaLog.LogMessage("Browser emulation setting level < 11001 (IE 11+Edge). Setting value...") IECompatRk.SetValue("DISMTools.exe", 11001, RegistryValueKind.DWord) DynaLog.LogMessage("Value set. A program restart is necessary.") - MsgBox("Modified Internet Explorer emulation settings for DISMTools. You will need to restart DISMTools in order to start video playback", vbOKOnly + vbInformation, "DISMTools") + MsgBox(LocalizationService.ForSection("Main.Messages")("IE.Emulation.Changed.Message"), vbOKOnly + vbInformation, "DISMTools") IECompatRk.Close() Exit Sub End If IECompatRk.Close() Catch ex As Exception DynaLog.LogMessage("Could not detect/modify IE browser emulation settings. Error message: " & ex.Message) - MsgBox("DISMTools could not modify Internet Explorer emulation settings. Video playback will not start.", vbOKOnly + vbCritical, "DISMTools") + MsgBox(LocalizationService.ForSection("Main.Messages")("DISM.Tools.Modify.Message"), vbOKOnly + vbCritical, "DISMTools") Exit Sub End Try If Not videoServer.IsListenerAlive Then videoServer.StartServer() @@ -14728,7 +9080,7 @@ Public Class MainForm DynaLog.LogMessage("Items in recents list: " & RecentList.Count) If RecentList.Count <= 0 Then DynaLog.LogMessage("No items are present in the recents list. Exiting...") - MsgBox("No items are present in the Recents list.") + MsgBox(LocalizationService.ForSection("Main.Messages")("Items.Present.None.Label")) Exit Sub End If If (itemOrder + 1) > RecentList.Count Then @@ -14903,7 +9255,7 @@ Public Class MainForm contents = WIMExpClient.DownloadString("https://raw.githubusercontent.com/CodingWonders/WIM-Explorer/main/DISMTools-Install.ps1") Catch ex As WebException DynaLog.LogMessage("Could not download WIM Explorer Setup. Error message: " & ex.Status.ToString()) - MessageBox.Show("We couldn't download WIM Explorer Setup. Reason:" & CrLf & ex.Status.ToString()) + MessageBox.Show(LocalizationService.ForSection("Main.Messages").Format("DownloadFailed.Label", ex.Status.ToString())) Exit Sub End Try If contents <> "" Then @@ -14940,7 +9292,7 @@ Public Class MainForm WimExplorer.Start() End If Catch ex As Exception - MessageBox.Show("We couldn't prepare WIM Explorer Setup. Reason:" & CrLf & ex.Message) + MessageBox.Show(LocalizationService.ForSection("Main.Messages").Format("PrepareFailed.Label", ex.Message)) Exit Sub End Try End Sub @@ -15076,60 +9428,12 @@ Public Class MainForm RegistryControlPanel.Show() ElseIf IsImageMounted And OnlineManagement Then DynaLog.LogMessage("The active installation is being managed right now. The image is not supported.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "This control panel is not available on active installations." - Case "ESN" - msg = "Este panel de control no está disponible en instalaciones activas." - Case "FRA" - msg = "Ce panneau de contrôle n'est pas disponible sur les installations actives." - Case "PTB", "PTG" - msg = "Este painel de controlo não está disponível em instalações activas." - Case "ITA" - msg = "Questo pannello di controllo non è disponibile nelle installazioni attive." - End Select - Case 1 - msg = "This control panel is not available on active installations." - Case 2 - msg = "Este panel de control no está disponible en instalaciones activas." - Case 3 - msg = "Ce panneau de contrôle n'est pas disponible sur les installations actives." - Case 4 - msg = "Este painel de controlo não está disponível em instalações activas." - Case 5 - msg = "Questo pannello di controllo non è disponibile nelle installazioni attive." - End Select + msg = LocalizationService.ForSection("Main.RegistryPanel")("Control.Active.Message") MsgBox(msg, vbOKOnly + vbCritical, Text) End If Else DynaLog.LogMessage("No project has been loaded.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "You need to load a project or mode to manage registry hives." - Case "ESN" - msg = "Debe cargar un proyecto o modo para administrar subárboles del registro." - Case "FRA" - msg = "Vous devez charger un projet ou un mode pour gérer les ruches du registre." - Case "PTB", "PTG" - msg = "É necessário carregar um projeto ou modo para gerir as colmeias de registo." - Case "ITA" - msg = "Per gestire la struttura del registro è necessario caricare un progetto o una modalità." - End Select - Case 1 - msg = "You need to load a project or mode to manage registry hives." - Case 2 - msg = "Debe cargar un proyecto o modo para administrar subárboles del registro." - Case 3 - msg = "Vous devez charger un projet ou un mode pour gérer les ruches du registre." - Case 4 - msg = "É necessário carregar um projeto ou modo para gerir as colmeias de registo." - Case 5 - msg = "Per gestire la struttura del registro è necessario caricare un progetto o una modalità." - End Select + msg = LocalizationService.ForSection("Main.Registry.Actions")("Load.Project.Mode.Message") MsgBox(msg, vbOKOnly + vbExclamation, Text) End If End Sub @@ -15157,59 +9461,11 @@ Public Class MainForm End Sub Private Sub LanguagesAndOptionalFeaturesISOToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LanguagesAndOptionalFeaturesISOToolStripMenuItem.Click - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Process.Start("https://learn.microsoft.com/en-us/azure/virtual-desktop/windows-11-language-packs#prerequisites") - Case "ESN" - Process.Start("https://learn.microsoft.com/es-es/azure/virtual-desktop/windows-11-language-packs#prerequisites") - Case "FRA" - Process.Start("https://learn.microsoft.com/fr-fr/azure/virtual-desktop/windows-11-language-packs#prerequisites") - Case "PTB", "PTG" - Process.Start("https://learn.microsoft.com/pt-pt/azure/virtual-desktop/windows-11-language-packs#prerequisites") - Case "ITA" - Process.Start("https://learn.microsoft.com/it-it/azure/virtual-desktop/windows-11-language-packs#prerequisites") - End Select - Case 1 - Process.Start("https://learn.microsoft.com/en-us/azure/virtual-desktop/windows-11-language-packs#prerequisites") - Case 2 - Process.Start("https://learn.microsoft.com/es-es/azure/virtual-desktop/windows-11-language-packs#prerequisites") - Case 3 - Process.Start("https://learn.microsoft.com/fr-fr/azure/virtual-desktop/windows-11-language-packs#prerequisites") - Case 4 - Process.Start("https://learn.microsoft.com/pt-pt/azure/virtual-desktop/windows-11-language-packs#prerequisites") - Case 5 - Process.Start("https://learn.microsoft.com/it-it/azure/virtual-desktop/windows-11-language-packs#prerequisites") - End Select + Process.Start(String.Format("https://learn.microsoft.com/{0}/azure/virtual-desktop/windows-11-language-packs#prerequisites", LocalizationService.GetMicrosoftLearnCultureCode())) End Sub Private Sub LanguagesAndFODWin10ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LanguagesAndFODWin10ToolStripMenuItem.Click - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Process.Start("https://learn.microsoft.com/en-us/azure/virtual-desktop/language-packs#prerequisites") - Case "ESN" - Process.Start("https://learn.microsoft.com/es-es/azure/virtual-desktop/language-packs#prerequisites") - Case "FRA" - Process.Start("https://learn.microsoft.com/fr-fr/azure/virtual-desktop/language-packs#prerequisites") - Case "PTB", "PTG" - Process.Start("https://learn.microsoft.com/pt-pt/azure/virtual-desktop/language-packs#prerequisites") - Case "ITA" - Process.Start("https://learn.microsoft.com/it-it/azure/virtual-desktop/language-packs#prerequisites") - End Select - Case 1 - Process.Start("https://learn.microsoft.com/en-us/azure/virtual-desktop/language-packs#prerequisites") - Case 2 - Process.Start("https://learn.microsoft.com/es-es/azure/virtual-desktop/language-packs#prerequisites") - Case 3 - Process.Start("https://learn.microsoft.com/fr-fr/azure/virtual-desktop/language-packs#prerequisites") - Case 4 - Process.Start("https://learn.microsoft.com/pt-pt/azure/virtual-desktop/language-packs#prerequisites") - Case 5 - Process.Start("https://learn.microsoft.com/it-it/azure/virtual-desktop/language-packs#prerequisites") - End Select + Process.Start(String.Format("https://learn.microsoft.com/{0}/azure/virtual-desktop/language-packs#prerequisites", LocalizationService.GetMicrosoftLearnCultureCode())) End Sub Private Sub GetCurrentEdition_Click(sender As Object, e As EventArgs) Handles GetCurrentEdition.Click @@ -15218,85 +9474,13 @@ Public Class MainForm If CurrentImage.ImageEditionId <> "" Then DynaLog.LogMessage("Image edition field has been populated. Showing and checking...") Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The current edition is " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - Case "ESN" - msg = "La edición actual es " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - Case "FRA" - msg = "L'édition actuelle est " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - Case "PTB", "PTG" - msg = "A edição atual é " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - Case "ITA" - msg = "L'edizione attuale è " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - End Select - Case 1 - msg = "The current edition is " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - Case 2 - msg = "La edición actual es " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - Case 3 - msg = "L'édition actuelle est " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - Case 4 - msg = "A edição atual é " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - Case 5 - msg = "L'edizione attuale è " & Quote & CurrentImage.ImageEditionId & Quote & CrLf - End Select + msg = LocalizationService.ForSection("Main.GetTargetEditions").Format("CurrentEdition.Message", CurrentImage.ImageEditionId) If CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise Then DynaLog.LogMessage("Image edition is WindowsPE. This is a Windows PE image.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg &= CrLf & "Windows PE images cannot be upgraded to higher editions." - Case "ESN" - msg &= CrLf & "Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores." - Case "FRA" - msg &= CrLf & "Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures." - Case "PTB", "PTG" - msg &= CrLf & "As imagens do Windows PE não podem ser atualizadas para edições superiores." - Case "ITA" - msg &= CrLf & "Le immagini Windows PE non possono essere aggiornate a edizioni superiori." - End Select - Case 1 - msg &= CrLf & "Windows PE images cannot be upgraded to higher editions." - Case 2 - msg &= CrLf & "Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores." - Case 3 - msg &= CrLf & "Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures." - Case 4 - msg &= CrLf & "As imagens do Windows PE não podem ser atualizadas para edições superiores." - Case 5 - msg &= CrLf & "Le immagini Windows PE non possono essere aggiornate a edizioni superiori." - End Select + msg &= CrLf & LocalizationService.ForSection("Main.GetTargetEditions")("Windows.Message") Else DynaLog.LogMessage("Image edition is not WindowsPE. This is not a Windows PE image.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg &= CrLf & "If you have a product key, you may be able to upgrade this Windows image to a higher edition." - Case "ESN" - msg &= CrLf & "Si cuenta con una clave de producto, podrá actualizar esta imagen de Windows a una edición superior." - Case "FRA" - msg &= CrLf & "Si vous disposez d'une clé de produit, vous pourrez peut-être mettre à niveau cette image Windows vers une édition supérieure." - Case "PTB", "PTG" - msg &= CrLf & "Se tiver uma chave de produto, poderá atualizar esta imagem do Windows para uma edição superior." - Case "ITA" - msg &= CrLf & "Se disponi di un codice prodotto, è possibile aggiornare questa immagine di Windows ad un'edizione superiore." - End Select - Case 1 - msg &= CrLf & "If you have a product key, you may be able to upgrade this Windows image to a higher edition." - Case 2 - msg &= CrLf & "Si cuenta con una clave de producto, podrá actualizar esta imagen de Windows a una edición superior." - Case 3 - msg &= CrLf & "Si vous disposez d'une clé de produit, vous pourrez peut-être mettre à niveau cette image Windows vers une édition supérieure." - Case 4 - msg &= CrLf & "Se tiver uma chave de produto, poderá atualizar esta imagem do Windows para uma edição superior." - Case 5 - msg &= CrLf & "Se disponi di un codice prodotto, è possibile aggiornare questa immagine di Windows ad un'edizione superiore." - End Select + msg &= CrLf & LocalizationService.ForSection("Main.GetTargetEditions")("ProductKey.Upgrade.Message") End If MsgBox(msg, vbOKOnly + vbInformation, Text) End If @@ -15319,62 +9503,14 @@ Public Class MainForm If targetEditions.Count > 0 Then ' This image hasn't been upgraded to its highest edition DynaLog.LogMessage("There are target editions. This image can give a little more") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "If you have a suitable product key, you can upgrade this Windows image to one of the following editions:" & CrLf & CrLf - Case "ESN" - msg = "Si cuenta con una clave de producto apropiada, puede actualizar esta imagen de Windows a una de las siguientes ediciones:" & CrLf & CrLf - Case "FRA" - msg = "Si vous disposez d'une clé de produit appropriée, vous pouvez mettre à niveau cette image Windows vers l'une des éditions suivantes :" & CrLf & CrLf - Case "PTB", "PTG" - msg = "Se tiver uma chave de produto adequada, pode atualizar esta imagem do Windows para uma das seguintes edições:" & CrLf & CrLf - Case "ITA" - msg = "Se disponi di un codice prodotto adeguato, è possibile aggiornare questa immagine di Windows ad una delle seguenti edizioni:" & CrLf & CrLf - End Select - Case 1 - msg = "If you have a suitable product key, you can upgrade this Windows image to one of the following editions:" & CrLf & CrLf - Case 2 - msg = "Si cuenta con una clave de producto apropiada, puede actualizar esta imagen de Windows a una de las siguientes ediciones:" & CrLf & CrLf - Case 3 - msg = "Si vous disposez d'une clé de produit appropriée, vous pouvez mettre à niveau cette image Windows vers l'une des éditions suivantes :" & CrLf & CrLf - Case 4 - msg = "Se tiver uma chave de produto adequada, pode atualizar esta imagem do Windows para uma das seguintes edições:" & CrLf & CrLf - Case 5 - msg = "Se disponi di un codice prodotto adeguato, è possibile aggiornare questa immagine di Windows ad una delle seguenti edizioni:" & CrLf & CrLf - End Select + msg = LocalizationService.ForSection("Main.GetTargetEditions")("Suitable.ProductKey.Message") For Each targetEdition In targetEditions msg &= "- " & targetEdition & CrLf Next Else ' This image has been upgraded to its highest edition DynaLog.LogMessage("There are no target editions. This image is already rocking the best edition") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "This image cannot be upgraded to higher editions because it is in its highest edition" - Case "ESN" - msg = "Esta imagen no puede ser actualizada a ediciones superiores porque ya tiene la edición más avanzada" - Case "FRA" - msg = "Cette image ne peut pas être mise à niveau vers des éditions supérieures car elle se trouve dans son édition la plus élevée" - Case "PTB", "PTG" - msg = "Esta imagem não pode ser actualizada para edições superiores porque está na sua edição mais elevada" - Case "ITA" - msg = "Questa immagine non può essere aggiornata ad edizioni superiori perché è già l'edizione più alta" - End Select - Case 1 - msg = "This image cannot be upgraded to higher editions because it is in its highest edition" - Case 2 - msg = "Esta imagen no puede ser actualizada a ediciones superiores porque ya tiene la edición más avanzada" - Case 3 - msg = "Cette image ne peut pas être mise à niveau vers des éditions supérieures car elle se trouve dans son édition la plus élevée" - Case 4 - msg = "Esta imagem não pode ser actualizada para edições superiores porque está na sua edição mais elevada" - Case 5 - msg = "Questa immagine non può essere aggiornata ad edizioni superiori perché è già l'edizione più alta" - End Select + msg = LocalizationService.ForSection("Main.GetTargetEditions")("Image.Cannot.Message") End If End Using Catch ex As Exception @@ -15382,31 +9518,7 @@ Public Class MainForm msgSuccess = False If CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) OrElse CurrentImage.WinPeInDisguise Then DynaLog.LogMessage("Image edition is WindowsPE. This is a Windows PE image.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Windows PE images cannot be upgraded to higher editions." - Case "ESN" - msg = "Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores." - Case "FRA" - msg = "Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures." - Case "PTB", "PTG" - msg = "As imagens do Windows PE não podem ser actualizadas para edições superiores." - Case "ITA" - msg = "Le immagini di Windows PE non possono essere aggiornate ad edizioni superiori." - End Select - Case 1 - msg = "Windows PE images cannot be upgraded to higher editions." - Case 2 - msg = "Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores." - Case 3 - msg = "Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures." - Case 4 - msg = "As imagens do Windows PE não podem ser actualizadas para edições superiores." - Case 5 - msg = "Le immagini di Windows PE non possono essere aggiornate ad edizioni superiori." - End Select + msg = LocalizationService.ForSection("Main.GetTargetEditions")("Windows.Message") Else msg = ex.ToString() End If @@ -15485,33 +9597,7 @@ Public Class MainForm If Directory.Exists(Path.Combine(Application.StartupPath, "docs", "tour")) Then DynaLog.LogMessage("Tour directory exists. Starting the tour!") - Dim languageCode As String = "en" - - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - languageCode = "en" - Case "ESN" - languageCode = "es" - Case "FRA" - languageCode = "fr" - Case "PTB", "PTG" - languageCode = "pt" - Case "ITA" - languageCode = "it" - End Select - Case 1 - languageCode = "en" - Case 2 - languageCode = "es" - Case 3 - languageCode = "fr" - Case 4 - languageCode = "pt" - Case 5 - languageCode = "it" - End Select + Dim languageCode As String = LocalizationService.GetDocumentationLanguageCode() tourServer.StartServer() If tourServer.IsListenerAlive() Then @@ -15538,7 +9624,7 @@ Public Class MainForm If nonExistentFiles >= 2 Then Throw New Exception("No answer files have been detected in the mounted image.") End If - MsgBox("Answer file removed successfully.", vbOKOnly + vbInformation, "") + MsgBox(LocalizationService.ForSection("Main.Messages")("AnswerFile.Removed.Label"), vbOKOnly + vbInformation, "") Catch ex As Exception DynaLog.LogMessage("Could not remove answer files. Reason: " & ex.Message) MsgBox(ex.Message, vbOKOnly + vbExclamation, "") @@ -15559,10 +9645,10 @@ Public Class MainForm End Sub Private Sub OpenDiagnosticLogsInLogViewerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OpenDiagnosticLogsInLogViewerToolStripMenuItem.Click - If File.Exists(Path.Combine(Application.StartupPath, "tools", "DynaViewer", "DynaViewer.exe")) Then - Process.Start(Path.Combine(Application.StartupPath, "tools", "DynaViewer", "DynaViewer.exe"), - Quote & Path.Combine(Application.StartupPath, "logs", "DT_DynaLog.log") & Quote) - End If + Dim viewerPath As String = Path.Combine(Application.StartupPath, "tools", "DynaViewer", "DynaViewer.exe") + TryLaunchExternalTool(viewerPath, + OpenDiagnosticLogsInLogViewerToolStripMenuItem.Text, + Quote & Path.Combine(Application.StartupPath, "logs", "DT_DynaLog.log") & Quote & " " & LocalizationService.GetLanguageCommandLineArgument()) End Sub Private Sub ManageSystemServicesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ManageSystemServicesToolStripMenuItem.Click @@ -15576,7 +9662,7 @@ Public Class MainForm Exit Sub End If If ImgBW.IsBusy Then - MsgBox("Background processes need to finish before loading the service manager.", vbOKOnly + vbExclamation) + MsgBox(LocalizationService.ForSection("Main.Messages")("BackgroundBusy.Message"), vbOKOnly + vbExclamation) Exit Sub End If ServiceManagementForm.Show() @@ -15593,7 +9679,7 @@ Public Class MainForm Exit Sub End If If ImgBW.IsBusy Then - MsgBox("Background processes need to finish before loading the environment variable manager.", vbOKOnly + vbExclamation) + MsgBox(LocalizationService.ForSection("Main.Messages")("Background.Finish.Message"), vbOKOnly + vbExclamation) Exit Sub End If EnvVarManagementForm.Show() @@ -15605,33 +9691,7 @@ Public Class MainForm End Sub Private Sub RestartDTTourTSMI_Click(sender As Object, e As EventArgs) Handles RestartDTTourTSMI.Click - Dim languageCode As String = "en" - - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - languageCode = "en" - Case "ESN" - languageCode = "es" - Case "FRA" - languageCode = "fr" - Case "PTB", "PTG" - languageCode = "pt" - Case "ITA" - languageCode = "it" - End Select - Case 1 - languageCode = "en" - Case 2 - languageCode = "es" - Case 3 - languageCode = "fr" - Case 4 - languageCode = "pt" - Case 5 - languageCode = "it" - End Select + Dim languageCode As String = LocalizationService.GetDocumentationLanguageCode() Process.Start(String.Format("http://localhost:2022/{0}/tour-start.html", languageCode)) End Sub @@ -15720,7 +9780,7 @@ Public Class MainForm DynaLog.LogMessage("State of SecureBoot: " & SecureBootEnabled) If Not SecureBootEnabled Then - MessageBox.Show("Secure Boot is not enabled on this machine.", "Secure Boot status", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("Main.Messages")("Secure.Boot.Enabled.Label"), LocalizationService.ForSection("Main.Messages")("Secure.Boot.Status.Title"), MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Try End If @@ -15746,13 +9806,13 @@ Public Class MainForm Select Case SecureBootStatus Case SecureBootCA23Status.NotAvailable - MessageBox.Show("Secure Boot is enabled on this machine but does not contain Windows UEFI CA 2023 in its database. Make sure your computer receives the Secure Boot updates before Microsoft Windows Production PCA 2011 certificates expire in June 2026.", "Secure Boot status", MessageBoxButtons.OK, MessageBoxIcon.Warning) + MessageBox.Show(LocalizationService.ForSection("Main.Messages")("Secure.Boot"), LocalizationService.ForSection("Main.Messages")("Secure.Boot.Status.Title"), MessageBoxButtons.OK, MessageBoxIcon.Warning) Case SecureBootCA23Status.InProgress - MessageBox.Show("An update to Secure Boot to support Windows UEFI CA 2023 is in progress.", "Secure Boot status", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("Main.Messages")("Update.Secure.Boot.Message"), LocalizationService.ForSection("Main.Messages")("Secure.Boot.Status.Title"), MessageBoxButtons.OK, MessageBoxIcon.Information) Case SecureBootCA23Status.Available, SecureBootCA23Status.AvailableEnforced - MessageBox.Show("Secure Boot is enabled on this machine and contains Windows UEFI CA 2023 in its database.", "Secure Boot status", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("Main.Messages")("Secure.Enabled"), LocalizationService.ForSection("Main.Messages")("Secure.Boot.Status.Title"), MessageBoxButtons.OK, MessageBoxIcon.Information) Case SecureBootCA23Status.Unknown - MessageBox.Show("We could not determine the status of the Windows UEFI CA 2023 update.", "Secure Boot status", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("Main.Messages")("Determine.Status.Label"), LocalizationService.ForSection("Main.Messages")("Secure.Boot.Status.Title"), MessageBoxButtons.OK, MessageBoxIcon.Information) End Select Catch ex As Exception @@ -15845,8 +9905,9 @@ Public Class MainForm Private Sub SSE_TSMI_Click(sender As Object, e As EventArgs) Handles SSE_TSMI.Click Dim SSEPath As String = Path.Combine(Application.StartupPath, "tools", "StarterScriptEditor", "StarterScriptEditor.exe") - If File.Exists(SSEPath) Then - Process.Start(SSEPath, String.Format("/userdata={0}", Quote & Path.Combine(Application.StartupPath, "userdata", "starter_scripts") & Quote)) + If TryLaunchExternalTool(SSEPath, + SSE_TSMI.Text, + String.Format("/userdata={0} {1}", Quote & Path.Combine(Application.StartupPath, "userdata", "starter_scripts") & Quote, LocalizationService.GetLanguageCommandLineArgument())) Then SSETimer.Enabled = True End If End Sub @@ -15860,12 +9921,42 @@ Public Class MainForm Private Sub ThemeDesigner_TSMI_Click(sender As Object, e As EventArgs) Handles ThemeDesigner_TSMI.Click Dim TDPath As String = Path.Combine(Application.StartupPath, "tools", "ThemeDesigner", "DT_ThemeDesigner.exe") - If File.Exists(TDPath) Then - Process.Start(TDPath, String.Format("/userdata={0}", Quote & Path.Combine(Application.StartupPath, "userdata", "themes") & Quote)) + If TryLaunchExternalTool(TDPath, + ThemeDesigner_TSMI.Text, + String.Format("/userdata={0} {1}", Quote & Path.Combine(Application.StartupPath, "userdata", "themes") & Quote, LocalizationService.GetLanguageCommandLineArgument())) Then ThemeDesignerTimer.Enabled = True End If End Sub + Public Function TryLaunchExternalTool(executablePath As String, displayName As String, Optional arguments As String = "") As Boolean + Dim resolvedDisplayName As String = If(String.IsNullOrWhiteSpace(displayName), Path.GetFileNameWithoutExtension(executablePath), displayName.Replace("&", "").Trim()) + + If Not File.Exists(executablePath) Then + DynaLog.LogMessage("Could not start external tool because its executable was not found. Tool: " & resolvedDisplayName & "; path: " & Quote & executablePath & Quote) + MessageBox.Show(LocalizationService.ForSection("Main.ExternalTools").Format("NotFound.Message", resolvedDisplayName, executablePath), + LocalizationService.ForSection("Main.ExternalTools")("Error.Title"), + MessageBoxButtons.OK, + MessageBoxIcon.Error) + Return False + End If + + Try + If String.IsNullOrWhiteSpace(arguments) Then + Process.Start(executablePath) + Else + Process.Start(executablePath, arguments) + End If + Return True + Catch ex As Exception + DynaLog.LogMessage("Could not start external tool. Tool: " & resolvedDisplayName & "; path: " & Quote & executablePath & Quote & "; reason: " & ex.Message) + MessageBox.Show(LocalizationService.ForSection("Main.ExternalTools").Format("StartFailed.Message", resolvedDisplayName, ex.Message), + LocalizationService.ForSection("Main.ExternalTools")("Error.Title"), + MessageBoxButtons.OK, + MessageBoxIcon.Error) + Return False + End Try + End Function + Private Sub ThemeDesignerTimer_Tick(sender As Object, e As EventArgs) Handles ThemeDesignerTimer.Tick If Not Process.GetProcessesByName("DT_ThemeDesigner").Any() Then UserDataManagerModule.CopyUserDataToProgramFiles("themes") @@ -15910,19 +10001,19 @@ Public Class MainForm End Sub Private Sub RefreshComputerInfoBtn_MouseHover(sender As Object, e As EventArgs) Handles RefreshComputerInfoBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Refresh information") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("Main.Tooltips")("RefreshInfo.Label")) End Sub Private Sub ChangeNetworkConfigBtn_MouseHover(sender As Object, e As EventArgs) Handles ChangeNetworkConfigBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Change network configuration") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("Main.Tooltips")("Change.Network.Config.Label")) End Sub Private Sub AdminToolsBtn_MouseHover(sender As Object, e As EventArgs) Handles AdminToolsBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Other Windows administrative tools") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("Main.Tooltips")("Other.Win.Administ.Label")) End Sub Private Sub ComputerWallpaperPB_MouseHover(sender As Object, e As EventArgs) Handles ComputerWallpaperPB.MouseHover - WindowHelper.DisplayToolTip(sender, "Click here to change your wallpaper") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("Main.Tooltips")("Change.Wallpaper.Label")) End Sub Private Sub ComputerWallpaperPB_Click(sender As Object, e As EventArgs) Handles ComputerWallpaperPB.Click @@ -16012,43 +10103,9 @@ Public Class MainForm Private Sub LinkLabel33_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel33.LinkClicked DynaLog.LogMessage("Refreshing news feed...") - NewsItemCardContainerPanel.Controls.Clear() - FeedLinks.Clear() GetFeedNews() - DynaLog.LogMessage("Items in feed: " & FeedContents.Items.Count) - Dim currentOSCulture As CultureInfo = CultureInfo.CurrentCulture - Label8.Text = String.Format("News last updated: {0}", If(HumanizeDates, - String.Format("{0}, {1}", NewsLastUpdateDate.ToString(currentOSCulture.DateTimeFormat.LongDatePattern, currentOSCulture), - NewsLastUpdateDate.ToString(currentOSCulture.DateTimeFormat.LongTimePattern, currentOSCulture)), - NewsLastUpdateDate.ToString("MM/dd/yyyy HH:mm:ss"))) - Dim sortedArticles As IOrderedEnumerable(Of SyndicationItem) = FeedContents.Items.OrderByDescending(Function(article) article.PublishDate) - If FeedContents.Items.Count > 0 Then - Dim ValueAddedTop As Integer = WindowHelper.ScaleLogical(8), - PreviousTop As Integer - Dim FirstCard As Boolean = True - - Dim ItemCardControls As New List(Of NewsFeedItemCard) - For Each Article In sortedArticles - Dim newsCard As New NewsFeedItemCard() - newsCard.SetColors() - newsCard.FeedItemText = Article.Title.Text - newsCard.FeedItemDate = TimeZoneInfo.ConvertTime(Article.PublishDate.DateTime, TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"), TimeZoneInfo.FindSystemTimeZoneById("Central European Standard Time")) - newsCard.FeedItemLink = Article.Links(0).Uri.AbsoluteUri - newsCard.FeedItemContents = CType(Article.Content, TextSyndicationContent).Text - newsCard.Anchor = AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right - newsCard.Left = WindowHelper.ScaleLogical(8) - newsCard.Top = If(FirstCard, ValueAddedTop, PreviousTop + newsCard.Height + ValueAddedTop) - newsCard.Width = NewsItemCardContainerPanel.Width - 32 - FirstCard = False - PreviousTop = newsCard.Top - AddHandler newsCard.LinkContentsEvent, AddressOf DisplayFeedItemCardContent - ItemCardControls.Add(newsCard) - Next - NewsItemCardContainerPanel.Controls.AddRange(ItemCardControls.ToArray()) - Else - DynaLog.LogMessage("Could not get feed news. Error message: " & FeedEx.Message) - End If - Panel12.Visible = Not FeedContents.Items.Any() + DynaLog.LogMessage("Items in feed: " & If(FeedContents IsNot Nothing AndAlso FeedContents.Items IsNot Nothing, FeedContents.Items.Count(), 0)) + RenderNewsFeed() End Sub Private Sub LinkLabel31_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel31.LinkClicked @@ -16056,11 +10113,18 @@ Public Class MainForm End Sub Private Sub LinkLabel34_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel34.LinkClicked - MessageBox.Show(FeedEx.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error) + Dim feedErrorMessage As String = "" + If FeedEx IsNot Nothing Then feedErrorMessage = FeedEx.Message + + If String.IsNullOrWhiteSpace(feedErrorMessage) Then + feedErrorMessage = LocalizationService.ForSection("Main.News.Error")("NoDetails.Message") + End If + + MessageBox.Show(feedErrorMessage, Text, MessageBoxButtons.OK, MessageBoxIcon.Error) End Sub Private Sub ComputerNameLabel_MouseHover(sender As Object, e As EventArgs) Handles ComputerNameLabel.MouseHover - WindowHelper.DisplayToolTip(sender, String.Format("NetBIOS name: {0}", My.Computer.Name)) + WindowHelper.DisplayToolTip(sender, String.Format(LocalizationService.ForSection("Main.Tooltips")("NetBiosname.Label"), My.Computer.Name)) End Sub Private Sub NewsFeedCloseBtn_Click(sender As Object, e As EventArgs) Handles NewsFeedCloseBtn.Click @@ -16075,6 +10139,6 @@ Public Class MainForm End Sub Private Sub RefreshFactButton_MouseHover(sender As Object, e As EventArgs) Handles RefreshFactButton.MouseHover - WindowHelper.DisplayToolTip(sender, "Show a new fact") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("Main.Tooltips")("Show.New.Fact.Label")) End Sub End Class diff --git a/Panels/ConfigLists/AddListEntryDlg.Designer.vb b/Panels/ConfigLists/AddListEntryDlg.Designer.vb index 3c998cdb3..dcf9a0840 100644 --- a/Panels/ConfigLists/AddListEntryDlg.Designer.vb +++ b/Panels/ConfigLists/AddListEntryDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddListEntryDlg Inherits System.Windows.Forms.Form @@ -55,7 +55,7 @@ Partial Class AddListEntryDlg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.Add.List")("Ok.Button") ' 'Cancel_Button ' @@ -66,7 +66,7 @@ Partial Class AddListEntryDlg Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.Add.List")("Cancel.Button") ' 'Button1 ' @@ -76,7 +76,7 @@ Partial Class AddListEntryDlg Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 1 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.Add.List")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label1 @@ -86,7 +86,7 @@ Partial Class AddListEntryDlg Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(37, 13) Me.Label1.TabIndex = 2 - Me.Label1.Text = "Entry:" + Me.Label1.Text = LocalizationService.ForSection("Designer.Add.List")("Entry.Label") ' 'TextBox1 ' @@ -99,7 +99,7 @@ Partial Class AddListEntryDlg ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "All files|*.*" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.Add.List")("AllFiles.Filter") ' 'AddListEntryDlg ' @@ -119,7 +119,7 @@ Partial Class AddListEntryDlg Me.Name = "AddListEntryDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual - Me.Text = "Add entry" + Me.Text = LocalizationService.ForSection("Designer.Add.List")("AddEntry.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/ConfigLists/AddListEntryDlg.vb b/Panels/ConfigLists/AddListEntryDlg.vb index e1cee0a8c..f423f4623 100644 --- a/Panels/ConfigLists/AddListEntryDlg.vb +++ b/Panels/ConfigLists/AddListEntryDlg.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class AddListEntryDlg @@ -13,7 +13,7 @@ Public Class AddListEntryDlg ' Check if entry contains wildcard characters and if it begins with a \ If TextBox1.Text.Contains("*") And TextBox1.Text.StartsWith("\") Then DynaLog.LogMessage("Item starts with a backslash and has a wildcard character. This is not valid.") - MsgBox("The entry can't start with a backslash if it contains wildcard characters", vbOKOnly + vbExclamation, Text) + MsgBox(LocalizationService.ForSection("ConfigLists.AddEntry")("Start.Backslash.Message"), vbOKOnly + vbExclamation, Text) Exit Sub End If End If @@ -35,61 +35,10 @@ Public Class AddListEntryDlg End Sub Private Sub AddListEntryDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Entry:" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Label1.Text = "Entrada:" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Label1.Text = "Entrée :" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Label1.Text = "Entrada:" - Button1.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Label1.Text = "Voce:" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select - Case 1 - Label1.Text = "Entry:" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Label1.Text = "Entrada:" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Label1.Text = "Entrée :" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Label1.Text = "Entrada:" - Button1.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Label1.Text = "Voce:" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select + Label1.Text = LocalizationService.ForSection("AddListEntry")("Entry.Label") + Button1.Text = LocalizationService.ForSection("AddListEntry")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("AddListEntry")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("AddListEntry")("Cancel.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor TextBox1.BackColor = BackColor diff --git a/Panels/ConfigLists/Tools/OneDriveExclusionDlg.Designer.vb b/Panels/ConfigLists/Tools/OneDriveExclusionDlg.Designer.vb index cf957bc54..ba81cffff 100644 --- a/Panels/ConfigLists/Tools/OneDriveExclusionDlg.Designer.vb +++ b/Panels/ConfigLists/Tools/OneDriveExclusionDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class OneDriveExclusionDlg Inherits System.Windows.Forms.Form @@ -60,7 +60,7 @@ Partial Class OneDriveExclusionDlg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Exclude" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.OneDriveExclusion")("Exclude.Button") ' 'Cancel_Button ' @@ -71,7 +71,7 @@ Partial Class OneDriveExclusionDlg Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.OneDriveExclusion")("CancelButton.Button") ' 'PictureBox1 ' @@ -92,7 +92,7 @@ Partial Class OneDriveExclusionDlg Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(560, 124) Me.Label1.TabIndex = 2 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.OneDriveExclusion")("Tool.Help.Exclude.Message") ' 'Label3 ' @@ -101,7 +101,7 @@ Partial Class OneDriveExclusionDlg Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(560, 13) Me.Label3.TabIndex = 3 - Me.Label3.Text = "When you're ready, click Exclude." + Me.Label3.Text = LocalizationService.ForSection("Designer.OneDriveExclusion")("Re.Ready.Label") ' 'Label2 ' @@ -110,7 +110,7 @@ Partial Class OneDriveExclusionDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(195, 13) Me.Label2.TabIndex = 5 - Me.Label2.Text = "Path to exclude OneDrive folders from:" + Me.Label2.Text = LocalizationService.ForSection("Designer.OneDriveExclusion")("Path.Exclude.Label") ' 'TextBox1 ' @@ -126,12 +126,12 @@ Partial Class OneDriveExclusionDlg Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 7 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.OneDriveExclusion")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Choose a path that contains user folders:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.OneDriveExclusion")("UserFolderPath.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer Me.FolderBrowserDialog1.ShowNewFolderButton = False ' @@ -156,7 +156,7 @@ Partial Class OneDriveExclusionDlg Me.Name = "OneDriveExclusionDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Exclude user OneDrive folders" + Me.Text = LocalizationService.ForSection("Designer.OneDriveExclusion")("Exclude.User.Label") Me.TableLayoutPanel1.ResumeLayout(False) CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Panels/ConfigLists/Tools/OneDriveExclusionDlg.resx b/Panels/ConfigLists/Tools/OneDriveExclusionDlg.resx index 0b3f650f4..e34b5fe68 100644 --- a/Panels/ConfigLists/Tools/OneDriveExclusionDlg.resx +++ b/Panels/ConfigLists/Tools/OneDriveExclusionDlg.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,11 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude. - -NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool. - 17, 17 diff --git a/Panels/ConfigLists/Tools/OneDriveExclusionDlg.vb b/Panels/ConfigLists/Tools/OneDriveExclusionDlg.vb index beba1cb61..3e06ab9bf 100644 --- a/Panels/ConfigLists/Tools/OneDriveExclusionDlg.vb +++ b/Panels/ConfigLists/Tools/OneDriveExclusionDlg.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -11,31 +11,7 @@ Public Class OneDriveExclusionDlg DynaLog.LogMessage("Preparing to exclude user OneDrive/SkyDrive folders...") ExcludeFolders(TextBox1.Text) If Not successfulExclusion Then Exit Sub - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "User OneDrive folders have been excluded and will be added to the configuration list." - Case "ESN" - Label3.Text = "Las carpetas de OneDrive del usuario han sido excluidas y serán añadidas a la lista de configuración." - Case "FRA" - Label3.Text = "Les répertoires OneDrive de l'utilisateur ont été exclus et seront ajoutés à la liste de configuration." - Case "PTB", "PTG" - Label3.Text = "As pastas do OneDrive dos utilizadores foram excluídas e serão adicionadas à lista de configuração." - Case "ITA" - Label3.Text = "Le cartelle OneDrive dell'utente sono state escluse e saranno aggiunte all'elenco configurazione" - End Select - Case 1 - Label3.Text = "User OneDrive folders have been excluded and will be added to the configuration list." - Case 2 - Label3.Text = "Las carpetas de OneDrive del usuario han sido excluidas y serán añadidas a la lista de configuración." - Case 3 - Label3.Text = "Les répertoires OneDrive de l'utilisateur ont été exclus et seront ajoutés à la liste de configuration." - Case 4 - Label3.Text = "As pastas do OneDrive dos utilizadores foram excluídas e serão adicionadas à lista de configuração." - Case 5 - Label3.Text = "Le cartelle OneDrive dell'utente sono state escluse e saranno aggiunte all'elenco configurazione" - End Select + Label3.Text = LocalizationService.ForSection("OneDriveExclusion.Valid")("User.Folders.Label") Refresh() Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() @@ -57,31 +33,7 @@ Public Class OneDriveExclusionDlg If Directory.Exists(ImagePath & "\Users") Then DynaLog.LogMessage("A users folder exists in Image Path. Scanning for OneDrive/SkyDrive folder...") Try - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "Excluding user OneDrive folders..." - Case "ESN" - Label3.Text = "Excluyendo carpetas de OneDrive del usuario..." - Case "FRA" - Label3.Text = "Exclusion des répertoires OneDrive de l'utilisateur en cours..." - Case "PTB", "PTG" - Label3.Text = "Excluir pastas do OneDrive dos utilizadores..." - Case "ITA" - Label3.Text = "Esclusione cartelle OneDrive utente..." - End Select - Case 1 - Label3.Text = "Excluding user OneDrive folders..." - Case 2 - Label3.Text = "Excluyendo carpetas de OneDrive del usuario..." - Case 3 - Label3.Text = "Exclusion des répertoires OneDrive de l'utilisateur en cours..." - Case 4 - Label3.Text = "Excluir pastas do OneDrive dos utilizadores..." - Case 5 - Label3.Text = "Esclusione cartelle OneDrive utente..." - End Select + Label3.Text = LocalizationService.ForSection("OneDriveExclusion.Folders")("Excluding.User.Label") Refresh() ' Go through all User folders and exclude all OneDrive folders For Each UserDir In Directory.GetDirectories(ImagePath & "\Users", "*", SearchOption.TopDirectoryOnly) @@ -108,111 +60,14 @@ Public Class OneDriveExclusionDlg End Sub Private Sub OneDriveExclusionDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Exclude user OneDrive folders" - Label1.Text = "This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude." & CrLf & CrLf & _ - "NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool." - Label2.Text = "Path to exclude OneDrive folders from:" - Label3.Text = "When you're ready, click Exclude." - Button1.Text = "Browse..." - OK_Button.Text = "Exclude" - Cancel_Button.Text = "Cancel" - FolderBrowserDialog1.Description = "Choose a path that contains user folders:" - Case "ESN" - Text = "Excluir carpetas de OneDrive del usuario" - Label1.Text = "Esta herramienta le ayudará a excluir carpetas de OneDrive del usuario en la lista de configuración en la que esté trabajando. Especifique la ruta a la que desea aplicar el archivo de lista de configuración y haga clic en Excluir." & CrLf & CrLf & _ - "NOTA: una vez ejecutada esta herramienta y excluidas las carpetas de OneDrive del usuario, no debería utilizar la lista de configuración en una imagen distinta a la que especifique aquí. Si desea utilizar la lista en otras imágenes, elimine las carpetas de OneDrive en la lista de configuración y vuelva a ejecutar esta herramienta." - Label2.Text = "Ruta donde excluir las carpetas de OneDrive del usuario:" - Label3.Text = "Cuando esté listo, haga clic en Excluir." - Button1.Text = "Examinar..." - OK_Button.Text = "Excluir" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Escoja una ruta que contenga carpetas de usuario:" - Case "FRA" - Text = "Exclure les répertoires OneDrive de l'utilisateur" - Label1.Text = "Cet outil vous aidera à exclure les répertoires OneDrive de l'utilisateur dans la liste de configuration sur laquelle vous travaillez. Indiquez simplement le chemin d'accès auquel vous souhaitez appliquer le fichier de la liste de configuration, puis cliquez sur Exclure." & CrLf & CrLf & _ - "REMARQUE : une fois que vous avez exécuté cet outil et exclu les répertoires OneDrive de l'utilisateur, vous ne devez pas utiliser la liste de configuration sur une image autre que celle que vous avez spécifiée ici. Si vous souhaitez utiliser la liste de configuration sur d'autres images, supprimez les répertoires OneDrive de l'utilisateur dans la liste de configuration et exécutez à nouveau cet outil." - Label2.Text = "Chemin d'accès à partir duquel exclure les répertoires OneDrive :" - Label3.Text = "Lorsque vous êtes prêt, cliquez sur Exclure." - Button1.Text = "Parcourir..." - OK_Button.Text = "Exclure" - Cancel_Button.Text = "Annuler" - FolderBrowserDialog1.Description = "Choisissez un chemin qui contient des répertoires d'utilisateurs :" - Case "PTB", "PTG" - Text = "Excluir pastas do OneDrive do utilizador" - Label1.Text = "Esta ferramenta irá ajudá-lo a excluir pastas do OneDrive de utilizadores na lista de configuração em que está a trabalhar. Basta especificar o caminho ao qual pretende aplicar o ficheiro da lista de configuração e clicar em Excluir." & CrLf & CrLf & _ - "NOTA: depois de executar esta ferramenta e excluir as pastas do OneDrive dos utilizadores, não deve utilizar a lista de configuração numa imagem que não seja a que especificou aqui. Se quiser usar a lista de configuração em outras imagens, remova as pastas do OneDrive do usuário na lista de configuração e execute esta ferramenta novamente." - Label2.Text = "Caminho para excluir as pastas do OneDrive de:" - Label3.Text = "Quando estiver pronto, clique em Excluir." - Button1.Text = "Navegar..." - OK_Button.Text = "Excluir" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Escolha um caminho que contenha pastas dos utilizadores:" - Case "ITA" - Text = "Escludere le cartelle OneDrive dell'utente" - Label1.Text = "Questo strumento consente di escludere le cartelle OneDrive dell'utente dall'elenco configurazione su cui si sta lavorando. È sufficiente specificare il percorso a cui vuoi applicare il file dell'elenco configurazione e seelzionare 'Escludi'." & CrLf & CrLf & _ - "NOTA: una volta eseguito questo strumento ed escluse le cartelle OneDrive dell'utente, non si dovrebbe usare l'elenco configurazione in un'immagine diversa da quella specificata qui. Se vuoi usare l'elenco configurazione in altre immagini, rimuovi le cartelle OneDrive dell'utente nell'elenco configurazione ed esegui nuovamente questo strumento." - Label2.Text = "Percorso da cui escludere le cartelle OneDrive:" - Label3.Text = "Quando si è pronti, seleziona 'Escludi'" - Button1.Text = "Sfoglia..." - OK_Button.Text = "Escludi" - Cancel_Button.Text = "Annulla" - FolderBrowserDialog1.Description = "Scegli un percorso che contenga le cartelle dell'utente:" - End Select - Case 1 - Text = "Exclude user OneDrive folders" - Label1.Text = "This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude." & CrLf & CrLf & _ - "NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool." - Label2.Text = "Path to exclude OneDrive folders from:" - Label3.Text = "When you're ready, click Exclude." - Button1.Text = "Browse..." - OK_Button.Text = "Exclude" - Cancel_Button.Text = "Cancel" - FolderBrowserDialog1.Description = "Choose a path that contains user folders:" - Case 2 - Text = "Excluir carpetas de OneDrive del usuario" - Label1.Text = "Esta herramienta le ayudará a excluir carpetas de OneDrive del usuario en la lista de configuración en la que esté trabajando. Especifique la ruta a la que desea aplicar el archivo de lista de configuración y haga clic en Excluir." & CrLf & CrLf & _ - "NOTA: una vez ejecutada esta herramienta y excluidas las carpetas de OneDrive del usuario, no debería utilizar la lista de configuración en una imagen distinta a la que especifique aquí. Si desea utilizar la lista en otras imágenes, elimine las carpetas de OneDrive en la lista de configuración y vuelva a ejecutar esta herramienta." - Label2.Text = "Ruta donde excluir las carpetas de OneDrive del usuario:" - Label3.Text = "Cuando esté listo, haga clic en Excluir." - Button1.Text = "Examinar..." - OK_Button.Text = "Excluir" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Escoja una ruta que contenga carpetas de usuario:" - Case 3 - Text = "Exclure les répertoires OneDrive de l'utilisateur" - Label1.Text = "Cet outil vous aidera à exclure les répertoires OneDrive de l'utilisateur dans la liste de configuration sur laquelle vous travaillez. Indiquez simplement le chemin d'accès auquel vous souhaitez appliquer le fichier de la liste de configuration, puis cliquez sur Exclure." & CrLf & CrLf & _ - "REMARQUE : une fois que vous avez exécuté cet outil et exclu les répertoires OneDrive de l'utilisateur, vous ne devez pas utiliser la liste de configuration sur une image autre que celle que vous avez spécifiée ici. Si vous souhaitez utiliser la liste de configuration sur d'autres images, supprimez les répertoires OneDrive de l'utilisateur dans la liste de configuration et exécutez à nouveau cet outil." - Label2.Text = "Chemin d'accès à partir duquel exclure les répertoires OneDrive :" - Label3.Text = "Lorsque vous êtes prêt, cliquez sur Exclure." - Button1.Text = "Parcourir..." - OK_Button.Text = "Exclure" - Cancel_Button.Text = "Annuler" - FolderBrowserDialog1.Description = "Choisissez un chemin qui contient des répertoires d'utilisateurs :" - Case 4 - Text = "Excluir pastas do OneDrive do utilizador" - Label1.Text = "Esta ferramenta irá ajudá-lo a excluir pastas do OneDrive de utilizadores na lista de configuração em que está a trabalhar. Basta especificar o caminho ao qual pretende aplicar o ficheiro da lista de configuração e clicar em Excluir." & CrLf & CrLf & _ - "NOTA: depois de executar esta ferramenta e excluir as pastas do OneDrive dos utilizadores, não deve utilizar a lista de configuração numa imagem que não seja a que especificou aqui. Se quiser usar a lista de configuração em outras imagens, remova as pastas do OneDrive do usuário na lista de configuração e execute esta ferramenta novamente." - Label2.Text = "Caminho para excluir as pastas do OneDrive de:" - Label3.Text = "Quando estiver pronto, clique em Excluir." - Button1.Text = "Navegar..." - OK_Button.Text = "Excluir" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Escolha um caminho que contenha pastas dos utilizadores:" - Case 5 - Text = "Escludere le cartelle OneDrive dell'utente" - Label1.Text = "Questo strumento consente di escludere le cartelle OneDrive dell'utente dall'elenco configurazione su cui si sta lavorando. È sufficiente specificare il percorso a cui vuoi applicare il file dell'elenco configurazione e selezionare 'Escludi'." & CrLf & CrLf & _ - "NOTA: una volta eseguito questo strumento ed escluse le cartelle OneDrive dell'utente, non si dovrebbe usare l'elenco configurazione in un'immagine diversa da quella specificata qui. Se vuoi usare l'elenco configurazione in altre immagini, rimuovi le cartelle OneDrive dell'utente nell'elenco configurazione ed esegui nuovamente questo strumento." - Label2.Text = "Percorso da cui escludere le cartelle OneDrive:" - Label3.Text = "Quando si è pronti, seleziona 'Escludi'" - Button1.Text = "Sfoglia..." - OK_Button.Text = "Escludi" - Cancel_Button.Text = "Annulla" - FolderBrowserDialog1.Description = "Scegli un percorso che contenga le cartelle dell'utente:" - End Select + Text = LocalizationService.ForSection("OneDriveExclusion")("Exclude.User.Label") + Label1.Text = LocalizationService.ForSection("OneDriveExclusion")("Tool.Help.Exclude.Message") + Label2.Text = LocalizationService.ForSection("OneDriveExclusion")("Path.Exclude.Label") + Label3.Text = LocalizationService.ForSection("OneDriveExclusion")("Re.Ready.Label") + Button1.Text = LocalizationService.ForSection("OneDriveExclusion")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("OneDriveExclusion")("Exclude.Button") + Cancel_Button.Text = LocalizationService.ForSection("OneDriveExclusion")("Cancel.Button") + FolderBrowserDialog1.Description = LocalizationService.ForSection("OneDriveExclusion")("UserFolderPath.Description") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor TextBox1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/ConfigLists/WimScriptEditor.Designer.vb b/Panels/ConfigLists/WimScriptEditor.Designer.vb index cbc5a3913..819eb1c79 100644 --- a/Panels/ConfigLists/WimScriptEditor.Designer.vb +++ b/Panels/ConfigLists/WimScriptEditor.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class WimScriptEditor Inherits System.Windows.Forms.Form @@ -81,7 +81,7 @@ Partial Class WimScriptEditor Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(983, 31) Me.Label1.TabIndex = 0 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Config.List.Allows.Message") ' 'Scintilla1 ' @@ -153,7 +153,7 @@ Partial Class WimScriptEditor Me.GroupBox3.Size = New System.Drawing.Size(486, 150) Me.GroupBox3.TabIndex = 0 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Compression exclusion list" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Compression.Exclusion.List") ' 'ListView3 ' @@ -176,7 +176,7 @@ Partial Class WimScriptEditor Me.Button10.Name = "Button10" Me.Button10.Size = New System.Drawing.Size(75, 23) Me.Button10.TabIndex = 1 - Me.Button10.Text = "Edit..." + Me.Button10.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Edit.Button") Me.Button10.UseVisualStyleBackColor = True ' 'Button9 @@ -187,7 +187,7 @@ Partial Class WimScriptEditor Me.Button9.Name = "Button9" Me.Button9.Size = New System.Drawing.Size(75, 23) Me.Button9.TabIndex = 1 - Me.Button9.Text = "Add..." + Me.Button9.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Add.Button") Me.Button9.UseVisualStyleBackColor = True ' 'Button11 @@ -199,7 +199,7 @@ Partial Class WimScriptEditor Me.Button11.Name = "Button11" Me.Button11.Size = New System.Drawing.Size(75, 23) Me.Button11.TabIndex = 1 - Me.Button11.Text = "Remove" + Me.Button11.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Remove.Button") Me.Button11.UseVisualStyleBackColor = True ' 'GroupBox2 @@ -215,7 +215,7 @@ Partial Class WimScriptEditor Me.GroupBox2.Size = New System.Drawing.Size(486, 150) Me.GroupBox2.TabIndex = 0 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Exclusion exception list" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Exclusion.Exception.List") ' 'ListView2 ' @@ -237,7 +237,7 @@ Partial Class WimScriptEditor Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(75, 23) Me.Button5.TabIndex = 1 - Me.Button5.Text = "Add..." + Me.Button5.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Add.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button7 @@ -249,7 +249,7 @@ Partial Class WimScriptEditor Me.Button7.Name = "Button7" Me.Button7.Size = New System.Drawing.Size(75, 23) Me.Button7.TabIndex = 1 - Me.Button7.Text = "Remove" + Me.Button7.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Remove.Button") Me.Button7.UseVisualStyleBackColor = True ' 'Button6 @@ -261,7 +261,7 @@ Partial Class WimScriptEditor Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(75, 23) Me.Button6.TabIndex = 1 - Me.Button6.Text = "Edit..." + Me.Button6.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Edit.Button") Me.Button6.UseVisualStyleBackColor = True ' 'GroupBox1 @@ -277,7 +277,7 @@ Partial Class WimScriptEditor Me.GroupBox1.Size = New System.Drawing.Size(486, 150) Me.GroupBox1.TabIndex = 0 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Exclusion list" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("ExclusionList.Group") ' 'ListView1 ' @@ -300,7 +300,7 @@ Partial Class WimScriptEditor Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 1 - Me.Button3.Text = "Remove" + Me.Button3.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Remove.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button2 @@ -312,7 +312,7 @@ Partial Class WimScriptEditor Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 1 - Me.Button2.Text = "Edit..." + Me.Button2.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Edit.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -323,7 +323,7 @@ Partial Class WimScriptEditor Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 1 - Me.Button1.Text = "Add..." + Me.Button1.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Add.Button") Me.Button1.UseVisualStyleBackColor = True ' 'DarkToolStrip1 @@ -350,7 +350,7 @@ Partial Class WimScriptEditor Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton2.Name = "ToolStripButton2" Me.ToolStripButton2.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton2.Text = "New" + Me.ToolStripButton2.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("New.Label") ' 'ToolStripButton3 ' @@ -361,7 +361,7 @@ Partial Class WimScriptEditor Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton3.Name = "ToolStripButton3" Me.ToolStripButton3.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton3.Text = "Open..." + Me.ToolStripButton3.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Open.Button") ' 'ToolStripButton4 ' @@ -372,7 +372,7 @@ Partial Class WimScriptEditor Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton4.Name = "ToolStripButton4" Me.ToolStripButton4.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton4.Text = "Save as..." + Me.ToolStripButton4.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Save.Button") ' 'ToolStripSeparator4 ' @@ -417,7 +417,7 @@ Partial Class WimScriptEditor Me.ToolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton5.Name = "ToolStripButton5" Me.ToolStripButton5.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton5.Text = "Toggle word wrap" + Me.ToolStripButton5.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Toggle.Word.Wrap.Label") ' 'ToolStripSeparator6 ' @@ -437,7 +437,7 @@ Partial Class WimScriptEditor Me.ToolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton6.Name = "ToolStripButton6" Me.ToolStripButton6.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton6.Text = "Help" + Me.ToolStripButton6.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Help.Label") ' 'ToolStripDropDownButton1 ' @@ -449,7 +449,7 @@ Partial Class WimScriptEditor Me.ToolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripDropDownButton1.Name = "ToolStripDropDownButton1" Me.ToolStripDropDownButton1.Size = New System.Drawing.Size(45, 25) - Me.ToolStripDropDownButton1.Text = "Tools" + Me.ToolStripDropDownButton1.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Tools.Label") ' 'NoOneDriveToolStripMenuItem ' @@ -457,19 +457,19 @@ Partial Class WimScriptEditor Me.NoOneDriveToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) Me.NoOneDriveToolStripMenuItem.Name = "NoOneDriveToolStripMenuItem" Me.NoOneDriveToolStripMenuItem.Size = New System.Drawing.Size(231, 22) - Me.NoOneDriveToolStripMenuItem.Text = "Exclude user OneDrive folders..." + Me.NoOneDriveToolStripMenuItem.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("Exclude.User.One.Button") ' 'WimScriptOFD ' - Me.WimScriptOFD.Filter = "INI files|*.ini" + Me.WimScriptOFD.Filter = LocalizationService.ForSection("Designer.WimScriptEditor")("Inifiles.Filter") Me.WimScriptOFD.SupportMultiDottedExtensions = True - Me.WimScriptOFD.Title = "Specify the configuration list to load" + Me.WimScriptOFD.Title = LocalizationService.ForSection("Designer.WimScriptEditor")("Config.List.Load.Title") ' 'WimScriptSFD ' - Me.WimScriptSFD.Filter = "INI files|*.ini" + Me.WimScriptSFD.Filter = LocalizationService.ForSection("Designer.WimScriptEditor")("Wimscript.Filter") Me.WimScriptSFD.SupportMultiDottedExtensions = True - Me.WimScriptSFD.Title = "Specify the location to save the configuration list to" + Me.WimScriptSFD.Title = LocalizationService.ForSection("Designer.WimScriptEditor")("Location.Save.Config.Title") ' 'WimScriptEditor ' @@ -483,7 +483,7 @@ Partial Class WimScriptEditor Me.MinimumSize = New System.Drawing.Size(1024, 600) Me.Name = "WimScriptEditor" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "DISM Configuration List Editor" + Me.Text = LocalizationService.ForSection("Designer.WimScriptEditor")("ConfigList.Label") Me.Panel1.ResumeLayout(False) Me.Panel2.ResumeLayout(False) Me.SplitContainer1.Panel1.ResumeLayout(False) diff --git a/Panels/ConfigLists/WimScriptEditor.resx b/Panels/ConfigLists/WimScriptEditor.resx index fa0be3b3b..9334d332e 100644 --- a/Panels/ConfigLists/WimScriptEditor.resx +++ b/Panels/ConfigLists/WimScriptEditor.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon. - 17, 17 diff --git a/Panels/ConfigLists/WimScriptEditor.vb b/Panels/ConfigLists/WimScriptEditor.vb index c9cb78f2e..ae3ba98b1 100644 --- a/Panels/ConfigLists/WimScriptEditor.vb +++ b/Panels/ConfigLists/WimScriptEditor.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports ScintillaNET Imports System.Text.Encoding @@ -10,251 +10,29 @@ Public Class WimScriptEditor Dim scaled As Boolean Private Sub WimScriptEditor_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "DISM Configuration List Editor" - Label1.Text = "The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon." - GroupBox1.Text = "Exclusion list" - GroupBox2.Text = "Exclusion exception list" - GroupBox3.Text = "Compression exclusion list" - Button1.Text = "Add..." - Button2.Text = "Edit..." - Button3.Text = "Remove" - Button5.Text = "Add..." - Button6.Text = "Edit..." - Button7.Text = "Remove" - Button9.Text = "Add..." - Button10.Text = "Edit..." - Button11.Text = "Remove" - WimScriptOFD.Title = "Specify the configuration list to load" - WimScriptSFD.Title = "Specify the location to save the configuration list to" - ToolStripButton2.ToolTipText = "New" - ToolStripButton3.ToolTipText = "Open..." - ToolStripButton4.ToolTipText = "Save..." - ToolStripButton5.ToolTipText = "Toggle word wrap" - ToolStripButton6.ToolTipText = "Help" - ToolStripDropDownButton1.Text = "Tools" - NoOneDriveToolStripMenuItem.Text = "Exclude user OneDrive folders..." - Case "ESN" - Text = "Editor de lista de configuraciones de DISM" - Label1.Text = "El Editor de Lista de configuraciones le permite excluir archivos y/o carpetas durante acciones que le permiten especificar estos archivos, como capturar una imagen. Puede especificar las configuraciones desde la interfaz gráfica, o puede crear el archivo de configuración manualmente. Cuando haya acabado, haga clic en el icono de Guardar." - GroupBox1.Text = "Lista de exclusiones" - GroupBox2.Text = "Lista de excepción de exclusiones" - GroupBox3.Text = "Lista de exclusión de compresión" - Button1.Text = "Añadir..." - Button2.Text = "Editar..." - Button3.Text = "Eliminar" - Button5.Text = "Añadir..." - Button6.Text = "Editar..." - Button7.Text = "Eliminar" - Button9.Text = "Añadir..." - Button10.Text = "Editar..." - Button11.Text = "Eliminar" - WimScriptOFD.Title = "Especifique el archivo de configuración a cargar" - WimScriptSFD.Title = "Especifique la ubicación donde guardar el archivo de configuración" - ToolStripButton2.ToolTipText = "Nuevo" - ToolStripButton3.ToolTipText = "Abrir..." - ToolStripButton4.ToolTipText = "Guardar..." - ToolStripButton5.ToolTipText = "Cambiar ajuste de línea" - ToolStripButton6.ToolTipText = "Ayuda" - ToolStripDropDownButton1.Text = "Herramientas" - NoOneDriveToolStripMenuItem.Text = "Excluir carpetas de OneDrive del usuario..." - Case "FRA" - Text = "Éditeur de liste de configuration DISM" - Label1.Text = "L'éditeur de liste de configuration vous permet d'exclure des fichiers et/ou des dossiers lors d'actions qui vous permettent de spécifier ces fichiers, comme la capture d'une image. Vous pouvez soit spécifier les paramètres à partir de l'interface graphique, soit créer le fichier de configuration manuellement. Lorsque vous avez terminé, cliquez sur l'icône Sauvegarder." - GroupBox1.Text = "Liste d'exclusion" - GroupBox2.Text = "Liste des exceptions d'exclusion" - GroupBox3.Text = "Liste d'exclusion de la compression" - Button1.Text = "Ajouter..." - Button2.Text = "Modifier..." - Button3.Text = "Supprimer" - Button5.Text = "Ajouter..." - Button6.Text = "Modifier..." - Button7.Text = "Supprimer" - Button9.Text = "Ajouter..." - Button10.Text = "Modifier..." - Button11.Text = "Supprimer" - WimScriptOFD.Title = "Spécifier la liste de configuration à charger" - WimScriptSFD.Title = "Spécifiez l'emplacement où sauvegarder la liste de configuration" - ToolStripButton2.ToolTipText = "Nouveau" - ToolStripButton3.ToolTipText = "Ouvrir..." - ToolStripButton4.ToolTipText = "Sauvegarder..." - ToolStripButton5.ToolTipText = "Basculer l'habillage des mots" - ToolStripButton6.ToolTipText = "Aide" - ToolStripDropDownButton1.Text = "Outils" - NoOneDriveToolStripMenuItem.Text = "Exclure les répertoires OneDrive de l'utilisateur..." - Case "PTB", "PTG" - Text = "Editor de Lista de Configuração DISM" - Label1.Text = "O Configuration List Editor permite-lhe excluir ficheiros e/ou pastas durante acções que lhe permitem especificar esses ficheiros, como a captura de uma imagem. Pode especificar as definições a partir da interface gráfica ou pode criar o ficheiro de configuração manualmente. Quando tiver terminado, clique no ícone Guardar." - GroupBox1.Text = "Lista de exclusão" - GroupBox2.Text = "Lista de excepções de exclusão" - GroupBox3.Text = "Lista de exclusão de compressão" - Button1.Text = "Adicionar..." - Button2.Text = "Editar..." - Button3.Text = "Remover" - Button5.Text = "Adicionar..." - Button6.Text = "Editar..." - Button7.Text = "Remover" - Button9.Text = "Adicionar..." - Button10.Text = "Editar..." - Button11.Text = "Remover" - WimScriptOFD.Title = "Especificar a lista de configuração a carregar" - WimScriptSFD.Title = "Especificar a localização para guardar a lista de configuração" - ToolStripButton2.ToolTipText = "Novo" - ToolStripButton3.ToolTipText = "Abrir..." - ToolStripButton4.ToolTipText = "Guardar..." - ToolStripButton5.ToolTipText = "Alternar quebra de linha" - ToolStripButton6.ToolTipText = "Ajuda" - ToolStripDropDownButton1.Text = "Ferramentas" - NoOneDriveToolStripMenuItem.Text = "Excluir pastas do OneDrive dos utilizadores..." - Case "ITA" - Text = "Editor elenco configurazione DISM" - Label1.Text = "L'editor elenco configurazione consente di escludere file e/o cartelle durante le azioni che consentono di specificare tali file, come l'acquisizione di un'immagine. È possibile specificare le impostazioni dall'interfaccia grafica oppure creare manualmente il file di configurazione. Al termine, seleziona l'icona Salva" - GroupBox1.Text = "Elenco esclusioni" - GroupBox2.Text = "Elenco eccezioni esclusione" - GroupBox3.Text = "Elenco esclusione compressione" - Button1.Text = "Aggiungi..." - Button2.Text = "Modifica..." - Button3.Text = "Rimuovi" - Button5.Text = "Aggiungi..." - Button6.Text = "Modifica..." - Button7.Text = "Rimuovi" - Button9.Text = "Aggiungi..." - Button10.Text = "Modifica..." - Button11.Text = "Rimuovi" - WimScriptOFD.Title = "Specifica l'elenco configurazione da caricare" - WimScriptSFD.Title = "Specifica il percorso in cui salvare l'elenco di configurazione" - ToolStripButton2.ToolTipText = "Nuovo" - ToolStripButton3.ToolTipText = "Apri..." - ToolStripButton4.ToolTipText = "Salva..." - ToolStripButton5.ToolTipText = "Attiva/disattiva a capo automatico" - ToolStripButton6.ToolTipText = "Aiuto" - ToolStripDropDownButton1.Text = "Strumenti" - NoOneDriveToolStripMenuItem.Text = "Escludi cartelle OneDrive utente..." - End Select - Case 1 - Text = "DISM Configuration List Editor" - Label1.Text = "The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon." - GroupBox1.Text = "Exclusion list" - GroupBox2.Text = "Exclusion exception list" - GroupBox3.Text = "Compression exclusion list" - Button1.Text = "Add..." - Button2.Text = "Edit..." - Button3.Text = "Remove" - Button5.Text = "Add..." - Button6.Text = "Edit..." - Button7.Text = "Remove" - Button9.Text = "Add..." - Button10.Text = "Edit..." - Button11.Text = "Remove" - WimScriptOFD.Title = "Specify the configuration list to load" - WimScriptSFD.Title = "Specify the location to save the configuration list to" - ToolStripButton2.ToolTipText = "New" - ToolStripButton3.ToolTipText = "Open..." - ToolStripButton4.ToolTipText = "Save..." - ToolStripButton5.ToolTipText = "Toggle word wrap" - ToolStripButton6.ToolTipText = "Help" - ToolStripDropDownButton1.Text = "Tools" - NoOneDriveToolStripMenuItem.Text = "Exclude user OneDrive folders..." - Case 2 - Text = "Editor de lista de configuraciones de DISM" - Label1.Text = "El Editor de Lista de configuraciones le permite excluir archivos y/o carpetas durante acciones que le permiten especificar estos archivos, como capturar una imagen. Puede especificar las configuraciones desde la interfaz gráfica, o puede crear el archivo de configuración manualmente. Cuando haya acabado, haga clic en el icono de Guardar." - GroupBox1.Text = "Lista de exclusiones" - GroupBox2.Text = "Lista de excepción de exclusiones" - GroupBox3.Text = "Lista de exclusión de compresión" - Button1.Text = "Añadir..." - Button2.Text = "Editar..." - Button3.Text = "Eliminar" - Button5.Text = "Añadir..." - Button6.Text = "Editar..." - Button7.Text = "Eliminar" - Button9.Text = "Añadir..." - Button10.Text = "Editar..." - Button11.Text = "Eliminar" - WimScriptOFD.Title = "Especifique el archivo de configuración a cargar" - WimScriptSFD.Title = "Especifique la ubicación donde guardar el archivo de configuración" - ToolStripButton2.ToolTipText = "Nuevo" - ToolStripButton3.ToolTipText = "Abrir..." - ToolStripButton4.ToolTipText = "Guardar..." - ToolStripButton5.ToolTipText = "Cambiar ajuste de línea" - ToolStripButton6.ToolTipText = "Ayuda" - ToolStripDropDownButton1.Text = "Herramientas" - NoOneDriveToolStripMenuItem.Text = "Excluir carpetas de OneDrive del usuario..." - Case 3 - Text = "Éditeur de liste de configuration DISM" - Label1.Text = "L'éditeur de liste de configuration vous permet d'exclure des fichiers et/ou des dossiers lors d'actions qui vous permettent de spécifier ces fichiers, comme la capture d'une image. Vous pouvez soit spécifier les paramètres à partir de l'interface graphique, soit créer le fichier de configuration manuellement. Lorsque vous avez terminé, cliquez sur l'icône Sauvegarder." - GroupBox1.Text = "Liste d'exclusion" - GroupBox2.Text = "Liste des exceptions d'exclusion" - GroupBox3.Text = "Liste d'exclusion de la compression" - Button1.Text = "Ajouter..." - Button2.Text = "Modifier..." - Button3.Text = "Supprimer" - Button5.Text = "Ajouter..." - Button6.Text = "Modifier..." - Button7.Text = "Supprimer" - Button9.Text = "Ajouter..." - Button10.Text = "Modifier..." - Button11.Text = "Supprimer" - WimScriptOFD.Title = "Spécifier la liste de configuration à charger" - WimScriptSFD.Title = "Spécifiez l'emplacement où sauvegarder la liste de configuration" - ToolStripButton2.ToolTipText = "Nouveau" - ToolStripButton3.ToolTipText = "Ouvrir..." - ToolStripButton4.ToolTipText = "Sauvegarder..." - ToolStripButton5.ToolTipText = "Basculer l'habillage des mots" - ToolStripButton6.ToolTipText = "Aide" - ToolStripDropDownButton1.Text = "Outils" - NoOneDriveToolStripMenuItem.Text = "Exclure les répertoires OneDrive de l'utilisateur..." - Case 4 - Text = "Editor de Lista de Configuração DISM" - Label1.Text = "O Configuration List Editor permite-lhe excluir ficheiros e/ou pastas durante acções que lhe permitem especificar esses ficheiros, como a captura de uma imagem. Pode especificar as definições a partir da interface gráfica ou pode criar o ficheiro de configuração manualmente. Quando tiver terminado, clique no ícone Guardar." - GroupBox1.Text = "Lista de exclusão" - GroupBox2.Text = "Lista de excepções de exclusão" - GroupBox3.Text = "Lista de exclusão de compressão" - Button1.Text = "Adicionar..." - Button2.Text = "Editar..." - Button3.Text = "Remover" - Button5.Text = "Adicionar..." - Button6.Text = "Editar..." - Button7.Text = "Remover" - Button9.Text = "Adicionar..." - Button10.Text = "Editar..." - Button11.Text = "Remover" - WimScriptOFD.Title = "Especificar a lista de configuração a carregar" - WimScriptSFD.Title = "Especificar a localização para guardar a lista de configuração" - ToolStripButton2.ToolTipText = "Novo" - ToolStripButton3.ToolTipText = "Abrir..." - ToolStripButton4.ToolTipText = "Guardar..." - ToolStripButton5.ToolTipText = "Alternar quebra de linha" - ToolStripButton6.ToolTipText = "Ajuda" - ToolStripDropDownButton1.Text = "Ferramentas" - NoOneDriveToolStripMenuItem.Text = "Excluir pastas do OneDrive dos utilizadores..." - Case 5 - Text = "Editor elenco configurazione DISM" - Label1.Text = "L'Editor elenco configurazione consente di escludere file e/o cartelle durante le azioni che consentono di specificare tali file, come l'acquisizione di un'immagine. È possibile specificare le impostazioni dall'interfaccia grafica oppure creare manualmente il file di configurazione. Al termine, selezionare l'icona Salva" - GroupBox1.Text = "Elenco esclusioni" - GroupBox2.Text = "Elenco eccezioni esclusione" - GroupBox3.Text = "Elenco esclusione compressione" - Button1.Text = "Aggiungi..." - Button2.Text = "Modifica..." - Button3.Text = "Rimuovi" - Button5.Text = "Aggiungi..." - Button6.Text = "Modifica..." - Button7.Text = "Rimuovi" - Button9.Text = "Aggiungi..." - Button10.Text = "Modifica..." - Button11.Text = "Rimuovi" - WimScriptOFD.Title = "Specifica l'elenco configurazione da caricare" - WimScriptSFD.Title = "Specifica il percorso in cui salvare l'elenco configurazione" - ToolStripButton2.ToolTipText = "Nuovo" - ToolStripButton3.ToolTipText = "Apri..." - ToolStripButton4.ToolTipText = "Salva..." - ToolStripButton5.ToolTipText = "Attiva/disattiva a capo automatico" - ToolStripButton6.ToolTipText = "Aiuto" - ToolStripDropDownButton1.Text = "Strumenti" - NoOneDriveToolStripMenuItem.Text = "Escludi cartelle OneDrive utente..." - End Select + Text = LocalizationService.ForSection("WimScriptEditor")("ConfigList.Title") + Label1.Text = LocalizationService.ForSection("WimScriptEditor")("Config.List.Allows.Message") + GroupBox1.Text = LocalizationService.ForSection("WimScriptEditor")("ExclusionList.Group") + GroupBox2.Text = LocalizationService.ForSection("WimScriptEditor")("Exclusion.Exception.List") + GroupBox3.Text = LocalizationService.ForSection("WimScriptEditor")("Compression.Exclusion.List") + Button1.Text = LocalizationService.ForSection("WimScriptEditor")("Add.Button") + Button2.Text = LocalizationService.ForSection("WimScriptEditor")("Edit.Button") + Button3.Text = LocalizationService.ForSection("WimScriptEditor")("Remove.Button") + Button5.Text = LocalizationService.ForSection("WimScriptEditor")("Add.Button") + Button6.Text = LocalizationService.ForSection("WimScriptEditor")("Edit.Button") + Button7.Text = LocalizationService.ForSection("WimScriptEditor")("Remove.Button") + Button9.Text = LocalizationService.ForSection("WimScriptEditor")("Add.Button") + Button10.Text = LocalizationService.ForSection("WimScriptEditor")("Edit.Button") + Button11.Text = LocalizationService.ForSection("WimScriptEditor")("Remove.Button") + WimScriptOFD.Title = LocalizationService.ForSection("WimScriptEditor")("Config.List.Load.Title") + WimScriptSFD.Title = LocalizationService.ForSection("WimScriptEditor")("Location.Save.Config.Title") + ToolStripButton2.ToolTipText = LocalizationService.ForSection("WimScriptEditor")("New.Tooltip") + ToolStripButton3.ToolTipText = LocalizationService.ForSection("WimScriptEditor")("Open.Button") + ToolStripButton4.ToolTipText = LocalizationService.ForSection("WimScriptEditor")("Save.Button") + ToolStripButton5.ToolTipText = LocalizationService.ForSection("WimScriptEditor")("Toggle.Word.Wrap.Tooltip") + ToolStripButton6.ToolTipText = LocalizationService.ForSection("WimScriptEditor")("Help.Tooltip") + ToolStripDropDownButton1.Text = LocalizationService.ForSection("WimScriptEditor")("Tools.Label") + NoOneDriveToolStripMenuItem.Text = LocalizationService.ForSection("WimScriptEditor")("Exclude.User.One.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor ListView1.BackColor = CurrentTheme.BackgroundColor @@ -466,58 +244,10 @@ Public Class WimScriptEditor Dim titleMsg As String = "" If File.ReadAllText(ConfigListFile).ToString() = Scintilla1.Text Then DynaLog.LogMessage("This file does not have pending modifications.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Editor").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Else DynaLog.LogMessage("This file has pending modifications.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " (modified) - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " (modificado) - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " (modifié) - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " (modificado) - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " (modificato) - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " (modified) - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " (modificado) - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " (modifié) - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " (modificado) - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " (modificato) - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Editor").Format("ConfigList.ModifiedTitle", Path.GetFileName(ConfigListFile)) End If Text = titleMsg End If @@ -526,41 +256,8 @@ Public Class WimScriptEditor Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click Dim msg As String = "" Dim titleMsg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Do you want to save this configuration list file?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - DISM Configuration List Editor" - Case "ESN" - msg = "¿Desea guardar este archivo de lista de configuraciones?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - Editor de lista de configuraciones de DISM" - Case "FRA" - msg = "Voulez-vous sauvegarder ce fichier de liste de configuration ?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - msg = "Deseja guardar este ficheiro de lista de configuração?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - Editor de listas de configuração DISM" - Case "ITA" - msg = "Vuoi salvare questo file dell'elenco di configurazione?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - msg = "Do you want to save this configuration list file?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - DISM Configuration List Editor" - Case 2 - msg = "¿Desea guardar este archivo de lista de configuraciones?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - Editor de lista de configuraciones de DISM" - Case 3 - msg = "Voulez-vous sauvegarder ce fichier de liste de configuration ?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - Éditeur de liste de configuration DISM" - Case 4 - msg = "Deseja guardar este ficheiro de lista de configuração?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - Editor de listas de configuração DISM" - Case 5 - msg = "Vuoi salvare questo file dell'elenco di configurazione?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & " - Editor dell'elenco di configurazione DISM" - End Select + msg = LocalizationService.ForSection("WimScriptEditor.Actions")("Save.Config.List.Prompt") + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "")) If (ConfigListFile Is Nothing Or Not File.Exists(ConfigListFile)) And Scintilla1.Text <> "" Then DynaLog.LogMessage("Asking user whether or not to save the file...") Dim Result As MsgBoxResult = MsgBox(msg, vbYesNoCancel + vbQuestion, Text) @@ -568,61 +265,13 @@ Public Class WimScriptEditor Case MsgBoxResult.Yes If File.Exists(ConfigListFile) Then File.WriteAllText(ConfigListFile, Scintilla1.Text, ASCII) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else If WimScriptSFD.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then File.WriteAllText(WimScriptSFD.FileName, Scintilla1.Text, ASCII) ConfigListFile = WimScriptSFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else Exit Sub @@ -642,61 +291,13 @@ Public Class WimScriptEditor Case MsgBoxResult.Yes If File.Exists(ConfigListFile) Then File.WriteAllText(ConfigListFile, Scintilla1.Text, ASCII) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else If WimScriptSFD.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then File.WriteAllText(WimScriptSFD.FileName, Scintilla1.Text, ASCII) ConfigListFile = WimScriptSFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else Exit Sub @@ -713,31 +314,7 @@ Public Class WimScriptEditor End Try End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "New configuration list - DISM Configuration List Editor" - Case "ESN" - Text = "Nueva lista de configuraciones - Editor de lista de configuración de DISM" - Case "FRA" - Text = "Nouvelle liste de configuration - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - Text = "Nova lista de configuração - Editor de listas de configuração DISM" - Case "ITA" - Text = "Nuovo elenco di configurazione - Editor elenco di configurazione DISM" - End Select - Case 1 - Text = "New configuration list - DISM Configuration List Editor" - Case 2 - Text = "Nueva lista de configuraciones - Editor de lista de configuración de DISM" - Case 3 - Text = "Nouvelle liste de configuration - Éditeur de liste de configuration DISM" - Case 4 - Text = "Nova lista de configuração - Editor de listas de configuração DISM" - Case 5 - Text = "Nuovo elenco di configurazione - Editor elenco di configurazione DISM" - End Select + Text = LocalizationService.ForSection("WimScriptEditor")("New.Config.List.Label") ' Generate a default configuration list, as shown in the DISM configuration list documentation. ' Source: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-configuration-list-and-wimscriptini-files-winnext?view=windows-11 @@ -768,41 +345,8 @@ Public Class WimScriptEditor Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click Dim msg As String = "" Dim titleMsg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Do you want to save this configuration list file?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - msg = "¿Desea guardar este archivo de lista de configuraciones?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - msg = "Voulez-vous sauvegarder ce fichier de liste de configuration ?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - msg = "Deseja guardar este ficheiro de lista de configuração?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - msg = "Vuoi salvare questo file dell'elenco di configurazione?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - msg = "Do you want to save this configuration list file?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - msg = "¿Desea guardar este archivo de lista de configuraciones?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - msg = "Voulez-vous sauvegarder ce fichier de liste de configuration ?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - msg = "Deseja guardar este ficheiro de lista de configuração?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - msg = "Vuoi salvare questo file dell'elenco di configurazione?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + msg = LocalizationService.ForSection("WimScriptEditor.Actions")("Save.Config.List.Prompt") + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.FileTitle", If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), ""), Path.GetFileName(ConfigListFile)) If (ConfigListFile Is Nothing Or Not File.Exists(ConfigListFile)) And Scintilla1.Text <> "" Then DynaLog.LogMessage("Asking user whether or not to save the file...") Dim Result As MsgBoxResult = MsgBox(msg, vbYesNoCancel + vbQuestion, Text) @@ -811,61 +355,13 @@ Public Class WimScriptEditor If File.Exists(ConfigListFile) Then File.WriteAllText(WimScriptSFD.FileName, Scintilla1.Text, ASCII) ConfigListFile = WimScriptSFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else If WimScriptSFD.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then File.WriteAllText(WimScriptSFD.FileName, Scintilla1.Text, ASCII) ConfigListFile = WimScriptSFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else Exit Sub @@ -885,61 +381,13 @@ Public Class WimScriptEditor Case MsgBoxResult.Yes If File.Exists(ConfigListFile) Then File.WriteAllText(ConfigListFile, Scintilla1.Text, ASCII) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else If WimScriptSFD.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then File.WriteAllText(WimScriptSFD.FileName, Scintilla1.Text, ASCII) ConfigListFile = WimScriptSFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Actions").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else Exit Sub @@ -971,31 +419,7 @@ Public Class WimScriptEditor DynaLog.LogMessage("Destination file: " & Quote & ConfigListFile & Quote) File.WriteAllText(ConfigListFile, Scintilla1.Text, ASCII) End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - Text = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - Text = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - Text = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - Text = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - Text = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - Text = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - Text = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - Text = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - Text = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + Text = LocalizationService.ForSection("WimScriptEditor").Format("ConfigList.FileTitle", Path.GetFileName(ConfigListFile)) End Sub Private Sub WimScriptOFD_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles WimScriptOFD.FileOk @@ -1003,31 +427,7 @@ Public Class WimScriptEditor DynaLog.LogMessage("Configuration list file: " & Quote & WimScriptOFD.FileName & Quote) Scintilla1.Text = File.ReadAllText(WimScriptOFD.FileName) ConfigListFile = WimScriptOFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - Text = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - Text = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - Text = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - Text = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - Text = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - Text = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - Text = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - Text = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - Text = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + Text = LocalizationService.ForSection("WimScriptEditor.OpenFile").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) End Sub Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click @@ -1115,57 +515,9 @@ Public Class WimScriptEditor ' Indicate whether file has seen changes, if it exists If ConfigListFile IsNot Nothing And File.Exists(ConfigListFile) Then If File.ReadAllText(ConfigListFile).ToString() = Scintilla1.Text Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - Text = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - Text = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - Text = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - Text = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - Text = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - Text = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - Text = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - Text = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - Text = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + Text = LocalizationService.ForSection("WimScriptEditor.Content").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = Path.GetFileName(ConfigListFile) & " (modified) - DISM Configuration List Editor" - Case "ESN" - Text = Path.GetFileName(ConfigListFile) & " (modificado) - Editor de lista de configuraciones de DISM" - Case "FRA" - Text = Path.GetFileName(ConfigListFile) & " (modifié) - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - Text = Path.GetFileName(ConfigListFile) & " (modificado) - Editor de listas de configuração DISM" - Case "ITA" - Text = Path.GetFileName(ConfigListFile) & " (modificato) - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - Text = Path.GetFileName(ConfigListFile) & " (modified) - DISM Configuration List Editor" - Case 2 - Text = Path.GetFileName(ConfigListFile) & " (modificado) - Editor de lista de configuraciones de DISM" - Case 3 - Text = Path.GetFileName(ConfigListFile) & " (modifié) - Éditeur de liste de configuration DISM" - Case 4 - Text = Path.GetFileName(ConfigListFile) & " (modificado) - Editor de listas de configuração DISM" - Case 5 - Text = Path.GetFileName(ConfigListFile) & " (modificato) - Editor dell'elenco di configurazione DISM" - End Select + Text = LocalizationService.ForSection("WimScriptEditor.Content").Format("ConfigList.ModifiedTitle", Path.GetFileName(ConfigListFile)) End If End If @@ -1175,31 +527,7 @@ Public Class WimScriptEditor Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click AddListEntryDlg.IsForExclusionList = True - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - AddListEntryDlg.Text = "Add " & GroupBox1.Text.ToLower() & " entry" - Case "ESN" - AddListEntryDlg.Text = "Añadir entrada de " & GroupBox1.Text.ToLower() - Case "FRA" - AddListEntryDlg.Text = "Ajouter une entrée à la " & GroupBox1.Text.ToLower() - Case "PTB", "PTG" - AddListEntryDlg.Text = "Adicionar entrada de " & GroupBox1.Text.ToLower() - Case "ITA" - AddListEntryDlg.Text = "Aggiungere una entrata di " & GroupBox1.Text.ToLower() - End Select - Case 1 - AddListEntryDlg.Text = "Add " & GroupBox1.Text.ToLower() & " entry" - Case 2 - AddListEntryDlg.Text = "Añadir entrada de " & GroupBox1.Text.ToLower() - Case 3 - AddListEntryDlg.Text = "Ajouter une entrée à la " & GroupBox1.Text.ToLower() - Case 4 - AddListEntryDlg.Text = "Adicionar entrada de " & GroupBox1.Text.ToLower() - Case 5 - AddListEntryDlg.Text = "Aggiungere una entrata di " & GroupBox1.Text.ToLower() - End Select + AddListEntryDlg.Text = LocalizationService.ForSection("WimScriptEditor").Format("AddList.Label", GroupBox1.Text.ToLower()) AddListEntryDlg.Left = Left + ((SplitContainer1.SplitterDistance + Scintilla1.Width) / 2) AddListEntryDlg.Top = Top + Panel2.Top + DarkToolStrip1.Height + SplitContainer1.Top + GroupBox1.Top + 8 AddListEntryDlg.ShowDialog(Me) @@ -1211,31 +539,7 @@ Public Class WimScriptEditor Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click AddListEntryDlg.IsForExclusionList = False - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - AddListEntryDlg.Text = "Add " & GroupBox2.Text.ToLower() & " entry" - Case "ESN" - AddListEntryDlg.Text = "Añadir entrada de " & GroupBox2.Text.ToLower() - Case "FRA" - AddListEntryDlg.Text = "Ajouter une entrée à la " & GroupBox2.Text.ToLower() - Case "PTB", "PTG" - AddListEntryDlg.Text = "Adicionar entrada de " & GroupBox2.Text.ToLower() - Case "ITA" - AddListEntryDlg.Text = "Aggiungere una entrata di " & GroupBox2.Text.ToLower() - End Select - Case 1 - AddListEntryDlg.Text = "Add " & GroupBox2.Text.ToLower() & " entry" - Case 2 - AddListEntryDlg.Text = "Añadir entrada de " & GroupBox2.Text.ToLower() - Case 3 - AddListEntryDlg.Text = "Ajouter une entrée à la " & GroupBox2.Text.ToLower() - Case 4 - AddListEntryDlg.Text = "Adicionar entrada de " & GroupBox2.Text.ToLower() - Case 5 - AddListEntryDlg.Text = "Aggiungere una entrata di " & GroupBox2.Text.ToLower() - End Select + AddListEntryDlg.Text = LocalizationService.ForSection("WimScriptEditor").Format("AddEntry.Label", GroupBox2.Text.ToLower()) AddListEntryDlg.Left = Left + ((SplitContainer1.SplitterDistance + Scintilla1.Width) / 2) AddListEntryDlg.Top = Top + Panel2.Top + DarkToolStrip1.Height + SplitContainer1.Top + GroupBox2.Top + 8 AddListEntryDlg.ShowDialog(Me) @@ -1247,31 +551,7 @@ Public Class WimScriptEditor Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button9.Click AddListEntryDlg.IsForExclusionList = False - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - AddListEntryDlg.Text = "Add " & GroupBox3.Text.ToLower() & " entry" - Case "ESN" - AddListEntryDlg.Text = "Añadir entrada de " & GroupBox3.Text.ToLower() - Case "FRA" - AddListEntryDlg.Text = "Ajouter une entrée à la " & GroupBox3.Text.ToLower() - Case "PTB", "PTG" - AddListEntryDlg.Text = "Adicionar entrada de " & GroupBox3.Text.ToLower() - Case "ITA" - AddListEntryDlg.Text = "Aggiungere una entrata di " & GroupBox3.Text.ToLower() - End Select - Case 1 - AddListEntryDlg.Text = "Add " & GroupBox3.Text.ToLower() & " entry" - Case 2 - AddListEntryDlg.Text = "Añadir entrada de " & GroupBox3.Text.ToLower() - Case 3 - AddListEntryDlg.Text = "Ajouter une entrée à la " & GroupBox3.Text.ToLower() - Case 4 - AddListEntryDlg.Text = "Adicionar entrada de " & GroupBox3.Text.ToLower() - Case 5 - AddListEntryDlg.Text = "Aggiungere una entrata di " & GroupBox3.Text.ToLower() - End Select + AddListEntryDlg.Text = LocalizationService.ForSection("WimScriptEditor").Format("AddEntry.Label", GroupBox3.Text.ToLower()) AddListEntryDlg.Left = Left + ((SplitContainer1.SplitterDistance + Scintilla1.Width) / 2) AddListEntryDlg.Top = Top + Panel2.Top + DarkToolStrip1.Height + SplitContainer1.Top + GroupBox3.Top + 8 AddListEntryDlg.ShowDialog(Me) @@ -1352,41 +632,8 @@ Public Class WimScriptEditor Private Sub WimScriptEditor_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing Dim msg As String = "" Dim titleMsg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Do you want to save this configuration list file?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - msg = "¿Desea guardar este archivo de lista de configuraciones?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - msg = "Voulez-vous sauvegarder ce fichier de liste de configuration ?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - msg = "Deseja guardar este ficheiro de lista de configuração?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - msg = "Vuoi salvare questo file dell'elenco di configurazione?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - msg = "Do you want to save this configuration list file?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - msg = "¿Desea guardar este archivo de lista de configuraciones?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - msg = "Voulez-vous sauvegarder ce fichier de liste de configuration ?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - msg = "Deseja guardar este ficheiro de lista de configuração?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - msg = "Vuoi salvare questo file dell'elenco di configurazione?" - titleMsg = If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), "") & Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + msg = LocalizationService.ForSection("WimScriptEditor.Close")("Save.Config.List.Prompt") + titleMsg = LocalizationService.ForSection("WimScriptEditor.Close").Format("ConfigList.FileTitle", If((ConfigListFile IsNot Nothing And File.Exists(ConfigListFile)), Path.GetFileName(ConfigListFile), ""), Path.GetFileName(ConfigListFile)) If (ConfigListFile Is Nothing Or Not File.Exists(ConfigListFile)) And Scintilla1.Text <> "" Then DynaLog.LogMessage("Asking user whether or not to save the file...") Dim Result As MsgBoxResult = MsgBox(msg, vbYesNoCancel + vbQuestion, Text) @@ -1395,61 +642,13 @@ Public Class WimScriptEditor If File.Exists(ConfigListFile) Then File.WriteAllText(WimScriptSFD.FileName, Scintilla1.Text, ASCII) ConfigListFile = WimScriptSFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Close").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else If WimScriptSFD.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then File.WriteAllText(WimScriptSFD.FileName, Scintilla1.Text, ASCII) ConfigListFile = WimScriptSFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Close").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else e.Cancel = True @@ -1469,61 +668,13 @@ Public Class WimScriptEditor Case MsgBoxResult.Yes If File.Exists(ConfigListFile) Then File.WriteAllText(ConfigListFile, Scintilla1.Text, ASCII) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Close").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else If WimScriptSFD.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then File.WriteAllText(WimScriptSFD.FileName, Scintilla1.Text, ASCII) ConfigListFile = WimScriptSFD.FileName - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case "ESN" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case "FRA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case "PTB", "PTG" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case "ITA" - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select - Case 1 - titleMsg = Path.GetFileName(ConfigListFile) & " - DISM Configuration List Editor" - Case 2 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de lista de configuraciones de DISM" - Case 3 - titleMsg = Path.GetFileName(ConfigListFile) & " - Éditeur de liste de configuration DISM" - Case 4 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor de listas de configuração DISM" - Case 5 - titleMsg = Path.GetFileName(ConfigListFile) & " - Editor dell'elenco di configurazione DISM" - End Select + titleMsg = LocalizationService.ForSection("WimScriptEditor.Close").Format("ConfigList.Title", Path.GetFileName(ConfigListFile)) Text = titleMsg Else e.Cancel = True @@ -1560,4 +711,4 @@ Public Class WimScriptEditor End If End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/DoWork/PleaseWaitDialog.Designer.vb b/Panels/DoWork/PleaseWaitDialog.Designer.vb index f4747f197..bf0dea291 100644 --- a/Panels/DoWork/PleaseWaitDialog.Designer.vb +++ b/Panels/DoWork/PleaseWaitDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class PleaseWaitDialog Inherits System.Windows.Forms.Form @@ -39,7 +39,7 @@ Partial Class PleaseWaitDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(295, 15) Me.Label1.TabIndex = 2 - Me.Label1.Text = "Please wait..." + Me.Label1.Text = LocalizationService.ForSection("Designer.Wait")("Wait.Label") ' 'Label2 ' @@ -52,7 +52,7 @@ Partial Class PleaseWaitDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(295, 15) Me.Label2.TabIndex = 2 - Me.Label2.Text = "Action" + Me.Label2.Text = LocalizationService.ForSection("Designer.Wait")("Action.Label") ' 'Panel1 ' @@ -105,7 +105,7 @@ Partial Class PleaseWaitDialog Me.ShowIcon = False Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Please wait..." + Me.Text = LocalizationService.ForSection("Designer.Wait")("Wait.Label") Me.Panel1.ResumeLayout(False) Me.Panel1.PerformLayout() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/Panels/DoWork/PleaseWaitDialog.vb b/Panels/DoWork/PleaseWaitDialog.vb index a7c8532cf..1f674342f 100644 --- a/Panels/DoWork/PleaseWaitDialog.vb +++ b/Panels/DoWork/PleaseWaitDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports System.Text.Encoding Imports Microsoft.VisualBasic.ControlChars @@ -29,31 +29,7 @@ Public Class PleaseWaitDialog Label2.Size = New Size(WindowHelper.ScaleLogical(343), WindowHelper.ScaleLogical(43)) Label2.Font = New Font("Segoe UI", 11.25) End Select - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Please wait..." - Case "ESN" - Label1.Text = "Espere..." - Case "FRA" - Label1.Text = "Veuillez patienter..." - Case "PTB", "PTG" - Label1.Text = "Por favor, aguarde..." - Case "ITA" - Label1.Text = "Attendi..." - End Select - Case 1 - Label1.Text = "Please wait..." - Case 2 - Label1.Text = "Espere..." - Case 3 - Label1.Text = "Veuillez patienter..." - Case 4 - Label1.Text = "Por favor, aguarde..." - Case 5 - Label1.Text = "Attendi..." - End Select + Label1.Text = LocalizationService.ForSection("Wait")("Wait.Label") Visible = True Panel1.BorderStyle = BorderStyle.None Panel1.BackColor = CurrentTheme.SectionBackgroundColor @@ -92,8 +68,8 @@ Public Class PleaseWaitDialog ProjectValueLoadForm.EpochRTB3.Text = DateTimeOffset.FromUnixTimeSeconds(CInt(ProjectValueLoadForm.RichTextBox23.Text)).ToString().Replace(" +00:00", "").Trim() Catch ex As Exception DynaLog.LogMessage("Could not perform UNIX Epoch conversion. Error message: " & ex.Message) - ProjectValueLoadForm.EpochRTB2.Text = "Not available" - ProjectValueLoadForm.EpochRTB3.Text = "Not available" + ProjectValueLoadForm.EpochRTB2.Text = LocalizationService.ForSection("Wait")("NotAvailable.Label") + ProjectValueLoadForm.EpochRTB3.Text = LocalizationService.ForSection("Wait")("ProjectValue.Label") End Try If Debugger.IsAttached Then ProjectValueLoadForm.ShowDialog(MainForm) @@ -139,8 +115,8 @@ Public Class PleaseWaitDialog ProjectValueLoadForm.EpochRTB3.Text = DateTimeOffset.FromUnixTimeSeconds(CInt(ProjectValueLoadForm.RichTextBox23.Text)).ToString().Replace(" +00:00", "").Trim() Catch ex As Exception DynaLog.LogMessage("Could not perform UNIX Epoch conversion. Error message: " & ex.Message) - ProjectValueLoadForm.EpochRTB2.Text = "Not available" - ProjectValueLoadForm.EpochRTB3.Text = "Not available" + ProjectValueLoadForm.EpochRTB2.Text = LocalizationService.ForSection("Wait")("NotAvailable.Label") + ProjectValueLoadForm.EpochRTB3.Text = LocalizationService.ForSection("Wait")("ProjectValue.Label") End Try If Debugger.IsAttached Then ProjectValueLoadForm.ShowDialog(MainForm) diff --git a/Panels/DoWork/ProgressPanel.Designer.vb b/Panels/DoWork/ProgressPanel.Designer.vb index 4dea6e047..db6b6d2a4 100644 --- a/Panels/DoWork/ProgressPanel.Designer.vb +++ b/Panels/DoWork/ProgressPanel.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ProgressPanel Inherits System.Windows.Forms.Form @@ -65,7 +65,7 @@ Partial Class ProgressPanel Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(703, 30) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Image operations in progress..." + Me.Label1.Text = LocalizationService.ForSection("Designer.Progress")("Image.Operations.Label") ' 'Label2 ' @@ -76,7 +76,7 @@ Partial Class ProgressPanel Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(699, 13) Me.Label2.TabIndex = 2 - Me.Label2.Text = "Please wait while the following tasks are done. This may take some time." + Me.Label2.Text = LocalizationService.ForSection("Designer.Progress")("Wait.Tasks.Label") ' 'Cancel_Button ' @@ -86,7 +86,7 @@ Partial Class ProgressPanel Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(75, 23) Me.Cancel_Button.TabIndex = 3 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.Progress")("Cancel.Button") Me.Cancel_Button.UseVisualStyleBackColor = True Me.Cancel_Button.Visible = False ' @@ -113,7 +113,7 @@ Partial Class ProgressPanel Me.currentTask.Name = "currentTask" Me.currentTask.Size = New System.Drawing.Size(699, 13) Me.currentTask.TabIndex = 5 - Me.currentTask.Text = "currentTask" + Me.currentTask.Text = LocalizationService.ForSection("Designer.Progress")("CurrentTask.Label") ' 'allTasks ' @@ -124,7 +124,7 @@ Partial Class ProgressPanel Me.allTasks.Name = "allTasks" Me.allTasks.Size = New System.Drawing.Size(581, 13) Me.allTasks.TabIndex = 5 - Me.allTasks.Text = "allTasks" + Me.allTasks.Text = LocalizationService.ForSection("Designer.Progress")("AllTasks.Label") ' 'taskCountLbl ' @@ -135,7 +135,7 @@ Partial Class ProgressPanel Me.taskCountLbl.Name = "taskCountLbl" Me.taskCountLbl.Size = New System.Drawing.Size(112, 13) Me.taskCountLbl.TabIndex = 5 - Me.taskCountLbl.Text = "Tasks: {currentTCont} of {taskCount}" + Me.taskCountLbl.Text = LocalizationService.ForSection("Designer.Progress")("Tasks.Tcont.Label") Me.taskCountLbl.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'LogTextContainer @@ -196,7 +196,7 @@ Partial Class ProgressPanel Me.LogButton.Name = "LogButton" Me.LogButton.Size = New System.Drawing.Size(116, 23) Me.LogButton.TabIndex = 3 - Me.LogButton.Text = "Show log" + Me.LogButton.Text = LocalizationService.ForSection("Designer.Progress")("ShowLog.Label") Me.LogButton.UseVisualStyleBackColor = True ' 'ProgressBW @@ -292,7 +292,7 @@ Partial Class ProgressPanel Me.LinkLabel1.Size = New System.Drawing.Size(153, 13) Me.LinkLabel1.TabIndex = 7 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Show DISM log file (advanced)" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.Progress")("Show.Dismlog.File.Link") Me.LinkLabel1.Visible = False ' 'PictureBox1 @@ -333,7 +333,7 @@ Partial Class ProgressPanel Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "ProgressPanel" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Progress" + Me.Text = LocalizationService.ForSection("Designer.Progress")("Progress.Label") Me.LogTextContainer.ResumeLayout(False) Me.DISM_OpLogs.ResumeLayout(False) Me.DT_OpLogs.ResumeLayout(False) diff --git a/Panels/DoWork/ProgressPanel.vb b/Panels/DoWork/ProgressPanel.vb index ca0bbef74..a1222eb41 100644 --- a/Panels/DoWork/ProgressPanel.vb +++ b/Panels/DoWork/ProgressPanel.vb @@ -197,8 +197,6 @@ Public Class ProgressPanel Dim dateStr As String = "DISMTools-" - Dim Language As Integer = 0 ' Form language, taken from MainForm - Dim mntString As String = "" ' Mount directory, necessary for the DISM API Dim OnlineMgmt As Boolean ' Determine whether to perform actions to the active installation or the mounted Windows image @@ -220,6 +218,7 @@ Public Class ProgressPanel Dim LogPath As String Dim LogLevel As Integer Dim QuietOps As Boolean + Dim SkipSysRestart As Boolean Dim UseScratchDir As Boolean Dim AutoScratch As Boolean @@ -229,6 +228,7 @@ Public Class ProgressPanel Dim BckArgs As String Dim IsExpanded As Boolean + Private CancelButtonClosesDialog As Boolean ' OperationNum: 0 @@ -581,6 +581,11 @@ Public Class ProgressPanel Private ReferenceImage As WindowsImage + + Private Function ProgressLogText(itemKey As String) As String + Return LocalizationService.ForSection("Progress.LogText")(itemKey) + End Function + Private Sub OnAllTasksLogReported(AllTasksMessage As String) Handles Me.AllTasksLogReported allTasks.Text = AllTasksMessage End Sub @@ -620,69 +625,22 @@ Public Class ProgressPanel End Sub Private Sub Cancel_Button_Click(sender As Object, e As EventArgs) Handles Cancel_Button.Click - If Cancel_Button.Text = "Cancel" Or Cancel_Button.Text = "Cancelar" Or Cancel_Button.Text = "Annulla" Then - ProgressBW.CancelAsync() - ElseIf Cancel_Button.Text = "OK" Or Cancel_Button.Text = "Aceptar" Then + If CancelButtonClosesDialog Then Close() + Return End If + + ProgressBW.CancelAsync() End Sub Private Sub LogButton_Click(sender As Object, e As EventArgs) Handles LogButton.Click Dim collapsedHeight As Integer = WindowHelper.ScaleLogical(240) Dim expandedHeight As Integer = WindowHelper.ScaleLogical(420) If Not IsExpanded Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - LogButton.Text = "Hide log" - Case "ESN" - LogButton.Text = "Ocultar registro" - Case "FRA" - LogButton.Text = "Cacher le journal" - Case "PTB", "PTG" - LogButton.Text = "Ocultar registo" - Case "ITA" - LogButton.Text = "Nascondi registro" - End Select - Case 1 - LogButton.Text = "Hide log" - Case 2 - LogButton.Text = "Ocultar registro" - Case 3 - LogButton.Text = "Cacher le journal" - Case 4 - LogButton.Text = "Ocultar registo" - Case 5 - LogButton.Text = "Nascondi registro" - End Select + LogButton.Text = LocalizationService.ForSection("Progress.Log")("HideLog.Label") Height = expandedHeight Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - LogButton.Text = "Show log" - Case "ESN" - LogButton.Text = "Mostrar registro" - Case "FRA" - LogButton.Text = "Afficher le journal" - Case "PTB", "PTG" - LogButton.Text = "Mostrar registo" - Case "ITA" - LogButton.Text = "Visualizza registro" - End Select - Case 1 - LogButton.Text = "Show log" - Case 2 - LogButton.Text = "Mostrar registro" - Case 3 - LogButton.Text = "Afficher le journal" - Case 4 - LogButton.Text = "Mostrar registo" - Case 5 - LogButton.Text = "Visualizza registro" - End Select + LogButton.Text = LocalizationService.ForSection("Progress.Log")("ShowLog.Item") Height = collapsedHeight End If IsExpanded = Not IsExpanded @@ -748,31 +706,7 @@ Public Class ProgressPanel End If DynaLog.LogMessage("Number of tasks: " & taskCount) AllPB.Maximum = taskCount * 100 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: 1/" & taskCount - Case "ESN" - taskCountLbl.Text = "Tareas: 1/" & taskCount - Case "FRA" - taskCountLbl.Text = "Tâches : 1/" & taskCount - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: 1/" & taskCount - Case "ITA" - taskCountLbl.Text = "Attività: 1/" & taskCount - End Select - Case 1 - taskCountLbl.Text = "Tasks: 1/" & taskCount - Case 2 - taskCountLbl.Text = "Tareas: 1/" & taskCount - Case 3 - taskCountLbl.Text = "Tâches : 1/" & taskCount - Case 4 - taskCountLbl.Text = "Tarefas: 1/" & taskCount - Case 5 - taskCountLbl.Text = "Attività: 1/" & taskCount - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress.GetTasks").Format("Tasks.Label", taskCount) CenterToParent() End Sub @@ -817,31 +751,7 @@ Public Class ProgressPanel AllPB.Value = prevValue + (AllPB.Maximum / taskList.Count) prevValue = AllPB.Value If Not currentTCont = taskList.Count Then currentTCont += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskList.Count - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskList.Count - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskList.Count - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskList.Count - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & taskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskList.Count - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskList.Count - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskList.Count - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskList.Count - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & taskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskList.Count) DynaLog.LogMessage("Determining if tasks are successful...") If IsSuccessful Then successfulTasks += 1 Else failedTasks += 1 Next @@ -1018,42 +928,9 @@ Public Class ProgressPanel DynaLog.LogMessage("Creating a project...") DynaLog.LogMessage("- Project name: " & Quote & projName & Quote) DynaLog.LogMessage("- Project path: " & Quote & projPath & Quote) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Creating project: " & Quote & projName & Quote - currentTask.Text = "Creating DISMTools project structure..." - Case "ESN" - allTasks.Text = "Creando proyecto: " & Quote & projName & Quote - currentTask.Text = "Creando estructura del proyecto de DISMTools..." - Case "FRA" - allTasks.Text = "Création d'un projet en cours : " & Quote & projName & Quote - currentTask.Text = "Création de la structure du projet DISMTools en cours..." - Case "PTB", "PTG" - allTasks.Text = "Criar projeto: " & Quote & projName & Quote - currentTask.Text = "Criar a estrutura do projeto DISMTools..." - Case "ITA" - allTasks.Text = "Creazione di progetto: " & Quote & projName & Quote - currentTask.Text = "Creazione struttura progetto DISMTools..." - End Select - Case 1 - allTasks.Text = "Creating project: " & Quote & projName & Quote - currentTask.Text = "Creating DISMTools project structure..." - Case 2 - allTasks.Text = "Creando proyecto: " & Quote & projName & Quote - currentTask.Text = "Creando estructura del proyecto de DISMTools..." - Case 3 - allTasks.Text = "Création d'un projet en cours : " & Quote & projName & Quote - currentTask.Text = "Création de la structure du projet DISMTools en cours..." - Case 4 - allTasks.Text = "Criar projeto: " & Quote & projName & Quote - currentTask.Text = "Criar a estrutura do projeto DISMTools..." - Case 5 - allTasks.Text = "Creazione di progetto: " & Quote & projName & Quote - currentTask.Text = "Creazione struttura progetto DISMTools..." - End Select - LogView.AppendText(CrLf & "Creating project structure...") + allTasks.Text = LocalizationService.ForSection("Progress.CreateProject").Format("CreatingProject.Label", projName) + currentTask.Text = LocalizationService.ForSection("Progress.CreateProject")("CreateProject.Button") + LogView.AppendText(CrLf & ProgressLogText("Creating.Project.Structure")) Try DynaLog.LogMessage("Creating main project directory...") Directory.CreateDirectory(projPath & "\" & projName) @@ -1128,15 +1005,15 @@ Public Class ProgressPanel CurrentPB.Value = 100 Thread.Sleep(125) AllPB.Value = CurrentPB.Value - LogView.AppendText(CrLf & "Project created successfully.") + LogView.AppendText(CrLf & ProgressLogText("Project.Created.Successfully")) CurrentPB.Value = CurrentPB.Maximum AllPB.Value = AllPB.Maximum IsSuccessful = True Catch ex As Exception DynaLog.LogMessage("Could not create the project. Error message: " & ex.Message) - LogView.AppendText(CrLf & "An error has occurred. Please read the details below: " & CrLf & ex.GetType().ToString() & ": " & Err.Description) + LogView.AppendText(CrLf & ProgressLogText("An.Error.Has.Occurred.Please.Read.The.Details") & CrLf & ex.GetType().ToString() & ": " & Err.Description) If IsDebugged Then - LogView.AppendText(CrLf & "Debugging information: " & ex.StackTrace) + LogView.AppendText(CrLf & ProgressLogText("Debugging.Information") & ex.StackTrace) End If IsSuccessful = False End Try @@ -1164,63 +1041,30 @@ Public Class ProgressPanel DynaLog.LogMessage("- Check for file errors? " & If(AppendixCheckIntegrity, "Yes", "No")) DynaLog.LogMessage("- Use reparse point tag fix? " & If(AppendixReparsePt, "Yes", "No")) DynaLog.LogMessage("- Capture extended attributes (EAs)? " & If(AppendixCaptureExtendedAttribs, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Appending to image..." - currentTask.Text = "Appending specified mount directory to the specified target image..." - Case "ESN" - allTasks.Text = "Anexando a la imagen..." - currentTask.Text = "Anexando el directorio de montaje especificado a la imagen de destino..." - Case "FRA" - allTasks.Text = "Annexe à l'image... " - currentTask.Text = "Annexe du répertoire de montage spécifié à l'image cible spécifiée..." - Case "PTB", "PTG" - allTasks.Text = "Anexo à imagem..." - currentTask.Text = "Anexo do diretório de montagem especificado à imagem de destino especificada..." - Case "ITA" - allTasks.Text = "Applicazione all'immagine..." - currentTask.Text = "Applicazione cartella montaggio specificata all'immagine destinazione specificata..." - End Select - Case 1 - allTasks.Text = "Appending to image..." - currentTask.Text = "Appending specified mount directory to the specified target image..." - Case 2 - allTasks.Text = "Anexando a la imagen..." - currentTask.Text = "Anexando el directorio de montaje especificado a la imagen de destino..." - Case 3 - allTasks.Text = "Annexe à l'image... " - currentTask.Text = "Annexe du répertoire de montage spécifié à l'image cible spécifiée..." - Case 4 - allTasks.Text = "Anexo à imagem..." - currentTask.Text = "Anexo do diretório de montagem especificado à imagem de destino especificada..." - Case 5 - allTasks.Text = "Applicazione all'immagine..." - currentTask.Text = "Applicazione cartella montaggio specificata all'immagine destinazione specificata..." - End Select - LogView.AppendText(CrLf & "Appending mount directory to specified target image..." & CrLf & "Options:" & CrLf & - "- Source image directory: " & AppendixSourceDir & CrLf & - "- Destination image file: " & AppendixDestinationImage & CrLf & - "- Destination image name: " & AppendixName & CrLf & - "- Destination image description: " & If(AppendixDescription = "", "(none specified)", AppendixDescription) & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.AppendImage")("AppendingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.AppendImage")("Appending.Mount.Dir.Button") + LogView.AppendText(CrLf & ProgressLogText("Appending.Mount.Directory.To.Specified.Target.Image") & CrLf & ProgressLogText("Options") & CrLf & + ProgressLogText("Source.Image.Directory") & AppendixSourceDir & CrLf & + ProgressLogText("Destination.Image.File") & AppendixDestinationImage & CrLf & + ProgressLogText("Destination.Image.Name") & AppendixName & CrLf & + ProgressLogText("Destination.Image.Description") & If(AppendixDescription = "", ProgressLogText("None.Specified"), AppendixDescription) & CrLf) If AppendixWimScriptConfig = "" Then DynaLog.LogMessage("No configuration list file has been specified.") - LogView.AppendText("- Configuration list file: not specified" & CrLf) + LogView.AppendText(ProgressLogText("Configuration.List.File.Not.Specified") & CrLf) Else DynaLog.LogMessage("A configuration list file has been specified. Checking if it exists...") - LogView.AppendText("- Configuration list file: " & Quote & AppendixWimScriptConfig & Quote & CrLf) + LogView.AppendText(ProgressLogText("Configuration.List.File") & Quote & AppendixWimScriptConfig & Quote & CrLf) If Not File.Exists(AppendixWimScriptConfig) Then DynaLog.LogMessage("The configuration list file does not exist in the file system and will be skipped.") - LogView.AppendText(" WARNING: the configuration list file does not exist in the file system. Skipping file..." & CrLf) + LogView.AppendText(ProgressLogText("WARNING.The.Configuration.List.File.Does.Not.Exist") & CrLf) End If End If - LogView.AppendText("- Append image with WIMBoot configuration? " & If(AppendixUseWimBoot, "Yes", "No") & CrLf & - "- Make image bootable? " & If(AppendixBootable, "Yes", "No") & CrLf & - "- Verify image integrity? " & If(AppendixCheckIntegrity, "Yes", "No") & CrLf & - "- Check for file errors? " & If(AppendixVerify, "Yes", "No") & CrLf & - "- Use the reparse point tag fix? " & If(AppendixReparsePt, "Yes", "No") & CrLf & - "- Capture extended attributes? " & If(AppendixCaptureExtendedAttribs, "Yes", "No")) + LogView.AppendText(ProgressLogText("Append.Image.With.WIMBOOT.Configuration") & If(AppendixUseWimBoot, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Make.Image.Bootable") & If(AppendixBootable, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Verify.Image.Integrity") & If(AppendixCheckIntegrity, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Check.For.File.Errors") & If(AppendixVerify, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Use.The.Reparse.Point.Tag.Fix") & If(AppendixReparsePt, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Capture.Extended.Attributes") & If(AppendixCaptureExtendedAttribs, ProgressLogText("Yes"), ProgressLogText("No"))) Select Case DismVersionChecker.ProductMajorPart Case 6 Select Case DismVersionChecker.ProductMinorPart @@ -1247,37 +1091,13 @@ Public Class ProgressPanel If Not AppendixReparsePt Then CommandArgs &= " /norpfix" If AppendixCaptureExtendedAttribs Then CommandArgs &= " /EA" RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.AppendImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -1286,45 +1106,12 @@ Public Class ProgressPanel DynaLog.LogMessage("- Image to apply: " & Quote & FFUApplicationSourceImg & Quote) DynaLog.LogMessage("- Application drive: " & Quote & FFUApplicationDestDrive & Quote) DynaLog.LogMessage("- SFU name pattern: " & Quote & FFUApplicationSFUPattern & Quote) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Applying image..." - currentTask.Text = "Applying specified image to the specified destination..." - Case "ESN" - allTasks.Text = "Aplicando imagen..." - currentTask.Text = "Aplicando imagen especificada al destino especificado..." - Case "FRA" - allTasks.Text = "Application de l'image en cours..." - currentTask.Text = "Application de l'image spécifiée à la destination spécifiée en cours..." - Case "PTB", "PTG" - allTasks.Text = "Aplicar imagem..." - currentTask.Text = "Aplicar a imagem especificada ao destino especificado..." - Case "ITA" - allTasks.Text = "Applicazione dell'immagine..." - currentTask.Text = "Applicazione immagine specificata alla destinazione specificata..." - End Select - Case 1 - allTasks.Text = "Applying image..." - currentTask.Text = "Applying specified image to the specified destination..." - Case 2 - allTasks.Text = "Aplicando imagen..." - currentTask.Text = "Aplicando imagen especificada al destino especificado..." - Case 3 - allTasks.Text = "Application de l'image en cours..." - currentTask.Text = "Application de l'image spécifiée à la destination spécifiée en cours..." - Case 4 - allTasks.Text = "Aplicar imagem..." - currentTask.Text = "Aplicar a imagem especificada ao destino especificado..." - Case 5 - allTasks.Text = "Applicazione dell'immagine..." - currentTask.Text = "Applicazione dell'immagine specificata alla destinazione specificata..." - End Select - LogView.AppendText(CrLf & "Applying image..." & CrLf & "Options:" & CrLf & - "- Source image file: " & ApplicationSourceImg & CrLf & - "- Index to apply: " & ApplicationIndex & CrLf & - "- Target directory: " & ApplicationDestDir & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.ApplyFfuImage")("ApplyingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ApplyFfuImage")("Applying.Image.Dest.Button") + LogView.AppendText(CrLf & ProgressLogText("Applying.Image") & CrLf & ProgressLogText("Options") & CrLf & + ProgressLogText("Source.Image.File") & ApplicationSourceImg & CrLf & + ProgressLogText("Index.To.Apply") & ApplicationIndex & CrLf & + ProgressLogText("Target.Directory") & ApplicationDestDir & CrLf) Select Case DismVersionChecker.ProductMajorPart Case 6 Select Case DismVersionChecker.ProductMinorPart @@ -1339,43 +1126,19 @@ Public Class ProgressPanel ' Detect additional options and set CommandArgs CommandArgs &= " /applydrive=" & Quote & FFUApplicationDestDrive & Quote If FFUApplicationSFUPattern = "" Then - LogView.AppendText("- Split FFU (SFU) file pattern: not specified/not using SFU file" & CrLf) + LogView.AppendText(ProgressLogText("Split.FFU.SFU.File.Pattern.Not.Specified.Not") & CrLf) Else - LogView.AppendText("- Split FFU (SFU) file pattern: " & FFUApplicationSFUPattern & CrLf) + LogView.AppendText(ProgressLogText("Split.FFU.SFU.File.Pattern") & FFUApplicationSFUPattern & CrLf) CommandArgs &= " /sfufile=" & FFUApplicationSFUPattern End If RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.ApplyFfuImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -1392,45 +1155,12 @@ Public Class ProgressPanel DynaLog.LogMessage("- Apply with WIMBoot configuration? " & If(ApplicationUseWimBoot, "Yes", "No")) DynaLog.LogMessage("- Apply in compact mode? " & If(ApplicationCompactMode, "Yes", "No")) DynaLog.LogMessage("- Apply extended attributes (EAs)? " & If(ApplicationUseExtAttr, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Applying image..." - currentTask.Text = "Applying specified image to the specified destination..." - Case "ESN" - allTasks.Text = "Aplicando imagen..." - currentTask.Text = "Aplicando imagen especificada al destino especificado..." - Case "FRA" - allTasks.Text = "Application de l'image en cours..." - currentTask.Text = "Application de l'image spécifiée à la destination spécifiée en cours..." - Case "PTB", "PTG" - allTasks.Text = "Aplicar imagem..." - currentTask.Text = "Aplicar a imagem especificada ao destino especificado..." - Case "ITA" - allTasks.Text = "Applicazione dell'immagine..." - currentTask.Text = "Applicazione immagine specificata alla destinazione specificata..." - End Select - Case 1 - allTasks.Text = "Applying image..." - currentTask.Text = "Applying specified image to the specified destination..." - Case 2 - allTasks.Text = "Aplicando imagen..." - currentTask.Text = "Aplicando imagen especificada al destino especificado..." - Case 3 - allTasks.Text = "Application de l'image en cours..." - currentTask.Text = "Application de l'image spécifiée à la destination spécifiée en cours..." - Case 4 - allTasks.Text = "Aplicar imagem..." - currentTask.Text = "Aplicar a imagem especificada ao destino especificado..." - Case 5 - allTasks.Text = "Applicazione dell'immagine..." - currentTask.Text = "Applicazione dell'immagine specificata alla destinazione specificata..." - End Select - LogView.AppendText(CrLf & "Applying image..." & CrLf & "Options:" & CrLf & - "- Source image file: " & ApplicationSourceImg & CrLf & - "- Index to apply: " & ApplicationIndex & CrLf & - "- Target directory: " & ApplicationDestDir & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.ApplyImage")("ApplyingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ApplyImage")("Applying.Image.Dest.Button") + LogView.AppendText(CrLf & ProgressLogText("Applying.Image") & CrLf & ProgressLogText("Options") & CrLf & + ProgressLogText("Source.Image.File") & ApplicationSourceImg & CrLf & + ProgressLogText("Index.To.Apply") & ApplicationIndex & CrLf & + ProgressLogText("Target.Directory") & ApplicationDestDir & CrLf) Select Case DismVersionChecker.ProductMajorPart Case 6 Select Case DismVersionChecker.ProductMinorPart @@ -1445,85 +1175,61 @@ Public Class ProgressPanel ' Detect additional options and set CommandArgs CommandArgs &= " /applydir=" & Quote & ApplicationDestDir & Quote If ApplicationCheckInt Then - LogView.AppendText("- Verify image integrity? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Verify.Image.Integrity.Yes") & CrLf) CommandArgs &= " /checkintegrity" Else - LogView.AppendText("- Verify image integrity? No" & CrLf) + LogView.AppendText(ProgressLogText("Verify.Image.Integrity.No") & CrLf) End If If ApplicationVerify Then - LogView.AppendText("- Check for file errors? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Check.For.File.Errors.Yes") & CrLf) CommandArgs &= " /verify" Else - LogView.AppendText("- Check for file errors? No" & CrLf) + LogView.AppendText(ProgressLogText("Check.For.File.Errors.No") & CrLf) End If If ApplicationReparsePt Then - LogView.AppendText("- Use reparse point tag fix? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Use.Reparse.Point.Tag.Fix.Yes") & CrLf) Else - LogView.AppendText("- Use reparse point tag fix? No" & CrLf) + LogView.AppendText(ProgressLogText("Use.Reparse.Point.Tag.Fix.No") & CrLf) CommandArgs &= " /norpfix" End If If ApplicationSWMPattern = "" Then - LogView.AppendText("- Split WIM (SWM) file pattern: not specified/not using SWM file" & CrLf) + LogView.AppendText(ProgressLogText("Split.WIM.SWM.File.Pattern.Not.Specified.Not") & CrLf) Else - LogView.AppendText("- Split WIM (SWM) file pattern: " & ApplicationSWMPattern & CrLf) + LogView.AppendText(ProgressLogText("Split.WIM.SWM.File.Pattern") & ApplicationSWMPattern & CrLf) CommandArgs &= " /swmfile=" & ApplicationSWMPattern End If If ApplicationValidateForTD Then - LogView.AppendText("- Validate for Trusted Desktop? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Validate.For.Trusted.Desktop.Yes") & CrLf) CommandArgs &= " /confirmtrustedfile" Else - LogView.AppendText("- Validate for Trusted Desktop? No/Not supported" & CrLf) + LogView.AppendText(ProgressLogText("Validate.For.Trusted.Desktop.No.Not.Supported") & CrLf) End If If ApplicationUseWimBoot Then - LogView.AppendText("- Apply using WIMBoot configuration? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Apply.Using.WIMBOOT.Configuration.Yes") & CrLf) CommandArgs &= " /wimboot" Else - LogView.AppendText("- Apply using WIMBoot configuration? No" & CrLf) + LogView.AppendText(ProgressLogText("Apply.Using.WIMBOOT.Configuration.No") & CrLf) End If If ApplicationCompactMode Then - LogView.AppendText("- Use Compact mode? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Use.Compact.Mode.Yes") & CrLf) CommandArgs &= " /compact" Else - LogView.AppendText("- Use Compact mode? No" & CrLf) + LogView.AppendText(ProgressLogText("Use.Compact.Mode.No") & CrLf) End If If ApplicationUseExtAttr Then - LogView.AppendText("- Apply using extended attributes? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Apply.Using.Extended.Attributes.Yes") & CrLf) CommandArgs &= " /ea" Else - LogView.AppendText("- Apply using extended attributes? No" & CrLf) + LogView.AppendText(ProgressLogText("Apply.Using.Extended.Attributes.No") & CrLf) End If RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.ApplyImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -1533,45 +1239,12 @@ Public Class ProgressPanel DynaLog.LogMessage("- Destination image: " & Quote & FFUCaptureDestinationFfuImage & Quote) DynaLog.LogMessage("- Destination image name: " & Quote & FFUCaptureName & Quote) DynaLog.LogMessage("- Destination image description: " & Quote & FFUCaptureDescription & Quote) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Capturing image..." - currentTask.Text = "Capturing specified directory into a new image..." - Case "ESN" - allTasks.Text = "Capturando imagen..." - currentTask.Text = "Capturando directorio especificado en una nueva imagen..." - Case "FRA" - allTasks.Text = "Capture de l'image en cours..." - currentTask.Text = "Capture du répertoire spécifié dans une nouvelle image en cours..." - Case "PTB", "PTG" - allTasks.Text = "Capturar imagem..." - currentTask.Text = "Capturar o diretório especificado para uma nova imagem..." - Case "ITA" - allTasks.Text = "Cattura immagine..." - currentTask.Text = "Cattura cartella specificata in una nuova immagine..." - End Select - Case 1 - allTasks.Text = "Capturing image..." - currentTask.Text = "Capturing specified directory into a new image..." - Case 2 - allTasks.Text = "Capturando imagen..." - currentTask.Text = "Capturando directorio especificado en una nueva imagen..." - Case 3 - allTasks.Text = "Capture de l'image en cours..." - currentTask.Text = "Capture du répertoire spécifié dans une nouvelle image en cours..." - Case 4 - allTasks.Text = "Capturar imagem..." - currentTask.Text = "Capturar o diretório especificado para uma nova imagem..." - Case 5 - allTasks.Text = "Cattura immagine..." - currentTask.Text = "Cattura cartella specificata in una nuova immagine..." - End Select - LogView.AppendText(CrLf & "Capturing directory..." & CrLf & "Options:" & CrLf & - "- Source directory: " & FFUCaptureSourceDrive & CrLf & - "- Destination image: " & FFUCaptureDestinationFfuImage & CrLf & - "- Captured image name: " & FFUCaptureName & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.CaptureFfuImage")("CapturingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.CaptureFfuImage")("CaptureDir.Button") + LogView.AppendText(CrLf & ProgressLogText("Capturing.Directory") & CrLf & ProgressLogText("Options") & CrLf & + ProgressLogText("Source.Directory") & FFUCaptureSourceDrive & CrLf & + ProgressLogText("Destination.Image") & FFUCaptureDestinationFfuImage & CrLf & + ProgressLogText("Captured.Image.Name") & FFUCaptureName & CrLf) Select Case DismVersionChecker.ProductMajorPart Case 6 Select Case DismVersionChecker.ProductMinorPart @@ -1585,52 +1258,28 @@ Public Class ProgressPanel End Select ' Get additional options If FFUCaptureDescription = "" Then - LogView.AppendText("- Captured image description: none specified" & CrLf) + LogView.AppendText(ProgressLogText("Captured.Image.Description.None.Specified") & CrLf) Else DynaLog.LogMessage("A description has been provided.") - LogView.AppendText("- Captured image description: " & Quote & FFUCaptureDescription & Quote & CrLf) + LogView.AppendText(ProgressLogText("Captured.Image.Description") & Quote & FFUCaptureDescription & Quote & CrLf) CommandArgs &= " /description=" & Quote & FFUCaptureDescription & Quote End If If FFUCaptureCompressType = 0 Then - LogView.AppendText("- Compression type: none" & CrLf) + LogView.AppendText(ProgressLogText("Compression.Type.None") & CrLf) CommandArgs &= " /compress=none" ElseIf FFUCaptureCompressType = 1 Then - LogView.AppendText("- Compression type: default" & CrLf) + LogView.AppendText(ProgressLogText("Compression.Type.Default") & CrLf) CommandArgs &= " /compress=default" End If - LogView.AppendText(CrLf & "Capturing image...") + LogView.AppendText(CrLf & ProgressLogText("Capturing.Image")) RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.CaptureFfuImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -1653,45 +1302,12 @@ Public Class ProgressPanel DynaLog.LogMessage("- Use reparse point tag fix? " & If(CaptureReparsePt, "Yes", "No")) DynaLog.LogMessage("- Capture extended attributes (EAs)? " & If(CaptureExtendedAttributes, "Yes", "No")) DynaLog.LogMessage("- Capture compression level type: " & CaptureCompressType) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Capturing image..." - currentTask.Text = "Capturing specified directory into a new image..." - Case "ESN" - allTasks.Text = "Capturando imagen..." - currentTask.Text = "Capturando directorio especificado en una nueva imagen..." - Case "FRA" - allTasks.Text = "Capture de l'image en cours..." - currentTask.Text = "Capture du répertoire spécifié dans une nouvelle image en cours..." - Case "PTB", "PTG" - allTasks.Text = "Capturar imagem..." - currentTask.Text = "Capturar o diretório especificado para uma nova imagem..." - Case "ITA" - allTasks.Text = "Cattura immagine..." - currentTask.Text = "Cattura cartella specificata in una nuova immagine..." - End Select - Case 1 - allTasks.Text = "Capturing image..." - currentTask.Text = "Capturing specified directory into a new image..." - Case 2 - allTasks.Text = "Capturando imagen..." - currentTask.Text = "Capturando directorio especificado en una nueva imagen..." - Case 3 - allTasks.Text = "Capture de l'image en cours..." - currentTask.Text = "Capture du répertoire spécifié dans une nouvelle image en cours..." - Case 4 - allTasks.Text = "Capturar imagem..." - currentTask.Text = "Capturar o diretório especificado para uma nova imagem..." - Case 5 - allTasks.Text = "Cattura immagine..." - currentTask.Text = "Cattura cartella specificata in una nuova immagine..." - End Select - LogView.AppendText(CrLf & "Capturing directory..." & CrLf & "Options:" & CrLf & - "- Source directory: " & CaptureSourceDir & CrLf & - "- Destination image: " & CaptureDestinationImage & CrLf & - "- Captured image name: " & CaptureName & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.CaptureImage")("CapturingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.CaptureImage")("CaptureDir.Button") + LogView.AppendText(CrLf & ProgressLogText("Capturing.Directory") & CrLf & ProgressLogText("Options") & CrLf & + ProgressLogText("Source.Directory") & CaptureSourceDir & CrLf & + ProgressLogText("Destination.Image") & CaptureDestinationImage & CrLf & + ProgressLogText("Captured.Image.Name") & CaptureName & CrLf) Select Case DismVersionChecker.ProductMajorPart Case 6 Select Case DismVersionChecker.ProductMinorPart @@ -1705,148 +1321,91 @@ Public Class ProgressPanel End Select ' Get additional options If CaptureDescription = "" Then - LogView.AppendText("- Captured image description: none specified" & CrLf) + LogView.AppendText(ProgressLogText("Captured.Image.Description.None.Specified") & CrLf) Else DynaLog.LogMessage("A description has been provided.") - LogView.AppendText("- Captured image description: " & Quote & CaptureDescription & Quote & CrLf) + LogView.AppendText(ProgressLogText("Captured.Image.Description") & Quote & CaptureDescription & Quote & CrLf) CommandArgs &= " /description=" & Quote & CaptureDescription & Quote End If If CaptureWimScriptConfig = "" Then DynaLog.LogMessage("No configuration list file has been specified.") - LogView.AppendText("- Configuration list file: not specified" & CrLf) + LogView.AppendText(ProgressLogText("Configuration.List.File.Not.Specified") & CrLf) Else DynaLog.LogMessage("A configuration list file has been specified. Checking if it exists...") - LogView.AppendText("- Configuration list file: " & CaptureWimScriptConfig & CrLf) + LogView.AppendText(ProgressLogText("Configuration.List.File") & CaptureWimScriptConfig & CrLf) ' Possibly, the file may have been deleted after being specified. Determine whether it still exists If File.Exists(CaptureWimScriptConfig) Then CommandArgs &= " /configfile=" & Quote & CaptureWimScriptConfig & Quote Else DynaLog.LogMessage("The configuration list file does not exist in the file system and will be skipped.") - LogView.AppendText(" WARNING: the configuration list file does not exist in the file system. Skipping file..." & CrLf) + LogView.AppendText(ProgressLogText("WARNING.The.Configuration.List.File.Does.Not.Exist") & CrLf) End If End If If CaptureCompressType = 0 Then - LogView.AppendText("- Compression type: none" & CrLf) + LogView.AppendText(ProgressLogText("Compression.Type.None") & CrLf) CommandArgs &= " /compress=none" ElseIf CaptureCompressType = 1 Then - LogView.AppendText("- Compression type: fast" & CrLf) + LogView.AppendText(ProgressLogText("Compression.Type.Fast") & CrLf) CommandArgs &= " /compress=fast" ElseIf CaptureCompressType = 2 Then - LogView.AppendText("- Compression type: maximum" & CrLf) + LogView.AppendText(ProgressLogText("Compression.Type.Maximum") & CrLf) CommandArgs &= " /compress=max" End If If CaptureBootable Then - LogView.AppendText("- Mark image as bootable? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Mark.Image.As.Bootable.Yes") & CrLf) CommandArgs &= " /bootable" Else - LogView.AppendText("- Mark image as bootable? No" & CrLf) + LogView.AppendText(ProgressLogText("Mark.Image.As.Bootable.No") & CrLf) End If If CaptureCheckIntegrity Then - LogView.AppendText("- Check image integrity? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Check.Image.Integrity.Yes") & CrLf) CommandArgs &= " /checkintegrity" Else - LogView.AppendText("- Check image integrity? No" & CrLf) + LogView.AppendText(ProgressLogText("Check.Image.Integrity.No") & CrLf) End If If CaptureVerify Then - LogView.AppendText("- Verify file errors? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Verify.File.Errors.Yes") & CrLf) CommandArgs &= " /verify" Else - LogView.AppendText("- Verify file errors? No" & CrLf) + LogView.AppendText(ProgressLogText("Verify.File.Errors.No") & CrLf) End If If CaptureReparsePt Then - LogView.AppendText("- Use the Reparse Point tag fix? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Use.The.Reparse.Point.Tag.Fix.Yes") & CrLf) Else - LogView.AppendText("- Use the Reparse Point tag fix? No" & CrLf) + LogView.AppendText(ProgressLogText("Use.The.Reparse.Point.Tag.Fix.No") & CrLf) CommandArgs &= " /norpfix" End If If CaptureUseWimBoot Then - LogView.AppendText("- Append with WIMBoot configuration? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Append.With.WIMBOOT.Configuration.Yes") & CrLf) CommandArgs &= " /wimboot" Else - LogView.AppendText("- Append with WIMBoot configuration? No" & CrLf) + LogView.AppendText(ProgressLogText("Append.With.WIMBOOT.Configuration.No") & CrLf) End If If CaptureExtendedAttributes Then - LogView.AppendText("- Capture extended attributes? Yes" & CrLf) + LogView.AppendText(ProgressLogText("Capture.Extended.Attributes.Yes") & CrLf) CommandArgs &= " /ea" Else - LogView.AppendText("- Capture extended attributes? No" & CrLf) + LogView.AppendText(ProgressLogText("Capture.Extended.Attributes.No") & CrLf) End If - LogView.AppendText(CrLf & "Capturing image...") + LogView.AppendText(CrLf & ProgressLogText("Capturing.Image")) RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.CaptureImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub Private Sub CleanupMountpoints() DynaLog.LogMessage("Cleaning up mount points by deleting resources from old or corrupted images...") DynaLog.LogMessage("This does not require any additional options and invokes an API call. This will take some time depending on your system performance.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Cleaning up mount points..." - currentTask.Text = "Deleting resources from old or corrupted images..." - Case "ESN" - allTasks.Text = "Limpiando puntos de montaje..." - currentTask.Text = "Eliminando recursos de imágenes antiguas o corruptas..." - Case "FRA" - allTasks.Text = "Nettoyage des points de montage en cours..." - currentTask.Text = "Suppression des ressources des images anciennes ou corrompues en cours..." - Case "PTB", "PTG" - allTasks.Text = "Limpeza de pontos de montagem..." - currentTask.Text = "Eliminar recursos de imagens antigas ou corrompidas..." - Case "ITA" - allTasks.Text = "Pulizia punti montaggio..." - currentTask.Text = "Eliminazione risorse da immagini vecchie o corrotte..." - End Select - Case 1 - allTasks.Text = "Cleaning up mount points..." - currentTask.Text = "Deleting resources from old or corrupted images..." - Case 2 - allTasks.Text = "Limpiando puntos de montaje..." - currentTask.Text = "Eliminando recursos de imágenes antiguas o corruptas..." - Case 3 - allTasks.Text = "Nettoyage des points de montage en cours..." - currentTask.Text = "Suppression des ressources des images anciennes ou corrompues en cours..." - Case 4 - allTasks.Text = "Limpeza de pontos de montagem..." - currentTask.Text = "Eliminar recursos de imagens antigas ou corrompidas..." - Case 5 - allTasks.Text = "Pulizia punti montaggio..." - currentTask.Text = "Eliminazione risorse da immagini vecchie o corrotte..." - End Select - LogView.AppendText(CrLf & "Cleaning up mount points..." & CrLf & CrLf & - "This can take some time, depending on the drives connected to this system.") + allTasks.Text = LocalizationService.ForSection("Progress.CleanupMounts")("Cleaning.Up.Mount.Button") + currentTask.Text = LocalizationService.ForSection("Progress.CleanupMounts")("Deleting.Corrupted.Button") + LogView.AppendText(CrLf & ProgressLogText("Cleaning.Up.Mount.Points") & CrLf & CrLf & + ProgressLogText("This.Can.Take.Some.Time.Depending.On.The")) Try DynaLog.LogMessage("Initializing API...") DismApi.Initialize(If(LogLevel = 1, DismLogLevel.LogErrors, If(LogLevel = 2, DismLogLevel.LogErrorsWarnings, If(LogLevel = 3, DismLogLevel.LogErrorsWarningsInfo, DismLogLevel.LogErrorsWarningsInfo))), If(AutoLogs, Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now), LogPath)) @@ -1865,40 +1424,16 @@ Public Class ProgressPanel End Try CurrentPB.Value = 50 AllPB.Value = CurrentPB.Value - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.CleanupMounts")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) If errCode Is Nothing Then errCode = 0 IsSuccessful = True End If If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -1940,49 +1475,16 @@ Public Class ProgressPanel Private Sub CommitImage() DynaLog.LogMessage("Saving changes to the Windows image...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Committing image..." - currentTask.Text = "Saving changes to the image..." - Case "ESN" - allTasks.Text = "Guardando imagen..." - currentTask.Text = "Guardando cambios en la imagen..." - Case "FRA" - allTasks.Text = "Sauvegarde de l'image en cours..." - currentTask.Text = "Sauvegarde des modifications apportées à l'image en cours..." - Case "PTB", "PTG" - allTasks.Text = "A confirmar a imagem..." - currentTask.Text = "Guardar alterações na imagem..." - Case "ITA" - allTasks.Text = "Modifica immagine..." - currentTask.Text = "Salvataggio modifiche nell'immagine..." - End Select - Case 1 - allTasks.Text = "Committing image..." - currentTask.Text = "Saving changes to the image..." - Case 2 - allTasks.Text = "Guardando imagen..." - currentTask.Text = "Guardando cambios en la imagen..." - Case 3 - allTasks.Text = "Sauvegarde de l'image en cours..." - currentTask.Text = "Sauvegarde des modifications apportées à l'image en cours..." - Case 4 - allTasks.Text = "A confirmar a imagem..." - currentTask.Text = "Guardar alterações na imagem..." - Case 5 - allTasks.Text = "Modifica immagine..." - currentTask.Text = "Salvataggio modifiche nell'immagine..." - End Select + allTasks.Text = LocalizationService.ForSection("Progress.CommitImage")("CommittingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.CommitImage")("Saving.Changes.Image.Button") If ReferenceImage IsNot Nothing Then If Path.GetExtension(ReferenceImage.ImageFile).Equals(".ffu", StringComparison.OrdinalIgnoreCase) Then CommitFfu() Exit Sub End If End If - LogView.AppendText(CrLf & "Saving changes..." & CrLf & "Options:" & CrLf & - "- Mount directory: " & MountDir) + LogView.AppendText(CrLf & ProgressLogText("Saving.Changes") & CrLf & ProgressLogText("Options") & CrLf & + ProgressLogText("Mount.Directory") & MountDir) Select Case DismVersionChecker.ProductMajorPart Case 6 Select Case DismVersionChecker.ProductMinorPart @@ -1996,37 +1498,13 @@ Public Class ProgressPanel End Select ' TODO: Add additional options later RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.CommitImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -2038,110 +1516,29 @@ Public Class ProgressPanel RunOps(21) AllPB.Value = AllPB.Maximum / taskCount currentTCont += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskCount) End If - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Deleting images..." - currentTask.Text = "Preparing to remove volume images..." - Case "ESN" - allTasks.Text = "Eliminando imágenes..." - currentTask.Text = "Preparando para eliminar imágenes de volumen..." - Case "FRA" - allTasks.Text = "Suppression des images en cours..." - currentTask.Text = "Préparation de la suppression des images de volume en cours..." - Case "PTB", "PTG" - allTasks.Text = "A eliminar imagens..." - currentTask.Text = "A preparar a remoção de imagens de volume..." - Case "ITA" - allTasks.Text = "Eliminazione immagini..." - currentTask.Text = "Preparazione rimozione immagini volume..." - End Select - Case 1 - allTasks.Text = "Deleting images..." - currentTask.Text = "Preparing to remove volume images..." - Case 2 - allTasks.Text = "Eliminando imágenes..." - currentTask.Text = "Preparando para eliminar imágenes de volumen..." - Case 3 - allTasks.Text = "Suppression des images en cours..." - currentTask.Text = "Préparation de la suppression des images de volume en cours..." - Case 4 - allTasks.Text = "A eliminar imagens..." - currentTask.Text = "A preparar a remoção de imagens de volume..." - Case 5 - allTasks.Text = "Eliminazione immagini..." - currentTask.Text = "Preparazione rimozione immagini volume..." - End Select + allTasks.Text = LocalizationService.ForSection("Progress.RemoveVolumes")("DeletingImages.Button") + currentTask.Text = LocalizationService.ForSection("Progress.RemoveVolumes")("Prepare.Remove.Button") DynaLog.LogMessage("Source image to remove indexes from: " & Quote & imgIndexDeletionSourceImg & Quote) - LogView.AppendText(CrLf & "Removing volume images from file..." & CrLf & - "Options:" & CrLf & - "- Source image: " & imgIndexDeletionSourceImg & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Removing.Volume.Images.From.File") & CrLf & + ProgressLogText("Options") & CrLf & + ProgressLogText("Source.Image") & imgIndexDeletionSourceImg & CrLf) If imgIndexDeletionIntCheck Then - LogView.AppendText("- Check image integrity? Yes") + LogView.AppendText(ProgressLogText("Check.Image.Integrity.Yes")) Else - LogView.AppendText("- Check image integrity? No") + LogView.AppendText(ProgressLogText("Check.Image.Integrity.No")) End If CurrentPB.Maximum = imgIndexDeletionCount ' Removing volume images LogView.AppendText(CrLf & - "Removing volume images..." & CrLf) + ProgressLogText("Removing.Volume.Images") & CrLf) For x = 0 To Array.LastIndexOf(imgIndexDeletionNames, imgIndexDeletionLastName) If x + 1 > CurrentPB.Maximum Then Exit For DynaLog.LogMessage("Volume image to remove: " & Quote & imgIndexDeletionNames(x) & Quote) DynaLog.LogMessage("Processing task...") CurrentPB.Value = x + 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing volume image " & Quote & imgIndexDeletionNames(x) & Quote & "..." - Case "ESN" - currentTask.Text = "Eliminando imagen de volumen " & Quote & imgIndexDeletionNames(x) & Quote & "..." - Case "FRA" - currentTask.Text = "Suppression de l'image de volume " & Quote & imgIndexDeletionNames(x) & Quote & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "Remover a imagem do volume " & Quote & imgIndexDeletionNames(x) & Quote & "..." - Case "ITA" - currentTask.Text = "Rimozione immagine volume " & Quote & imgIndexDeletionNames(x) & Quote & "..." - End Select - Case 1 - currentTask.Text = "Removing volume image " & Quote & imgIndexDeletionNames(x) & Quote & "..." - Case 2 - currentTask.Text = "Eliminando imagen de volumen " & Quote & imgIndexDeletionNames(x) & Quote & "..." - Case 3 - currentTask.Text = "Suppression de l'image de volume " & Quote & imgIndexDeletionNames(x) & Quote & " en cours..." - Case 4 - currentTask.Text = "Remover a imagem do volume " & Quote & imgIndexDeletionNames(x) & Quote & "..." - Case 5 - currentTask.Text = "Rimozione immagine volume " & Quote & imgIndexDeletionNames(x) & Quote & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.RemoveVolumes").Format("Volume.Image.Item", imgIndexDeletionNames(x)) LogView.AppendText(CrLf & "- " & imgIndexDeletionNames(x) & "...") CommandArgs = "/logpath=" & Quote & Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now) & Quote & " /english /delete-image /imagefile=" & Quote & imgIndexDeletionSourceImg & Quote & " /name=" & Quote & imgIndexDeletionNames(x) & Quote @@ -2150,9 +1547,9 @@ Public Class ProgressPanel End If RunProcess(DismProgram, CommandArgs) If Hex(DismExitCode).Length < 8 Then - LogView.AppendText(" Error level : " & DismExitCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & DismExitCode) Else - LogView.AppendText(" Error level : 0x" & Hex(DismExitCode)) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & Hex(DismExitCode)) End If Next CurrentPB.Value = CurrentPB.Maximum @@ -2175,64 +1572,31 @@ Public Class ProgressPanel DynaLog.LogMessage("- Mark the image as bootable? " & If(imgExportMarkBootable, "Yes", "No")) DynaLog.LogMessage("- Use WIMBoot configuration? " & If(imgExportUseWimBoot, "Yes", "No")) DynaLog.LogMessage("- Check image integrity? " & If(imgExportCheckIntegrity, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Exporting image..." - currentTask.Text = "Exporting specified image..." - Case "ESN" - allTasks.Text = "Exportando imagen..." - currentTask.Text = "Exportando imagen especificada..." - Case "FRA" - allTasks.Text = "Exportation de l'image en cours..." - currentTask.Text = "Exportation de l'image spécifiée en cours..." - Case "PTB" - allTasks.Text = "Exportar imagem..." - currentTask.Text = "Exportar imagem especificada..." - Case "ITA" - allTasks.Text = "Esportazione immagine..." - currentTask.Text = "Esportazione immagine specificata..." - End Select - Case 1 - allTasks.Text = "Exporting image..." - currentTask.Text = "Exporting specified image..." - Case 2 - allTasks.Text = "Exportando imagen..." - currentTask.Text = "Exportando imagen especificada..." - Case 3 - allTasks.Text = "Exportation de l'image en cours..." - currentTask.Text = "Exportation de l'image spécifiée en cours..." - Case 4 - allTasks.Text = "Exportar imagem..." - currentTask.Text = "Exportar imagem especificada..." - Case 5 - allTasks.Text = "Esportazione immagine..." - currentTask.Text = "Esportazione immagine specificata..." - End Select - LogView.AppendText(CrLf & "Exporting the specified image to a destination image..." & CrLf & "Options:" & CrLf & - "- Source image file: " & imgExportSourceImage & CrLf & - "- Source image index: " & imgExportSourceIndex & CrLf & - "- Destination image file: " & imgExportDestinationImage & CrLf & - If(imgExportDestinationUseCustomName, "- Destination image name: " & imgExportDestinationName, "")) + allTasks.Text = LocalizationService.ForSection("Progress.ExportImage")("ExportingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ExportImage")("Exporting.Image.Button") + LogView.AppendText(CrLf & ProgressLogText("Exporting.The.Specified.Image.To.A.Destination.Image") & CrLf & ProgressLogText("Options") & CrLf & + ProgressLogText("Source.Image.File") & imgExportSourceImage & CrLf & + ProgressLogText("Source.Image.Index") & imgExportSourceIndex & CrLf & + ProgressLogText("Destination.Image.File") & imgExportDestinationImage & CrLf & + If(imgExportDestinationUseCustomName, ProgressLogText("Destination.Image.Name") & imgExportDestinationName, "")) Select Case imgExportCompressType Case 0 - LogView.AppendText(CrLf & "- Compression type: no compression") + LogView.AppendText(CrLf & ProgressLogText("Compression.Type.No.Compression")) Case 1 - LogView.AppendText(CrLf & "- Compression type: fast compression") + LogView.AppendText(CrLf & ProgressLogText("Compression.Type.Fast.Compression")) Case 2 - LogView.AppendText(CrLf & "- Compression type: maximum compression") + LogView.AppendText(CrLf & ProgressLogText("Compression.Type.Maximum.Compression")) Case 3 - LogView.AppendText(CrLf & "- Compression type: ESD conversion (recovery)") + LogView.AppendText(CrLf & ProgressLogText("Compression.Type.ESD.Conversion.Recovery")) End Select - LogView.AppendText(CrLf & "- Mark the image as bootable? " & If(imgExportMarkBootable, "Yes", "No") & CrLf & - "- Append image with WIMBoot configuration? " & If(imgExportUseWimBoot, "Yes", "No") & CrLf & - "- Check image integrity before exporting the image? " & If(imgExportCheckIntegrity, "Yes", "No")) + LogView.AppendText(CrLf & ProgressLogText("Mark.The.Image.As.Bootable") & If(imgExportMarkBootable, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Append.Image.With.WIMBOOT.Configuration") & If(imgExportUseWimBoot, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Check.Image.Integrity.Before.Exporting.The.Image") & If(imgExportCheckIntegrity, ProgressLogText("Yes"), ProgressLogText("No"))) ' Show information regarding SWM files DynaLog.LogMessage("Extension of source image file: " & Path.GetExtension(imgExportSourceImage)) If Path.GetExtension(imgExportSourceImage).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then DynaLog.LogMessage("We are dealing with SWM files. Showing why we mark all of them for export...") - LogView.AppendText(CrLf & CrLf & "NOTE: the source image contains an asterisk sign (*) in the file name to merge all SWM files") + LogView.AppendText(CrLf & CrLf & ProgressLogText("NOTE.The.Source.Image.Contains.An.Asterisk.Sign")) End If ' Configure basic command arguments Select Case DismVersionChecker.ProductMajorPart @@ -2264,37 +1628,13 @@ Public Class ProgressPanel If imgExportUseWimBoot Then CommandArgs &= " /wimboot" If imgExportCheckIntegrity Then CommandArgs &= " /checkintegrity" RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.ExportImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -2319,45 +1659,12 @@ Public Class ProgressPanel DynaLog.LogMessage("- Mount with read-only permissions? " & If(isReadOnly, "Yes", "No")) DynaLog.LogMessage("- Optimize mount times? " & If(isOptimized, "Yes", "No")) DynaLog.LogMessage("- Check image integrity? " & If(isIntegrityTested, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Mounting image..." - currentTask.Text = "Mounting specified image..." - Case "ESN" - allTasks.Text = "Montando imagen..." - currentTask.Text = "Montando imagen especificada..." - Case "FRA" - allTasks.Text = "Montage de l'image en cours..." - currentTask.Text = "Montage de l'image spécifiée en cours..." - Case "PTB", "PTG" - allTasks.Text = "Montagem de imagem..." - currentTask.Text = "Montagem da imagem especificada..." - Case "ITA" - allTasks.Text = "Montaggio immagine..." - currentTask.Text = "Montaggio immagine specificata..." - End Select - Case 1 - allTasks.Text = "Mounting image..." - currentTask.Text = "Mounting specified image..." - Case 2 - allTasks.Text = "Montando imagen..." - currentTask.Text = "Montando imagen especificada..." - Case 3 - allTasks.Text = "Montage de l'image en cours..." - currentTask.Text = "Montage de l'image spécifiée en cours..." - Case 4 - allTasks.Text = "Montagem de imagem..." - currentTask.Text = "Montagem da imagem especificada..." - Case 5 - allTasks.Text = "Montaggio immagine..." - currentTask.Text = "Montaggio immagine specificata..." - End Select - LogView.AppendText(CrLf & "Mounting image..." & CrLf & "Options:" & CrLf & - "- Image file: " & SourceImg & CrLf & - "- Image index: " & ImgIndex & CrLf & - "- Mount point: " & MountDir) + allTasks.Text = LocalizationService.ForSection("Progress.MountImage")("MountingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.MountImage")("Mounting.Image.Button") + LogView.AppendText(CrLf & ProgressLogText("Mounting.Image") & CrLf & ProgressLogText("Options") & CrLf & + ProgressLogText("Image.File") & SourceImg & CrLf & + ProgressLogText("Image.Index") & ImgIndex & CrLf & + ProgressLogText("Mount.Point") & MountDir) Try If Not isReadOnly AndAlso (File.GetAttributes(SourceImg) And FileAttributes.ReadOnly) = FileAttributes.ReadOnly Then DynaLog.LogMessage("Source image contains read-only flag. Attempting to remove it...") @@ -2380,56 +1687,32 @@ Public Class ProgressPanel CommandArgs = "/logpath=" & Quote & Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now) & Quote & " /english /mount-image /imagefile=" & Quote & SourceImg & Quote & " /index=" & ImgIndex & " /mountdir=" & Quote & MountDir & Quote End Select If isReadOnly Then - LogView.AppendText(CrLf & "- Mount image with read-only permissions? Yes") + LogView.AppendText(CrLf & ProgressLogText("Mount.Image.With.Read.Only.Permissions.Yes")) CommandArgs &= " /readonly" Else - LogView.AppendText(CrLf & "- Mount image with read-only permissions? No") + LogView.AppendText(CrLf & ProgressLogText("Mount.Image.With.Read.Only.Permissions.No")) End If If isOptimized Then - LogView.AppendText(CrLf & "- Optimize mount time? Yes") + LogView.AppendText(CrLf & ProgressLogText("Optimize.Mount.Time.Yes")) CommandArgs &= " /optimize" Else - LogView.AppendText(CrLf & "- Optimize mount time? No") + LogView.AppendText(CrLf & ProgressLogText("Optimize.Mount.Time.No")) End If If isIntegrityTested Then - LogView.AppendText(CrLf & "- Check image integrity? Yes") + LogView.AppendText(CrLf & ProgressLogText("Check.Image.Integrity.Yes")) CommandArgs &= " /checkintegrity" Else - LogView.AppendText(CrLf & "- Check image integrity? No") + LogView.AppendText(CrLf & ProgressLogText("Check.Image.Integrity.No")) End If RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta del livello di errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.MountImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) End If GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -2437,11 +1720,11 @@ Public Class ProgressPanel DynaLog.LogMessage("Optimizing the Windows FFU image...") DynaLog.LogMessage("- Source image to optimize: " & Quote & FFUOptimizationSource & Quote) DynaLog.LogMessage("- Partition to optimize: " & FFUOptimizationCustomPartitionNum & If(FFUOptimizationCustomPartitionNum = 0, " (Default partition in the FFU will be optimized)", "")) - allTasks.Text = "Optimizing image..." - currentTask.Text = "Optimizing Windows image..." - LogView.AppendText(CrLf & "Optimizing Windows image..." & CrLf & - "- Source image to optimize: " & Quote & FFUOptimizationSource & Quote & CrLf & - "- Partition to optimize: " & FFUOptimizationCustomPartitionNum & If(FFUOptimizationCustomPartitionNum = 0, " (Default partition in the FFU will be optimized)", "") & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.Operation")("OptimizingImage.Label") + currentTask.Text = LocalizationService.ForSection("Progress.Operation")("Optimizing.Windows.Label") + LogView.AppendText(CrLf & ProgressLogText("Optimizing.Windows.Image") & CrLf & + ProgressLogText("Source.Image.To.Optimize") & Quote & FFUOptimizationSource & Quote & CrLf & + ProgressLogText("Partition.To.Optimize") & FFUOptimizationCustomPartitionNum & If(FFUOptimizationCustomPartitionNum = 0, ProgressLogText("Default.Partition.In.The.FFU.Will.Be.Optimized"), "") & CrLf) ' Check the DISM version, as the Windows 7-8.1 versions don't allow this action Select Case DismVersionChecker.ProductMajorPart Case 6 @@ -2453,16 +1736,16 @@ Public Class ProgressPanel If FFUOptimizationCustomPartitionNum > 0 Then CommandArgs &= " /partitionnumber=" & FFUOptimizationCustomPartitionNum RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -2471,11 +1754,11 @@ Public Class ProgressPanel DynaLog.LogMessage("Optimizing the Windows image...") DynaLog.LogMessage("- Source image to optimize: " & Quote & OptimizationSource & Quote) DynaLog.LogMessage("- Optimization mode: " & OptimizationMode) - allTasks.Text = "Optimizing image..." - currentTask.Text = "Optimizing Windows image..." - LogView.AppendText(CrLf & "Optimizing Windows image..." & CrLf & - "- Source image to optimize: " & Quote & OptimizationSource & Quote & CrLf & - "- Optimization mode: " & If(OptimizationMode = 0, "Reduce online configuration time", "Prepare image for WIMBoot system") & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.Operation")("OptimizingImage.Label") + currentTask.Text = LocalizationService.ForSection("Progress.Operation")("Optimizing.Windows.Label") + LogView.AppendText(CrLf & ProgressLogText("Optimizing.Windows.Image") & CrLf & + ProgressLogText("Source.Image.To.Optimize") & Quote & OptimizationSource & Quote & CrLf & + ProgressLogText("Optimization.Mode") & If(OptimizationMode = 0, ProgressLogText("Reduce.Online.Configuration.Time"), ProgressLogText("Prepare.Image.For.WIMBOOT.System")) & CrLf) ' Check the DISM version, as the Windows 7-8.1 versions don't allow this action Select Case DismVersionChecker.ProductMajorPart Case 6 @@ -2484,16 +1767,16 @@ Public Class ProgressPanel CommandArgs &= " /image=" & Quote & OptimizationSource & Quote & " /optimize-image " & If(OptimizationMode = 0, "/boot", "/wimboot") End Select RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -2502,43 +1785,10 @@ Public Class ProgressPanel DynaLog.LogMessage("Reloading the servicing session of the mounted image...") DynaLog.LogMessage("- Mount location of the image file we are interested in reloading: " & Quote & MountDir & Quote) DynaLog.LogMessage("This invokes an API call. This process will take some time depending on your system performance and how big the Windows image is.") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Remounting image..." - currentTask.Text = "Reloading servicing session for mounted image..." - Case "ESN" - allTasks.Text = "Remontando imagen..." - currentTask.Text = "Recargando sesión de servicio para la imagen montada..." - Case "FRA" - allTasks.Text = "Remontage de l'image en cours..." - currentTask.Text = "Rechargement de la session de maintenance pour l'image montée en cours..." - Case "PTB", "PTG" - allTasks.Text = "Remontando imagem..." - currentTask.Text = "Recarregar sessão de manutenção para a imagem montada..." - Case "ITA" - allTasks.Text = "Rimontaggio immagine..." - currentTask.Text = "Ricaricamento sessione assistenza per l'immagine montata..." - End Select - Case 1 - allTasks.Text = "Remounting image..." - currentTask.Text = "Reloading servicing session for mounted image..." - Case 2 - allTasks.Text = "Remontando imagen..." - currentTask.Text = "Recargando sesión de servicio para la imagen montada..." - Case 3 - allTasks.Text = "Remontage de l'image en cours..." - currentTask.Text = "Rechargement de la session de maintenance pour l'image montée en cours..." - Case 4 - allTasks.Text = "Remontando imagem..." - currentTask.Text = "Recarregar sessão de manutenção para a imagem montada..." - Case 5 - allTasks.Text = "Rimontaggio immagine..." - currentTask.Text = "Ricaricamento sessione assistenza per l'immagine montata..." - End Select - LogView.AppendText(CrLf & "Reloading servicing session..." & CrLf & - "- Mount directory: " & MountDir) + allTasks.Text = LocalizationService.ForSection("Progress.RemountImage")("RemountingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.RemountImage")("ReloadSession.Button") + LogView.AppendText(CrLf & ProgressLogText("Reloading.Servicing.Session") & CrLf & + ProgressLogText("Mount.Directory") & MountDir) Try DynaLog.LogMessage("Initializing API...") DismApi.Initialize(If(LogLevel = 1, DismLogLevel.LogErrors, If(LogLevel = 2, DismLogLevel.LogErrorsWarnings, If(LogLevel = 3, DismLogLevel.LogErrorsWarningsInfo, DismLogLevel.LogErrorsWarningsInfo))), If(AutoLogs, Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now), LogPath)) @@ -2558,40 +1808,16 @@ Public Class ProgressPanel End Try CurrentPB.Value = 50 AllPB.Value = CurrentPB.Value - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.RemountImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) If errCode Is Nothing Then errCode = 0 IsSuccessful = True End If If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -2601,47 +1827,14 @@ Public Class ProgressPanel DynaLog.LogMessage("- Maximum size of split images: " & SFUSplitFileSize & " MB") DynaLog.LogMessage("- Destination of SFU files: " & Quote & SFUSplitTargetFile & Quote) DynaLog.LogMessage("- Check image integrity? " & If(SFUSplitCheckIntegrity, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Splitting image..." - currentTask.Text = "Splitting FFU file..." - Case "ESN" - allTasks.Text = "Dividiendo imagen..." - currentTask.Text = "Dividiendo archivo FFU..." - Case "FRA" - allTasks.Text = "Division de l'image en cours..." - currentTask.Text = "Division du fichier FFU en cours..." - Case "PTB", "PTG" - allTasks.Text = "Dividir imagem..." - currentTask.Text = "Dividir ficheiro FFU..." - Case "ITA" - allTasks.Text = "Divisione immagine..." - currentTask.Text = "Divisione file FFU..." - End Select - Case 1 - allTasks.Text = "Splitting image..." - currentTask.Text = "Splitting FFU file..." - Case 2 - allTasks.Text = "Dividiendo imagen..." - currentTask.Text = "Dividiendo archivo FFU..." - Case 3 - allTasks.Text = "Division de l'image en cours..." - currentTask.Text = "Division du fichier FFU en cours..." - Case 4 - allTasks.Text = "Dividir imagem..." - currentTask.Text = "Dividir ficheiro FFU..." - Case 5 - allTasks.Text = "Divisione immagine..." - currentTask.Text = "Divisione file FFU..." - End Select - LogView.AppendText(CrLf & "Splitting FFU file into SFU files..." & CrLf & - "- Source image file to split: " & Quote & SFUSplitSourceFile & Quote & CrLf & - "- Maximum size of the split images (in MB): " & SFUSplitFileSize & " MB" & CrLf & - "- Name and path of the target SFU file: " & Quote & SFUSplitTargetFile & Quote & CrLf & - "- Check integrity before splitting this image? " & If(SFUSplitCheckIntegrity, "Yes", "No") & CrLf & CrLf & - "Do note that, if the image contains a large file that can't fit within the maximum size, a SFU file may be larger than the rest, to accommodate it." & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.SplitFfuImage")("SplittingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.SplitFfuImage")("Splitting.File.Button") + LogView.AppendText(CrLf & ProgressLogText("Splitting.FFU.File.Into.SFU.Files") & CrLf & + ProgressLogText("Source.Image.File.To.Split") & Quote & SFUSplitSourceFile & Quote & CrLf & + ProgressLogText("Maximum.Size.Of.The.Split.Images.In.MB") & SFUSplitFileSize & " MB" & CrLf & + ProgressLogText("Name.And.Path.Of.The.Target.SFU.File") & Quote & SFUSplitTargetFile & Quote & CrLf & + ProgressLogText("Check.Integrity.Before.Splitting.This.Image") & If(SFUSplitCheckIntegrity, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & CrLf & + ProgressLogText("Do.Note.That.If.The.Image.Contains.A") & CrLf) ' Check the DISM version, as the Windows 7 version doesn't allow this action Select Case DismVersionChecker.ProductMajorPart Case 6 @@ -2655,16 +1848,16 @@ Public Class ProgressPanel CommandArgs &= " /split-image /imagefile=" & Quote & SFUSplitSourceFile & Quote & " /sfufile=" & Quote & SFUSplitTargetFile & Quote & " /filesize=" & SFUSplitFileSize & If(SFUSplitCheckIntegrity, " /checkintegrity", "") End Select RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -2675,47 +1868,14 @@ Public Class ProgressPanel DynaLog.LogMessage("- Maximum size of split images: " & SWMSplitFileSize & " MB") DynaLog.LogMessage("- Destination of SWM files: " & Quote & SWMSplitTargetFile & Quote) DynaLog.LogMessage("- Check image integrity? " & If(SWMSplitCheckIntegrity, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Splitting image..." - currentTask.Text = "Splitting WIM file..." - Case "ESN" - allTasks.Text = "Dividiendo imagen..." - currentTask.Text = "Dividiendo archivo WIM..." - Case "FRA" - allTasks.Text = "Division de l'image en cours..." - currentTask.Text = "Division du fichier WIM en cours..." - Case "PTB", "PTG" - allTasks.Text = "Dividir imagem..." - currentTask.Text = "Dividir ficheiro WIM..." - Case "ITA" - allTasks.Text = "Divisione immagine..." - currentTask.Text = "Divisione file WIM..." - End Select - Case 1 - allTasks.Text = "Splitting image..." - currentTask.Text = "Splitting WIM file..." - Case 2 - allTasks.Text = "Dividiendo imagen..." - currentTask.Text = "Dividiendo archivo WIM..." - Case 3 - allTasks.Text = "Division de l'image en cours..." - currentTask.Text = "Division du fichier WIM en cours..." - Case 4 - allTasks.Text = "Dividir imagem..." - currentTask.Text = "Dividir ficheiro WIM..." - Case 5 - allTasks.Text = "Divisione immagine..." - currentTask.Text = "Divisione file WIM..." - End Select - LogView.AppendText(CrLf & "Splitting WIM file into SWM files..." & CrLf & - "- Source image file to split: " & Quote & SWMSplitSourceFile & Quote & CrLf & - "- Maximum size of the split images (in MB): " & SWMSplitFileSize & " MB" & CrLf & - "- Name and path of the target SWM file: " & Quote & SWMSplitTargetFile & Quote & CrLf & - "- Check integrity before splitting this image? " & If(SWMSplitCheckIntegrity, "Yes", "No") & CrLf & CrLf & - "Do note that, if the image contains a large file that can't fit within the maximum size, a SWM file may be larger than the rest, to accommodate it." & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.SplitImage")("SplittingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.SplitImage")("Splitting.WIM.File.Button") + LogView.AppendText(CrLf & ProgressLogText("Splitting.WIM.File.Into.SWM.Files") & CrLf & + ProgressLogText("Source.Image.File.To.Split") & Quote & SWMSplitSourceFile & Quote & CrLf & + ProgressLogText("Maximum.Size.Of.The.Split.Images.In.MB") & SWMSplitFileSize & " MB" & CrLf & + ProgressLogText("Name.And.Path.Of.The.Target.SWM.File") & Quote & SWMSplitTargetFile & Quote & CrLf & + ProgressLogText("Check.Integrity.Before.Splitting.This.Image") & If(SWMSplitCheckIntegrity, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & CrLf & + ProgressLogText("Do.Note.That.If.The.Image.Contains.A.2") & CrLf) ' Check the DISM version, as the Windows 7 version doesn't allow this action Select Case DismVersionChecker.ProductMajorPart Case 6 @@ -2729,16 +1889,16 @@ Public Class ProgressPanel CommandArgs &= " /split-image /imagefile=" & Quote & SWMSplitSourceFile & Quote & " /swmfile=" & Quote & SWMSplitTargetFile & Quote & " /filesize=" & SWMSplitFileSize & If(SWMSplitCheckIntegrity, " /checkintegrity", "") End Select RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -2750,48 +1910,15 @@ Public Class ProgressPanel DynaLog.LogMessage("- Unmount operation (may not reflect actual operation): " & UMountOp) DynaLog.LogMessage(" - Check image integrity before committing changes? " & If(CheckImgIntegrity, "Yes", "No")) DynaLog.LogMessage(" - Append changes to new index? " & If(SaveToNewIndex, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Unmounting image..." - currentTask.Text = "Unmounting image file..." - Case "ESN" - allTasks.Text = "Desmontando imagen..." - currentTask.Text = "Desmontando archivo de imagen..." - Case "FRA" - allTasks.Text = "Démontage de l'image en cours..." - currentTask.Text = "Démontage du fichier d'image en cours..." - Case "PTB", "PTG" - allTasks.Text = "Desmontar imagem..." - currentTask.Text = "Desmontar ficheiro de imagem..." - Case "ITA" - allTasks.Text = "Smontaggio immagine..." - currentTask.Text = "Smontaggio file immagine..." - End Select - Case 1 - allTasks.Text = "Unmounting image..." - currentTask.Text = "Unmounting image file..." - Case 2 - allTasks.Text = "Desmontando imagen..." - currentTask.Text = "Desmontando archivo de imagen..." - Case 3 - allTasks.Text = "Démontage de l'image en cours..." - currentTask.Text = "Démontage du fichier d'image en cours..." - Case 4 - allTasks.Text = "Desmontar imagem..." - currentTask.Text = "Desmontar ficheiro de imagem..." - Case 5 - allTasks.Text = "Smontaggio immagine..." - currentTask.Text = "Smontaggio file immagine..." - End Select + allTasks.Text = LocalizationService.ForSection("Progress.UnmountImage")("UnmountingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.UnmountImage")("Unmounting.ImageFile.Button") If Not UMountLocalDir Then DynaLog.LogMessage("The image that was mounted in the project mount directory will not be unmounted. Using mountdir " & Quote & RandomMountDir & Quote & "...") MountDir = RandomMountDir End If - LogView.AppendText(CrLf & "Unmounting image file from mount point..." & CrLf & - "- Mount directory: " & MountDir & CrLf & - "- Image index: " & UMountImgIndex) + LogView.AppendText(CrLf & ProgressLogText("Unmounting.Image.File.From.Mount.Point") & CrLf & + ProgressLogText("Mount.Directory") & MountDir & CrLf & + ProgressLogText("Image.Index") & UMountImgIndex) Try Select Case DismVersionChecker.ProductMajorPart Case 6 @@ -2817,61 +1944,37 @@ Public Class ProgressPanel End If End Select If UMountOp = 0 Then - LogView.AppendText(CrLf & "- Unmount operation: Commit") + LogView.AppendText(CrLf & ProgressLogText("Unmount.Operation.Commit")) CommandArgs &= " /commit" ElseIf UMountOp = 1 Then - LogView.AppendText(CrLf & "- Unmount operation: Discard") + LogView.AppendText(CrLf & ProgressLogText("Unmount.Operation.Discard")) CommandArgs &= " /discard" End If If UMountOp = 0 Then If CheckImgIntegrity Then - LogView.AppendText(CrLf & "- Check image integrity? Yes") + LogView.AppendText(CrLf & ProgressLogText("Check.Image.Integrity.Yes")) CommandArgs &= " /checkintegrity" Else - LogView.AppendText(CrLf & "- Check image integrity? No") + LogView.AppendText(CrLf & ProgressLogText("Check.Image.Integrity.No")) End If If SaveToNewIndex Then - LogView.AppendText(CrLf & "- Append changes to new index? Yes") + LogView.AppendText(CrLf & ProgressLogText("Append.Changes.To.New.Index.Yes")) CommandArgs &= " /append" Else - LogView.AppendText(CrLf & "- Append changes to new index? No") + LogView.AppendText(CrLf & ProgressLogText("Append.Changes.To.New.Index.No")) End If End If RunProcess(DismProgram, CommandArgs) Catch ex As Exception ' Let's try this before setting things up here End Try - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.UnmountImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -2882,11 +1985,11 @@ Public Class ProgressPanel Private Sub ShowPackageInformation(pkgInfo As DismPackageInfo) LogView.AppendText(CrLf & CrLf & - "- Package name: " & pkgInfo.PackageName & CrLf & - "- Package description: " & pkgInfo.Description & CrLf & - "- Package release type: " & Casters.CastDismReleaseType(pkgInfo.ReleaseType) & CrLf & - "- Package is applicable to this image? " & If(pkgInfo.Applicable, "Yes", "No") & CrLf & - "- Package is already installed? " & If(pkgInfo.PackageState = DismPackageFeatureState.Installed Or pkgInfo.PackageState = DismPackageFeatureState.InstallPending, "Yes", "No") & CrLf) + ProgressLogText("Package.Name") & pkgInfo.PackageName & CrLf & + ProgressLogText("Package.Description") & pkgInfo.Description & CrLf & + ProgressLogText("Package.Release.Type") & Casters.CastDismReleaseType(pkgInfo.ReleaseType) & CrLf & + ProgressLogText("Package.Is.Applicable.To.This.Image") & If(pkgInfo.Applicable, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Package.Is.Already.Installed") & If(pkgInfo.PackageState = DismPackageFeatureState.Installed Or pkgInfo.PackageState = DismPackageFeatureState.InstallPending, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf) End Sub Private Sub CountPackagesToAdd() @@ -2902,10 +2005,10 @@ Public Class ProgressPanel pkgCount += 1 Next DynaLog.LogMessage("Package count: " & pkgCount) - LogView.AppendText(CrLf & "Total number of packages: " & pkgCount) + LogView.AppendText(CrLf & ProgressLogText("Total.Number.Of.Packages") & pkgCount) Catch ex As Exception DynaLog.LogMessage("Could not get packages in all subdirectories. Error message: " & ex.Message) - LogView.AppendText(CrLf & "Exception " & ex.GetType().ToString() & " has occurred while enumerating packages. Enumerating packages in the top folder...") + LogView.AppendText(CrLf & ProgressLogText("Exception") & ex.GetType().ToString() & ProgressLogText("Has.Occurred.While.Enumerating.Packages.Enumerating.Packages.In")) DynaLog.LogMessage("Getting CAB files...") For Each CabPkg In My.Computer.FileSystem.GetFiles(pkgSource, FileIO.SearchOption.SearchTopLevelOnly, "*.cab") pkgCount += 1 @@ -2915,14 +2018,14 @@ Public Class ProgressPanel pkgCount += 1 Next DynaLog.LogMessage("Package count: " & pkgCount) - LogView.AppendText(CrLf & "Total number of packages: " & pkgCount) + LogView.AppendText(CrLf & ProgressLogText("Total.Number.Of.Packages") & pkgCount) End Try ElseIf pkgAdditionOp = 1 Then DynaLog.LogMessage("Addition operation is selective addition. A package count has already been obtained from the queue.") - LogView.AppendText(CrLf & "Total number of packages: " & pkgCount) + LogView.AppendText(CrLf & ProgressLogText("Total.Number.Of.Packages") & pkgCount) ElseIf pkgAdditionOp = 2 Then DynaLog.LogMessage("Addition operation is Update Manifest addition. Only 1 package will be added.") - LogView.AppendText(CrLf & "Total number of packages: 1") + LogView.AppendText(CrLf & ProgressLogText("Total.Number.Of.Packages.1")) End If End Sub @@ -2935,34 +2038,10 @@ Public Class ProgressPanel CommandArgs &= " /preventpending" End If RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.Packages.AddRecursive")("Gathering.Error.Level.Button") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) End Sub Private Sub AddPackages(targetImage As String) @@ -2974,99 +2053,42 @@ Public Class ProgressPanel DynaLog.LogMessage("- Save changes to the Windows image after finishing? " & If(pkgAdditionCommit, "Yes", "No")) ' Reset internal integers pkgCurrentNum = 0 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Adding packages..." - currentTask.Text = "Preparing to add packages..." - Case "ESN" - allTasks.Text = "Añadiendo paquetes..." - currentTask.Text = "Preparándonos para añadir paquetes..." - Case "FRA" - allTasks.Text = "Ajout des paquets en cours..." - currentTask.Text = "Préparation de l'ajout des paquets en cours..." - Case "PTB", "PTG" - allTasks.Text = "A adicionar pacotes..." - currentTask.Text = "A preparar a adição de pacotes..." - Case "ITA" - allTasks.Text = "Aggiunta pacchetti..." - currentTask.Text = "Preparazione aggiunta pacchetti..." - End Select - Case 1 - allTasks.Text = "Adding packages..." - currentTask.Text = "Preparing to add packages..." - Case 2 - allTasks.Text = "Añadiendo paquetes..." - currentTask.Text = "Preparándonos para añadir paquetes..." - Case 3 - allTasks.Text = "Ajout des paquets en cours..." - currentTask.Text = "Préparation de l'ajout des paquets en cours..." - Case 4 - allTasks.Text = "A adicionar pacotes..." - currentTask.Text = "A preparar a adição de pacotes..." - Case 5 - allTasks.Text = "Aggiunta pacchetti..." - currentTask.Text = "Preparazione aggiunta pacchetti..." - End Select - LogView.AppendText(CrLf & "Adding packages to mounted image..." & CrLf & - "- Package source: " & pkgSource & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.AddPackages")("AddingPackages.Button") + currentTask.Text = LocalizationService.ForSection("Progress.AddPackages")("Preparing.Packages.Button") + LogView.AppendText(CrLf & ProgressLogText("Adding.Packages.To.Mounted.Image") & CrLf & + ProgressLogText("Package.Source") & pkgSource & CrLf) If pkgAdditionOp = 0 Then - LogView.AppendText("- Addition operation: recursive") + LogView.AppendText(ProgressLogText("Addition.Operation.Recursive")) ElseIf pkgAdditionOp = 1 Then - LogView.AppendText("- Addition operation: selective") + LogView.AppendText(ProgressLogText("Addition.Operation.Selective")) End If If pkgIgnoreApplicabilityChecks Then - LogView.AppendText(CrLf & "- Ignore applicability checks? Yes") + LogView.AppendText(CrLf & ProgressLogText("Ignore.Applicability.Checks.Yes")) Else - LogView.AppendText(CrLf & "- Ignore applicability checks? No") + LogView.AppendText(CrLf & ProgressLogText("Ignore.Applicability.Checks.No")) End If If pkgPreventIfPendingOnline Then - LogView.AppendText(CrLf & "- Prevent package addition if online actions need to be performed? Yes" & CrLf & - "NOTE: if the mounted image requires that online actions be performed, all packages might fail installation; but the operation might still be successful") + LogView.AppendText(CrLf & ProgressLogText("Prevent.Package.Addition.If.Online.Actions.Need.To") & CrLf & + ProgressLogText("NOTE.If.The.Mounted.Image.Requires.That.Online")) Else - LogView.AppendText(CrLf & "- Prevent package addition if online actions need to be performed? No") + LogView.AppendText(CrLf & ProgressLogText("Prevent.Package.Addition.If.Online.Actions.Need.To.2")) End If If pkgAdditionCommit Then - LogView.AppendText(CrLf & "- Commit image after operations are done? Yes") + LogView.AppendText(CrLf & ProgressLogText("Commit.Image.After.Operations.Are.Done.Yes")) Else - LogView.AppendText(CrLf & "- Commit image after operations are done? No") + LogView.AppendText(CrLf & ProgressLogText("Commit.Image.After.Operations.Are.Done.No")) End If ' Perform package enumeration - LogView.AppendText(CrLf & "Enumerating packages to add. Please wait...") + LogView.AppendText(CrLf & ProgressLogText("Enumerating.Packages.To.Add.Please.Wait")) CountPackagesToAdd() Thread.Sleep(2000) ' Sleep to prevent thrashing ' Begin package addition - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding " & pkgCount & " packages..." - Case "ESN" - currentTask.Text = "Añadiendo " & pkgCount & " paquetes..." - Case "FRA" - currentTask.Text = "Ajout de " & pkgCount & " paquets en cours..." - Case "PTB", "PTG" - currentTask.Text = "Adicionando " & pkgCount & " pacotes..." - Case "ITA" - currentTask.Text = "Aggiunta di " & pkgCount & " pacchetti..." - End Select - Case 1 - currentTask.Text = "Adding " & pkgCount & " packages..." - Case 2 - currentTask.Text = "Añadiendo " & pkgCount & " paquetes..." - Case 3 - currentTask.Text = "Ajout de " & pkgCount & " paquets en cours..." - Case 4 - currentTask.Text = "Adicionando " & pkgCount & " pacotes..." - Case 5 - currentTask.Text = "Aggiunta di " & pkgCount & " pacchetti..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.AddPackages").Format("AddingPackages.Item", pkgCount) CurrentPB.Style = ProgressBarStyle.Blocks LogView.AppendText(CrLf & CrLf & - "Processing " & pkgCount & " packages..." & CrLf) + ProgressLogText("Processing") & pkgCount & ProgressLogText("Packages") & CrLf) If pkgAdditionOp = 0 Then DynaLog.LogMessage("Addition operation is recursive addition. DISM will scan the package source for packages to add.") AddPackagesRecursively(targetImage) @@ -3081,31 +2103,7 @@ Public Class ProgressPanel DynaLog.LogMessage("Preparing to save changes...") AllPB.Value = AllPB.Maximum / taskCount currentTCont += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskCount) RunOps(8) Else AllPB.Value = 100 @@ -3119,7 +2117,7 @@ Public Class ProgressPanel End If If PackageErrorCodes.Contains("BC2") Then DynaLog.LogMessage("A system restart is needed to fully apply some packages.") - LogView.AppendText(CrLf & "Some packages require a system restart to be fully processed. Save your work, close your programs, and restart when ready") + LogView.AppendText(CrLf & ProgressLogText("Some.Packages.Require.A.System.Restart.To.Be")) End If End Sub @@ -3128,34 +2126,10 @@ Public Class ProgressPanel For x = 0 To Array.LastIndexOf(pkgs, pkgLastCheckedPackageName) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding package " & (x + 1) & " of " & pkgCount & "..." - Case "ESN" - currentTask.Text = "Añadiendo paquete " & (x + 1) & " de " & pkgCount & "..." - Case "FRA" - currentTask.Text = "Ajout du paquet " & (x + 1) & " de " & pkgCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "A adicionar o pacote " & (x + 1) & " de " & pkgCount & "..." - Case "ITA" - currentTask.Text = "Aggiunta del pacchetto " & (x + 1) & " di " & pkgCount & "..." - End Select - Case 1 - currentTask.Text = "Adding package " & (x + 1) & " of " & pkgCount & "..." - Case 2 - currentTask.Text = "Añadiendo paquete " & (x + 1) & " de " & pkgCount & "..." - Case 3 - currentTask.Text = "Ajout du paquet " & (x + 1) & " de " & pkgCount & " en cours..." - Case 4 - currentTask.Text = "A adicionar o pacote " & (x + 1) & " de " & pkgCount & "..." - Case 5 - currentTask.Text = "Aggiunta del pacchetto " & (x + 1) & " di " & pkgCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.AddPackages").Format("AddingPackage.Item", x + 1, pkgCount) CurrentPB.Value = x + 1 LogView.AppendText(CrLf & - "Package " & (x + 1) & " of " & pkgCount) ' You don't want to see "Package 0 of 407", right? + ProgressLogText("Package") & (x + 1) & ProgressLogText("Of.Word") & pkgCount) ' You don't want to see "Package 0 of 407", right? ' Get package information with the DISM API DynaLog.LogMessage("Getting information about package file " & Quote & Path.GetFileName(pkgs(x)) & Quote & "...") @@ -3177,14 +2151,14 @@ Public Class ProgressPanel DynaLog.LogMessage("The package can be added to the Windows image. Determining installation state of package...") If pkgInfo.PackageState = DismPackageFeatureState.Installed Or pkgInfo.PackageState = DismPackageFeatureState.InstallPending Then DynaLog.LogMessage("The package has already been added at some point.") - LogView.AppendText(CrLf & "Package is already added. Skipping installation of this package...") + LogView.AppendText(CrLf & ProgressLogText("Package.Is.Already.Added.Skipping.Installation.Of.This")) pkgFailedAdditions += 1 End If Else DynaLog.LogMessage("The package cannot be added to the Windows image as it is not applicable.") If Not pkgIgnoreApplicabilityChecks Then DynaLog.LogMessage("Applicability checks are not ignored.") - LogView.AppendText(CrLf & "Package is not applicable to this image. Skipping installation of this package...") + LogView.AppendText(CrLf & ProgressLogText("Package.Is.Not.Applicable.To.This.Image.Skipping")) If PackageErrorCodes.Count <= 0 Then PackageErrorCodes.Add("0x800F8023") Else @@ -3195,7 +2169,7 @@ Public Class ProgressPanel End If End Using Else - LogView.AppendText(CrLf & "The package about to be added is a MSU file. Continuing...") + LogView.AppendText(CrLf & ProgressLogText("The.Package.About.To.Be.Added.Is.A")) ' Force these values to continue package addition pkgIsApplicable = True pkgIsInstalled = False @@ -3221,7 +2195,7 @@ Public Class ProgressPanel End Try If Not pkgIsApplicable Or pkgIsInstalled Then Continue For DynaLog.LogMessage("The package is applicable and has not been installed yet. Adding it...") - LogView.AppendText(CrLf & "Processing package...") + LogView.AppendText(CrLf & ProgressLogText("Processing.Package")) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /norestart /add-package /packagepath=" & Quote & pkgs(x) & Quote If pkgIgnoreApplicabilityChecks Then CommandArgs &= " /ignorecheck" @@ -3230,9 +2204,9 @@ Public Class ProgressPanel CommandArgs &= " /preventpending" End If RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) GetPkgErrorLevel() - LogView.AppendText(" Error level: " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.3") & errCode) If PackageErrorCodes.Count <= 0 Then PackageErrorCodes.Add(errCode) Else @@ -3240,9 +2214,9 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected packages..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Packages") & CrLf) For x = 0 To PackageErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Package no. " & (x + 1) & ": " & PackageErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Package.No") & (x + 1) & ": " & PackageErrorCodes(x)) Next End Sub @@ -3250,34 +2224,10 @@ Public Class ProgressPanel DynaLog.LogMessage("Addition operation is Update Manifest addition.") CurrentPB.Maximum = pkgCount CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding package 1 of " & pkgCount & "..." - Case "ESN" - currentTask.Text = "Añadiendo paquete 1 de " & pkgCount & "..." - Case "FRA" - currentTask.Text = "Ajout du paquet 1 de " & pkgCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "A adicionar o pacote 1 de " & pkgCount & "..." - Case "ITA" - currentTask.Text = "Aggiunta del pacchetto 1 di " & pkgCount & "..." - End Select - Case 1 - currentTask.Text = "Adding package 1 of " & pkgCount & "..." - Case 2 - currentTask.Text = "Añadiendo paquete 1 de " & pkgCount & "..." - Case 3 - currentTask.Text = "Ajout du paquet 1 de " & pkgCount & " en cours..." - Case 4 - currentTask.Text = "A adicionar o pacote 1 de " & pkgCount & "..." - Case 5 - currentTask.Text = "Aggiunta del pacchetto 1 di " & pkgCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.AddPackages").Format("AddingPackage.Item", 1, pkgCount) CurrentPB.Value = 1 - LogView.AppendText(CrLf & "The package about to be added is a Microsoft Update Manifest (MUM) file.") - LogView.AppendText(CrLf & "Processing package...") + LogView.AppendText(CrLf & ProgressLogText("The.Package.About.To.Be.Added.Is.A.2")) + LogView.AppendText(CrLf & ProgressLogText("Processing.Package")) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /norestart /add-package /packagepath=" & Quote & pkgs(0) & Quote If pkgIgnoreApplicabilityChecks Then CommandArgs &= " /ignorecheck" @@ -3286,18 +2236,18 @@ Public Class ProgressPanel CommandArgs &= " /preventpending" End If RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) GetPkgErrorLevel() - LogView.AppendText(" Error level: " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.3") & errCode) If PackageErrorCodes.Count <= 0 Then PackageErrorCodes.Add(errCode) Else PackageErrorCodes.Add(errCode) End If CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected packages..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Packages") & CrLf) For x = 0 To PackageErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Package no. " & (x + 1) & ": " & PackageErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Package.No") & (x + 1) & ": " & PackageErrorCodes(x)) Next End Sub @@ -3305,72 +2255,15 @@ Public Class ProgressPanel DynaLog.LogMessage("Preparing to remove packages...") DynaLog.LogMessage("- Package removal operation: " & pkgRemovalOp) DynaLog.LogMessage("- Amount of packages to remove: " & pkgRemovalCount) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Removing packages..." - currentTask.Text = "Preparing to remove packages..." - Case "ESN" - allTasks.Text = "Eliminando paquetes..." - currentTask.Text = "Preparándonos para eliminar paquetes..." - Case "FRA" - allTasks.Text = "Suppression des paquets en cours..." - currentTask.Text = "Préparation de la suppression des paquets en cours..." - Case "PTB", "PTG" - allTasks.Text = "A remover pacotes..." - currentTask.Text = "A preparar a remoção de pacotes..." - Case "ITA" - allTasks.Text = "Rimozione pacchetti..." - currentTask.Text = "Preparazione rimozione pacchetti..." - End Select - Case 1 - allTasks.Text = "Removing packages..." - currentTask.Text = "Preparing to remove packages..." - Case 2 - allTasks.Text = "Eliminando paquetes..." - currentTask.Text = "Preparándonos para eliminar paquetes..." - Case 3 - allTasks.Text = "Suppression des paquets en cours..." - currentTask.Text = "Préparation de la suppression des paquets en cours..." - Case 4 - allTasks.Text = "A remover pacotes..." - currentTask.Text = "A preparar a remoção de pacotes..." - Case 5 - allTasks.Text = "Rimozione pacchetti..." - currentTask.Text = "Preparazione rimozione pacchetti..." - End Select - LogView.AppendText(CrLf & "Removing packages from mounted image..." & CrLf & - "Enumerating packages to remove. Please wait...") + allTasks.Text = LocalizationService.ForSection("Progress.RemovePackages")("RemovingPackages.Button") + currentTask.Text = LocalizationService.ForSection("Progress.RemovePackages")("PrepareRemove.Button") + LogView.AppendText(CrLf & ProgressLogText("Removing.Packages.From.Mounted.Image") & CrLf & + ProgressLogText("Enumerating.Packages.To.Remove.Please.Wait")) Thread.Sleep(1000) - LogView.AppendText(CrLf & "Amount of packages to remove: " & pkgRemovalCount) + LogView.AppendText(CrLf & ProgressLogText("Amount.Of.Packages.To.Remove") & pkgRemovalCount) ' Begin package removal - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing packages..." - Case "ESN" - currentTask.Text = "Eliminando paquetes..." - Case "FRA" - currentTask.Text = "Suppression des paquets en cours..." - Case "PTB", "PTG" - currentTask.Text = "A remover pacotes..." - Case "ITA" - currentTask.Text = "Rimozione pacchetti..." - End Select - Case 1 - currentTask.Text = "Removing packages..." - Case 2 - currentTask.Text = "Eliminando paquetes..." - Case 3 - currentTask.Text = "Suppression des paquets en cours..." - Case 4 - currentTask.Text = "A remover pacotes..." - Case 5 - currentTask.Text = "Rimozione pacchetti..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.RemovePackages")("RemovingPackages.Item") CurrentPB.Maximum = pkgRemovalCount If pkgRemovalOp = 0 Then DynaLog.LogMessage("Packages that are installed will be removed from the Windows image.") @@ -3382,9 +2275,9 @@ Public Class ProgressPanel End If Directory.Delete(Application.StartupPath & "\tempinfo", True) CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected packages..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Packages") & CrLf) For x = 0 To PackageErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Package no. " & (x + 1) & ": " & PackageErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Package.No") & (x + 1) & ": " & PackageErrorCodes(x)) Next Thread.Sleep(2000) AllPB.Value = 100 @@ -3395,7 +2288,7 @@ Public Class ProgressPanel End If If PackageErrorCodes.Contains("BC2") Then DynaLog.LogMessage("A system restart is needed to fully remove some packages.") - LogView.AppendText(CrLf & "Some packages require a system restart to be fully processed. Save your work, close your programs, and restart when ready") + LogView.AppendText(CrLf & ProgressLogText("Some.Packages.Require.A.System.Restart.To.Be")) End If End Sub @@ -3403,33 +2296,9 @@ Public Class ProgressPanel For x = 0 To Array.LastIndexOf(pkgRemovalFiles, pkgRemovalLastFile) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing package " & (x + 1) & " of " & pkgRemovalCount & "..." - Case "ESN" - currentTask.Text = "Eliminando paquete " & (x + 1) & " de " & pkgRemovalCount & "..." - Case "FRA" - currentTask.Text = "Suppression du paquet " & (x + 1) & " de " & pkgRemovalCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "A remover o pacote " & (x + 1) & " de " & pkgRemovalCount & "..." - Case "ITA" - currentTask.Text = "Rimozione del pacchetto " & (x + 1) & " di " & pkgRemovalCount & "..." - End Select - Case 1 - currentTask.Text = "Removing package " & (x + 1) & " of " & pkgRemovalCount & "..." - Case 2 - currentTask.Text = "Eliminando paquete " & (x + 1) & " de " & pkgRemovalCount & "..." - Case 3 - currentTask.Text = "Suppression du paquet " & (x + 1) & " de " & pkgRemovalCount & " en cours..." - Case 4 - currentTask.Text = "A remover o pacote " & (x + 1) & " de " & pkgRemovalCount & "..." - Case 5 - currentTask.Text = "Rimozione del pacchetto " & (x + 1) & " di " & pkgRemovalCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.RemovePackages").Format("RemovingPackage.Item", x + 1, pkgRemovalCount) LogView.AppendText(CrLf & - "Package " & (x + 1) & " of " & pkgRemovalCount) + ProgressLogText("Package") & (x + 1) & ProgressLogText("Of.Word") & pkgRemovalCount) CurrentPB.Value = x + 1 Directory.CreateDirectory(Application.StartupPath & "\tempinfo") DynaLog.LogMessage("Getting information about package file " & Quote & Path.GetFileName(pkgRemovalFiles(x)) & Quote & "...") @@ -3442,13 +2311,13 @@ Public Class ProgressPanel DynaLog.LogMessage("Getting package information...") Dim pkgInfo As DismPackageInfo = DismApi.GetPackageInfoByPath(imgSession, pkgRemovalFiles(x)) LogView.AppendText(CrLf & CrLf & - "- Package name: " & pkgInfo.PackageName & CrLf) + ProgressLogText("Package.Name") & pkgInfo.PackageName & CrLf) If pkgInfo.PackageState = DismPackageFeatureState.Installed Then - LogView.AppendText("- Package state: installed" & CrLf) + LogView.AppendText(ProgressLogText("Package.State.Installed") & CrLf) ElseIf pkgInfo.PackageState = DismPackageFeatureState.UninstallPending Then - LogView.AppendText("- Package state: an uninstall is pending" & CrLf) + LogView.AppendText(ProgressLogText("Package.State.An.Uninstall.Is.Pending") & CrLf) ElseIf pkgInfo.PackageState = DismPackageFeatureState.InstallPending Then - LogView.AppendText("- Package state: an install is pending" & CrLf) + LogView.AppendText(ProgressLogText("Package.State.An.Install.Is.Pending") & CrLf) End If If pkgInfo.PackageState = DismPackageFeatureState.Installed Or pkgInfo.PackageState = DismPackageFeatureState.InstallPending Then DynaLog.LogMessage("This package is either installed or about to be installed, and can be removed.") @@ -3481,10 +2350,10 @@ Public Class ProgressPanel If Not pkgIsRemovable Then Continue For If pkgIsReadyForRemoval Then DynaLog.LogMessage("The package can be removed.") - LogView.AppendText(CrLf & "Processing package removal...") + LogView.AppendText(CrLf & ProgressLogText("Processing.Package.Removal")) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /norestart /remove-package /packagepath=" & pkgRemovalFiles(x) RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) errCode = Hex(Decimal.ToInt32(DismExitCode)) If DismExitCode = 0 Then pkgSuccessfulRemovals += 1 @@ -3492,9 +2361,9 @@ Public Class ProgressPanel pkgFailedRemovals += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.2") & errCode) End If If PackageErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -3511,7 +2380,7 @@ Public Class ProgressPanel End If Else DynaLog.LogMessage("The package cannot be removed.") - LogView.AppendText(CrLf & "This package can't be removed. Skipping removal of this package...") + LogView.AppendText(CrLf & ProgressLogText("This.Package.Can.T.Be.Removed.Skipping.Removal")) pkgFailedRemovals += 1 Continue For End If @@ -3522,33 +2391,9 @@ Public Class ProgressPanel For x = 0 To Array.LastIndexOf(pkgRemovalNames, pkgRemovalLastName) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing package " & (x + 1) & " of " & pkgRemovalCount & "..." - Case "ESN" - currentTask.Text = "Eliminando paquete " & (x + 1) & " de " & pkgRemovalCount & "..." - Case "FRA" - currentTask.Text = "Suppression du paquet " & (x + 1) & " de " & pkgRemovalCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "A remover o pacote " & (x + 1) & " de " & pkgRemovalCount & "..." - Case "ITA" - currentTask.Text = "Rimozione del pacchetto " & (x + 1) & " di " & pkgRemovalCount & "..." - End Select - Case 1 - currentTask.Text = "Removing package " & (x + 1) & " of " & pkgRemovalCount & "..." - Case 2 - currentTask.Text = "Eliminando paquete " & (x + 1) & " de " & pkgRemovalCount & "..." - Case 3 - currentTask.Text = "Suppression du paquet " & (x + 1) & " de " & pkgRemovalCount & " en cours..." - Case 4 - currentTask.Text = "A remover o pacote " & (x + 1) & " de " & pkgRemovalCount & "..." - Case 5 - currentTask.Text = "Rimozione del pacchetto " & (x + 1) & " di " & pkgRemovalCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.RemovePackages").Format("RemovingPackage.Item", x + 1, pkgRemovalCount) LogView.AppendText(CrLf & - "Package " & (x + 1) & " of " & pkgRemovalCount) + ProgressLogText("Package") & (x + 1) & ProgressLogText("Of.Word") & pkgRemovalCount) CurrentPB.Value = x + 1 Directory.CreateDirectory(Application.StartupPath & "\tempinfo") @@ -3562,8 +2407,8 @@ Public Class ProgressPanel DynaLog.LogMessage("Getting package information...") Dim pkgInfo As DismPackageInfo = DismApi.GetPackageInfoByName(imgSession, pkgRemovalNames(x)) LogView.AppendText(CrLf & CrLf & - "- Package name: " & pkgInfo.PackageName & CrLf & - "- Package state: " & Casters.CastDismPackageState(pkgInfo.PackageState)) + ProgressLogText("Package.Name") & pkgInfo.PackageName & CrLf & + ProgressLogText("Package.State") & Casters.CastDismPackageState(pkgInfo.PackageState)) If pkgInfo.PackageState = DismPackageFeatureState.Installed Or pkgInfo.PackageState = DismPackageFeatureState.InstallPending Then DynaLog.LogMessage("This package is either installed or about to be installed, and can be removed.") pkgIsReadyForRemoval = True @@ -3595,10 +2440,10 @@ Public Class ProgressPanel If Not pkgIsRemovable Then Continue For If pkgIsReadyForRemoval Then DynaLog.LogMessage("The package can be removed.") - LogView.AppendText(CrLf & "Processing package removal...") + LogView.AppendText(CrLf & ProgressLogText("Processing.Package.Removal")) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /norestart /remove-package /packagename=" & pkgRemovalNames(x) RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) errCode = Hex(Decimal.ToInt32(DismExitCode)) If DismExitCode = 0 Then pkgSuccessfulRemovals += 1 @@ -3606,9 +2451,9 @@ Public Class ProgressPanel pkgFailedRemovals += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.2") & errCode) End If If PackageErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -3625,7 +2470,7 @@ Public Class ProgressPanel End If Else DynaLog.LogMessage("The package cannot be removed.") - LogView.AppendText(CrLf & "This package can't be removed. Skipping removal of this package...") + LogView.AppendText(CrLf & ProgressLogText("This.Package.Can.T.Be.Removed.Skipping.Removal")) pkgFailedRemovals += 1 Continue For End If @@ -3641,145 +2486,64 @@ Public Class ProgressPanel DynaLog.LogMessage("- Will all parent features be enabled? " & If(featParentIsEnabled, "Yes", "No")) DynaLog.LogMessage("- Contact Windows Update for feature enablement (only for active installations)? " & If(featContactWindowsUpdate, "Yes", "No")) DynaLog.LogMessage("- Save changes to the Windows image after finishing? " & If(featEnablementCommit, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Enabling features..." - currentTask.Text = "Preparing to enable features..." - Case "ESN" - allTasks.Text = "Habilitando características..." - currentTask.Text = "Preparándonos para habilitar características..." - Case "FRA" - allTasks.Text = "Activation des caractéristiques en cours..." - currentTask.Text = "Préparation de l'activation des caractéristiques en cours..." - Case "PTB", "PTG" - allTasks.Text = "Ativar características..." - currentTask.Text = "A preparar a ativação de características..." - Case "ITA" - allTasks.Text = "Abilitazione funzionalità..." - currentTask.Text = "Preparazione abilitazione funzionalità..." - End Select - Case 1 - allTasks.Text = "Enabling features..." - currentTask.Text = "Preparing to enable features..." - Case 2 - allTasks.Text = "Habilitando características..." - currentTask.Text = "Preparándonos para habilitar características..." - Case 3 - allTasks.Text = "Activation des caractéristiques en cours..." - currentTask.Text = "Préparation de l'activation des caractéristiques en cours..." - Case 4 - allTasks.Text = "Ativar características..." - currentTask.Text = "A preparar a ativação de características..." - Case 5 - allTasks.Text = "Abilitazione funzionalità..." - currentTask.Text = "Preparazione abilitazione funzionalità..." - End Select - LogView.AppendText(CrLf & "Enabling features..." & CrLf & - "Options:" & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.EnableFeatures")("EnablingFeatures.Button") + currentTask.Text = LocalizationService.ForSection("Progress.EnableFeatures")("PrepareEnable.Button") + LogView.AppendText(CrLf & ProgressLogText("Enabling.Features") & CrLf & + ProgressLogText("Options") & CrLf) If featisParentPkgNameUsed Then - LogView.AppendText("- Use parent package to enable features? Yes") + LogView.AppendText(ProgressLogText("Use.Parent.Package.To.Enable.Features.Yes")) Else - LogView.AppendText("- Use parent package to enable features? No") + LogView.AppendText(ProgressLogText("Use.Parent.Package.To.Enable.Features.No")) End If If featParentPkgName = "" Then - LogView.AppendText(CrLf & "- Parent package name: not specified") + LogView.AppendText(CrLf & ProgressLogText("Parent.Package.Name.Not.Specified")) Else - LogView.AppendText(CrLf & "- Parent package name: " & Quote & featParentPkgName & Quote) + LogView.AppendText(CrLf & ProgressLogText("Parent.Package.Name") & Quote & featParentPkgName & Quote) End If If featisSourceSpecified Then - LogView.AppendText(CrLf & "- Use feature source? Yes") + LogView.AppendText(CrLf & ProgressLogText("Use.Feature.Source.Yes")) Else - LogView.AppendText(CrLf & "- Use feature source? No") + LogView.AppendText(CrLf & ProgressLogText("Use.Feature.Source.No")) End If If featSource = "" Then - LogView.AppendText(CrLf & "- Feature source: not specified") + LogView.AppendText(CrLf & ProgressLogText("Feature.Source.Not.Specified")) Else - LogView.AppendText(CrLf & "- Feature source: " & Quote & featSource & Quote) + LogView.AppendText(CrLf & ProgressLogText("Feature.Source") & Quote & featSource & Quote) End If If featParentIsEnabled Then - LogView.AppendText(CrLf & "- Enable all parent features? Yes") + LogView.AppendText(CrLf & ProgressLogText("Enable.All.Parent.Features.Yes")) Else - LogView.AppendText(CrLf & "- Enable all parent features? No") + LogView.AppendText(CrLf & ProgressLogText("Enable.All.Parent.Features.No")) End If DynaLog.LogMessage("Boot mode of the host system: " & SystemInformation.BootMode) If featContactWindowsUpdate And OnlineMgmt And SystemInformation.BootMode <> BootMode.FailSafe Then DynaLog.LogMessage("Host system is booted to normal mode or Safe Mode with networking.") - LogView.AppendText(CrLf & "- Contact Windows Update? Yes") + LogView.AppendText(CrLf & ProgressLogText("Contact.Windows.Update.Yes")) ElseIf featContactWindowsUpdate And OnlineMgmt And SystemInformation.BootMode = BootMode.FailSafe Then DynaLog.LogMessage("Host system is booted to Safe Mode.") - LogView.AppendText(CrLf & "- Contact Windows Update? No, the system is in Safe Mode") + LogView.AppendText(CrLf & ProgressLogText("Contact.Windows.Update.No.The.System.Is.In")) ElseIf featContactWindowsUpdate And Not OnlineMgmt Then DynaLog.LogMessage("The active installation is not being managed.") - LogView.AppendText(CrLf & "- Contact Windows Update? No, this is not an online installation") + LogView.AppendText(CrLf & ProgressLogText("Contact.Windows.Update.No.This.Is.Not.An")) Else - LogView.AppendText(CrLf & "- Contact Windows Update? No") + LogView.AppendText(CrLf & ProgressLogText("Contact.Windows.Update.No")) End If If featEnablementCommit Then - LogView.AppendText(CrLf & "- Commit image after enabling features? Yes") + LogView.AppendText(CrLf & ProgressLogText("Commit.Image.After.Enabling.Features.Yes")) Else - LogView.AppendText(CrLf & "- Commit image after enabling features? No") + LogView.AppendText(CrLf & ProgressLogText("Commit.Image.After.Enabling.Features.No")) End If - LogView.AppendText(CrLf & CrLf & "Enumerating features to enable...") + LogView.AppendText(CrLf & CrLf & ProgressLogText("Enumerating.Features.To.Enable")) Thread.Sleep(500) - LogView.AppendText(CrLf & "Total number of features to enable: " & featEnablementCount) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Enabling features..." - Case "ESN" - currentTask.Text = "Habilitando características..." - Case "FRA" - currentTask.Text = "Activation des caractéristiques en cours..." - Case "PTB", "PTG" - currentTask.Text = "Ativar características..." - Case "ITA" - currentTask.Text = "Abilitazione funzionalità..." - End Select - Case 1 - currentTask.Text = "Enabling features..." - Case 2 - currentTask.Text = "Habilitando características..." - Case 3 - currentTask.Text = "Activation des caractéristiques en cours..." - Case 4 - currentTask.Text = "Ativar características..." - Case 5 - currentTask.Text = "Abilitazione funzionalità..." - End Select + LogView.AppendText(CrLf & ProgressLogText("Total.Number.Of.Features.To.Enable") & featEnablementCount) + currentTask.Text = LocalizationService.ForSection("Progress.EnableFeatures")("EnablingFeatures.Item") CurrentPB.Maximum = featEnablementCount For x = 0 To Array.LastIndexOf(featEnablementNames, featEnablementLastName) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Enabling feature " & (x + 1) & " of " & featEnablementCount & "..." - Case "ESN" - currentTask.Text = "Habilitando característica " & (x + 1) & " de " & featEnablementCount & "..." - Case "FRA" - currentTask.Text = "Activation de la caractéristique " & (x + 1) & " de " & featEnablementCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "Ativar a caraterística " & (x + 1) & " de " & featEnablementCount & "..." - Case "ITA" - currentTask.Text = "Abilitazione funzionalità " & (x + 1) & " di " & featEnablementCount & "..." - End Select - Case 1 - currentTask.Text = "Enabling feature " & (x + 1) & " of " & featEnablementCount & "..." - Case 2 - currentTask.Text = "Habilitando característica " & (x + 1) & " de " & featEnablementCount & "..." - Case 3 - currentTask.Text = "Activation de la caractéristique " & (x + 1) & " de " & featEnablementCount & " en cours..." - Case 4 - currentTask.Text = "Ativar a caraterística " & (x + 1) & " de " & featEnablementCount & "..." - Case 5 - currentTask.Text = "Abilitazione funzionalità " & (x + 1) & " di " & featEnablementCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.EnableFeatures").Format("EnablingFeature.Item", x + 1, featEnablementCount) LogView.AppendText(CrLf & - "Feature " & (x + 1) & " of " & featEnablementCount) + ProgressLogText("Feature") & (x + 1) & ProgressLogText("Of.Word") & featEnablementCount) CurrentPB.Value = x + 1 DynaLog.LogMessage("Getting information about feature " & Quote & featEnablementNames(x).Replace("ListViewItem: ", "").Trim().Replace("{", "").Trim().Replace("}", "").Trim() & Quote & "...") Try @@ -3790,8 +2554,8 @@ Public Class ProgressPanel DynaLog.LogMessage("Getting feature information...") Dim featInfo As DismFeatureInfo = DismApi.GetFeatureInfo(imgSession, featEnablementNames(x).Replace("ListViewItem: ", "").Trim().Replace("{", "").Trim().Replace("}", "").Trim()) LogView.AppendText(CrLf & CrLf & - "- Feature name: " & featInfo.FeatureName & CrLf & - "- Feature description: " & featInfo.Description & CrLf) + ProgressLogText("Feature.Name") & featInfo.FeatureName & CrLf & + ProgressLogText("Feature.Description") & featInfo.Description & CrLf) End Using Finally Try @@ -3815,12 +2579,12 @@ Public Class ProgressPanel CommandArgs &= " /limitaccess" End If RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) GetFeatErrorLevel() If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If FeatureErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -3837,40 +2601,16 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected features..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Features") & CrLf) For x = 0 To FeatureErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Feature no. " & (x + 1) & ": " & FeatureErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Feature.No") & (x + 1) & ": " & FeatureErrorCodes(x)) Next Thread.Sleep(2000) If featEnablementCommit Then DynaLog.LogMessage("Preparing to save changes...") AllPB.Value = AllPB.Maximum / taskCount currentTCont += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskCount) RunOps(8) Else AllPB.Value = 100 @@ -3882,7 +2622,7 @@ Public Class ProgressPanel End If If FeatureErrorCodes.Contains("BC2") Then DynaLog.LogMessage("A system restart is needed to fully apply some features.") - LogView.AppendText(CrLf & "Some features require a system restart to be fully processed. Save your work, close your programs, and restart when ready") + LogView.AppendText(CrLf & ProgressLogText("Some.Features.Require.A.System.Restart.To.Be")) End If End Sub @@ -3891,117 +2631,36 @@ Public Class ProgressPanel DynaLog.LogMessage("- Will a parent package name be used? " & If(featDisablementParentPkgUsed, "Yes", "No")) DynaLog.LogMessage("- Parent package name: " & Quote & featDisablementParentPkg & Quote) DynaLog.LogMessage("- Remove feature manifest? " & If(featDisablementRemoveManifest, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Disabling features..." - currentTask.Text = "Preparing to disable features..." - Case "ESN" - allTasks.Text = "Deshabilitando características..." - currentTask.Text = "Preparándonos para deshabilitar características..." - Case "FRA" - allTasks.Text = "Désactivation des caractéristiques en cours..." - currentTask.Text = "Préparation de la désactivation des caractéristiques en cours..." - Case "PTB", "PTG" - allTasks.Text = "Desativar características..." - currentTask.Text = "A preparar a desativação de características..." - Case "ITA" - allTasks.Text = "Disabilitazione funzionalità..." - currentTask.Text = "Preparazione disabilitazione funzionalità..." - End Select - Case 1 - allTasks.Text = "Disabling features..." - currentTask.Text = "Preparing to disable features..." - Case 2 - allTasks.Text = "Deshabilitando características..." - currentTask.Text = "Preparándonos para deshabilitar características..." - Case 3 - allTasks.Text = "Désactivation des caractéristiques en cours..." - currentTask.Text = "Préparation de la désactivation des caractéristiques en cours..." - Case 4 - allTasks.Text = "Desativar características..." - currentTask.Text = "A preparar a desativação de características..." - Case 5 - allTasks.Text = "Disabilitazione funzionalità..." - currentTask.Text = "Preparazione disabilitazione funzionalità..." - End Select - LogView.AppendText(CrLf & "Disabling features..." & CrLf & - "Options:" & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.DisableFeatures")("Disabling.Button") + currentTask.Text = LocalizationService.ForSection("Progress.DisableFeatures")("PrepareDisable.Button") + LogView.AppendText(CrLf & ProgressLogText("Disabling.Features") & CrLf & + ProgressLogText("Options") & CrLf) If featDisablementParentPkgUsed Then - LogView.AppendText("- Use parent package to disable features? Yes") + LogView.AppendText(ProgressLogText("Use.Parent.Package.To.Disable.Features.Yes")) Else - LogView.AppendText("- Use parent package to disable features? No") + LogView.AppendText(ProgressLogText("Use.Parent.Package.To.Disable.Features.No")) End If If featDisablementParentPkg = "" Then - LogView.AppendText(CrLf & "- Parent package name: not specified") + LogView.AppendText(CrLf & ProgressLogText("Parent.Package.Name.Not.Specified")) Else - LogView.AppendText(CrLf & "- Parent package name: " & Quote & featDisablementParentPkg & Quote) + LogView.AppendText(CrLf & ProgressLogText("Parent.Package.Name") & Quote & featDisablementParentPkg & Quote) End If If featDisablementRemoveManifest Then - LogView.AppendText(CrLf & "- Remove feature manifest? Yes") + LogView.AppendText(CrLf & ProgressLogText("Remove.Feature.Manifest.Yes")) Else - LogView.AppendText(CrLf & "- Remove feature manifest? No") + LogView.AppendText(CrLf & ProgressLogText("Remove.Feature.Manifest.No")) End If - LogView.AppendText(CrLf & CrLf & "Enumerating features to disable...") + LogView.AppendText(CrLf & CrLf & ProgressLogText("Enumerating.Features.To.Disable")) Thread.Sleep(500) - LogView.AppendText(CrLf & "Total number of features to disable: " & featDisablementCount) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Disabling features..." - Case "ESN" - currentTask.Text = "Deshabilitando características..." - Case "FRA" - currentTask.Text = "Désactivation des caractéristiques en cours..." - Case "PTB", "PTG" - currentTask.Text = "Desativar características..." - Case "ITA" - currentTask.Text = "Disabilitazione funzionalità..." - End Select - Case 1 - currentTask.Text = "Disabling features..." - Case 2 - currentTask.Text = "Deshabilitando características..." - Case 3 - currentTask.Text = "Désactivation des caractéristiques en cours..." - Case 4 - currentTask.Text = "Desativar características..." - Case 5 - currentTask.Text = "Disabilitazione funzionalità..." - End Select + LogView.AppendText(CrLf & ProgressLogText("Total.Number.Of.Features.To.Disable") & featDisablementCount) + currentTask.Text = LocalizationService.ForSection("Progress.DisableFeatures")("Disabling.Item") CurrentPB.Maximum = featDisablementCount For x = 0 To Array.LastIndexOf(featDisablementNames, featDisablementLastName) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Disabling feature " & (x + 1) & " of " & featDisablementCount & "..." - Case "ESN" - currentTask.Text = "Deshabilitando característica " & (x + 1) & " de " & featDisablementCount & "..." - Case "FRA" - currentTask.Text = "Désactivation de la caractéristique " & (x + 1) & " de " & featDisablementCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "Desativar a caraterística " & (x + 1) & " de " & featDisablementCount & "..." - Case "ITA" - currentTask.Text = "Disabilitazione funzionalità " & (x + 1) & " di " & featDisablementCount & "..." - End Select - Case 1 - currentTask.Text = "Disabling feature " & (x + 1) & " of " & featDisablementCount & "..." - Case 2 - currentTask.Text = "Deshabilitando característica " & (x + 1) & " de " & featDisablementCount & "..." - Case 3 - currentTask.Text = "Désactivation de la caractéristique " & (x + 1) & " de " & featDisablementCount & " en cours..." - Case 4 - currentTask.Text = "Desativar a caraterística " & (x + 1) & " de " & featDisablementCount & "..." - Case 5 - currentTask.Text = "Disabilitazione funzionalità " & (x + 1) & " di " & featDisablementCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.DisableFeatures").Format("DisablingFeature.Item", x + 1, featDisablementCount) LogView.AppendText(CrLf & - "Feature " & (x + 1) & " of " & featDisablementCount) + ProgressLogText("Feature") & (x + 1) & ProgressLogText("Of.Word") & featDisablementCount) CurrentPB.Value = x + 1 DynaLog.LogMessage("Getting information about feature " & Quote & featDisablementNames(x).Replace("ListViewItem: ", "").Trim().Replace("{", "").Trim().Replace("}", "").Trim() & Quote & "...") Try @@ -4012,8 +2671,8 @@ Public Class ProgressPanel DynaLog.LogMessage("Getting feature information...") Dim featInfo As DismFeatureInfo = DismApi.GetFeatureInfo(imgSession, featDisablementNames(x).Replace("ListViewItem: ", "").Trim().Replace("{", "").Trim().Replace("}", "").Trim()) LogView.AppendText(CrLf & CrLf & - "- Feature name: " & featInfo.FeatureName & CrLf & - "- Feature description: " & featInfo.Description & CrLf) + ProgressLogText("Feature.Name") & featInfo.FeatureName & CrLf & + ProgressLogText("Feature.Description") & featInfo.Description & CrLf) End Using Finally @@ -4032,7 +2691,7 @@ Public Class ProgressPanel CommandArgs &= " /remove" End If RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) errCode = Hex(Decimal.ToInt32(DismExitCode)) If DismExitCode = 0 Then featSuccessfulDisablements += 1 @@ -4040,9 +2699,9 @@ Public Class ProgressPanel featFailedDisablements += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If FeatureErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -4059,9 +2718,9 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected features..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Features") & CrLf) For x = 0 To FeatureErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Feature no. " & (x + 1) & ": " & FeatureErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Feature.No") & (x + 1) & ": " & FeatureErrorCodes(x)) Next Thread.Sleep(2000) If featSuccessfulDisablements > 0 Then @@ -4071,227 +2730,59 @@ Public Class ProgressPanel End If If FeatureErrorCodes.Contains("BC2") Then DynaLog.LogMessage("A system restart is needed to fully apply some features.") - LogView.AppendText(CrLf & "Some features require a system restart to be fully processed. Save your work, close your programs, and restart when ready") + LogView.AppendText(CrLf & ProgressLogText("Some.Features.Require.A.System.Restart.To.Be")) End If End Sub Private Sub CleanupImage(targetImage As String) DynaLog.LogMessage("Preparing to clean up the image...") DynaLog.LogMessage("Cleanup task: " & CleanupTask) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Cleaning up the image..." - Case "ESN" - allTasks.Text = "Limpiando la imagen..." - Case "FRA" - allTasks.Text = "Nettoyage de l'image en cours..." - Case "PTB", "PTG" - allTasks.Text = "Limpar a imagem..." - Case "ITA" - allTasks.Text = "Pulizia immagine..." - End Select - Case 1 - allTasks.Text = "Cleaning up the image..." - Case 2 - allTasks.Text = "Limpiando la imagen..." - Case 3 - allTasks.Text = "Nettoyage de l'image en cours..." - Case 4 - allTasks.Text = "Limpar a imagem..." - Case 5 - allTasks.Text = "Pulizia immagine..." - End Select + allTasks.Text = LocalizationService.ForSection("Progress.CleanupImage")("Cleaning.Up.Image.Button") CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /cleanup-image" Select Case CleanupTask Case 0 DynaLog.LogMessage("Reverting pending servicing actions to a last known good state...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Reverting pending servicing actions..." - Case "ESN" - currentTask.Text = "Revirtiendo acciones de servicio pendientes..." - Case "FRA" - currentTask.Text = "Annulation des actions de maintenance en cours..." - Case "PTB", "PTG" - currentTask.Text = "Reverter acções de manutenção pendentes..." - Case "ITA" - currentTask.Text = "Ripristino azioni assistenza in sospeso..." - End Select - Case 1 - currentTask.Text = "Reverting pending servicing actions..." - Case 2 - currentTask.Text = "Revirtiendo acciones de servicio pendientes..." - Case 3 - currentTask.Text = "Annulation des actions de maintenance en cours..." - Case 4 - currentTask.Text = "Reverter acções de manutenção pendentes..." - Case 5 - currentTask.Text = "Ripristino azioni assistenza in sospeso..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.CleanupImage")("RevertPending.Button") LogView.AppendText(CrLf & - "Reverting pending servicing actions...") + ProgressLogText("Reverting.Pending.Servicing.Actions")) CommandArgs &= " /revertpendingactions" Case 1 DynaLog.LogMessage("Cleaning up Service Pack backup files...") DynaLog.LogMessage("- Hide Service Packs from Installed Updates list? " & If(CleanupHideSP, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Cleaning up Service Pack backup files..." - Case "ESN" - currentTask.Text = "Limpiando archivos de copia de seguridad del Service Pack..." - Case "FRA" - currentTask.Text = "Nettoyage des fichiers de sauvegarde du Service Pack en cours..." - Case "PTB", "PTG" - currentTask.Text = "Limpeza dos ficheiros de cópia de segurança do Service Pack..." - Case "ITA" - currentTask.Text = "Pulizia file backup Service Pack..." - End Select - Case 1 - currentTask.Text = "Cleaning up Service Pack backup files..." - Case 2 - currentTask.Text = "Limpiando archivos de copia de seguridad del Service Pack..." - Case 3 - currentTask.Text = "Nettoyage des fichiers de sauvegarde du Service Pack en cours..." - Case 4 - currentTask.Text = "Limpeza dos ficheiros de cópia de segurança do Service Pack..." - Case 5 - currentTask.Text = "Pulizia file backup Service Pack..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.CleanupImage")("Cleaning.Up.ServicePack.Item") LogView.AppendText(CrLf & - "Cleaning up Service Pack backup files..." & CrLf & - "Options:" & CrLf & - "- Hide Service Packs from the Installed Updates list? " & If(CleanupHideSP, "Yes", "No")) + ProgressLogText("Cleaning.Up.Service.Pack.Backup.Files") & CrLf & + ProgressLogText("Options") & CrLf & + ProgressLogText("Hide.Service.Packs.From.The.Installed.Updates.List") & If(CleanupHideSP, ProgressLogText("Yes"), ProgressLogText("No"))) CommandArgs &= " /spsuperseded" & If(CleanupHideSP, " /hidesp", "") Case 2 DynaLog.LogMessage("Cleaning up component store...") DynaLog.LogMessage("- Reset superseded component base? " & If(ResetCompBase, "Yes", "No")) DynaLog.LogMessage("- Defer long operations? " & If(DeferCleanupOps, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Cleaning up the component store..." - Case "ESN" - currentTask.Text = "Limpiando el almacén de componentes..." - Case "FRA" - currentTask.Text = "Nettoyage du stock de composants en cours..." - Case "PTB", "PTG" - currentTask.Text = "Limpar o armazenamento de componentes..." - Case "ITA" - currentTask.Text = "Pulizia archivio componenti..." - End Select - Case 1 - currentTask.Text = "Cleaning up the component store..." - Case 2 - currentTask.Text = "Limpiando el almacén de componentes..." - Case 3 - currentTask.Text = "Nettoyage du stock de composants en cours..." - Case 4 - currentTask.Text = "Limpar o armazenamento de componentes..." - Case 5 - currentTask.Text = "Pulizia archivio componenti..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.CleanupImage")("Cleaning.Up.Component.Item") LogView.AppendText(CrLf & - "Cleaning up the component store..." & CrLf & - "Options:" & CrLf & - "- Perform superseded component base reset? " & If(ResetCompBase, "Yes", "No") & CrLf & - "- Defer long-running operations? " & If(DeferCleanupOps, "Yes", "No")) + ProgressLogText("Cleaning.Up.The.Component.Store") & CrLf & + ProgressLogText("Options") & CrLf & + ProgressLogText("Perform.Superseded.Component.Base.Reset") & If(ResetCompBase, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Defer.Long.Running.Operations") & If(DeferCleanupOps, ProgressLogText("Yes"), ProgressLogText("No"))) CommandArgs &= " /startcomponentcleanup" & If(ResetCompBase, " /resetbase", "") & If(ResetCompBase And DeferCleanupOps, " /defer", "") Case 3 DynaLog.LogMessage("Analyzing component store...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Analyzing the component store..." - Case "ESN" - currentTask.Text = "Analizando el almacén de componentes..." - Case "FRA" - currentTask.Text = "Analyse du stock de composants en cours..." - Case "PTB", "PTG" - currentTask.Text = "Analisando o armazenamento de componentes..." - Case "ITA" - currentTask.Text = "Analisi archivio componenti..." - End Select - Case 1 - currentTask.Text = "Analyzing the component store..." - Case 2 - currentTask.Text = "Analizando el almacén de componentes..." - Case 3 - currentTask.Text = "Analyse du stock de composants en cours..." - Case 4 - currentTask.Text = "Analisando o armazenamento de componentes..." - Case 5 - currentTask.Text = "Analisi archivio componenti..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.CleanupImage")("Analyzing.Component.Item") LogView.AppendText(CrLf & - "Analyzing the component store...") + ProgressLogText("Analyzing.The.Component.Store")) CommandArgs &= " /analyzecomponentstore" Case 4 DynaLog.LogMessage("Checking component store health...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Checking the component store health..." - Case "ESN" - currentTask.Text = "Comprobando la salud del almacén de componentes..." - Case "FRA" - currentTask.Text = "Vérification de l'état de santé du stock de composants en cours..." - Case "PTB", "PTG" - currentTask.Text = "Verificar a integridade do armazenamento de componentes..." - Case "ITA" - currentTask.Text = "Controllo stato di salute archivio componenti..." - End Select - Case 1 - currentTask.Text = "Checking the component store health..." - Case 2 - currentTask.Text = "Comprobando la salud del almacén de componentes..." - Case 3 - currentTask.Text = "Vérification de l'état de santé du stock de composants en cours..." - Case 4 - currentTask.Text = "Verificar a integridade do armazenamento de componentes..." - Case 5 - currentTask.Text = "Controllo stato di salute archivio componenti..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.CleanupImage")("Checking.Comp.Store.Item") LogView.AppendText(CrLf & - "Checking the component store health...") + ProgressLogText("Checking.The.Component.Store.Health")) CommandArgs &= " /checkhealth" Case 5 DynaLog.LogMessage("Scanning component store...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Scanning the component store..." - Case "ESN" - currentTask.Text = "Escaneando el almacén de componentes..." - Case "FRA" - currentTask.Text = "Analyse du stock de composants en cours..." - Case "PTB", "PTG" - currentTask.Text = "A analisar o armazenamento de componentes..." - Case "ITA" - currentTask.Text = "Scansione archivio componenti..." - End Select - Case 1 - currentTask.Text = "Scanning the component store..." - Case 2 - currentTask.Text = "Escaneando el almacén de componentes..." - Case 3 - currentTask.Text = "Analyse du stock de composants en cours..." - Case 4 - currentTask.Text = "A analisar o armazenamento de componentes..." - Case 5 - currentTask.Text = "Scansione archivio componenti..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.CleanupImage")("Scanning.Component.Item") LogView.AppendText(CrLf & - "Scanning the component store...") + ProgressLogText("Scanning.The.Component.Store")) CommandArgs &= " /scanhealth" Case 6 DynaLog.LogMessage("Repairing component store...") @@ -4299,71 +2790,23 @@ Public Class ProgressPanel DynaLog.LogMessage("- Limit Windows Update access (only for active installations)? " & If(LimitWUAccess, "Yes", "No")) DynaLog.LogMessage("Boot mode of host system: " & SystemInformation.BootMode) ' The most known thing about DISM : dism /online /cleanup-image /restorehealth - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Repairing the component store..." - Case "ESN" - currentTask.Text = "Reparando el almacén de componentes..." - Case "FRA" - currentTask.Text = "Réparation du stock de composants en cours..." - Case "PTB", "PTG" - currentTask.Text = "Reparar o armazenamento de componentes..." - Case "ITA" - currentTask.Text = "Riparazione archivio componenti..." - End Select - Case 1 - currentTask.Text = "Repairing the component store..." - Case 2 - currentTask.Text = "Reparando el almacén de componentes..." - Case 3 - currentTask.Text = "Réparation du stock de composants en cours..." - Case 4 - currentTask.Text = "Reparar o armazenamento de componentes..." - Case 5 - currentTask.Text = "Riparazione archivio componenti..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.CleanupImage")("Repairing.Component.Item") LogView.AppendText(CrLf & - "Repairing the component store..." & CrLf & - "Options:" & CrLf & - "- Use different source? " & If(UseCompRepairSource, "Yes (" & Quote & ComponentRepairSource & Quote & ")", "No") & CrLf & - "- Limit Windows Update access? " & If(LimitWUAccess And OnlineMgmt, "Yes", If(LimitWUAccess And Not OnlineMgmt, "No, this is not an online installation", "No")) & - If(Not LimitWUAccess And OnlineMgmt And SystemInformation.BootMode = BootMode.FailSafe, ", the system is in Safe Mode", "")) + ProgressLogText("Repairing.The.Component.Store") & CrLf & + ProgressLogText("Options") & CrLf & + ProgressLogText("Use.Different.Source") & If(UseCompRepairSource, ProgressLogText("Yes.2") & Quote & ComponentRepairSource & Quote & ")", ProgressLogText("No")) & CrLf & + ProgressLogText("Limit.Windows.Update.Access") & If(LimitWUAccess And OnlineMgmt, ProgressLogText("Yes"), If(LimitWUAccess And Not OnlineMgmt, ProgressLogText("No.This.Is.Not.An.Online.Installation"), ProgressLogText("No"))) & + If(Not LimitWUAccess And OnlineMgmt And SystemInformation.BootMode = BootMode.FailSafe, ProgressLogText("The.System.Is.In.Safe.Mode"), "")) CommandArgs &= " /restorehealth" & If(UseCompRepairSource And File.Exists(ComponentRepairSource), " /source=" & Quote & ComponentRepairSource & Quote, "") & If(LimitWUAccess And OnlineMgmt, " /limitaccess", "") End Select RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.CleanupImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -4376,88 +2819,31 @@ Public Class ProgressPanel DynaLog.LogMessage("- Provisioning package: " & Quote & ppkgAdditionPackagePath & Quote) DynaLog.LogMessage("- Catalog path: " & Quote & ppkgAdditionCatalogPath & Quote) DynaLog.LogMessage("- Commit image after finishing? " & If(ppkgAdditionCommit, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Adding provisioning package..." - currentTask.Text = "Adding provisioning package to the image..." - Case "ESN" - allTasks.Text = "Añadiendo paquete de aprovisionamiento..." - currentTask.Text = "Añadiendo paquete de aprovisionamiento a la imagen..." - Case "FRA" - allTasks.Text = "Ajout d'un paquet de provisionnement en cours..." - currentTask.Text = "Ajout d'un paquet de provisionnement à l'image en cours..." - Case "PTB", "PTG" - allTasks.Text = "Adicionando pacote de provisionamento..." - currentTask.Text = "Adicionar pacote de aprovisionamento à imagem..." - Case "ITA" - allTasks.Text = "Aggiunta pacchetto approvvigionamento..." - currentTask.Text = "Aggiunta pacchetto approvvigionamento all'immagine..." - End Select - Case 1 - allTasks.Text = "Adding provisioning package..." - currentTask.Text = "Adding provisioning package to the image..." - Case 2 - allTasks.Text = "Añadiendo paquete de aprovisionamiento..." - currentTask.Text = "Añadiendo paquete de aprovisionamiento a la imagen..." - Case 3 - allTasks.Text = "Ajout d'un paquet de provisionnement en cours..." - currentTask.Text = "Ajout d'un paquet de provisionnement à l'image en cours..." - Case 4 - allTasks.Text = "Adicionando pacote de provisionamento..." - currentTask.Text = "Adicionar pacote de aprovisionamento à imagem..." - Case 5 - allTasks.Text = "Aggiunta pacchetto approvvigionamento..." - currentTask.Text = "Aggiunta pacchetto approvvigionamento all'immagine..." - End Select - LogView.AppendText("Adding provisioning package to the image..." & CrLf & - "Options:" & CrLf & CrLf & - "- Provisioning package: " & Quote & ppkgAdditionPackagePath & Quote & CrLf & - "- Catalog file: " & If(ppkgAdditionCatalogPath = "", "none specified", Quote & ppkgAdditionCatalogPath & Quote) & CrLf & - "- Commit image after adding provisioning package? " & If(ppkgAdditionCommit, "Yes", "No")) + allTasks.Text = LocalizationService.ForSection("Progress.ProvPackage.Add")("AddingPackage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ProvPackage.Add")("Image.Button") + LogView.AppendText(ProgressLogText("Adding.Provisioning.Package.To.The.Image") & CrLf & + ProgressLogText("Options") & CrLf & CrLf & + ProgressLogText("Provisioning.Package") & Quote & ppkgAdditionPackagePath & Quote & CrLf & + ProgressLogText("Catalog.File") & If(ppkgAdditionCatalogPath = "", ProgressLogText("None.Specified.2"), Quote & ppkgAdditionCatalogPath & Quote) & CrLf & + ProgressLogText("Commit.Image.After.Adding.Provisioning.Package") & If(ppkgAdditionCommit, ProgressLogText("Yes"), ProgressLogText("No"))) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /add-provisioningpackage /packagepath=" & Quote & ppkgAdditionPackagePath & Quote & If(ppkgAdditionCatalogPath <> "" And File.Exists(ppkgAdditionCatalogPath), " /catalogpath=" & Quote & ppkgAdditionCatalogPath & Quote, "") RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If ppkgAdditionCommit Then DynaLog.LogMessage("Preparing to save changes...") AllPB.Value = AllPB.Maximum / taskCount currentTCont += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskCount) RunOps(8) Else AllPB.Value = 100 @@ -4471,149 +2857,68 @@ Public Class ProgressPanel Private Sub AddProvisionedAppxPackages(targetImage As String) DynaLog.LogMessage("Preparing to add provisioned AppX packages...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Adding AppX packages..." - currentTask.Text = "Preparing to add provisioned AppX packages..." - Case "ESN" - allTasks.Text = "Añadiendo paquetes aprovisionados AppX..." - currentTask.Text = "Preparándonos para añadir paquetes aprovisionados AppX..." - Case "FRA" - allTasks.Text = "Ajout de paquets AppX en cours..." - currentTask.Text = "Préparation de l'ajout de paquets AppX provisionnés en cours..." - Case "PTB", "PTG" - allTasks.Text = "A adicionar pacotes AppX..." - currentTask.Text = "A preparar a adição de pacotes AppX provisionados..." - Case "ITA" - allTasks.Text = "Aggiunta pacchetti AppX..." - currentTask.Text = "Preparazione aggiunta pacchetti AppX approvvigionati..." - End Select - Case 1 - allTasks.Text = "Adding AppX packages..." - currentTask.Text = "Preparing to add provisioned AppX packages..." - Case 2 - allTasks.Text = "Añadiendo paquetes aprovisionados AppX..." - currentTask.Text = "Preparándonos para añadir paquetes aprovisionados AppX..." - Case 3 - allTasks.Text = "Ajout de paquets AppX en cours..." - currentTask.Text = "Préparation de l'ajout de paquets AppX provisionnés en cours..." - Case 4 - allTasks.Text = "A adicionar pacotes AppX..." - currentTask.Text = "A preparar a adição de pacotes AppX provisionados..." - Case 5 - allTasks.Text = "Aggiunta pacchetti AppX..." - currentTask.Text = "Preparazione aggiunta pacchetti AppX approvvigionati..." - End Select - LogView.AppendText(CrLf & "Adding provisioned AppX packages..." & CrLf & - "Options:" & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.ProvAppx.Add")("AddingPackages.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ProvAppx.Add")("Preparing.Button") + LogView.AppendText(CrLf & ProgressLogText("Adding.Provisioned.APPX.Packages") & CrLf & + ProgressLogText("Options") & CrLf) If appxAdditionUseLicenseFile Then - LogView.AppendText("- Use a license file for AppX packages? Yes" & CrLf & - "- License file: " & appxAdditionLicenseFile & CrLf) + LogView.AppendText(ProgressLogText("Use.A.License.File.For.APPX.Packages.Yes") & CrLf & + ProgressLogText("License.File") & appxAdditionLicenseFile & CrLf) Else - LogView.AppendText("- Use a license file for AppX packages? No" & CrLf & - "- License file: not using" & CrLf) + LogView.AppendText(ProgressLogText("Use.A.License.File.For.APPX.Packages.No") & CrLf & + ProgressLogText("License.File.Not.Using") & CrLf) End If If appxAdditionUseCustomDataFile Then - LogView.AppendText("- Use a custom data file for AppX packages? Yes" & CrLf & - "- Custom data file: " & appxAdditionCustomDataFile & CrLf) + LogView.AppendText(ProgressLogText("Use.A.Custom.Data.File.For.APPX.Packages") & CrLf & + ProgressLogText("Custom.Data.File") & appxAdditionCustomDataFile & CrLf) Else - LogView.AppendText("- Use a custom data file for AppX packages? No" & CrLf & - "- Custom data file: not using" & CrLf) + LogView.AppendText(ProgressLogText("Use.A.Custom.Data.File.For.APPX.Packages.2") & CrLf & + ProgressLogText("Custom.Data.File.Not.Using") & CrLf) End If If appxAdditionUseAllRegions Then - LogView.AppendText("- Use all regions for AppX packages? Yes" & CrLf & - "- Package regions: all" & CrLf) + LogView.AppendText(ProgressLogText("Use.All.Regions.For.APPX.Packages.Yes") & CrLf & + ProgressLogText("Package.Regions.All") & CrLf) Else - LogView.AppendText("- Use all regions for AppX packages? No" & CrLf & - "- Package regions: " & Quote & appxAdditionRegions & Quote & CrLf) + LogView.AppendText(ProgressLogText("Use.All.Regions.For.APPX.Packages.No") & CrLf & + ProgressLogText("Package.Regions") & Quote & appxAdditionRegions & Quote & CrLf) End If If appxAdditionCommit Then - LogView.AppendText("- Commit image after adding AppX packages? Yes") + LogView.AppendText(ProgressLogText("Commit.Image.After.Adding.APPX.Packages.Yes")) Else - LogView.AppendText("- Commit image after adding AppX packages? No") + LogView.AppendText(ProgressLogText("Commit.Image.After.Adding.APPX.Packages.No")) End If - LogView.AppendText(CrLf & CrLf & "Enumerating AppX packages to add...") + LogView.AppendText(CrLf & CrLf & ProgressLogText("Enumerating.APPX.Packages.To.Add")) Thread.Sleep(500) - LogView.AppendText(CrLf & "Total number of packages to add: " & appxAdditionCount) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding AppX packages..." - Case "ESN" - currentTask.Text = "Añadiendo paquetes AppX..." - Case "FRA" - currentTask.Text = "Ajout de paquets AppX en cours..." - Case "PTB", "PTG" - currentTask.Text = "A adicionar pacotes AppX..." - Case "ITA" - currentTask.Text = "Aggiunta pacchetti AppX..." - End Select - Case 1 - currentTask.Text = "Adding AppX packages..." - Case 2 - currentTask.Text = "Añadiendo paquetes AppX..." - Case 3 - currentTask.Text = "Ajout de paquets AppX en cours..." - Case 4 - currentTask.Text = "A adicionar pacotes AppX..." - Case 5 - currentTask.Text = "Aggiunta pacchetti AppX..." - End Select + LogView.AppendText(CrLf & ProgressLogText("Total.Number.Of.Packages.To.Add") & appxAdditionCount) + currentTask.Text = LocalizationService.ForSection("Progress.ProvAppx.Add")("AddingPackages.Item") CurrentPB.Maximum = appxAdditionCount For x = 0 To Array.LastIndexOf(appxAdditionPackages, appxAdditionLastPackage) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding package " & (x + 1) & " of " & appxAdditionCount & "..." - Case "ESN" - currentTask.Text = "Añadiendo paquete " & (x + 1) & " de " & appxAdditionCount & "..." - Case "FRA" - currentTask.Text = "Ajout du paquet " & (x + 1) & " de " & appxAdditionCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "A adicionar pacote " & (x + 1) & " de " & appxAdditionCount & "..." - Case "ITA" - currentTask.Text = "Aggiunta pacchetto " & (x + 1) & " di " & appxAdditionCount & "..." - End Select - Case 1 - currentTask.Text = "Adding package " & (x + 1) & " of " & appxAdditionCount & "..." - Case 2 - currentTask.Text = "Añadiendo paquete " & (x + 1) & " de " & appxAdditionCount & "..." - Case 3 - currentTask.Text = "Ajout du paquet " & (x + 1) & " de " & appxAdditionCount & " en cours..." - Case 4 - currentTask.Text = "A adicionar pacote " & (x + 1) & " de " & appxAdditionCount & "..." - Case 5 - currentTask.Text = "Aggiunta pacchetto " & (x + 1) & " di " & appxAdditionCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.ProvAppx.Add").Format("AddingPackage.Item", x + 1, appxAdditionCount) LogView.AppendText(CrLf & - "Package " & (x + 1) & " of " & appxAdditionCount) + ProgressLogText("Package") & (x + 1) & ProgressLogText("Of.Word") & appxAdditionCount) CurrentPB.Value = x + 1 DynaLog.LogMessage("Information about the AppX package:") DynaLog.LogMessage(appxAdditionPackageList(x).ToString()) LogView.AppendText(CrLf & - "- AppX package file: " & appxAdditionPackageList(x).PackageFile & CrLf & - "- Application name: " & appxAdditionPackageList(x).PackageName & CrLf & - "- Application publisher: " & appxAdditionPackageList(x).PackagePublisher & CrLf & - "- Application version: " & appxAdditionPackageList(x).PackageVersion & CrLf) + ProgressLogText("APPX.Package.File") & appxAdditionPackageList(x).PackageFile & CrLf & + ProgressLogText("Application.Name") & appxAdditionPackageList(x).PackageName & CrLf & + ProgressLogText("Application.Publisher") & appxAdditionPackageList(x).PackagePublisher & CrLf & + ProgressLogText("Application.Version") & appxAdditionPackageList(x).PackageVersion & CrLf) ' Detect if it is an encrypted application DynaLog.LogMessage("Extension of AppX package: " & Path.GetExtension(appxAdditionPackageList(x).PackageFile)) If Path.GetExtension(appxAdditionPackageList(x).PackageFile).Replace(".", "").Trim().StartsWith("e", StringComparison.OrdinalIgnoreCase) AndAlso OnlineMgmt Then DynaLog.LogMessage("The application is encrypted and the active installation is being managed. Adding package using PowerShell...") ' Run PowerShell command. Support will be improved - LogView.AppendText(CrLf & "The application about to be added is an encrypted file. Since the program is managing the active installation, a PowerShell command will be run." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("The.Application.About.To.Be.Added.Is.An") & CrLf) Dim AppxAuxProc As New Process() AppxAuxProc.StartInfo.FileName = Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\system32\WindowsPowerShell\v1.0\powershell.exe" CommandArgs = "-Command Add-AppxPackage -Path '" & appxAdditionPackageList(x).PackageFile & "'" AppxAuxProc.StartInfo.Arguments = CommandArgs AppxAuxProc.Start() AppxAuxProc.WaitForExit() - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(AppxAuxProc.ExitCode).Length < 8 Then errCode = AppxAuxProc.ExitCode Else @@ -4625,9 +2930,9 @@ Public Class ProgressPanel appxFailedAdditions += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If PackageErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -4646,7 +2951,7 @@ Public Class ProgressPanel ElseIf Path.GetExtension(appxAdditionPackageList(x).PackageFile).Replace(".", "").Trim().StartsWith("e", StringComparison.OrdinalIgnoreCase) AndAlso Not OnlineMgmt Then DynaLog.LogMessage("The application is encrypted but the active installation is not being managed.") ' Continue loop without installing application - LogView.AppendText(CrLf & "The application about to be added is an encrypted file. Encrypted packages can only be added to active installations. Skipping this package..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("The.Application.About.To.Be.Added.Is.An.2") & CrLf) Continue For Else DynaLog.LogMessage("The application is not encrypted. Continuing addition...") @@ -4663,30 +2968,30 @@ Public Class ProgressPanel DynaLog.LogMessage("Either no license file has been specified or it does not exist in the file system.") If appxAdditionPackageList(x).PackageLicenseFile <> "" Then LogView.AppendText(CrLf & - "Warning: the license file does not exist. Continuing without one..." & CrLf & - " Do note that, if this app requires a license file, it may fail addition." & CrLf & - " Also, this may compromise the image.") + ProgressLogText("Warning.The.License.File.Does.Not.Exist.Continuing") & CrLf & + ProgressLogText("Do.Note.That.If.This.App.Requires.A") & CrLf & + ProgressLogText("Also.This.May.Compromise.The.Image")) End If CommandArgs &= " /skiplicense" End If ' Inform user that a package will be installed with dependencies DynaLog.LogMessage("Count of dependencies: " & appxAdditionPackageList(x).PackageSpecifiedDependencies.Count) If appxAdditionPackageList(x).PackageSpecifiedDependencies.Count > 0 Then - LogView.AppendText("- The following dependency packages will be installed alongside this application:" & CrLf) + LogView.AppendText(ProgressLogText("The.Following.Dependency.Packages.Will.Be.Installed.Alongside") & CrLf) End If ' Add dependencies For Each Dependency As AppxDependency In appxAdditionPackageList(x).PackageSpecifiedDependencies DynaLog.LogMessage("Verifying if dependency " & Quote & Path.GetFileName(Dependency.DependencyFile) & Quote & " exists...") If File.Exists(Dependency.DependencyFile) Then DynaLog.LogMessage("The dependency exists in the file system.") - LogView.AppendText(" - Dependency: " & Quote & Path.GetFileName(Dependency.DependencyFile) & Quote & CrLf) + LogView.AppendText(ProgressLogText("Dependency") & Quote & Path.GetFileName(Dependency.DependencyFile) & Quote & CrLf) CommandArgs &= " /dependencypackagepath=" & Quote & Dependency.DependencyFile & Quote Else DynaLog.LogMessage("The dependency does not exist in the file system.") LogView.AppendText(CrLf & - "Warning: the dependency" & CrLf & + ProgressLogText("Warning.The.Dependency") & CrLf & Quote & Dependency.DependencyFile & Quote & CrLf & - "does not exist in the file system. Skipping dependency...") + ProgressLogText("Does.Not.Exist.In.The.File.System.Skipping")) Continue For End If Next @@ -4696,7 +3001,7 @@ Public Class ProgressPanel ElseIf appxAdditionPackageList(x).PackageCustomDataFile <> "" And Not File.Exists(appxAdditionPackageList(x).PackageCustomDataFile) Then DynaLog.LogMessage("A custom data file has been specified but it does not exist in the file system.") LogView.AppendText(CrLf & - "Warning: the custom data file does not exist. Continuing without one...") + ProgressLogText("Warning.The.Custom.Data.File.Does.Not.Exist")) End If If (FileVersionInfo.GetVersionInfo(DismProgram).ProductMajorPart = 10 And FileVersionInfo.GetVersionInfo(DismProgram).ProductBuildPart >= 17134) And (ImgVersion.Major = 10 And ImgVersion.Build >= 17134) Then @@ -4725,7 +3030,7 @@ Public Class ProgressPanel End If RunProcess(DismProgram, CommandArgs) End If - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else @@ -4737,9 +3042,9 @@ Public Class ProgressPanel appxFailedAdditions += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If PackageErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -4756,40 +3061,16 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected AppX packages..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.APPX.Packages") & CrLf) For x = 0 To PackageErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Package no. " & (x + 1) & ": " & PackageErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Package.No") & (x + 1) & ": " & PackageErrorCodes(x)) Next Thread.Sleep(2000) If appxAdditionCommit Then DynaLog.LogMessage("Preparing to save changes...") AllPB.Value = AllPB.Maximum / taskCount currentTCont += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskCount) RunOps(8) Else AllPB.Value = 100 @@ -4808,19 +3089,19 @@ Public Class ProgressPanel DynaLog.LogMessage(".pckgdep files for AppX package " & Quote & removalStoreApp & Quote & " = 0. This app is not registered to a user") ' Application is not registered to any user LogView.AppendText(CrLf & - "- Application is registered to a user? No") + ProgressLogText("Application.Is.Registered.To.A.User.No")) Else DynaLog.LogMessage(".pckgdep files for AppX package " & Quote & removalStoreApp & Quote & " > 0. This app is registered to users") ' Application is registered to a user LogView.AppendText(CrLf & - "- Application is registered to a user? Yes" & CrLf & - " The removal of this application may require you to use PowerShell to completely remove it") + ProgressLogText("Application.Is.Registered.To.A.User.Yes") & CrLf & + ProgressLogText("The.Removal.Of.This.Application.May.Require.You")) End If Else DynaLog.LogMessage(".pckgdep files for AppX package " & Quote & removalStoreApp & Quote & " = 0. This app is not registered to a user") ' Application is not registered to any user LogView.AppendText(CrLf & - "- Application is registered to a user? No") + ProgressLogText("Application.Is.Registered.To.A.User.No")) End If End Sub @@ -4828,80 +3109,23 @@ Public Class ProgressPanel Dim extAppxHelperPath As String = Path.Combine(Application.StartupPath, "bin", "extps1", "online_appx_removal.ps1") If File.Exists(extAppxHelperPath) Then DynaLog.LogMessage("AppX removal helper exists. Proceeding with the removal of those bastards!") - LogView.AppendText(CrLf & "A PowerShell helper will be used to remove AppX packages. Please wait...") + LogView.AppendText(CrLf & ProgressLogText("A.PowerShell.Helper.Will.Be.Used.To.Remove")) RunProcess(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "system32", "WindowsPowerShell", "v1.0", "powershell.exe"), String.Format("-executionpolicy Bypass -noprofile -nologo -file {0}{1}{0} -appxFullNames {0}{2}{0}", Quote, extAppxHelperPath, String.Join(";", PackageNames.Where(Function(PackageName) Not String.IsNullOrEmpty(PackageName))))) - LogView.AppendText(CrLf & "Log off for the deprovisioning of applications to be fully carried out.") + LogView.AppendText(CrLf & ProgressLogText("Log.Off.For.The.Deprovisioning.Of.Applications.To")) End If End Sub Private Sub RemoveProvisionedAppxPackages(targetImage As String) DynaLog.LogMessage("Preparing to remove AppX packages...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Removing AppX packages..." - currentTask.Text = "Preparing to remove provisioned AppX packages..." - Case "ESN" - allTasks.Text = "Eliminando paquetes AppX..." - currentTask.Text = "Preparándonos para eliminar paquetes aprovisionados AppX..." - Case "FRA" - allTasks.Text = "Suppression des paquets AppX en cours..." - currentTask.Text = "Préparation de la suppression des paquets AppX en cours..." - Case "PTB", "PTG" - allTasks.Text = "Removendo pacotes AppX..." - currentTask.Text = "A preparar a remoção de pacotes AppX provisionados..." - Case "ITA" - allTasks.Text = "Rimozione pacchetti AppX..." - currentTask.Text = "Preparazione rimozione pacchetti AppX approvvigionati..." - End Select - Case 1 - allTasks.Text = "Removing AppX packages..." - currentTask.Text = "Preparing to remove provisioned AppX packages..." - Case 2 - allTasks.Text = "Eliminando paquetes AppX..." - currentTask.Text = "Preparándonos para eliminar paquetes aprovisionados AppX..." - Case 3 - allTasks.Text = "Suppression des paquets AppX en cours..." - currentTask.Text = "Préparation de la suppression des paquets AppX en cours..." - Case 4 - allTasks.Text = "Removendo pacotes AppX..." - currentTask.Text = "A preparar a remoção de pacotes AppX provisionados..." - Case 5 - allTasks.Text = "Rimozione pacchetti AppX..." - currentTask.Text = "Preparazione rimozione pacchetti AppX approvvigionati..." - End Select - LogView.AppendText(CrLf & "Removing provisioned AppX packages..." & CrLf & CrLf & - "Enumerating AppX packages to remove...") + allTasks.Text = LocalizationService.ForSection("Progress.ProvAppx.Remove")("RemovingPackages.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ProvAppx.Remove")("Preparing.Button") + LogView.AppendText(CrLf & ProgressLogText("Removing.Provisioned.APPX.Packages") & CrLf & CrLf & + ProgressLogText("Enumerating.APPX.Packages.To.Remove")) Thread.Sleep(500) - LogView.AppendText(CrLf & "Total number of packages to remove: " & appxRemovalCount) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing AppX packages..." - Case "ESN" - currentTask.Text = "Eliminando paquetes AppX..." - Case "FRA" - currentTask.Text = "Suppression des paquets AppX en cours..." - Case "PTB", "PTG" - currentTask.Text = "Removendo pacotes AppX..." - Case "ITA" - currentTask.Text = "Rimozione pacchetti AppX..." - End Select - Case 1 - currentTask.Text = "Removing AppX packages..." - Case 2 - currentTask.Text = "Eliminando paquetes AppX..." - Case 3 - currentTask.Text = "Suppression des paquets AppX en cours..." - Case 4 - currentTask.Text = "Removendo pacotes AppX..." - Case 5 - currentTask.Text = "Rimozione pacchetti AppX..." - End Select + LogView.AppendText(CrLf & ProgressLogText("Total.Number.Of.Packages.To.Remove") & appxRemovalCount) + currentTask.Text = LocalizationService.ForSection("Progress.ProvAppx.Remove")("RemovingPackages.Item") CurrentPB.Maximum = appxRemovalCount If OnlineMgmt Then RemoveOnlineAppxPackages(appxRemovalPackages) @@ -4914,46 +3138,22 @@ Public Class ProgressPanel If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs Dim removalStoreApp As String = appxRemovalPackages(x) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing package " & (x + 1) & " of " & appxRemovalCount & "..." - Case "ESN" - currentTask.Text = "Eliminando paquete " & (x + 1) & " de " & appxRemovalCount & "..." - Case "FRA" - currentTask.Text = "Suppression du paquet " & (x + 1) & " de " & appxRemovalCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "A remover o pacote " & (x + 1) & " de " & appxRemovalCount & "..." - Case "ITA" - currentTask.Text = "Rimozione pacchetto " & (x + 1) & " di " & appxRemovalCount & "..." - End Select - Case 1 - currentTask.Text = "Removing package " & (x + 1) & " of " & appxRemovalCount & "..." - Case 2 - currentTask.Text = "Eliminando paquete " & (x + 1) & " de " & appxRemovalCount & "..." - Case 3 - currentTask.Text = "Suppression du paquet " & (x + 1) & " de " & appxRemovalCount & " en cours..." - Case 4 - currentTask.Text = "A remover o pacote " & (x + 1) & " de " & appxRemovalCount & "..." - Case 5 - currentTask.Text = "Rimozione pacchetto " & (x + 1) & " di " & appxRemovalCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.ProvAppx.Remove").Format("RemovingPackage.Item", x + 1, appxRemovalCount) LogView.AppendText(CrLf & - "Package " & (x + 1) & " of " & appxRemovalCount) + ProgressLogText("Package") & (x + 1) & ProgressLogText("Of.Word") & appxRemovalCount) CurrentPB.Value = x + 1 ' Display package name and DisplayName LogView.AppendText(CrLf & - "- Package name: " & appxRemovalPackages(x) & CrLf & - "- Display name: " & appxRemovalPkgNames(x)) + ProgressLogText("Package.Name") & appxRemovalPackages(x) & CrLf & + ProgressLogText("Display.Name") & appxRemovalPkgNames(x)) ' Display whether an application is registered to a user CheckAppRegistrationStatus(removalStoreApp) ' Initialize command. Its syntax is simple, so don't spend too much time determining options LogView.AppendText(CrLf & CrLf & - "Processing package...") + ProgressLogText("Processing.Package")) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /remove-provisionedappxpackage /packagename=" & appxRemovalPackages(x) RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else @@ -4965,9 +3165,9 @@ Public Class ProgressPanel appxFailedRemovals += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If PackageErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -4984,9 +3184,9 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected AppX packages..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.APPX.Packages") & CrLf) For x = 0 To PackageErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Package no. " & (x + 1) & ": " & PackageErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Package.No") & (x + 1) & ": " & PackageErrorCodes(x)) Next Thread.Sleep(2000) AllPB.Value = 100 @@ -5006,41 +3206,8 @@ Public Class ProgressPanel Private Sub SetKeyboardLayeredDriver(targetImage As String) DynaLog.LogMessage("Preparing to set keyboard layered driver...") DynaLog.LogMessage("Type of new keyboard layered driver: " & KeyboardLayeredDriverType) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Setting layered driver..." - currentTask.Text = "Setting keyboard layered driver..." - Case "ESN" - allTasks.Text = "Estableciendo controlador superpuesto..." - currentTask.Text = "Estableciendo controlador de teclado superpuesto..." - Case "FRA" - allTasks.Text = "Configuration du pilote en couches en cours..." - currentTask.Text = "Configuration du pilote en couches pour le clavier en cours..." - Case "PTB", "PTG" - allTasks.Text = "Configuração do controlador em camadas..." - currentTask.Text = "Configuração do controlador de teclado em camadas..." - Case "ITA" - allTasks.Text = "Impostazione driver stratificato..." - currentTask.Text = "Impostazione driver stratificato tastiera..." - End Select - Case 1 - allTasks.Text = "Setting layered driver..." - currentTask.Text = "Setting keyboard layered driver..." - Case 2 - allTasks.Text = "Estableciendo controlador superpuesto..." - currentTask.Text = "Estableciendo controlador de teclado superpuesto..." - Case 3 - allTasks.Text = "Configuration du pilote en couches en cours..." - currentTask.Text = "Configuration du pilote en couches pour le clavier en cours..." - Case 4 - allTasks.Text = "Configuração do controlador em camadas..." - currentTask.Text = "Configuração do controlador de teclado em camadas..." - Case 5 - allTasks.Text = "Impostazione driver stratificato..." - currentTask.Text = "Impostazione driver stratificato la tastiera..." - End Select + allTasks.Text = LocalizationService.ForSection("Progress.LayeredDriver")("SettingDriver.Button") + currentTask.Text = LocalizationService.ForSection("Progress.LayeredDriver")("Setting.Keyboard.Button") currentLay = New KeyboardDrivers(currentKeybLayeredDriverType).LayeredDriver newKeybLay = New KeyboardDrivers(KeyboardLayeredDriverType).LayeredDriver Dim currentLayout As String = "" @@ -5077,21 +3244,21 @@ Public Class ProgressPanel Case KeyboardDrivers.LayeredKeyboardDriver.J_106109Key newLayout = "Japanese Keyboard (106/109 Key)" End Select - LogView.AppendText(CrLf & "Setting the keyboard layered driver..." & CrLf & - "- Current keyboard layered driver: " & currentLayout & CrLf & - "- New keyboard layered driver: " & newLayout & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Setting.The.Keyboard.Layered.Driver") & CrLf & + ProgressLogText("Current.Keyboard.Layered.Driver") & currentLayout & CrLf & + ProgressLogText("New.Keyboard.Layered.Driver") & newLayout & CrLf) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /set-layereddriver:" & KeyboardLayeredDriverType RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -5106,113 +3273,32 @@ Public Class ProgressPanel DynaLog.LogMessage("- Capability source: " & Quote & capAdditionSource & Quote) DynaLog.LogMessage("- Limit Windows Update access (only for active installations)? " & If(capAdditionLimitWUAccess, "Yes", "No")) DynaLog.LogMessage("- Save changes to the Windows image after finishing? " & If(capAdditionCommit, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Adding capabilities..." - currentTask.Text = "Preparing to add capabilities..." - Case "ESN" - allTasks.Text = "Añadiendo funcionalidades..." - currentTask.Text = "Preparándonos para añadir funcionalidades..." - Case "FRA" - allTasks.Text = "Ajout des capacités en cours..." - currentTask.Text = "Préparation de l'ajout des capacités en cours..." - Case "PTB", "PTG" - allTasks.Text = "A adicionar capacidades..." - currentTask.Text = "A preparar para adicionar capacidades..." - Case "ITA" - allTasks.Text = "Aggiunta capacità..." - currentTask.Text = "Preparazione aggiunta capacità..." - End Select - Case 1 - allTasks.Text = "Adding capabilities..." - currentTask.Text = "Preparing to add capabilities..." - Case 2 - allTasks.Text = "Añadiendo funcionalidades..." - currentTask.Text = "Preparándonos para añadir funcionalidades..." - Case 3 - allTasks.Text = "Ajout des capacités en cours..." - currentTask.Text = "Préparation de l'ajout des capacités en cours..." - Case 4 - allTasks.Text = "A adicionar capacidades..." - currentTask.Text = "A preparar para adicionar capacidades..." - Case 5 - allTasks.Text = "Aggiunta capacità..." - currentTask.Text = "Preparazione aggiunta capacità..." - End Select + allTasks.Text = LocalizationService.ForSection("Progress.AddCapabilities")("Add.Capabilities.Button") + currentTask.Text = LocalizationService.ForSection("Progress.AddCapabilities")("PrepareAdd.Button") DynaLog.LogMessage("Boot mode of the host system: " & SystemInformation.BootMode) - LogView.AppendText(CrLf & "Adding capabilities to mounted image..." & CrLf & - "Options:" & CrLf & - "- Use a source for capability addition? " & If(capAdditionUseSource, "Yes", "No") & CrLf & - "- Capability source: " & If(capAdditionUseSource, Quote & capAdditionSource & Quote, "No source has been provided") & CrLf & - "- Limit access to Windows Update? " & If(capAdditionLimitWUAccess And OnlineMgmt, "Yes", If(capAdditionLimitWUAccess And Not OnlineMgmt, "No, this is not an online installation", "No")) & If(Not capAdditionLimitWUAccess And OnlineMgmt And SystemInformation.BootMode = BootMode.FailSafe, ", the system is in Safe Mode", "") & CrLf & - "- Commit image after adding capabilities? " & If(capAdditionCommit, "Yes", "No") & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Adding.Capabilities.To.Mounted.Image") & CrLf & + ProgressLogText("Options") & CrLf & + ProgressLogText("Use.A.Source.For.Capability.Addition") & If(capAdditionUseSource, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Capability.Source") & If(capAdditionUseSource, Quote & capAdditionSource & Quote, ProgressLogText("No.Source.Has.Been.Provided")) & CrLf & + ProgressLogText("Limit.Access.To.Windows.Update") & If(capAdditionLimitWUAccess And OnlineMgmt, ProgressLogText("Yes"), If(capAdditionLimitWUAccess And Not OnlineMgmt, ProgressLogText("No.This.Is.Not.An.Online.Installation"), ProgressLogText("No"))) & If(Not capAdditionLimitWUAccess And OnlineMgmt And SystemInformation.BootMode = BootMode.FailSafe, ProgressLogText("The.System.Is.In.Safe.Mode"), "") & CrLf & + ProgressLogText("Commit.Image.After.Adding.Capabilities") & If(capAdditionCommit, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf) If capAdditionUseSource And Not Directory.Exists(capAdditionSource) Then DynaLog.LogMessage("A source is expected to be used but it does not exist in the file system.") LogView.AppendText(CrLf & - "Warning: the specified source does not exist in the file system, and it will be skipped") + ProgressLogText("Warning.The.Specified.Source.Does.Not.Exist.In")) End If - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding capabilities..." - Case "ESN" - currentTask.Text = "Añadiendo funcionalidades..." - Case "FRA" - currentTask.Text = "Ajout des capacités en cours..." - Case "PTB", "PTG" - currentTask.Text = "A adicionar capacidades..." - Case "ITA" - currentTask.Text = "Aggiunta capacità..." - End Select - Case 1 - currentTask.Text = "Adding capabilities..." - Case 2 - currentTask.Text = "Añadiendo funcionalidades..." - Case 3 - currentTask.Text = "Ajout des capacités en cours..." - Case 4 - currentTask.Text = "A adicionar capacidades..." - Case 5 - currentTask.Text = "Aggiunta capacità..." - End Select - LogView.AppendText(CrLf & "Enumerating capabilities to add. Please wait..." & CrLf & - "Total number of capabilities: " & capAdditionCount) + currentTask.Text = LocalizationService.ForSection("Progress.AddCapabilities")("Add.Capabilities.Item") + LogView.AppendText(CrLf & ProgressLogText("Enumerating.Capabilities.To.Add.Please.Wait") & CrLf & + ProgressLogText("Total.Number.Of.Capabilities") & capAdditionCount) CurrentPB.Maximum = capAdditionCount For x = 0 To Array.LastIndexOf(capAdditionIds, capAdditionLastId) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding capability " & (x + 1) & " of " & capAdditionCount & "..." - Case "ESN" - currentTask.Text = "Añadiendo funcionalidad " & (x + 1) & " de " & capAdditionCount & "..." - Case "FRA" - currentTask.Text = "Ajout de la capacité " & (x + 1) & " de " & capAdditionCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "Adicionar capacidade " & (x + 1) & " de " & capAdditionCount & "..." - Case "ITA" - currentTask.Text = "Aggiunta capacità " & (x + 1) & " di " & capAdditionCount & "..." - End Select - Case 1 - currentTask.Text = "Adding capability " & (x + 1) & " of " & capAdditionCount & "..." - Case 2 - currentTask.Text = "Añadiendo funcionalidad " & (x + 1) & " de " & capAdditionCount & "..." - Case 3 - currentTask.Text = "Ajout de la capacité " & (x + 1) & " de " & capAdditionCount & " en cours..." - Case 4 - currentTask.Text = "Adicionar capacidade " & (x + 1) & " de " & capAdditionCount & "..." - Case 5 - currentTask.Text = "Aggiunta capacità " & (x + 1) & " di " & capAdditionCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.AddCapabilities").Format("AddingCapability.Item", x + 1, capAdditionCount) CurrentPB.Value = x + 1 DynaLog.LogMessage("Getting information about capability " & Quote & capAdditionIds(x) & Quote & "...") LogView.AppendText(CrLf & - "Capability " & (x + 1) & " of " & capAdditionCount) + ProgressLogText("Capability") & (x + 1) & ProgressLogText("Of.Word") & capAdditionCount) ' Get capability information ' Try opening the session. If API is not initialized, initialize it Try @@ -5224,9 +3310,9 @@ Public Class ProgressPanel ' Get capability information Dim capInfo As DismCapabilityInfo = DismApi.GetCapabilityInfo(imgSession, capAdditionIds(x)) LogView.AppendText(CrLf & CrLf & - "- Capability identity: " & capInfo.Name & CrLf & - "- Capability name: " & capInfo.DisplayName & CrLf & - "- Capability description: " & capInfo.Description & CrLf) + ProgressLogText("Capability.Identity") & capInfo.Name & CrLf & + ProgressLogText("Capability.Name") & capInfo.DisplayName & CrLf & + ProgressLogText("Capability.Description") & capInfo.Description & CrLf) End Using Finally Try @@ -5242,7 +3328,7 @@ Public Class ProgressPanel End If If capAdditionLimitWUAccess And OnlineMgmt Then CommandArgs &= " /limitaccess" RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) errCode = Hex(Decimal.ToInt32(DismExitCode)) If DismExitCode = 0 Then capSuccessfulAdditions += 1 @@ -5250,9 +3336,9 @@ Public Class ProgressPanel capFailedAdditions += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If FeatureErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -5269,40 +3355,16 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected capabilities..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Capabilities") & CrLf) For x = 0 To FeatureErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Capability no. " & (x + 1) & ": " & FeatureErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Capability.No") & (x + 1) & ": " & FeatureErrorCodes(x)) Next Thread.Sleep(2000) If capAdditionCommit Then DynaLog.LogMessage("Preparing to save changes...") AllPB.Value = AllPB.Maximum / taskCount currentTCont += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskCount) RunOps(8) End If If capSuccessfulAdditions > 0 Then @@ -5312,108 +3374,27 @@ Public Class ProgressPanel End If If FeatureErrorCodes.Contains("BC2") Then DynaLog.LogMessage("A system restart is needed to fully apply some capabilities.") - LogView.AppendText(CrLf & "Some capabilities require a system restart to be fully processed. Save your work, close your programs, and restart when ready") + LogView.AppendText(CrLf & ProgressLogText("Some.Capabilities.Require.A.System.Restart.To.Be")) End If End Sub Private Sub RemoveCapabilities(targetImage As String) DynaLog.LogMessage("Preparing to remove capabilities...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Removing capabilities..." - currentTask.Text = "Preparing to remove capabilities..." - Case "ESN" - allTasks.Text = "Eliminando funcionalidades..." - currentTask.Text = "Preparándonos para eliminar funcionalidades..." - Case "FRA" - allTasks.Text = "Suppression des capacités en cours..." - currentTask.Text = "Préparation de la suppression des capacités en cours..." - Case "PTB", "PTG" - allTasks.Text = "A remover capacidades..." - currentTask.Text = "A preparar a remoção de capacidades..." - Case "ITA" - allTasks.Text = "Rimozione capacità..." - currentTask.Text = "Preparazione rimozione capacità..." - End Select - Case 1 - allTasks.Text = "Removing capabilities..." - currentTask.Text = "Preparing to remove capabilities..." - Case 2 - allTasks.Text = "Eliminando funcionalidades..." - currentTask.Text = "Preparándonos para eliminar funcionalidades..." - Case 3 - allTasks.Text = "Suppression des capacités en cours..." - currentTask.Text = "Préparation de la suppression des capacités en cours..." - Case 4 - allTasks.Text = "A remover capacidades..." - currentTask.Text = "A preparar a remoção de capacidades..." - Case 5 - allTasks.Text = "Rimozione capacità..." - currentTask.Text = "Preparazione rimozione capacità..." - End Select - LogView.AppendText(CrLf & "Removing capabilities from mounted image..." & CrLf) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing capabilities..." - Case "ESN" - currentTask.Text = "Eliminando funcionalidades..." - Case "FRA" - currentTask.Text = "Suppression des capacités en cours..." - Case "PTB", "PTG" - currentTask.Text = "A remover capacidades..." - Case "ITA" - currentTask.Text = "Rimozione capacità..." - End Select - Case 1 - currentTask.Text = "Removing capabilities..." - Case 2 - currentTask.Text = "Eliminando funcionalidades..." - Case 3 - currentTask.Text = "Suppression des capacités en cours..." - Case 4 - currentTask.Text = "A remover capacidades..." - Case 5 - currentTask.Text = "Rimozione capacità..." - End Select - LogView.AppendText(CrLf & "Enumerating capabilities to remove. Please wait..." & CrLf & - "Total number of capabilities: " & capRemovalCount) + allTasks.Text = LocalizationService.ForSection("Progress.RemoveCapabilities")("Remove.Capabilities.Button") + currentTask.Text = LocalizationService.ForSection("Progress.RemoveCaps")("Preparing.Button") + LogView.AppendText(CrLf & ProgressLogText("Removing.Capabilities.From.Mounted.Image") & CrLf) + currentTask.Text = LocalizationService.ForSection("Progress.RemoveCapabilities")("Remove.Capabilities.Item") + LogView.AppendText(CrLf & ProgressLogText("Enumerating.Capabilities.To.Remove.Please.Wait") & CrLf & + ProgressLogText("Total.Number.Of.Capabilities") & capRemovalCount) CurrentPB.Maximum = capRemovalCount For x = 0 To Array.LastIndexOf(capRemovalIds, capRemovalLastId) If x + 1 > CurrentPB.Maximum Then Exit For - CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing capability " & (x + 1) & " of " & capRemovalCount & "..." - Case "ESN" - currentTask.Text = "Eliminando funcionalidad " & (x + 1) & " de " & capRemovalCount & "..." - Case "FRA" - currentTask.Text = "Suppression de la capacité " & (x + 1) & " de " & capRemovalCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "Remover a capacidade " & (x + 1) & " de " & capRemovalCount & "..." - Case "ITA" - currentTask.Text = "Rimozione capacità " & (x + 1) & " di " & capRemovalCount & "..." - End Select - Case 1 - currentTask.Text = "Removing capability " & (x + 1) & " of " & capRemovalCount & "..." - Case 2 - currentTask.Text = "Eliminando funcionalidad " & (x + 1) & " de " & capRemovalCount & "..." - Case 3 - currentTask.Text = "Suppression de la capacité " & (x + 1) & " de " & capRemovalCount & " en cours..." - Case 4 - currentTask.Text = "Remover a capacidade " & (x + 1) & " de " & capRemovalCount & "..." - Case 5 - currentTask.Text = "Rimozione capacità " & (x + 1) & " di " & capRemovalCount & "..." - End Select + CommandArgs = BckArgs + currentTask.Text = LocalizationService.ForSection("Progress.RemoveCapabilities").Format("Capability.Item", x + 1, capRemovalCount) DynaLog.LogMessage("Getting information about capability " & Quote & capRemovalIds(x) & Quote & "...") CurrentPB.Value = x + 1 LogView.AppendText(CrLf & - "Capability " & (x + 1) & " of " & capRemovalCount) + ProgressLogText("Capability") & (x + 1) & ProgressLogText("Of.Word") & capRemovalCount) Try DynaLog.LogMessage("Initializing API...") DismApi.Initialize(DismLogLevel.LogErrors) @@ -5422,9 +3403,9 @@ Public Class ProgressPanel DynaLog.LogMessage("Getting capability information...") Dim capInfo As DismCapabilityInfo = DismApi.GetCapabilityInfo(imgSession, capRemovalIds(x)) LogView.AppendText(CrLf & CrLf & - "- Capability identity: " & capInfo.Name & CrLf & - "- Capability name: " & capInfo.DisplayName & CrLf & - "- Capability description: " & capInfo.Description & CrLf) + ProgressLogText("Capability.Identity") & capInfo.Name & CrLf & + ProgressLogText("Capability.Name") & capInfo.DisplayName & CrLf & + ProgressLogText("Capability.Description") & capInfo.Description & CrLf) End Using Finally Try @@ -5436,7 +3417,7 @@ Public Class ProgressPanel End Try CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /norestart /remove-capability /capabilityname=" & capRemovalIds(x) RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) errCode = Hex(Decimal.ToInt32(DismExitCode)) If DismExitCode = 0 Then capSuccessfulRemovals += 1 @@ -5444,9 +3425,9 @@ Public Class ProgressPanel capFailedRemovals += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If FeatureErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -5463,9 +3444,9 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected capabilities..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Capabilities") & CrLf) For x = 0 To FeatureErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Capability no. " & (x + 1) & ": " & FeatureErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Capability.No") & (x + 1) & ": " & FeatureErrorCodes(x)) Next Thread.Sleep(2000) If capSuccessfulRemovals > 0 Then @@ -5475,7 +3456,7 @@ Public Class ProgressPanel End If If FeatureErrorCodes.Contains("BC2") Then DynaLog.LogMessage("A system restart is needed to fully remove some capabilities.") - LogView.AppendText(CrLf & "Some capabilities require a system restart to be fully processed. Save your work, close your programs, and restart when ready") + LogView.AppendText(CrLf & ProgressLogText("Some.Capabilities.Require.A.System.Restart.To.Be")) End If End Sub @@ -5490,13 +3471,13 @@ Public Class ProgressPanel DynaLog.LogMessage("- EULA destination (if chosen to copy the EULA): " & imgEditionEulaDestination) DynaLog.LogMessage("- Accept the EULA? " & If(imgEditionAcceptEula, "Yes", "No")) DynaLog.LogMessage("- Product key (if chosen to accept the EULA): " & imgEditionEditionKey) - allTasks.Text = "Upgrading the image..." - currentTask.Text = "Setting the new image edition..." - LogView.AppendText(CrLf & "Setting the new image edition..." & CrLf & - "Options:" & CrLf & - "- New edition: " & imgEditionNewEdition & CrLf & - "- Will the EULA be copied? " & If(imgEditionCopyEula, "Yes, to the following destination: " & imgEditionEulaDestination, "No") & CrLf & - "- Will the EULA be accepted? " & If(imgEditionAcceptEula, "Yes, with the following product key: " & imgEditionEditionKey, "No") & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.Operation")("UpgradingImage.Label") + currentTask.Text = LocalizationService.ForSection("Progress.Operation")("Setting.New.Image.Label") + LogView.AppendText(CrLf & ProgressLogText("Setting.The.New.Image.Edition") & CrLf & + ProgressLogText("Options") & CrLf & + ProgressLogText("New.Edition") & imgEditionNewEdition & CrLf & + ProgressLogText("Will.The.EULA.Be.Copied") & If(imgEditionCopyEula, ProgressLogText("Yes.To.The.Following.Destination") & imgEditionEulaDestination, ProgressLogText("No")) & CrLf & + ProgressLogText("Will.The.EULA.Be.Accepted") & If(imgEditionAcceptEula, ProgressLogText("Yes.With.The.Following.Product.Key") & imgEditionEditionKey, ProgressLogText("No")) & CrLf) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /norestart /set-edition=" & imgEditionNewEdition DynaLog.LogMessage("Checking if the active installation is being managed...") If OnlineMgmt Then @@ -5510,16 +3491,16 @@ Public Class ProgressPanel DynaLog.LogMessage("The active installation is not being managed. Ignoring other settings...") End If RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -5527,23 +3508,23 @@ Public Class ProgressPanel Private Sub SetImageProductKey(targetImage As String) DynaLog.LogMessage("Preparing to set the product key...") DynaLog.LogMessage("- New Product Key: " & pkSetNewProductKey) - allTasks.Text = "Setting the product key..." - currentTask.Text = "Setting the new product key..." - LogView.AppendText(CrLf & "Setting the new product key..." & CrLf & - "Options:" & CrLf & - "- New product key: " & pkSetNewProductKey & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.Operation")("Setting.ProductKey.Label") + currentTask.Text = LocalizationService.ForSection("Progress.Operation")("Setting.New.ProductKey.Label") + LogView.AppendText(CrLf & ProgressLogText("Setting.The.New.Product.Key") & CrLf & + ProgressLogText("Options") & CrLf & + ProgressLogText("New.Product.Key") & pkSetNewProductKey & CrLf) CommandArgs &= " /image=" & targetImage & " /norestart /set-productkey=" & pkSetNewProductKey RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -5556,108 +3537,27 @@ Public Class ProgressPanel DynaLog.LogMessage("Preparing to add OS drivers...") DynaLog.LogMessage("- Force installation of unsigned drivers? " & If(drvAdditionForceUnsigned, "Yes", "No")) DynaLog.LogMessage("- Save changes to the Windows image after finishing? " & If(drvAdditionCommit, "Yes", "No")) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Adding drivers..." - currentTask.Text = "Preparing to add drivers..." - Case "ESN" - allTasks.Text = "Añadiendo controladores..." - currentTask.Text = "Preparándonos para añadir controladores..." - Case "FRA" - allTasks.Text = "Ajout des pilotes en cours..." - currentTask.Text = "Préparation de l'ajout des pilotes en cours..." - Case "PTB", "PTG" - allTasks.Text = "A adicionar controladores..." - currentTask.Text = "A preparar para adicionar controladores..." - Case "ITA" - allTasks.Text = "Aggiunta driver..." - currentTask.Text = "Preparazione aggiunta driver..." - End Select - Case 1 - allTasks.Text = "Adding drivers..." - currentTask.Text = "Preparing to add drivers..." - Case 2 - allTasks.Text = "Añadiendo controladores..." - currentTask.Text = "Preparándonos para añadir controladores..." - Case 3 - allTasks.Text = "Ajout des pilotes en cours..." - currentTask.Text = "Préparation de l'ajout des pilotes en cours..." - Case 4 - allTasks.Text = "A adicionar controladores..." - currentTask.Text = "A preparar para adicionar controladores..." - Case 5 - allTasks.Text = "Aggiunta driver..." - currentTask.Text = "Preparazione aggiunta driver..." - End Select - LogView.AppendText(CrLf & "Adding driver packages to mounted image..." & CrLf & - "Options:" & CrLf & - "- Force installation of unsigned drivers? " & If(drvAdditionForceUnsigned, "Yes", "No") & CrLf & - "- Commit image after adding driver packages? " & If(drvAdditionCommit, "Yes", "No") & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.AddDrivers")("AddingDrivers.Button") + currentTask.Text = LocalizationService.ForSection("Progress.AddDrivers")("Preparing.Drivers.Button") + LogView.AppendText(CrLf & ProgressLogText("Adding.Driver.Packages.To.Mounted.Image") & CrLf & + ProgressLogText("Options") & CrLf & + ProgressLogText("Force.Installation.Of.Unsigned.Drivers") & If(drvAdditionForceUnsigned, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Commit.Image.After.Adding.Driver.Packages") & If(drvAdditionCommit, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf) If drvAdditionForceUnsigned Then LogView.AppendText(CrLf & - "Warning: the option to force installation of unsigned drivers has been checked. Do note that unsigned drivers might cause instability on the resulting Windows image.") + ProgressLogText("Warning.The.Option.To.Force.Installation.Of.Unsigned")) End If - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding drivers..." - Case "ESN" - currentTask.Text = "Añadiendo controladores..." - Case "FRA" - currentTask.Text = "Ajout des pilotes en cours..." - Case "PTB", "PTG" - currentTask.Text = "A adicionar controladores..." - Case "ITA" - currentTask.Text = "Aggiunta driver..." - End Select - Case 1 - currentTask.Text = "Adding drivers..." - Case 2 - currentTask.Text = "Añadiendo controladores..." - Case 3 - currentTask.Text = "Ajout des pilotes en cours..." - Case 4 - currentTask.Text = "A adicionar controladores..." - Case 5 - currentTask.Text = "Aggiunta driver..." - End Select - LogView.AppendText(CrLf & "Enumerating drivers to add. Please wait..." & CrLf & - "Total number of drivers: " & drvAdditionCount) + currentTask.Text = LocalizationService.ForSection("Progress.AddDrivers")("AddingDrivers.Item") + LogView.AppendText(CrLf & ProgressLogText("Enumerating.Drivers.To.Add.Please.Wait") & CrLf & + ProgressLogText("Total.Number.Of.Drivers") & drvAdditionCount) CurrentPB.Maximum = drvAdditionCount For x = 0 To Array.LastIndexOf(drvAdditionPkgs, drvAdditionLastPkg) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Adding driver " & (x + 1) & " of " & drvAdditionCount & "..." - Case "ESN" - currentTask.Text = "Añadiendo controlador " & (x + 1) & " de " & drvAdditionCount & "..." - Case "FRA" - currentTask.Text = "Ajout du pilote " & (x + 1) & " de " & drvAdditionCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "A adicionar o controlador " & (x + 1) & " de " & drvAdditionCount & "..." - Case "ITA" - currentTask.Text = "Aggiunta driver " & (x + 1) & " di " & drvAdditionCount & "..." - End Select - Case 1 - currentTask.Text = "Adding driver " & (x + 1) & " of " & drvAdditionCount & "..." - Case 2 - currentTask.Text = "Añadiendo controlador " & (x + 1) & " de " & drvAdditionCount & "..." - Case 3 - currentTask.Text = "Ajout du pilote " & (x + 1) & " de " & drvAdditionCount & " en cours..." - Case 4 - currentTask.Text = "A adicionar o controlador " & (x + 1) & " de " & drvAdditionCount & "..." - Case 5 - currentTask.Text = "Aggiunta driver " & (x + 1) & " di " & drvAdditionCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.AddDrivers").Format("AddingDriver.Item", x + 1, drvAdditionCount) CurrentPB.Value = x + 1 LogView.AppendText(CrLf & - "Driver " & (x + 1) & " of " & drvAdditionCount) + ProgressLogText("Driver") & (x + 1) & ProgressLogText("Of.Word") & drvAdditionCount) ' Get driver information DynaLog.LogMessage("Checking file system attributes of driver...") If Not (File.GetAttributes(drvAdditionPkgs(x)) And FileAttributes.Directory) = FileAttributes.Directory Then @@ -5674,23 +3574,23 @@ Public Class ProgressPanel If drvInfoCollection.Count > 0 And drvInfoCollection.Count <= 10 Then For Each drvInfo As DismDriver In drvInfoCollection LogView.AppendText(CrLf & CrLf & - "- Hardware description: " & drvInfo.HardwareDescription & CrLf & - "- Hardware ID: " & drvInfo.HardwareId & CrLf & - "- Additional IDs" & CrLf & - " - Compatible IDs: " & drvInfo.CompatibleIds & CrLf & - " - Excluded IDs: " & drvInfo.ExcludeIds & CrLf & - "- Hardware manufacturer: " & drvInfo.ManufacturerName & CrLf & - "- Hardware architecture: " & Casters.CastDismArchitecture(drvInfo.Architecture)) + ProgressLogText("Hardware.Description") & drvInfo.HardwareDescription & CrLf & + ProgressLogText("Hardware.ID") & drvInfo.HardwareId & CrLf & + ProgressLogText("Additional.IDs") & CrLf & + ProgressLogText("Compatible.IDs") & drvInfo.CompatibleIds & CrLf & + ProgressLogText("Excluded.IDs") & drvInfo.ExcludeIds & CrLf & + ProgressLogText("Hardware.Manufacturer") & drvInfo.ManufacturerName & CrLf & + ProgressLogText("Hardware.Architecture") & Casters.CastDismArchitecture(drvInfo.Architecture)) Next ElseIf drvInfoCollection.Count > 10 Then DynaLog.LogMessage("The driver information contains more than 10 hardware targets.") LogView.AppendText(CrLf & CrLf & - "This driver file targets more than 10 devices. To avoid creating log files large in size, we will not show information of this driver package, and will proceed anyway." & CrLf & - "If you want to get information of this driver package, go to Commands > Drivers > Get driver information > I want to get information about driver files, and specify this driver file:" & CrLf & CrLf & + ProgressLogText("This.Driver.File.Targets.More.Than.10.Devices") & CrLf & + ProgressLogText("If.You.Want.To.Get.Information.Of.This") & CrLf & CrLf & " " & Path.GetFileName(drvAdditionPkgs(x))) Else LogView.AppendText(CrLf & CrLf & - "We couldn't get information of this driver package. Proceeding anyway...") + ProgressLogText("We.Couldn.T.Get.Information.Of.This.Driver")) End If End Using Finally @@ -5704,7 +3604,7 @@ Public Class ProgressPanel Else DynaLog.LogMessage("The driver is a folder. It will be processed recursively.") LogView.AppendText(CrLf & CrLf & - "The driver package currently about to be processed is a folder, so information about it can't be obtained. Proceeding anyway...") + ProgressLogText("The.Driver.Package.Currently.About.To.Be.Processed")) End If DynaLog.LogMessage("Checking current operating mode...") Dim isRecursive As Boolean = (File.GetAttributes(drvAdditionPkgs(x)) And FileAttributes.Directory) = FileAttributes.Directory And drvAdditionFolderRecursiveScan.Contains(drvAdditionPkgs(x)) @@ -5747,12 +3647,12 @@ Public Class ProgressPanel CommandArgs &= " /forceunsigned" End If If isRecursive Then - LogView.AppendText(CrLf & "This folder will be scanned recursively. Driver addition may take a longer time...") + LogView.AppendText(CrLf & ProgressLogText("This.Folder.Will.Be.Scanned.Recursively.Driver.Addition")) CommandArgs &= " /recurse" End If RunProcess(DismProgram, CommandArgs) End If - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) errCode = Hex(Decimal.ToInt32(DismExitCode)) If DismExitCode = 0 Then drvSuccessfulAdditions += 1 @@ -5760,9 +3660,9 @@ Public Class ProgressPanel drvFailedAdditions += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If PackageErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -5779,40 +3679,16 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected drivers..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Drivers") & CrLf) For x = 0 To PackageErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Driver no. " & (x + 1) & ": " & PackageErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Driver.No") & (x + 1) & ": " & PackageErrorCodes(x)) Next Thread.Sleep(2000) If drvAdditionCommit Then DynaLog.LogMessage("Preparing to save changes...") AllPB.Value = AllPB.Maximum / taskCount currentTCont += 1 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskCount) RunOps(8) End If If drvSuccessfulAdditions > 0 Then @@ -5843,107 +3719,26 @@ Public Class ProgressPanel Private Sub RemoveDrivers(targetImage As String) DynaLog.LogMessage("Preparing to remove OS drivers...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Removing drivers..." - currentTask.Text = "Preparing to remove drivers..." - Case "ESN" - allTasks.Text = "Eliminando controladores..." - currentTask.Text = "Preparándonos para eliminar controladores..." - Case "FRA" - allTasks.Text = "Suppression des pilotes en cours..." - currentTask.Text = "Préparation de la suppression des pilotes en cours..." - Case "PTB", "PTG" - allTasks.Text = "A remover controladores..." - currentTask.Text = "A preparar a remoção de controladores..." - Case "ITA" - allTasks.Text = "Rimozione driver..." - currentTask.Text = "Preparazione rimozione driver..." - End Select - Case 1 - allTasks.Text = "Removing drivers..." - currentTask.Text = "Preparing to remove drivers..." - Case 2 - allTasks.Text = "Eliminando controladores..." - currentTask.Text = "Preparándonos para eliminar controladores..." - Case 3 - allTasks.Text = "Suppression des pilotes en cours..." - currentTask.Text = "Préparation de la suppression des pilotes en cours..." - Case 4 - allTasks.Text = "A remover controladores..." - currentTask.Text = "A preparar a remoção de controladores..." - Case 5 - allTasks.Text = "Rimozione driver..." - currentTask.Text = "Preparazione rimozione dei driver..." - End Select - LogView.AppendText(CrLf & "Removing driver packages from mounted image..." & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.RemoveDrivers")("RemovingDrivers.Button") + currentTask.Text = LocalizationService.ForSection("Progress.RemoveDrivers")("Preparing.Drivers.Button") + LogView.AppendText(CrLf & ProgressLogText("Removing.Driver.Packages.From.Mounted.Image") & CrLf) ' Get all driver packages DynaLog.LogMessage("Getting drivers of the Windows image... This can take some time, depending on the amount of drivers installed.") - LogView.AppendText(CrLf & "Getting image drivers. This may take some time..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Getting.Image.Drivers.This.May.Take.Some.Time") & CrLf) GetThirdPartyDrivers() - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing drivers..." - Case "ESN" - currentTask.Text = "Eliminando controladores..." - Case "FRA" - currentTask.Text = "Suppression des pilotes en cours..." - Case "PTB", "PTG" - currentTask.Text = "A remover controladores..." - Case "ITA" - currentTask.Text = "Rimozione driver..." - End Select - Case 1 - currentTask.Text = "Removing drivers..." - Case 2 - currentTask.Text = "Eliminando controladores..." - Case 3 - currentTask.Text = "Suppression des pilotes en cours..." - Case 4 - currentTask.Text = "A remover controladores..." - Case 5 - currentTask.Text = "Rimozione driver..." - End Select - LogView.AppendText(CrLf & "Enumerating drivers to remove. Please wait..." & CrLf & - "Total number of drivers: " & drvRemovalCount) + currentTask.Text = LocalizationService.ForSection("Progress.RemoveDrivers")("RemovingDrivers.Item") + LogView.AppendText(CrLf & ProgressLogText("Enumerating.Drivers.To.Remove.Please.Wait") & CrLf & + ProgressLogText("Total.Number.Of.Drivers") & drvRemovalCount) CurrentPB.Maximum = drvRemovalCount For x = 0 To Array.LastIndexOf(drvRemovalPkgs, drvRemovalLastPkg) If x + 1 > CurrentPB.Maximum Then Exit For CommandArgs = BckArgs Dim driverRemovalPackage As String = drvRemovalPkgs(x) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Removing driver " & (x + 1) & " of " & drvRemovalCount & "..." - Case "ESN" - currentTask.Text = "Eliminando controlador " & (x + 1) & " de " & drvRemovalCount & "..." - Case "FRA" - currentTask.Text = "Suppression du pilote " & (x + 1) & " de " & drvRemovalCount & " en cours..." - Case "PTB", "PTG" - currentTask.Text = "A remover o controlador " & (x + 1) & " de " & drvRemovalCount & "..." - Case "ITA" - currentTask.Text = "Rimozione driver " & (x + 1) & " di " & drvRemovalCount & "..." - End Select - Case 1 - currentTask.Text = "Removing driver " & (x + 1) & " of " & drvRemovalCount & "..." - Case 2 - currentTask.Text = "Eliminando controlador " & (x + 1) & " de " & drvRemovalCount & "..." - Case 3 - currentTask.Text = "Suppression du pilote " & (x + 1) & " de " & drvRemovalCount & " en cours..." - Case 4 - currentTask.Text = "A remover o controlador " & (x + 1) & " de " & drvRemovalCount & "..." - Case 5 - currentTask.Text = "Rimozione driver " & (x + 1) & " di " & drvRemovalCount & "..." - End Select + currentTask.Text = LocalizationService.ForSection("Progress.RemoveDrivers").Format("RemovingDriver.Item", x + 1, drvRemovalCount) DynaLog.LogMessage("Getting information about driver file " & Quote & Path.GetFileName(driverRemovalPackage) & Quote & "...") CurrentPB.Value = x + 1 LogView.AppendText(CrLf & - "Driver " & (x + 1) & " of " & drvRemovalCount) + ProgressLogText("Driver") & (x + 1) & ProgressLogText("Of.Word") & drvRemovalCount) ' Get driver information ShowDriverInformationForRemoval(driverRemovalPackage) DynaLog.LogMessage("Checking current operating mode...") @@ -5971,7 +3766,7 @@ Public Class ProgressPanel CommandArgs &= " /image=" & targetImage & " /remove-driver /driver=" & Quote & driverRemovalPackage & Quote RunProcess(DismProgram, CommandArgs) End If - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) errCode = Hex(Decimal.ToInt32(DismExitCode)) If DismExitCode = 0 Then drvSuccessfulRemovals += 1 @@ -5979,9 +3774,9 @@ Public Class ProgressPanel drvFailedRemovals += 1 End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If PackageErrorCodes.Count <= 0 Then If errCode.Length >= 8 Then @@ -5998,9 +3793,9 @@ Public Class ProgressPanel End If Next CurrentPB.Value = CurrentPB.Maximum - LogView.AppendText(CrLf & "Gathering error level for selected drivers..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level.For.Selected.Drivers") & CrLf) For x = 0 To PackageErrorCodes.Count - 1 - LogView.AppendText(CrLf & "- Driver no. " & (x + 1) & ": " & PackageErrorCodes(x)) + LogView.AppendText(CrLf & ProgressLogText("Driver.No") & (x + 1) & ": " & PackageErrorCodes(x)) Next Thread.Sleep(2000) If drvSuccessfulRemovals > 0 Then @@ -6015,45 +3810,12 @@ Public Class ProgressPanel DynaLog.LogMessage("Export target: " & Quote & drvExportTarget & Quote) DynaLog.LogMessage("Export all drivers? " & If(drvExportAllDrvs, "Yes", "No")) If Not drvExportAllDrvs Then DynaLog.LogMessage("Class name to use as filter for driver exports: " & Quote & drvExportSpecificClassName & Quote) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Exporting drivers..." - currentTask.Text = "Exporting third-party drivers to the specified folder..." - Case "ESN" - allTasks.Text = "Exportando controladores..." - currentTask.Text = "Exportando controladores de terceros a la carpeta especificada..." - Case "FRA" - allTasks.Text = "Exportation des pilotes en cours..." - currentTask.Text = "Exportation de pilotes tiers dans le dossier spécifié en cours..." - Case "PTB", "PTG" - allTasks.Text = "Exportar controladores..." - currentTask.Text = "Exportar controladores de terceiros para a pasta especificada..." - Case "ITA" - allTasks.Text = "Esportazione driver..." - currentTask.Text = "Esportazione driver terze parti nella cartella specificata..." - End Select - Case 1 - allTasks.Text = "Exporting drivers..." - currentTask.Text = "Exporting third-party drivers to the specified folder..." - Case 2 - allTasks.Text = "Exportando controladores..." - currentTask.Text = "Exportando controladores de terceros a la carpeta especificada..." - Case 3 - allTasks.Text = "Exportation des pilotes en cours..." - currentTask.Text = "Exportation de pilotes tiers dans le dossier spécifié en cours..." - Case 4 - allTasks.Text = "Exportar controladores..." - currentTask.Text = "Exportar controladores de terceiros para a pasta especificada..." - Case 5 - allTasks.Text = "Esportazione driver..." - currentTask.Text = "Esportazione driver terze parti nella cartella specificata..." - End Select - LogView.AppendText(CrLf & "Exporting drivers to specified folder..." & CrLf & - "- Export target: " & Quote & drvExportTarget & Quote & CrLf & - "- Export all drivers, or just those with matching class names? " & If(drvExportAllDrvs, "All Drivers", "Drivers with matching class name") & CrLf & - "- If not all drivers are exported, which class name is used for drivers that will be exported? " & drvExportSpecificClassName & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.ExportDrivers")("ExportingDrivers.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ExportDrivers")("ExportThirdParty.Button") + LogView.AppendText(CrLf & ProgressLogText("Exporting.Drivers.To.Specified.Folder") & CrLf & + ProgressLogText("Export.Target") & Quote & drvExportTarget & Quote & CrLf & + ProgressLogText("Export.All.Drivers.Or.Just.Those.With.Matching") & If(drvExportAllDrvs, ProgressLogText("All.Drivers"), ProgressLogText("Drivers.With.Matching.Class.Name")) & CrLf & + ProgressLogText("If.Not.All.Drivers.Are.Exported.Which.Class") & drvExportSpecificClassName & CrLf) If drvExportAllDrvs Then If drvExportWin7Mode Then Try @@ -6135,9 +3897,9 @@ Public Class ProgressPanel If driversToExport Is Nothing Then Exit Try DynaLog.LogMessage("Amount of drivers to export: " & driversToExport.Count) - LogView.AppendText(CrLf & driversToExport.Count & " driver(s) will be exported to the destination") + LogView.AppendText(CrLf & driversToExport.Count & ProgressLogText("Driver.S.Will.Be.Exported.To.The.Destination")) For Each driverToExport In driversToExport - LogView.AppendText(CrLf & "Exporting driver file " & Path.GetFileName(driverToExport.DriverOriginalFileName) & "...") + LogView.AppendText(CrLf & ProgressLogText("Exporting.Driver.File") & Path.GetFileName(driverToExport.DriverOriginalFileName) & "...") Dim drvName As String = Path.GetFileName(driverToExport.DriverOriginalFileName) Dim destinationDriverPath As String = Path.Combine(drvExportTarget, drvName) CopyRecursive(Path.GetDirectoryName(driverToExport.DriverOriginalFileName), destinationDriverPath) @@ -6245,9 +4007,9 @@ Public Class ProgressPanel If driversToExport Is Nothing Then Exit Try DynaLog.LogMessage("Amount of drivers to export: " & driversToExport.Count) - LogView.AppendText(CrLf & driversToExport.Count & " driver(s) will be exported to the destination") + LogView.AppendText(CrLf & driversToExport.Count & ProgressLogText("Driver.S.Will.Be.Exported.To.The.Destination")) For Each driverToExport In driversToExport - LogView.AppendText(CrLf & "Exporting driver file " & Path.GetFileName(driverToExport.DriverOriginalFileName) & "...") + LogView.AppendText(CrLf & ProgressLogText("Exporting.Driver.File") & Path.GetFileName(driverToExport.DriverOriginalFileName) & "...") Dim drvName As String = Path.GetFileName(driverToExport.DriverOriginalFileName) Dim destinationDriverPath As String = Path.Combine(drvExportTarget, drvName) CopyRecursive(Path.GetDirectoryName(driverToExport.DriverOriginalFileName), destinationDriverPath) @@ -6258,7 +4020,7 @@ Public Class ProgressPanel End Try Else Try - LogView.AppendText(CrLf & "Getting image drivers...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Image.Drivers")) DismApi.Initialize(DismLogLevel.LogErrors) Using session As DismSession = If(OnlineMgmt, DismApi.OpenOnlineSession(), DismApi.OpenOfflineSession(MountDir)) DynaLog.LogMessage("Getting drivers with DISMAPI...") @@ -6269,9 +4031,9 @@ Public Class ProgressPanel If driversToExport Is Nothing Then Exit Try DynaLog.LogMessage("Amount of drivers to export: " & driversToExport.Count) - LogView.AppendText(CrLf & driversToExport.Count & " driver(s) will be exported to the destination") + LogView.AppendText(CrLf & driversToExport.Count & ProgressLogText("Driver.S.Will.Be.Exported.To.The.Destination")) For Each driverToExport In driversToExport - LogView.AppendText(CrLf & "Exporting driver file " & Path.GetFileName(driverToExport.OriginalFileName) & "...") + LogView.AppendText(CrLf & ProgressLogText("Exporting.Driver.File") & Path.GetFileName(driverToExport.OriginalFileName) & "...") Dim drvName As String = Path.GetFileName(driverToExport.OriginalFileName) Dim destinationDriverPath As String = Path.Combine(drvExportTarget, drvName) CopyRecursive(Path.GetDirectoryName(driverToExport.OriginalFileName), destinationDriverPath) @@ -6290,16 +4052,16 @@ Public Class ProgressPanel End Try End If End If - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -6354,87 +4116,30 @@ Public Class ProgressPanel Private Sub ImportDrivers(targetImage As String) DynaLog.LogMessage("Preparing to import image drivers...") DynaLog.LogMessage("Source type: " & ImportSourceInt) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Importing drivers..." - currentTask.Text = "Preparing to import third-party drivers..." - Case "ESN" - allTasks.Text = "Importando controladores..." - currentTask.Text = "Preparándonos para importar controladores de terceros..." - Case "FRA" - allTasks.Text = "Importation des pilotes en cours..." - currentTask.Text = "Préparation de l'importation de pilotes tiers en cours..." - Case "PTB", "PTG" - allTasks.Text = "A importar controladores..." - currentTask.Text = "A preparar a importação de controladores de terceiros..." - Case "ITA" - allTasks.Text = "Importazione driver..." - currentTask.Text = "Preparazione importazione driver terze parti..." - End Select - Case 1 - allTasks.Text = "Importing drivers..." - currentTask.Text = "Preparing to import third-party drivers..." - Case 2 - allTasks.Text = "Importando controladores..." - currentTask.Text = "Preparándonos para importar controladores de terceros..." - Case 3 - allTasks.Text = "Importation des pilotes en cours..." - currentTask.Text = "Préparation de l'importation de pilotes tiers en cours..." - Case 4 - allTasks.Text = "A importar controladores..." - currentTask.Text = "A preparar a importação de controladores de terceiros..." - Case 5 - allTasks.Text = "Importazione dei driver..." - currentTask.Text = "Preparazione all'importazione di driver di terze parti..." - End Select - LogView.AppendText(CrLf & "Importing third party drivers..." & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.ImportDrivers")("ImportingDrivers.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ImportDrivers")("PrepareImport.Button") + LogView.AppendText(CrLf & ProgressLogText("Importing.Third.Party.Drivers") & CrLf) Select Case ImportSourceInt Case 0 - LogView.AppendText("- Driver import source: Windows image (" & Quote & DrvImport_SourceImage & Quote & ")" & CrLf) + LogView.AppendText(ProgressLogText("Driver.Import.Source.Windows.Image") & Quote & DrvImport_SourceImage & Quote & ")" & CrLf) Case 1 - LogView.AppendText("- Driver import source: active installation" & CrLf) + LogView.AppendText(ProgressLogText("Driver.Import.Source.Active.Installation") & CrLf) Case 2 - LogView.AppendText("- Driver import source: offline installation (" & Quote & DrvImport_SourceDisk & Quote & ")" & CrLf) + LogView.AppendText(ProgressLogText("Driver.Import.Source.Offline.Installation") & Quote & DrvImport_SourceDisk & Quote & ")" & CrLf) End Select Thread.Sleep(500) - LogView.AppendText(CrLf & "Creating temporary folder for driver exports..." & CrLf) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Exporting third-party drivers from driver import source..." - Case "ESN" - currentTask.Text = "Exportando controladores de terceros del origen de importación de controladores..." - Case "FRA" - currentTask.Text = "Exportation de pilotes tiers à partir de la source d'importation des pilotes en cours..." - Case "PTB", "PTG" - currentTask.Text = "Exportar controladores de terceiros a partir da fonte de importação de controladores..." - Case "ITA" - currentTask.Text = "Esportazione driver terze parti dalla sorgente importazione driver..." - End Select - Case 1 - currentTask.Text = "Exporting third-party drivers from driver import source..." - Case 2 - currentTask.Text = "Exportando controladores de terceros del origen de importación de controladores..." - Case 3 - currentTask.Text = "Exportation de pilotes tiers à partir de la source d'importation des pilotes en cours..." - Case 4 - currentTask.Text = "Exportar controladores de terceiros a partir da fonte de importação de controladores..." - Case 5 - currentTask.Text = "Esportazione di driver di terze parti dall'origine di importazione dei driver..." - End Select + LogView.AppendText(CrLf & ProgressLogText("Creating.Temporary.Folder.For.Driver.Exports") & CrLf) + currentTask.Text = LocalizationService.ForSection("Progress.ImportDrivers")("ExportThirdParty.Item") Try DynaLog.LogMessage("Creating directory where drivers will be exported to...") Directory.CreateDirectory(Application.StartupPath & "\export_temp") Catch ex As Exception DynaLog.LogMessage("Could not create the driver export directory. Error message: " & ex.Message) - LogView.AppendText(CrLf & "The temporary folder could not be created. See below for reasons why:" & CrLf & CrLf & ex.ToString() & "-" & ex.Message) + LogView.AppendText(CrLf & ProgressLogText("The.Temporary.Folder.Could.Not.Be.Created.See") & CrLf & CrLf & ex.ToString() & "-" & ex.Message) End Try If Directory.Exists(Application.StartupPath & "\export_temp") Then DynaLog.LogMessage("Exporting drivers...") - LogView.AppendText(CrLf & "Exporting third-party drivers from import source..." & CrLf) + LogView.AppendText(CrLf & ProgressLogText("Exporting.Third.Party.Drivers.From.Import.Source") & CrLf) Dim importSource As String = "" Select Case ImportSourceInt Case 0 @@ -6444,47 +4149,23 @@ Public Class ProgressPanel End Select CommandArgs &= If(ImportSourceInt = 1, " /online", " /image=" & importSource) & " /export-driver /destination=" & Quote & Application.StartupPath & "\export_temp" & Quote RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If If DismExitCode = 0 Then DynaLog.LogMessage("The previous operation succeeded. Adding the drivers...") CurrentPB.Value = CurrentPB.Maximum / 2 AllPB.Value = AllPB.Maximum / 2 - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Importing third-party drivers to destination image..." - Case "ESN" - currentTask.Text = "Importando controladores de terceros a la imagen de destino..." - Case "FRA" - currentTask.Text = "Importation des pilotes tiers dans l'image de destination en cours..." - Case "PTB", "PTG" - currentTask.Text = "A importar controladores de terceiros para a imagem de destino..." - Case "ITA" - currentTask.Text = "Importazione driver terze parti nell'immagine destinazione..." - End Select - Case 1 - currentTask.Text = "Importing third-party drivers to destination image..." - Case 2 - currentTask.Text = "Importando controladores de terceros a la imagen de destino..." - Case 3 - currentTask.Text = "Importation des pilotes tiers dans l'image de destination en cours..." - Case 4 - currentTask.Text = "A importar controladores de terceiros para a imagem de destino..." - Case 5 - currentTask.Text = "Importazione driver di terze parti nell'immagine destinazione..." - End Select - LogView.AppendText(CrLf & "Importing third-party drivers from the temporary export directory to the destination image...") + currentTask.Text = LocalizationService.ForSection("Progress.ImportDrivers")("ImportThirdParty.Item") + LogView.AppendText(CrLf & ProgressLogText("Importing.Third.Party.Drivers.From.The.Temporary.Export")) CommandArgs = BckArgs If OnlineMgmt Then DynaLog.LogMessage("Online installation management mode detected. Using PNPUTIL to add the driver...") @@ -6516,19 +4197,19 @@ Public Class ProgressPanel errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End If - LogView.AppendText(CrLf & "Deleting temporary export directory...") + LogView.AppendText(CrLf & ProgressLogText("Deleting.Temporary.Export.Directory")) Try DynaLog.LogMessage("Attempting to delete the driver export directory...") Directory.Delete(Application.StartupPath & "\export_temp", True) Catch ex As Exception DynaLog.LogMessage("Could not delete driver export directory. Error message: " & ex.Message) - LogView.AppendText(CrLf & "We couldn't delete the temporary export directory. You'll need to delete the " & Quote & "export_temp" & Quote & " directory manually.") + LogView.AppendText(CrLf & ProgressLogText("We.Couldn.T.Delete.The.Temporary.Export.Directory") & Quote & ProgressLogText("Export.Temp") & Quote & ProgressLogText("Directory.Manually")) End Try End If End Sub @@ -6540,23 +4221,23 @@ Public Class ProgressPanel For Each drv As DismDriverPackage In drvCollection If drv.PublishedName = driverRemovalPackage Then LogView.AppendText(CrLf & CrLf & - "- Published name: " & drv.PublishedName & CrLf & - "- Provider name: " & drv.ProviderName & CrLf & - "- Class name: " & drv.ClassName & CrLf & - "- Class description: " & drv.ClassDescription & CrLf & - "- Class GUID: " & drv.ClassGuid & CrLf & - "- Version and date: " & drv.Version.ToString() & " / " & drv.Date.ToString() & CrLf & - "- Is part of the Windows distribution? " & If(drv.InBox, "Yes", "No") & CrLf & - "- Is critical to the boot process? " & If(drv.BootCritical, "Yes", "No")) + ProgressLogText("Published.Name") & drv.PublishedName & CrLf & + ProgressLogText("Provider.Name") & drv.ProviderName & CrLf & + ProgressLogText("Class.Name") & drv.ClassName & CrLf & + ProgressLogText("Class.Description") & drv.ClassDescription & CrLf & + ProgressLogText("Class.GUID") & drv.ClassGuid & CrLf & + ProgressLogText("Version.And.Date") & drv.Version.ToString() & " / " & drv.Date.ToString() & CrLf & + ProgressLogText("Is.Part.Of.The.Windows.Distribution") & If(drv.InBox, ProgressLogText("Yes"), ProgressLogText("No")) & CrLf & + ProgressLogText("Is.Critical.To.The.Boot.Process") & If(drv.BootCritical, ProgressLogText("Yes"), ProgressLogText("No"))) If drv.InBox Then DynaLog.LogMessage("This driver is part of the Windows distribution.") LogView.AppendText(CrLf & CrLf & - "Warning: this driver package is part of the Windows distribution. Some areas may no longer work after this driver has been removed") + ProgressLogText("Warning.This.Driver.Package.Is.Part.Of.The")) End If If drv.BootCritical Then DynaLog.LogMessage("This driver is critical to the boot process of the Windows image.") LogView.AppendText(CrLf & CrLf & - "Warning: this driver package is critical to the boot process. The target image may no longer boot or work correctly after this driver has been removed") + ProgressLogText("Warning.This.Driver.Package.Is.Critical.To.The")) End If Exit For End If @@ -6579,45 +4260,12 @@ Public Class ProgressPanel Private Sub ApplyUnattendedFile(targetImage As String) DynaLog.LogMessage("Preparing to apply unattended answer file...") DynaLog.LogMessage("Answer file: " & Quote & Path.GetFileName(UnattendedFile) & Quote) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Applying unattended answer file..." - currentTask.Text = "Applying specified unattended answer file to the target image..." - Case "ESN" - allTasks.Text = "Aplicando archivo de respuesta desatendida..." - currentTask.Text = "Aplicando archivo de respuesta desatendida especificado a la imagen de destino..." - Case "FRA" - allTasks.Text = "Appliquer le fichier de réponse sans surveillance en cours..." - currentTask.Text = "Appliquer le fichier de réponse non assisté spécifié à l'image cible en cours..." - Case "PTB", "PTG" - allTasks.Text = "Aplicar ficheiro de resposta não assistido..." - currentTask.Text = "Aplicar o ficheiro de resposta automática especificado à imagem de destino..." - Case "ITA" - allTasks.Text = "Applicazione file risposta non presidiate..." - currentTask.Text = "Applicazione file risposta non presidiate specificato all'immagine destinazione..." - End Select - Case 1 - allTasks.Text = "Applying unattended answer file..." - currentTask.Text = "Applying specified unattended answer file to the target image..." - Case 2 - allTasks.Text = "Aplicando archivo de respuesta desatendida..." - currentTask.Text = "Aplicando archivo de respuesta desatendida especificado a la imagen de destino..." - Case 3 - allTasks.Text = "Appliquer le fichier de réponse sans surveillance en cours..." - currentTask.Text = "Appliquer le fichier de réponse non assisté spécifié à l'image cible en cours..." - Case 4 - allTasks.Text = "Aplicar ficheiro de resposta não assistido..." - currentTask.Text = "Aplicar o ficheiro de resposta automática especificado à imagem de destino..." - Case 5 - allTasks.Text = "Applicazione del file di risposta non presidiato..." - currentTask.Text = "Applicazione file risposta non presidiata specificato all'immagine destinazione..." - End Select - LogView.AppendText(CrLf & "Applying unattended answer file. Options:" & CrLf & - "- Unattended answer file: " & UnattendedFile) + allTasks.Text = LocalizationService.ForSection("Progress.ApplyUnattend")("ApplyAnswerFile.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ApplyUnattend")("Applying.Answer.Button") + LogView.AppendText(CrLf & ProgressLogText("Applying.Unattended.Answer.File.Options") & CrLf & + ProgressLogText("Unattended.Answer.File") & UnattendedFile) Try - LogView.AppendText(CrLf & CrLf & "Creating directories and copying files...") + LogView.AppendText(CrLf & CrLf & ProgressLogText("Creating.Directories.And.Copying.Files")) DynaLog.LogMessage("Copying unattended answer file to the Panther directory of the Windows image...") If Not Directory.Exists(Path.Combine(MountDir, "Windows", "Panther")) Then Directory.CreateDirectory(Path.Combine(MountDir, "Windows", "Panther")) @@ -6630,43 +4278,19 @@ Public Class ProgressPanel End If File.Copy(UnattendedFile, Path.Combine(MountDir, "Windows", "system32", "sysprep", "unattend.xml"), True) End If - LogView.AppendText(CrLf & "The unattended answer file has been successfully copied.") + LogView.AppendText(CrLf & ProgressLogText("The.Unattended.Answer.File.Has.Been.Successfully.Copied")) GetErrorCode(True) Catch ex As Exception DynaLog.LogMessage("Could not copy unattended answer file to targets. Error message: " & ex.Message) CommandArgs &= If(OnlineMgmt, " /online", " /image=" & targetImage) & " /apply-unattend=" & Quote & UnattendedFile & Quote RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.ApplyUnattend")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Try End Sub @@ -6678,55 +4302,22 @@ Public Class ProgressPanel Private Sub SetTargetPath(targetImage As String) DynaLog.LogMessage("Preparing to set the target path of the Windows PE image...") DynaLog.LogMessage("Target path to set: " & Quote & peNewTargetPath & Quote) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Setting the target path..." - currentTask.Text = "Setting the Windows PE target path..." - Case "ESN" - allTasks.Text = "Estableciendo la ruta de destino..." - currentTask.Text = "Estableciendo la ruta de destino de Windows PE..." - Case "FRA" - allTasks.Text = "Configuration du chemin cible en cours..." - currentTask.Text = "Configuration du chemin cible de Windows PE en cours..." - Case "PTB", "PTG" - allTasks.Text = "A configurar a localização de destino..." - currentTask.Text = "A configurar a localização de destino do Windows PE..." - Case "ITA" - allTasks.Text = "Impostazione percorso destinazione..." - currentTask.Text = "Impostazione percorso destinazione Windows PE..." - End Select - Case 1 - allTasks.Text = "Setting the target path..." - currentTask.Text = "Setting the Windows PE target path..." - Case 2 - allTasks.Text = "Estableciendo la ruta de destino..." - currentTask.Text = "Estableciendo la ruta de destino de Windows PE..." - Case 3 - allTasks.Text = "Configuration du chemin cible en cours..." - currentTask.Text = "Configuration du chemin cible de Windows PE en cours..." - Case 4 - allTasks.Text = "A configurar a localização de destino..." - currentTask.Text = "A configurar a localização de destino do Windows PE..." - Case 5 - allTasks.Text = "Impostazione percorso destinazione..." - currentTask.Text = "Impostazione percorso destinazione di Windows PE..." - End Select - LogView.AppendText(CrLf & "Setting the Windows PE target path..." & CrLf & - "- New target path: " & Quote & peNewTargetPath & Quote) + allTasks.Text = LocalizationService.ForSection("Progress.SetTargetPath")("Setting.Target.Button") + currentTask.Text = LocalizationService.ForSection("Progress.SetTargetPath")("Setting.Windows.Button") + LogView.AppendText(CrLf & ProgressLogText("Setting.The.Windows.PE.Target.Path") & CrLf & + ProgressLogText("New.Target.Path") & Quote & peNewTargetPath & Quote) CommandArgs &= " /image=" & targetImage & " /set-targetpath=" & peNewTargetPath RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -6734,55 +4325,22 @@ Public Class ProgressPanel Private Sub SetScratchSpace(targetImage As String) DynaLog.LogMessage("Preparing to set the scratch space of the Windows PE image...") DynaLog.LogMessage("Scratch space to set: " & peNewScratchSpace & " MB") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Setting the scratch space..." - currentTask.Text = "Setting the Windows PE scratch space..." - Case "ESN" - allTasks.Text = "Estableciendo el espacio temporal..." - currentTask.Text = "Estableciendo el espacio temporal de Windows PE..." - Case "FRA" - allTasks.Text = "Configuration de l'espace temporaire en cours..." - currentTask.Text = "Configuration de l'espace temporaire de Windows PE en cours..." - Case "PTB", "PTG" - allTasks.Text = "A configurar o espaço temporário..." - currentTask.Text = "A configurar o espaço temporário do Windows PE..." - Case "ITA" - allTasks.Text = "Impostazione spazio temporaneo..." - currentTask.Text = "Impostazione spazio temporaneo Windows PE..." - End Select - Case 1 - allTasks.Text = "Setting the scratch space..." - currentTask.Text = "Setting the Windows PE scratch space..." - Case 2 - allTasks.Text = "Estableciendo el espacio temporal..." - currentTask.Text = "Estableciendo el espacio temporal de Windows PE..." - Case 3 - allTasks.Text = "Configuration de l'espace temporaire en cours..." - currentTask.Text = "Configuration de l'espace temporaire de Windows PE en cours..." - Case 4 - allTasks.Text = "A configurar o espaço temporário..." - currentTask.Text = "A configurar o espaço temporário do Windows PE..." - Case 5 - allTasks.Text = "Impostazione dello spazio temporaneo..." - currentTask.Text = "Impostazione dello spazio temporaneo di Windows PE..." - End Select - LogView.AppendText(CrLf & "Setting the Windows PE scratch space..." & CrLf & - "- New scratch space amount: " & peNewScratchSpace & " MB") + allTasks.Text = LocalizationService.ForSection("Progress.ScratchSpace")("Setting.ScratchSpace.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ScratchSpace")("SetScratchSpace.Button") + LogView.AppendText(CrLf & ProgressLogText("Setting.The.Windows.PE.Scratch.Space") & CrLf & + ProgressLogText("New.Scratch.Space.Amount") & peNewScratchSpace & " MB") CommandArgs &= " /image=" & targetImage & " /set-scratchspace=" & peNewScratchSpace RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Getting error level...") + LogView.AppendText(CrLf & ProgressLogText("Getting.Error.Level")) If Hex(DismExitCode).Length < 8 Then errCode = DismExitCode Else errCode = Hex(DismExitCode) End If If errCode.Length >= 8 Then - LogView.AppendText(" Error level : 0x" & errCode) + LogView.AppendText(ProgressLogText("Error.Level.0x.2") & errCode) Else - LogView.AppendText(" Error level : " & errCode) + LogView.AppendText(ProgressLogText("Error.Level.2") & errCode) End If GetErrorCode(False) End Sub @@ -6794,149 +4352,50 @@ Public Class ProgressPanel Private Sub SetOSUnistallWindow() DynaLog.LogMessage("Preparing to set the OS rollback window...") DynaLog.LogMessage("New window: " & osUninstDayCount & " day(s)") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Setting the uninstall window..." - currentTask.Text = "Setting the amount of days in which an uninstall can happen..." - Case "ESN" - allTasks.Text = "Estableciendo el margen de desinstalación..." - currentTask.Text = "Estableciendo el número de días en los que puede ocurrir una desinstalación..." - Case "FRA" - allTasks.Text = "Définition de la créneau de désinstallation en cours..." - currentTask.Text = "Définition du nombre de jours au cours desquels une désinstallation peut avoir lieu en cours..." - Case "PTB", "PTG" - allTasks.Text = "A configurar a janela de desinstalação..." - currentTask.Text = "A configurar o número de dias em que uma desinstalação pode ocorrer..." - Case "ITA" - allTasks.Text = "Impostazione finestra disinstallazione..." - currentTask.Text = "Impostazione numero di giorni in cui può avvenire la disinstallazione..." - End Select - Case 1 - allTasks.Text = "Setting the uninstall window..." - currentTask.Text = "Setting the amount of days in which an uninstall can happen..." - Case 2 - allTasks.Text = "Estableciendo el margen de desinstalación..." - currentTask.Text = "Estableciendo el número de días en los que puede ocurrir una desinstalación..." - Case 3 - allTasks.Text = "Définition de la créneau de désinstallation en cours..." - currentTask.Text = "Définition du nombre de jours au cours desquels une désinstallation peut avoir lieu en cours..." - Case 4 - allTasks.Text = "A configurar a janela de desinstalação..." - currentTask.Text = "A configurar o número de dias em que uma desinstalação pode ocorrer..." - Case 5 - allTasks.Text = "Impostazione della finestra di disinstallazione..." - currentTask.Text = "Impostazione del numero di giorni in cui può avvenire la disinstallazione..." - End Select - LogView.AppendText(CrLf & "Setting the amount of days an uninstall can happen..." & CrLf & - "Number of days: " & osUninstDayCount) + allTasks.Text = LocalizationService.ForSection("Progress.RollbackWindow")("SetWindow.Button") + currentTask.Text = LocalizationService.ForSection("Progress.RollbackWindow")("SetDays.Button") + LogView.AppendText(CrLf & ProgressLogText("Setting.The.Amount.Of.Days.An.Uninstall.Can") & CrLf & + ProgressLogText("Number.Of.Days") & osUninstDayCount) CommandArgs &= " /online /set-osuninstallwindow /value:" & osUninstDayCount RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Gathering error level...") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub Private Sub RemoveOSUnistall() DynaLog.LogMessage("Preparing to remove the OS rollback...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Removing OS rollback ability..." - currentTask.Text = "Removing the ability to revert to an old installation of Windows..." - Case "ESN" - allTasks.Text = "Eliminando la habilidad de desinstalación..." - currentTask.Text = "Eliminando la habilidad para revertir a una instalación anterior de Windows..." - Case "FRA" - allTasks.Text = "Suppression de la possibilité de retour en arrière du système d'exploitation en cours..." - currentTask.Text = "Suppression de la possibilité de revenir à une ancienne installation de Windows en cours..." - Case "PTB", "PTG" - allTasks.Text = "Remover a capacidade de reversão do SO..." - currentTask.Text = "Remover a capacidade de reverter para uma instalação antiga do Windows..." - Case "ITA" - allTasks.Text = "Rimozione possibilità rollback sistema operativo..." - currentTask.Text = "Rimozione possibilità tornare alla vecchia installazione di Windows..." - End Select - Case 1 - allTasks.Text = "Removing OS rollback ability..." - currentTask.Text = "Removing the ability to revert to an old installation of Windows..." - Case 2 - allTasks.Text = "Eliminando la habilidad de desinstalación..." - currentTask.Text = "Eliminando la habilidad para revertir a una instalación anterior de Windows..." - Case 3 - allTasks.Text = "Suppression de la possibilité de retour en arrière du système d'exploitation en cours..." - currentTask.Text = "Suppression de la possibilité de revenir à une ancienne installation de Windows en cours..." - Case 4 - allTasks.Text = "Remover a capacidade de reversão do SO..." - currentTask.Text = "Remover a capacidade de reverter para uma instalação antiga do Windows..." - Case 5 - allTasks.Text = "Rimozione opzione fallback al sistema operativo precedente..." - currentTask.Text = "Rimozione opzione fallback ad una vecchia installazione di Windows..." - End Select - LogView.AppendText(CrLf & "Removing the ability to revert to an old installation of Windows...") + allTasks.Text = LocalizationService.ForSection("Progress.RemoveRollback")("RemoveRollback.Button") + currentTask.Text = LocalizationService.ForSection("Progress.RemoveRollback")("RemoveRevert.Button") + LogView.AppendText(CrLf & ProgressLogText("Removing.The.Ability.To.Revert.To.An.Old")) CommandArgs &= " /online /remove-osuninstall" RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Gathering error level...") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub Private Sub InitiateOSUnistall() DynaLog.LogMessage("Preparing to initiate the OS rollback...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Uninstalling this version of Windows..." - currentTask.Text = "Preparing operating system rollback..." - Case "ESN" - allTasks.Text = "Desinstalando esta versión de Windows..." - currentTask.Text = "Preparando la desinstalación del sistema operativo..." - Case "FRA" - allTasks.Text = "Désinstallation de cette version de Windows en cours..." - currentTask.Text = "Préparation du retour en arrière du système d'exploitation en cours..." - Case "PTB", "PTG" - allTasks.Text = "Desinstalar esta versão do Windows..." - currentTask.Text = "Preparar a reversão do sistema operativo..." - Case "ITA" - allTasks.Text = "Disinstallazione di questa versione di Windows..." - currentTask.Text = "Preparazione rollback sistema operativo..." - End Select - Case 1 - allTasks.Text = "Uninstalling this version of Windows..." - currentTask.Text = "Preparing operating system rollback..." - Case 2 - allTasks.Text = "Desinstalando esta versión de Windows..." - currentTask.Text = "Preparando la desinstalación del sistema operativo..." - Case 3 - allTasks.Text = "Désinstallation de cette version de Windows en cours..." - currentTask.Text = "Préparation du retour en arrière du système d'exploitation en cours..." - Case 4 - allTasks.Text = "Desinstalar esta versão do Windows..." - currentTask.Text = "Preparar a reversão do sistema operativo..." - Case 5 - allTasks.Text = "Disinstallazione di questa versione di Windows..." - currentTask.Text = "Preparazione del ripristino del sistema operativo..." - End Select - LogView.AppendText(CrLf & "Preparing operating system rollback...") + allTasks.Text = LocalizationService.ForSection("Progress.OSUninstall")("Uninstalling.Version.Button") + currentTask.Text = LocalizationService.ForSection("Progress.StartRollback")("Preparing.OSRollback.Button") + LogView.AppendText(CrLf & ProgressLogText("Preparing.Operating.System.Rollback")) CommandArgs = " /online /norestart /initiate-osuninstall" RunProcess(DismProgram, CommandArgs) - LogView.AppendText(CrLf & "Gathering error level...") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -6950,52 +4409,19 @@ Public Class ProgressPanel DynaLog.LogMessage("- Source image index: " & imgConversionIndex) DynaLog.LogMessage("- Destination image file: " & Quote & imgDestFile & Quote) DynaLog.LogMessage("- Conversion mode: " & imgConversionMode) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Converting image..." - currentTask.Text = "Converting specified image..." - Case "ESN" - allTasks.Text = "Convirtiendo imagen..." - currentTask.Text = "Convirtiendo imagen especificada" - Case "FRA" - allTasks.Text = "Conversion de l'image en cours..." - currentTask.Text = "Conversion de l'image spécifiée en cours..." - Case "PTB", "PTG" - allTasks.Text = "A converter imagem..." - currentTask.Text = "A converter a imagem especificada..." - Case "ITA" - allTasks.Text = "Conversione immagine..." - currentTask.Text = "Conversione immagine specificata..." - End Select - Case 1 - allTasks.Text = "Converting image..." - currentTask.Text = "Converting specified image..." - Case 2 - allTasks.Text = "Convirtiendo imagen..." - currentTask.Text = "Convirtiendo imagen especificada" - Case 3 - allTasks.Text = "Conversion de l'image en cours..." - currentTask.Text = "Conversion de l'image spécifiée en cours..." - Case 4 - allTasks.Text = "A converter imagem..." - currentTask.Text = "A converter a imagem especificada..." - Case 5 - allTasks.Text = "Conversione immagine..." - currentTask.Text = "Conversione dell'immagine specificata..." - End Select - LogView.AppendText(CrLf & "Converting image..." & CrLf & - "Options:" & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.ConvertImage")("ConvertingImage.Button") + currentTask.Text = LocalizationService.ForSection("Progress.ConvertImage")("Converting.Image.Button") + LogView.AppendText(CrLf & ProgressLogText("Converting.Image") & CrLf & + ProgressLogText("Options") & CrLf) ' Gather options - LogView.AppendText("- Source image file: " & imgSrcFile & CrLf & - "- Index to convert: " & imgConversionIndex & CrLf & - "- Destination image file: " & imgDestFile & CrLf) + LogView.AppendText(ProgressLogText("Source.Image.File") & imgSrcFile & CrLf & + ProgressLogText("Index.To.Convert") & imgConversionIndex & CrLf & + ProgressLogText("Destination.Image.File") & imgDestFile & CrLf) If imgConversionMode = 0 Then - LogView.AppendText("- Image conversion mode: Windows Imaging (WIM) --> Electronic Software Distribution (ESD)") + LogView.AppendText(ProgressLogText("Image.Conversion.Mode.Windows.Imaging.WIM.Electronic.Software")) ElseIf imgConversionMode = 1 Then - LogView.AppendText("- Image conversion mode: Electronic Software Distribution (ESD) --> Windows Imaging (WIM)") + LogView.AppendText(ProgressLogText("Image.Conversion.Mode.Electronic.Software.Distribution.ESD.Windows")) End If ' Run commands @@ -7016,37 +4442,13 @@ Public Class ProgressPanel CommandArgs &= " /compress:max" End If RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta del livello di errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.ConvertImage")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -7055,47 +4457,14 @@ Public Class ProgressPanel DynaLog.LogMessage("- Source image file: " & Quote & imgSwmSource & Quote) DynaLog.LogMessage("- Source image index: " & imgMergerIndex) DynaLog.LogMessage("- Destination image file: " & Quote & imgWimDestination & Quote) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Merging SWM files..." - currentTask.Text = "Merging SWM files into a WIM file..." - Case "ESN" - allTasks.Text = "Combinando archivos SWM..." - currentTask.Text = "Combinando archivos SWM en un archivo WIM..." - Case "FRA" - allTasks.Text = "Fusion des fichiers SWM en cours..." - currentTask.Text = "Fusion des fichiers SWM dans un fichier WIM en cours..." - Case "PTB", "PTG" - allTasks.Text = "Combinando ficheiros SWM..." - currentTask.Text = "Combinar ficheiros SWM num ficheiro WIM..." - Case "ITA" - allTasks.Text = "Unione file SWM..." - currentTask.Text = "Unione file SWM in un file WIM..." - End Select - Case 1 - allTasks.Text = "Merging SWM files..." - currentTask.Text = "Merging SWM files into a WIM file..." - Case 2 - allTasks.Text = "Combinando archivos SWM..." - currentTask.Text = "Combinando archivos SWM en un archivo WIM..." - Case 3 - allTasks.Text = "Fusion des fichiers SWM en cours..." - currentTask.Text = "Fusion des fichiers SWM dans un fichier WIM en cours..." - Case 4 - allTasks.Text = "Combinando ficheiros SWM..." - currentTask.Text = "Combinar ficheiros SWM num ficheiro WIM..." - Case 5 - allTasks.Text = "Unione dei file SWM..." - currentTask.Text = "Unione dei file SWM in un file WIM..." - End Select - LogView.AppendText(CrLf & "Merging SWM files into a WIM file..." & CrLf & - "Options:" & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.MergeSWM")("MergingSwmfiles.Button") + currentTask.Text = LocalizationService.ForSection("Progress.MergeSWM")("Merging.Swmfiles.WIM.Button") + LogView.AppendText(CrLf & ProgressLogText("Merging.SWM.Files.Into.A.WIM.File") & CrLf & + ProgressLogText("Options") & CrLf) ' Gather options - LogView.AppendText("- Source image file: " & imgSwmSource & CrLf & - "- Target index: " & imgMergerIndex & CrLf & - "- Destination image file: " & imgWimDestination & CrLf) + LogView.AppendText(ProgressLogText("Source.Image.File") & imgSwmSource & CrLf & + ProgressLogText("Target.Index") & imgMergerIndex & CrLf & + ProgressLogText("Destination.Image.File") & imgWimDestination & CrLf) ' Run commands Select Case DismVersionChecker.ProductMajorPart @@ -7110,37 +4479,13 @@ Public Class ProgressPanel CommandArgs = "/logpath=" & Quote & Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now) & Quote & " /english /export-image /sourceimagefile=" & Quote & imgSwmSource & Quote & " /swmfile=" & Quote & Path.GetDirectoryName(imgSwmSource) & "\" & Path.GetFileNameWithoutExtension(imgSwmSource) & "*.swm" & Quote & " /sourceindex=" & imgMergerIndex & " /destinationimagefile=" & Quote & imgWimDestination & Quote & " /compress=max /checkintegrity" End Select RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.MergeSWM")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -7149,51 +4494,18 @@ Public Class ProgressPanel DynaLog.LogMessage("- Source image file: " & Quote & SwitchSourceImg & Quote) DynaLog.LogMessage("- Source image index: " & SwitchSourceIndex) DynaLog.LogMessage("- Target image index: " & SwitchTargetIndex) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - allTasks.Text = "Switching image indexes..." - currentTask.Text = "Unmounting source index..." - Case "ESN" - allTasks.Text = "Cambiando índices de imagen..." - currentTask.Text = "Desmontando índice de origen..." - Case "FRA" - allTasks.Text = "Changement d'index de l'image en cours..." - currentTask.Text = "Démontage de l'index original en cours..." - Case "PTB", "PTG" - allTasks.Text = "Alternar índices de imagem..." - currentTask.Text = "Desmontar índice de origem..." - Case "ITA" - allTasks.Text = "Modifica indici immagine..." - currentTask.Text = "Smontaggio indice sorgente..." - End Select - Case 1 - allTasks.Text = "Switching image indexes..." - currentTask.Text = "Unmounting source index..." - Case 2 - allTasks.Text = "Cambiando índices de imagen..." - currentTask.Text = "Desmontando índice de origen..." - Case 3 - allTasks.Text = "Changement d'index de l'image en cours..." - currentTask.Text = "Démontage de l'index original en cours..." - Case 4 - allTasks.Text = "Alternar índices de imagem..." - currentTask.Text = "Desmontar índice de origem..." - Case 5 - allTasks.Text = "Modifica indici immagine..." - currentTask.Text = "Smontaggio indice sorgente..." - End Select - LogView.AppendText(CrLf & "Switching image indexes..." & CrLf & - "Options:" & CrLf) + allTasks.Text = LocalizationService.ForSection("Progress.SwitchIndexes")("Switching.Image.Button") + currentTask.Text = LocalizationService.ForSection("Progress.SwitchIndexes")("Unmounting.Source.Button") + LogView.AppendText(CrLf & ProgressLogText("Switching.Image.Indexes") & CrLf & + ProgressLogText("Options") & CrLf) ' Gather options - LogView.AppendText("- Target mount directory: " & SwitchTarget & CrLf & - "- Source image index: " & SwitchSourceIndex & CrLf & - "- Target image index: " & SwitchTargetIndex & " (" & SwitchTargetIndexName & ")") + LogView.AppendText(ProgressLogText("Target.Mount.Directory") & SwitchTarget & CrLf & + ProgressLogText("Source.Image.Index") & SwitchSourceIndex & CrLf & + ProgressLogText("Target.Image.Index") & SwitchTargetIndex & " (" & SwitchTargetIndexName & ")") If SwitchCommitSourceIndex Then - LogView.AppendText(CrLf & "- Commit source index? Yes") + LogView.AppendText(CrLf & ProgressLogText("Commit.Source.Index.Yes")) Else - LogView.AppendText(CrLf & "- Commit source index? No") + LogView.AppendText(CrLf & ProgressLogText("Commit.Source.Index.No")) End If DynaLog.LogMessage("Unmounting source image whilst saving changes...") ' Run commands @@ -7214,66 +4526,18 @@ Public Class ProgressPanel CommandArgs &= " /discard" End If RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta del livello di errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.SwitchIndexes")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If If Decimal.ToInt32(DismExitCode) <> 0 Then DynaLog.LogMessage("Could not save changes to the image. Unmounting image whilst discarding changes...") - LogView.AppendText(CrLf & CrLf & "Could not commit changes to the image. Discarding changes...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Unmounting source index..." - Case "ESN" - currentTask.Text = "Desmontando índice de origen..." - Case "FRA" - currentTask.Text = "Démontage de l'index original en cours..." - Case "PTB", "PTG" - currentTask.Text = "Desmontar índice de origem..." - Case "ITA" - currentTask.Text = "Smontaggio indice sorgente..." - End Select - Case 1 - currentTask.Text = "Unmounting source index..." - Case 2 - currentTask.Text = "Desmontando índice de origen..." - Case 3 - currentTask.Text = "Démontage de l'index original en cours..." - Case 4 - currentTask.Text = "Desmontar índice de origem..." - Case 5 - currentTask.Text = "Smontaggio indice sorgente..." - End Select + LogView.AppendText(CrLf & CrLf & ProgressLogText("Could.Not.Commit.Changes.To.The.Image.Discarding")) + currentTask.Text = LocalizationService.ForSection("Progress.SwitchIndexes")("Unmounting.Source.Index.Item") Select Case DismVersionChecker.ProductMajorPart Case 6 Select Case DismVersionChecker.ProductMinorPart @@ -7286,37 +4550,13 @@ Public Class ProgressPanel CommandArgs = "/logpath=" & Quote & Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now) & Quote & " /english /unmount-image /mountdir=" & Quote & SwitchTarget & Quote & " /discard" End Select RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.SwitchIndexes")("CurrentTask.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If If Decimal.ToInt32(DismExitCode) <> 0 Then DynaLog.LogMessage("Could not unmount the image.") @@ -7326,42 +4566,9 @@ Public Class ProgressPanel AllPB.Value = AllPB.Maximum / taskCount currentTCont += 1 DynaLog.LogMessage("Mounting Windows image...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - currentTask.Text = "Mounting target index..." - Case "ESN" - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - currentTask.Text = "Montando índice de destino..." - Case "FRA" - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - currentTask.Text = "Montage de l'index de ciblage en cours..." - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - currentTask.Text = "A montar o índice de destino..." - Case "ITA" - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - currentTask.Text = "Montaggio indice destinazione..." - End Select - Case 1 - taskCountLbl.Text = "Tasks: " & currentTCont & "/" & taskCount - currentTask.Text = "Mounting target index..." - Case 2 - taskCountLbl.Text = "Tareas: " & currentTCont & "/" & taskCount - currentTask.Text = "Montando índice de destino..." - Case 3 - taskCountLbl.Text = "Tâches : " & currentTCont & "/" & taskCount - currentTask.Text = "Montage de l'index de ciblage en cours..." - Case 4 - taskCountLbl.Text = "Tarefas: " & currentTCont & "/" & taskCount - currentTask.Text = "A montar o índice de destino..." - Case 5 - taskCountLbl.Text = "Attività: " & currentTCont & "/" & TaskList.Count - currentTask.Text = "Montaggio indice destinazione..." - End Select - LogView.AppendText(CrLf & "Mounting image (index: " & SwitchTargetIndex & ")...") + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("Tasks.Label", currentTCont, taskCount) + currentTask.Text = LocalizationService.ForSection("Progress.SwitchIndexes")("Mounting.Target.Index.Item") + LogView.AppendText(CrLf & ProgressLogText("Mounting.Image.Index") & SwitchTargetIndex & ")...") Select Case DismVersionChecker.ProductMajorPart Case 6 Select Case DismVersionChecker.ProductMinorPart @@ -7377,37 +4584,13 @@ Public Class ProgressPanel CommandArgs &= " /readonly" End If RunProcess(DismProgram, CommandArgs) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - currentTask.Text = "Gathering error level..." - Case "ESN" - currentTask.Text = "Recopilando nivel de error..." - Case "FRA" - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case "PTB", "PTG" - currentTask.Text = "A recolher o nível de erro..." - Case "ITA" - currentTask.Text = "Raccolta livello errore..." - End Select - Case 1 - currentTask.Text = "Gathering error level..." - Case 2 - currentTask.Text = "Recopilando nivel de error..." - Case 3 - currentTask.Text = "Recueil du niveau d'erreur en cours..." - Case 4 - currentTask.Text = "A recolher o nível de erro..." - Case 5 - currentTask.Text = "Raccolta livello errore..." - End Select - LogView.AppendText(CrLf & "Gathering error level...") + currentTask.Text = LocalizationService.ForSection("Progress.SwitchIndexes")("Gathering.Error.Level.Item") + LogView.AppendText(CrLf & ProgressLogText("Gathering.Error.Level")) GetErrorCode(False) If errCode.Length >= 8 Then - LogView.AppendText(CrLf & CrLf & " Error level : 0x" & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level.0x") & errCode) Else - LogView.AppendText(CrLf & CrLf & " Error level : " & errCode) + LogView.AppendText(CrLf & CrLf & ProgressLogText("Error.Level") & errCode) End If End Sub @@ -7415,19 +4598,19 @@ Public Class ProgressPanel DynaLog.LogMessage("Preparing to replace FFU files...") DynaLog.LogMessage("- Source file: " & Quote & FFUReplaceSourceFFU & Quote) DynaLog.LogMessage("- Destination file: " & Quote & FFUReplaceDestinationFFU & Quote) - allTasks.Text = "Replacing FFU files..." - currentTask.Text = "Replacing original FFU file with modified FFU file..." - LogView.AppendText(CrLf & "Replacing FFU file " & Quote & FFUReplaceDestinationFFU & Quote & " with " & Quote & FFUReplaceSourceFFU & Quote & "...") + allTasks.Text = LocalizationService.ForSection("Progress.Operation")("Replacing.FFU.Files.Label") + currentTask.Text = LocalizationService.ForSection("Progress.Operation")("Replacing.Original.FFU.Label") + LogView.AppendText(CrLf & ProgressLogText("Replacing.FFU.File") & Quote & FFUReplaceDestinationFFU & Quote & ProgressLogText("With") & Quote & FFUReplaceSourceFFU & Quote & "...") Try If Not File.Exists(FFUReplaceSourceFFU) Or Not File.Exists(FFUReplaceDestinationFFU) Then Throw New Exception("One or both FFU files do not exist.") File.Delete(FFUReplaceDestinationFFU) File.Move(FFUReplaceSourceFFU, FFUReplaceDestinationFFU) IsSuccessful = True - LogView.AppendText(CrLf & "The FFU file has been successfully replaced.") + LogView.AppendText(CrLf & ProgressLogText("The.FFU.File.Has.Been.Successfully.Replaced")) Catch ex As Exception DynaLog.LogMessage("FFU files could not be replaced. Error message: " & ex.Message) IsSuccessful = False - LogView.AppendText(CrLf & "The FFU file could not be replaced: " & ex.Message) + LogView.AppendText(CrLf & ProgressLogText("The.FFU.File.Could.Not.Be.Replaced") & ex.Message) End Try End Sub @@ -7481,7 +4664,7 @@ Public Class ProgressPanel Catch ex As Exception DynaLog.LogMessage("Could not create log file. Error message: " & ex.Message) LogView.AppendText(CrLf & - "Warning: the contents of the log window could not be saved to the log file. Reason: " & ex.Message) + ProgressLogText("Warning.The.Contents.Of.The.Log.Window.Could") & ex.Message) Exit Sub End Try End If @@ -7525,7 +4708,7 @@ Public Class ProgressPanel Catch ex As Exception DynaLog.LogMessage("Could not create log file. Error message: " & ex.Message) LogView.AppendText(CrLf & - "Warning: the contents of the log window could not be saved to the log file. Reason: " & ex.Message) + ProgressLogText("Warning.The.Contents.Of.The.Log.Window.Could") & ex.Message) Exit Sub End Try End If @@ -7545,8 +4728,8 @@ Public Class ProgressPanel If IsSuccessful Then DynaLog.LogMessage("Tasks have been successful.") If OperationNum = 9 Then LogView.AppendText(CrLf & - "The volume images have been deleted. If you want to remount this image into a DISMTools project, choose the " & Quote & "Mount image" & Quote & " option, or use this command if you want to mount it elsewhere:" & CrLf & - " dism /mount-image /imagefile:" & Quote & imgIndexDeletionSourceImg & Quote & " /index: /mountdir:") + ProgressLogText("The.Volume.Images.Have.Been.Deleted.If.You") & Quote & ProgressLogText("Mount.Image") & Quote & ProgressLogText("Option.Or.Use.This.Command.If.You.Want") & CrLf & + ProgressLogText("DISM.Mount.Image.Imagefile") & Quote & imgIndexDeletionSourceImg & Quote & ProgressLogText("Index.Preferred.Index.Mountdir.Preferred.Mountpoint")) DynaLog.LogMessage("Saving operation logs...") SaveLog(Application.StartupPath & "\logs\DISMTools.log") SaveDismOutput(Application.StartupPath & "\logs\DISM_Output_" & Date.Now.ToString("yy-MM-dd-HH-mm-ss") & ".log") @@ -7767,31 +4950,7 @@ Public Class ProgressPanel ' This is a crucial change, so save things immediately MainForm.SaveDTProj() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MainForm.MenuDesc.Text = "Ready" - Case "ESN" - MainForm.MenuDesc.Text = "Listo" - Case "FRA" - MainForm.MenuDesc.Text = "Prêt" - Case "PTB", "PTG" - MainForm.MenuDesc.Text = "Pronto" - Case "ITA" - MainForm.MenuDesc.Text = "Pronto" - End Select - Case 1 - MainForm.MenuDesc.Text = "Ready" - Case 2 - MainForm.MenuDesc.Text = "Listo" - Case 3 - MainForm.MenuDesc.Text = "Prêt" - Case 4 - MainForm.MenuDesc.Text = "Pronto" - Case 5 - MainForm.MenuDesc.Text = "Pronto" - End Select + MainForm.MenuDesc.Text = LocalizationService.ForSection("Progress.Background")("Ready.Label") TaskList.Clear() MainForm.StatusStrip.BackColor = CurrentTheme.AccentColors(1) MainForm.StartMountedImageDetector() @@ -7799,139 +4958,83 @@ Public Class ProgressPanel Else DynaLog.LogMessage("Tasks have not been successful.") Cancel_Button.Visible = True - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Could not perform image operations" - Label2.Text = "An error has occurred, which stopped the image operations. Please read the log below for more information." - Case "ESN" - Label1.Text = "No se pudieron realizar las operaciones" - Label2.Text = "Ha ocurrido un error, el cual detuvo las operaciones. Lea el registro debajo para más información." - Case "FRA" - Label1.Text = "Impossible d'effectuer des opérations de l'image" - Label2.Text = "Une erreur s'est produite, qui a interrompu les opérations sur l'image. Veuillez lire le journal ci-dessous pour plus d'informations." - Case "PTB", "PTG" - Label1.Text = "Não foi possível efetuar operações de imagem" - Label2.Text = "Ocorreu um erro que interrompeu as operações de imagem. Leia o registo abaixo para obter mais informações." - Case "ITA" - Label1.Text = "Non è stato possibile eseguire operazioni sull'immagine" - Label2.Text = "Si è verificato un errore che ha interrotto le operazioni sull'immagine. Per ulteriori informazioni, consulta il registro sottostante." - End Select - Case 1 - Label1.Text = "Could not perform image operations" - Label2.Text = "An error has occurred, which stopped the image operations. Please read the log below for more information." - Case 2 - Label1.Text = "No se pudieron realizar las operaciones" - Label2.Text = "Ha ocurrido un error, el cual detuvo las operaciones. Lea el registro debajo para más información." - Case 3 - Label1.Text = "Impossible d'effectuer des opérations de l'image" - Label2.Text = "Une erreur s'est produite, qui a interrompu les opérations sur l'image. Veuillez lire le journal ci-dessous pour plus d'informations." - Case 4 - Label1.Text = "Não foi possível efetuar operações de imagem" - Label2.Text = "Ocorreu um erro que interrompeu as operações de imagem. Leia o registo abaixo para obter mais informações." - Case 5 - Label1.Text = "Non è stato possibile eseguire operazioni sull'immagine" - Label2.Text = "Si è verificato un errore che ha interrotto le operazioni sull'immagine. Per ulteriori informazioni, consulta il registro sottostante." - End Select + Label1.Text = LocalizationService.ForSection("Progress.Background")("Perform.Image.Label") + Label2.Text = LocalizationService.ForSection("Progress.Background")("Error.Has.Message") CurrentPB.Value = CurrentPB.Maximum AllPB.Value = AllPB.Maximum If Not IsExpanded Then LogButton.PerformClick() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Cancel_Button.Text = "OK" - Case "ESN" - Cancel_Button.Text = "Aceptar" - Case "FRA" - Cancel_Button.Text = "OK" - Case "PTB", "PTG" - Cancel_Button.Text = "OK" - Case "ITA" - Cancel_Button.Text = "OK" - End Select - Case 1 - Cancel_Button.Text = "OK" - Case 2 - Cancel_Button.Text = "Aceptar" - Case 3 - Cancel_Button.Text = "OK" - Case 4 - Cancel_Button.Text = "OK" - Case 5 - Cancel_Button.Text = "OK" - End Select + CancelButtonClosesDialog = True + Cancel_Button.Text = LocalizationService.ForSection("Progress.Background")("Ok.Button") LinkLabel1.Visible = True ' Add details for error codes DynaLog.LogMessage("Error code: " & errCode) If errCode = "C1420126" Then ' An image that was selected for mounting is already mounted - LogView.AppendText(CrLf & "The specified image is already mounted. This command works for " & Quote & "orphaned" & Quote & " images") + LogView.AppendText(CrLf & ProgressLogText("The.Specified.Image.Is.Already.Mounted.This.Command") & Quote & ProgressLogText("Orphaned") & Quote & ProgressLogText("Images")) ElseIf errCode = "C142010C" Then ' The image, with read-only permissions, was attempted to be written - LogView.AppendText(CrLf & "The program tried to save changes to an image that was mounted as read-only. " & CrLf & - "To solve this, close this dialog, and click " & Quote & "Tools > Remount image with write permissions" & Quote & CrLf & - "Do note that, if the image came from an installation medium, you may need to copy the source file to perform modifications to it.") + LogView.AppendText(CrLf & ProgressLogText("The.Program.Tried.To.Save.Changes.To.An") & CrLf & + ProgressLogText("To.Solve.This.Close.This.Dialog.And.Click") & Quote & ProgressLogText("Tools.Remount.Image.With.Write.Permissions") & Quote & CrLf & + ProgressLogText("Do.Note.That.If.The.Image.Came.From")) ElseIf errCode = "C1420117" Then ' Some applications (or hidden processes) have open handles on the mount dir - LogView.AppendText(CrLf & "The program tried to unmount the image, but some applications or processes have opened files or directories of the image." & CrLf & - "Make sure no application or process is using the directories or files of the image." & CrLf & - "If the error occurred at the end of the operation (e.g., at 100%), and you were trying to save the changes; they might already be saved, and can be safe to continue discarding changes.") + LogView.AppendText(CrLf & ProgressLogText("The.Program.Tried.To.Unmount.The.Image.But") & CrLf & + ProgressLogText("Make.Sure.No.Application.Or.Process.Is.Using") & CrLf & + ProgressLogText("If.The.Error.Occurred.At.The.End.Of")) ElseIf errCode = "C142011D" Then ' A partial unmount or an in-progress mount operation happened - LogView.AppendText(CrLf & "The mounted image cannot be committed back into the source file." & CrLf & - "A partial unmount might have happened, or the image was still being mounted." & CrLf & - "If the image was unmounted whilst saving changes, the commit probably succeeded. Please validate this. If this is the case, proceed with unmounting the image discarding changes.") + LogView.AppendText(CrLf & ProgressLogText("The.Mounted.Image.Cannot.Be.Committed.Back.Into") & CrLf & + ProgressLogText("A.Partial.Unmount.Might.Have.Happened.Or.The") & CrLf & + ProgressLogText("If.The.Image.Was.Unmounted.Whilst.Saving.Changes")) ElseIf errCode = "C1510111" Then ' The specified image, that was marked to mount with read-write permissions, came from a read-only source (e.g., a Windows installation disc) - LogView.AppendText(CrLf & "The source file comes from a read-only source. You cannot mount it with read-write permissions." & CrLf & - "Please re-specify the image in the mount dialog whilst checking the " & Quote & "Read-only" & Quote & " check box. You can also try copying the source image to a folder with read-write permissions.") + LogView.AppendText(CrLf & ProgressLogText("The.Source.File.Comes.From.A.Read.Only") & CrLf & + ProgressLogText("Please.Re.Specify.The.Image.In.The.Mount") & Quote & ProgressLogText("Read.Only") & Quote & ProgressLogText("Check.Box.You.Can.Also.Try.Copying.The")) ElseIf errCode = "00000087" Then ' Internal errors - LogView.AppendText(CrLf & "There is essential data that was not picked internally by the operation. This may be a bug in the software or a feature may be incomplete.") + LogView.AppendText(CrLf & ProgressLogText("There.Is.Essential.Data.That.Was.Not.Picked")) ElseIf OperationNum = 26 Then ' No packages have been added successfully - LogView.AppendText(CrLf & "No packages have been added successfully. Try looking up the error codes on the Internet") + LogView.AppendText(CrLf & ProgressLogText("No.Packages.Have.Been.Added.Successfully.Try.Looking")) ElseIf OperationNum = 27 Then ' No packages have been removed successfully - LogView.AppendText(CrLf & "No packages have been removed successfully. Try looking up the error codes on the Internet") + LogView.AppendText(CrLf & ProgressLogText("No.Packages.Have.Been.Removed.Successfully.Try.Looking")) ElseIf OperationNum = 30 Then ' No features have been enabled successfully - LogView.AppendText(CrLf & "No features have been enabled successfully. Try looking up the error codes on the Internet") + LogView.AppendText(CrLf & ProgressLogText("No.Features.Have.Been.Enabled.Successfully.Try.Looking")) ElseIf OperationNum = 31 Then ' No features have been disabled successfully - LogView.AppendText(CrLf & "No features have been disabled successfully. Try looking up the error codes on the Internet") + LogView.AppendText(CrLf & ProgressLogText("No.Features.Have.Been.Disabled.Successfully.Try.Looking")) ElseIf OperationNum = 78 Then ' Cause is undetermined - LogView.AppendText(CrLf & "Either this operation has failed or some drivers were not installed. Consider reloading this project or mode to see whether there are driver changes." & CrLf & CrLf & - "If there are driver changes, consider reading the driver installation logs, stored in the INF directory of the target image. Otherwise, export the drivers you want to add from the source image and add them to the target image manually." & CrLf & CrLf & - "You can also manually customize the export directory by deleting the drivers you don't need. This may be another way to fix this problem, but you will need to temporarily pause the driver addition procedure before it scans the export directory (this can be done by selecting anything from the DISM command prompt window that appears when performing an operation)") + LogView.AppendText(CrLf & ProgressLogText("Either.This.Operation.Has.Failed.Or.Some.Drivers") & CrLf & CrLf & + ProgressLogText("If.There.Are.Driver.Changes.Consider.Reading.The") & CrLf & CrLf & + ProgressLogText("You.Can.Also.Manually.Customize.The.Export.Directory")) ElseIf errCode = "00000001" Then ElseIf errCode = "C000013A" Then ' Keyboard interrupt (Ctrl-C) or forced program closure. The former may not trigger this error, as it may trigger error 1223 - LogView.AppendText(CrLf & "The program has suffered a keyboard interrupt, or a forced program closure. The operation has been cancelled. If you have done it accidentally, you may run it again") + LogView.AppendText(CrLf & ProgressLogText("The.Program.Has.Suffered.A.Keyboard.Interrupt.Or")) ElseIf errCode = "C2FE0101" Then ' This happens on operation numbers 90, 91, and 92; related to Microsoft Edge servicing, if the components have already been installed. ' Since these operation numbers are meant for different things, detect them If OperationNum = 90 Then - LogView.AppendText(CrLf & "The Microsoft Edge components have already been installed in this image. There isn't anything to do here.") + LogView.AppendText(CrLf & ProgressLogText("The.Microsoft.Edge.Components.Have.Already.Been.Installed")) ElseIf OperationNum = 91 Then - LogView.AppendText(CrLf & "The Microsoft Edge browser has already been installed in this image. There isn't anything to do here.") + LogView.AppendText(CrLf & ProgressLogText("The.Microsoft.Edge.Browser.Has.Already.Been.Installed")) ElseIf OperationNum = 92 Then - LogView.AppendText(CrLf & "The Microsoft Edge WebView2 component has already been installed in this image. There isn't anything to do here.") + LogView.AppendText(CrLf & ProgressLogText("The.Microsoft.Edge.WebView2.Component.Has.Already.Been")) End If ElseIf errCode = "800F0806" Then ' There are pending image operations - LogView.AppendText(CrLf & "The operation could not be performed because this image has pending online operations. Applying and booting up the image might fix this issue.") + LogView.AppendText(CrLf & ProgressLogText("The.Operation.Could.Not.Be.Performed.Because.This")) ElseIf errCode = "BC2" Then DynaLog.LogMessage("The task has succeded but requires a restart...") If OperationNum = 86 Then DynaLog.LogMessage("Rollback initiated. Restarting system automatically in 10 seconds...") - LogView.AppendText(CrLf & "The rollback process has started. Your system needs to be restarted in order to continue. It will restart automatically in 10 seconds. Make sure you have saved your work.") + LogView.AppendText(CrLf & ProgressLogText("The.Rollback.Process.Has.Started.Your.System.Needs")) Dim restartProc As New Process() restartProc.StartInfo.FileName = Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\system32\shutdown.exe" restartProc.StartInfo.Arguments = "/r /t 10 /c " & Quote & "Shutdown initiated by DISMTools" & Quote @@ -7939,7 +5042,7 @@ Public Class ProgressPanel restartProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden restartProc.Start() Else - LogView.AppendText(CrLf & "The specified operation completed successfully, but requires a restart in order to be fully applied. Save your work and restart when ready") + LogView.AppendText(CrLf & ProgressLogText("The.Specified.Operation.Completed.Successfully.But.Requires.A")) End If Else Try @@ -7947,35 +5050,11 @@ Public Class ProgressPanel LogView.AppendText(CrLf & CrLf & exitDesc.Message) Catch ex As Exception ' Errors that weren't added to the database - LogView.AppendText(CrLf & "This error has not yet been added to the database, so a useful description can't be shown now. Try running the command manually and, if you see the same error, try looking it up on the Internet.") + LogView.AppendText(CrLf & ProgressLogText("This.Error.Has.Not.Yet.Been.Added.To")) End Try End If - LogView.AppendText(CrLf & CrLf & "For detailed information, consider reading the DISM operation logs.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MainForm.MenuDesc.Text = "Ready" - Case "ESN" - MainForm.MenuDesc.Text = "Listo" - Case "FRA" - MainForm.MenuDesc.Text = "Prêt" - Case "PTB", "PTG" - MainForm.MenuDesc.Text = "Pronto" - Case "ITA" - MainForm.MenuDesc.Text = "Pronto" - End Select - Case 1 - MainForm.MenuDesc.Text = "Ready" - Case 2 - MainForm.MenuDesc.Text = "Listo" - Case 3 - MainForm.MenuDesc.Text = "Prêt" - Case 4 - MainForm.MenuDesc.Text = "Pronto" - Case 5 - MainForm.MenuDesc.Text = "Pronto" - End Select + LogView.AppendText(CrLf & CrLf & ProgressLogText("For.Detailed.Information.Consider.Reading.The.DISM.Operation")) + MainForm.MenuDesc.Text = LocalizationService.ForSection("Progress.Background")("Ready.Item") MainForm.StatusStrip.BackColor = CurrentTheme.AccentColors(1) SaveLog(Application.StartupPath & "\logs\DISMTools.log") SaveDismOutput(Application.StartupPath & "\logs\DISM_Output_" & Date.Now.ToString("yy-MM-dd-HH-mm-ss") & ".log") @@ -7999,101 +5078,15 @@ Public Class ProgressPanel Private Sub ProgressPanel_Load(sender As Object, e As EventArgs) Handles MyBase.Load EnableExperiments = MainForm.EnableExperiments DynaLog.LogMessage("Preparing to start image operations...") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Progress" - Label1.Text = "Image operations in progress..." - Label2.Text = "Please wait while the following tasks are done. This may take some time." - Cancel_Button.Text = "Cancel" - LogButton.Text = If(Not IsExpanded, "Show log", "Hide log") - LinkLabel1.Text = "Show DISM log file (advanced)" - allTasks.Text = "Please wait..." - currentTask.Text = "Please wait..." - Case "ESN" - Text = "Progreso" - Label1.Text = "Operaciones en progreso..." - Label2.Text = "Espere mientras las siguientes tareas se realizan. Esto puede llevar algo de tiempo." - Cancel_Button.Text = "Cancelar" - LogButton.Text = If(Not IsExpanded, "Mostrar registro", "Ocultar registro") - LinkLabel1.Text = "Mostrar archivo de registro de DISM (avanzado)" - allTasks.Text = "Por favor, espere..." - currentTask.Text = "Por favor, espere..." - Case "FRA" - Text = "Avancement" - Label1.Text = "Opérations de l'image en cours..." - Label2.Text = "Veuillez patienter pendant que les tâches suivantes sont effectuées. Cela peut prendre un certain temps." - Cancel_Button.Text = "Annuler" - LogButton.Text = If(Not IsExpanded, "Afficher le journal", "Cacher le journal") - LinkLabel1.Text = "Afficher le fichier journal DISM (avancé)" - allTasks.Text = "Veuillez patienter..." - currentTask.Text = "Veuillez patienter..." - Case "PTB", "PTG" - Text = "Progresso" - Label1.Text = "Operações de imagem em curso..." - Label2.Text = "Aguarde enquanto as seguintes tarefas são efectuadas. Isto pode demorar algum tempo" - Cancel_Button.Text = "Cancelar" - LogButton.Text = If(Not IsExpanded, " Mostrar registo", "Ocultar registo") - LinkLabel1.Text = "Mostrar ficheiro de registo DISM (avançado)" - allTasks.Text = "Aguarde..." - currentTask.Text = "Por favor, aguarde..." - Case "ITA" - Text = "Progresso" - Label1.Text = "Operazioni immagine..." - Label2.Text = "Attendi mentre vengono eseguite le operazioni. L'operazione potrebbe richiedere del tempo" - Cancel_Button.Text = "Annulla" - LogButton.Text = If(Not IsExpanded, " Visualizza registro", "Nascondi registro") - LinkLabel1.Text = "Visualizza il file registro DISM (avanzato)" - allTasks.Text = "Attendi..." - currentTask.Text = "Attendi..." - End Select - Case 1 - Text = "Progress" - Label1.Text = "Image operations in progress..." - Label2.Text = "Please wait while the following tasks are done. This may take some time." - Cancel_Button.Text = "Cancel" - LogButton.Text = If(Not IsExpanded, "Show log", "Hide log") - LinkLabel1.Text = "Show DISM log file (advanced)" - allTasks.Text = "Please wait..." - currentTask.Text = "Please wait..." - Case 2 - Text = "Progreso" - Label1.Text = "Operaciones en progreso..." - Label2.Text = "Espere mientras las siguientes tareas se realizan. Esto puede llevar algo de tiempo." - Cancel_Button.Text = "Cancelar" - LogButton.Text = If(Not IsExpanded, "Mostrar registro", "Ocultar registro") - LinkLabel1.Text = "Mostrar archivo de registro de DISM (avanzado)" - allTasks.Text = "Por favor, espere..." - currentTask.Text = "Por favor, espere..." - Case 3 - Text = "Avancement" - Label1.Text = "Opérations de l'image en cours..." - Label2.Text = "Veuillez patienter pendant que les tâches suivantes sont effectuées. Cela peut prendre un certain temps." - Cancel_Button.Text = "Annuler" - LogButton.Text = If(Not IsExpanded, "Afficher le journal", "Cacher le journal") - LinkLabel1.Text = "Afficher le fichier journal DISM (avancé)" - allTasks.Text = "Veuillez patienter..." - currentTask.Text = "Veuillez patienter..." - Case 4 - Text = "Progresso" - Label1.Text = "Operações de imagem em curso..." - Label2.Text = "Aguarde enquanto as seguintes tarefas são efectuadas. Isto pode demorar algum tempo" - Cancel_Button.Text = "Cancelar" - LogButton.Text = If(Not IsExpanded, " Mostrar registo", "Ocultar registo") - LinkLabel1.Text = "Mostrar ficheiro de registo DISM (avançado)" - allTasks.Text = "Aguarde..." - currentTask.Text = "Por favor, aguarde..." - Case 5 - Text = "Progresso" - Label1.Text = "Operazioni immagine..." - Label2.Text = "Attendi mentre vengono eseguite le operazioni. L'operazione potrebbe richiedere del tempo" - Cancel_Button.Text = "Annulla" - LogButton.Text = If(Not IsExpanded, " Visualizza registro", "Nascondi registro") - LinkLabel1.Text = "Visualizza il file registro DISM (avanzato)" - allTasks.Text = "Attendi..." - currentTask.Text = "Attendi..." - End Select + Text = LocalizationService.ForSection("Progress")("Progress.Label") + Label1.Text = LocalizationService.ForSection("Progress")("Image.Operations.Label") + Label2.Text = LocalizationService.ForSection("Progress")("Wait.Tasks.Label") + CancelButtonClosesDialog = False + Cancel_Button.Text = LocalizationService.ForSection("Progress")("Cancel.Button") + LogButton.Text = If(Not IsExpanded, LocalizationService.ForSection("Progress")("ShowLog.Label"), LocalizationService.ForSection("Progress")("HideLog.Label")) + LinkLabel1.Text = LocalizationService.ForSection("Progress")("Show.Dismlog.File.Link") + allTasks.Text = LocalizationService.ForSection("Progress")("Wait.Label") + currentTask.Text = LocalizationService.ForSection("Progress")("CurrentTask.Label") PrepareAllReporters() If MainForm.ExpandedProgressPanel AndAlso Not IsExpanded Then LogButton.PerformClick() @@ -8108,7 +5101,6 @@ Public Class ProgressPanel MainForm.bwBackgroundProcessAction = 0 MainForm.bwGetImageInfo = True MainForm.bwGetAdvImgInfo = True - Language = MainForm.Language AllDrivers = MainForm.AllDrivers BodyPanel.BorderStyle = BorderStyle.None If MainForm.CurrentImage IsNot Nothing Then @@ -8143,7 +5135,7 @@ Public Class ProgressPanel ' Make form visible sooner. We may have to set more things up here, ' but we'll see Visible = True - LogView.AppendText("Cancelling background processes...") + LogView.AppendText(ProgressLogText("Cancelling.Background.Processes")) MainForm.ImgBW.CancelAsync() While MainForm.ImgBW.IsBusy Application.DoEvents() @@ -8179,31 +5171,7 @@ Public Class ProgressPanel LogView.Font = New Font("Consolas", 11.25) End Try DISM_LogView.Font = LogView.Font - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MainForm.MenuDesc.Text = "Performing image operations. Please wait..." - Case "ESN" - MainForm.MenuDesc.Text = "Realizando operaciones con la imagen. Espere..." - Case "FRA" - MainForm.MenuDesc.Text = "Exécution d'opérations sur les images en cours. Veuillez patienter..." - Case "PTB", "PTG" - MainForm.MenuDesc.Text = "Realização de operações de imagem. Por favor, aguarde..." - Case "ITA" - MainForm.MenuDesc.Text = "Esecuzione operazioni sulle immagini..." - End Select - Case 1 - MainForm.MenuDesc.Text = "Performing image operations. Please wait..." - Case 2 - MainForm.MenuDesc.Text = "Realizando operaciones con la imagen. Espere..." - Case 3 - MainForm.MenuDesc.Text = "Exécution d'opérations sur les images en cours. Veuillez patienter..." - Case 4 - MainForm.MenuDesc.Text = "Realização de operações de imagem. Por favor, aguarde..." - Case 5 - MainForm.MenuDesc.Text = "Esecuzione operazioni sulle immagini..." - End Select + MainForm.MenuDesc.Text = LocalizationService.ForSection("Progress")("Performing.Image.Ops.Button") MainForm.StatusStrip.BackColor = CurrentTheme.AccentColors(3) If Debugger.IsAttached Then IsDebugged = True @@ -8249,31 +5217,7 @@ Public Class ProgressPanel If TaskList.Count >= 2 Then DynaLog.LogMessage("More than 2 tasks will be made.") AllPB.Maximum = TaskList.Count * 100 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - taskCountLbl.Text = "Tasks: 1/" & TaskList.Count - Case "ESN" - taskCountLbl.Text = "Tareas: 1/" & TaskList.Count - Case "FRA" - taskCountLbl.Text = "Tâches : 1/" & TaskList.Count - Case "PTB", "PTG" - taskCountLbl.Text = "Tarefas: 1/" & TaskList.Count - Case "ITA" - taskCountLbl.Text = "Attività: 1/" & TaskList.Count - End Select - Case 1 - taskCountLbl.Text = "Tasks: 1/" & TaskList.Count - Case 2 - taskCountLbl.Text = "Tareas: 1/" & TaskList.Count - Case 3 - taskCountLbl.Text = "Tâches : 1/" & TaskList.Count - Case 4 - taskCountLbl.Text = "Tarefas: 1/" & TaskList.Count - Case 5 - taskCountLbl.Text = "Attività: 1/" & TaskList.Count - End Select + taskCountLbl.Text = LocalizationService.ForSection("Progress").Format("TaskCount.Label", TaskList.Count) OperationNum = 1000 Else DynaLog.LogMessage("Getting the tasks of the specified operation...") @@ -8286,7 +5230,7 @@ Public Class ProgressPanel RegistryControlPanel.Close() If RegistryControlPanel.Visible Then DynaLog.LogMessage("Second check determined the image registry control panel is still open. Cannot continue performing tasks until it's closed") - LogView.AppendText(CrLf & "The image registry hives need to be unloaded before continuing to perform the task.") + LogView.AppendText(CrLf & ProgressLogText("The.Image.Registry.Hives.Need.To.Be.Unloaded")) End If End If If Not RegistryControlPanel.Visible Then @@ -8312,10 +5256,10 @@ Public Class ProgressPanel Catch ex As Exception If Not File.Exists(SystemEditor) Then DynaLog.LogMessage("The system editor was not found on this system.") - LogView.AppendText(CrLf & "System editor was not found") + LogView.AppendText(CrLf & ProgressLogText("System.Editor.Was.Not.Found")) ElseIf Not File.Exists(Application.StartupPath & "\logs\" & dateStr) Or Not File.Exists(LogPath) Then DynaLog.LogMessage("The log file is not found on this system.") - LogView.AppendText(CrLf & "The log file was not found") + LogView.AppendText(CrLf & ProgressLogText("The.Log.File.Was.Not.Found")) End If End Try End Sub @@ -8325,31 +5269,7 @@ Public Class ProgressPanel End Sub Private Sub ProgressPanel_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MainForm.MenuDesc.Text = "Ready" - Case "ESN" - MainForm.MenuDesc.Text = "Listo" - Case "FRA" - MainForm.MenuDesc.Text = "Prêt" - Case "PTB", "PTG" - MainForm.MenuDesc.Text = "Pronto" - Case "ITA" - MainForm.MenuDesc.Text = "Pronto" - End Select - Case 1 - MainForm.MenuDesc.Text = "Ready" - Case 2 - MainForm.MenuDesc.Text = "Listo" - Case 3 - MainForm.MenuDesc.Text = "Prêt" - Case 4 - MainForm.MenuDesc.Text = "Pronto" - Case 5 - MainForm.MenuDesc.Text = "Pronto" - End Select + MainForm.MenuDesc.Text = LocalizationService.ForSection("Progress.Close")("Ready.Label") MainForm.StatusStrip.BackColor = CurrentTheme.AccentColors(1) MainForm.StartMountedImageDetector() End Sub @@ -8376,61 +5296,13 @@ Public Class ProgressPanel Private Sub LogSwitcherPic1_MouseHover(sender As Object, e As EventArgs) Handles LogSwitcherPic1.MouseHover Dim olcText As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - olcText = "Operation Logs" - Case "ESN" - olcText = "Registros de operación" - Case "FRA" - olcText = "Journal des opérations" - Case "PTB", "PTG" - olcText = "Registos de operações" - Case "ITA" - olcText = "Registri operazioni" - End Select - Case 1 - olcText = "Operation Logs" - Case 2 - olcText = "Registros de operación" - Case 3 - olcText = "Journal des opérations" - Case 4 - olcText = "Registos de operações" - Case 5 - olcText = "Registri operazioni" - End Select + olcText = LocalizationService.ForSection("Progress.Logs.Operation")("Label") WindowHelper.DisplayToolTip(sender, olcText) End Sub Private Sub LogSwitcherPic2_MouseHover(sender As Object, e As EventArgs) Handles LogSwitcherPic2.MouseHover Dim olcText As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - olcText = "DISM Output" - Case "ESN" - olcText = "Salida de DISM" - Case "FRA" - olcText = "Sortie DISM" - Case "PTB", "PTG" - olcText = "Saída DISM" - Case "ITA" - olcText = "Output DISM" - End Select - Case 1 - olcText = "DISM Output" - Case 2 - olcText = "Salida de DISM" - Case 3 - olcText = "Sortie DISM" - Case 4 - olcText = "Saída DISM" - Case 5 - olcText = "Uscita DISM" - End Select + olcText = LocalizationService.ForSection("Progress.Logs.DismOutput")("Label") WindowHelper.DisplayToolTip(sender, olcText) End Sub @@ -8439,4 +5311,4 @@ Public Class ProgressPanel WindowState = FormWindowState.Normal End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/DoWork/ProgressReporter.vb b/Panels/DoWork/ProgressReporter.vb index 283457d3b..59775efd5 100644 --- a/Panels/DoWork/ProgressReporter.vb +++ b/Panels/DoWork/ProgressReporter.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Module ProgressReporter @@ -12,7 +12,7 @@ Module ProgressReporter Private Sub InitializeForm() progressForm = New Form With { .StartPosition = FormStartPosition.CenterScreen, - .Text = "Progress", + .Text = LocalizationService.ForSection("ProgressReporter")("Progress.Label"), .Size = WindowHelper.ScaleSizeLogical(384, 72), .FormBorderStyle = FormBorderStyle.None, .MinimizeBox = False, diff --git a/Panels/Exceptions/ExceptionForm.Designer.vb b/Panels/Exceptions/ExceptionForm.Designer.vb index a06a03ac1..8391aec2f 100644 --- a/Panels/Exceptions/ExceptionForm.Designer.vb +++ b/Panels/Exceptions/ExceptionForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ExceptionForm Inherits System.Windows.Forms.Form @@ -46,9 +46,7 @@ Partial Class ExceptionForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(666, 57) Me.Label1.TabIndex = 0 - Me.Label1.Text = "We are sorry for the inconvenience, but DISMTools has run into an error that it c" & _ - "ouldn't handle and we need your help in order to continue." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Here is the error " & _ - "information if you need it:" + Me.Label1.Text = LocalizationService.ForSection("Designer.ExceptionForm")("Sorry.Inconvenience.Message") ' 'PictureBox1 ' @@ -82,7 +80,7 @@ Partial Class ExceptionForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(461, 32) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Please help us fix this issue" + Me.Label2.Text = LocalizationService.ForSection("Designer.ExceptionForm")("Help.Us.Fix.Label") ' 'Label3 ' @@ -93,9 +91,7 @@ Partial Class ExceptionForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(502, 42) Me.Label3.TabIndex = 0 - Me.Label3.Text = "In order to prevent this problem from happening again, we would like to know more" & _ - " about it by reporting an issue on the GitHub repository. You will need a GitHub" & _ - " account to report feedback." + Me.Label3.Text = LocalizationService.ForSection("Designer.ExceptionForm")("Problem.Prevention.Message") ' 'Issue_Btn ' @@ -105,7 +101,7 @@ Partial Class ExceptionForm Me.Issue_Btn.Name = "Issue_Btn" Me.Issue_Btn.Size = New System.Drawing.Size(197, 32) Me.Issue_Btn.TabIndex = 3 - Me.Issue_Btn.Text = "Report this issue" + Me.Issue_Btn.Text = LocalizationService.ForSection("Designer.ExceptionForm")("ReportIssue.Label") Me.Issue_Btn.UseVisualStyleBackColor = True ' 'Label5 @@ -117,7 +113,7 @@ Partial Class ExceptionForm Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(502, 65) Me.Label5.TabIndex = 0 - Me.Label5.Text = resources.GetString("Label5.Text") + Me.Label5.Text = LocalizationService.ForSection("Designer.ExceptionForm")("Continue.Running.Message") ' 'Label4 ' @@ -129,9 +125,7 @@ Partial Class ExceptionForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(502, 42) Me.Label4.TabIndex = 0 - Me.Label4.Text = "When reporting this issue, PLEASE paste the exception information on the left. Ot" & _ - "herwise, standard closure policies will be applied which imply closing your issu" & _ - "e after (at least) 4 hours." + Me.Label4.Text = LocalizationService.ForSection("Designer.ExceptionForm")("Reporting.Issue.Message") ' 'LinkLabel1 ' @@ -144,7 +138,7 @@ Partial Class ExceptionForm Me.LinkLabel1.Size = New System.Drawing.Size(56, 15) Me.LinkLabel1.TabIndex = 5 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Continue" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.ExceptionForm")("Continue.Button") ' 'LinkLabel2 ' @@ -157,7 +151,7 @@ Partial Class ExceptionForm Me.LinkLabel2.Size = New System.Drawing.Size(25, 15) Me.LinkLabel2.TabIndex = 5 Me.LinkLabel2.TabStop = True - Me.LinkLabel2.Text = "Exit" + Me.LinkLabel2.Text = LocalizationService.ForSection("Designer.ExceptionForm")("Exit.Button") ' 'DynaViewer_Button ' @@ -167,7 +161,7 @@ Partial Class ExceptionForm Me.DynaViewer_Button.Name = "DynaViewer_Button" Me.DynaViewer_Button.Size = New System.Drawing.Size(197, 32) Me.DynaViewer_Button.TabIndex = 3 - Me.DynaViewer_Button.Text = "Copy and Inspect Logs" + Me.DynaViewer_Button.Text = LocalizationService.ForSection("Designer.ExceptionForm")("Copy.Inspect.Logs.Button") Me.DynaViewer_Button.UseVisualStyleBackColor = True ' 'ExceptionForm @@ -193,7 +187,7 @@ Partial Class ExceptionForm Me.MinimizeBox = False Me.Name = "ExceptionForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "DISMTools - Internal Error" + Me.Text = LocalizationService.ForSection("Designer.ExceptionForm")("DISM.Tools.Internal.Label") Me.TopMost = True CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Panels/Exceptions/ExceptionForm.resx b/Panels/Exceptions/ExceptionForm.resx index c482ca31b..2bdcc9104 100644 --- a/Panels/Exceptions/ExceptionForm.resx +++ b/Panels/Exceptions/ExceptionForm.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,11 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - You may be able to continue running the program by clicking Continue. However, if this error is displayed for a second time, you can forcefully close the program by clicking Exit. Do note that changes made to projects, as well as changes in the Recents list, will not be saved. - -What do you want to do? - diff --git a/Panels/Exceptions/ExceptionForm.vb b/Panels/Exceptions/ExceptionForm.vb index 0cd10b7d4..c54d4ab3e 100644 --- a/Panels/Exceptions/ExceptionForm.vb +++ b/Panels/Exceptions/ExceptionForm.vb @@ -1,10 +1,10 @@ -Imports Microsoft.VisualBasic.ControlChars +Imports Microsoft.VisualBasic.ControlChars Imports System.IO Public Class ExceptionForm - Dim copySuccess As String = "This information has been copied to the clipboard." - Dim copyFail As String = "You'll need to copy this information manually." + Dim copySuccess As String = String.Empty + Dim copyFail As String = String.Empty Dim dvPath As String = Path.Combine(Application.StartupPath, "Tools", "DynaViewer", "DynaViewer.exe") @@ -24,76 +24,28 @@ Public Class ExceptionForm End Sub Private Sub ExceptionForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load - ' Use system language in case exception is thrown when trying to load settings - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "DISMTools - Internal Error" - Label1.Text = "We are sorry for the inconvenience, but DISMTools has run into an error that it couldn't handle and we need your help in order to continue." & CrLf & CrLf & "Here is the error information if you need it:" - Label2.Text = "Please help us fix this issue" - Label3.Text = "In order to prevent this problem from happening again, we would like to know more about it by reporting an issue on the GitHub repository. You will need a GitHub account to report feedback." - Label4.Text = "When reporting this issue, PLEASE paste the exception information on the left. Otherwise, standard closure policies will be applied which imply closing your issue after (at least) 4 hours." - Label5.Text = "You may be able to continue running the program by clicking Continue. However, if this error is displayed for a second time, you can forcefully close the program by clicking Exit. Do note that changes made to projects, as well as changes in the Recents list, will not be saved." & CrLf & CrLf & "What do you want to do?" - Issue_Btn.Text = "Report this issue" - LinkLabel1.Text = "Continue" - LinkLabel2.Text = "Exit" - copySuccess = "This information has been copied to the clipboard." - copyFail = "You'll need to copy this information manually." - Case "ESN" - Text = "DISMTools - Error interno" - Label1.Text = "Lo sentimos por el inconveniente, pero DISMTools ha sufrido un error que no pudo controlar y necesitamos su ayuda para poder continuar." & CrLf & CrLf & "Aquí tiene la información del error por si lo necesita:" - Label2.Text = "Por favor, ayúdenos a corregir este problema" - Label3.Text = "Para evitar que este problema ocurra de nuevo, nos gustaría saber más acerca de él reportando un error en el repositorio de GitHub. Necesitará una cuenta de GitHub para enviar comentarios." - Label4.Text = "Cuando reporte este error, le rogamos que pegue la información de la excepción en la izquierda. De otra manera, se aplicarán políticas de cierre estándar que implican cerrar tu propuesta después de (al menos) 4 horas." - Label5.Text = "Podrá ser capaz de continuar con la ejecución del programa haciendo clic en Continuar. En cambio, si este error se muestra por una segunda vez, puede cerrar el programa forzadamente haciendo clic en Salir. Dese cuenta de que los cambios de proyectos y de la lista de Recientes no se guardarán." & CrLf & CrLf & "¿Qué le gustaría hacer?" - Issue_Btn.Text = "Reportar este problema" - LinkLabel1.Text = "Continuar" - LinkLabel2.Text = "Salir" - copySuccess = "Esta información ha sido copiada al portapapeles." - copyFail = "Deberá copiar esta información manualmente." - Case "FRA" - Text = "DISMTools - Erreur interne" - Label1.Text = "Nous sommes désolés pour la gêne occasionnée, mais DISMTools a rencontré une erreur qu'il n'a pas pu gérer et nous avons besoin de votre aide pour continuer" & CrLf & CrLf & "Voici les informations sur l'erreur si vous en avez besoin :" - Label2.Text = "Veuillez nous aider à résoudre ce problème" - Label3.Text = "Afin d'éviter que ce problème ne se reproduise, nous aimerions en savoir plus en signalant un problème sur le dépôt GitHub. Vous devez disposer d'un compte GitHub pour signaler un problème." - Label4.Text = "Lorsque vous signalez ce problème, VEUILLEZ coller les informations relatives à l'exception à gauche. Dans le cas contraire, les politiques de fermeture standard seront appliquées, ce qui implique la fermeture de votre problème après (au moins) 4 heures." - Label5.Text = "Vous pouvez continuer à exécuter le programme en cliquant sur Continuer. Cependant, si cette erreur s'affiche une seconde fois, vous pouvez fermer le programme en cliquant sur Quitter. Notez que les modifications apportées aux projets, ainsi que les modifications apportées à la liste Récents, ne seront pas sauvegardées." & CrLf & CrLf & "Que voulez-vous faire ?" - Issue_Btn.Text = "Signaler ce problème" - LinkLabel1.Text = "Continuer" - LinkLabel2.Text = "Quitter" - copySuccess = "Cette information a été copiée dans le presse-papiers" - copyFail = "Vous devrez copier ces informations manuellement." - Case "PTB", "PTG" - Text = "DISMTools - Erro interno" - Label1.Text = "Lamentamos o incómodo, mas o DISMTools deparou-se com um erro que não conseguiu resolver e precisamos da sua ajuda para continuar." & CrLf & CrLf & "Aqui está a informação do erro, se precisar dela:" - Label2.Text = "Por favor, ajude-nos a resolver este problema" - Label3.Text = "Para evitar que este problema volte a acontecer, gostaríamos de saber mais sobre o mesmo, reportando um problema no repositório do GitHub. Necessita de uma conta GitHub para comunicar comentários." - Label4.Text = "Ao relatar este problema, POR FAVOR, cole as informações de exceção à esquerda. Caso contrário, serão aplicadas as políticas de encerramento padrão, que implicam o encerramento do seu problema após (pelo menos) 4 horas." - Label5.Text = "Poderá continuar a executar o programa clicando em Continuar. No entanto, se este erro for apresentado pela segunda vez, pode fechar o programa à força, clicando em Sair. Tenha em atenção que as alterações efectuadas nos projectos, bem como as alterações na lista Recentes, não serão guardadas." & CrLf & CrLf & "O que pretende fazer?" - Issue_Btn.Text = "Comunicar este problema" - LinkLabel1.Text = "Continuar" - LinkLabel2.Text = "Sair" - copySuccess = "Esta informação foi copiada para a área de transferência." - copyFail = "Terá de copiar esta informação manualmente." - Case "ITA" - Text = "DISMTools - Errore interno" - Label1.Text = "Ci scusiamo per l'inconveniente, ma DISMTools ha riscontrato un errore che non è stato in grado di gestire e abbiamo bisogno del tuo aiuto per continuare." & CrLf & CrLf & "Ecco le informazioni sull'errore:" - Label2.Text = "Per favore, aiutaci a risolvere questo problema" - Label3.Text = "Per evitare che questo problema si ripeta, vorremmo saperne di più segnalando un problema sul repository GitHub. Per inviare un feedback è necessario un account GitHub" - Label4.Text = "Quando si segnala questo problema, incolla le informazioni sull'eccezione a sinistra. In caso contrario, verranno applicate le politiche di chiusura standard, che prevedono la chiusura del problema dopo (almeno) 4 ore." - Label5.Text = "È possibile continuare ad eseguire il programma selezionando 'Continua'. Tuttavia, se questo errore viene visualizzato per la seconda volta, è possibile chiudere forzatamente il programma selezionando 'Esci'. Nota che le modifiche apportate ai progetti e quelle nell'elenco Recenti non verranno salvate." & CrLf & CrLf & "Cosa si desidera fare?" - Issue_Btn.Text = "Segnala questo problema" - LinkLabel1.Text = "Continua" - LinkLabel2.Text = "Esci" - copySuccess = "Queste informazioni sono state copiate negli appunti" - copyFail = "È necessario copiare queste informazioni manualmente" - End Select - BackColor = CurrentTheme.SectionBackgroundColor - ForeColor = CurrentTheme.ForegroundColor - ErrorText.BackColor = CurrentTheme.BackgroundColor - ErrorText.ForeColor = CurrentTheme.ForegroundColor - Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) - WindowHelper.ToggleDarkTitleBar(handle, CurrentTheme.IsDark) - ThemeHelper.UpdateLinkLabelColors(Me, Color.DodgerBlue, CurrentTheme.AccentColors(0)) + Text = LocalizationService.ForSection("Exception")("DISM.Tools.Internal.Label") + Label1.Text = LocalizationService.ForSection("Exception")("Sorry.Inconvenience.Message") + Label2.Text = LocalizationService.ForSection("Exception")("Help.Us.Fix.Label") + Label3.Text = LocalizationService.ForSection("Exception")("Problem.Prevention.Message") + Label4.Text = LocalizationService.ForSection("Exception")("Reporting.Issue.Message") + Label5.Text = LocalizationService.ForSection("Exception")("Continue.Running.Message") + Issue_Btn.Text = LocalizationService.ForSection("Exception")("ReportIssue.Label") + LinkLabel1.Text = LocalizationService.ForSection("Exception")("Continue.Button") + LinkLabel2.Text = LocalizationService.ForSection("Exception")("Exit.Button") + copySuccess = LocalizationService.ForSection("Exception")("Copied.Clipboard.Label") + copyFail = LocalizationService.ForSection("Exception")("Ll.Copy.Label") + If CurrentTheme IsNot Nothing Then + BackColor = CurrentTheme.SectionBackgroundColor + ForeColor = CurrentTheme.ForegroundColor + ErrorText.BackColor = CurrentTheme.BackgroundColor + ErrorText.ForeColor = CurrentTheme.ForegroundColor + Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) + WindowHelper.ToggleDarkTitleBar(handle, CurrentTheme.IsDark) + If CurrentTheme.AccentColors IsNot Nothing AndAlso CurrentTheme.AccentColors.Count > 0 Then + ThemeHelper.UpdateLinkLabelColors(Me, Color.DodgerBlue, CurrentTheme.AccentColors(0)) + End If + End If Try Dim data As New DataObject() data.SetText(ErrorText.Text, TextDataFormat.Text) @@ -115,10 +67,10 @@ Public Class ExceptionForm File.Copy(Path.Combine(Application.StartupPath, "logs", "DT_DynaLog.log"), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "DynaLog_Trace.log")) Process.Start(dvPath, Quote & Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "DynaLog_Trace.log") & Quote & _ - " /selectlast=10") + " /selectlast=10 " & LocalizationService.GetLanguageCommandLineArgument()) Catch ex As Exception Process.Start(dvPath, Quote & Path.Combine(Application.StartupPath, "logs", "DT_DynaLog.log") & Quote & _ - " /selectlast=10") + " /selectlast=10 " & LocalizationService.GetLanguageCommandLineArgument()) End Try End Sub End Class \ No newline at end of file diff --git a/Panels/Exe_Ops/BGProcs/BGProcsAdvSettings.Designer.vb b/Panels/Exe_Ops/BGProcs/BGProcsAdvSettings.Designer.vb index 598604c52..cb3ec7a4a 100644 --- a/Panels/Exe_Ops/BGProcs/BGProcsAdvSettings.Designer.vb +++ b/Panels/Exe_Ops/BGProcs/BGProcsAdvSettings.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class BGProcsAdvSettings Inherits System.Windows.Forms.Form @@ -56,7 +56,7 @@ Partial Class BGProcsAdvSettings Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.BgProcesses")("Okbutton.Button") ' 'Cancel_Button ' @@ -66,7 +66,7 @@ Partial Class BGProcsAdvSettings Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.BgProcesses")("Cancel.Button") ' 'Label1 ' @@ -75,7 +75,7 @@ Partial Class BGProcsAdvSettings Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(275, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Configure additional settings for background processes:" + Me.Label1.Text = LocalizationService.ForSection("Designer.BgProcsSettings")("Additional.Label") ' 'CheckBox1 ' @@ -86,8 +86,7 @@ Partial Class BGProcsAdvSettings Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(440, 32) Me.CheckBox1.TabIndex = 2 - Me.CheckBox1.Text = "Enhance detection of installed AppX packages of an active installation with Power" & _ - "Shell helpers" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.BgProcesses")("Enhance.App.Detect.CheckBox") Me.CheckBox1.TextAlign = System.Drawing.ContentAlignment.TopLeft Me.CheckBox1.UseVisualStyleBackColor = True ' @@ -100,7 +99,7 @@ Partial Class BGProcsAdvSettings Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(246, 17) Me.CheckBox2.TabIndex = 2 - Me.CheckBox2.Text = "Skip packages with non-removable policies set" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.BgProcesses")("SkipNonRemovable.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -110,7 +109,7 @@ Partial Class BGProcsAdvSettings Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(138, 17) Me.CheckBox3.TabIndex = 2 - Me.CheckBox3.Text = "Detect all image drivers" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.BgProcesses")("DetectAllDrivers.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox4 @@ -123,7 +122,7 @@ Partial Class BGProcsAdvSettings Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(422, 32) Me.CheckBox4.TabIndex = 2 - Me.CheckBox4.Text = "Skip framework packages, and remove them from the listings if they were detected" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.BgProcesses")("Skip.Framework.CheckBox") Me.CheckBox4.TextAlign = System.Drawing.ContentAlignment.TopLeft Me.CheckBox4.UseVisualStyleBackColor = True ' @@ -134,7 +133,7 @@ Partial Class BGProcsAdvSettings Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(282, 17) Me.CheckBox5.TabIndex = 2 - Me.CheckBox5.Text = "Run all background processes after performing a task" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.BgProcesses")("Run.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'BGProcsAdvSettings @@ -158,7 +157,7 @@ Partial Class BGProcsAdvSettings Me.Name = "BGProcsAdvSettings" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Advanced background process settings" + Me.Text = LocalizationService.ForSection("Designer.BgProcsSettings")("Advanced.Process.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Exe_Ops/BGProcs/BGProcsAdvSettings.vb b/Panels/Exe_Ops/BGProcs/BGProcsAdvSettings.vb index 3faaff3a9..2af8b3608 100644 --- a/Panels/Exe_Ops/BGProcs/BGProcsAdvSettings.vb +++ b/Panels/Exe_Ops/BGProcs/BGProcsAdvSettings.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class BGProcsAdvSettings @@ -18,31 +18,7 @@ Public Class BGProcsAdvSettings End If If (NeedsDriverChecks And MainForm.isProjectLoaded And (MainForm.IsImageMounted Or MainForm.OnlineManagement)) And Not MainForm.ImgBW.IsBusy Then Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The program will now detect the drivers of the image according to the options you've specified. This may take some time." - Case "ESN" - msg = "El programa va a detectar los controladores de la imagen atendiendo a las opciones que ha especificado. Esto puede llevar un tiempo." - Case "FRA" - msg = "Le programme va maintenant détecter les pilotes de l'image en fonction des options que vous avez spécifiées. Cela peut prendre un certain temps." - Case "PTB", "PTG" - msg = "O programa irá agora detetar os controladores da imagem de acordo com as opções que especificou. Isto pode demorar algum tempo." - Case "ITA" - msg = "Il programma ora rileverà i driver dell'immagine in base alle opzioni specificate. Questa operazione potrebbe richiedere un po' di tempo" - End Select - Case 1 - msg = "The program will now detect the drivers of the image according to the options you've specified. This may take some time." - Case 2 - msg = "El programa va a detectar los controladores de la imagen atendiendo a las opciones que ha especificado. Esto puede llevar un tiempo." - Case 3 - msg = "Le programme va maintenant détecter les pilotes de l'image en fonction des options que vous avez spécifiées. Cela peut prendre un certain temps." - Case 4 - msg = "O programa irá agora detetar os controladores da imagem de acordo com as opções que especificou. Isto pode demorar algum tempo." - Case 5 - msg = "Il programma rileverà i driver dell'immagine in base alle opzioni specificate. Questa operazione potrebbe richiedere un po' di tempo" - End Select + msg = LocalizationService.ForSection("BgProcesses.Validation")("DetectDrivers.Message") MsgBox(msg, vbOKOnly + vbInformation, Text) MainForm.bwGetImageInfo = False MainForm.bwGetAdvImgInfo = False @@ -59,111 +35,15 @@ Public Class BGProcsAdvSettings End Sub Private Sub BGProcsAdvSettings_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Advanced background process settings" - Label1.Text = "Configure additional settings for background processes:" - CheckBox1.Text = "Enhance detection of all installed AppX packages of an active installation with PowerShell helpers" - CheckBox2.Text = "Skip packages with non-removable policies set" - CheckBox3.Text = "Detect all image drivers" - CheckBox4.Text = "Skip framework packages, and remove them from the listings if they were detected" - CheckBox5.Text = "Run all background processes after performing a task" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Configuraciones avanzadas de procesos en segundo plano" - Label1.Text = "Configure opciones adicionales para los procesos en segundo plano:" - CheckBox1.Text = "Mejorar la detección de todos los paquetes AppX instalados en una instalación activa con ayudantes de PowerShell" - CheckBox2.Text = "Omitir paquetes no removibles" - CheckBox3.Text = "Detectar todos los controladores de la imagen" - CheckBox4.Text = "Omitir paquetes de marcos de trabajo, y eliminarlos de los listados si fueron detectados" - CheckBox5.Text = "Ejecutar todos los procesos en segundo plano tras realizar una operación" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Paramètres avancés des processus en arrière plan" - Label1.Text = "Configurer des paramètres supplémentaires pour les processus en arrière plan :" - CheckBox1.Text = "Améliorer la détection de tous les paquets AppX installés dans une installation active grâce aux aides PowerShell" - CheckBox2.Text = "Sauter les paquets dont les politiques ne sont pas supprimées" - CheckBox3.Text = "Détecter tous les pilotes de l'image" - CheckBox4.Text = "Ignorer les paquets cadres et les supprimer de la liste s'ils ont été détectés." - CheckBox5.Text = "Exécuter tous les processus en arrière plan après l'exécution d'une tâche" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Configurações avançadas de processos em segundo plano" - Label1.Text = "Configurar definições adicionais para processos em segundo plano:" - CheckBox1.Text = "Melhorar a deteção de todos os pacotes AppX instalados de uma instalação ativa com ajudantes do PowerShell" - CheckBox2.Text = "Ignorar pacotes com políticas não removíveis definidas" - CheckBox3.Text = "Detetar todos os controladores de imagem" - CheckBox4.Text = "Ignorar pacotes de estrutura e removê-los das listagens se tiverem sido detectados" - CheckBox5.Text = "Executar todos os processos em segundo plano depois de executar uma tarefa" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Impostazioni avanzate processi in background" - Label1.Text = "Configura impostazioni aggiuntive per i processi in background:" - CheckBox1.Text = "Migliora il rilevamento di tutti i pacchetti AppX di un'installazione attiva con gli helper di PowerShell" - CheckBox2.Text = "Salta i pacchetti con impostati criteri non rimovibili" - CheckBox3.Text = "Rileva tutti i driver dell'immagine" - CheckBox4.Text = "Salta i pacchetti framework e rimuovili dagli elenchi se sono stati rilevati" - CheckBox5.Text = "Esegui tutti i processi in background dopo aver eseguito un'attività" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select - Case 1 - Text = "Advanced background process settings" - Label1.Text = "Configure additional settings for background processes:" - CheckBox1.Text = "Enhance detection of all installed AppX packages of an active installation with PowerShell helpers" - CheckBox2.Text = "Skip packages with non-removable policies set" - CheckBox3.Text = "Detect all image drivers" - CheckBox4.Text = "Skip framework packages, and remove them from the listings if they were detected" - CheckBox5.Text = "Run all background processes after performing a task" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Configuraciones avanzadas de procesos en segundo plano" - Label1.Text = "Configure opciones adicionales para los procesos en segundo plano:" - CheckBox1.Text = "Mejorar la detección de todos los paquetes AppX instalados en una instalación activa con ayudantes de PowerShell" - CheckBox2.Text = "Omitir paquetes no removibles" - CheckBox3.Text = "Detectar todos los controladores de la imagen" - CheckBox4.Text = "Omitir paquetes de marcos de trabajo, y eliminarlos de los listados si fueron detectados" - CheckBox5.Text = "Ejecutar todos los procesos en segundo plano tras realizar una operación" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Paramètres avancés des processus en arrière plan" - Label1.Text = "Configurer des paramètres supplémentaires pour les processus en arrière plan :" - CheckBox1.Text = "Améliorer la détection de tous les paquets AppX installés dans une installation active grâce aux aides PowerShell" - CheckBox2.Text = "Sauter les paquets dont les politiques ne sont pas supprimées" - CheckBox3.Text = "Détecter tous les pilotes de l'image" - CheckBox4.Text = "Ignorer les paquets cadres et les supprimer de la liste s'ils ont été détectés." - CheckBox5.Text = "Exécuter tous les processus en arrière plan après l'exécution d'une tâche" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Configurações avançadas de processos em segundo plano" - Label1.Text = "Configurar definições adicionais para processos em segundo plano:" - CheckBox1.Text = "Melhorar a deteção de todos os pacotes AppX instalados de uma instalação ativa com ajudantes do PowerShell" - CheckBox2.Text = "Ignorar pacotes com políticas não removíveis definidas" - CheckBox3.Text = "Detetar todos os controladores de imagem" - CheckBox4.Text = "Ignorar pacotes de estrutura e removê-los das listagens se tiverem sido detectados" - CheckBox5.Text = "Executar todos os processos em segundo plano depois de executar uma tarefa" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Impostazioni avanzate processi in background" - Label1.Text = "Configura impostazioni aggiuntive per i processi in background:" - CheckBox1.Text = "Migliora il rilevamento di tutti i pacchetti AppX di un'installazione attiva con gli helper di PowerShell" - CheckBox2.Text = "Salta i pacchetti con criteri non rimovibili impostati" - CheckBox3.Text = "Rileva tutti i driver dell'immagine" - CheckBox4.Text = "Salta i pacchetti framework e rimuovili dagli elenchi se sono stati rilevati" - CheckBox5.Text = "Esegui tutti i processi in background dopo aver eseguito un'attività" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select + Text = LocalizationService.ForSection("BgProcs.Settings")("Advanced.Process.Label") + Label1.Text = LocalizationService.ForSection("BgProcs.Settings")("Additional.Label") + CheckBox1.Text = LocalizationService.ForSection("BgProcesses")("Enhance.App.Detect.Message") + CheckBox2.Text = LocalizationService.ForSection("BgProcesses")("SkipNonRemovable.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("BgProcesses")("DetectAllDrivers.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("BgProcesses")("Skip.Framework.CheckBox") + CheckBox5.Text = LocalizationService.ForSection("BgProcesses")("Run.CheckBox") + OK_Button.Text = LocalizationService.ForSection("BgProcesses")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("BgProcesses")("Cancel.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor CheckBox1.Checked = MainForm.ExtAppxGetter diff --git a/Panels/Exe_Ops/DismComponents.Designer.vb b/Panels/Exe_Ops/DismComponents.Designer.vb index a4c356cb2..f3899051d 100644 --- a/Panels/Exe_Ops/DismComponents.Designer.vb +++ b/Panels/Exe_Ops/DismComponents.Designer.vb @@ -51,7 +51,7 @@ Partial Class DismComponents Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.DISMComponents")("Ok.Button") ' 'ListView1 ' @@ -67,12 +67,12 @@ Partial Class DismComponents ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Component" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.DISMComponents")("Component.Column") Me.ColumnHeader1.Width = 250 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Version" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.DISMComponents")("Version.Column") Me.ColumnHeader2.Width = 238 ' 'DismComponents @@ -90,7 +90,7 @@ Partial Class DismComponents Me.Name = "DismComponents" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISM Components" + Me.Text = LocalizationService.ForSection("Designer.DISMComponents")("Dismcomponents.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Exe_Ops/DismComponents.vb b/Panels/Exe_Ops/DismComponents.vb index f59aaeb5c..bfb3ee4d6 100644 --- a/Panels/Exe_Ops/DismComponents.vb +++ b/Panels/Exe_Ops/DismComponents.vb @@ -12,61 +12,10 @@ Public Class DismComponents End Sub Private Sub DismComponents_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "DISM Components" - ListView1.Columns(0).Text = "Component" - ListView1.Columns(1).Text = "Version" - OK_Button.Text = "OK" - Case "ESN" - Text = "Componentes de DISM" - ListView1.Columns(0).Text = "Componente" - ListView1.Columns(1).Text = "Versión" - OK_Button.Text = "Aceptar" - Case "FRA" - Text = "Composants du DISM" - ListView1.Columns(0).Text = "Composant" - ListView1.Columns(1).Text = "Version" - OK_Button.Text = "OK" - Case "PTB", "PTG" - Text = "Componentes DISM" - ListView1.Columns(0).Text = " Componente" - ListView1.Columns(1).Text = "Versão" - OK_Button.Text = "OK" - Case "ITA" - Text = "Componenti DISM" - ListView1.Columns(0).Text = "Componente" - ListView1.Columns(1).Text = "Versione" - OK_Button.Text = "OK" - End Select - Case 1 - Text = "DISM Components" - ListView1.Columns(0).Text = "Component" - ListView1.Columns(1).Text = "Version" - OK_Button.Text = "OK" - Case 2 - Text = "Componentes de DISM" - ListView1.Columns(0).Text = "Componente" - ListView1.Columns(1).Text = "Versión" - OK_Button.Text = "Aceptar" - Case 3 - Text = "Composants du DISM" - ListView1.Columns(0).Text = "Composant" - ListView1.Columns(1).Text = "Version" - OK_Button.Text = "OK" - Case 4 - Text = "Componentes DISM" - ListView1.Columns(0).Text = " Componente" - ListView1.Columns(1).Text = "Versão" - OK_Button.Text = "OK" - Case 5 - Text = "Componenti DISM" - ListView1.Columns(0).Text = "Componente" - ListView1.Columns(1).Text = "Versione" - OK_Button.Text = "OK" - End Select + Text = LocalizationService.ForSection("DismComponents")("Title.Label") + ListView1.Columns(0).Text = LocalizationService.ForSection("DismComponents")("Component.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("DismComponents")("Version.Column") + OK_Button.Text = LocalizationService.ForSection("DismComponents")("Ok.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor ListView1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Exe_Ops/InvalidSettings/InvalidSettingsDialog.Designer.vb b/Panels/Exe_Ops/InvalidSettings/InvalidSettingsDialog.Designer.vb index ba95c074b..d9e438e81 100644 --- a/Panels/Exe_Ops/InvalidSettings/InvalidSettingsDialog.Designer.vb +++ b/Panels/Exe_Ops/InvalidSettings/InvalidSettingsDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class InvalidSettingsDialog Inherits System.Windows.Forms.Form @@ -41,7 +41,7 @@ Partial Class InvalidSettingsDialog Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 0 - Me.Button1.Text = "OK" + Me.Button1.Text = LocalizationService.ForSection("Designer.InvalidSettings")("Ok.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label2 @@ -51,8 +51,7 @@ Partial Class InvalidSettingsDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 40) Me.Label2.TabIndex = 11 - Me.Label2.Text = "The invalid settings have been reset to default values. Check the fields below fo" & _ - "r more information:" + Me.Label2.Text = LocalizationService.ForSection("Designer.InvalidSettings")("ResetDefaults.Message") ' 'Label1 ' @@ -62,7 +61,7 @@ Partial Class InvalidSettingsDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 10 - Me.Label1.Text = "The program has detected invalid settings" + Me.Label1.Text = LocalizationService.ForSection("Designer.InvalidSettings")("Found.Label") ' 'TableLayoutPanel1 ' @@ -95,7 +94,7 @@ Partial Class InvalidSettingsDialog Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(590, 41) Me.Label6.TabIndex = 6 - Me.Label6.Text = "Label6" + Me.Label6.Text = LocalizationService.ForSection("Designer.InvalidSettings")("Scratch.Dir.Status.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label5 @@ -108,7 +107,7 @@ Partial Class InvalidSettingsDialog Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(590, 38) Me.Label5.TabIndex = 4 - Me.Label5.Text = "Label5" + Me.Label5.Text = LocalizationService.ForSection("Designer.InvalidSettings")("Log.File.Status.Label") Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label4 @@ -121,7 +120,7 @@ Partial Class InvalidSettingsDialog Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(590, 38) Me.Label4.TabIndex = 2 - Me.Label4.Text = "Label4" + Me.Label4.Text = LocalizationService.ForSection("Designer.InvalidSettings")("Log.Font.Status.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label3 @@ -134,7 +133,7 @@ Partial Class InvalidSettingsDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(590, 38) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Label3" + Me.Label3.Text = LocalizationService.ForSection("Designer.InvalidSettings")("DISM.Executable.Status.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'InvalidSettingsDialog @@ -155,7 +154,7 @@ Partial Class InvalidSettingsDialog Me.Name = "InvalidSettingsDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Invalid settings have been detected" + Me.Text = LocalizationService.ForSection("Designer.InvalidSettings")("Detected.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Exe_Ops/InvalidSettings/InvalidSettingsDialog.vb b/Panels/Exe_Ops/InvalidSettings/InvalidSettingsDialog.vb index cb2bb9b96..e61103b24 100644 --- a/Panels/Exe_Ops/InvalidSettings/InvalidSettingsDialog.vb +++ b/Panels/Exe_Ops/InvalidSettings/InvalidSettingsDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class InvalidSettingsDialog @@ -9,274 +9,31 @@ Public Class InvalidSettingsDialog End Sub Private Sub InvalidSettingsDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Invalid settings have been detected" - Label1.Text = "The program has detected invalid settings" - Label2.Text = "The invalid settings have been reset to default values. Check the fields below for more information:" - Button1.Text = "OK" - Case "ESN" - Text = "Se han detectado configuraciones inválidas" - Label1.Text = "El programa ha detectado configuraciones inválidas" - Label2.Text = "Las configuraciones inválidas han sido restablecidas a sus valores predeterminados. Compruebe los campos de abajo para más información:" - Button1.Text = "Aceptar" - Case "FRA" - Text = "Des paramètres non valides ont été détectés" - Label1.Text = "Le programme a détecté des paramètres non valides" - Label2.Text = "Les paramètres non valides ont été réinitialisés aux valeurs par défaut. Vérifiez les champs ci-dessous pour plus d'informations :" - Button1.Text = "OK" - Case "PTB", "PTG" - Text = "Foram detectadas definições inválidas" - Label1.Text = "O programa detectou definições inválidas" - Label2.Text = "As definições inválidas foram repostas para os valores predefinidos. Verifique os campos abaixo para obter mais informações:" - Button1.Text = "OK" - Case "ITA" - Text = "Sono state rilevate impostazioni non valide" - Label1.Text = "Il programma ha rilevato impostazioni non valide" - Label2.Text = "Le impostazioni non valide sono state ripristinate ai valori predefiniti. Per ulteriori informazioni: controlla i campi sottostanti:" - Button1.Text = "OK" - End Select - Case 1 - Text = "Invalid settings have been detected" - Label1.Text = "The program has detected invalid settings" - Label2.Text = "The invalid settings have been reset to default values. Check the fields below for more information:" - Button1.Text = "OK" - Case 2 - Text = "Se han detectado configuraciones inválidas" - Label1.Text = "El programa ha detectado configuraciones inválidas" - Label2.Text = "Las configuraciones inválidas han sido restablecidas a sus valores predeterminados. Compruebe los campos de abajo para más información:" - Button1.Text = "Aceptar" - Case 3 - Text = "Des paramètres non valides ont été détectés" - Label1.Text = "Le programme a détecté des paramètres non valides" - Label2.Text = "Les paramètres non valides ont été réinitialisés aux valeurs par défaut. Vérifiez les champs ci-dessous pour plus d'informations :" - Button1.Text = "OK" - Case 4 - Text = "Foram detectadas definições inválidas" - Label1.Text = "O programa detectou definições inválidas" - Label2.Text = "As definições inválidas foram repostas para os valores predefinidos. Verifique os campos abaixo para obter mais informações:" - Button1.Text = "OK" - Case 5 - Text = "Sono state rilevate impostazioni non valide" - Label1.Text = "Il programma ha rilevato impostazioni non valide" - Label2.Text = "Le impostazioni non valide sono state ripristinate ai valori predefiniti. Per ulteriori informazioni controllare i campi sottostanti:" - Button1.Text = "OK" - End Select + Text = LocalizationService.ForSection("Settings.Dialog")("Detected.Label") + Label1.Text = LocalizationService.ForSection("InvalidSettings")("Found.Label") + Label2.Text = LocalizationService.ForSection("Settings.Dialog")("Reset.Default.Message") + Button1.Text = LocalizationService.ForSection("Settings.Dialog")("Ok.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor If MainForm.isExeProblematic Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "The specified DISM executable does not exist: " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - Case "ESN" - Label3.Text = "El ejecutable de DISM especificado no existe: " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - Case "FRA" - Label3.Text = "L'exécutable DISM spécifié n'existe pas : " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - Case "PTB", "PTG" - Label3.Text = "O executável DISM especificado não existe: " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - Case "ITA" - Label3.Text = "L'eseguibile DISM specificato non esiste: " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - End Select - Case 1 - Label3.Text = "The specified DISM executable does not exist: " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - Case 2 - Label3.Text = "El ejecutable de DISM especificado no existe: " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - Case 3 - Label3.Text = "L'exécutable DISM spécifié n'existe pas : " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - Case 4 - Label3.Text = "O executável DISM especificado não existe: " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - Case 5 - Label3.Text = "L'eseguibile DISM specificato non esiste: " & CrLf & Quote & MainForm.ProblematicStrings(0) & Quote - End Select + Label3.Text = LocalizationService.ForSection("Settings.Dialog").Format("Dismexecutable.Exist.Item", MainForm.ProblematicStrings(0)) Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "The DISM executable setting seems to be in order" - Case "ESN" - Label3.Text = "La configuración del ejecutable de DISM parece estar bien" - Case "FRA" - Label3.Text = "Le paramétrage de l'exécutable DISM semble être en ordre" - Case "PTB", "PTG" - Label3.Text = "A configuração do executável DISM parece estar em ordem" - Case "ITA" - Label3.Text = "L'impostazione dell'eseguibile DISM sembra essere corretta" - End Select - Case 1 - Label3.Text = "The DISM executable setting seems to be in order" - Case 2 - Label3.Text = "La configuración del ejecutable de DISM parece estar bien" - Case 3 - Label3.Text = "Le paramétrage de l'exécutable DISM semble être en ordre" - Case 4 - Label3.Text = "A configuração do executável DISM parece estar em ordem" - Case 5 - Label3.Text = "L'impostazione dell'eseguibile DISM sembra essere corretta" - End Select + Label3.Text = LocalizationService.ForSection("Settings.Dialog")("DISM.Executable.Label") End If If MainForm.isLogFontProblematic Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "The specified log font does not exist in this system: " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - Case "ESN" - Label4.Text = "La fuente del registro especificada no existe en este sistema: " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - Case "FRA" - Label4.Text = "La fonte spécifiée n'existe pas dans ce système : " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - Case "PTB", "PTG" - Label4.Text = "A fonte de registo especificada não existe neste sistema: " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - Case "ITA" - Label4.Text = "Il font specificato del registro non esiste in questo sistema: " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - End Select - Case 1 - Label4.Text = "The specified log font does not exist in this system: " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - Case 2 - Label4.Text = "La fuente del registro especificada no existe en este sistema: " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - Case 3 - Label4.Text = "La fonte spécifiée n'existe pas dans ce système : " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - Case 4 - Label4.Text = "A fonte de registo especificada não existe neste sistema: " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - Case 5 - Label4.Text = "Il font specificato del registro non esiste in questo sistema: " & CrLf & Quote & MainForm.ProblematicStrings(1) & Quote - End Select + Label4.Text = LocalizationService.ForSection("Settings.Dialog").Format("Log.Font.Exist.Item", MainForm.ProblematicStrings(1)) Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "The log font setting seems to be in order" - Case "ESN" - Label4.Text = "La configuración de la fuente de registro parece estar bien" - Case "FRA" - Label4.Text = "Le paramètre de la fonte du journal semble être dans l'ordre" - Case "PTB", "PTG" - Label4.Text = "A configuração da fonte de registo parece estar em ordem" - Case "ITA" - Label4.Text = "L'impostazione dei font del registro sembra essere corretta" - End Select - Case 1 - Label4.Text = "The log font setting seems to be in order" - Case 2 - Label4.Text = "La configuración de la fuente de registro parece estar bien" - Case 3 - Label4.Text = "Le paramètre de la fonte du journal semble être dans l'ordre" - Case 4 - Label4.Text = "A configuração da fonte de registo parece estar em ordem" - Case 5 - Label4.Text = "L'impostazione dei font del registro sembra essere corretta" - End Select + Label4.Text = LocalizationService.ForSection("Settings.Dialog")("Log.Font.Setting.Label") End If If MainForm.isLogFileProblematic Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "The specified log file does not exist: " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - Case "ESN" - Label5.Text = "El archivo de registro especificado no existe: " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - Case "FRA" - Label5.Text = "Le fichier journal spécifié n'existe pas : " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - Case "PTB", "PTG" - Label5.Text = "O ficheiro de registo especificado não existe: " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - Case "ITA" - Label5.Text = "Il file registro specificato non esiste: " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - End Select - Case 1 - Label5.Text = "The specified log file does not exist: " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - Case 2 - Label5.Text = "El archivo de registro especificado no existe: " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - Case 3 - Label5.Text = "Le fichier journal spécifié n'existe pas : " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - Case 4 - Label5.Text = "O ficheiro de registo especificado não existe: " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - Case 5 - Label5.Text = "Il file registro specificato non esiste: " & CrLf & Quote & MainForm.ProblematicStrings(2) & Quote - End Select + Label5.Text = LocalizationService.ForSection("Settings.Dialog").Format("Log.File.Exist.Item", MainForm.ProblematicStrings(2)) Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "The log file setting seems to be in order" - Case "ESN" - Label5.Text = "La configuración del archivo de registro parece estar bien" - Case "FRA" - Label5.Text = "Le paramètre du fichier journal semble être dans l'ordre" - Case "PTB", "PTG" - Label5.Text = "A configuração do ficheiro de registo parece estar em ordem" - Case "ITA" - Label5.Text = "L'impostazione del file registro sembra essere corretta" - End Select - Case 1 - Label5.Text = "The log file setting seems to be in order" - Case 2 - Label5.Text = "La configuración del archivo de registro parece estar bien" - Case 3 - Label5.Text = "Le paramètre du fichier journal semble être dans l'ordre" - Case 4 - Label5.Text = "A configuração do ficheiro de registo parece estar em ordem" - Case 5 - Label5.Text = "L'impostazione del file registro sembra essere corretta" - End Select + Label5.Text = LocalizationService.ForSection("Settings.Dialog")("Log.File.Setting.Label") End If If MainForm.isScratchDirProblematic Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label6.Text = "The specified scratch directory does not exist: " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - Case "ESN" - Label6.Text = "El directorio temporal especificado no existe: " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - Case "FRA" - Label6.Text = "Le répertoire temporaire spécifié n'existe pas : " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - Case "PTB", "PTG" - Label6.Text = "O diretório temporário especificado não existe: " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - Case "ITA" - Label6.Text = "La cartelle temporanea specificata non esiste: " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - End Select - Case 1 - Label6.Text = "The specified scratch directory does not exist: " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - Case 2 - Label6.Text = "El directorio temporal especificado no existe: " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - Case 3 - Label6.Text = "Le répertoire temporaire spécifié n'existe pas : " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - Case 4 - Label6.Text = "O diretório temporário especificado não existe: " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - Case 5 - Label6.Text = "La cartelle temporanea specificata non esiste: " & CrLf & Quote & MainForm.ProblematicStrings(3) & Quote - End Select + Label6.Text = LocalizationService.ForSection("Settings.Dialog").Format("Scratch.Dir.Exist.Item", MainForm.ProblematicStrings(3)) Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label6.Text = "The scratch directory setting seems to be in order" - Case "ESN" - Label6.Text = "La configuración del directorio temporal parece estar bien" - Case "FRA" - Label6.Text = "Le paramètre du répertoire temporaire semble être dans l'ordre" - Case "PTB", "PTG" - Label6.Text = "A configuração do diretório temporário parece estar em ordem" - Case "ITA" - Label6.Text = "L'impostazione della cartella temporanea sembra essere corretta" - End Select - Case 1 - Label6.Text = "The scratch directory setting seems to be in order" - Case 2 - Label6.Text = "La configuración del directorio temporal parece estar bien" - Case 3 - Label6.Text = "Le paramètre du répertoire temporaire semble être dans l'ordre" - Case 4 - Label6.Text = "A configuração do diretório temporário parece estar em ordem" - Case 5 - Label6.Text = "L'impostazione della cartella temporanea sembra essere corretta" - End Select + Label6.Text = LocalizationService.ForSection("Settings.Dialog")("Scratch.Dir.Set.Label") End If Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) WindowHelper.ToggleDarkTitleBar(handle, CurrentTheme.IsDark) diff --git a/Panels/Exe_Ops/Migration/MigrationForm.Designer.vb b/Panels/Exe_Ops/Migration/MigrationForm.Designer.vb index b940496cf..b5a062b31 100644 --- a/Panels/Exe_Ops/Migration/MigrationForm.Designer.vb +++ b/Panels/Exe_Ops/Migration/MigrationForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MigrationForm Inherits System.Windows.Forms.Form @@ -37,8 +37,7 @@ Partial Class MigrationForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(615, 37) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Please wait while DISMTools migrates your old settings file to work on this versi" & _ - "on. This may take some time." + Me.Label1.Text = LocalizationService.ForSection("Designer.MigrationForm")("Wait.Message") ' 'ProgressBar1 ' @@ -57,7 +56,7 @@ Partial Class MigrationForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(73, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Please wait..." + Me.Label2.Text = LocalizationService.ForSection("Designer.MigrationForm")("Wait.Label") ' 'BackgroundWorker1 ' @@ -77,7 +76,7 @@ Partial Class MigrationForm Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "MigrationForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.MigrationForm")("DISMTools.Label") Me.TopMost = True Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Exe_Ops/Migration/MigrationForm.vb b/Panels/Exe_Ops/Migration/MigrationForm.vb index be4f6870d..293be8e70 100644 --- a/Panels/Exe_Ops/Migration/MigrationForm.vb +++ b/Panels/Exe_Ops/Migration/MigrationForm.vb @@ -1,4 +1,4 @@ -Imports Microsoft.Win32 +Imports Microsoft.Win32 Public Class MigrationForm Dim msg As String @@ -6,51 +6,18 @@ Public Class MigrationForm Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork DynaLog.LogMessage("Beginning migration...") DynaLog.LogMessage("Loading old settings file...") - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Loading old settings file..." - Case "ESN" - msg = "Cargando archivo antiguo de configuración..." - Case "FRA" - msg = "Chargement d'un ancien fichier de paramètres en cours..." - Case "PTB", "PTG" - msg = "Carregar ficheiro de configurações antigo..." - Case "ITA" - msg = "Caricamento vecchio file impostazioni..." - End Select + msg = LocalizationService.ForSection("Migration.Background")("Loading.Old.Settings.Message") BackgroundWorker1.ReportProgress(33.299999999999997) MainForm.LoadDTSettings(1) Threading.Thread.Sleep(72) DynaLog.LogMessage("Saving new settings...") MainForm.Width = WindowHelper.ScaleLogical(1280) MainForm.Height = WindowHelper.ScaleLogical(720) - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Saving new settings file..." - Case "ESN" - msg = "Guardando archivo nuevo de configuración..." - Case "FRA" - msg = "Sauvegarder le fichier des nouveaux paramètres en cours..." - Case "PTB", "PTG" - msg = "Guardar o novo ficheiro de configurações..." - Case "ITA" - msg = "Salvataggio nuovo file impostazioni..." - End Select + msg = LocalizationService.ForSection("Migration.Background")("Saving.New.Settings.Message") BackgroundWorker1.ReportProgress(66.599999999999994) MainForm.SaveDTSettings() Threading.Thread.Sleep(72) - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Done" - Case "ESN" - msg = "Terminado" - Case "FRA" - msg = "Terminé" - Case "PTB", "PTG" - msg = "Concluído" - Case "ITA" - msg = "Terminato" - End Select + msg = LocalizationService.ForSection("Migration.Background")("Done.Message") BackgroundWorker1.ReportProgress(100) Threading.Thread.Sleep(250) End Sub @@ -64,23 +31,8 @@ Public Class MigrationForm Private Sub MigrationForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Please wait while DISMTools migrates your old settings file to work on this version. This may take some time." - Label2.Text = "Please wait..." - Case "ESN" - Label1.Text = "Espere mientras DISMTools migra su archivo antiguo de configuración para que sea compatible con esta versión. Esto puede llevar un tiempo." - Label2.Text = "Espere..." - Case "FRA" - Label1.Text = "Veuillez patienter pendant que DISMTools migre votre ancien fichier de paramètres pour qu'il fonctionne avec cette version. Cela peut prendre un certain temps." - Label2.Text = "Veuillez patienter..." - Case "PTB", "PTG" - Label1.Text = "Aguarde enquanto o DISMTools migra o seu ficheiro de configurações antigo para funcionar nesta versão. Isso pode levar algum tempo" - Label2.Text = "Aguarde..." - Case "ITA" - Label1.Text = "Attendi mentre DISMTools converte il vecchio file impostazioni per farlo funzionare con questa versione. L'operazione potrebbe richiedere del tempo." - Label2.Text = "Attendi..." - End Select + Label1.Text = LocalizationService.ForSection("Migration")("Wait.Message") + Label2.Text = LocalizationService.ForSection("Migration")("Wait.Label") Refresh() BackgroundWorker1.RunWorkerAsync() End Sub @@ -92,4 +44,4 @@ Public Class MigrationForm Private Sub MigrationForm_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint ControlPaint.DrawBorder(e.Graphics, ClientRectangle, Color.FromArgb(53, 153, 41), ButtonBorderStyle.Solid) End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Exe_Ops/Options.Designer.vb b/Panels/Exe_Ops/Options.Designer.vb index 30f1c8dae..19544ea99 100644 --- a/Panels/Exe_Ops/Options.Designer.vb +++ b/Panels/Exe_Ops/Options.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class Options Inherits System.Windows.Forms.Form @@ -374,7 +374,7 @@ Partial Class Options Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.Options")("Ok.Button") ' 'Cancel_Button ' @@ -385,17 +385,17 @@ Partial Class Options Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.Options")("Cancel.Button") ' 'DismOFD ' Me.DismOFD.FileName = "dism.exe" - Me.DismOFD.Filter = "DISM executable|dism.exe" - Me.DismOFD.Title = "Specify the DISM executable to use" + Me.DismOFD.Filter = LocalizationService.ForSection("Designer.Options")("DISM.Executable.Filter") + Me.DismOFD.Title = LocalizationService.ForSection("Designer.Options")("Dismexecutable.Title") ' 'ScratchFBD ' - Me.ScratchFBD.Description = "Specify the scratch directory the program should use:" + Me.ScratchFBD.Description = LocalizationService.ForSection("Designer.Options")("ScratchDir.Description") Me.ScratchFBD.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'CheckBox13 @@ -405,7 +405,7 @@ Partial Class Options Me.CheckBox13.Name = "CheckBox13" Me.CheckBox13.Size = New System.Drawing.Size(122, 19) Me.CheckBox13.TabIndex = 2 - Me.CheckBox13.Text = "Check for updates" + Me.CheckBox13.Text = LocalizationService.ForSection("Designer.Options")("CheckUpdates.CheckBox") Me.CheckBox13.UseVisualStyleBackColor = True ' 'CheckBox12 @@ -415,7 +415,7 @@ Partial Class Options Me.CheckBox12.Name = "CheckBox12" Me.CheckBox12.Size = New System.Drawing.Size(360, 19) Me.CheckBox12.TabIndex = 2 - Me.CheckBox12.Text = "Remount mounted images in need of a servicing session reload" + Me.CheckBox12.Text = LocalizationService.ForSection("Designer.Options")("Remount.Mounted.CheckBox") Me.CheckBox12.UseVisualStyleBackColor = True ' 'Label43 @@ -425,7 +425,7 @@ Partial Class Options Me.Label43.Name = "Label43" Me.Label43.Size = New System.Drawing.Size(358, 15) Me.Label43.TabIndex = 1 - Me.Label43.Text = "Set options you would like to perform when the program starts up:" + Me.Label43.Text = LocalizationService.ForSection("Designer.Options")("Behavior.OnStartup.Label") ' 'Panel3 ' @@ -443,7 +443,7 @@ Partial Class Options Me.Label46.Name = "Label46" Me.Label46.Size = New System.Drawing.Size(682, 32) Me.Label46.TabIndex = 11 - Me.Label46.Text = "These settings aren't applicable to non-portable installations" + Me.Label46.Text = LocalizationService.ForSection("Designer.Options")("Settings.Aren.Label") ' 'PictureBox8 ' @@ -476,7 +476,7 @@ Partial Class Options Me.CheckBox11.Name = "CheckBox11" Me.CheckBox11.Size = New System.Drawing.Size(257, 19) Me.CheckBox11.TabIndex = 2 - Me.CheckBox11.Text = "Set custom file icons for DISMTools projects" + Me.CheckBox11.Text = LocalizationService.ForSection("Designer.Options")("FileIcons.Projects.CheckBox") Me.CheckBox11.UseVisualStyleBackColor = True ' 'DTSSEditAssocCB @@ -486,7 +486,7 @@ Partial Class Options Me.DTSSEditAssocCB.Name = "DTSSEditAssocCB" Me.DTSSEditAssocCB.Size = New System.Drawing.Size(278, 19) Me.DTSSEditAssocCB.TabIndex = 2 - Me.DTSSEditAssocCB.Text = "Open starter scripts with the Starter Script Editor" + Me.DTSSEditAssocCB.Text = LocalizationService.ForSection("Designer.Options")("Open.Starter.Scripts.Label") Me.DTSSEditAssocCB.UseVisualStyleBackColor = True ' 'Button9 @@ -498,7 +498,7 @@ Partial Class Options Me.Button9.Name = "Button9" Me.Button9.Size = New System.Drawing.Size(266, 28) Me.Button9.TabIndex = 1 - Me.Button9.Text = "Set file associations" + Me.Button9.Text = LocalizationService.ForSection("Designer.Options")("Set.File.Assoc.Button") Me.Button9.UseVisualStyleBackColor = True ' 'DTProjAssocCB @@ -508,7 +508,7 @@ Partial Class Options Me.DTProjAssocCB.Name = "DTProjAssocCB" Me.DTProjAssocCB.Size = New System.Drawing.Size(270, 19) Me.DTProjAssocCB.TabIndex = 2 - Me.DTProjAssocCB.Text = "Open my projects with this copy of DISMTools" + Me.DTProjAssocCB.Text = LocalizationService.ForSection("Designer.Options")("Open.My.Projects.Label") Me.DTProjAssocCB.UseVisualStyleBackColor = True ' 'Label40 @@ -518,7 +518,7 @@ Partial Class Options Me.Label40.Name = "Label40" Me.Label40.Size = New System.Drawing.Size(705, 38) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Manage file associations for DISMTools components:" + Me.Label40.Text = LocalizationService.ForSection("Designer.Options")("Manage.File.Assoc.Label") ' 'Button10 ' @@ -528,7 +528,7 @@ Partial Class Options Me.Button10.Name = "Button10" Me.Button10.Size = New System.Drawing.Size(185, 23) Me.Button10.TabIndex = 7 - Me.Button10.Text = "Advanced settings" + Me.Button10.Text = LocalizationService.ForSection("Designer.Options")("AdvancedSettings.Button") Me.Button10.UseVisualStyleBackColor = True ' 'LinkLabel2 @@ -541,7 +541,7 @@ Partial Class Options Me.LinkLabel2.Size = New System.Drawing.Size(222, 15) Me.LinkLabel2.TabIndex = 6 Me.LinkLabel2.TabStop = True - Me.LinkLabel2.Text = "Learn more about background processes" + Me.LinkLabel2.Text = LocalizationService.ForSection("Designer.Options")("Learn.Background.Link") ' 'Label29 ' @@ -551,20 +551,19 @@ Partial Class Options Me.Label29.Name = "Label29" Me.Label29.Size = New System.Drawing.Size(688, 30) Me.Label29.TabIndex = 3 - Me.Label29.Text = "The program uses background processes to gather complete image information, like " & _ - "modification dates, installed packages, features present; and more" + Me.Label29.Text = LocalizationService.ForSection("Designer.Options")("Uses.Bg.Procs.Message") ' 'ComboBox6 ' Me.ComboBox6.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox6.FormattingEnabled = True - Me.ComboBox6.Items.AddRange(New Object() {"Every time a project has been loaded successfully", "Once"}) + Me.ComboBox6.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Options")("Every.Time.Project.Item"), LocalizationService.ForSection("Designer.Options")("Once.Item")}) Me.ComboBox6.Location = New System.Drawing.Point(9, 31) Me.ComboBox6.Name = "ComboBox6" Me.ComboBox6.Size = New System.Drawing.Size(640, 23) Me.ComboBox6.TabIndex = 4 - Me.ComboBox6.Text = "Every time a project has been loaded successfully" + Me.ComboBox6.Text = LocalizationService.ForSection("Designer.Options")("Every.Time.Project.Item") ' 'Label28 ' @@ -575,7 +574,7 @@ Partial Class Options Me.Label28.Name = "Label28" Me.Label28.Size = New System.Drawing.Size(640, 18) Me.Label28.TabIndex = 3 - Me.Label28.Text = "When should the program notify you about background processes being started?" + Me.Label28.Text = LocalizationService.ForSection("Designer.Options")("Notify.Label") ' 'CheckBox6 ' @@ -586,7 +585,7 @@ Partial Class Options Me.CheckBox6.Name = "CheckBox6" Me.CheckBox6.Size = New System.Drawing.Size(299, 19) Me.CheckBox6.TabIndex = 2 - Me.CheckBox6.Text = "Notify me when background processes have started" + Me.CheckBox6.Text = LocalizationService.ForSection("Designer.Options")("Notify.Me.CheckBox") Me.CheckBox6.UseVisualStyleBackColor = True ' 'PictureBox7 @@ -606,7 +605,7 @@ Partial Class Options Me.Label27.Name = "Label27" Me.Label27.Size = New System.Drawing.Size(682, 32) Me.Label27.TabIndex = 9 - Me.Label27.Text = "Some reports do not allow being shown as a table." + Me.Label27.Text = LocalizationService.ForSection("Designer.Options")("Reports.Allow.Shown.Label") ' 'TextBox4 ' @@ -618,17 +617,17 @@ Partial Class Options Me.TextBox4.ScrollBars = System.Windows.Forms.ScrollBars.Vertical Me.TextBox4.Size = New System.Drawing.Size(707, 240) Me.TextBox4.TabIndex = 5 - Me.TextBox4.Text = resources.GetString("TextBox4.Text") + Me.TextBox4.Text = LocalizationService.ForSection("Designer.Options")("Image.Version.Message") ' 'ComboBox5 ' Me.ComboBox5.FormattingEnabled = True - Me.ComboBox5.Items.AddRange(New Object() {"list", "table"}) + Me.ComboBox5.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Options")("List.Item"), LocalizationService.ForSection("Designer.Options")("Table.Item")}) Me.ComboBox5.Location = New System.Drawing.Point(19, 35) Me.ComboBox5.Name = "ComboBox5" Me.ComboBox5.Size = New System.Drawing.Size(133, 23) Me.ComboBox5.TabIndex = 3 - Me.ComboBox5.Text = "list" + Me.ComboBox5.Text = LocalizationService.ForSection("Designer.Options")("List.Item") ' 'Label26 ' @@ -637,7 +636,7 @@ Partial Class Options Me.Label26.Name = "Label26" Me.Label26.Size = New System.Drawing.Size(89, 15) Me.Label26.TabIndex = 2 - Me.Label26.Text = "Example report:" + Me.Label26.Text = LocalizationService.ForSection("Designer.Options")("ExampleReport.Label") ' 'Label25 ' @@ -646,7 +645,7 @@ Partial Class Options Me.Label25.Name = "Label25" Me.Label25.Size = New System.Drawing.Size(57, 15) Me.Label25.TabIndex = 2 - Me.Label25.Text = "Log view:" + Me.Label25.Text = LocalizationService.ForSection("Designer.Options")("LogView.Label") ' 'CheckBox5 ' @@ -657,7 +656,7 @@ Partial Class Options Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(206, 19) Me.CheckBox5.TabIndex = 1 - Me.CheckBox5.Text = "Show command output in English" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.Options")("Show.Command.Output.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'PictureBox6 @@ -678,7 +677,7 @@ Partial Class Options Me.RadioButton4.Name = "RadioButton4" Me.RadioButton4.Size = New System.Drawing.Size(205, 19) Me.RadioButton4.TabIndex = 12 - Me.RadioButton4.Text = "Use the specified scratch directory" + Me.RadioButton4.Text = LocalizationService.ForSection("Designer.Options")("Custom.Scratch.RadioButton") Me.RadioButton4.UseVisualStyleBackColor = True ' 'RadioButton3 @@ -691,7 +690,7 @@ Partial Class Options Me.RadioButton3.Size = New System.Drawing.Size(258, 19) Me.RadioButton3.TabIndex = 12 Me.RadioButton3.TabStop = True - Me.RadioButton3.Text = "Use the project or program scratch directory" + Me.RadioButton3.Text = LocalizationService.ForSection("Designer.Options")("Project.Scratch.RadioButton") Me.RadioButton3.UseVisualStyleBackColor = True ' 'Label24 @@ -701,8 +700,7 @@ Partial Class Options Me.Label24.Name = "Label24" Me.Label24.Size = New System.Drawing.Size(629, 32) Me.Label24.TabIndex = 11 - Me.Label24.Text = "You may not have enough space on the selected scratch directory for some operatio" & _ - "ns." + Me.Label24.Text = LocalizationService.ForSection("Designer.Options")("Enough.Space.Selected.Label") Me.Label24.Visible = False ' 'Label23 @@ -713,7 +711,7 @@ Partial Class Options Me.Label23.Name = "Label23" Me.Label23.Size = New System.Drawing.Size(431, 25) Me.Label23.TabIndex = 4 - Me.Label23.Text = "" + Me.Label23.Text = LocalizationService.ForSection("Designer.Options")("ScdirSpace.Label") Me.Label23.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label22 @@ -724,7 +722,7 @@ Partial Class Options Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(232, 25) Me.Label22.TabIndex = 4 - Me.Label22.Text = "Space left on selected scratch directory:" + Me.Label22.Text = LocalizationService.ForSection("Designer.Options")("Space.Left.Selected.Label") Me.Label22.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button4 @@ -735,7 +733,7 @@ Partial Class Options Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(75, 23) Me.Button4.TabIndex = 3 - Me.Button4.Text = "Browse..." + Me.Button4.Text = LocalizationService.ForSection("Designer.Options")("Browse.Button") Me.Button4.UseVisualStyleBackColor = True ' 'TextBox3 @@ -754,7 +752,7 @@ Partial Class Options Me.Label21.Name = "Label21" Me.Label21.Size = New System.Drawing.Size(108, 23) Me.Label21.TabIndex = 1 - Me.Label21.Text = "Scratch directory:" + Me.Label21.Text = LocalizationService.ForSection("Designer.Options")("ScratchDirectory.Label") Me.Label21.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label44 @@ -765,9 +763,7 @@ Partial Class Options Me.Label44.Name = "Label44" Me.Label44.Size = New System.Drawing.Size(654, 36) Me.Label44.TabIndex = 1 - Me.Label44.Text = "The program will use the scratch directory provided by the project if one is load" & _ - "ed. If you are in the online or offline installation management modes, the progr" & _ - "am will use its scratch directory" + Me.Label44.Text = LocalizationService.ForSection("Designer.Options")("Scratch.Dir.Message") ' 'Label20 ' @@ -777,7 +773,7 @@ Partial Class Options Me.Label20.Name = "Label20" Me.Label20.Size = New System.Drawing.Size(360, 15) Me.Label20.TabIndex = 1 - Me.Label20.Text = "Please specify the scratch directory to be used for DISM operations:" + Me.Label20.Text = LocalizationService.ForSection("Designer.Options")("Scratch.Dir.Required.Label") ' 'CheckBox4 ' @@ -786,7 +782,7 @@ Partial Class Options Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(145, 19) Me.CheckBox4.TabIndex = 0 - Me.CheckBox4.Text = "Use a scratch directory" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.Options")("Scratch.Dir.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'PictureBox5 @@ -808,7 +804,7 @@ Partial Class Options Me.CheckBox14.Name = "CheckBox14" Me.CheckBox14.Size = New System.Drawing.Size(353, 19) Me.CheckBox14.TabIndex = 1 - Me.CheckBox14.Text = "Always save complete information for the following elements:" + Me.CheckBox14.Text = LocalizationService.ForSection("Designer.Options")("Always.Save.CheckBox") Me.CheckBox14.UseVisualStyleBackColor = True ' 'Label48 @@ -818,7 +814,7 @@ Partial Class Options Me.Label48.Name = "Label48" Me.Label48.Size = New System.Drawing.Size(665, 26) Me.Label48.TabIndex = 0 - Me.Label48.Text = "Choose the settings the program should consider when saving image information:" + Me.Label48.Text = LocalizationService.ForSection("Designer.Options")("SettingsConsider.Label") ' 'TableLayoutPanel2 ' @@ -849,7 +845,7 @@ Partial Class Options Me.CheckBox15.Name = "CheckBox15" Me.CheckBox15.Size = New System.Drawing.Size(122, 19) Me.CheckBox15.TabIndex = 1 - Me.CheckBox15.Text = "Installed packages" + Me.CheckBox15.Text = LocalizationService.ForSection("Designer.Options")("Installed.Packages.CheckBox") Me.CheckBox15.UseVisualStyleBackColor = True ' 'CheckBox19 @@ -861,7 +857,7 @@ Partial Class Options Me.CheckBox19.Name = "CheckBox19" Me.CheckBox19.Size = New System.Drawing.Size(108, 19) Me.CheckBox19.TabIndex = 1 - Me.CheckBox19.Text = "Installed drivers" + Me.CheckBox19.Text = LocalizationService.ForSection("Designer.Options")("InstalledDrivers.CheckBox") Me.CheckBox19.UseVisualStyleBackColor = True ' 'CheckBox18 @@ -873,7 +869,7 @@ Partial Class Options Me.CheckBox18.Name = "CheckBox18" Me.CheckBox18.Size = New System.Drawing.Size(87, 19) Me.CheckBox18.TabIndex = 1 - Me.CheckBox18.Text = "Capabilities" + Me.CheckBox18.Text = LocalizationService.ForSection("Designer.Options")("Capabilities.CheckBox") Me.CheckBox18.UseVisualStyleBackColor = True ' 'CheckBox16 @@ -885,7 +881,7 @@ Partial Class Options Me.CheckBox16.Name = "CheckBox16" Me.CheckBox16.Size = New System.Drawing.Size(70, 19) Me.CheckBox16.TabIndex = 1 - Me.CheckBox16.Text = "Features" + Me.CheckBox16.Text = LocalizationService.ForSection("Designer.Options")("Features.CheckBox") Me.CheckBox16.UseVisualStyleBackColor = True ' 'CheckBox17 @@ -897,7 +893,7 @@ Partial Class Options Me.CheckBox17.Name = "CheckBox17" Me.CheckBox17.Size = New System.Drawing.Size(154, 19) Me.CheckBox17.TabIndex = 1 - Me.CheckBox17.Text = "Installed AppX packages" + Me.CheckBox17.Text = LocalizationService.ForSection("Designer.Options")("Installed.AppX.CheckBox") Me.CheckBox17.UseVisualStyleBackColor = True ' 'Label19 @@ -907,8 +903,7 @@ Partial Class Options Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(687, 34) Me.Label19.TabIndex = 8 - Me.Label19.Text = "When this option is checked, your computer will not restart automatically; even w" & _ - "hen quietly performing operations." + Me.Label19.Text = LocalizationService.ForSection("Designer.Options")("Checked.Computer.Message") ' 'Label18 ' @@ -917,7 +912,7 @@ Partial Class Options Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(680, 64) Me.Label18.TabIndex = 8 - Me.Label18.Text = resources.GetString("Label18.Text") + Me.Label18.Text = LocalizationService.ForSection("Designer.Options")("QuietOperations.Message") ' 'CheckBox3 ' @@ -926,7 +921,7 @@ Partial Class Options Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(124, 19) Me.CheckBox3.TabIndex = 6 - Me.CheckBox3.Text = "Skip system restart" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.Options")("Skip.System.Restart.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -936,7 +931,7 @@ Partial Class Options Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(205, 19) Me.CheckBox2.TabIndex = 6 - Me.CheckBox2.Text = "Quietly perform image operations" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.Options")("Quietly.Image.Ops.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'Panel1 @@ -957,8 +952,7 @@ Partial Class Options Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(577, 33) Me.Label16.TabIndex = 0 - Me.Label16.Text = "The log file should display errors, warnings and information messages after perfo" & _ - "rming an image operation." + Me.Label16.Text = LocalizationService.ForSection("Designer.Options")("Log.File.Display.Message") ' 'Label15 ' @@ -968,7 +962,7 @@ Partial Class Options Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(315, 15) Me.Label15.TabIndex = 0 - Me.Label15.Text = "Errors, warnings and information messages (Log level 3)" + Me.Label15.Text = LocalizationService.ForSection("Designer.Options")("Errors.Warnings.Label") ' 'TrackBar1 ' @@ -991,8 +985,7 @@ Partial Class Options Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(664, 33) Me.Label13.TabIndex = 7 - Me.Label13.Text = "When performing image operations in the command line, specify the ""/LogPath"" argu" & _ - "ment to save the image operation log to the target log file." + Me.Label13.Text = LocalizationService.ForSection("Designer.Options")("Image.Ops.Message") ' 'Button3 ' @@ -1003,7 +996,7 @@ Partial Class Options Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 5 - Me.Button3.Text = "Browse..." + Me.Button3.Text = LocalizationService.ForSection("Designer.Options")("Browse.Button") Me.Button3.UseVisualStyleBackColor = True ' 'TextBox2 @@ -1024,7 +1017,7 @@ Partial Class Options Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(81, 15) Me.Label14.TabIndex = 3 - Me.Label14.Text = "Log file level:" + Me.Label14.Text = LocalizationService.ForSection("Designer.Options")("Log.File.Level.Label") ' 'Label12 ' @@ -1034,7 +1027,7 @@ Partial Class Options Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(123, 23) Me.Label12.TabIndex = 3 - Me.Label12.Text = "Operation log file:" + Me.Label12.Text = LocalizationService.ForSection("Designer.Options")("Operation.Log.File.Label") Me.Label12.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'CheckBox10 @@ -1046,7 +1039,7 @@ Partial Class Options Me.CheckBox10.Name = "CheckBox10" Me.CheckBox10.Size = New System.Drawing.Size(319, 19) Me.CheckBox10.TabIndex = 10 - Me.CheckBox10.Text = "Automatically create logs for each operation performed" + Me.CheckBox10.Text = LocalizationService.ForSection("Designer.Options")("Auto.Create.Logs.CheckBox") Me.CheckBox10.UseVisualStyleBackColor = True ' 'PictureBox4 @@ -1076,7 +1069,7 @@ Partial Class Options Me.RadioButton6.Name = "RadioButton6" Me.RadioButton6.Size = New System.Drawing.Size(61, 19) Me.RadioButton6.TabIndex = 6 - Me.RadioButton6.Text = "Classic" + Me.RadioButton6.Text = LocalizationService.ForSection("Designer.Options")("Classic.RadioButton") Me.RadioButton6.UseVisualStyleBackColor = True ' 'RadioButton5 @@ -1088,7 +1081,7 @@ Partial Class Options Me.RadioButton5.Size = New System.Drawing.Size(67, 19) Me.RadioButton5.TabIndex = 6 Me.RadioButton5.TabStop = True - Me.RadioButton5.Text = "Modern" + Me.RadioButton5.Text = LocalizationService.ForSection("Designer.Options")("Modern.RadioButton") Me.RadioButton5.UseVisualStyleBackColor = True ' 'Label45 @@ -1098,7 +1091,7 @@ Partial Class Options Me.Label45.Name = "Label45" Me.Label45.Size = New System.Drawing.Size(330, 24) Me.Label45.TabIndex = 2 - Me.Label45.Text = "Secondary progress panel style:" + Me.Label45.Text = LocalizationService.ForSection("Designer.Options")("Secondary.Progress.Label") Me.Label45.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Panel4 @@ -1118,8 +1111,7 @@ Partial Class Options Me.Label47.Name = "Label47" Me.Label47.Size = New System.Drawing.Size(641, 33) Me.Label47.TabIndex = 9 - Me.Label47.Text = "This font may not be readable on log windows. While you can still use it, we reco" & _ - "mmend monospaced fonts for increased readability." + Me.Label47.Text = LocalizationService.ForSection("Designer.Options")("Font.Readable.Log.Message") ' 'PictureBox9 ' @@ -1164,7 +1156,7 @@ Partial Class Options Me.LogPreview.ScrollBars = System.Windows.Forms.ScrollBars.Vertical Me.LogPreview.Size = New System.Drawing.Size(643, 182) Me.LogPreview.TabIndex = 4 - Me.LogPreview.Text = resources.GetString("LogPreview.Text") + Me.LogPreview.Text = LocalizationService.ForSection("Options.LogPreview")("Packages.Add.Message") ' 'Label11 ' @@ -1173,7 +1165,7 @@ Partial Class Options Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(51, 15) Me.Label11.TabIndex = 0 - Me.Label11.Text = "Preview:" + Me.Label11.Text = LocalizationService.ForSection("Designer.Options")("Preview.Label") ' 'Label10 ' @@ -1182,7 +1174,7 @@ Partial Class Options Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(123, 24) Me.Label10.TabIndex = 2 - Me.Label10.Text = "Log window font:" + Me.Label10.Text = LocalizationService.ForSection("Designer.Options")("Log.Window.Font.Label") Me.Label10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComboBox4 @@ -1201,7 +1193,7 @@ Partial Class Options Me.CheckBox9.Name = "CheckBox9" Me.CheckBox9.Size = New System.Drawing.Size(141, 19) Me.CheckBox9.TabIndex = 5 - Me.CheckBox9.Text = "Use uppercase menus" + Me.CheckBox9.Text = LocalizationService.ForSection("Designer.Options")("Uppercase.Menus.CheckBox") Me.CheckBox9.UseVisualStyleBackColor = True ' 'ComboBox3 @@ -1209,24 +1201,22 @@ Partial Class Options Me.ComboBox3.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox3.FormattingEnabled = True - Me.ComboBox3.Items.AddRange(New Object() {"Use system language", "English", "Spanish", "French", "Portuguese"}) Me.ComboBox3.Location = New System.Drawing.Point(119, 42) Me.ComboBox3.Name = "ComboBox3" Me.ComboBox3.Size = New System.Drawing.Size(592, 23) Me.ComboBox3.TabIndex = 3 - Me.ComboBox3.Text = "English" ' 'ComboBox2 ' Me.ComboBox2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox2.FormattingEnabled = True - Me.ComboBox2.Items.AddRange(New Object() {"Use system setting", "Light mode", "Dark mode"}) + Me.ComboBox2.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Options")("System.Setting.Item"), LocalizationService.ForSection("Designer.Options")("LightMode.Item"), LocalizationService.ForSection("Designer.Options")("DarkMode.Item")}) Me.ComboBox2.Location = New System.Drawing.Point(119, 13) Me.ComboBox2.Name = "ComboBox2" Me.ComboBox2.Size = New System.Drawing.Size(592, 23) Me.ComboBox2.TabIndex = 3 - Me.ComboBox2.Text = "Use system setting" + Me.ComboBox2.Text = LocalizationService.ForSection("Designer.Options")("System.Setting.Item") ' 'Label8 ' @@ -1235,7 +1225,7 @@ Partial Class Options Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(95, 23) Me.Label8.TabIndex = 2 - Me.Label8.Text = "Language:" + Me.Label8.Text = LocalizationService.ForSection("Designer.Options")("Language.Label") Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label7 @@ -1245,18 +1235,18 @@ Partial Class Options Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(95, 23) Me.Label7.TabIndex = 2 - Me.Label7.Text = "Color mode:" + Me.Label7.Text = LocalizationService.ForSection("Designer.Options")("ColorMode.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComboBox1 ' Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Settings file", "Registry"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Options")("SettingsFile.Item"), LocalizationService.ForSection("Designer.Options")("Registry.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(169, 14) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(556, 23) Me.ComboBox1.TabIndex = 5 - Me.ComboBox1.Text = "Settings file" + Me.ComboBox1.Text = LocalizationService.ForSection("Designer.Options")("SettingsFile.Item") ' 'LinkLabel1 ' @@ -1268,9 +1258,7 @@ Partial Class Options Me.LinkLabel1.Size = New System.Drawing.Size(681, 54) Me.LinkLabel1.TabIndex = 4 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "The program will enable or disable certain features according to what the DISM ve" & _ - "rsion supports. How is it going to affect my usage of this program, and which fe" & _ - "atures will be disabled accordingly?" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.Options")("Enable.Disable.Message") Me.LinkLabel1.UseCompatibleTextRendering = True ' 'PictureBox2 @@ -1290,7 +1278,7 @@ Partial Class Options Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(257, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "View DISM component versions" + Me.Button2.Text = LocalizationService.ForSection("Designer.Options")("View.DISM.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -1300,7 +1288,7 @@ Partial Class Options Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.Options")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -1317,7 +1305,7 @@ Partial Class Options Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(65, 15) Me.Label4.TabIndex = 0 - Me.Label4.Text = "" + Me.Label4.Text = LocalizationService.ForSection("Designer.Options")("Dismver.Label") ' 'Label5 ' @@ -1326,7 +1314,7 @@ Partial Class Options Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(145, 23) Me.Label5.TabIndex = 0 - Me.Label5.Text = "Save settings on:" + Me.Label5.Text = LocalizationService.ForSection("Designer.Options")("SaveSettings.Label") Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label3 @@ -1336,7 +1324,7 @@ Partial Class Options Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(48, 15) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Version:" + Me.Label3.Text = LocalizationService.ForSection("Designer.Options")("Version.Label") ' 'Label2 ' @@ -1345,7 +1333,7 @@ Partial Class Options Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(164, 23) Me.Label2.TabIndex = 0 - Me.Label2.Text = "DISM executable path:" + Me.Label2.Text = LocalizationService.ForSection("Designer.Options")("Dismexecutable.Path.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PrefReset @@ -1356,13 +1344,13 @@ Partial Class Options Me.PrefReset.Name = "PrefReset" Me.PrefReset.Size = New System.Drawing.Size(168, 23) Me.PrefReset.TabIndex = 2 - Me.PrefReset.Text = "Reset preferences" + Me.PrefReset.Text = LocalizationService.ForSection("Designer.Options")("ResetPreferences.Label") Me.PrefReset.UseVisualStyleBackColor = True ' 'LogSFD ' - Me.LogSFD.Filter = "All files|*.*" - Me.LogSFD.Title = "Specify the location of the log file" + Me.LogSFD.Filter = LocalizationService.ForSection("Designer.Options")("LogSFD.Filter") + Me.LogSFD.Title = LocalizationService.ForSection("Designer.Options")("Location.Log.File.Title") ' 'btnPanel ' @@ -1450,7 +1438,7 @@ Partial Class Options Me.Label49.Name = "Label49" Me.Label49.Size = New System.Drawing.Size(53, 15) Me.Label49.TabIndex = 0 - Me.Label49.Text = "Program" + Me.Label49.Text = LocalizationService.ForSection("Designer.Options")("Program.Label") ' 'PersonalizationSectionBtn ' @@ -1479,7 +1467,7 @@ Partial Class Options Me.Label50.Name = "Label50" Me.Label50.Size = New System.Drawing.Size(87, 15) Me.Label50.TabIndex = 0 - Me.Label50.Text = "Personalization" + Me.Label50.Text = LocalizationService.ForSection("Designer.Options")("Personalization.Label") ' 'LogSectionBtn ' @@ -1508,7 +1496,7 @@ Partial Class Options Me.Label51.Name = "Label51" Me.Label51.Size = New System.Drawing.Size(32, 15) Me.Label51.TabIndex = 0 - Me.Label51.Text = "Logs" + Me.Label51.Text = LocalizationService.ForSection("Designer.Options")("Logs.Label") ' 'ImgOpsSectionBtn ' @@ -1537,7 +1525,7 @@ Partial Class Options Me.Label52.Name = "Label52" Me.Label52.Size = New System.Drawing.Size(99, 15) Me.Label52.TabIndex = 0 - Me.Label52.Text = "Image operations" + Me.Label52.Text = LocalizationService.ForSection("Designer.Options")("ImageOperations.Label") ' 'ScDirSectionBtn ' @@ -1566,7 +1554,7 @@ Partial Class Options Me.Label53.Name = "Label53" Me.Label53.Size = New System.Drawing.Size(96, 15) Me.Label53.TabIndex = 0 - Me.Label53.Text = "Scratch directory" + Me.Label53.Text = LocalizationService.ForSection("Designer.Options")("Scratch.Dir.Label") ' 'OutputSectionBtn ' @@ -1595,7 +1583,7 @@ Partial Class Options Me.Label54.Name = "Label54" Me.Label54.Size = New System.Drawing.Size(92, 15) Me.Label54.TabIndex = 0 - Me.Label54.Text = "Program output" + Me.Label54.Text = LocalizationService.ForSection("Designer.Options")("ProgramOutput.Label") ' 'BgProcsSectionBtn ' @@ -1624,7 +1612,7 @@ Partial Class Options Me.Label55.Name = "Label55" Me.Label55.Size = New System.Drawing.Size(125, 15) Me.Label55.TabIndex = 0 - Me.Label55.Text = "Background processes" + Me.Label55.Text = LocalizationService.ForSection("Designer.Options")("BgProcesses.Label") ' 'AssocsSectionBtn ' @@ -1652,7 +1640,7 @@ Partial Class Options Me.Label57.Name = "Label57" Me.Label57.Size = New System.Drawing.Size(92, 15) Me.Label57.TabIndex = 0 - Me.Label57.Text = "File associations" + Me.Label57.Text = LocalizationService.ForSection("Designer.Options")("FileAssociations.Label") ' 'StartupSectionBtn ' @@ -1680,7 +1668,7 @@ Partial Class Options Me.Label58.Name = "Label58" Me.Label58.Size = New System.Drawing.Size(88, 15) Me.Label58.TabIndex = 0 - Me.Label58.Text = "Startup options" + Me.Label58.Text = LocalizationService.ForSection("Designer.Options")("StartupOptions.Label") ' 'ShutdownSectionBtn ' @@ -1708,7 +1696,7 @@ Partial Class Options Me.Label34.Name = "Label34" Me.Label34.Size = New System.Drawing.Size(104, 15) Me.Label34.TabIndex = 0 - Me.Label34.Text = "Shutdown options" + Me.Label34.Text = LocalizationService.ForSection("Designer.Options")("ShutdownOptions.Label") ' 'ValueContainer ' @@ -1782,7 +1770,7 @@ Partial Class Options Me.LinkLabel4.Size = New System.Drawing.Size(397, 15) Me.LinkLabel4.TabIndex = 12 Me.LinkLabel4.TabStop = True - Me.LinkLabel4.Text = "What is the difference between display names and friendly display names?" + Me.LinkLabel4.Text = LocalizationService.ForSection("Designer.Options")("Difference.Between.Link") ' 'TableLayoutPanel3 ' @@ -1809,7 +1797,7 @@ Partial Class Options Me.Label72.Name = "Label72" Me.Label72.Size = New System.Drawing.Size(115, 20) Me.Label72.TabIndex = 9 - Me.Label72.Text = "Package Name:" + Me.Label72.Text = LocalizationService.ForSection("Designer.Options")("PackageName.Label") Me.Label72.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label73 @@ -1820,7 +1808,7 @@ Partial Class Options Me.Label73.Name = "Label73" Me.Label73.Size = New System.Drawing.Size(505, 20) Me.Label73.TabIndex = 9 - Me.Label73.Text = "UbisoftEntertainment.RaymanJungleRun_1.2.0.88_x86__dbgk1hhpxymar" + Me.Label73.Text = LocalizationService.ForSection("Designer.Options")("RaymanJungle.Label") Me.Label73.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label74 @@ -1831,7 +1819,7 @@ Partial Class Options Me.Label74.Name = "Label74" Me.Label74.Size = New System.Drawing.Size(115, 20) Me.Label74.TabIndex = 9 - Me.Label74.Text = "Display Name:" + Me.Label74.Text = LocalizationService.ForSection("Designer.Options")("DisplayName.Label") Me.Label74.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label75 @@ -1847,7 +1835,7 @@ Partial Class Options 'ComboBox8 ' Me.ComboBox8.FormattingEnabled = True - Me.ComboBox8.Items.AddRange(New Object() {"Display name only", "Display name, then friendly display name", "Friendly display name only"}) + Me.ComboBox8.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Options")("Display.Name.Only.Item"), LocalizationService.ForSection("Designer.Options")("Display.Name.Friendly.Item"), LocalizationService.ForSection("Designer.Options")("Friendly.Display.Name.Item")}) Me.ComboBox8.Location = New System.Drawing.Point(20, 330) Me.ComboBox8.Name = "ComboBox8" Me.ComboBox8.Size = New System.Drawing.Size(686, 23) @@ -1860,7 +1848,7 @@ Partial Class Options Me.Label71.Name = "Label71" Me.Label71.Size = New System.Drawing.Size(54, 15) Me.Label71.TabIndex = 9 - Me.Label71.Text = "Example:" + Me.Label71.Text = LocalizationService.ForSection("Designer.Options")("Example.Label") ' 'Label70 ' @@ -1869,7 +1857,7 @@ Partial Class Options Me.Label70.Name = "Label70" Me.Label70.Size = New System.Drawing.Size(384, 15) Me.Label70.TabIndex = 9 - Me.Label70.Text = "When removing AppX packages, show display names using this format:" + Me.Label70.Text = LocalizationService.ForSection("Designer.Options")("Remove.AppX.Label") ' 'Label32 ' @@ -1878,7 +1866,7 @@ Partial Class Options Me.Label32.Name = "Label32" Me.Label32.Size = New System.Drawing.Size(680, 51) Me.Label32.TabIndex = 8 - Me.Label32.Text = resources.GetString("Label32.Text") + Me.Label32.Text = LocalizationService.ForSection("Designer.Options")("Only.Available.Message") ' 'CheckBox23 ' @@ -1887,7 +1875,7 @@ Partial Class Options Me.CheckBox23.Name = "CheckBox23" Me.CheckBox23.Size = New System.Drawing.Size(346, 19) Me.CheckBox23.TabIndex = 6 - Me.CheckBox23.Text = "Map system accounts to application registration information" + Me.CheckBox23.Text = LocalizationService.ForSection("Designer.Options")("Map.System.Accounts.CheckBox") Me.CheckBox23.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -1897,7 +1885,7 @@ Partial Class Options Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(238, 19) Me.CheckBox1.TabIndex = 13 - Me.CheckBox1.Text = "Show dates in a human-readable format" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.Options")("Show.Dates.Human.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'CheckBox8 @@ -1907,7 +1895,7 @@ Partial Class Options Me.CheckBox8.Name = "CheckBox8" Me.CheckBox8.Size = New System.Drawing.Size(400, 19) Me.CheckBox8.TabIndex = 13 - Me.CheckBox8.Text = "Prevent the machine from sleeping while performing image operations" + Me.CheckBox8.Text = LocalizationService.ForSection("Designer.Options")("PreventSleep.CheckBox") Me.CheckBox8.UseVisualStyleBackColor = True ' 'Panel7 @@ -1930,7 +1918,7 @@ Partial Class Options Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(150, 15) Me.Label9.TabIndex = 3 - Me.Label9.Text = "Saving image information" + Me.Label9.Text = LocalizationService.ForSection("Designer.Options")("Saving.Image.Label") ' 'Panel21 ' @@ -1957,12 +1945,12 @@ Partial Class Options Me.LinkLabel5.Size = New System.Drawing.Size(253, 15) Me.LinkLabel5.TabIndex = 12 Me.LinkLabel5.TabStop = True - Me.LinkLabel5.Text = "Help me understand AI feature tolerance levels" + Me.LinkLabel5.Text = LocalizationService.ForSection("Designer.Options")("Help.Me.Understand.Link") ' 'ComboBox9 ' Me.ComboBox9.FormattingEnabled = True - Me.ComboBox9.Items.AddRange(New Object() {"Turn off as many AI features in search engines as possible. I can't stand these", "Let me control the AI features in my search engine", "Turn on as many AI features in search engines as possible"}) + Me.ComboBox9.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Options")("Turn.Off.Many.Item"), LocalizationService.ForSection("Designer.Options")("Me.Control.AI.Item"), LocalizationService.ForSection("Designer.Options")("Turn.Many.Aifeatures.Item")}) Me.ComboBox9.Location = New System.Drawing.Point(43, 188) Me.ComboBox9.Name = "ComboBox9" Me.ComboBox9.Size = New System.Drawing.Size(480, 23) @@ -1983,7 +1971,7 @@ Partial Class Options Me.Label76.Name = "Label76" Me.Label76.Size = New System.Drawing.Size(232, 15) Me.Label76.TabIndex = 4 - Me.Label76.Text = "Artificial Intelligence (AI) feature tolerance:" + Me.Label76.Text = LocalizationService.ForSection("Designer.Options")("AIFeature.Label") ' 'Label69 ' @@ -1992,7 +1980,7 @@ Partial Class Options Me.Label69.Name = "Label69" Me.Label69.Size = New System.Drawing.Size(210, 15) Me.Label69.TabIndex = 4 - Me.Label69.Text = "Search Engine to use for web searches:" + Me.Label69.Text = LocalizationService.ForSection("Designer.Options")("Search.Engine.Web.Label") ' 'Label67 ' @@ -2002,7 +1990,7 @@ Partial Class Options Me.Label67.Name = "Label67" Me.Label67.Size = New System.Drawing.Size(205, 15) Me.Label67.TabIndex = 3 - Me.Label67.Text = "Searching image information online" + Me.Label67.Text = LocalizationService.ForSection("Designer.Options")("Searching.Image.Online.Label") ' 'Label68 ' @@ -2011,8 +1999,7 @@ Partial Class Options Me.Label68.Name = "Label68" Me.Label68.Size = New System.Drawing.Size(665, 48) Me.Label68.TabIndex = 0 - Me.Label68.Text = "If you want to learn more about an item online, you can leverage Web search. Choo" & _ - "se the settings the program should consider for web searches:" + Me.Label68.Text = LocalizationService.ForSection("Designer.Options")("Learn.Message") ' 'Options_FileAssocs ' @@ -2073,7 +2060,7 @@ Partial Class Options Me.Button14.Name = "Button14" Me.Button14.Size = New System.Drawing.Size(75, 23) Me.Button14.TabIndex = 3 - Me.Button14.Text = "Run now" + Me.Button14.Text = LocalizationService.ForSection("Designer.Options")("RunNow.Button") Me.Button14.UseVisualStyleBackColor = True ' 'Label60 @@ -2083,7 +2070,7 @@ Partial Class Options Me.Label60.Name = "Label60" Me.Label60.Size = New System.Drawing.Size(345, 15) Me.Label60.TabIndex = 1 - Me.Label60.Text = "Set options you would like to perform when the program closes:" + Me.Label60.Text = LocalizationService.ForSection("Designer.Options")("Behavior.OnClose.Label") ' 'CheckBox22 ' @@ -2092,7 +2079,7 @@ Partial Class Options Me.CheckBox22.Name = "CheckBox22" Me.CheckBox22.Size = New System.Drawing.Size(380, 19) Me.CheckBox22.TabIndex = 2 - Me.CheckBox22.Text = "Automatically clean up mount points (launches a separate process)" + Me.CheckBox22.Text = LocalizationService.ForSection("Designer.Options")("Automatically.Clean.CheckBox") Me.CheckBox22.UseVisualStyleBackColor = True ' 'Options_Startup @@ -2168,7 +2155,7 @@ Partial Class Options Me.Button7.Name = "Button7" Me.Button7.Size = New System.Drawing.Size(160, 26) Me.Button7.TabIndex = 0 - Me.Button7.Text = "Install Service" + Me.Button7.Text = LocalizationService.ForSection("Designer.Options")("InstallService.Button") Me.Button7.UseVisualStyleBackColor = True ' 'Button11 @@ -2179,7 +2166,7 @@ Partial Class Options Me.Button11.Name = "Button11" Me.Button11.Size = New System.Drawing.Size(160, 26) Me.Button11.TabIndex = 0 - Me.Button11.Text = "Enable Service" + Me.Button11.Text = LocalizationService.ForSection("Designer.Options")("EnableService.Button") Me.Button11.UseVisualStyleBackColor = True ' 'Button12 @@ -2190,7 +2177,7 @@ Partial Class Options Me.Button12.Name = "Button12" Me.Button12.Size = New System.Drawing.Size(160, 26) Me.Button12.TabIndex = 0 - Me.Button12.Text = "Disable Service" + Me.Button12.Text = LocalizationService.ForSection("Designer.Options")("DisableService.Button") Me.Button12.UseVisualStyleBackColor = True ' 'Button13 @@ -2201,7 +2188,7 @@ Partial Class Options Me.Button13.Name = "Button13" Me.Button13.Size = New System.Drawing.Size(160, 26) Me.Button13.TabIndex = 0 - Me.Button13.Text = "Delete Service" + Me.Button13.Text = LocalizationService.ForSection("Designer.Options")("DeleteService.Button") Me.Button13.UseVisualStyleBackColor = True ' 'GroupBox2 @@ -2214,7 +2201,7 @@ Partial Class Options Me.GroupBox2.Size = New System.Drawing.Size(668, 84) Me.GroupBox2.TabIndex = 4 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Service Status" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.Options")("ServiceStatus.Group") ' 'TableLayoutPanel4 ' @@ -2242,7 +2229,7 @@ Partial Class Options Me.Label79.Name = "Label79" Me.Label79.Size = New System.Drawing.Size(130, 31) Me.Label79.TabIndex = 0 - Me.Label79.Text = "Installed?" + Me.Label79.Text = LocalizationService.ForSection("Designer.Options")("Installed.Label") Me.Label79.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label80 @@ -2262,7 +2249,7 @@ Partial Class Options Me.Label81.Name = "Label81" Me.Label81.Size = New System.Drawing.Size(130, 31) Me.Label81.TabIndex = 0 - Me.Label81.Text = "Installation Path:" + Me.Label81.Text = LocalizationService.ForSection("Designer.Options")("InstallationPath.Label") Me.Label81.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label82 @@ -2282,7 +2269,7 @@ Partial Class Options Me.Label77.Name = "Label77" Me.Label77.Size = New System.Drawing.Size(187, 15) Me.Label77.TabIndex = 3 - Me.Label77.Text = "Automatic Image Reload service" + Me.Label77.Text = LocalizationService.ForSection("Designer.Options")("Automatic.Image.Reload.Label") ' 'Label83 ' @@ -2291,9 +2278,7 @@ Partial Class Options Me.Label83.Name = "Label83" Me.Label83.Size = New System.Drawing.Size(665, 47) Me.Label83.TabIndex = 0 - Me.Label83.Text = "You may still see the standard servicing session reload procedures from DISMTools" & _ - " take place for images that the service could not reload the servicing sessions " & _ - "for." + Me.Label83.Text = LocalizationService.ForSection("Designer.Options")("Still.See.Standard.Message") ' 'Label78 ' @@ -2302,9 +2287,7 @@ Partial Class Options Me.Label78.Name = "Label78" Me.Label78.Size = New System.Drawing.Size(665, 47) Me.Label78.TabIndex = 0 - Me.Label78.Text = "The Automatic Image Reload service can help you have your Windows images ready fo" & _ - "r servicing by reloading their servicing sessions on system startup. You can con" & _ - "trol the service here:" + Me.Label78.Text = LocalizationService.ForSection("Designer.Options")("Automatic.Image.Message") ' 'Options_Personalization ' @@ -2358,7 +2341,7 @@ Partial Class Options Me.GroupBox1.Size = New System.Drawing.Size(693, 139) Me.GroupBox1.TabIndex = 6 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Color Themes" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.Options")("ColorThemes.Group") ' 'Button6 ' @@ -2367,7 +2350,7 @@ Partial Class Options Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(193, 23) Me.Button6.TabIndex = 4 - Me.Button6.Text = "Design your themes" + Me.Button6.Text = LocalizationService.ForSection("Designer.Options")("DesignThemes.Button") Me.Button6.UseVisualStyleBackColor = True ' 'Label30 @@ -2377,7 +2360,7 @@ Partial Class Options Me.Label30.Name = "Label30" Me.Label30.Size = New System.Drawing.Size(95, 23) Me.Label30.TabIndex = 2 - Me.Label30.Text = "Light Mode:" + Me.Label30.Text = LocalizationService.ForSection("Designer.Options")("LightMode.Label") Me.Label30.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label33 @@ -2387,7 +2370,7 @@ Partial Class Options Me.Label33.Name = "Label33" Me.Label33.Size = New System.Drawing.Size(406, 23) Me.Label33.TabIndex = 2 - Me.Label33.Text = "You can also make your own themes." + Me.Label33.Text = LocalizationService.ForSection("Designer.Options")("Own.Themes.Label") Me.Label33.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label31 @@ -2397,8 +2380,7 @@ Partial Class Options Me.Label31.Name = "Label31" Me.Label31.Size = New System.Drawing.Size(671, 23) Me.Label31.TabIndex = 2 - Me.Label31.Text = "You can have the program change the color theme according to your preferred color" & _ - " mode." + Me.Label31.Text = LocalizationService.ForSection("Designer.Options")("Change.Color.Theme.Label") Me.Label31.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label17 @@ -2408,7 +2390,7 @@ Partial Class Options Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(95, 23) Me.Label17.TabIndex = 2 - Me.Label17.Text = "Dark Mode:" + Me.Label17.Text = LocalizationService.ForSection("Designer.Options")("DarkMode.Label") Me.Label17.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'LightThemesCB @@ -2438,7 +2420,7 @@ Partial Class Options Me.CheckBox21.Name = "CheckBox21" Me.CheckBox21.Size = New System.Drawing.Size(235, 19) Me.CheckBox21.TabIndex = 5 - Me.CheckBox21.Text = "Show date and time on the project view" + Me.CheckBox21.Text = LocalizationService.ForSection("Designer.Options")("Show.Date.Time.CheckBox") Me.CheckBox21.UseVisualStyleBackColor = True ' 'Panel17 @@ -2465,7 +2447,7 @@ Partial Class Options Me.Label59.Name = "Label59" Me.Label59.Size = New System.Drawing.Size(108, 15) Me.Label59.TabIndex = 0 - Me.Label59.Text = "Log customization" + Me.Label59.Text = LocalizationService.ForSection("Designer.Options")("LogCustomization.Label") ' 'Panel18 ' @@ -2497,7 +2479,7 @@ Partial Class Options Me.Label61.Name = "Label61" Me.Label61.Size = New System.Drawing.Size(690, 24) Me.Label61.TabIndex = 9 - Me.Label61.Text = "Preview:" + Me.Label61.Text = LocalizationService.ForSection("Designer.Options")("Preview.Label") Me.Label61.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'CheckBox7 @@ -2507,7 +2489,7 @@ Partial Class Options Me.CheckBox7.Name = "CheckBox7" Me.CheckBox7.Size = New System.Drawing.Size(275, 19) Me.CheckBox7.TabIndex = 8 - Me.CheckBox7.Text = "Show log view on the progress panel by default" + Me.CheckBox7.Text = LocalizationService.ForSection("Designer.Options")("Show.Log.View.CheckBox") Me.CheckBox7.UseVisualStyleBackColor = True ' 'ProgressPanelPic @@ -2638,7 +2620,7 @@ Partial Class Options Me.LinkLabel3.Size = New System.Drawing.Size(202, 15) Me.LinkLabel3.TabIndex = 9 Me.LinkLabel3.TabStop = True - Me.LinkLabel3.Text = "Show me where these logs are stored" + Me.LinkLabel3.Text = LocalizationService.ForSection("Designer.Options")("Show.Me.Logs.Link") ' 'CheckBox20 ' @@ -2649,7 +2631,7 @@ Partial Class Options Me.CheckBox20.Name = "CheckBox20" Me.CheckBox20.Size = New System.Drawing.Size(234, 25) Me.CheckBox20.TabIndex = 8 - Me.CheckBox20.Text = "Disable DynaLog logging" + Me.CheckBox20.Text = LocalizationService.ForSection("Designer.Options")("Disable.Dyna.Log.CheckBox") Me.CheckBox20.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.CheckBox20.UseVisualStyleBackColor = True ' @@ -2661,7 +2643,7 @@ Partial Class Options Me.Label64.Name = "Label64" Me.Label64.Size = New System.Drawing.Size(142, 15) Me.Label64.TabIndex = 3 - Me.Label64.Text = "DynaLog logging control" + Me.Label64.Text = LocalizationService.ForSection("Designer.Options")("Dyna.Log.Logging.Label") ' 'Label62 ' @@ -2672,7 +2654,7 @@ Partial Class Options Me.Label62.Name = "Label62" Me.Label62.Size = New System.Drawing.Size(686, 122) Me.Label62.TabIndex = 7 - Me.Label62.Text = resources.GetString("Label62.Text") + Me.Label62.Text = LocalizationService.ForSection("Designer.Options")("Dyna.Log.Logging.Message") ' 'Panel25 ' @@ -2695,7 +2677,7 @@ Partial Class Options Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(75, 23) Me.Button5.TabIndex = 9 - Me.Button5.Text = "Browse..." + Me.Button5.Text = LocalizationService.ForSection("Designer.Options")("Browse.Button") Me.Button5.UseVisualStyleBackColor = True ' 'TextBox5 @@ -2715,7 +2697,7 @@ Partial Class Options Me.Label66.Name = "Label66" Me.Label66.Size = New System.Drawing.Size(84, 15) Me.Label66.TabIndex = 3 - Me.Label66.Text = "System Editor" + Me.Label66.Text = LocalizationService.ForSection("Designer.Options")("SystemEditor.Label") ' 'Label65 ' @@ -2726,7 +2708,7 @@ Partial Class Options Me.Label65.Name = "Label65" Me.Label65.Size = New System.Drawing.Size(155, 15) Me.Label65.TabIndex = 7 - Me.Label65.Text = "Editor to open log files with:" + Me.Label65.Text = LocalizationService.ForSection("Designer.Options")("Editor.Open.Log.Label") ' 'Label63 ' @@ -2737,9 +2719,7 @@ Partial Class Options Me.Label63.Name = "Label63" Me.Label63.Size = New System.Drawing.Size(686, 34) Me.Label63.TabIndex = 7 - Me.Label63.Text = "By default, operation logs are opened with Notepad in the event of an operation e" & _ - "rror. However, if you want to open them with a different program, specify it bel" & _ - "ow:" + Me.Label63.Text = LocalizationService.ForSection("Designer.Options")("Default.Op.Logs.Message") ' 'Options_Scratch ' @@ -2872,8 +2852,8 @@ Partial Class Options ' 'EditorOFD ' - Me.EditorOFD.Filter = "Programs|*.exe" - Me.EditorOFD.Title = "Specify the editor to use" + Me.EditorOFD.Filter = LocalizationService.ForSection("Designer.Options")("ProgramsEXE.Filter") + Me.EditorOFD.Title = LocalizationService.ForSection("Designer.Options")("Editor.Title") ' 'ImageTaskHeader1 ' @@ -2896,7 +2876,7 @@ Partial Class Options Me.CheckBox24.Name = "CheckBox24" Me.CheckBox24.Size = New System.Drawing.Size(226, 19) Me.CheckBox24.TabIndex = 2 - Me.CheckBox24.Text = "Set custom file icons for starter scripts" + Me.CheckBox24.Text = LocalizationService.ForSection("Designer.Options")("Set.Custom.CheckBox") Me.CheckBox24.UseVisualStyleBackColor = True ' 'Options @@ -2916,7 +2896,7 @@ Partial Class Options Me.Name = "Options" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Options" + Me.Text = LocalizationService.ForSection("Designer.Options")("Options.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Panel3.ResumeLayout(False) Me.Panel3.PerformLayout() diff --git a/Panels/Exe_Ops/Options.resx b/Panels/Exe_Ops/Options.resx index 89c4dfa9f..6c1c4729d 100644 --- a/Panels/Exe_Ops/Options.resx +++ b/Panels/Exe_Ops/Options.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -123,59 +65,9 @@ 120, 17 - - Image Version: 10.0.19045.2075 - -Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1 - -Feature Name : TFTP -State : Disabled - -Feature Name : LegacyComponents -State : Enabled - -Feature Name : DirectPlay -State : Enabled - -Feature Name : SimpleTCP -State : Disabled - -Feature Name : Windows-Identity-Foundation -State : Disabled - -Feature Name : NetFx3 -State : Enabled - - - When quietly performing operations, the program will hide information and progress output. Error messages will still be shown. -This option will not be used when getting information of, for example, packages or features. -Also, when performing image servicing, your computer may restart automatically. - - - Adding packages to the mounted image... -- Package source: C:\w100-glb -- Addition operation: selective -- Ignore applicability checks? No -- Prevent package addition if online actions need to be performed? No -- Commit image after operations are done? Yes -Enumerating packages to add. Please wait... -Total number of packages: 128 - -Processing 128 packages... -Package 1 of 128 - 233, 17 - - This is only available when managing active installations. -When getting information about AppX packages, DISMTools can map the IDs and names of the local accounts in this system to tell you which users an application is registered to more precisely. - - - DynaLog logging provides a method for saving diagnostic logs that can be used to help fix program issues, in case you encounter them. You can disable the logger using the toggle below, but it's not recommended. - -Disable logging only if it causes a performance overhead on your computer. Clicking the toggle will apply this setting automatically. - 326, 17 diff --git a/Panels/Exe_Ops/Options.vb b/Panels/Exe_Ops/Options.vb index bfbf963a2..da29c7e55 100644 --- a/Panels/Exe_Ops/Options.vb +++ b/Panels/Exe_Ops/Options.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Globalization @@ -8,14 +8,24 @@ Public Class Options Dim DismVersion As FileVersionInfo Dim CanExit As Boolean - Dim SaveLocations() As String = New String(1) {"Settings file", "Registry"} - Dim ColorModes() As String = New String(2) {"Use system setting", "Light mode", "Dark mode"} - Dim Languages() As String = New String(5) {"Use system language", "English", "Spanish", "French", "Portuguese", "Italian"} - Dim LogViews() As String = New String(1) {"list", "table"} - Dim NotFreqs() As String = New String(1) {"Every time a project has been loaded successfully", "Once"} + Dim SaveLocations() As String = New String(1) {"", ""} + Dim ColorModes() As String = New String(2) {"", "", ""} + Dim LogViews() As String = New String(1) {"", ""} + Dim NotFreqs() As String = New String(1) {"", ""} Public SectionNum As Integer = 0 + Private isInitializingForm As Boolean = True + Private isApplyingLocalizedText As Boolean = False + Private isLoadingFileAssociationState As Boolean = False + Private originalLanguage As String = LocalizationService.DefaultCultureCode + + Public Sub New() + isInitializingForm = True + InitializeComponent() + isInitializingForm = False + End Sub + Private AutoReloadServiceInstalled As Boolean Private AutoReloadService As WindowsService @@ -115,7 +125,7 @@ Public Class Options MainForm.SaveOnSettingsIni = False End Select MainForm.ColorMode = ComboBox2.SelectedIndex - MainForm.Language = ComboBox3.SelectedIndex + MainForm.LanguageCode = GetSelectedLanguageCode(ComboBox3, MainForm.LanguageCode) MainForm.LogFont = ComboBox4.Text MainForm.LogFontSize = NumericUpDown1.Value If Toggle1.Checked Then @@ -176,7 +186,7 @@ Public Class Options MainForm.DarkThemeIndex = DarkThemesCB.SelectedIndex MainForm.LightThemeIndex = LightThemesCB.SelectedIndex MainForm.ChangePrgColors(MainForm.ColorMode) - MainForm.ChangeLangs(MainForm.Language) + MainForm.ApplyLanguage(MainForm.LanguageCode) If MountedImgMgr.Visible Then MountedImgMgr.Close() MountedImgMgr.Show() @@ -226,17 +236,17 @@ Public Class Options DynaLog.LogMessage("Error Code: " & ErrorCode) Select Case ErrorCode Case 1 - MsgBox("The DISM executable path was not specified. Please specify one and try again", MsgBoxStyle.Critical, "DISMTools") + MsgBox(LocalizationService.ForSection("Options.Messages")("Dismexecutable.Path.Message"), MsgBoxStyle.Critical, "DISMTools") Case 2 - MsgBox("The DISM executable does not exist in the file system. Please verify the file still exists and try again", MsgBoxStyle.Critical, "DISMTools") + MsgBox(LocalizationService.ForSection("Options.Messages")("DISM.Executable.Message"), MsgBoxStyle.Critical, "DISMTools") Case 3 - MsgBox("The log file was not specified. Please specify one and try again", MsgBoxStyle.Critical, "DISMTools") + MsgBox(LocalizationService.ForSection("Options.Messages")("Log.File.Label"), MsgBoxStyle.Critical, "DISMTools") Case 4 - MsgBox("The program tried to create the specified log file, but has failed. Please try again", MsgBoxStyle.Critical, "DISMTools") + MsgBox(LocalizationService.ForSection("Options.Messages")("Tried.Create.Message"), MsgBoxStyle.Critical, "DISMTools") Case 5 - MsgBox("The scratch directory was not specified. Please specify one and try again", MsgBoxStyle.Critical, "DISMTools") + MsgBox(LocalizationService.ForSection("Options.Messages")("ScratchDir.Message"), MsgBoxStyle.Critical, "DISMTools") Case 6 - MsgBox("The program tried to create the specified scratch directory, but has failed. Please try again", MsgBoxStyle.Critical, "DISMTools") + MsgBox(LocalizationService.ForSection("Options.Messages")("Tried.Scratch.Message"), MsgBoxStyle.Critical, "DISMTools") End Select End Sub @@ -246,16 +256,26 @@ Public Class Options DynaLog.LogMessage("Getting values from root class " & Quote & RootClass & Quote & "...") Dim AssocCmd As String = FileAssociationHelper.GetFileAssociationCmdline(RootClass) DynaLog.LogMessage("Command-line of association: " & Quote & AssocCmd & Quote) + If String.IsNullOrWhiteSpace(AssocCmd) Then + DynaLog.LogMessage("No command-line is registered for association root class " & Quote & RootClass & Quote & ".") + Return False + End If - ' Separate each part of the command-line to get the application path - Dim CmdlineParts As String() = AssocCmd.Replace(Quote, "").Split(" ") - Dim AssocCmdPath As String = "" - For i = 0 To CmdlineParts.Length - 1 - AssocCmdPath &= " " & CmdlineParts(i) - If File.Exists(AssocCmdPath) Then Exit For - Next - AssocCmd = AssocCmdPath - Return File.Exists(AssocCmd) + Dim trimmedCommand As String = AssocCmd.Trim() + Dim executablePath As String = "" + Dim quoteCharacter As Char = ChrW(34) + If trimmedCommand.Length > 0 AndAlso trimmedCommand(0) = quoteCharacter Then + Dim closingQuoteIndex As Integer = trimmedCommand.IndexOf(quoteCharacter, 1) + If closingQuoteIndex > 1 Then executablePath = trimmedCommand.Substring(1, closingQuoteIndex - 1) + Else + Dim firstSpaceIndex As Integer = trimmedCommand.IndexOf(" "c) + executablePath = If(firstSpaceIndex >= 0, trimmedCommand.Substring(0, firstSpaceIndex), trimmedCommand) + End If + + DynaLog.LogMessage("Executable path registered for association: " & Quote & executablePath & Quote) + Dim associationExecutableExists As Boolean = File.Exists(executablePath) + DynaLog.LogMessage("Does the registered association executable exist? " & associationExecutableExists) + Return associationExecutableExists Catch ex As Exception DynaLog.LogMessage("Could not detect file associations. Error message: " & ex.Message) Return False @@ -275,12 +295,14 @@ Public Class Options DynaLog.LogMessage("- Use a custom icon (DTPROJ)? " & If(DtProjUseCustomIcon, "Yes", "No")) DynaLog.LogMessage("- Use a custom icon (DTSS)? " & If(DtssUseCustomIcon, "Yes", "No")) + Dim dtProjAssociationSucceeded As Boolean If DTProjAssocCB.Checked Then - FileAssociationHelper.SetFileAssociation(".dtproj", "DISMTools.Project", String.Format("{0}{1}{0} {0}/load={0}%1{0}{0}", Quote, Path.Combine(Application.StartupPath, "DISMTools.exe")), - "DISMTools Project", If(DtProjUseCustomIcon, Path.Combine(Application.StartupPath, "resources", "dtproj.ico"), ""), Not DtProjUseCustomIcon) + dtProjAssociationSucceeded = FileAssociationHelper.SetFileAssociation(".dtproj", "DISMTools.Project", String.Format("{0}{1}{0} /load={0}%1{0}", Quote, Path.Combine(Application.StartupPath, "DISMTools.exe")), + "DISMTools Project", If(DtProjUseCustomIcon, Path.Combine(Application.StartupPath, "resources", "dtproj.ico"), ""), Not DtProjUseCustomIcon) Else - FileAssociationHelper.RemoveFileAssociation(".dtproj", "DISMTools.Project") + dtProjAssociationSucceeded = FileAssociationHelper.RemoveFileAssociation(".dtproj", "DISMTools.Project") End If + DynaLog.LogMessage("DISMTools project association update succeeded: " & dtProjAssociationSucceeded) If DTSSEditAssocCB.Checked Then FileAssociationHelper.SetFileAssociation(".dtss", "DTSSEdit.StarterScript", String.Format("{0}{1}{0} /dtss={0}%1{0}", Quote, Path.Combine(Application.StartupPath, "tools", "StarterScriptEditor", "StarterScriptEditor.exe")), "DISMTools Starter Script", If(DtssUseCustomIcon, Path.Combine(Application.StartupPath, "tools", "StarterScriptEditor", "DTSSIcon.ico"), ""), Not DtssUseCustomIcon) @@ -290,16 +312,32 @@ Public Class Options DynaLog.LogMessage("Checking file associations one more time...") - DTProjAssocCB.Checked = DetectFileAssociations("DISMTools.Project") - CheckBox11.Checked = FileAssociationHelper.GetFileAssociationIconPath("DISMTools.Project") <> "" - DTSSEditAssocCB.Checked = DetectFileAssociations("DTSSEdit.StarterScript") - CheckBox24.Checked = FileAssociationHelper.GetFileAssociationIconPath("DTSSEdit.StarterScript") <> "" + LoadFileAssociationState() + End Sub + + Private Sub LoadFileAssociationState() + isLoadingFileAssociationState = True + Try + Dim dtProjAssociationExists As Boolean = DetectFileAssociations("DISMTools.Project") + DTProjAssocCB.Checked = dtProjAssociationExists + CheckBox11.Checked = dtProjAssociationExists AndAlso + Not String.IsNullOrWhiteSpace(FileAssociationHelper.GetFileAssociationIconPath("DISMTools.Project")) + CheckBox11.Enabled = dtProjAssociationExists + + DTSSEditAssocCB.Checked = DetectFileAssociations("DTSSEdit.StarterScript") + CheckBox24.Checked = DTSSEditAssocCB.Checked AndAlso + Not String.IsNullOrWhiteSpace(FileAssociationHelper.GetFileAssociationIconPath("DTSSEdit.StarterScript")) + Finally + isLoadingFileAssociationState = False + End Try End Sub Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click DynaLog.LogMessage("Applying program settings...") ApplyProgSettings() If CanExit Then + DynaLog.LogMessage("Saving program settings...") + MainForm.SaveDTSettings() DynaLog.LogMessage("We can close the Options dialog.") Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() @@ -307,6 +345,8 @@ Public Class Options End Sub Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + MainForm.LanguageCode = LocalizationService.NormalizeCultureCode(originalLanguage) + MainForm.ApplyLanguage(MainForm.LanguageCode) Me.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.Close() End Sub @@ -314,7 +354,7 @@ Public Class Options Private Sub GetAIRServiceInformation() AutoReloadService = WindowsServiceHelper.GetOnlineSystemServiceInformationByName("DT_AutoReload") - Label80.Text = If(AutoReloadService IsNot Nothing, "Yes", "No") + Label80.Text = If(AutoReloadService IsNot Nothing, LocalizationService.ForSection("Options.AIRServiceInfo")("Yes.Button"), LocalizationService.ForSection("Options.AIRServiceInfo")("No.Button")) Button7.Enabled = AutoReloadService Is Nothing Button13.Enabled = AutoReloadService IsNot Nothing @@ -333,7 +373,7 @@ Public Class Options ' don't grab the version then End Try Else - Label80.Text = "No" + Label80.Text = LocalizationService.ForSection("Options.AIRServiceInfo")("No.Button") Label82.Text = "" Button11.Enabled = False Button12.Enabled = False @@ -341,7 +381,7 @@ Public Class Options Button13.Enabled = False End If Else - Label80.Text = "No" + Label80.Text = LocalizationService.ForSection("Options.AIRServiceInfo")("No.Button") Label82.Text = "" Button11.Enabled = False Button12.Enabled = False @@ -349,7 +389,65 @@ Public Class Options End Sub - Private Sub Options_Load(sender As Object, e As EventArgs) Handles MyBase.Load + + Private Sub RestoreComboBoxIndex(comboBox As ComboBox, selectedIndex As Integer) + If comboBox.Items.Count = 0 Then Return + If selectedIndex < 0 Then Return + comboBox.SelectedIndex = Math.Min(selectedIndex, comboBox.Items.Count - 1) + End Sub + + Private Function GetSelectedLanguageCode(comboBox As ComboBox, fallbackCultureCode As String) As String + If comboBox.SelectedItem IsNot Nothing AndAlso TypeOf comboBox.SelectedItem Is LocalizationLanguageInfo Then + Return DirectCast(comboBox.SelectedItem, LocalizationLanguageInfo).Code + End If + + If comboBox.SelectedValue IsNot Nothing Then + Return comboBox.SelectedValue.ToString() + End If + + Return LocalizationService.NormalizeCultureCode(fallbackCultureCode) + End Function + + Private Sub PopulateLanguageComboBox(comboBox As ComboBox, selectedCultureCode As String) + Dim normalizedCultureCode As String = LocalizationService.NormalizeCultureCode(selectedCultureCode) + comboBox.Items.Clear() + + For Each languageInfo As LocalizationLanguageInfo In LocalizationService.GetAvailableLanguages() + comboBox.Items.Add(languageInfo) + Next + + Dim selectedIndex As Integer = -1 + For index As Integer = 0 To comboBox.Items.Count - 1 + Dim languageInfo As LocalizationLanguageInfo = TryCast(comboBox.Items(index), LocalizationLanguageInfo) + If languageInfo IsNot Nothing AndAlso languageInfo.Code.Equals(normalizedCultureCode, StringComparison.OrdinalIgnoreCase) Then + selectedIndex = index + Exit For + End If + Next + + If selectedIndex < 0 Then + For index As Integer = 0 To comboBox.Items.Count - 1 + Dim languageInfo As LocalizationLanguageInfo = TryCast(comboBox.Items(index), LocalizationLanguageInfo) + If languageInfo IsNot Nothing AndAlso languageInfo.Code.Equals(LocalizationService.DefaultCultureCode, StringComparison.OrdinalIgnoreCase) Then + selectedIndex = index + Exit For + End If + Next + End If + + If selectedIndex >= 0 Then comboBox.SelectedIndex = selectedIndex + End Sub + + Private Sub ApplyLocalizedText() + Dim selectedSaveLocation As Integer = ComboBox1.SelectedIndex + Dim selectedColorMode As Integer = ComboBox2.SelectedIndex + Dim selectedLanguageCode As String = GetSelectedLanguageCode(ComboBox3, MainForm.LanguageCode) + Dim selectedLogView As Integer = ComboBox5.SelectedIndex + Dim selectedNotificationFrequency As Integer = ComboBox6.SelectedIndex + Dim selectedSearchEngine As Object = ComboBox7.SelectedItem + + isApplyingLocalizedText = True + Try DynaLog.LogMessage("Resetting values to add translated resources...") ComboBox1.Items.Clear() ComboBox2.Items.Clear() @@ -362,1103 +460,174 @@ Public Class Options ComboBox3.SelectedText = "" ComboBox5.SelectedText = "" ComboBox6.SelectedText = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Options" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Program" - Label50.Text = "Personalization" - Label51.Text = "Logs" - Label52.Text = "Image operations" - Label53.Text = "Scratch directory" - Label54.Text = "Program output" - Label55.Text = "Background processes" - Label57.Text = "File associations" - Label58.Text = "Startup options" - Label34.Text = "Shutdown options" - Label2.Text = "DISM executable path:" - Label3.Text = "Version:" - Label5.Text = "Save settings on:" - Label7.Text = "Color mode:" - Label8.Text = "Language:" - 'Label9.Text = "Please specify the settings for the log window:" - Label10.Text = "Log window font:" - Label11.Text = "Preview:" - Label12.Text = "Operation log file:" - Label13.Text = "When performing image operations in the command line, specify the " & Quote & "/LogPath" & Quote & " argument to save the image operation log to the target log file." - Label14.Text = "Log file level:" - Label18.Text = "When quietly performing operations, the program will hide information and progress output. Error messages will still be shown." & CrLf & "This option will not be used when getting information of, for example, packages or features." & CrLf & "Also, when performing image servicing, your computer may restart automatically." - Label19.Text = "When this option is checked, your computer will not restart automatically; even when quietly performing operations" - Label20.Text = "Please specify the scratch directory to be used for DISM operations:" - Label21.Text = "Scratch directory:" - Label22.Text = "Space left on selected scratch directory:" - Label25.Text = "Log view:" - Label26.Text = "Example report:" - Label27.Text = "Some reports do not allow being shown as a table." - Label28.Text = "When should the program notify you about background processes being started?" - Label29.Text = "The program uses background processes to gather complete image information, like modification dates, installed packages, features present; and more" - Label40.Text = "Manage file associations for DISMTools components:" - Label43.Text = "Set options you would like to perform when the program starts up:" - Label44.Text = "The program will use the scratch directory provided by the project if one is loaded. If you are in the online or offline installation management modes, the program will use its scratch directory" - Label45.Text = "Secondary progress panel style:" - Label46.Text = "These settings aren't applicable to non-portable installations" - Label47.Text = "This font may not be readable on log windows. While you can still use it, we recommend monospaced fonts for increased readability." - Label48.Text = "Choose the settings the program should consider when saving image information:" - Button1.Text = "Browse..." - Button2.Text = "View DISM component versions" - Button3.Text = "Browse..." - Button4.Text = "Browse..." - Button9.Text = "Set file associations" - Button10.Text = "Advanced settings" - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - PrefReset.Text = "Reset preferences" - CheckBox2.Text = "Quietly perform image operations" - CheckBox3.Text = "Skip system restart" - CheckBox4.Text = "Use a scratch directory" - CheckBox5.Text = "Show command output in English" - CheckBox6.Text = "Notify me when background processes have started" - CheckBox7.Text = "Show log view on the progress panel by default" - CheckBox9.Text = "Use uppercase menus" - CheckBox10.Text = "Automatically create logs for each operation performed" - CheckBox11.Text = "Set custom file icons for DISMTools projects" - CheckBox12.Text = "Remount mounted images in need of a servicing session reload" - CheckBox13.Text = "Check for updates" - CheckBox14.Text = "Always save complete information for the following elements:" - CheckBox15.Text = "Installed packages" - CheckBox16.Text = "Features" - CheckBox17.Text = "Installed AppX packages" - CheckBox18.Text = "Capabilities" - CheckBox19.Text = "Installed drivers" - CheckBox22.Text = "Automatically clean up mount points (launches a separate process)" - DismOFD.Title = "Specify the DISM executable to use" - Label59.Text = "Log customization" - Label60.Text = "Set options you would like to perform when the program closes:" - Label61.Text = "Preview:" - Label9.Text = "Saving image information" - LinkLabel1.Text = "The program will enable or disable certain features according to what the DISM version supports. How is it going to affect my usage of this program, and which features will be disabled accordingly?" - LinkLabel1.LinkArea = New LinkArea(97, 100) - LinkLabel2.Text = "Learn more about background processes" - LogSFD.Title = "Specify the location of the log file" - RadioButton3.Text = "Use the project or program scratch directory" - RadioButton4.Text = "Use the specified scratch directory" - RadioButton5.Text = "Modern" - RadioButton6.Text = "Classic" - ScratchFBD.Description = "Specify the scratch directory the program should use:" - Label62.Text = "DynaLog logging provides a method for saving diagnostic logs that can be used to help fix program issues, in case you encounter them. You can disable the logger using the toggle below, but it's not recommended." & CrLf & CrLf & - "Disable logging only if it causes a performance overhead on your computer. Clicking the toggle will apply this setting automatically." - Label63.Text = "By default, operation logs are opened with Notepad in the event of an operation error. However, if you want to open them with a different program, specify it below:" - Label64.Text = "DynaLog logging control" - Label65.Text = "Editor to open log files with:" - Label66.Text = "System Editor" - Button5.Text = "Browse..." - EditorOFD.Title = "Specify the editor to use" - LinkLabel3.Text = "Show me where these logs are stored" - CheckBox20.Text = "Disable DynaLog logging" - Case "ESN" - Text = "Opciones" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Programa" - Label50.Text = "Personalización" - Label51.Text = "Registros" - Label52.Text = "Operaciones" - Label53.Text = "Directorio temporal" - Label54.Text = "Salida del programa" - Label55.Text = "Procesos en segundo plano" - Label57.Text = "Asociaciones de archivos" - Label58.Text = "Opciones de inicio" - Label34.Text = "Opciones de cierre" - Label2.Text = "Ruta del ejecutable:" - Label3.Text = "Versión:" - Label5.Text = "Guardar configuraciones en:" - Label7.Text = "Modo de color:" - Label8.Text = "Idioma:" - Label10.Text = "Fuente:" - Label11.Text = "Vista previa:" - Label12.Text = "Archivo de registro:" - Label13.Text = "Cuando se realizan operaciones en la línea de comandos, especifique el argumento " & Quote & "/LogPath" & Quote & " para guardar el registro de operaciones en el archivo de destino" - Label14.Text = "Nivel de registro:" - Label18.Text = "Cuando se realizan operaciones silenciosamente, el programa ocultará información y salida del progreso." & CrLf & "Esta opción no se usará al obtener información de, por ejemplo, paquetes o características." & CrLf & "También, al realizar un servicio de imágenes, su sistema podría reiniciarse automáticamente." - Label19.Text = "Cuando esta opción está marcada, su sistema no se reiniciará automáticamente; incluso si se realizan operaciones silenciosamente" - Label20.Text = "Especifique el directorio temporal a ser usado en operaciones de DISM:" - Label21.Text = "Directorio temporal:" - Label22.Text = "Espacio disponible en directorio temporal:" - Label25.Text = "Vista de registro:" - Label26.Text = "Informe de prueba:" - Label27.Text = "Algunos informes no permiten ser mostrados como una tabla." - Label28.Text = "¿Cuándo debería el programa notificarle acerca de procesos en segundo plano siendo iniciados?" - Label29.Text = "El programa utiliza procesos en segundo plano para recopilar información completa de la imagen, como fechas de modificación, paquetes instalados, características presentes; y más" - Label40.Text = "Administre asociaciones de archivos para componentes de DISMTools:" - Label43.Text = "Establezca las opciones que le gustaría realizar cuando el programa inicie:" - Label44.Text = "El programa usará el directorio temporal proporcionado por el proyecto si se cargó alguno. Si está en los modos de administración de instalaciones en línea o fuera de línea, el programa utilizará su directorio temporal" - Label45.Text = "Estilo del panel de progreso secundario:" - Label46.Text = "Estas configuraciones no son aplicables a instalaciones no portátiles" - Label47.Text = "Esta fuente podría no ser legible en ventanas de registro. Aunque todavía pueda utilizarla, le recomendamos fuentes monoespaciadas para una legibilidad aumentada." - Label48.Text = "Escoja las opciones que el programa debería considerar al guardar información de la imagen:" - Button1.Text = "Examinar..." - Button2.Text = "Ver versiones de componentes" - Button3.Text = "Examinar..." - Button4.Text = "Examinar..." - Button9.Text = "Establecer asociaciones" - Button10.Text = "Opciones avanzadas" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - PrefReset.Text = "Restablecer preferencias" - CheckBox2.Text = "Realizar operaciones silenciosamente" - CheckBox3.Text = "Omitir reinicio del sistema" - CheckBox4.Text = "Usar un directorio temporal" - CheckBox5.Text = "Mostrar salida del programa en inglés" - CheckBox6.Text = "Notificarme cuando los procesos en segundo plano se hayan iniciado" - CheckBox7.Text = "Mostrar vista de registro en el panel de progreso por defecto" - CheckBox9.Text = "Usar menús en mayúscula" - CheckBox10.Text = "Crear registros para cada operación realizada automáticamente" - CheckBox11.Text = "Establecer iconos personalizados para proyectos de DISMTools" - CheckBox12.Text = "Remontar imágenes montadas que necesitan una recarga de su sesión de servicio" - CheckBox13.Text = "Comprobar actualizaciones" - CheckBox14.Text = "Siempre guardar información completa para los siguientes elementos:" - CheckBox15.Text = "Paquetes instalados" - CheckBox16.Text = "Características" - CheckBox17.Text = "Paquetes AppX instalados" - CheckBox18.Text = "Funcionalidades" - CheckBox19.Text = "Controladores instalados" - CheckBox22.Text = "Limpiar puntos de montaje automáticamente (inicia un proceso separado)" - DismOFD.Title = "Especifique el ejecutable de DISM a usar" - Label59.Text = "Personalización del registro" - Label60.Text = "Establezca las opciones que le gustaría realizar cuando el programa se cierra:" - Label61.Text = "Vista previa:" - Label9.Text = "Guardando información de la imagen" - LinkLabel1.Text = "El programa habilitará o deshabilitará algunas características atendiendo a lo que soporte la versión de DISM. ¿Cómo va a afectar esto mi uso del programa, y qué características serán deshabilitadas?" - LinkLabel1.LinkArea = New LinkArea(111, 88) - LinkLabel2.Text = "Conocer más sobre los procesos en segundo plano" - LogSFD.Title = "Especifique la ubicación del archivo de registro" - RadioButton3.Text = "Utilizar el directorio temporal del proyecto o del programa" - RadioButton4.Text = "Utilizar el directorio temporal especificado" - RadioButton5.Text = "Moderno" - RadioButton6.Text = "Clásico" - ScratchFBD.Description = "Especifique el directorio temporal que debería usar el programa:" - Label62.Text = "DynaLog proporciona un método para guardar registros de diagnóstico que pueden ser utilizados para ayudar a solucionar problemas del programa, en caso de que los encuentre. Puede desactivar el registro usando el interruptor de abajo, pero no es recomendable." & CrLf & CrLf & - "Desactive el registro solo si causa una sobrecarga de rendimiento en su equipo. Hacer clic en el interruptor aplicará esta configuración automáticamente." - Label63.Text = "Por defecto, los registros de operación se abren con el Bloc de notas en caso de un error de operación. Sin embargo, si desea abrirlos con un programa diferente, especifíquelo a continuación:" - Label64.Text = "Control de registro de DynaLog" - Label65.Text = "Editor con el que se abrirán archivos de registro:" - Label66.Text = "Editor del sistema" - Button5.Text = "Examinar..." - EditorOFD.Title = "Especifique el editor a usar" - LinkLabel3.Text = "Muéstrame dónde se guardan estos registros" - CheckBox20.Text = "Desactivar el registro de DynaLog" - Case "FRA" - Text = "Paramètres" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Programme" - Label50.Text = "Personnalisation" - Label51.Text = "Journaux" - Label52.Text = "Opérations sur les images" - Label53.Text = "Répertoire temporaire" - Label54.Text = "Sortie du programme" - Label55.Text = "Processus en arrière plan" - Label57.Text = "Associations de fichiers" - Label58.Text = "Paramètres de démarrage" - Label34.Text = "Paramètres de fermeture" - Label2.Text = "Chemin d'accès à l'exécutable DISM :" - Label3.Text = "Version:" - Label5.Text = "Sauvegarder les paramètres sur :" - Label7.Text = "Mode couleur :" - Label8.Text = "Langue:" - 'Label9.Text = "Veuillez spécifier les paramètres de la fenêtre d'enregistrement :" - Label10.Text = "Fonte de la fenêtre du journal :" - Label11.Text = "Aperçu:" - Label12.Text = "Fichier journal des opérations :" - Label13.Text = "Lorsque vous effectuez des opérations sur les images dans la ligne de commande, spécifiez l'argument " & Quote & "/LogPath" & Quote & " pour sauvegarder le journal des opérations sur les images dans le fichier journal cible." - Label14.Text = "Niveau du fichier journal :" - Label18.Text = "Lors de l'exécution silencieuse d'une opération, le programme masquera les informations et la progression de l'opération. Les messages d'erreur seront toujours affichés." & CrLf & "Cette option ne sera pas utilisée pour obtenir des informations, par exemple, sur les paquets ou les caractéristiques." & CrLf & "En outre, lors de la maintenance de l'image, votre ordinateur peut redémarrer automatiquement." - Label19.Text = "Lorsque cette option est cochée, l'ordinateur ne redémarre pas automatiquement, même lorsqu'il effectue des opérations en silence." - Label20.Text = "Veuillez indiquer le répertoire temporaire à utiliser pour les opérations DISM :" - Label21.Text = "Répertoire temporaire:" - Label22.Text = "Espace restant sur le répertoire temporaire sélectionné :" - Label25.Text = "Vue du journal :" - Label26.Text = "Exemple de rapport :" - Label27.Text = "Certains rapports ne permettent pas d'être présentés sous forme de tableau." - Label28.Text = "Quand le programme doit-il vous avertir du démarrage de processus en arrière plan ?" - Label29.Text = "Le programme utilise des processus en arrière plan pour recueillir des informations complètes sur l'image, comme les dates de modification, les paquets installés, les caractéristiques présentes, etc." - Label40.Text = "Gérer les associations de fichiers pour les composants DISMTools :" - Label43.Text = "Définissez les options que vous souhaitez exécuter au démarrage du programme :" - Label44.Text = "Le programme utilisera le répertoire temporaire fourni par le projet s'il en existe un. Si vous êtes en les modes de gestion de l'installation en ligne ou hors ligne, le programme utilisera son répertoire temporaire." - Label45.Text = "Style du panneau de progression secondaire :" - Label46.Text = "Ces paramètres ne s'appliquent pas aux installations non portables." - Label47.Text = "Cette police peut ne pas être lisible sur les fenêtres logiques. Bien que vous puissiez encore l'utiliser, nous recommandons les polices monospaces pour une meilleure lisibilité." - Label48.Text = "Choisissez les paramètres que le programme doit prendre en compte lors de la sauvegarde des informations de l'image :" - Button1.Text = "Parcourir..." - Button2.Text = "Voir les versions des composants DISM" - Button3.Text = "Parcourir..." - Button4.Text = "Parcourir..." - Button9.Text = "Établir des associations de fichiers" - Button10.Text = "Paramètres avancés" - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - PrefReset.Text = "Réinitialiser les préférences" - CheckBox2.Text = "Effectuer des opérations d'image en silence" - CheckBox3.Text = "Sauter le redémarrage du système" - CheckBox4.Text = "Utiliser un répertoire temporaire" - CheckBox5.Text = "Afficher la sortie de la commande en anglais" - CheckBox6.Text = "M'avertir lorsque des processus en arrière plan ont démarré" - CheckBox7.Text = "Afficher par défaut la vue du journal dans le panneau de progression" - CheckBox9.Text = "Utiliser des menus en majuscules" - CheckBox10.Text = "Créer automatiquement des journaux pour chaque opération effectuée" - CheckBox11.Text = "Définir des icônes de fichiers personnalisés pour les projets DISMTools" - CheckBox12.Text = "Remonter les images montées nécessitant un rechargement de la session de maintenance" - CheckBox13.Text = "Mettre à jour les données" - CheckBox14.Text = "Sauvegardez toujours des informations complètes pour les éléments suivants :" - CheckBox15.Text = "Paquets installés" - CheckBox16.Text = "Caractéristiques" - CheckBox17.Text = "Paquets AppX installés" - CheckBox18.Text = "Capacités" - CheckBox19.Text = "Pilotes installés" - CheckBox22.Text = "Nettoyer automatiquement les points de montage (lance un processus séparé)" - DismOFD.Title = "Spécifier l'exécutable DISM à utiliser" - Label59.Text = "Personnalisation du journal" - Label60.Text = "Définissez les paramètres que vous souhaitez effectuer à la fermeture du programme :" - Label61.Text = "Aperçu :" - Label9.Text = "Sauvegarde des informations de l'image" - LinkLabel1.Text = "Le programme activera ou désactivera certaines caractéristiques en fonction de ce que la version de DISM prend en charge. Comment cela va-t-il affecter mon utilisation de ce programme, et quelles caractéristiques seront désactivées en conséquence ?" - LinkLabel1.LinkArea = New LinkArea(122, 126) - LinkLabel2.Text = "Savoir plus sur les processus en arrière plan" - LogSFD.Title = "Spécifier l'emplacement du fichier journal" - RadioButton3.Text = "Utiliser le répertoire temporaire du projet ou du programme" - RadioButton4.Text = "Utiliser le répertoire temporaire spécifié" - RadioButton5.Text = "Moderne" - RadioButton6.Text = "Classique" - ScratchFBD.Description = "Indiquez le répertoire temporaire que le programme doit utiliser :" - Label62.Text = "L'enregistrement DynaLog permet de sauvegarder des journaux de diagnostic qui peuvent être utilisés pour aider à résoudre des problèmes de programme, au cas où vous en rencontreriez. Vous pouvez désactiver l'enregistreur en utilisant la bascule ci-dessous, mais ce n'est pas recommandé." & CrLf & CrLf & - "Désactivez la journalisation uniquement si elle entraîne une surcharge de performance sur votre ordinateur. En cliquant sur la bascule, vous appliquerez automatiquement ce paramètre." - Label63.Text = "Par défaut, les journaux d'opération sont ouverts avec le Bloc-notes en cas d'erreur d'opération. Cependant, si vous souhaitez les ouvrir avec un autre programme, indiquez-le ci-dessous :" - Label64.Text = "Contrôle d'enregistrement DynaLog" - Label65.Text = "Editeur pour ouvrir les fichiers journaux avec :" - Label66.Text = "Editeur système" - Button5.Text = "Parcourir..." - EditorOFD.Title = "Spécifier l'éditeur à utiliser" - LinkLabel3.Text = "Montrez-moi où ces journaux sont stockés" - CheckBox20.Text = "Désactiver la journalisation DynaLog" - Case "PTB", "PTG" - Text = "Opções" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Programa" - Label50.Text = "Personalização" - Label51.Text = "Registos" - Label52.Text = "Operações de imagem" - Label53.Text = "Diretório temporário" - Label54.Text = "Saída do programa" - Label55.Text = "Processos em segundo plano" - Label57.Text = "Associações de ficheiros" - Label58.Text = "Opções de arranque" - Label34.Text = "Opções de encerramento" - Label2.Text = "Localização do executável DISM:" - Label3.Text = "Versão:" - Label5.Text = "Guardar configurações em:" - Label7.Text = "Modo de cor:" - Label8.Text = "Idioma:" - Label9.Text = "Especifique as configurações para a janela de registo:" - Label10.Text = "Tipo de letra da janela de registo:" - Label11.Text = "Pré-visualização:" - Label12.Text = "Ficheiro de registo de operações:" - Label13.Text = "Quando efetuar operações de imagem na linha de comandos, especifique o argumento " & Quote & "/LogPath" & Quote & " para guardar o registo da operação de imagem no ficheiro de registo de destino." - Label14.Text = "Nível do ficheiro de registo:" - Label18.Text = "Quando as operações são efectuadas em silêncio, o programa oculta as informações e o progresso. As mensagens de erro continuarão a ser mostradas." & CrLf & "Esta opção não será utilizada para obter informações sobre, por exemplo, pacotes ou funcionalidades." & CrLf & "Além disso, ao efetuar operações de imagem, o computador pode reiniciar-se automaticamente." - Label19.Text = "Se esta opção estiver selecionada, o computador não será reiniciado automaticamente, mesmo quando estiver a efetuar operações silenciosas" - Label20.Text = "Especifique o diretório de rascunho a utilizar para as operações DISM:" - Label21.Text = "Diretório de rascunho:" - Label22.Text = "Espaço restante no diretório de rascunho selecionado:" - Label25.Text = "Vista de registo:" - Label26.Text = "Exemplo de relatório:" - Label27.Text = "Alguns relatórios não permitem ser mostrados como uma tabela." - Label28.Text = "Quando é que o programa o deve notificar sobre os processos em segundo plano que estão a ser iniciados?" - Label29.Text = "O programa usa processos em segundo plano para reunir informações completas sobre a imagem, como datas de modificação, pacotes instalados, recursos presentes e muito mais" - Label40.Text = "Gerir associações de ficheiros para os componentes do DISMTools:" - Label43.Text = "Definir opções que gostaria de efetuar quando o programa arranca:" - Label44.Text = "O programa utilizará o diretório de rascunho fornecido pelo projeto, se tiver sido carregado um. Se estiver nos modos de gestão da instalação online ou offline, o programa utilizará o seu diretório de rascunho" - Label45.Text = "Estilo do painel de progresso secundário:" - Label46.Text = "Estas configurações não são aplicáveis a instalações não portáteis" - Label47.Text = "Este tipo de letra pode não ser legível em janelas de registo. Embora possa continuar a utilizá-lo, recomendamos tipos de letra monoespaçados para uma maior legibilidade." - Label48.Text = "Escolha as configurações que o programa deve considerar quando guardar informações de imagem:" - Button1.Text = "Navegar..." - Button2.Text = "Ver versões de componentes DISM" - Button3.Text = "Navegar..." - Button4.Text = "Navegar..." - Button9.Text = "Configurar associações de ficheiros" - Button10.Text = "Configurações avançadas" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - PrefReset.Text = "Repor preferências" - CheckBox2.Text = "Efetuar operações de imagem silenciosamente" - CheckBox3.Text = "Ignorar o reinício do sistema" - CheckBox4.Text = "Utilizar um diretório de rascunho" - CheckBox5.Text = "Mostrar a saída do comando em inglês" - CheckBox6.Text = "Notificar-me quando os processos em segundo plano tiverem iniciado" - CheckBox7.Text = "Mostrar a vista de registo no painel de progresso por predefinição" - CheckBox9.Text = "Utilizar menus em maiúsculas" - CheckBox10.Text = "Criar automaticamente registos para cada operação realizada" - CheckBox11.Text = "Configurar ícones de ficheiros personalizados para projectos DISMTools" - CheckBox12.Text = "Remontar imagens montadas que necessitem de um recarregamento da sessão de manutenção" - CheckBox13.Text = "Verificar se há actualizações" - CheckBox14.Text = "Guardar sempre informações completas sobre os seguintes elementos:" - CheckBox15.Text = "Pacotes instalados" - CheckBox16.Text = "Características" - CheckBox17.Text = "Pacotes AppX instalados" - CheckBox18.Text = " Capacidades" - CheckBox19.Text = "Controladores instalados" - CheckBox22.Text = "Limpar automaticamente os pontos de montagem (inicia um processo separado)" - DismOFD.Title = "Especificar o executável DISM a utilizar" - Label59.Text = "Personalização do registo" - Label60.Text = "Configurar as opções que gostaria de executar quando o programa fecha:" - Label61.Text = "Pré-visualização:" - Label9.Text = "Guardar informação da imagem" - LinkLabel1.Text = "O programa irá ativar ou desativar determinadas funcionalidades de acordo com o que a versão DISM suporta. Como é que isso vai afetar a minha utilização deste programa e que funcionalidades serão desactivadas em conformidade?" - LinkLabel1.LinkArea = New LinkArea(107, 118) - LinkLabel2.Text = "Saiba mais sobre os processos em segundo plano" - LogSFD.Title = "Especificar a localização do ficheiro de registo" - RadioButton3.Text = "Utilizar o diretório de rascunho do projeto ou do programa" - RadioButton4.Text = "Utilizar o diretório de rascunho especificado" - RadioButton5.Text = "Moderna" - RadioButton6.Text = "Clássico" - ScratchFBD.Description = "Especificar o diretório de rascunho que o programa deve utilizar:" - Label62.Text = "O registo DynaLog fornece um método para guardar registos de diagnóstico que podem ser utilizados para ajudar a corrigir problemas do programa, caso os encontre. Pode desativar o registo utilizando o botão abaixo, mas não é recomendado." & CrLf & CrLf & - "Desactive o registo apenas se este causar uma sobrecarga de desempenho no seu computador. Se clicar no botão de alternância, esta definição será aplicada automaticamente." - Label63.Text = "Por predefinição, os registos de operações são abertos com o Bloco de Notas em caso de erro de operação. No entanto, se pretender abri-los com um programa diferente, especifique-o abaixo:" - Label64.Text = "Controlo de registo DynaLog" - Label65.Text = "Editor para abrir ficheiros de registo com:" - Label66.Text = "Editor do sistema" - Button5.Text = "Procurar..." - EditorOFD.Title = "Especificar o editor a utilizar" - LinkLabel3.Text = "Mostre-me onde estes registos estão armazenados" - CheckBox20.Text = "Desativar o registo DynaLog" - Case "ITA" - Text = "Opzioni" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Programma" - Label50.Text = "Personalizzazione" - Label51.Text = "Registri" - Label52.Text = "Operazioni immagine" - Label53.Text = "Cartella temporanea" - Label54.Text = "Output programma" - Label55.Text = "Processi in background" - Label57.Text = "Associazioni file" - Label58.Text = "Opzioni avvio" - Label34.Text = "Opzioni spegnimento" - Label2.Text = "Percorso eseguibile DISM:" - Label3.Text = "Versione:" - Label5.Text = "Salva impostazioni in:" - Label7.Text = "Modalità colore:" - Label8.Text = "Lingua:" - Label9.Text = "Specifica le impostazioni per la finestra regsitro:" - Label10.Text = "Font finestra registro:" - Label11.Text = "Anteprima:" - Label12.Text = "File registro operazioni:" - Label13.Text = "Quando si eseguono operazioni sull'immagine da riga di comando, specifical'argomento " & Quote & "/LogPath" & Quote & " per salvare il registro delle operazioni sull'immagine nel file registro destinazione" - Label14.Text = "Livello file registro:" - Label18.Text = "Quando si eseguono le operazioni in modalità silenziosa, il programma nasconde le informazioni e l'output di avanzamento. I messaggi di errore verranno comunque visualizzati." & CrLf & "Questa opzione non verrà usata quando si ottengono informazioni, ad esempio, sui pacchetti o sulle funzionalità." & CrLf & "Inoltre, quando si esegue la manutenzione delle immagini, il computer potrebbe riavviarsi automaticamente." - Label19.Text = "Quando questa opzione è selezionata, il computer non si riavvia automaticamente, anche quando si eseguono le operazioni in modalità silenziosa" - Label20.Text = "Specifica la cartella temporanea da usare per le operazioni DISM:" - Label21.Text = "Cartella temporanea:" - Label22.Text = "Spazio rimanente nella cartella temporanea selezionata:" - Label25.Text = "Visualizzazione registro:" - Label26.Text = "Esempio rapporto:" - Label27.Text = "Alcuni rapporti non possono essere visualizzati come tabella" - Label28.Text = "Quando il programma dovrebbe notificare l'avvio dei processi in background?" - Label29.Text = "Il programma usa i processi in background per raccogliere informazioni complete sull'immagine, come le date di modifica, i pacchetti installati, le funzionalità presenti e altro ancora" - Label40.Text = "Gestisci le associazioni dei file per i componenti di DISMTools:" - Label43.Text = "Imposta le opzioni che vuoi eseguire all'avvio del programma:" - Label44.Text = "Il programma userà la cartella temporanea fornita dal progetto, se ne è stata caricata una. Se ci si trova nelle modalità di gestione dell'installazione online o offline, il programma userà la sua cartella scratch" - Label45.Text = "Stile pannello avanzamento secondario:" - Label46.Text = "Queste impostazioni non sono applicabili alle installazioni non portatili" - Label47.Text = "Questo font potrebbe non essere leggibile nelle finestre registro. Anche se è possibile usarlo, per una maggiore leggibilità ti consigliamo di usare font mono spaziati." - Label48.Text = "Scegli le impostazioni che il programma deve considerare quando salva le informazioni sull'immagine:" - Button1.Text = "Sfoglia..." - Button2.Text = "Visualizza le versioni dei componenti DISM" - Button3.Text = "Sfoglia..." - Button4.Text = "Sfoglia..." - Button9.Text = "Imposta associazioni file" - Button10.Text = "Impostazioni avanzate" - Cancel_Button.Text = "Annulla" - OK_Button.Text = "OK" - PrefReset.Text = "Ripristina preferenze" - CheckBox2.Text = "Esegui le operazioni sull'immagine in modalità silenziosa" - CheckBox3.Text = "Salta il riavvio del sistema" - CheckBox4.Text = "Usa cartella scratch" - CheckBox5.Text = "Visualizza l'output del comando in inglese" - CheckBox6.Text = "Notifica l'avvio dei processi in background" - CheckBox7.Text = "Visualizza il registro nel pannello di avanzamento per impostazione predefinita" - CheckBox9.Text = "Usa i menu in maiuscolo" - CheckBox10.Text = "Crea automaticamente i registri per ogni operazione eseguita" - CheckBox11.Text = "Imposta icone file personalizzate per i progetti DISMTools" - CheckBox12.Text = "Rimonta le immagini montate che necessitano di un ricaricamento della sessione di assistenza" - CheckBox13.Text = "Controlla aggiornamenti" - CheckBox14.Text = "Salva sempre le informazioni complete per i seguenti elementi:" - CheckBox15.Text = "Pacchetti installati" - CheckBox16.Text = "Funzionalità" - CheckBox17.Text = "Pacchetti AppX installati" - CheckBox18.Text = "Capacità" - CheckBox19.Text = "Driver installati" - CheckBox22.Text = "Pulisci automaticamente i punti di montaggio (esegui un processo separato)" - DismOFD.Title = "Specifica l'eseguibile DISM da usare" - Label59.Text = "Personalizzazione dei registri" - Label60.Text = "Imposta le opzioni che vuoi eseguire alla chiusura del programma:" - Label61.Text = "Anteprima:" - Label9.Text = "Salvataggio informazioni dell'immagine" - LinkLabel1.Text = "Il programma abilita/disabilita alcune funzionalità in base alla versione di DISM supportata. Come influirà sull'uso di questo programma e quali funzioni saranno disabilitate di conseguenza?" - LinkLabel1.LinkArea = New LinkArea(92, 100) - LinkLabel2.Text = "Ulteriori informazioni sui processi in background" - LogSFD.Title = "Specifica il percorso del file registro" - RadioButton3.Text = "Usa la cartella temporanea del progetto o del programma" - RadioButton4.Text = "Usa la cartella temporanea specificata" - RadioButton5.Text = "Moderno" - RadioButton6.Text = "Classico" - ScratchFBD.Description = "Specifica la cartella scratch che il programma deve usare:" - Label62.Text = "La registrazione DynaLog fornisce un metodo per salvare i registri diagnostici che possono essere usati per risolvere i problemi del programma, nel caso in cui si verifichino. È possibile disattivare il logger usando la levetta sottostante, ma non è consigliabile." & CrLf & CrLf & - "Disattivare il logging solo se causa un sovraccarico di prestazioni sul computer. Facendo clic sulla levetta, questa impostazione verrà applicata automaticamente." - Label63.Text = "Per impostazione predefinita, in caso di errore i registri delle operazioni vengono aperti con il Blocco note. Tuttavia, se vuoi aprirli con un altro programma, specificalo di seguito:" - Label64.Text = "Controllo registrazione DynaLog" - Label65.Text = "Editor per aprire i file registro:" - Label66.Text = "Editor di sistema" - Button5.Text = "Sfoglia..." - EditorOFD.Title = "Specifica l'editor da usare" - LinkLabel3.Text = "Visualizza dove sono archiviati i registri" - CheckBox20.Text = "Disabilita registrazione di DynaLog" - End Select - Case 1 - Text = "Options" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Program" - Label50.Text = "Personalization" - Label51.Text = "Logs" - Label52.Text = "Image operations" - Label53.Text = "Scratch directory" - Label54.Text = "Program output" - Label55.Text = "Background processes" - Label57.Text = "File associations" - Label58.Text = "Startup options" - Label34.Text = "Shutdown options" - Label2.Text = "DISM executable path:" - Label3.Text = "Version:" - Label5.Text = "Save settings on:" - Label7.Text = "Color mode:" - Label8.Text = "Language:" - 'Label9.Text = "Please specify the settings for the log window:" - Label10.Text = "Log window font:" - Label11.Text = "Preview:" - Label12.Text = "Operation log file:" - Label13.Text = "When performing image operations in the command line, specify the " & Quote & "/LogPath" & Quote & " argument to save the image operation log to the target log file." - Label14.Text = "Log file level:" - Label18.Text = "When quietly performing operations, the program will hide information and progress output. Error messages will still be shown." & CrLf & "This option will not be used when getting information of, for example, packages or features." & CrLf & "Also, when performing image servicing, your computer may restart automatically." - Label19.Text = "When this option is checked, your computer will not restart automatically; even when quietly performing operations" - Label20.Text = "Please specify the scratch directory to be used for DISM operations:" - Label21.Text = "Scratch directory:" - Label22.Text = "Space left on selected scratch directory:" - Label25.Text = "Log view:" - Label26.Text = "Example report:" - Label27.Text = "Some reports do not allow being shown as a table." - Label28.Text = "When should the program notify you about background processes being started?" - Label29.Text = "The program uses background processes to gather complete image information, like modification dates, installed packages, features present; and more" - Label40.Text = "Manage file associations for DISMTools components:" - Label43.Text = "Set options you would like to perform when the program starts up:" - Label44.Text = "The program will use the scratch directory provided by the project if one is loaded. If you are in the online or offline installation management modes, the program will use its scratch directory" - Label45.Text = "Secondary progress panel style:" - Label46.Text = "These settings aren't applicable to non-portable installations" - Label47.Text = "This font may not be readable on log windows. While you can still use it, we recommend monospaced fonts for increased readability." - Label48.Text = "Choose the settings the program should consider when saving image information:" - Button1.Text = "Browse..." - Button2.Text = "View DISM component versions" - Button3.Text = "Browse..." - Button4.Text = "Browse..." - Button9.Text = "Set file associations" - Button10.Text = "Advanced settings" - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - PrefReset.Text = "Reset preferences" - CheckBox2.Text = "Quietly perform image operations" - CheckBox3.Text = "Skip system restart" - CheckBox4.Text = "Use a scratch directory" - CheckBox5.Text = "Show command output in English" - CheckBox6.Text = "Notify me when background processes have started" - CheckBox7.Text = "Show log view on the progress panel by default" - CheckBox9.Text = "Use uppercase menus" - CheckBox10.Text = "Automatically create logs for each operation performed" - CheckBox11.Text = "Set custom file icons for DISMTools projects" - CheckBox12.Text = "Remount mounted images in need of a servicing session reload" - CheckBox13.Text = "Check for updates" - CheckBox14.Text = "Always save complete information for the following elements:" - CheckBox15.Text = "Installed packages" - CheckBox16.Text = "Features" - CheckBox17.Text = "Installed AppX packages" - CheckBox18.Text = "Capabilities" - CheckBox19.Text = "Installed drivers" - CheckBox22.Text = "Automatically clean up mount points (launches a separate process)" - DismOFD.Title = "Specify the DISM executable to use" - Label59.Text = "Log customization" - Label60.Text = "Set options you would like to perform when the program closes:" - Label61.Text = "Preview:" - Label9.Text = "Saving image information" - LinkLabel1.Text = "The program will enable or disable certain features according to what the DISM version supports. How is it going to affect my usage of this program, and which features will be disabled accordingly?" - LinkLabel1.LinkArea = New LinkArea(97, 100) - LinkLabel2.Text = "Learn more about background processes" - LogSFD.Title = "Specify the location of the log file" - RadioButton3.Text = "Use the project or program scratch directory" - RadioButton4.Text = "Use the specified scratch directory" - RadioButton5.Text = "Modern" - RadioButton6.Text = "Classic" - ScratchFBD.Description = "Specify the scratch directory the program should use:" - Label62.Text = "DynaLog logging provides a method for saving diagnostic logs that can be used to help fix program issues, in case you encounter them. You can disable the logger using the toggle below, but it's not recommended." & CrLf & CrLf & - "Disable logging only if it causes a performance overhead on your computer. Clicking the toggle will apply this setting automatically." - Label63.Text = "By default, operation logs are opened with Notepad in the event of an operation error. However, if you want to open them with a different program, specify it below:" - Label64.Text = "DynaLog logging control" - Label65.Text = "Editor to open log files with:" - Label66.Text = "System Editor" - Button5.Text = "Browse..." - EditorOFD.Title = "Specify the editor to use" - LinkLabel3.Text = "Show me where these logs are stored" - CheckBox20.Text = "Disable DynaLog logging" - Case 2 - Text = "Opciones" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Programa" - Label50.Text = "Personalización" - Label51.Text = "Registros" - Label52.Text = "Operaciones" - Label53.Text = "Directorio temporal" - Label54.Text = "Salida del programa" - Label55.Text = "Procesos en segundo plano" - Label57.Text = "Asociaciones de archivos" - Label58.Text = "Opciones de inicio" - Label34.Text = "Opciones de cierre" - Label2.Text = "Ruta del ejecutable:" - Label3.Text = "Versión:" - Label5.Text = "Guardar configuraciones en:" - Label7.Text = "Modo de color:" - Label8.Text = "Idioma:" - 'Label9.Text = "Especifique las configuraciones para la ventana de registro:" - Label10.Text = "Fuente:" - Label11.Text = "Vista previa:" - Label12.Text = "Archivo de registro:" - Label13.Text = "Cuando se realizan operaciones en la línea de comandos, especifique el argumento " & Quote & "/LogPath" & Quote & " para guardar el registro de operaciones en el archivo de destino" - Label14.Text = "Nivel de registro:" - Label18.Text = "Cuando se realizan operaciones silenciosamente, el programa ocultará información y salida del progreso." & CrLf & "Esta opción no se usará al obtener información de, por ejemplo, paquetes o características." & CrLf & "También, al realizar un servicio de imágenes, su sistema podría reiniciarse automáticamente." - Label19.Text = "Cuando esta opción está marcada, su sistema no se reiniciará automáticamente; incluso si se realizan operaciones silenciosamente" - Label20.Text = "Especifique el directorio temporal a ser usado en operaciones de DISM:" - Label21.Text = "Directorio temporal:" - Label22.Text = "Espacio disponible en directorio temporal:" - Label25.Text = "Vista de registro:" - Label26.Text = "Informe de prueba:" - Label27.Text = "Algunos informes no permiten ser mostrados como una tabla." - Label28.Text = "¿Cuándo debería el programa notificarle acerca de procesos en segundo plano siendo iniciados?" - Label29.Text = "El programa utiliza procesos en segundo plano para recopilar información completa de la imagen, como fechas de modificación, paquetes instalados, características presentes; y más" - Label40.Text = "Administre asociaciones de archivos para componentes de DISMTools" - Label43.Text = "Establezca las opciones que le gustaría realizar cuando el programa inicie:" - Label44.Text = "El programa usará el directorio temporal proporcionado por el proyecto si se cargó alguno. Si está en los modos de administración de instalaciones en línea o fuera de línea, el programa utilizará su directorio temporal" - Label45.Text = "Estilo del panel de progreso secundario:" - Label46.Text = "Estas configuraciones no son aplicables a instalaciones no portátiles" - Label47.Text = "Esta fuente podría no ser legible en ventanas de registro. Aunque todavía pueda utilizarla, le recomendamos fuentes monoespaciadas para una legibilidad aumentada." - Label48.Text = "Escoja las opciones que el programa debería considerar al guardar información de la imagen:" - Button1.Text = "Examinar..." - Button2.Text = "Ver versiones de componentes" - Button3.Text = "Examinar..." - Button4.Text = "Examinar..." - Button9.Text = "Establecer asociaciones" - Button10.Text = "Opciones avanzadas" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - PrefReset.Text = "Restablecer preferencias" - CheckBox2.Text = "Realizar operaciones silenciosamente" - CheckBox3.Text = "Omitir reinicio del sistema" - CheckBox4.Text = "Usar un directorio temporal" - CheckBox5.Text = "Mostrar salida del programa en inglés" - CheckBox6.Text = "Notificarme cuando los procesos en segundo plano se hayan iniciado" - CheckBox7.Text = "Mostrar vista de registro en el panel de progreso por defecto" - CheckBox9.Text = "Usar menús en mayúscula" - CheckBox10.Text = "Crear registros para cada operación realizada automáticamente" - CheckBox11.Text = "Establecer iconos personalizados para proyectos de DISMTools" - CheckBox12.Text = "Remontar imágenes montadas que necesitan una recarga de su sesión de servicio" - CheckBox13.Text = "Comprobar actualizaciones" - CheckBox14.Text = "Siempre guardar información completa para los siguientes elementos:" - CheckBox15.Text = "Paquetes instalados" - CheckBox16.Text = "Características" - CheckBox17.Text = "Paquetes AppX instalados" - CheckBox18.Text = "Funcionalidades" - CheckBox19.Text = "Controladores instalados" - CheckBox22.Text = "Limpiar puntos de montaje automáticamente (inicia un proceso separado)" - DismOFD.Title = "Especifique el ejecutable de DISM a usar" - Label59.Text = "Personalización del registro" - Label60.Text = "Establezca las opciones que le gustaría realizar cuando el programa se cierra:" - Label61.Text = "Vista previa:" - Label9.Text = "Guardando información de la imagen" - LinkLabel1.Text = "El programa habilitará o deshabilitará algunas características atendiendo a lo que soporte la versión de DISM. ¿Cómo va a afectar esto mi uso del programa, y qué características serán deshabilitadas?" - LinkLabel1.LinkArea = New LinkArea(111, 88) - LinkLabel2.Text = "Conocer más sobre los procesos en segundo plano" - LogSFD.Title = "Especifique la ubicación del archivo de registro" - RadioButton3.Text = "Utilizar el directorio temporal del proyecto o del programa" - RadioButton4.Text = "Utilizar el directorio temporal especificado" - RadioButton5.Text = "Moderno" - RadioButton6.Text = "Clásico" - ScratchFBD.Description = "Especifique el directorio temporal que debería usar el programa:" - Label62.Text = "DynaLog proporciona un método para guardar registros de diagnóstico que pueden ser utilizados para ayudar a solucionar problemas del programa, en caso de que los encuentre. Puede desactivar el registro usando el interruptor de abajo, pero no es recomendable." & CrLf & CrLf & - "Desactive el registro solo si causa una sobrecarga de rendimiento en su equipo. Hacer clic en el interruptor aplicará esta configuración automáticamente." - Label63.Text = "Por defecto, los registros de operación se abren con el Bloc de notas en caso de un error de operación. Sin embargo, si desea abrirlos con un programa diferente, especifíquelo a continuación:" - Label64.Text = "Control de registro de DynaLog" - Label65.Text = "Editor con el que se abrirán archivos de registro:" - Label66.Text = "Editor del sistema" - Button5.Text = "Examinar..." - EditorOFD.Title = "Especifique el editor a usar" - LinkLabel3.Text = "Muéstrame dónde se guardan estos registros" - CheckBox20.Text = "Desactivar el registro de DynaLog" - Case 3 - Text = "Paramètres" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Programme" - Label50.Text = "Personnalisation" - Label51.Text = "Journaux" - Label52.Text = "Opérations sur les images" - Label53.Text = "Répertoire temporaire" - Label54.Text = "Sortie du programme" - Label55.Text = "Processus en arrière plan" - Label57.Text = "Associations de fichiers" - Label58.Text = "Paramètres de démarrage" - Label34.Text = "Paramètres de fermeture" - Label2.Text = "Chemin d'accès à l'exécutable DISM :" - Label3.Text = "Version:" - Label5.Text = "Sauvegarder les paramètres sur :" - Label7.Text = "Mode couleur :" - Label8.Text = "Langue:" - 'Label9.Text = "Veuillez spécifier les paramètres de la fenêtre d'enregistrement :" - Label10.Text = "Fonte de la fenêtre du journal :" - Label11.Text = "Aperçu:" - Label12.Text = "Fichier journal des opérations :" - Label13.Text = "Lorsque vous effectuez des opérations sur les images dans la ligne de commande, spécifiez l'argument " & Quote & "/LogPath" & Quote & " pour sauvegarder le journal des opérations sur les images dans le fichier journal cible." - Label14.Text = "Niveau du fichier journal :" - Label18.Text = "Lors de l'exécution silencieuse d'une opération, le programme masquera les informations et la progression de l'opération. Les messages d'erreur seront toujours affichés." & CrLf & "Cette option ne sera pas utilisée pour obtenir des informations, par exemple, sur les paquets ou les caractéristiques." & CrLf & "En outre, lors de la maintenance de l'image, votre ordinateur peut redémarrer automatiquement." - Label19.Text = "Lorsque cette option est cochée, l'ordinateur ne redémarre pas automatiquement, même lorsqu'il effectue des opérations en silence." - Label20.Text = "Veuillez indiquer le répertoire temporaire à utiliser pour les opérations DISM :" - Label21.Text = "Répertoire temporaire:" - Label22.Text = "Espace restant sur le répertoire temporaire sélectionné :" - Label25.Text = "Vue du journal :" - Label26.Text = "Exemple de rapport :" - Label27.Text = "Certains rapports ne permettent pas d'être présentés sous forme de tableau." - Label28.Text = "Quand le programme doit-il vous avertir du démarrage de processus en arrière plan ?" - Label29.Text = "Le programme utilise des processus en arrière plan pour recueillir des informations complètes sur l'image, comme les dates de modification, les paquets installés, les caractéristiques présentes, etc." - Label40.Text = "Gérer les associations de fichiers pour les composants DISMTools :" - Label43.Text = "Définissez les options que vous souhaitez exécuter au démarrage du programme :" - Label44.Text = "Le programme utilisera le répertoire temporaire fourni par le projet s'il en existe un. Si vous êtes en les modes de gestion de l'installation en ligne ou hors ligne, le programme utilisera son répertoire temporaire." - Label45.Text = "Style du panneau de progression secondaire :" - Label46.Text = "Ces paramètres ne s'appliquent pas aux installations non portables." - Label47.Text = "Cette police peut ne pas être lisible sur les fenêtres logiques. Bien que vous puissiez encore l'utiliser, nous recommandons les polices monospaces pour une meilleure lisibilité." - Label48.Text = "Choisissez les paramètres que le programme doit prendre en compte lors de la sauvegarde des informations de l'image :" - Button1.Text = "Parcourir..." - Button2.Text = "Voir les versions des composants DISM" - Button3.Text = "Parcourir..." - Button4.Text = "Parcourir..." - Button9.Text = "Établir des associations de fichiers" - Button10.Text = "Paramètres avancés" - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - PrefReset.Text = "Réinitialiser les préférences" - CheckBox2.Text = "Effectuer des opérations d'image en silence" - CheckBox3.Text = "Sauter le redémarrage du système" - CheckBox4.Text = "Utiliser un répertoire temporaire" - CheckBox5.Text = "Afficher la sortie de la commande en anglais" - CheckBox6.Text = "M'avertir lorsque des processus en arrière plan ont démarré" - CheckBox7.Text = "Afficher par défaut la vue du journal dans le panneau de progression" - CheckBox9.Text = "Utiliser des menus en majuscules" - CheckBox10.Text = "Créer automatiquement des journaux pour chaque opération effectuée" - CheckBox11.Text = "Définir des icônes de fichiers personnalisés pour les projets DISMTools" - CheckBox12.Text = "Remonter les images montées nécessitant un rechargement de la session de maintenance" - CheckBox13.Text = "Mettre à jour les données" - CheckBox14.Text = "Sauvegardez toujours des informations complètes pour les éléments suivants :" - CheckBox15.Text = "Paquets installés" - CheckBox16.Text = "Caractéristiques" - CheckBox17.Text = "Paquets AppX installés" - CheckBox18.Text = "Capacités" - CheckBox19.Text = "Pilotes installés" - CheckBox22.Text = "Nettoyer automatiquement les points de montage (lance un processus séparé)" - DismOFD.Title = "Spécifier l'exécutable DISM à utiliser" - Label59.Text = "Personnalisation du journal" - Label60.Text = "Définissez les paramètres que vous souhaitez effectuer à la fermeture du programme :" - Label61.Text = "Aperçu :" - Label9.Text = "Sauvegarde des informations de l'image" - LinkLabel1.Text = "Le programme activera ou désactivera certaines caractéristiques en fonction de ce que la version de DISM prend en charge. Comment cela va-t-il affecter mon utilisation de ce programme, et quelles caractéristiques seront désactivées en conséquence ?" - LinkLabel1.LinkArea = New LinkArea(122, 126) - LinkLabel2.Text = "Savoir plus sur les processus en arrière plan" - LogSFD.Title = "Spécifier l'emplacement du fichier journal" - RadioButton3.Text = "Utiliser le répertoire temporaire du projet ou du programme" - RadioButton4.Text = "Utiliser le répertoire temporaire spécifié" - RadioButton5.Text = "Moderne" - RadioButton6.Text = "Classique" - ScratchFBD.Description = "Indiquez le répertoire temporaire que le programme doit utiliser :" - Label62.Text = "L'enregistrement DynaLog permet de sauvegarder des journaux de diagnostic qui peuvent être utilisés pour aider à résoudre des problèmes de programme, au cas où vous en rencontreriez. Vous pouvez désactiver l'enregistreur en utilisant la bascule ci-dessous, mais ce n'est pas recommandé." & CrLf & CrLf & - "Désactivez la journalisation uniquement si elle entraîne une surcharge de performance sur votre ordinateur. En cliquant sur la bascule, vous appliquerez automatiquement ce paramètre." - Label63.Text = "Par défaut, les journaux d'opération sont ouverts avec le Bloc-notes en cas d'erreur d'opération. Cependant, si vous souhaitez les ouvrir avec un autre programme, indiquez-le ci-dessous :" - Label64.Text = "Contrôle d'enregistrement DynaLog" - Label65.Text = "Editeur pour ouvrir les fichiers journaux avec :" - Label66.Text = "Editeur système" - Button5.Text = "Parcourir..." - EditorOFD.Title = "Spécifier l'éditeur à utiliser" - LinkLabel3.Text = "Montrez-moi où ces journaux sont stockés" - CheckBox20.Text = "Désactiver la journalisation DynaLog" - Case 4 - Text = "Opções" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Programa" - Label50.Text = "Personalização" - Label51.Text = "Registos" - Label52.Text = "Operações de imagem" - Label53.Text = "Diretório temporário" - Label54.Text = "Saída do programa" - Label55.Text = "Processos em segundo plano" - Label57.Text = "Associações de ficheiros" - Label58.Text = "Opções de arranque" - Label34.Text = "Opções de encerramento" - Label2.Text = "Localização do executável DISM:" - Label3.Text = "Versão:" - Label5.Text = "Guardar configurações em:" - Label7.Text = "Modo de cor:" - Label8.Text = "Idioma:" - Label9.Text = "Especifique as configurações para a janela de registo:" - Label10.Text = "Tipo de letra da janela de registo:" - Label11.Text = "Pré-visualização:" - Label12.Text = "Ficheiro de registo de operações:" - Label13.Text = "Quando efetuar operações de imagem na linha de comandos, especifique o argumento " & Quote & "/LogPath" & Quote & " para guardar o registo da operação de imagem no ficheiro de registo de destino." - Label14.Text = "Nível do ficheiro de registo:" - Label18.Text = "Quando as operações são efectuadas em silêncio, o programa oculta as informações e o progresso. As mensagens de erro continuarão a ser mostradas." & CrLf & "Esta opção não será utilizada para obter informações sobre, por exemplo, pacotes ou funcionalidades." & CrLf & "Além disso, ao efetuar operações de imagem, o computador pode reiniciar-se automaticamente." - Label19.Text = "Se esta opção estiver selecionada, o computador não será reiniciado automaticamente, mesmo quando estiver a efetuar operações silenciosas" - Label20.Text = "Especifique o diretório de rascunho a utilizar para as operações DISM:" - Label21.Text = "Diretório de rascunho:" - Label22.Text = "Espaço restante no diretório de rascunho selecionado:" - Label25.Text = "Vista de registo:" - Label26.Text = "Exemplo de relatório:" - Label27.Text = "Alguns relatórios não permitem ser mostrados como uma tabela." - Label28.Text = "Quando é que o programa o deve notificar sobre os processos em segundo plano que estão a ser iniciados?" - Label29.Text = "O programa usa processos em segundo plano para reunir informações completas sobre a imagem, como datas de modificação, pacotes instalados, recursos presentes e muito mais" - Label40.Text = "Gerir associações de ficheiros para os componentes do DISMTools:" - Label43.Text = "Definir opções que gostaria de efetuar quando o programa arranca:" - Label44.Text = "O programa utilizará o diretório de rascunho fornecido pelo projeto, se tiver sido carregado um. Se estiver nos modos de gestão da instalação online ou offline, o programa utilizará o seu diretório de rascunho" - Label45.Text = "Estilo do painel de progresso secundário:" - Label46.Text = "Estas configurações não são aplicáveis a instalações não portáteis" - Label47.Text = "Este tipo de letra pode não ser legível em janelas de registo. Embora possa continuar a utilizá-lo, recomendamos tipos de letra monoespaçados para uma maior legibilidade." - Label48.Text = "Escolha as configurações que o programa deve considerar quando guardar informações de imagem:" - Button1.Text = "Navegar..." - Button2.Text = "Ver versões de componentes DISM" - Button3.Text = "Navegar..." - Button4.Text = "Navegar..." - Button9.Text = "Configurar associações de ficheiros" - Button10.Text = "Configurações avançadas" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - PrefReset.Text = "Repor preferências" - CheckBox2.Text = "Efetuar operações de imagem silenciosamente" - CheckBox3.Text = "Ignorar o reinício do sistema" - CheckBox4.Text = "Utilizar um diretório de rascunho" - CheckBox5.Text = "Mostrar a saída do comando em inglês" - CheckBox6.Text = "Notificar-me quando os processos em segundo plano tiverem iniciado" - CheckBox7.Text = "Mostrar a vista de registo no painel de progresso por predefinição" - CheckBox9.Text = "Utilizar menus em maiúsculas" - CheckBox10.Text = "Criar automaticamente registos para cada operação realizada" - CheckBox11.Text = "Configurar ícones de ficheiros personalizados para projectos DISMTools" - CheckBox12.Text = "Remontar imagens montadas que necessitem de um recarregamento da sessão de manutenção" - CheckBox13.Text = "Verificar se há actualizações" - CheckBox14.Text = "Guardar sempre informações completas sobre os seguintes elementos:" - CheckBox15.Text = "Pacotes instalados" - CheckBox16.Text = "Características" - CheckBox17.Text = "Pacotes AppX instalados" - CheckBox18.Text = " Capacidades" - CheckBox19.Text = "Controladores instalados" - CheckBox22.Text = "Limpar automaticamente os pontos de montagem (inicia um processo separado)" - DismOFD.Title = "Especificar o executável DISM a utilizar" - Label59.Text = "Personalização do registo" - Label60.Text = "Configurar as opções que gostaria de executar quando o programa fecha:" - Label61.Text = "Pré-visualização:" - Label9.Text = "Guardar informação da imagem" - LinkLabel1.Text = "O programa irá ativar ou desativar determinadas funcionalidades de acordo com o que a versão DISM suporta. Como é que isso vai afetar a minha utilização deste programa e que funcionalidades serão desactivadas em conformidade?" - LinkLabel1.LinkArea = New LinkArea(107, 118) - LinkLabel2.Text = "Saiba mais sobre os processos em segundo plano" - LogSFD.Title = "Especificar a localização do ficheiro de registo" - RadioButton3.Text = "Utilizar o diretório de rascunho do projeto ou do programa" - RadioButton4.Text = "Utilizar o diretório de rascunho especificado" - RadioButton5.Text = "Moderna" - RadioButton6.Text = "Clássico" - ScratchFBD.Description = "Especificar o diretório de rascunho que o programa deve utilizar:" - Label62.Text = "O registo DynaLog fornece um método para guardar registos de diagnóstico que podem ser utilizados para ajudar a corrigir problemas do programa, caso os encontre. Pode desativar o registo utilizando o botão abaixo, mas não é recomendado." & CrLf & CrLf & - "Desactive o registo apenas se este causar uma sobrecarga de desempenho no seu computador. Se clicar no botão de alternância, esta definição será aplicada automaticamente." - Label63.Text = "Por predefinição, os registos de operações são abertos com o Bloco de Notas em caso de erro de operação. No entanto, se pretender abri-los com um programa diferente, especifique-o abaixo:" - Label64.Text = "Controlo de registo DynaLog" - Label65.Text = "Editor para abrir ficheiros de registo com:" - Label66.Text = "Editor do sistema" - Button5.Text = "Procurar..." - EditorOFD.Title = "Especificar o editor a utilizar" - LinkLabel3.Text = "Mostre-me onde estes registos estão armazenados" - CheckBox20.Text = "Desativar o registo DynaLog" - Case 5 - Text = "Opzioni" - ImageTaskHeader1.ItemText = Text - Label49.Text = "Programma" - Label50.Text = "Personalizzazione" - Label51.Text = "Registri" - Label52.Text = "Operazioni di immagine" - Label53.Text = "Cartella temporanea" - Label54.Text = "Output del programma" - Label55.Text = "Processi in secondo piano" - Label57.Text = "Associazioni di file" - Label58.Text = "Opzioni di avvio" - Label34.Text = "Opzioni di spegnimento" - Label2.Text = "Percorso eseguibile DISM:" - Label3.Text = "Versione:" - Label5.Text = "Salva impostazioni su:" - Label7.Text = "Modalità colore:" - Label8.Text = "Lingua:" - Label9.Text = "Specificare le impostazioni per la finestra di log:" - Label10.Text = "Carattere della finestra di registro:" - Label11.Text = "Anteprima:" - Label12.Text = "File registro operazioni:" - Label13.Text = "Quando si eseguono operazioni di immagine nella riga di comando, specificare l'argomento " & Quote & "/LogPath" & Quote & " per salvare il registro delle operazioni di immagine nel file di registro di destinazione" - Label14.Text = "Livello del file di registro:" - Label18.Text = "Quando si eseguono tranquillamente le operazioni, il programma nasconde le informazioni e l'output di avanzamento. I messaggi di errore verranno comunque visualizzati." & CrLf & "Questa opzione non verrà utilizzata quando si ottengono informazioni, ad esempio, sui pacchetti o sulle funzioni." & CrLf & "Inoltre, quando si esegue la manutenzione delle immagini, il computer potrebbe riavviarsi automaticamente." - Label19.Text = "Quando questa opzione è selezionata, il computer non si riavvia automaticamente, anche quando si eseguono tranquillamente delle operazioni" - Label20.Text = "Specificare la cartella temporanea da utilizzare per le operazioni DISM:" - Label21.Text = "Cartella temporanea:" - Label22.Text = "Spazio rimanente nella cartella temporanea selezionata:" - Label25.Text = "Visualizzazione del registro:" - Label26.Text = "Esempio di rapporto:" - Label27.Text = "Alcuni rapporti non possono essere visualizzati come tabella" - Label28.Text = "Quando il programma dovrebbe notificare l'avvio dei processi in background?" - Label29.Text = "Il programma utilizza i processi in background per raccogliere informazioni complete sull'immagine, come le date di modifica, i pacchetti installati, le funzioni presenti e altro ancora" - Label40.Text = "Gestisci le associazioni dei file per i componenti di DISMTools:" - Label43.Text = "Impostare le opzioni che si desidera eseguire all'avvio del programma:" - Label44.Text = "Il programma utilizzerà la cartella temporanea fornita dal progetto, se ne è stata caricata una. Se ci si trova nelle modalità di gestione dell'installazione online o offline, il programma utilizzerà la sua directory scratch" - Label45.Text = "Stile del pannello di avanzamento secondario:" - Label46.Text = "Queste impostazioni non sono applicabili alle installazioni non portatili" - Label47.Text = "Questo carattere potrebbe non essere leggibile sulle finestre di registro. Anche se è possibile utilizzarlo, si consiglia di utilizzare caratteri monospaziati per una maggiore leggibilità." - Label48.Text = "Scegliere le impostazioni che il programma deve considerare quando salva le informazioni sull'immagine:" - Button1.Text = "Sfoglia..." - Button2.Text = "Visualizza le versioni dei componenti DISM" - Button3.Text = "Sfoglia..." - Button4.Text = "Sfoglia..." - Button9.Text = "Imposta associazioni file" - Button10.Text = "Impostazioni avanzate" - Cancel_Button.Text = "Annulla" - OK_Button.Text = "OK" - PrefReset.Text = "Reimpostare le preferenze" - CheckBox2.Text = "Esegui silenziosamente le operazioni sull'immagine" - CheckBox3.Text = "Salta il riavvio del sistema" - CheckBox4.Text = "Utilizza una directory scratch" - CheckBox5.Text = "Visualizza l'output del comando in inglese" - CheckBox6.Text = "Notifica l'avvio di processi in background" - CheckBox7.Text = "Abilita la visualizzazione del registro nel pannello di avanzamento per impostazione predefinita" - CheckBox9.Text = "Utilizza i menu in maiuscolo" - CheckBox10.Text = "Crea automaticamente i registri per ogni operazione eseguita" - CheckBox11.Text = "Imposta icone di file personalizzate per i progetti DISMTools" - CheckBox12.Text = "Rimonta le immagini montate che necessitano di un ricaricamento della sessione di assistenza" - CheckBox13.Text = "Controlla gli aggiornamenti" - CheckBox14.Text = "Salva sempre le informazioni complete per i seguenti elementi:" - CheckBox15.Text = "Pacchetti installati" - CheckBox16.Text = "Funzionalità" - CheckBox17.Text = "Pacchetti AppX installati" - CheckBox18.Text = "Capacità" - CheckBox19.Text = "Driver installati" - CheckBox22.Text = "Pulisci automaticamente i punti di montaggio (lancia un processo separato)" - DismOFD.Title = "Specificare l'eseguibile DISM da utilizzare" - Label59.Text = "Personalizzazione dei registri" - Label60.Text = "Impostare le opzioni che si desidera eseguire alla chiusura del programma:" - Label61.Text = "Anteprima:" - Label9.Text = "Salvataggio delle informazioni sull'immagine" - LinkLabel1.Text = "Il programma abilita o disabilita alcune funzioni in base alla versione di DISM supportata. Come influirà sull'uso di questo programma e quali funzioni saranno disabilitate di conseguenza?" - LinkLabel1.LinkArea = New LinkArea(92, 100) - LinkLabel2.Text = "Ulteriori informazioni sui processi in background" - LogSFD.Title = "Specificare la posizione del file di log" - RadioButton3.Text = "Utilizza la cartella temporanea del progetto o del programma" - RadioButton4.Text = "Utilizza la cartella temporanea specificata" - RadioButton5.Text = "Moderno" - RadioButton6.Text = "Classic" - ScratchFBD.Description = "Specifica la directory di scratch che il programma deve utilizzare:" - Label62.Text = "La registrazione DynaLog fornisce un metodo per salvare i registri diagnostici che possono essere utilizzati per risolvere i problemi del programma, nel caso in cui si verifichino. È possibile disattivare il logger utilizzando la levetta sottostante, ma non è consigliabile." & CrLf & CrLf & - "Disattivare il logging solo se causa un sovraccarico di prestazioni sul computer. Facendo clic sulla levetta, questa impostazione verrà applicata automaticamente." - Label63.Text = "Per impostazione predefinita, i registri delle operazioni vengono aperti con il Blocco note in caso di errore. Tuttavia, se si desidera aprirli con un altro programma, specificarlo di seguito:" - Label64.Text = "Controllo di registrazione DynaLog" - Label65.Text = "Editor con cui aprire i file di log:" - Label66.Text = "Editor di sistema" - Button5.Text = "Sfoglia..." - EditorOFD.Title = "Specificare l'editor da usare" - LinkLabel3.Text = "Mostrami dove sono archiviati i registri" - CheckBox20.Text = "Disabilita la registrazione di DynaLog" - End Select - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - SaveLocations(0) = "Settings file" - SaveLocations(1) = "Registry" - ColorModes(0) = "Use system setting" - ColorModes(1) = "Light mode" - ColorModes(2) = "Dark mode" - Languages(0) = "Use system language" - Languages(1) = "English" - Languages(2) = "Spanish" - Languages(3) = "French" - Languages(4) = "Portuguese" - Languages(5) = "Italian" - LogViews(0) = "list" - LogViews(1) = "table" - NotFreqs(0) = "Every time a project has been loaded successfully" - NotFreqs(1) = "Once" - Case "ESN" - SaveLocations(0) = "Archivo de configuración" - SaveLocations(1) = "Registro" - ColorModes(0) = "Usar configuración del sistema" - ColorModes(1) = "Modo claro" - ColorModes(2) = "Modo oscuro" - Languages(0) = "Usar idioma del sistema" - Languages(1) = "Inglés" - Languages(2) = "Español" - Languages(3) = "Francés" - Languages(4) = "Portugués" - Languages(5) = "Italiano" - LogViews(0) = "lista" - LogViews(1) = "tabla" - NotFreqs(0) = "Cada vez que un proyecto ha sido cargado satisfactoriamente" - NotFreqs(1) = "Una vez" - Case "FRA" - SaveLocations(0) = "Fichier des paramètres" - SaveLocations(1) = "Registre" - ColorModes(0) = "Utiliser les paramètres du système" - ColorModes(1) = "Mode lumineux" - ColorModes(2) = "Mode sombre" - Languages(0) = "Utiliser le langage du système" - Languages(1) = "Anglais" - Languages(2) = "Espagnol" - Languages(3) = "Français" - Languages(4) = "Portugais" - Languages(5) = "Italien" - LogViews(0) = "liste" - LogViews(1) = "tableau" - NotFreqs(0) = "Chaque fois qu'un projet a été chargé avec succès" - NotFreqs(1) = "Une fois" - Case "PTB", "PTG" - SaveLocations(0) = "Ficheiro de configurações" - SaveLocations(1) = "Registo" - ColorModes(0) = "Utilizar a configuração do sistema" - ColorModes(1) = "Modo claro" - ColorModes(2) = "Modo escuro" - Languages(0) = "Utilizar o idioma do sistema" - Languages(1) = "Inglês" - Languages(2) = "Espanhol" - Languages(3) = "Francês" - Languages(4) = "Português" - Languages(5) = "Italiano" - LogViews(0) = "lista" - LogViews(1) = "tabela" - NotFreqs(0) = "Sempre que um projeto tenha sido carregado com êxito" - NotFreqs(1) = "Uma vez" - Case "ITA" - SaveLocations(0) = "File impostazioni" - SaveLocations(1) = "Registro di sistema" - ColorModes(0) = "Usa le impostazioni di sistema" - ColorModes(1) = "Modalità chiara" - ColorModes(2) = "Modalità scura" - Languages(0) = "Usa la lingua di sistema" - Languages(1) = "Inglese" - Languages(2) = "Spagnolo" - Languages(3) = "Francese" - Languages(4) = "Portoghese" - Languages(5) = "Italiano" - LogViews(0) = "lista" - LogViews(1) = "tabella" - NotFreqs(0) = "Ogni volta che un progetto è stato caricato correttamente" - NotFreqs(1) = "Una volta" - End Select - Case 1 - SaveLocations(0) = "Settings file" - SaveLocations(1) = "Registry" - ColorModes(0) = "Use system setting" - ColorModes(1) = "Light mode" - ColorModes(2) = "Dark mode" - Languages(0) = "Use system language" - Languages(1) = "English" - Languages(2) = "Spanish" - Languages(3) = "French" - Languages(4) = "Portuguese" - Languages(5) = "Italian" - LogViews(0) = "list" - LogViews(1) = "table" - NotFreqs(0) = "Every time a project has been loaded successfully" - NotFreqs(1) = "Once" - Case 2 - SaveLocations(0) = "Archivo de configuración" - SaveLocations(1) = "Registro" - ColorModes(0) = "Usar configuración del sistema" - ColorModes(1) = "Modo claro" - ColorModes(2) = "Modo oscuro" - Languages(0) = "Usar idioma del sistema" - Languages(1) = "Inglés" - Languages(2) = "Español" - Languages(3) = "Francés" - Languages(4) = "Portugués" - Languages(5) = "Italiano" - LogViews(0) = "lista" - LogViews(1) = "tabla" - NotFreqs(0) = "Cada vez que un proyecto ha sido cargado satisfactoriamente" - NotFreqs(1) = "Una vez" - Case 3 - SaveLocations(0) = "Fichier des paramètres" - SaveLocations(1) = "Registre" - ColorModes(0) = "Utiliser les paramètres du système" - ColorModes(1) = "Mode lumineux" - ColorModes(2) = "Mode sombre" - Languages(0) = "Utiliser le langage du système" - Languages(1) = "Anglais" - Languages(2) = "Espagnol" - Languages(3) = "Français" - Languages(4) = "Portugais" - Languages(5) = "Italien" - LogViews(0) = "liste" - LogViews(1) = "tableau" - NotFreqs(0) = "Chaque fois qu'un projet a été chargé avec succès" - NotFreqs(1) = "Une fois" - Case 4 - SaveLocations(0) = "Ficheiro de configurações" - SaveLocations(1) = "Registo" - ColorModes(0) = "Utilizar a configuração do sistema" - ColorModes(1) = "Modo claro" - ColorModes(2) = "Modo escuro" - Languages(0) = "Utilizar o idioma do sistema" - Languages(1) = "Inglês" - Languages(2) = "Espanhol" - Languages(3) = "Francês" - Languages(4) = "Português" - Languages(5) = "Italiano" - LogViews(0) = "lista" - LogViews(1) = "tabela" - NotFreqs(0) = "Sempre que um projeto tenha sido carregado com êxito" - NotFreqs(1) = "Uma vez" - Case 5 - SaveLocations(0) = "File delle impostazioni" - SaveLocations(1) = "Registro di sistema" - ColorModes(0) = "Usa le impostazioni di sistema" - ColorModes(1) = "Modalità chiara" - ColorModes(2) = "Modalità scura" - Languages(0) = "Utilizza la lingua di sistema" - Languages(1) = "Inglese" - Languages(2) = "Spagnolo" - Languages(3) = "Francese" - Languages(4) = "Portoghese" - Languages(5) = "Italiano" - LogViews(0) = "lista" - LogViews(1) = "tabella" - NotFreqs(0) = "Ogni volta che un progetto è stato caricato con successo" - NotFreqs(1) = "Una volta" - End Select + Text = LocalizationService.ForSection("Options")("Title.Label") + ImageTaskHeader1.ItemText = Text + Label49.Text = LocalizationService.ForSection("Options")("Program.Label") + Label50.Text = LocalizationService.ForSection("Options")("Personalization.Label") + Label51.Text = LocalizationService.ForSection("Options")("Logs.Label") + Label52.Text = LocalizationService.ForSection("Options")("ImageOperations.Label") + Label53.Text = LocalizationService.ForSection("Options")("ScratchDirectory.Label") + Label54.Text = LocalizationService.ForSection("Options")("ProgramOutput.Label") + Label55.Text = LocalizationService.ForSection("Options")("BgProcesses.Label") + Label57.Text = LocalizationService.ForSection("Options")("FileAssociations.Label") + Label58.Text = LocalizationService.ForSection("Options")("StartupOptions.Label") + Label34.Text = LocalizationService.ForSection("Options")("ShutdownOptions.Label") + Label2.Text = LocalizationService.ForSection("Options")("Dismexecutable.Path.Label") + Label3.Text = LocalizationService.ForSection("Options")("Version.Label") + Label5.Text = LocalizationService.ForSection("Options")("SaveSettings.Label") + Label7.Text = LocalizationService.ForSection("Options")("ColorMode.Label") + Label8.Text = LocalizationService.ForSection("Options")("Language.Label") + Label9.Text = LocalizationService.ForSection("Options")("Settings.Log.Required.Label") + Label10.Text = LocalizationService.ForSection("Options")("Log.Window.Font.Label") + Label11.Text = LocalizationService.ForSection("Options")("Preview.Label") + Label12.Text = LocalizationService.ForSection("Options")("Operation.Log.File.Label") + Label13.Text = LocalizationService.ForSection("Options")("Image.Ops.Message") + Label14.Text = LocalizationService.ForSection("Options")("Log.File.Level.Label") + Label18.Text = LocalizationService.ForSection("Options")("QuietOperations.Message") + Label19.Text = LocalizationService.ForSection("Options")("Checked.Computer.Message") + Label20.Text = LocalizationService.ForSection("Options")("Scratch.Dir.Required.Label") + Label21.Text = LocalizationService.ForSection("Options")("ScratchDirectory.Input.Label") + Label22.Text = LocalizationService.ForSection("Options")("Space.Left.Selected.Label") + Label25.Text = LocalizationService.ForSection("Options")("LogView.Label") + Label26.Text = LocalizationService.ForSection("Options")("ExampleReport.Label") + Label27.Text = LocalizationService.ForSection("Options")("Reports.Allow.Shown.Label") + Label28.Text = LocalizationService.ForSection("Options")("Notify.Label") + Label29.Text = LocalizationService.ForSection("Options")("Uses.Bg.Procs.Message") + Label40.Text = LocalizationService.ForSection("Options")("Manage.File.Assoc.Label") + Label43.Text = LocalizationService.ForSection("Options")("Behavior.OnStartup.Label") + Label44.Text = LocalizationService.ForSection("Options")("Scratch.Dir.Message") + Label45.Text = LocalizationService.ForSection("Options")("Secondary.Progress.Label") + Label46.Text = LocalizationService.ForSection("Options")("Settings.Aren.Label") + Label47.Text = LocalizationService.ForSection("Options")("Font.Readable.Log.Message") + Label48.Text = LocalizationService.ForSection("Options")("SettingsConsider.Label") + Button1.Text = LocalizationService.ForSection("Options")("Browse.Button") + Button2.Text = LocalizationService.ForSection("Options")("View.DISM.Button") + Button3.Text = LocalizationService.ForSection("Options")("Browse.Button") + Button4.Text = LocalizationService.ForSection("Options")("Browse.Button") + Button9.Text = LocalizationService.ForSection("Options")("Set.File.Assoc.Button") + Button10.Text = LocalizationService.ForSection("Options")("AdvancedSettings.Button") + Cancel_Button.Text = LocalizationService.ForSection("Options")("Cancel.Button") + OK_Button.Text = LocalizationService.ForSection("Options")("Ok.Button") + PrefReset.Text = LocalizationService.ForSection("Options")("ResetPreferences.Label") + CheckBox2.Text = LocalizationService.ForSection("Options")("Quietly.Image.Ops.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("Options")("Skip.System.Restart.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("Options")("Scratch.Dir.CheckBox") + CheckBox5.Text = LocalizationService.ForSection("Options")("Show.Command.Output.CheckBox") + CheckBox6.Text = LocalizationService.ForSection("Options")("Notify.Me.CheckBox") + CheckBox7.Text = LocalizationService.ForSection("Options")("Show.Log.View.CheckBox") + CheckBox9.Text = LocalizationService.ForSection("Options")("Uppercase.Menus.CheckBox") + CheckBox10.Text = LocalizationService.ForSection("Options")("Auto.Create.Logs.CheckBox") + CheckBox11.Text = LocalizationService.ForSection("Options")("Set.Custom.File.CheckBox") + CheckBox12.Text = LocalizationService.ForSection("Options")("Remount.Mounted.CheckBox") + CheckBox13.Text = LocalizationService.ForSection("Options")("CheckUpdates.CheckBox") + CheckBox14.Text = LocalizationService.ForSection("Options")("Always.Save.CheckBox") + CheckBox15.Text = LocalizationService.ForSection("Options")("Installed.Packages.CheckBox") + CheckBox16.Text = LocalizationService.ForSection("Options")("Features.CheckBox") + CheckBox17.Text = LocalizationService.ForSection("Options")("Installed.AppX.CheckBox") + CheckBox18.Text = LocalizationService.ForSection("Options")("Capabilities.CheckBox") + CheckBox19.Text = LocalizationService.ForSection("Options")("InstalledDrivers.CheckBox") + CheckBox22.Text = LocalizationService.ForSection("Options")("Automatically.Clean.CheckBox") + DismOFD.Title = LocalizationService.ForSection("Options")("Dismexecutable.Title") + Label59.Text = LocalizationService.ForSection("Options")("LogCustomization.Label") + Label60.Text = LocalizationService.ForSection("Options")("Behavior.OnClose.Label") + Label61.Text = LocalizationService.ForSection("Options")("Preview.Label") + Label9.Text = LocalizationService.ForSection("Options")("Saving.Image.Item") + LinkLabel1.Text = LocalizationService.ForSection("Options")("Enable.Disable.Message") + LinkLabel1.LinkArea = LocalizationService.GetLinkArea(LinkLabel1.Text, LocalizationService.ForSection("Options")("Going.Affect.My")) + LinkLabel2.Text = LocalizationService.ForSection("Options")("Learn.Background.Link") + LogSFD.Title = LocalizationService.ForSection("Options")("Location.Log.File.Title") + RadioButton3.Text = LocalizationService.ForSection("Options")("Project.Scratch.RadioButton") + RadioButton4.Text = LocalizationService.ForSection("Options")("Custom.Scratch.RadioButton") + RadioButton5.Text = LocalizationService.ForSection("Options")("Modern.RadioButton") + RadioButton6.Text = LocalizationService.ForSection("Options")("Classic.RadioButton") + ScratchFBD.Description = LocalizationService.ForSection("Options")("ScratchDir.Description") + Label62.Text = LocalizationService.ForSection("Options")("Dyna.Log.Logging.Message") & LocalizationService.ForSection("Options")("Disable.Logging.Only.Message") + Label63.Text = LocalizationService.ForSection("Options")("Default.Op.Logs.Message") + Label64.Text = LocalizationService.ForSection("Options")("Dyna.Log.Logging.Label") + Label65.Text = LocalizationService.ForSection("Options")("Editor.Open.Log.Label") + Label66.Text = LocalizationService.ForSection("Options")("SystemEditor.Label") + Button5.Text = LocalizationService.ForSection("Options")("Browse.Button") + EditorOFD.Title = LocalizationService.ForSection("Options")("Editor.Title") + LinkLabel3.Text = LocalizationService.ForSection("Options")("Show.Me.Logs.Link") + LogPreview.Text = LocalizationService.ForSection("Options.LogPreview")("Packages.Add.Message") + ApplySecondaryProgressPreview() + CheckBox20.Text = LocalizationService.ForSection("Options")("Disable.Dyna.Log.CheckBox") + + Dim DesignerOptions = LocalizationService.ForSection("Designer.Options") + DismOFD.Filter = DesignerOptions("DISM.Executable.Filter") + LogSFD.Filter = DesignerOptions("LogSFD.Filter") + EditorOFD.Filter = DesignerOptions("ProgramsEXE.Filter") + DTSSEditAssocCB.Text = DesignerOptions("Open.Starter.Scripts.Label") + DTProjAssocCB.Text = DesignerOptions("Open.My.Projects.Label") + LinkLabel4.Text = DesignerOptions("Difference.Between.Link") + Label72.Text = DesignerOptions("PackageName.Label") + Label73.Text = DesignerOptions("RaymanJungle.Label") + Label74.Text = DesignerOptions("DisplayName.Label") + Label71.Text = DesignerOptions("Example.Label") + Label70.Text = DesignerOptions("Remove.AppX.Label") + Label32.Text = DesignerOptions("Only.Available.Message") + CheckBox23.Text = DesignerOptions("Map.System.Accounts.CheckBox") + CheckBox1.Text = DesignerOptions("Show.Dates.Human.CheckBox") + CheckBox8.Text = DesignerOptions("PreventSleep.CheckBox") + LinkLabel5.Text = DesignerOptions("Help.Me.Understand.Link") + Label76.Text = DesignerOptions("AIFeature.Label") + Label69.Text = DesignerOptions("Search.Engine.Web.Label") + Label67.Text = DesignerOptions("Searching.Image.Online.Label") + Label68.Text = DesignerOptions("Learn.Message") + Button14.Text = DesignerOptions("RunNow.Button") + Button7.Text = DesignerOptions("InstallService.Button") + Button11.Text = DesignerOptions("EnableService.Button") + Button12.Text = DesignerOptions("DisableService.Button") + Button13.Text = DesignerOptions("DeleteService.Button") + GroupBox2.Text = DesignerOptions("ServiceStatus.Group") + Label79.Text = DesignerOptions("Installed.Label") + Label81.Text = DesignerOptions("InstallationPath.Label") + Label77.Text = DesignerOptions("Automatic.Image.Reload.Label") + Label83.Text = DesignerOptions("Still.See.Standard.Message") + Label78.Text = DesignerOptions("Automatic.Image.Message") + GroupBox1.Text = DesignerOptions("ColorThemes.Group") + Button6.Text = DesignerOptions("DesignThemes.Button") + Label30.Text = DesignerOptions("LightMode.Label") + Label33.Text = DesignerOptions("Own.Themes.Label") + Label31.Text = DesignerOptions("Change.Color.Theme.Label") + Label17.Text = DesignerOptions("DarkMode.Label") + CheckBox21.Text = DesignerOptions("Show.Date.Time.CheckBox") + CheckBox24.Text = DesignerOptions("Set.Custom.CheckBox") + + SaveLocations(0) = LocalizationService.ForSection("Options")("SettingsFile.Item") + SaveLocations(1) = LocalizationService.ForSection("Options")("Registry.Item") + ColorModes(0) = LocalizationService.ForSection("Options")("System.Setting.Item") + ColorModes(1) = LocalizationService.ForSection("Options")("LightMode.Item") + ColorModes(2) = LocalizationService.ForSection("Options")("DarkMode.Item") + LogViews(0) = LocalizationService.ForSection("Options")("List.Item") + LogViews(1) = LocalizationService.ForSection("Options")("Table.Item") + NotFreqs(0) = LocalizationService.ForSection("Options")("Every.Time.Project.Item") + NotFreqs(1) = LocalizationService.ForSection("Options")("Freqs1.Item") ComboBox1.Items.AddRange(SaveLocations) ComboBox2.Items.AddRange(ColorModes) - ComboBox3.Items.AddRange(Languages) + PopulateLanguageComboBox(ComboBox3, selectedLanguageCode) ComboBox5.Items.AddRange(LogViews) ComboBox6.Items.AddRange(NotFreqs) ComboBox7.Items.AddRange(SearchEngineHelper.GetAllSearchEngines().Select(Function(engine) engine.Name).ToArray()) DynaLog.LogMessage("Checking if portable marker exists...") If File.Exists(Application.StartupPath & "\portable") Then ComboBox1.Items.RemoveAt(1) + RestoreComboBoxIndex(ComboBox1, selectedSaveLocation) + RestoreComboBoxIndex(ComboBox2, selectedColorMode) + PopulateLanguageComboBox(ComboBox3, selectedLanguageCode) + RestoreComboBoxIndex(ComboBox5, selectedLogView) + RestoreComboBoxIndex(ComboBox6, selectedNotificationFrequency) + If selectedSearchEngine IsNot Nothing AndAlso ComboBox7.Items.Contains(selectedSearchEngine) Then + ComboBox7.SelectedItem = selectedSearchEngine + End If + Finally + isApplyingLocalizedText = False + End Try + End Sub + + Private Sub Options_Load(sender As Object, e As EventArgs) Handles MyBase.Load + originalLanguage = LocalizationService.NormalizeCultureCode(MainForm.LanguageCode) + ApplyLocalizedText() + DynaLog.LogMessage("Getting system fonts...") GetSystemFonts() ' Set default values before loading custom ones @@ -1548,8 +717,7 @@ Public Class Options SplitContainer1.SplitterDistance = WindowHelper.ScaleLogical(SplitContainer1.SplitterDistance) End If - DTProjAssocCB.Checked = DetectFileAssociations("DISMTools.Project") - DTSSEditAssocCB.Checked = DetectFileAssociations("DTSSEdit.StarterScript") + LoadFileAssociationState() GetAIRServiceInformation() ImageTaskHeader1.HideWindowTitle(handle) End Sub @@ -1581,7 +749,7 @@ Public Class Options Case 2 ComboBox2.SelectedIndex = 2 End Select - ComboBox3.SelectedIndex = MainForm.Language + PopulateLanguageComboBox(ComboBox3, MainForm.LanguageCode) ComboBox4.Text = MainForm.LogFont NumericUpDown1.Value = MainForm.LogFontSize If MainForm.LogFontIsBold Then @@ -1671,35 +839,41 @@ Public Class Options CheckBox1.Checked = MainForm.HumanizeDates End Sub + Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox3.SelectedIndexChanged + If isInitializingForm OrElse isApplyingLocalizedText Then Return + If ComboBox3.SelectedIndex < 0 Then Return + + Dim previousLanguageCode As String = MainForm.LanguageCode + Dim selectedLanguageCode As String = GetSelectedLanguageCode(ComboBox3, previousLanguageCode) + Dim validationMessage As String = "" + If Not LocalizationService.ValidateLanguage(selectedLanguageCode, validationMessage) Then + MessageBox.Show(validationMessage, + "Incompatible or invalid DISMTools language file", + MessageBoxButtons.OK, + MessageBoxIcon.Error) + isApplyingLocalizedText = True + Try + PopulateLanguageComboBox(ComboBox3, previousLanguageCode) + Finally + isApplyingLocalizedText = False + End Try + Return + End If + + MainForm.LanguageCode = selectedLanguageCode + LocalizationService.SetLanguageByCultureCode(MainForm.LanguageCode) + ApplyLocalizedText() + MainForm.ApplyLanguage(MainForm.LanguageCode) + ChangeSections(SectionNum) + ImageTaskHeader1.ItemText = Text + End Sub + Private Sub ComboBox5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox5.SelectedIndexChanged Select Case ComboBox5.SelectedIndex Case 0 - TextBox4.Text = "Image Version: 10.0.19045.2075" & CrLf & CrLf & _ - "Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1" & CrLf & CrLf & _ - "Feature Name : TFTP" & CrLf & _ - "State : Disabled" & CrLf & CrLf & _ - "Feature Name : LegacyComponents" & CrLf & _ - "State : Enabled" & CrLf & CrLf & _ - "Feature Name : DirectPlay" & CrLf & _ - "State : Enabled" & CrLf & CrLf & _ - "Feature Name : SimpleTCP" & CrLf & _ - "State : Disabled" & CrLf & CrLf & _ - "Feature Name : Windows-Identity-Foundation" & CrLf & _ - "State : Disabled" & CrLf & CrLf & _ - "Feature Name : NetFx3" & CrLf & _ - "State : Enabled" + TextBox4.Text = LocalizationService.ForSection("Options")("Image.Version.Message") Case 1 - TextBox4.Text = "Image Version: 10.0.19045.2075" & CrLf & CrLf & _ - "Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1" & CrLf & CrLf & CrLf & _ - "------------------------------------------- | --------" & CrLf & _ - "Feature Name | State" & CrLf & _ - "------------------------------------------- | --------" & CrLf & _ - "TFTP | Disabled" & CrLf & _ - "LegacyComponents | Enabled" & CrLf & _ - "DirectPlay | Enabled" & CrLf & _ - "SimpleTCP | Disabled" & CrLf & _ - "Windows-Identity-Foundation | Disabled" & CrLf & _ - "NetFx3 | Enabled" + TextBox4.Text = LocalizationService.ForSection("Options")("LogPreview.Message") End Select End Sub @@ -1741,31 +915,7 @@ Public Class Options If Not Directory.Exists(Path.Combine(Path.GetDirectoryName(TextBox1.Text), "dism")) Then DynaLog.LogMessage("Said folder does not exist on the file system.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The DISM components directory could not be found. If you have all components in the same folder of the DISM executable, please create a " & Quote & "dism" & Quote & " folder and try again." - Case "ESN" - msg = "La carpeta de componentes de DISM no pudo ser encontrada. Si tiene todos los componentes en la misma carpeta del ejecutable de DISM, cree una carpeta " & Quote & "dism" & Quote & " e inténtelo de nuevo." - Case "FRA" - msg = "Le répertoire des composants DISM n'a pas été trouvé. Si vous avez tous les composants dans le même dossier de l'exécutable DISM, veuillez créer un dossier " & Quote & "dism" & Quote & " et réessayer." - Case "PTB", "PTG" - msg = "Não foi possível encontrar o diretório de componentes do DISM. Se tiver todos os componentes na mesma pasta do executável DISM, crie uma pasta " & Quote & "dism" & Quote & " e tente novamente." - Case "ITA" - msg = "Non è stato possibile trovare la cartella dei componenti DISM. Se tutti i componenti si trovano nella stessa cartella dell'eseguibile DISM, creauna cartella " & Quote & "dism" & Quote & " e riprova." - End Select - Case 1 - msg = "The DISM components directory could not be found. If you have all components in the same folder of the DISM executable, please create a " & Quote & "dism" & Quote & " folder and try again." - Case 2 - msg = "La carpeta de componentes de DISM no pudo ser encontrada. Si tiene todos los componentes en la misma carpeta del ejecutable de DISM, cree una carpeta " & Quote & "dism" & Quote & " e inténtelo de nuevo." - Case 3 - msg = "Le répertoire des composants DISM n'a pas été trouvé. Si vous avez tous les composants dans le même dossier de l'exécutable DISM, veuillez créer un dossier " & Quote & "dism" & Quote & " et réessayer." - Case 4 - msg = "Não foi possível encontrar o diretório de componentes do DISM. Se tiver todos os componentes na mesma pasta do executável DISM, crie uma pasta " & Quote & "dism" & Quote & " e tente novamente." - Case 5 - msg = "Non è stato possibile trovare la cartella dei componenti DISM. Se tutti i componenti si trovano nella stessa cartella dell'eseguibile DISM, crea una cartella " & Quote & "dism" & Quote & " e riprova." - End Select + msg = LocalizationService.ForSection("Options.Actions")("DISM.Components.Message") MsgBox(msg, vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) Exit Sub End If @@ -1809,160 +959,19 @@ Public Class Options Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll DynaLog.LogMessage("Log level (trackbar value + 1): " & (TrackBar1.Value + 1)) - Select Case MainForm.Language + Select Case TrackBar1.Value Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Errors (Log level 1)" - Label16.Text = "The log file should only display errors after performing an image operation." - Case 1 - Label15.Text = "Errors and warnings (Log level 2)" - Label16.Text = "The log file should display errors and warnings after performing an image operation." - Case 2 - Label15.Text = "Errors, warnings and information messages (Log level 3)" - Label16.Text = "The log file should display errors, warnings and information messages after performing an image operation." - Case 3 - Label15.Text = "Errors, warnings, information and debug messages (Log level 4)" - Label16.Text = "The log file should display errors, warnings, information and debug messages after performing an image operation." - End Select - Case "ESN" - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Errores (Nivel 1)" - Label16.Text = "El archivo de registro solo debe mostrar errores tras realizar una operación." - Case 1 - Label15.Text = "Errores y advertencias (Nivel 2)" - Label16.Text = "El archivo de registro debe mostrar errores y advertencias tras realizar una operación." - Case 2 - Label15.Text = "Errores, advertencias y mensajes de información (Nivel 3)" - Label16.Text = "El archivo de registro debe mostrar errores, advertencias y mensajes de información tras realizar una operación." - Case 3 - Label15.Text = "Errores, advertencias, mensajes de información y de depuración (Nivel 4)" - Label16.Text = "El archivo de registro debe mostrar errores, advertencias, mensajes de información y de depuración tras realizar una operación." - End Select - Case "FRA" - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Erreurs (niveau du journal 1)" - Label16.Text = "Le fichier journal ne doit afficher les erreurs qu'après l'exécution d'une opération d'image." - Case 1 - Label15.Text = "Erreurs et avertissements (niveau de journal 2)" - Label16.Text = "Le fichier journal doit afficher les erreurs et les avertissements après l'exécution d'une opération d'image." - Case 2 - Label15.Text = "Erreurs, avertissements et messages d'information (niveau du journal 3)" - Label16.Text = "Le fichier journal doit afficher les erreurs, les avertissements et les messages d'information après l'exécution d'une opération d'image." - Case 3 - Label15.Text = "Erreurs, avertissements, informations et messages de débogage (niveau du journal 4)" - Label16.Text = "Le fichier journal doit afficher les erreurs, les avertissements, les informations et les messages de débogage après l'exécution d'une opération d'image." - End Select - Case "PTB", "PTG" - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Erros (nível de registo 1)" - Label16.Text = "O ficheiro de registo só deve apresentar erros depois de executar uma operação de imagem." - Case 1 - Label15.Text = "Erros e avisos (nível de registo 2)" - Label16.Text = "O ficheiro de registo deve apresentar erros e avisos após a realização de uma operação de imagem." - Case 2 - Label15.Text = "Erros, avisos e mensagens de informação (nível de registo 3)" - Label16.Text = "O ficheiro de registo deve apresentar erros, avisos e mensagens de informação após a realização de uma operação de imagem." - Case 3 - Label15.Text = "Erros, avisos, informações e mensagens de depuração (nível de registo 4)" - Label16.Text = "O ficheiro de registo deve apresentar erros, avisos, informações e mensagens de depuração após a realização de uma operação de imagem." - End Select - Case "ITA" - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Errori (livello registro 1)" - Label16.Text = "Il file registro visualizzare gli errori solo dopo l'esecuzione di un'operazione sull'immagine" - Case 1 - Label15.Text = "Errori e avvisi (livello registro 2)" - Label16.Text = "Il file registro visualizza errori e avvisi dopo l'esecuzione di un'operazione sull'immagine" - Case 2 - Label15.Text = "Errori, avvisi e messaggi informativi (livello registro 3)" - Label16.Text = "Il file registro visualizza errori, avvisi e messaggi informativi dopo l'esecuzione di un'operazione sull'immagine." - Case 3 - Label15.Text = "Errori, avvisi, informazioni e messaggi di debug (livello registro 4)" - Label16.Text = "Il file registro visualizza errori, avvisi, informazioni e messaggi di debug dopo l'esecuzione di un'operazione sull'immagine." - End Select - End Select + Label15.Text = LocalizationService.ForSection("Options.LogLevel")("Level1.Label") + Label16.Text = LocalizationService.ForSection("Options.LogLevel")("Errors.Description.Label") Case 1 - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Errors (Log level 1)" - Label16.Text = "The log file should only display errors after performing an image operation." - Case 1 - Label15.Text = "Errors and warnings (Log level 2)" - Label16.Text = "The log file should display errors and warnings after performing an image operation." - Case 2 - Label15.Text = "Errors, warnings and information messages (Log level 3)" - Label16.Text = "The log file should display errors, warnings and information messages after performing an image operation." - Case 3 - Label15.Text = "Errors, warnings, information and debug messages (Log level 4)" - Label16.Text = "The log file should display errors, warnings, information and debug messages after performing an image operation." - End Select + Label15.Text = LocalizationService.ForSection("Options.LogLevel")("Level2.Item") + Label16.Text = LocalizationService.ForSection("Options.LogLevel")("Level2.Description.Item") Case 2 - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Errores (Nivel 1)" - Label16.Text = "El archivo de registro solo debe mostrar errores tras realizar una operación." - Case 1 - Label15.Text = "Errores y advertencias (Nivel 2)" - Label16.Text = "El archivo de registro debe mostrar errores y advertencias tras realizar una operación." - Case 2 - Label15.Text = "Errores, advertencias y mensajes de información (Nivel 3)" - Label16.Text = "El archivo de registro debe mostrar errores, advertencias y mensajes de información tras realizar una operación." - Case 3 - Label15.Text = "Errores, advertencias, mensajes de información y de depuración (Nivel 4)" - Label16.Text = "El archivo de registro debe mostrar errores, advertencias, mensajes de información y de depuración tras realizar una operación." - End Select + Label15.Text = LocalizationService.ForSection("Options.LogLevel")("Level2Messages.Item") + Label16.Text = LocalizationService.ForSection("Options.LogLevel")("Level3.Description.Message") Case 3 - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Erreurs (niveau du journal 1)" - Label16.Text = "Le fichier journal ne doit afficher les erreurs qu'après l'exécution d'une opération d'image." - Case 1 - Label15.Text = "Erreurs et avertissements (niveau de journal 2)" - Label16.Text = "Le fichier journal doit afficher les erreurs et les avertissements après l'exécution d'une opération d'image." - Case 2 - Label15.Text = "Erreurs, avertissements et messages d'information (niveau du journal 3)" - Label16.Text = "Le fichier journal doit afficher les erreurs, les avertissements et les messages d'information après l'exécution d'une opération d'image." - Case 3 - Label15.Text = "Erreurs, avertissements, informations et messages de débogage (niveau du journal 4)" - Label16.Text = "Le fichier journal doit afficher les erreurs, les avertissements, les informations et les messages de débogage après l'exécution d'une opération d'image." - End Select - Case 4 - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Erros (nível de registo 1)" - Label16.Text = "O ficheiro de registo só deve apresentar erros depois de executar uma operação de imagem." - Case 1 - Label15.Text = "Erros e avisos (nível de registo 2)" - Label16.Text = "O ficheiro de registo deve apresentar erros e avisos após a realização de uma operação de imagem." - Case 2 - Label15.Text = "Erros, avisos e mensagens de informação (nível de registo 3)" - Label16.Text = "O ficheiro de registo deve apresentar erros, avisos e mensagens de informação após a realização de uma operação de imagem." - Case 3 - Label15.Text = "Erros, avisos, informações e mensagens de depuração (nível de registo 4)" - Label16.Text = "O ficheiro de registo deve apresentar erros, avisos, informações e mensagens de depuração após a realização de uma operação de imagem." - End Select - Case 5 - Select Case TrackBar1.Value - Case 0 - Label15.Text = "Errori (livello registro 1)" - Label16.Text = "Il file di registro visualizza gli errori solo dopo l'esecuzione di un'operazione sull'immagine" - Case 1 - Label15.Text = "Errori e avvisi (livello registro 2)" - Label16.Text = "Il file registro visualizza errori e avvisi dopo l'esecuzione di un'operazione sull'immagine" - Case 2 - Label15.Text = "Errori, avvisi e messaggi informativi (livello registro 3)" - Label16.Text = "Il file registro visualizza errori, avvisi e messaggi informativi dopo l'esecuzione di un'operazione sull'immagine." - Case 3 - Label15.Text = "Errori, avvisi, informazioni e messaggi di debug (livello registro 4)" - Label16.Text = "Il file registro visualizza errori, avvisi, informazioni e messaggi di debug dopo l'esecuzione di un'operazione sull'immagine." - End Select + Label15.Text = LocalizationService.ForSection("Options.LogLevel")("Level2Debug.Item") + Label16.Text = LocalizationService.ForSection("Options.LogLevel")("Level4.Description.Message") End Select End Sub @@ -2001,391 +1010,43 @@ Public Class Options ''' The source scratch directory ''' Sub GetRootSpace(SourceDir As String) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - If SourceDir = "" Then - Label23.Text = "Please specify a scratch directory." - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "You have enough space on the selected scratch directory" - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "You don't have enough space on the selected scratch directory to perform image operations. Try freeing some space from the drive" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "You may not have enough space on the selected scratch directory for some operations." - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "You have enough space on the selected scratch directory" - End Select - Catch ex As Exception - Label23.Text = "Could not get available free space. Continue at your own risk" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "You have enough space on the selected scratch directory" - Exit Sub - End Try - End If - Case "ESN" - If SourceDir = "" Then - Label23.Text = "Especifique un directorio temporal." - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Hay espacio suficiente en el directorio temporal seleccionado" - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "No hay espacio suficiente en el directorio temporal seleccionado para realizar operaciones con la imagen. Intente liberar algo de espacio en el disco" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "Podría no tener espacio suficiente en el directorio temporal seleccionado para algunas operaciones." - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Tiene espacio suficiente en el directorio temporal seleccionado" - End Select - Catch ex As Exception - Label23.Text = "No pudimos obtener el espacio libre disponible. Continúe bajo su propio riesgo" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Tiene espacio suficiente en el directorio temporal seleccionado" - Exit Sub - End Try - End If - Case "FRA" - If SourceDir = "" Then - Label23.Text = "Veuillez indiquer un répertoire temporaire." - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné." - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "Vous ne disposez pas de suffisamment d'espace sur le répertoire temporaire sélectionné pour effectuer des opérations sur les images. Essayez de libérer de l'espace sur le disque" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "Il se peut que vous ne disposiez pas de suffisamment d'espace sur le répertoire temporaire sélectionné pour certaines opérations." - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné." - End Select - Catch ex As Exception - Label23.Text = "Impossible d'obtenir l'espace libre disponible. Poursuivre à vos risques et périls" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné." - Exit Sub - End Try - End If - Case "PTB", "PTG" - If SourceDir = "" Then - Label23.Text = "Especifique um diretório temporário." - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Há espaço suficiente no diretório temporário selecionado" - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "Não há espaço suficiente no diretório de rascunho selecionado para executar operações de imagem. Tente libertar algum espaço na unidade" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "Pode não haver espaço suficiente no diretório de rascunho selecionado para algumas operações." - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Há espaço suficiente no diretório temporário selecionado" - End Select - Catch ex As Exception - Label23.Text = "Não foi possível obter espaço livre disponível. Continue por sua conta e risco" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Há espaço suficiente no diretório temporário selecionado" - Exit Sub - End Try - End If - Case "ITA" - If SourceDir = "" Then - Label23.Text = "Specifica una cartella temporanea" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Lo spazio disponibile nella cartella temporanea selezionata è sufficiente" - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "Nella cartella temporanea selezionata non c'è abbastanza spazio per eseguire operazioni sulle immagini. Provare a liberare spazio nell'unità" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "È possibile che la cartella temporanea selezionata non disponga di spazio sufficiente per alcune operazioni" - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Lo spazio disponibile nella cartella temporanea selezionata è sufficiente" - End Select - Catch ex As Exception - Label23.Text = "Impossibile ottenere spazio libero disponibile. Continuare a proprio rischio" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Lo spazio disponibile nella directory temporanea selezionata è sufficiente" - Exit Sub - End Try - End If - End Select - Case 1 - If SourceDir = "" Then - Label23.Text = "Please specify a scratch directory." - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "You have enough space on the selected scratch directory" - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "You don't have enough space on the selected scratch directory to perform image operations. Try freeing some space from the drive" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "You may not have enough space on the selected scratch directory for some operations." - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "You have enough space on the selected scratch directory" - End Select - Catch ex As Exception - Label23.Text = "Could not get available free space. Continue at your own risk" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "You have enough space on the selected scratch directory" - Exit Sub - End Try - End If - Case 2 - If SourceDir = "" Then - Label23.Text = "Especifique un directorio temporal." - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Hay espacio suficiente en el directorio temporal seleccionado" - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "No hay espacio suficiente en el directorio temporal seleccionado para realizar operaciones con la imagen. Intente liberar algo de espacio en el disco" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "Podría no tener espacio suficiente en el directorio temporal seleccionado para algunas operaciones." - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Tiene espacio suficiente en el directorio temporal seleccionado" - End Select - Catch ex As Exception - Label23.Text = "No pudimos obtener el espacio libre disponible. Continúe bajo su propio riesgo" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Tiene espacio suficiente en el directorio temporal seleccionado" - Exit Sub - End Try - End If - Case 3 - If SourceDir = "" Then - Label23.Text = "Veuillez indiquer un répertoire temporaire." - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné." - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "Vous ne disposez pas de suffisamment d'espace sur le répertoire temporaire sélectionné pour effectuer des opérations sur les images. Essayez de libérer de l'espace sur le disque" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "Il se peut que vous ne disposiez pas de suffisamment d'espace sur le répertoire temporaire sélectionné pour certaines opérations." - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné." - End Select - Catch ex As Exception - Label23.Text = "Impossible d'obtenir l'espace libre disponible. Poursuivre à vos risques et périls" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné." - Exit Sub - End Try - End If - Case 4 - If SourceDir = "" Then - Label23.Text = "Especifique um diretório temporário." - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Há espaço suficiente no diretório temporário selecionado" - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "Não há espaço suficiente no diretório de rascunho selecionado para executar operações de imagem. Tente libertar algum espaço na unidade" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "Pode não haver espaço suficiente no diretório de rascunho selecionado para algumas operações." - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Há espaço suficiente no diretório temporário selecionado" - End Select - Catch ex As Exception - Label23.Text = "Não foi possível obter espaço livre disponível. Continue por sua conta e risco" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Há espaço suficiente no diretório temporário selecionado" - Exit Sub - End Try - End If - Case 5 - If SourceDir = "" Then - Label23.Text = "Specificare una cartella temporanea" - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Lo spazio disponibile nella cartella temporanea selezionata è sufficiente" - Else - Try - Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) - Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) - Label23.Text = Math.Round(FreeSpace, 2) & " GB" - Select Case Math.Round(FreeSpace, 0) - Case Is < 5 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.error_16px) - Label24.Text = "Nella cartella temporanea selezionata non c'è abbastanza spazio per eseguire operazioni sulle immagini. Provare a liberare spazio nell'unità" - Case 5 To 19.989999999999998 - Label24.Visible = True - PictureBox5.Visible = True - PictureBox5.Image = New Bitmap(My.Resources.warning_16px) - Label24.Text = "È possibile che la cartella temporanea selezionata non disponga di spazio sufficiente per alcune operazioni" - Case Is >= 20 - Label24.Visible = False - PictureBox5.Visible = False - PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Lo spazio disponibile nella cartella temporanea selezionata è sufficiente" - End Select - Catch ex As Exception - Label23.Text = "Impossibile ottenere spazio libero disponibile. Continuare a proprio rischio" + If SourceDir = "" Then + Label23.Text = LocalizationService.ForSection("Options.GetRootSpace")("Scratch.Dir.Required.Label") + Label24.Visible = False + PictureBox5.Visible = False + PictureBox5.Image = New Bitmap(My.Resources.info_16px) + Label24.Text = LocalizationService.ForSection("Options.GetRootSpace")("EnoughSpace.Label") + Else + Try + Dim drInfo As New DriveInfo(Path.GetPathRoot(SourceDir)) + Dim FreeSpace As Double = drInfo.AvailableFreeSpace / (1024 ^ 3) + Label23.Text = LocalizationService.ForSection("Options.GetRootSpace").Format("GB.Item", Math.Round(FreeSpace, 2)) + Select Case Math.Round(FreeSpace, 0) + Case Is < 5 + Label24.Visible = True + PictureBox5.Visible = True + PictureBox5.Image = New Bitmap(My.Resources.error_16px) + Label24.Text = LocalizationService.ForSection("Options.GetRootSpace")("Enough.Message") + Case 5 To 19.989999999999998 + Label24.Visible = True + PictureBox5.Visible = True + PictureBox5.Image = New Bitmap(My.Resources.warning_16px) + Label24.Text = LocalizationService.ForSection("Options.GetRootSpace")("EnoughSpace.SomeOps.Item") + Case Is >= 20 Label24.Visible = False PictureBox5.Visible = False PictureBox5.Image = New Bitmap(My.Resources.info_16px) - Label24.Text = "Lo spazio disponibile nella directory temporanea selezionata è sufficiente" - Exit Sub - End Try - End If - End Select + Label24.Text = LocalizationService.ForSection("Options.GetRootSpace")("EnoughSpace.Directory.Item") + End Select + Catch ex As Exception + Label23.Text = LocalizationService.ForSection("Options.GetRootSpace")("Free.Unavailable.Item") + Label24.Visible = False + PictureBox5.Visible = False + PictureBox5.Image = New Bitmap(My.Resources.info_16px) + Label24.Text = LocalizationService.ForSection("Options.GetRootSpace")("Have.Enough.Item") + Exit Sub + End Try + End If End Sub Private Sub Toggle1_CheckedChanged(sender As Object, e As EventArgs) Handles Toggle1.CheckedChanged @@ -2471,12 +1132,51 @@ Public Class Options End If End Sub + + Private Sub ApplySecondaryProgressPreview() + Dim previewText As String = LocalizationService.ForSection("Options.ProgressPreview")("ImageIndexes.Message") + Dim waitText As String = LocalizationService.ForSection("Options.ProgressPreview")("Wait.Label") + SecProgressStylePreview.Image = RenderSecondaryProgressPreview(RadioButton5.Checked, waitText, previewText) + End Sub + + Private Function RenderSecondaryProgressPreview(modernStyle As Boolean, waitText As String, previewText As String) As Bitmap + Dim image As Bitmap = New Bitmap(If(modernStyle, My.Resources.secprogress_modern, My.Resources.secprogress_classic)) + + Using graphics As Graphics = Graphics.FromImage(image) + graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit + + Using backgroundBrush As New SolidBrush(Color.FromArgb(32, 32, 32)) + If modernStyle Then + graphics.FillRectangle(backgroundBrush, 1, 1, image.Width - 2, image.Height - 2) + Else + graphics.FillRectangle(backgroundBrush, 55, 1, image.Width - 56, image.Height - 2) + End If + End Using + + Using textBrush As New SolidBrush(Color.White) + If modernStyle Then + Using previewFont As New Font("Segoe UI", 9.0F, FontStyle.Regular) + Using format As New StringFormat() With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center} + graphics.DrawString(previewText, previewFont, textBrush, New RectangleF(0, 0, image.Width, image.Height), format) + End Using + End Using + Else + Using waitFont As New Font("Segoe UI", 8.25F, FontStyle.Bold) + Using previewFont As New Font("Segoe UI", 8.25F, FontStyle.Regular) + graphics.DrawString(waitText, waitFont, textBrush, New PointF(56.0F, 13.0F)) + graphics.DrawString(previewText, previewFont, textBrush, New PointF(56.0F, 29.0F)) + End Using + End Using + End If + End Using + End Using + + Return image + End Function + Private Sub RadioButton5_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton5.CheckedChanged - If RadioButton5.Checked Then - SecProgressStylePreview.Image = My.Resources.secprogress_modern - Else - SecProgressStylePreview.Image = My.Resources.secprogress_classic - End If + ApplySecondaryProgressPreview() End Sub Private Sub PrefReset_Click(sender As Object, e As EventArgs) Handles PrefReset.Click @@ -2600,18 +1300,14 @@ Public Class Options End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click - If File.Exists(Path.Combine(Application.StartupPath, "tools", "ThemeDesigner", "DT_ThemeDesigner.exe")) Then - Process.Start(Path.Combine(Application.StartupPath, "tools", "ThemeDesigner", "DT_ThemeDesigner.exe"), - String.Format("/userdata={0}", ControlChars.Quote & Path.Combine(Application.StartupPath, "userdata", "themes") & ControlChars.Quote)) - End If + Dim designerPath As String = Path.Combine(Application.StartupPath, "tools", "ThemeDesigner", "DT_ThemeDesigner.exe") + MainForm.TryLaunchExternalTool(designerPath, + Button6.Text, + String.Format("/userdata={0} {1}", ControlChars.Quote & Path.Combine(Application.StartupPath, "userdata", "themes") & ControlChars.Quote, LocalizationService.GetLanguageCommandLineArgument())) End Sub Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked - Dim qhMessage As String = String.Format("DISMTools will enable and/or disable certain features if they are not compatible with either the specified DISM executable, or the current Windows image, or both.{0}{0}" & - "For instance, if DISMTools detects that you are working with either a Windows 7 image, or with a Windows 7 version of DISM, or both; it will disable all features related to AppX package " & - "and capability servicing because they are incompatible with the target platform and the tooling used.{0}{0}" & - "DISMTools can also disable certain features based on other parameters of the Windows image you are servicing, such as the edition. This usually happens " & - "with Windows PE images.", Environment.NewLine) + Dim qhMessage As String = LocalizationService.ForSection("Options.QuickHelp").Format("DISM.Tools.Enable.Message", Environment.NewLine) ShowQuickHelp(qhMessage) End Sub @@ -2630,47 +1326,34 @@ Public Class Options End Sub Private Sub LinkLabel4_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel4.LinkClicked - Dim qhMessage As String = String.Format("AppX package display names are a portion of package family names that don't contain package-specific application information, such as architectures, versions, or the per-publisher hash.{0}{0}" & - "AppX package {1}friendly display names{1} are the names that you see when looking at them in your Start menu. These are derived from either application identity information in an application's manifest, " & - "or from embedded strings in an application's resources file (resources.pri).{0}{0}" & - "If DISMTools can't get the friendly display name, it will display the application's display name.", Environment.NewLine, Quote) + Dim qhMessage As String = LocalizationService.ForSection("Options.QuickHelp").Format("AppX.Package.Display.Message", Environment.NewLine, Quote) QuickHelpModule.ShowQuickHelp(qhMessage) End Sub Private Sub ComboBox7_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox7.SelectedIndexChanged If SearchEngineHelper.GetAllSearchEngines().ElementAt(ComboBox7.SelectedIndex).AIPermission > ComboBox9.SelectedIndex Then ' The user has selected a search engine with a higher AI tolerance level. - If MessageBox.Show(String.Format("The selected search engine, {1}{2}{1}, exceeds the current AI tolerance setting, {1}{3}{1}. " & - "If you continue with this search engine, AI tolerance will be increased after applying the settings.{0}{0}" & - "If you decide not to continue with this search engine, DISMTools will use the first search engine that stays " & - "within tolerance boundaries.{0}{0}" & - "Do you want to continue with this search engine?", Environment.NewLine, Quote, ComboBox7.SelectedItem, ComboBox9.SelectedItem), - "AI Tolerance Exceeded", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then + If MessageBox.Show(LocalizationService.ForSection("Options").Format("Selected.Search.Message", Environment.NewLine, Quote, ComboBox7.SelectedItem, ComboBox9.SelectedItem), + LocalizationService.ForSection("Options")("Aitolerance.Exceeded.Title"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then ComboBox7.SelectedItem = SearchEngineHelper.GetAllSearchEngines().First(Function(engine) engine.AIPermission = ComboBox9.SelectedIndex).Name End If End If End Sub Private Sub LinkLabel5_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel5.LinkClicked - Dim qhMessage As String = String.Format("When specifying search engine settings, you can specify the amount of tolerance of artificial intelligence (AI) features in a search engine.{0}{0}" & - "- {1}Turn off as many AI features as possible{1} will let you pick from a selection of search engines that have AI features disabled, or not implemented, by default{0}" & - "- {1}Let me control the AI features in my search engine{1} will let you pick from the former selection, plus search engines that do have AI features turned on by default, but configured via URL parameters or other engine settings{0}" & - "- {1}Turn on as many AI features as possible{1} will let you pick from all available search engines, including those that are based on AI or have dedicated modes for AI that are being advertised too much.{0}{0}" & - "Normally, the second option is what you can go with, as it gives you greater control. If you prefer a more privacy-focused experience, you can turn these features off.", Environment.NewLine, Quote) + Dim qhMessage As String = LocalizationService.ForSection("Options.QuickHelp").Format("Configure.Search.Message", Environment.NewLine, Quote) QuickHelpModule.ShowQuickHelp(qhMessage) End Sub Private Sub LinkLabel2_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked - Dim qhMessage As String = String.Format("Background processes allow DISMTools to get information about the Windows image that you are working on and let you perform the majority of tasks. " & - "Examples of such information are the operating system packages, or features in a Windows image.{0}{0}" & - "These processes are not just run when getting information about image files, but when managing online, or offline, installations as well.", Environment.NewLine) + Dim qhMessage As String = LocalizationService.ForSection("Options.QuickHelp").Format("Bg.Procs.Allow.Message", Environment.NewLine) QuickHelpModule.ShowQuickHelp(qhMessage) End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click Try If WindowsServiceHelper.InstallService(New WindowsService("DT_AutoReload", - "DISMTools Automatic Image Reload service", "", "", + LocalizationService.ForSection("Options.AutoReloadService")("DISM.Tools.Automatic.Label"), "", "", Path.Combine(Application.StartupPath, "AutoReload", "AutoReloadSvc.exe"), "", WindowsService.ServiceStartType.Automatic, False, WindowsService.ServiceType.WindowsApplication, @@ -2678,11 +1361,11 @@ Public Class Options {}.Cast(Of NTSecurityPrivilegeConstant).ToList(), {"EventLog"}, New WindowsService.ServiceFailureActions(), Integer.MinValue)) Then ' Set the description manually - WindowsServiceHelper.SetOnlineServiceDescription("DT_AutoReload", "This service automatically reloads the servicing sessions of all mounted images on this computer. Feel free to disable this service if you don't need it.") + WindowsServiceHelper.SetOnlineServiceDescription("DT_AutoReload", LocalizationService.ForSection("Options.AutoReloadService")("AutoReload.Description")) GetAIRServiceInformation() Else - Throw New Exception("The service could not be installed.") + Throw New Exception(LocalizationService.ForSection("Options.AutoReloadService")("ServiceInstalled.Label")) End If Catch ex As Exception MessageBox.Show(ex.Message, ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) @@ -2693,7 +1376,7 @@ Public Class Options If WindowsServiceHelper.EnableOnlineService("DT_AutoReload") Then GetAIRServiceInformation() Else - MessageBox.Show("The service could not be enabled.", ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("Options.Messages")("ServiceEnabled.Label"), ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End If End Sub @@ -2701,7 +1384,7 @@ Public Class Options If WindowsServiceHelper.DisableOnlineService("DT_AutoReload") Then GetAIRServiceInformation() Else - MessageBox.Show("The service could not be disabled.", ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("Options.Messages")("ServiceDisabled.Label"), ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End If End Sub @@ -2709,7 +1392,7 @@ Public Class Options If WindowsServiceHelper.DeleteService("DT_AutoReload") Then GetAIRServiceInformation() Else - MessageBox.Show("The service could not be removed.", ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("Options.Messages")("ServiceRemoved.Label"), ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End If End Sub @@ -2720,5 +1403,10 @@ Public Class Options Private Sub DTProjAssocCB_CheckedChanged(sender As Object, e As EventArgs) Handles DTProjAssocCB.CheckedChanged CheckBox11.Enabled = DTProjAssocCB.Checked + If isLoadingFileAssociationState Then Exit Sub + + ' A newly enabled project association should use the bundled project icon by default. + ' The user can still clear the icon check box before applying the association. + CheckBox11.Checked = DTProjAssocCB.Checked End Sub End Class diff --git a/Panels/Exe_Ops/PrgAbout.Designer.vb b/Panels/Exe_Ops/PrgAbout.Designer.vb index e66d45b76..3cf2ee9d0 100644 --- a/Panels/Exe_Ops/PrgAbout.Designer.vb +++ b/Panels/Exe_Ops/PrgAbout.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class PrgAbout Inherits System.Windows.Forms.Form @@ -100,7 +100,7 @@ Partial Class PrgAbout Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.PrgAbout")("Ok.Button") ' 'PictureBox1 ' @@ -121,7 +121,7 @@ Partial Class PrgAbout Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(121, 13) Me.Label1.TabIndex = 4 - Me.Label1.Text = "DISMTools - version {0}" + Me.Label1.Text = LocalizationService.ForSection("Designer.PrgAbout").Format("DISM.Tools.Version.Label", "") ' 'Label2 ' @@ -132,8 +132,7 @@ Partial Class PrgAbout Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(377, 41) Me.Label2.TabIndex = 4 - Me.Label2.Text = "DISMTools lets you deploy, manage, and service Windows images with ease, thanks t" & _ - "o a GUI." + Me.Label2.Text = LocalizationService.ForSection("Designer.PrgAbout")("DISM.Tools.Lets.Label") ' 'Label15 ' @@ -144,7 +143,7 @@ Partial Class PrgAbout Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(105, 13) Me.Label15.TabIndex = 4 - Me.Label15.Text = "Build date goes here" + Me.Label15.Text = LocalizationService.ForSection("Designer.PrgAbout")("Build.Date.Goes.Label") Me.Label15.Visible = False ' 'ModernPanelContainer @@ -233,7 +232,7 @@ Partial Class PrgAbout Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(363, 42) Me.Label3.TabIndex = 0 - Me.Label3.Text = "These resources and components were used in the creation of this program:" + Me.Label3.Text = LocalizationService.ForSection("Designer.PrgAbout")("ResourcesUsed.Label") ' 'Label4 ' @@ -244,7 +243,7 @@ Partial Class PrgAbout Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(86, 21) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Resources" + Me.Label4.Text = LocalizationService.ForSection("Designer.PrgAbout")("Resources.Label") ' 'Label5 ' @@ -253,7 +252,7 @@ Partial Class PrgAbout Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(48, 15) Me.Label5.TabIndex = 2 - Me.Label5.Text = "Fluency" + Me.Label5.Text = LocalizationService.ForSection("Designer.PrgAbout")("Fluency.Label") ' 'LinkLabel4 ' @@ -266,7 +265,7 @@ Partial Class PrgAbout Me.LinkLabel4.Size = New System.Drawing.Size(80, 30) Me.LinkLabel4.TabIndex = 3 Me.LinkLabel4.TabStop = True - Me.LinkLabel4.Text = "Icons8" + Me.LinkLabel4.Text = LocalizationService.ForSection("Designer.PrgAbout")("Icons.Link") Me.LinkLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label6 @@ -276,7 +275,7 @@ Partial Class PrgAbout Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(129, 15) Me.Label6.TabIndex = 2 - Me.Label6.Text = "SQL Server icon (Color)" + Me.Label6.Text = LocalizationService.ForSection("Designer.PrgAbout")("Sqlserver.Icon.Color.Label") ' 'Label7 ' @@ -287,7 +286,7 @@ Partial Class PrgAbout Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(70, 21) Me.Label7.TabIndex = 1 - Me.Label7.Text = "Utilities" + Me.Label7.Text = LocalizationService.ForSection("Designer.PrgAbout")("Utilities.Label") ' 'Label8 ' @@ -296,7 +295,7 @@ Partial Class PrgAbout Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(35, 15) Me.Label8.TabIndex = 2 - Me.Label8.Text = "7-Zip" + Me.Label8.Text = LocalizationService.ForSection("Designer.PrgAbout")("Zip.Label") ' 'LinkLabel5 ' @@ -309,7 +308,7 @@ Partial Class PrgAbout Me.LinkLabel5.Size = New System.Drawing.Size(80, 15) Me.LinkLabel5.TabIndex = 4 Me.LinkLabel5.TabStop = True - Me.LinkLabel5.Text = "Visit website" + Me.LinkLabel5.Text = LocalizationService.ForSection("Designer.PrgAbout")("VisitWebsite.Link") Me.LinkLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel9 @@ -324,7 +323,7 @@ Partial Class PrgAbout Me.LinkLabel9.Size = New System.Drawing.Size(80, 15) Me.LinkLabel9.TabIndex = 8 Me.LinkLabel9.TabStop = True - Me.LinkLabel9.Text = "Visit website" + Me.LinkLabel9.Text = LocalizationService.ForSection("Designer.PrgAbout")("VisitWebsite.Link") Me.LinkLabel9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel10 @@ -339,7 +338,7 @@ Partial Class PrgAbout Me.LinkLabel10.Size = New System.Drawing.Size(80, 15) Me.LinkLabel10.TabIndex = 8 Me.LinkLabel10.TabStop = True - Me.LinkLabel10.Text = "Visit website" + Me.LinkLabel10.Text = LocalizationService.ForSection("Designer.PrgAbout")("VisitWebsite.Link") Me.LinkLabel10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label10 @@ -350,7 +349,7 @@ Partial Class PrgAbout Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(168, 21) Me.Label10.TabIndex = 1 - Me.Label10.Text = "Help documentation" + Me.Label10.Text = LocalizationService.ForSection("Designer.PrgAbout")("Help.Documentation.Label") ' 'Label13 ' @@ -359,7 +358,7 @@ Partial Class PrgAbout Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(162, 15) Me.Label13.TabIndex = 1 - Me.Label13.Text = "Scintila.NET (NuGet package)" + Me.Label13.Text = LocalizationService.ForSection("Designer.PrgAbout")("Scintila.Netnu.Get.Label") ' 'Label16 ' @@ -368,7 +367,7 @@ Partial Class PrgAbout Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(176, 15) Me.Label16.TabIndex = 5 - Me.Label16.Text = "ManagedDism (NuGet package)" + Me.Label16.Text = LocalizationService.ForSection("Designer.PrgAbout")("Managed.Dismnu.Get.Label") ' 'Label11 ' @@ -377,7 +376,7 @@ Partial Class PrgAbout Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(130, 15) Me.Label11.TabIndex = 6 - Me.Label11.Text = "Command Help source" + Me.Label11.Text = LocalizationService.ForSection("Designer.PrgAbout")("Command.Help.Source.Label") ' 'LinkLabel7 ' @@ -390,7 +389,7 @@ Partial Class PrgAbout Me.LinkLabel7.Size = New System.Drawing.Size(80, 15) Me.LinkLabel7.TabIndex = 4 Me.LinkLabel7.TabStop = True - Me.LinkLabel7.Text = "Microsoft" + Me.LinkLabel7.Text = LocalizationService.ForSection("Designer.PrgAbout")("Microsoft.Link") Me.LinkLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label17 @@ -401,7 +400,7 @@ Partial Class PrgAbout Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(129, 21) Me.Label17.TabIndex = 1 - Me.Label17.Text = "Branding assets" + Me.Label17.Text = LocalizationService.ForSection("Designer.PrgAbout")("BrandingAssets.Label") ' 'Label19 ' @@ -410,7 +409,7 @@ Partial Class PrgAbout Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(42, 15) Me.Label19.TabIndex = 2 - Me.Label19.Text = "DarkUI" + Me.Label19.Text = LocalizationService.ForSection("Designer.PrgAbout")("DarkUI.Label") ' 'LinkLabel12 ' @@ -423,7 +422,7 @@ Partial Class PrgAbout Me.LinkLabel12.Size = New System.Drawing.Size(80, 15) Me.LinkLabel12.TabIndex = 9 Me.LinkLabel12.TabStop = True - Me.LinkLabel12.Text = "Visit website" + Me.LinkLabel12.Text = LocalizationService.ForSection("Designer.PrgAbout")("VisitWebsite.Link") Me.LinkLabel12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel11 @@ -437,7 +436,7 @@ Partial Class PrgAbout Me.LinkLabel11.Name = "LinkLabel11" Me.LinkLabel11.Size = New System.Drawing.Size(80, 15) Me.LinkLabel11.TabIndex = 9 - Me.LinkLabel11.Text = "Microsoft" + Me.LinkLabel11.Text = LocalizationService.ForSection("Designer.PrgAbout")("Microsoft.Link") Me.LinkLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label18 @@ -447,7 +446,7 @@ Partial Class PrgAbout Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(154, 15) Me.Label18.TabIndex = 2 - Me.Label18.Text = "Windows Home Server 2011" + Me.Label18.Text = LocalizationService.ForSection("Designer.PrgAbout")("Windows.Label") ' 'LicensesPanel ' @@ -526,7 +525,7 @@ Partial Class PrgAbout Me.LinkLabel3.Size = New System.Drawing.Size(134, 28) Me.LinkLabel3.TabIndex = 2 Me.LinkLabel3.TabStop = True - Me.LinkLabel3.Text = "WHAT'S NEW" + Me.LinkLabel3.Text = LocalizationService.ForSection("Designer.PrgAbout")("Whatsnew.Link") Me.LinkLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel2 @@ -542,7 +541,7 @@ Partial Class PrgAbout Me.LinkLabel2.Size = New System.Drawing.Size(134, 28) Me.LinkLabel2.TabIndex = 1 Me.LinkLabel2.TabStop = True - Me.LinkLabel2.Text = "LICENSES" + Me.LinkLabel2.Text = LocalizationService.ForSection("Designer.PrgAbout")("Licenses.Link") Me.LinkLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel1 @@ -558,7 +557,7 @@ Partial Class PrgAbout Me.LinkLabel1.Size = New System.Drawing.Size(134, 28) Me.LinkLabel1.TabIndex = 0 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "CREDITS" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.PrgAbout")("Credits.Link") Me.LinkLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'PictureBox2 @@ -590,7 +589,7 @@ Partial Class PrgAbout Me.UpdCheckBtn.Name = "UpdCheckBtn" Me.UpdCheckBtn.Size = New System.Drawing.Size(168, 23) Me.UpdCheckBtn.TabIndex = 10 - Me.UpdCheckBtn.Text = "Check for updates" + Me.UpdCheckBtn.Text = LocalizationService.ForSection("Designer.PrgAbout")("CheckUpdates.Label") Me.UpdCheckBtn.UseVisualStyleBackColor = True ' 'PictureBox4 @@ -640,7 +639,7 @@ Partial Class PrgAbout Me.Name = "PrgAbout" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "About this program" + Me.Text = LocalizationService.ForSection("Designer.PrgAbout")("AboutProgram.Label") Me.TableLayoutPanel1.ResumeLayout(False) CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.ModernPanelContainer.ResumeLayout(False) diff --git a/Panels/Exe_Ops/PrgAbout.vb b/Panels/Exe_Ops/PrgAbout.vb index 779326e63..1185d0096 100644 --- a/Panels/Exe_Ops/PrgAbout.vb +++ b/Panels/Exe_Ops/PrgAbout.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Net @@ -14,332 +14,39 @@ Public Class PrgAbout Private Sub PrgAbout_Load(sender As Object, e As EventArgs) Handles MyBase.Load If Not resized Then ResizeImage() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "About this program" - Label1.Text = "DISMTools - version " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools lets you deploy, manage, and service Windows images with ease, thanks to a GUI" - Label3.Text = "These resources and components were used in the creation of this program:" - Label4.Text = "Resources" - Label5.Text = "Fluency" - Label6.Text = "SQL Server icon (Color)" - Label7.Text = "Utilities" - Label8.Text = "7-Zip" - Label10.Text = "Help documentation" - Label11.Text = "Command Help source" - Label13.Text = "Scintilla.NET (NuGet package)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Built on " & RetrieveLinkerTimestamp() & " by msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (NuGet package)" - Label17.Text = "Branding assets" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CREDITS" - LinkLabel2.Text = "LICENSES" - LinkLabel3.Text = "WHAT'S NEW" - LinkLabel4.Text = "Icons8" - LinkLabel5.Text = "Visit website" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Visit website" - LinkLabel10.Text = "Visit website" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Visit website" - OK_Button.Text = "OK" - Case "ESN" - Text = "Acerca de este programa" - Label1.Text = "DISMTools - versión " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools le permite implementar, administrar, y ofrecer servicio a imágenes de Windows con facilidad, gracias a una GUI" - Label3.Text = "Estos recursos y componentes fueron utilizados en la creación de este programa:" - Label4.Text = "Recursos" - Label5.Text = "Fluency" - Label6.Text = "Icono de SQL Server (Color)" - Label7.Text = "Utilidades" - Label8.Text = "7-Zip" - Label10.Text = "Documentación de ayuda" - Label11.Text = "Fuente de ayuda de comandos" - Label13.Text = "Scintilla.NET (paquete NuGet)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Compilado el " & RetrieveLinkerTimestamp() & " por msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (paquete NuGet)" - Label17.Text = "Recursos publicitarios" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CRÉDITOS" - LinkLabel2.Text = "LICENCIAS" - LinkLabel3.Text = "NOVEDADES" - LinkLabel4.Text = "Icons8" - LinkLabel5.Text = "Visitar sitio" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Visitar sitio" - LinkLabel10.Text = "Visitar sitio" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Visitar sitio" - OK_Button.Text = "Aceptar" - UpdCheckBtn.Text = "Comprobar actualizaciones" - Case "FRA" - Text = "À propos de ce programme" - Label1.Text = "DISMTools - version " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools vous permet de déployer, de gérer et d'entretenir des images Windows en toute simplicité, grâce à une interface graphique." - Label3.Text = "Ces ressources et éléments ont été utilisés pour la création de ce programme :" - Label4.Text = "Ressources" - Label5.Text = "Fluency" - Label6.Text = "Icône SQL Server (Color)" - Label7.Text = "Outils" - Label8.Text = "7-Zip" - Label10.Text = "Documentation d'aide" - Label11.Text = "Source d'aide à la commande" - Label13.Text = "Scintilla.NET (paquet NuGet)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Construit le " & RetrieveLinkerTimestamp() & " par msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (paquet NuGet)" - Label17.Text = "Les atouts de la marque" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CRÉDITS" - LinkLabel2.Text = "LICENCES" - LinkLabel3.Text = "QUOI DE NEUF" - LinkLabel4.Text = "Icons8" - LinkLabel5.Text = "Site web" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Site web" - LinkLabel10.Text = "Site web" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Site web" - OK_Button.Text = "OK" - UpdCheckBtn.Text = "Vérifier les mises à jour" - Case "PTB", "PTG" - Text = "Acerca deste programa" - Label1.Text = "DISMTools - versão " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools permite-lhe implementar, gerir e efetuar a manutenção de imagens do Windows com facilidade, graças a uma GUI" - Label3.Text = "Estes recursos e componentes foram utilizados na criação deste programa:" - Label4.Text = "Recursos" - Label5.Text = "Fluency" - Label6.Text = "Ícone do SQL Server (Cor)" - Label7.Text = "Utilitários" - Label8.Text = "7-Zip" - Label10.Text = "Documentação de ajuda" - Label11.Text = "Fonte da Ajuda do Comando" - Label13.Text = "Scintilla.NET (pacote NuGet)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Construído em " & RetrieveLinkerTimestamp() & " por msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (pacote NuGet)" - Label17.Text = "Activos de marca" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CRÉDITOS" - LinkLabel2.Text = "LICENÇAS" - LinkLabel3.Text = "O QUE HÁ DE NOVO" - LinkLabel4.Text = "Ícones8" - LinkLabel5.Text = "Sítio Web" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Sítio Web" - LinkLabel10.Text = "Sítio Web" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Sítio Web" - OK_Button.Text = "OK" - UpdCheckBtn.Text = "Verificar actualizações" - Case "ITA" - Text = "Informazioni su questo programma" - Label1.Text = "DISMTools - versione " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools consente di distribuire, gestire e riparare le immagini di Windows con facilità, grazie ad un'interfaccia grafica" - Label3.Text = "Per la creazione di questo programma sono stati usate queste risorse e componenti:" - Label4.Text = "Risorse" - Label5.Text = "Fluency" - Label6.Text = "Icona SQL Server (Color)" - Label7.Text = "Utilità" - Label8.Text = "7-Zip" - Label10.Text = "Documentazione guida in linea" - Label11.Text = "Sorgente guida comandi" - Label13.Text = "Scintilla.NET (pacchetto NuGet)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Creato con " & RetrieveLinkerTimestamp() & " da msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (pacchetto NuGet)" - Label17.Text = "Risorse branding" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CREDITI" - LinkLabel2.Text = "LICENZE" - LinkLabel3.Text = "NOVITA'" - LinkLabel4.Text = "Icons8" - LinkLabel5.Text = "Sito web" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Sito web" - LinkLabel10.Text = "Sito web" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Sito web" - OK_Button.Text = "OK" - UpdCheckBtn.Text = "Controlla aggiornamenti" - End Select - Case 1 - Text = "About this program" - Label1.Text = "DISMTools - version " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools lets you deploy, manage, and service Windows images with ease, thanks to a GUI" - Label3.Text = "These resources and components were used in the creation of this program:" - Label4.Text = "Resources" - Label5.Text = "Fluency" - Label6.Text = "SQL Server icon (Color)" - Label7.Text = "Utilities" - Label8.Text = "7-Zip" - Label10.Text = "Help documentation" - Label11.Text = "Command Help source" - Label13.Text = "Scintilla.NET (NuGet package)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Built on " & RetrieveLinkerTimestamp() & " by msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (NuGet package)" - Label17.Text = "Branding assets" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CREDITS" - LinkLabel2.Text = "LICENSES" - LinkLabel3.Text = "WHAT'S NEW" - LinkLabel4.Text = "Icons8" - LinkLabel5.Text = "Visit website" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Visit website" - LinkLabel10.Text = "Visit website" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Visit website" - OK_Button.Text = "OK" - UpdCheckBtn.Text = "Check for updates" - Case 2 - Text = "Acerca de este programa" - Label1.Text = "DISMTools - versión " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools le permite implementar, administrar, y ofrecer servicio a imágenes de Windows con facilidad, gracias a una GUI" - Label3.Text = "Estos recursos y componentes fueron utilizados en la creación de este programa:" - Label4.Text = "Recursos" - Label5.Text = "Fluency" - Label6.Text = "Icono de SQL Server (Color)" - Label7.Text = "Utilidades" - Label8.Text = "7-Zip" - Label10.Text = "Documentación de ayuda" - Label11.Text = "Fuente de ayuda de comandos" - Label13.Text = "Scintilla.NET (paquete NuGet)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Compilado el " & RetrieveLinkerTimestamp() & " por msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (paquete NuGet)" - Label17.Text = "Recursos publicitarios" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CRÉDITOS" - LinkLabel2.Text = "LICENCIAS" - LinkLabel3.Text = "NOVEDADES" - LinkLabel4.Text = "Icons8" - LinkLabel5.Text = "Visitar sitio" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Visitar sitio" - LinkLabel10.Text = "Visitar sitio" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Visitar sitio" - OK_Button.Text = "Aceptar" - UpdCheckBtn.Text = "Comprobar actualizaciones" - Case 3 - Text = "À propos de ce programme" - Label1.Text = "DISMTools - version " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools vous permet de déployer, de gérer et d'entretenir des images Windows en toute simplicité, grâce à une interface graphique." - Label3.Text = "Ces ressources et éléments ont été utilisés pour la création de ce programme :" - Label4.Text = "Ressources" - Label5.Text = "Fluency" - Label6.Text = "Icône SQL Server (Color)" - Label7.Text = "Outils" - Label8.Text = "7-Zip" - Label10.Text = "Documentation d'aide" - Label11.Text = "Source d'aide à la commande" - Label13.Text = "Scintilla.NET (paquet NuGet)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Construit le " & RetrieveLinkerTimestamp() & " par msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (paquet NuGet)" - Label17.Text = "Les atouts de la marque" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CRÉDITS" - LinkLabel2.Text = "LICENCES" - LinkLabel3.Text = "QUOI DE NEUF" - LinkLabel4.Text = "Icons8" - LinkLabel5.Text = "Site web" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Site web" - LinkLabel10.Text = "Site web" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Site web" - OK_Button.Text = "OK" - UpdCheckBtn.Text = "Vérifier les mises à jour" - Case 4 - Text = "Acerca deste programa" - Label1.Text = "DISMTools - versão " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools permite-lhe implementar, gerir e efetuar a manutenção de imagens do Windows com facilidade, graças a uma GUI" - Label3.Text = "Estes recursos e componentes foram utilizados na criação deste programa:" - Label4.Text = "Recursos" - Label5.Text = "Fluency" - Label6.Text = "Ícone do SQL Server (Cor)" - Label7.Text = "Utilitários" - Label8.Text = "7-Zip" - Label10.Text = "Documentação de ajuda" - Label11.Text = "Fonte da Ajuda do Comando" - Label13.Text = "Scintilla.NET (pacote NuGet)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Construído em " & RetrieveLinkerTimestamp() & " por msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (pacote NuGet)" - Label17.Text = "Activos de marca" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CRÉDITOS" - LinkLabel2.Text = "LICENÇAS" - LinkLabel3.Text = "O QUE HÁ DE NOVO" - LinkLabel4.Text = "Ícones8" - LinkLabel5.Text = "Sítio Web" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Sítio Web" - LinkLabel10.Text = "Sítio Web" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Sítio Web" - OK_Button.Text = "OK" - UpdCheckBtn.Text = "Verificar actualizações" - Case 5 - Text = "Informazioni su questo programma" - Label1.Text = "DISMTools - versione " & My.Application.Info.Version.ToString() & If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "") - Label2.Text = "DISMTools consente di distribuire, gestire e riparare le immagini di Windows con facilità, grazie a un'interfaccia grafica" - Label3.Text = "Per la creazione di questo programma sono stati usate queste risorse e componenti:" - Label4.Text = "Risorse" - Label5.Text = "Fluency" - Label6.Text = "Icona SQL Server (Color)" - Label7.Text = "Utilità" - Label8.Text = "7-Zip" - Label10.Text = "Documentazione guida in linea" - Label11.Text = "Sorgente guida comandi" - Label13.Text = "Scintilla.NET (pacchetto NuGet)" - If Not MainForm.dtBranch.Contains("pre") Then - Label15.Text = "Creato con " & RetrieveLinkerTimestamp() & " da msbuild" - Label15.Visible = True - End If - Label16.Text = "ManagedDism (pacchetto NuGet)" - Label17.Text = "Risorse branding" - Label18.Text = "Windows Home Server 2011" - LinkLabel1.Text = "CREDITI" - LinkLabel2.Text = "LICENZE" - LinkLabel3.Text = "COSA C'È DI NUOVO" - LinkLabel4.Text = "Icons8" - LinkLabel5.Text = "Sito web" - LinkLabel7.Text = "Microsoft" - LinkLabel9.Text = "Sito web" - LinkLabel10.Text = "Sito web" - LinkLabel11.Text = "Microsoft" - LinkLabel12.Text = "Sito web" - OK_Button.Text = "OK" - UpdCheckBtn.Text = "Controlla aggiornamenti" - End Select - RichTextBox1.Text = My.Resources.LicenseOverview - RichTextBox2.Text = My.Resources.WhatsNew + Text = LocalizationService.ForSection("PrgAbout")("AboutProgram.Label") + Label1.Text = LocalizationService.ForSection("PrgAbout").Format("DISM.Tools.Version.Label", My.Application.Info.Version.ToString(), If(MainForm.dtBranch.Contains("pre"), "." & MainForm.dtBranch & "." & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), "")) + Label2.Text = LocalizationService.ForSection("PrgAbout")("DISM.Tools.Lets.Label") + Label3.Text = LocalizationService.ForSection("PrgAbout")("ResourcesUsed.Label") + Label4.Text = LocalizationService.ForSection("PrgAbout")("Resources.Label") + Label5.Text = LocalizationService.ForSection("PrgAbout")("Fluency.Label") + Label6.Text = LocalizationService.ForSection("PrgAbout")("Sqlserver.Icon.Color.Label") + Label7.Text = LocalizationService.ForSection("PrgAbout")("Utilities.Label") + Label8.Text = LocalizationService.ForSection("PrgAbout")("Zip.Label") + Label10.Text = LocalizationService.ForSection("PrgAbout")("Help.Documentation.Label") + Label11.Text = LocalizationService.ForSection("PrgAbout")("Command.Help.Source.Label") + Label13.Text = LocalizationService.ForSection("PrgAbout")("Scintilla.Netnu.Get.Label") + If Not MainForm.dtBranch.Contains(LocalizationService.ForSection("PrgAbout")("Pre.Label")) Then + Label15.Text = LocalizationService.ForSection("PrgAbout").Format("BuiltMsbuild.Label", RetrieveLinkerTimestamp()) + Label15.Visible = True + End If + Label16.Text = LocalizationService.ForSection("PrgAbout")("Managed.Dismnu.Get.Label") + Label17.Text = LocalizationService.ForSection("PrgAbout")("BrandingAssets.Label") + Label18.Text = LocalizationService.ForSection("PrgAbout")("Windows.Label") + LinkLabel1.Text = LocalizationService.ForSection("PrgAbout")("Credits.Link") + LinkLabel2.Text = LocalizationService.ForSection("PrgAbout")("Licenses.Link") + LinkLabel3.Text = LocalizationService.ForSection("PrgAbout")("Whatsnew.Link") + LinkLabel4.Text = LocalizationService.ForSection("PrgAbout")("Icons.Link") + LinkLabel5.Text = LocalizationService.ForSection("PrgAbout")("VisitWebsite.Link") + LinkLabel7.Text = LocalizationService.ForSection("PrgAbout")("Microsoft.Link") + LinkLabel9.Text = LocalizationService.ForSection("PrgAbout")("VisitWebsite.Link") + LinkLabel10.Text = LocalizationService.ForSection("PrgAbout")("VisitWebsite.Link") + LinkLabel11.Text = LocalizationService.ForSection("PrgAbout")("Microsoft.Link") + LinkLabel12.Text = LocalizationService.ForSection("PrgAbout")("VisitWebsite.Link") + OK_Button.Text = LocalizationService.ForSection("PrgAbout")("Ok.Button") + UpdCheckBtn.Text = LocalizationService.ForSection("PrgAbout")("CheckUpdates.Label") + RichTextBox1.Text = LocalizationService.ForSection("PrgAbout.Resources")("DISM.Tools.Free.Message") + RichTextBox2.Text = LocalizationService.ForSection("PrgAbout.Resources")("PreviewChanges.Message") ForeColor = Color.White Label15.ForeColor = Color.Black PictureBox1.Image = If(MainForm.dtBranch.Contains("pre"), My.Resources.logo_preview, My.Resources.logo_aboutdlg_dark) @@ -530,87 +237,15 @@ Public Class PrgAbout End Sub Private Sub PictureBox2_MouseHover(sender As Object, e As EventArgs) Handles PictureBox2.MouseHover - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - WindowHelper.DisplayToolTip(sender, "Check out the project's repository on GitHub") - Case "ESN" - WindowHelper.DisplayToolTip(sender, "Consulte el repositorio del proyecto en GitHub") - Case "FRA" - WindowHelper.DisplayToolTip(sender, "Consultez le dépôt du projet sur GitHub") - Case "PTB", "PTG" - WindowHelper.DisplayToolTip(sender, "Consulte o repositório do projeto no GitHub") - Case "ITA" - WindowHelper.DisplayToolTip(sender, "Controlla il repository del progetto su GitHub") - End Select - Case 1 - WindowHelper.DisplayToolTip(sender, "Check out the project's repository on GitHub") - Case 2 - WindowHelper.DisplayToolTip(sender, "Consulte el repositorio del proyecto en GitHub") - Case 3 - WindowHelper.DisplayToolTip(sender, "Consultez le dépôt du projet sur GitHub") - Case 4 - WindowHelper.DisplayToolTip(sender, "Consulte o repositório do projeto no GitHub") - Case 5 - WindowHelper.DisplayToolTip(sender, "Controlla il repository del progetto su GitHub") - End Select + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("PrgAbout.Tooltip")("Project.GitHub.Label")) End Sub Private Sub PictureBox3_MouseHover(sender As Object, e As EventArgs) Handles PictureBox3.MouseHover - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - WindowHelper.DisplayToolTip(sender, "Check out the project's official subreddit") - Case "ESN" - WindowHelper.DisplayToolTip(sender, "Consulte el subreddit oficial del proyecto") - Case "FRA" - WindowHelper.DisplayToolTip(sender, "Consultez le subreddit officiel du projet") - Case "PTB", "PTG" - WindowHelper.DisplayToolTip(sender, "Consulte o subreddit oficial do projeto") - Case "ITA" - WindowHelper.DisplayToolTip(sender, "Controlla il subreddit ufficiale del progetto") - End Select - Case 1 - WindowHelper.DisplayToolTip(sender, "Check out the project's official subreddit") - Case 2 - WindowHelper.DisplayToolTip(sender, "Consulte el subreddit oficial del proyecto") - Case 3 - WindowHelper.DisplayToolTip(sender, "Consultez le subreddit officiel du projet") - Case 4 - WindowHelper.DisplayToolTip(sender, "Consulte o subreddit oficial do projeto") - Case 5 - WindowHelper.DisplayToolTip(sender, "Controlla il subreddit ufficiale del progetto") - End Select + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("PrgAbout.Tooltip")("Text1.Label")) End Sub Private Sub PictureBox4_MouseHover(sender As Object, e As EventArgs) Handles PictureBox4.MouseHover - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - WindowHelper.DisplayToolTip(sender, "Check out the project's discussion on the My Digital Life forums") - Case "ESN" - WindowHelper.DisplayToolTip(sender, "Consulte la discusión del proyecto en los foros de My Digital Life") - Case "FRA" - WindowHelper.DisplayToolTip(sender, "Consultez les discussions sur le projet sur les forums de My Digital Life") - Case "PTB", "PTG" - WindowHelper.DisplayToolTip(sender, "Consulte o debate sobre o projeto nos fóruns do My Digital Life") - Case "ITA" - WindowHelper.DisplayToolTip(sender, "Controlla la discussione del progetto nei forum di My Digital Life") - End Select - Case 1 - WindowHelper.DisplayToolTip(sender, "Check out the project's discussion on the My Digital Life forums") - Case 2 - WindowHelper.DisplayToolTip(sender, "Consulte la discusión del proyecto en los foros de My Digital Life") - Case 3 - WindowHelper.DisplayToolTip(sender, "Consultez les discussions sur le projet sur les forums de My Digital Life") - Case 4 - WindowHelper.DisplayToolTip(sender, "Consulte o debate sobre o projeto nos fóruns do My Digital Life") - Case 5 - WindowHelper.DisplayToolTip(sender, "Controlla la discussione del progetto nei forum di My Digital Life") - End Select + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("PrgAbout.Tooltip")("Project.MDL.Label")) End Sub Private Sub UpdCheckBtn_Click(sender As Object, e As EventArgs) Handles UpdCheckBtn.Click @@ -626,62 +261,14 @@ Public Class PrgAbout client.DownloadFile("https://github.com/CodingWonders/DISMTools/raw/stable/Updater/DISMTools-UCS/update-bin/update.exe", Application.StartupPath & "\update.exe") End Using Catch ex As WebException - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("We couldn't download the update checker. Reason:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - Case "ESN" - MsgBox("No pudimos descargar el comprobador de actualizaciones. Razón:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - Case "FRA" - MsgBox("Nous n'avons pas pu télécharger le vérificateur de mise à jour. Raison :" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - Case "PTB", "PTG" - MsgBox("Não foi possível descarregar o verificador de actualizações. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - Case "ITA" - MsgBox("Non è stato possibile scaricare il programma di controllo degli aggiornamenti. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - End Select - Case 1 - MsgBox("We couldn't download the update checker. Reason:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - Case 2 - MsgBox("No pudimos descargar el comprobador de actualizaciones. Razón:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - Case 3 - MsgBox("Nous n'avons pas pu télécharger le vérificateur de mise à jour. Raison :" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - Case 4 - MsgBox("Não foi possível descarregar o verificador de actualizações. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - Case 5 - MsgBox("Non è stato possibile scaricare il programma di controllo degli aggiornamenti. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, UpdCheckBtn.Text) - End Select + MsgBox(LocalizationService.ForSection("PrgAbout.UpdateCheck").Format("Couldn.Tdownload.Message", ex.Status.ToString()), vbOKOnly + vbCritical, UpdCheckBtn.Text) Exit Sub End Try - If File.Exists(Application.StartupPath & "\update.exe") Then Process.Start(Application.StartupPath & "\update.exe", "/" & MainForm.dtBranch & " /pid=" & Process.GetCurrentProcess().Id) + If File.Exists(Application.StartupPath & "\update.exe") Then Process.Start(Application.StartupPath & "\update.exe", "/" & MainForm.dtBranch & " /pid=" & Process.GetCurrentProcess().Id & " " & LocalizationService.GetLanguageCommandLineArgument()) End Sub Private Sub PictureBox5_MouseHover(sender As Object, e As EventArgs) Handles PictureBox5.MouseHover - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - WindowHelper.DisplayToolTip(sender, "Join the CodingWonders Software Discord server") - Case "ESN" - WindowHelper.DisplayToolTip(sender, "Unirse al servidor Discord de CodingWonders Software") - Case "FRA" - WindowHelper.DisplayToolTip(sender, "Inscrivez-vous au serveur Discord de CodingWonders Software") - Case "PTB", "PTG" - WindowHelper.DisplayToolTip(sender, "Entre no servidor Discord da CodingWonders Software") - Case "ITA" - WindowHelper.DisplayToolTip(sender, "Unisciti al server Discord di CodingWonders Software") - End Select - Case 1 - WindowHelper.DisplayToolTip(sender, "Join the CodingWonders Software Discord server") - Case 2 - WindowHelper.DisplayToolTip(sender, "Unirse al servidor Discord de CodingWonders Software") - Case 3 - WindowHelper.DisplayToolTip(sender, "Inscrivez-vous au serveur Discord de CodingWonders Software") - Case 4 - WindowHelper.DisplayToolTip(sender, "Entre no servidor Discord da CodingWonders Software") - Case 5 - WindowHelper.DisplayToolTip(sender, "Unisciti al server Discord di CodingWonders Software") - End Select + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("PrgAbout.Tooltip")("Join.Coding.Wonders.Label")) End Sub Private Sub PictureBox5_Click(sender As Object, e As EventArgs) Handles PictureBox5.Click diff --git a/Panels/Exe_Ops/SettingsResetDlg.Designer.vb b/Panels/Exe_Ops/SettingsResetDlg.Designer.vb index 9aded1a0e..bd34cc745 100644 --- a/Panels/Exe_Ops/SettingsResetDlg.Designer.vb +++ b/Panels/Exe_Ops/SettingsResetDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SettingsResetDlg Inherits System.Windows.Forms.Form @@ -52,7 +52,7 @@ Partial Class SettingsResetDlg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Yes" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.SettingsResetDlg")("Yes.Button") ' 'Cancel_Button ' @@ -63,7 +63,7 @@ Partial Class SettingsResetDlg Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "No" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.SettingsResetDlg")("No.Button") ' 'Label1 ' @@ -74,9 +74,7 @@ Partial Class SettingsResetDlg Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(596, 64) Me.Label1.TabIndex = 1 - Me.Label1.Text = "If you proceed, the settings will be reset to their default values. Once this pro" & _ - "cess is complete, you'll return to the main program window." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Do you want to pr" & _ - "oceed?" + Me.Label1.Text = LocalizationService.ForSection("Designer.SettingsResetDlg")("ProceedReset.Message") ' 'SettingsResetDlg ' @@ -94,7 +92,7 @@ Partial Class SettingsResetDlg Me.Name = "SettingsResetDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Reset preferences" + Me.Text = LocalizationService.ForSection("Designer.SettingsResetDlg")("Form.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Exe_Ops/SettingsResetDlg.vb b/Panels/Exe_Ops/SettingsResetDlg.vb index fcbfadbcf..576208009 100644 --- a/Panels/Exe_Ops/SettingsResetDlg.vb +++ b/Panels/Exe_Ops/SettingsResetDlg.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class SettingsResetDlg @@ -16,61 +16,10 @@ Public Class SettingsResetDlg Private Sub SettingsResetDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Reset preferences" - Label1.Text = "If you proceed, the settings will be reset to their default values. Once this process is complete, you'll return to the main program window." & CrLf & CrLf & "Do you want to proceed?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case "ESN" - Text = "Restablecer preferencias" - Label1.Text = "Si continúa, las configuraciones serán restablecidas a sus valores predeterminados. Cuando este proceso haya completado, regresará a la ventana principal." & CrLf & CrLf & "¿Desea continuar?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case "FRA" - Text = "Réinitialiser les préférences" - Label1.Text = "Si vous continuez, les paramètres seront réinitialisés à leurs valeurs par défaut. Une fois ce processus terminé, vous reviendrez à la fenêtre principale du programme." & CrLf & CrLf & "Voulez-vous continuer ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case "PTB", "PTG" - Text = "Repor preferências" - Label1.Text = "Se prosseguir, as configurações serão repostas para os valores predefinidos. Quando este processo estiver concluído, regressará à janela principal do programa." & CrLf & CrLf & "Deseja continuar?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case "ITA" - Text = "Ripristina preferenze" - Label1.Text = "Se procedi, le impostazioni verranno ripristinate ai valori predefiniti. Al termine di questo processo, si tornerà alla finestra principale del programma." & CrLf & CrLf & "Vuoi procedere?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select - Case 1 - Text = "Reset preferences" - Label1.Text = "If you proceed, the settings will be reset to their default values. Once this process is complete, you'll return to the main program window." & CrLf & CrLf & "Do you want to proceed?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case 2 - Text = "Restablecer preferencias" - Label1.Text = "Si continúa, las configuraciones serán restablecidas a sus valores predeterminados. Cuando este proceso haya completado, regresará a la ventana principal." & CrLf & CrLf & "¿Desea continuar?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case 3 - Text = "Réinitialiser les préférences" - Label1.Text = "Si vous continuez, les paramètres seront réinitialisés à leurs valeurs par défaut. Une fois ce processus terminé, vous reviendrez à la fenêtre principale du programme." & CrLf & CrLf & "Voulez-vous continuer ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case 4 - Text = "Repor preferências" - Label1.Text = "Se prosseguir, as configurações serão repostas para os valores predefinidos. Quando este processo estiver concluído, regressará à janela principal do programa." & CrLf & CrLf & "Deseja continuar?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case 5 - Text = "Ripristino preferenze" - Label1.Text = "Se procedi, le impostazioni verranno ripristinate ai valori predefiniti. Al termine di questo processo, si tornerà alla finestra principale del programma." & CrLf & CrLf & "Vuoi procedere?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select + Text = LocalizationService.ForSection("SettingsReset")("ResetPreferences.Label") + Label1.Text = LocalizationService.ForSection("SettingsReset")("ProceedReset.Message") + OK_Button.Text = LocalizationService.ForSection("SettingsReset")("Yes.Button") + Cancel_Button.Text = LocalizationService.ForSection("SettingsReset")("No.Button") Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) WindowHelper.ToggleDarkTitleBar(handle, CurrentTheme.IsDark) ThemeHelper.UpdateLinkLabelColors(Me, Color.DodgerBlue, CurrentTheme.AccentColors(0)) diff --git a/Panels/FirstUse/IncompleteSetupDlg.Designer.vb b/Panels/FirstUse/IncompleteSetupDlg.Designer.vb index bdd59e918..fac4a918e 100644 --- a/Panels/FirstUse/IncompleteSetupDlg.Designer.vb +++ b/Panels/FirstUse/IncompleteSetupDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class IncompleteSetupDlg Inherits System.Windows.Forms.Form @@ -52,7 +52,7 @@ Partial Class IncompleteSetupDlg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(78, 27) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Yes" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.IncompleteSetupDlg")("Yes.Button") ' 'Cancel_Button ' @@ -63,7 +63,7 @@ Partial Class IncompleteSetupDlg Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(78, 27) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "No" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.IncompleteSetupDlg")("No.Button") ' 'Label1 ' @@ -74,8 +74,7 @@ Partial Class IncompleteSetupDlg Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(597, 94) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Setup is not complete yet, and your custom settings will not be saved. Proceeding" & _ - " will make the program use default settings." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Do you want to proceed?" + Me.Label1.Text = LocalizationService.ForSection("Designer.IncompleteSetupDlg")("SetupIncomplete.Message") ' 'IncompleteSetupDlg ' @@ -93,7 +92,7 @@ Partial Class IncompleteSetupDlg Me.Name = "IncompleteSetupDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.IncompleteSetupDlg")("DISMTools.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/FirstUse/IncompleteSetupDlg.vb b/Panels/FirstUse/IncompleteSetupDlg.vb index fdd6aa5d8..0cb46debe 100644 --- a/Panels/FirstUse/IncompleteSetupDlg.vb +++ b/Panels/FirstUse/IncompleteSetupDlg.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class IncompleteSetupDlg @@ -14,28 +14,9 @@ Public Class IncompleteSetupDlg End Sub Private Sub IncompleteSetupDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Setup is not complete yet, and your custom settings will not be saved. Proceeding will make the program use default settings." & CrLf & CrLf & "Do you want to proceed?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case "ESN" - Label1.Text = "No ha terminado de configurar el programa, y sus preferencias no serán guardadas. Si continúa, el programa utilizará configuraciones predeterminadas." & CrLf & CrLf & "¿Desea continuar?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case "FRA" - Label1.Text = "L'installation n'est pas encore terminée et vos paramètres personnalisés ne seront pas sauvegardés. Si vous continuez, le programme utilisera les paramètres par défaut." & CrLf & CrLf & "Voulez-vous continuer ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case "PTB", "PTG" - Label1.Text = "O assistente de configuração ainda não está concluído e as suas configurações personalizadas não serão guardadas. Se prosseguir, o programa utilizará as configurações predefinidas." & CrLf & CrLf & "Pretende prosseguir?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case "ITA" - Label1.Text = "L'impostazione non è ancora stata completata e le impostazioni personalizzate non verranno salvate. Procedendo, il programma userà le impostazioni predefinite." & CrLf & CrLf & "Vuoi procedere?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select + Label1.Text = LocalizationService.ForSection("IncompleteSetup")("SetupIncomplete.Message") + OK_Button.Text = LocalizationService.ForSection("IncompleteSetup")("Yes.Button") + Cancel_Button.Text = LocalizationService.ForSection("IncompleteSetup")("No.Button") WindowHelper.ToggleDarkTitleBar(Handle, CurrentTheme.IsDark) ThemeHelper.UpdateLinkLabelColors(Me, Color.DodgerBlue, CurrentTheme.AccentColors(0)) BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/FirstUse/PrgSetup.Designer.vb b/Panels/FirstUse/PrgSetup.Designer.vb index dd0aef7c5..d55bafa05 100644 --- a/Panels/FirstUse/PrgSetup.Designer.vb +++ b/Panels/FirstUse/PrgSetup.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class PrgSetup Inherits System.Windows.Forms.Form @@ -148,7 +148,7 @@ Partial Class PrgSetup Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(99, 15) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Set up DISMTools" + Me.Label1.Text = LocalizationService.ForSection("Designer.PrgSetup")("Set.Up.DISM.Label") ' 'backBox ' @@ -206,7 +206,7 @@ Partial Class PrgSetup Me.Back_Button.Name = "Back_Button" Me.Back_Button.Size = New System.Drawing.Size(75, 23) Me.Back_Button.TabIndex = 0 - Me.Back_Button.Text = "Back" + Me.Back_Button.Text = LocalizationService.ForSection("Designer.PrgSetup")("Back.Button") Me.Back_Button.UseVisualStyleBackColor = True Me.Back_Button.Visible = False ' @@ -218,7 +218,7 @@ Partial Class PrgSetup Me.Next_Button.Name = "Next_Button" Me.Next_Button.Size = New System.Drawing.Size(75, 23) Me.Next_Button.TabIndex = 0 - Me.Next_Button.Text = "Next" + Me.Next_Button.Text = LocalizationService.ForSection("Designer.PrgSetup")("Next.Button") Me.Next_Button.UseVisualStyleBackColor = True ' 'Cancel_Button @@ -229,7 +229,7 @@ Partial Class PrgSetup Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(75, 23) Me.Cancel_Button.TabIndex = 0 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.PrgSetup")("Cancel.Button") Me.Cancel_Button.UseVisualStyleBackColor = True Me.Cancel_Button.Visible = False ' @@ -279,8 +279,7 @@ Partial Class PrgSetup Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(837, 105) Me.Label3.TabIndex = 1 - Me.Label3.Text = "DISMTools is a free and open-source, project-driven GUI for DISM operations. To b" & _ - "egin setting things up, click Next." + Me.Label3.Text = LocalizationService.ForSection("Designer.PrgSetup")("DISM.Tools.Free.Message") ' 'Label2 ' @@ -290,7 +289,7 @@ Partial Class PrgSetup Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(268, 32) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Welcome to DISMTools" + Me.Label2.Text = LocalizationService.ForSection("Designer.PrgSetup")("Welcome.DISM.Tools.Label") ' 'CustomizationPanel ' @@ -336,7 +335,7 @@ Partial Class PrgSetup Me.Label28.Name = "Label28" Me.Label28.Size = New System.Drawing.Size(176, 73) Me.Label28.TabIndex = 8 - Me.Label28.Text = "Secondary progress panel style:" + Me.Label28.Text = LocalizationService.ForSection("Designer.PrgSetup")("Secondary.Progress.Label") Me.Label28.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label9 @@ -348,7 +347,7 @@ Partial Class PrgSetup Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(176, 249) Me.Label9.TabIndex = 5 - Me.Label9.Text = "Log window font:" + Me.Label9.Text = LocalizationService.ForSection("Designer.PrgSetup")("Log.Window.Font.Label") Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'ComboBox2 @@ -358,12 +357,10 @@ Partial Class PrgSetup Me.ComboBox2.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.ComboBox2.ForeColor = System.Drawing.SystemColors.ControlText Me.ComboBox2.FormattingEnabled = True - Me.ComboBox2.Items.AddRange(New Object() {"Use system setting", "English", "Spanish"}) Me.ComboBox2.Location = New System.Drawing.Point(185, 28) Me.ComboBox2.Name = "ComboBox2" Me.ComboBox2.Size = New System.Drawing.Size(630, 25) Me.ComboBox2.TabIndex = 4 - Me.ComboBox2.Text = "Use system setting" ' 'Label8 ' @@ -374,7 +371,7 @@ Partial Class PrgSetup Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(176, 25) Me.Label8.TabIndex = 3 - Me.Label8.Text = "Language:" + Me.Label8.Text = LocalizationService.ForSection("Designer.PrgSetup")("Language.Label") Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label7 @@ -386,7 +383,7 @@ Partial Class PrgSetup Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(176, 25) Me.Label7.TabIndex = 1 - Me.Label7.Text = "Color mode:" + Me.Label7.Text = LocalizationService.ForSection("Designer.PrgSetup")("ColorMode.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'ComboBox1 @@ -396,12 +393,12 @@ Partial Class PrgSetup Me.ComboBox1.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.ComboBox1.ForeColor = System.Drawing.SystemColors.ControlText Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Use system setting", "Light mode", "Dark mode"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.PrgSetup")("System.Setting.ThemeItem"), LocalizationService.ForSection("Designer.PrgSetup")("LightMode.Item"), LocalizationService.ForSection("Designer.PrgSetup")("DarkMode.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(185, 3) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(630, 25) Me.ComboBox1.TabIndex = 2 - Me.ComboBox1.Text = "Use system setting" + Me.ComboBox1.Text = LocalizationService.ForSection("Designer.PrgSetup")("System.Setting.ThemeItem") ' 'Panel1 ' @@ -435,7 +432,7 @@ Partial Class PrgSetup Me.TextBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical Me.TextBox1.Size = New System.Drawing.Size(630, 177) Me.TextBox1.TabIndex = 0 - Me.TextBox1.Text = resources.GetString("TextBox1.Text") + Me.TextBox1.Text = LocalizationService.ForSection("PrgSetup.LogPreview")("Packages.Add.Message") ' 'Panel9 ' @@ -457,8 +454,7 @@ Partial Class PrgSetup Me.Label29.Name = "Label29" Me.Label29.Size = New System.Drawing.Size(630, 31) Me.Label29.TabIndex = 2 - Me.Label29.Text = "This font may not be readable on log windows. While you can still use it, we reco" & _ - "mmend monospaced fonts for increased readability." + Me.Label29.Text = LocalizationService.ForSection("Designer.PrgSetup")("Font.Readable.Log.Message") ' 'Panel2 ' @@ -536,7 +532,7 @@ Partial Class PrgSetup Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(71, 24) Me.RadioButton2.TabIndex = 0 - Me.RadioButton2.Text = "Classic" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.PrgSetup")("Classic.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -549,7 +545,7 @@ Partial Class PrgSetup Me.RadioButton1.Size = New System.Drawing.Size(79, 24) Me.RadioButton1.TabIndex = 0 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Modern" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.PrgSetup")("Modern.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'Label5 @@ -560,8 +556,7 @@ Partial Class PrgSetup Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(824, 68) Me.Label5.TabIndex = 1 - Me.Label5.Text = "Make it yours. Customize this program to your liking and click Next. These settin" & _ - "gs can be configured later in the ""Personalization"" section in Tools > Options" + Me.Label5.Text = LocalizationService.ForSection("Designer.PrgSetup")("Yours.Customize.Message") ' 'Label6 ' @@ -571,7 +566,7 @@ Partial Class PrgSetup Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(276, 32) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Customize this program" + Me.Label6.Text = LocalizationService.ForSection("Designer.PrgSetup")("CustomizeProgram.Label") ' 'LogsPanel ' @@ -609,7 +604,7 @@ Partial Class PrgSetup Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(295, 27) Me.Button2.TabIndex = 4 - Me.Button2.Text = "Use default log file" + Me.Button2.Text = LocalizationService.ForSection("Designer.PrgSetup")("Default.Log.File.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -622,7 +617,7 @@ Partial Class PrgSetup Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 27) Me.Button1.TabIndex = 4 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.PrgSetup")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox2 @@ -645,7 +640,7 @@ Partial Class PrgSetup Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(62, 20) Me.Label10.TabIndex = 1 - Me.Label10.Text = "Log file:" + Me.Label10.Text = LocalizationService.ForSection("Designer.PrgSetup")("LogFile.Label") ' 'Panel4 ' @@ -664,8 +659,7 @@ Partial Class PrgSetup Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(736, 57) Me.Label16.TabIndex = 6 - Me.Label16.Text = "The log file should display errors, warnings and information messages after perfo" & _ - "rming an image operation." + Me.Label16.Text = LocalizationService.ForSection("Designer.PrgSetup")("Log.File.Display.Message") ' 'TrackBar1 ' @@ -689,7 +683,7 @@ Partial Class PrgSetup Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(378, 20) Me.Label11.TabIndex = 1 - Me.Label11.Text = "Errors, warnings and information messages (Log level 3)" + Me.Label11.Text = LocalizationService.ForSection("Designer.PrgSetup")("Errors.Warnings.Label") ' 'CheckBox1 ' @@ -701,7 +695,7 @@ Partial Class PrgSetup Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(398, 24) Me.CheckBox1.TabIndex = 2 - Me.CheckBox1.Text = "Automatically create logs in the program's log directory" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.PrgSetup")("Auto.Create.Logs.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label13 @@ -712,7 +706,7 @@ Partial Class PrgSetup Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(824, 68) Me.Label13.TabIndex = 1 - Me.Label13.Text = resources.GetString("Label13.Text") + Me.Label13.Text = LocalizationService.ForSection("Designer.PrgSetup")("Log.Settings.Message") ' 'Label14 ' @@ -722,7 +716,7 @@ Partial Class PrgSetup Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(589, 32) Me.Label14.TabIndex = 0 - Me.Label14.Text = "What should we log when you perform an operation?" + Me.Label14.Text = LocalizationService.ForSection("Designer.PrgSetup")("Log.Label") ' 'ModulesPanel ' @@ -764,7 +758,7 @@ Partial Class PrgSetup Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(679, 33) Me.Label15.TabIndex = 4 - Me.Label15.Text = "Module for Windows Assessment and Deployment Kit (ADK) compatibility" + Me.Label15.Text = LocalizationService.ForSection("Designer.PrgSetup")("Windows.ADK.Module.Label") Me.Label15.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label12 @@ -776,7 +770,7 @@ Partial Class PrgSetup Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(679, 32) Me.Label12.TabIndex = 2 - Me.Label12.Text = "Module for wimlib-imagex compatibility" + Me.Label12.Text = LocalizationService.ForSection("Designer.PrgSetup")("WimlibModule.Label") Me.Label12.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button3 @@ -790,7 +784,7 @@ Partial Class PrgSetup Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(125, 26) Me.Button3.TabIndex = 3 - Me.Button3.Text = "Install" + Me.Button3.Text = LocalizationService.ForSection("Designer.PrgSetup")("Install.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button4 @@ -804,7 +798,7 @@ Partial Class PrgSetup Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(125, 27) Me.Button4.TabIndex = 3 - Me.Button4.Text = "Install" + Me.Button4.Text = LocalizationService.ForSection("Designer.PrgSetup")("Install.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Label17 @@ -815,7 +809,7 @@ Partial Class PrgSetup Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(798, 130) Me.Label17.TabIndex = 1 - Me.Label17.Text = resources.GetString("Label17.Text") + Me.Label17.Text = LocalizationService.ForSection("Designer.PrgSetup")("Module.Install.Isn.Message") ' 'Label18 ' @@ -825,8 +819,7 @@ Partial Class PrgSetup Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(798, 68) Me.Label18.TabIndex = 1 - Me.Label18.Text = "DISMTools supports modules, which extend this program and enhance its capabilitie" & _ - "s. The following modules are compatible with this version:" + Me.Label18.Text = LocalizationService.ForSection("Designer.PrgSetup")("DISM.Tools.Supports.Message") ' 'Label19 ' @@ -836,7 +829,7 @@ Partial Class PrgSetup Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(234, 32) Me.Label19.TabIndex = 0 - Me.Label19.Text = "Extend this program" + Me.Label19.Text = LocalizationService.ForSection("Designer.PrgSetup")("ExtendProgram.Label") ' 'FinishPanel ' @@ -865,7 +858,7 @@ Partial Class PrgSetup Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(270, 36) Me.Button5.TabIndex = 2 - Me.Button5.Text = "Configure more settings" + Me.Button5.Text = LocalizationService.ForSection("Designer.PrgSetup")("Configure.Settings.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Label20 @@ -876,7 +869,7 @@ Partial Class PrgSetup Me.Label20.Name = "Label20" Me.Label20.Size = New System.Drawing.Size(824, 24) Me.Label20.TabIndex = 1 - Me.Label20.Text = "Is there anything else you would like to configure?" + Me.Label20.Text = LocalizationService.ForSection("Designer.PrgSetup")("Anything.Like.Label") ' 'Label21 ' @@ -886,9 +879,7 @@ Partial Class PrgSetup Me.Label21.Name = "Label21" Me.Label21.Size = New System.Drawing.Size(824, 55) Me.Label21.TabIndex = 1 - Me.Label21.Text = "The settings available to you are more than what you've just configured. If you w" & _ - "ish to change more of these, click the button below. We'll also make those setti" & _ - "ngs persistent." + Me.Label21.Text = LocalizationService.ForSection("Designer.PrgSetup")("Settings.Available.Message") ' 'Label23 ' @@ -898,8 +889,7 @@ Partial Class PrgSetup Me.Label23.Name = "Label23" Me.Label23.Size = New System.Drawing.Size(824, 68) Me.Label23.TabIndex = 1 - Me.Label23.Text = "You have finished setting up the basics to use DISMTools the way you wanted. Clic" & _ - "k ""Finish"", and we'll make your settings persistent." + Me.Label23.Text = LocalizationService.ForSection("Designer.PrgSetup")("Done.Setting.Up.Message") ' 'Label24 ' @@ -909,7 +899,7 @@ Partial Class PrgSetup Me.Label24.Name = "Label24" Me.Label24.Size = New System.Drawing.Size(211, 32) Me.Label24.TabIndex = 0 - Me.Label24.Text = "Setup is complete" + Me.Label24.Text = LocalizationService.ForSection("Designer.PrgSetup")("SetupComplete.Label") ' 'TableLayoutPanel3 ' @@ -937,7 +927,7 @@ Partial Class PrgSetup Me.Label26.Name = "Label26" Me.Label26.Size = New System.Drawing.Size(685, 33) Me.Label26.TabIndex = 4 - Me.Label26.Text = "Stay up to date to receive new features and an improved experience" + Me.Label26.Text = LocalizationService.ForSection("Designer.PrgSetup")("Stay.Up.Date.Label") Me.Label26.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label27 @@ -949,7 +939,7 @@ Partial Class PrgSetup Me.Label27.Name = "Label27" Me.Label27.Size = New System.Drawing.Size(685, 32) Me.Label27.TabIndex = 2 - Me.Label27.Text = "Get started with DISMTools and image servicing, so you can get around quicker" + Me.Label27.Text = LocalizationService.ForSection("Designer.PrgSetup")("Get.Started.DISM.Label") Me.Label27.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button6 @@ -963,7 +953,7 @@ Partial Class PrgSetup Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(127, 26) Me.Button6.TabIndex = 3 - Me.Button6.Text = "Get started" + Me.Button6.Text = LocalizationService.ForSection("Designer.PrgSetup")("GetStarted.Button") Me.Button6.UseVisualStyleBackColor = True ' 'Button7 @@ -977,7 +967,7 @@ Partial Class PrgSetup Me.Button7.Name = "Button7" Me.Button7.Size = New System.Drawing.Size(127, 27) Me.Button7.TabIndex = 3 - Me.Button7.Text = "Check for updates" + Me.Button7.Text = LocalizationService.ForSection("Designer.PrgSetup")("CheckUpdates.Button") Me.Button7.UseVisualStyleBackColor = True ' 'Label25 @@ -988,7 +978,7 @@ Partial Class PrgSetup Me.Label25.Name = "Label25" Me.Label25.Size = New System.Drawing.Size(824, 24) Me.Label25.TabIndex = 1 - Me.Label25.Text = "Now that you've set things up, we recommend you do the following things:" + Me.Label25.Text = LocalizationService.ForSection("Designer.PrgSetup")("Ve.Set.Things.Label") ' 'Label22 ' @@ -998,7 +988,7 @@ Partial Class PrgSetup Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(824, 35) Me.Label22.TabIndex = 1 - Me.Label22.Text = "You can perform these steps at any time." + Me.Label22.Text = LocalizationService.ForSection("Designer.PrgSetup")("Perform.Steps.Time.Label") ' 'Panel5 ' @@ -1020,9 +1010,9 @@ Partial Class PrgSetup ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "All files|*.*" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.PrgSetup")("SaveFile.Filter") Me.SaveFileDialog1.SupportMultiDottedExtensions = True - Me.SaveFileDialog1.Title = "Specify the log file" + Me.SaveFileDialog1.Title = LocalizationService.ForSection("Designer.PrgSetup")("Log.File.Title") ' 'PrgSetup ' @@ -1043,7 +1033,7 @@ Partial Class PrgSetup Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "PrgSetup" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Set up DISMTools" + Me.Text = LocalizationService.ForSection("Designer.PrgSetup")("Set.Up.DISM.Label") Me.wndControlPanel.ResumeLayout(False) Me.wndControlPanel.PerformLayout() CType(Me.backBox, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/Panels/FirstUse/PrgSetup.resx b/Panels/FirstUse/PrgSetup.resx index de144cfb3..af695f1bc 100644 --- a/Panels/FirstUse/PrgSetup.resx +++ b/Panels/FirstUse/PrgSetup.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,27 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Adding packages to the mounted image... -- Package source: C:\w100-glb -- Addition operation: selective -- Ignore applicability checks? No -- Prevent package addition if online actions need to be performed? No -- Commit image after operations are done? Yes -Enumerating packages to add. Please wait... -Total number of packages: 128 - -Processing 128 packages... -Package 1 of 128 - - - Specify the log settings and click Next. Depending on the content level you specify, we will log more or less information. This setting can be configured at any time in the "Logs" section in Tools > Options - - - If a module you want to install isn't listed here, it may not be compatible with the version of this software, and updating might help. - -You can perform module management at any time in the "Modules" section in Tools > Options, and configure more of modules' settings. - 17, 17 diff --git a/Panels/FirstUse/PrgSetup.vb b/Panels/FirstUse/PrgSetup.vb index 21159d15b..4c4894f7b 100644 --- a/Panels/FirstUse/PrgSetup.vb +++ b/Panels/FirstUse/PrgSetup.vb @@ -1,18 +1,17 @@ -Imports System.Drawing.Drawing2D +Imports System.Drawing.Drawing2D Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Net Public Class PrgSetup - Dim ColorModes() As String = New String(2) {"Use system setting", "Light mode", "Dark mode"} - Dim Languages() As String = New String(5) {"Use system language", "English", "Spanish", "French", "Portuguese", "Italian"} - Dim SupportedLangCodes() As String = New String(6) {"ENU", "ENG", "ESN", "FRA", "PTB", "PTG", "ITA"} - + Dim ColorModes() As String = New String(2) {String.Empty, String.Empty, String.Empty} + Dim btnToolTip As New ToolTip() Private isMouseDown As Boolean = False Private mouseOffset As Point Dim pageInt As Integer = 0 + Private isApplyingLocalizedText As Boolean = False Private Sub minBox_MouseEnter(sender As Object, e As EventArgs) Handles minBox.MouseEnter minBox.Image = My.Resources.minBox_focus @@ -31,19 +30,7 @@ Public Class PrgSetup End Sub Private Sub minBox_MouseHover(sender As Object, e As EventArgs) Handles minBox.MouseHover - Dim msg As String = "" - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Minimize" - Case "ESN" - msg = "Minimizar" - Case "FRA" - msg = "Minimiser" - Case "PTB", "PTG" - msg = "Minimizar" - Case "ITA" - msg = "Minimizza" - End Select + Dim msg As String = LocalizationService.ForSection("PrgSetup.ToolTip")("Minimize.Label") btnToolTip.SetToolTip(sender, msg) End Sub @@ -68,19 +55,7 @@ Public Class PrgSetup End Sub Private Sub closeBox_MouseHover(sender As Object, e As EventArgs) Handles closeBox.MouseHover - Dim msg As String = "" - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Close" - Case "ESN" - msg = "Cerrar" - Case "FRA" - msg = "Fermer" - Case "PTB", "PTG" - msg = "Fechar" - Case "ITA" - msg = "Chiudi" - End Select + Dim msg As String = LocalizationService.ForSection("PrgSetup.ToolTip")("Close.Label") btnToolTip.SetToolTip(sender, msg) End Sub @@ -108,19 +83,7 @@ Public Class PrgSetup End Sub Private Sub backBox_MouseHover(sender As Object, e As EventArgs) Handles backBox.MouseHover - Dim msg As String = "" - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Go back" - Case "ESN" - msg = "Atrás" - Case "FRA" - msg = "Retourner" - Case "PTB", "PTG" - msg = "Voltar atrás" - Case "ITA" - msg = "Indietro" - End Select + Dim msg As String = LocalizationService.ForSection("PrgSetup.ToolTip")("GoBack.Label") btnToolTip.SetToolTip(sender, msg) End Sub @@ -150,8 +113,7 @@ Public Class PrgSetup Private Sub Next_Button_Click(sender As Object, e As EventArgs) Handles Next_Button.Click If pageInt = 4 Then - ' Set program to English if the system language is not supported - If Not SupportedLangCodes.Contains(My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName) Then MainForm.Language = 1 + MainForm.LanguageCode = LocalizationService.NormalizeCultureCode(MainForm.LanguageCode) MainForm.SaveDTSettings() Close() End If @@ -171,7 +133,7 @@ Public Class PrgSetup FinishPanel.Visible = False Case 2 MainForm.ColorMode = ComboBox1.SelectedIndex - MainForm.Language = ComboBox2.SelectedIndex + MainForm.LanguageCode = GetSelectedLanguageCode(ComboBox2, MainForm.LanguageCode) MainForm.LogFont = ComboBox3.SelectedItem MainForm.LogFontSize = NumericUpDown1.Value MainForm.LogFontIsBold = Toggle1.Checked @@ -185,19 +147,7 @@ Public Class PrgSetup Case 3 MainForm.AutoLogs = CheckBox1.Checked If Not CheckBox1.Checked And Not Directory.Exists(Path.GetDirectoryName(TextBox2.Text)) Then - Dim msg As String = "" - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The folder the log file will be stored on doesn't exist. Make sure it exists and try again." - Case "ESN" - msg = "La carpeta donde se almacenará el archivo de registro no existe. Asegúrese de que exista e inténtelo de nuevo." - Case "FRA" - msg = "Le dossier dans lequel le fichier journal sera stocké n'existe pas. Assurez-vous qu'il existe et réessayez." - Case "PTB", "PTG" - msg = "A pasta onde o ficheiro de registo será guardado não existe. Certifique-se de que existe e tente novamente." - Case "ITA" - msg = "La cartella in cui verrà memorizzato il file registro non esiste. Assicurati che esista e riprovare." - End Select + Dim msg As String = LocalizationService.ForSection("PrgSetup.Next.Actions")("Folder.Log.File.Message") MsgBox(msg, vbOKOnly + vbCritical, Text) Exit Sub End If @@ -217,33 +167,11 @@ Public Class PrgSetup FinishPanel.Visible = True End Select If pageInt = 4 Then - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Next_Button.Text = "Finish" - Case "ESN" - Next_Button.Text = "Finalizar" - Case "FRA" - Next_Button.Text = "Finir" - Case "PTB", "PTG" - Next_Button.Text = "Terminar" - Case "ITA" - Next_Button.Text = "Fine" - End Select + Next_Button.Text = LocalizationService.ForSection("PrgSetup.Next")("Finish.Label") Cancel_Button.Enabled = False closeBox.Enabled = False Else - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Next_Button.Text = "Next" - Case "ESN" - Next_Button.Text = "Siguiente" - Case "FRA" - Next_Button.Text = "Suivant" - Case "PTB", "PTG" - Next_Button.Text = "Seguinte" - Case "ITA" - Next_Button.Text = "Avanti" - End Select + Next_Button.Text = LocalizationService.ForSection("PrgSetup.Next.Actions")("Next.Button") Cancel_Button.Enabled = True closeBox.Enabled = True End If @@ -300,33 +228,11 @@ Public Class PrgSetup FinishPanel.Visible = True End Select If pageInt = 4 Then - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Next_Button.Text = "Finish" - Case "ESN" - Next_Button.Text = "Finalizar" - Case "FRA" - Next_Button.Text = "Finir" - Case "PTB", "PTG" - Next_Button.Text = "Terminar" - Case "ITA" - Next_Button.Text = "Fine" - End Select + Next_Button.Text = LocalizationService.ForSection("PrgSetup.Next")("Finish.Label") Cancel_Button.Enabled = False closeBox.Enabled = False Else - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Next_Button.Text = "Next" - Case "ESN" - Next_Button.Text = "Siguiente" - Case "FRA" - Next_Button.Text = "Suivant" - Case "PTB", "PTG" - Next_Button.Text = "Seguinte" - Case "ITA" - Next_Button.Text = "Avanti" - End Select + Next_Button.Text = LocalizationService.ForSection("PrgSetup.Next.Actions")("Next.Button") Cancel_Button.Enabled = True closeBox.Enabled = True End If @@ -390,266 +296,11 @@ Public Class PrgSetup ComboBox1.SelectedText = "" ComboBox2.SelectedText = "" - ' Set translations (follow system language) - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Set up DISMTools" - Label1.Text = Text - Label2.Text = "Welcome to DISMTools" - Label3.Text = "DISMTools is a free and open-source, project-driven GUI for DISM operations. To begin setting things up, click Next." - Label5.Text = "Make it yours. Customize this program to your liking and click Next. These settings can be configured at any time in the " & Quote & "Personalization" & Quote & " section in the Options window" - Label6.Text = "Customize this program" - Label7.Text = "Color mode:" - Label8.Text = "Language:" - Label9.Text = "Log window font:" - Label10.Text = "Log file:" - ' Since we start with log level 3, manually show that option - Label11.Text = "Errors, warnings and information messages (Log level 3)" - Label13.Text = "Specify the log settings and click Next. Depending on the content level you specify, we will log more or less information. This setting can be configured at any time in the " & Quote & "Logs" & Quote & " section in the Options window" - Label14.Text = "What should we log when you perform an operation?" - ' Same here - Label16.Text = "The log file should display errors, warnings and information messages after performing an image operation." - Label20.Text = "Is there anything else you would like to configure?" - Label21.Text = "The settings available to you are more than what you've just configured. If you wish to change more of these, click the button below. We'll also make those settings persistent." - Label22.Text = "You can perform these steps at any time." - Label23.Text = "You have finished setting up the basics to use DISMTools the way you wanted. Click " & Quote & "Finish" & Quote & ", and we'll make your settings persistent." - Label24.Text = "Setup is complete" - Label25.Text = "Now that you've set things up, we recommend you do the following things:" - Label26.Text = "Stay up to date to receive new features and an improved experience" - Label27.Text = "Get started with DISMTools and image servicing, so you can get around quicker" - Label28.Text = "Secondary progress panel style:" - Label29.Text = "This font may not be readable on log windows. While you can still use it, we recommend monospaced fonts for increased readability." - Back_Button.Text = "Back" - Next_Button.Text = "Next" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Use default log file" - Button5.Text = "Configure more settings" - Button6.Text = "Get started" - Button7.Text = "Check for updates" - CheckBox1.Text = "Automatically create logs in the program's log directory" - RadioButton1.Text = "Modern" - RadioButton2.Text = "Classic" - SaveFileDialog1.Title = "Specify the log file" - - ' Configure string arrays to put them in the comboboxes - ColorModes(0) = "Use system setting" - ColorModes(1) = "Light mode" - ColorModes(2) = "Dark mode" - Languages(0) = "Use system language" - Languages(1) = "English" - Languages(2) = "Spanish" - Languages(3) = "French" - Languages(4) = "Portuguese" - Languages(5) = "Italian" - Case "ESN" - Text = "Configurar DISMTools" - Label1.Text = Text - Label2.Text = "Bienvenido a DISMTools" - Label3.Text = "DISMTools es una interfaz gráfica basada en proyectos, gratuita y de código abierto. Para comenzar a configurar el programa, haga clic en Siguiente." - Label5.Text = "Hágalo suyo. Personalice este programa a su gusto y haga clic en Siguiente. Estas opciones pueden ser configuradas en cualquier momento en la sección " & Quote & "Personalización" & Quote & " de la ventana Opciones" - Label6.Text = "Personalice este programa" - Label7.Text = "Modo de color:" - Label8.Text = "Idioma:" - Label9.Text = "Fuente de la ventana de registro:" - Label10.Text = "Archivo de registro:" - ' Since we start with log level 3, manually show that option - Label11.Text = "Errores, advertencias y mensajes de información (Nivel 3)" - Label13.Text = "Especifique las opciones del registro y haga clic en Siguiente. Dependiendo del nivel de contenido que especifique, registraremos más o menos información. Esta opción puede ser configurada en cualquier momento en la sección " & Quote & "Registro" & Quote & " de la ventana Opciones" - Label14.Text = "¿Qué deberíamos registrar cuando realice una operación?" - ' Same here - Label16.Text = "El archivo de registro debe mostrar errores, advertencias y mensajes de información tras realizar una operación." - Label20.Text = "¿Hay algo más que quiera configurar?" - Label21.Text = "Las opciones disponibles son más de las que acaba de configurar. Si desea cambiarlas, haga clic en el botón de abajo. También guardaremos esas preferencias." - Label22.Text = "Puede realizar estos pasos en cualquier momento." - Label23.Text = "Ha terminado de configurar las opciones básicas para utilizar DISMTools como quiso. Haga clic en " & Quote & "Finalizar" & Quote & ", y guardaremos sus preferencias." - Label24.Text = "Configuración completa" - Label25.Text = "Ahora que ha configurado el programa, le recomendamos que haga lo siguiente:" - Label26.Text = "Manténgase al día para recibir nuevas características y una experiencia mejorada" - Label27.Text = "Aprenda DISMTools y el servicio de imágenes para poder manejarse mejor" - Label28.Text = "Estilo del panel de progreso secundario:" - Label29.Text = "Esta fuente podría no ser legible en ventanas de registro. Aunque todavía pueda utilizarla, le recomendamos fuentes monoespaciadas para una legibilidad aumentada." - Back_Button.Text = "Atrás" - Next_Button.Text = "Siguiente" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Utilizar archivo de registro predeterminado" - Button5.Text = "Configurar más opciones" - Button6.Text = "Comenzar" - Button7.Text = "Comprobar actualizaciones" - CheckBox1.Text = "Crear archivos de registro automáticamente en la carpeta de registros del programa" - RadioButton1.Text = "Moderno" - RadioButton2.Text = "Clásico" - SaveFileDialog1.Title = "Especifique el archivo de registro" - - ' Configure string arrays to put them in the comboboxes - ColorModes(0) = "Usar configuración del sistema" - ColorModes(1) = "Modo claro" - ColorModes(2) = "Modo oscuro" - Languages(0) = "Usar idioma del sistema" - Languages(1) = "Inglés" - Languages(2) = "Español" - Languages(3) = "Francés" - Languages(4) = "Portugués" - Languages(5) = "Italiano" - Case "FRA" - Text = "Configurer DISMTools" - Label1.Text = Text - Label2.Text = "Bienvenue à DISMTools" - Label3.Text = "DISMTools est une interface graphique libre et gratuite pour les opérations DISM. Pour commencer à configurer les choses, cliquez sur Suivant." - Label5.Text = "Faites-le vôtre. Personnalisez ce programme à votre guise et cliquez sur Suivant. Ces paramètres peuvent être configurés à tout moment dans la section " & Quote & "Personnalisation" & Quote & " de la fenêtre des paramètres." - Label6.Text = "Personnaliser ce programme" - Label7.Text = "Mode couleur :" - Label8.Text = "Langue :" - Label9.Text = "Fonte de la fenêtre du journal :" - Label10.Text = "Fichier journal :" - ' Since we start with log level 3, manually show that option - Label11.Text = "Erreurs, avertissements et messages d'information (niveau du journal 3)" - Label13.Text = "Spécifiez les paramètres du journal et cliquez sur Suivant. En fonction du niveau de contenu spécifié, nous enregistrerons plus ou moins d'informations. Ce paramètre peut être configuré à tout moment dans la section " & Quote & "Journaux" & Quote & " de la fenêtre des paramètres." - Label14.Text = "Que devons-nous enregistrer lorsque vous effectuez une opération ?" - ' Same here - Label16.Text = "Le fichier journal doit afficher les erreurs, les avertissements et les messages d'information après l'exécution d'une opération d'image." - Label20.Text = "Souhaitez-vous configurer autre chose ?" - Label21.Text = "Les paramètres disponibles sont plus nombreux que ceux que vous venez de configurer. Si vous souhaitez en modifier d'autres, cliquez sur le bouton ci-dessous. Nous rendrons également ces paramètres persistants." - Label22.Text = "Vous pouvez effectuer ces démarches à tout moment." - Label23.Text = "Vous avez fini de configurer les bases pour utiliser DISMTools comme vous le souhaitiez. Cliquez sur " & Quote & "Finir" & Quote & ", et nous rendrons vos paramètres persistants." - Label24.Text = "La configuration est terminée" - Label25.Text = "Maintenant que vous avez tout configuré, nous vous recommandons de procéder aux opérations suivantes :" - Label26.Text = "Restez à jour pour recevoir de nouvelles caractéristiques et une expérience améliorée." - Label27.Text = "Commencez à utiliser DISMTools et le service d'images, afin de vous déplacer plus rapidement." - Label28.Text = "Style du panneau de progression secondaire :" - Label29.Text = "Cette police peut ne pas être lisible sur les fenêtres logiques. Bien que vous puissiez encore l'utiliser, nous recommandons les polices monospaces pour une meilleure lisibilité." - Back_Button.Text = "Retour" - Next_Button.Text = "Suivant" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Utiliser le fichier journal par défaut" - Button5.Text = "Configurer d'autres paramètres" - Button6.Text = "Commencer" - Button7.Text = "Mettre à jour les données" - CheckBox1.Text = "Créer automatiquement des journaux dans le répertoire des journaux du programme" - RadioButton1.Text = "Moderne" - RadioButton2.Text = "Classique" - SaveFileDialog1.Title = "Spécifier le fichier journal" - - ' Configure string arrays to put them in the comboboxes - ColorModes(0) = "Utiliser les paramètres du système" - ColorModes(1) = "Mode lumineux" - ColorModes(2) = "Mode sombre" - Languages(0) = "Utiliser la langue du système" - Languages(1) = "Anglais" - Languages(2) = "Espagnol" - Languages(3) = "Français" - Languages(4) = "Portugais" - Languages(5) = "Italien" - Case "PTB", "PTG" - Text = "Configurar DISMTools" - Label1.Text = Text - Label2.Text = "Bem-vindo ao DISMTools" - Label3.Text = "DISMTools é uma GUI gratuita e de código aberto, orientada para projectos, para operações DISM. Para iniciar a configuração, clique em Seguinte." - Label5.Text = "Torne-o seu. Personalize este programa a seu gosto e clique em Next. Estas configurações podem ser feitas a qualquer momento na secção " & Quote & "Personalização" & Quote & " da janela Opções" - Label6.Text = "Personalizar este programa" - Label7.Text = "Modo de cor:" - Label8.Text = "Idioma:" - Label9.Text = "Tipo de letra da janela de registo:" - Label10.Text = "Ficheiro de registo:" - ' Since we start with log level 3, manually show that option - Label11.Text = "Erros, avisos e mensagens de informação (nível de registo 3)" - Label13.Text = "Especifique as configurações de registo e clique em Seguinte. Dependendo do nível de conteúdo que especificar, registaremos mais ou menos informações. Esta configuração pode ser feita a qualquer momento na secção " & Quote & "Logs" & Quote & " da janela Opções" - Label14.Text = "O que devemos registar quando executa uma operação?" - ' Same here - Label16.Text = "O ficheiro de registo deve apresentar erros, avisos e mensagens de informação após a execução de uma operação de imagem." - Label20.Text = "Há mais alguma coisa que gostaria de configurar?" - Label21.Text = "As configurações disponíveis são mais do que as que acabou de configurar. Se pretender alterar mais definições, clique no botão abaixo. Também vamos tornar essas configurações persistentes." - Label22.Text = "Pode executar estes passos em qualquer altura." - Label23.Text = "Terminou a configuração básica para usar o DISMTools da forma desejada. Clique em " & Quote & "Finish" & Quote & ", e as configurações serão mantidas." - Label24.Text = "A configuração está concluída" - Label25.Text = "Agora que já configurou tudo, recomendamos que efectue as seguintes acções:" - Label26.Text = "Mantenha-se atualizado para receber novas funcionalidades e uma experiência melhorada" - Label27.Text = "Começar a utilizar o DISMTools e o serviço de manutenção de imagens, para obter mais rapidamente" - Label28.Text = "Estilo do painel de progresso secundário:" - Label29.Text = "Esta fonte pode não ser legível em janelas de registo. Embora possa continuar a utilizá-lo, recomendamos tipos de letra monoespaçados para maior legibilidade." - Back_Button.Text = "Voltar" - Next_Button.Text = "Seguinte" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Navegar..." - Button2.Text = "Utilizar ficheiro de registo predefinido" - Button5.Text = "Configurar mais definições" - Button6.Text = "Obter" - Button7.Text = "Verificar se há actualizações" - CheckBox1.Text = "Criar automaticamente registos no diretório de registos do programa" - RadioButton1.Text = "Moderno" - RadioButton2.Text = "Clássico" - SaveFileDialog1.Title = "Especificar o ficheiro de registo" - - ' Configure string arrays to put them in the comboboxes - ColorModes(0) = "Utilizar a configuração do sistema" - ColorModes(1) = "Modo de luz" - ColorModes(2) = "Modo escuro" - Languages(0) = "Utilizar o idioma do sistema" - Languages(1) = "Inglês" - Languages(2) = "Espanhol" - Languages(3) = "Francês" - Languages(4) = "Português" - Languages(5) = "Italiano" - Case "ITA" - Text = "Impostare DISMTools" - Label1.Text = Text - Label2.Text = "Benvenuto in DISMTools" - Label3.Text = "DISMTools è un'interfaccia grafica gratuita e open source, basata su progetti, per le operazioni DISM. Per iniziare a configurare le operazioni, seleziona 'Avanti'" - Label5.Text = "Personalizza questo programma a piacimento e seleziona 'Avanti'. Queste impostazioni possono essere configurate in qualsiasi momento in 'Opzioni' -> 'Personalizzazione'." - Label6.Text = "Personalizzazione di DISMTools" - Label7.Text = "Modalità colore:" - Label8.Text = "Lingua:" - Label9.Text = "Font finestra registro:" - Label10.Text = "File registro:" - ' Since we start with log level 3, manually show that option - Label11.Text = "Errori, avvisi e messaggi informativi (livello registro 3)" - Label13.Text = "Imposta il livello di registrazione e seleziona 'Avanti'. A seconda del livello specificato, verranno registrate più o meno informazioni. Questa impostazione può essere configurata in qualsiasi momento in 'Opzioni' -> 'Registri'." - Label14.Text = "Quali attività registrare quando si esegue un'operazione?" - ' Same here - Label16.Text = "Il file registro visualizza gli errori, le avvertenze e i messaggi informativi dopo l'esecuzione di un'operazione sull'immagine." - Label20.Text = "Vuoi configurare altre impostazioni?" - Label21.Text = "Le impostazioni disponibili sono più di quelle appena configurate. Se vuoi modificarne altre, seleziona il pulsante sottostante. Inoltre, queste impostazioni diventeranno permanenti." - Label22.Text = "È possibile eseguire questi passaggi in qualsiasi momento." - Label23.Text = "Hai completato l'impostazione degli elementi base per usare DISMTools nel modo desiderato. Seleziona 'Fine' e le impostazioni diventeranno permanenti." - Label24.Text = "L'impostazione è stata completa" - Label25.Text = "Ora che hai configurato il programma, ti consigliamo di:" - Label26.Text = "rimani aggiornato per ricevere nuove funzionalità e un'esperienza migliorata." - Label27.Text = "inizia ad usare DISMTools e il servizio di assistenza immagini, in modo da muoverti più rapidamente." - Label28.Text = "Stile pannello avanzamento secondario:" - Label29.Text = "Questo font potrebbe non essere leggibile nelle finestre registro. Anche se è possibile usarla, per una maggiore leggibilità ti consigliamo di usare font mono spaziati." - Back_Button.Text = "Indietro" - Next_Button.Text = "Avanti" - Cancel_Button.Text = "Annulla" - Button1.Text = "Sfoglia..." - Button2.Text = "Usa file registro predefinito" - Button5.Text = "Configura altre impostazioni" - Button6.Text = "Inizia" - Button7.Text = "Controlla aggiornamenti" - CheckBox1.Text = "Crea automaticamente i registri nella cartella registri del programma" - RadioButton1.Text = "Moderno" - RadioButton2.Text = "Classico" - SaveFileDialog1.Title = "Specifica file registro" - - ' Configure string arrays to put them in the comboboxes - ColorModes(0) = "Usa impostazioni sistema" - ColorModes(1) = "Modalità chiara" - ColorModes(2) = "Modalità scura" - Languages(0) = "Usa lingua sistema" - Languages(1) = "Inglese" - Languages(2) = "Spagnolo" - Languages(3) = "Francese" - Languages(4) = "Portoghese" - Languages(5) = "Italiano" - End Select - ' Add new items to the comboboxes - ComboBox1.Items.AddRange(ColorModes) - ComboBox2.Items.AddRange(Languages) + ApplyLocalizedText() - ' Since we default to the system deciding the aforementioned settings, choose the first items + ' English is the default language when no saved language is available. ComboBox1.SelectedIndex = 0 - ComboBox2.SelectedIndex = 0 + SelectLanguageComboBox(ComboBox2, MainForm.LanguageCode) If Not Environment.OSVersion.Version.Major >= 10 Or Not (DetectFont("Segoe UI Variable Display Semib") Or DetectFont("Segoe UI Variable Semib")) Then Label2.Font = New Font("Segoe UI", Label2.Font.Size, FontStyle.Regular) @@ -659,6 +310,182 @@ Public Class PrgSetup End If End Sub + Private Function GetSelectedLanguageCode(comboBox As ComboBox, fallbackCultureCode As String) As String + If comboBox.SelectedItem IsNot Nothing AndAlso TypeOf comboBox.SelectedItem Is LocalizationLanguageInfo Then + Return DirectCast(comboBox.SelectedItem, LocalizationLanguageInfo).Code + End If + + If comboBox.SelectedValue IsNot Nothing Then + Return comboBox.SelectedValue.ToString() + End If + + Return LocalizationService.NormalizeCultureCode(fallbackCultureCode) + End Function + + Private Sub PopulateLanguageComboBox(comboBox As ComboBox, selectedCultureCode As String) + comboBox.Items.Clear() + For Each languageInfo As LocalizationLanguageInfo In LocalizationService.GetAvailableLanguages() + comboBox.Items.Add(languageInfo) + Next + SelectLanguageComboBox(comboBox, selectedCultureCode) + End Sub + + Private Sub SelectLanguageComboBox(comboBox As ComboBox, selectedCultureCode As String) + Dim normalizedCultureCode As String = LocalizationService.NormalizeCultureCode(selectedCultureCode) + Dim selectedIndex As Integer = -1 + + For index As Integer = 0 To comboBox.Items.Count - 1 + Dim languageInfo As LocalizationLanguageInfo = TryCast(comboBox.Items(index), LocalizationLanguageInfo) + If languageInfo IsNot Nothing AndAlso languageInfo.Code.Equals(normalizedCultureCode, StringComparison.OrdinalIgnoreCase) Then + selectedIndex = index + Exit For + End If + Next + + If selectedIndex < 0 Then + For index As Integer = 0 To comboBox.Items.Count - 1 + Dim languageInfo As LocalizationLanguageInfo = TryCast(comboBox.Items(index), LocalizationLanguageInfo) + If languageInfo IsNot Nothing AndAlso languageInfo.Code.Equals(LocalizationService.DefaultCultureCode, StringComparison.OrdinalIgnoreCase) Then + selectedIndex = index + Exit For + End If + Next + End If + + If selectedIndex >= 0 Then comboBox.SelectedIndex = selectedIndex + End Sub + + Private Sub ApplyLocalizedText() + Dim selectedColorMode As Integer = ComboBox1.SelectedIndex + Dim selectedLanguageCode As String = GetSelectedLanguageCode(ComboBox2, MainForm.LanguageCode) + + If selectedColorMode < 0 Then selectedColorMode = 0 + + isApplyingLocalizedText = True + Try + Text = LocalizationService.ForSection("PrgSetup")("Set.Up.DISM.Label") + Label1.Text = Text + Label2.Text = LocalizationService.ForSection("PrgSetup")("Welcome.DISM.Tools.Label") + Label3.Text = LocalizationService.ForSection("PrgSetup")("DISM.Tools.Free.Message") + Label5.Text = LocalizationService.ForSection("PrgSetup")("Yours.Customize.Message") + Label6.Text = LocalizationService.ForSection("PrgSetup")("CustomizeProgram.Label") + Label7.Text = LocalizationService.ForSection("PrgSetup")("ColorMode.Label") + Label8.Text = LocalizationService.ForSection("PrgSetup")("Language.Label") + Label9.Text = LocalizationService.ForSection("PrgSetup")("Log.Window.Font.Label") + Label10.Text = LocalizationService.ForSection("PrgSetup")("LogFile.Label") + Label13.Text = LocalizationService.ForSection("PrgSetup")("Log.Settings.Message") + Label14.Text = LocalizationService.ForSection("PrgSetup")("Log.Label") + Label20.Text = LocalizationService.ForSection("PrgSetup")("Anything.Like.Label") + Label21.Text = LocalizationService.ForSection("PrgSetup")("Settings.Available.Message") + Label22.Text = LocalizationService.ForSection("PrgSetup")("Perform.Steps.Time.Label") + Label23.Text = LocalizationService.ForSection("PrgSetup")("Done.Setting.Up.Message") + Label24.Text = LocalizationService.ForSection("PrgSetup")("SetupComplete.Label") + Label25.Text = LocalizationService.ForSection("PrgSetup")("Ve.Set.Things.Label") + Label26.Text = LocalizationService.ForSection("PrgSetup")("Stay.Up.Date.Label") + Label27.Text = LocalizationService.ForSection("PrgSetup")("Get.Started.DISM.Label") + Label28.Text = LocalizationService.ForSection("PrgSetup")("Secondary.Progress.Label") + Label29.Text = LocalizationService.ForSection("PrgSetup")("Font.Readable.Log.Message") + TextBox1.Text = LocalizationService.ForSection("PrgSetup.LogPreview")("Packages.Add.Message") + ApplySecondaryProgressPreview() + Back_Button.Text = LocalizationService.ForSection("PrgSetup")("Back.Button") + Cancel_Button.Text = LocalizationService.ForSection("PrgSetup")("Cancel.Button") + Button1.Text = LocalizationService.ForSection("PrgSetup")("Browse.Button") + Button2.Text = LocalizationService.ForSection("PrgSetup")("Default.Log.File.Button") + Button5.Text = LocalizationService.ForSection("PrgSetup")("Configure.Settings.Button") + Button6.Text = LocalizationService.ForSection("PrgSetup")("GetStarted.Button") + Button7.Text = LocalizationService.ForSection("PrgSetup")("CheckUpdates.Button") + CheckBox1.Text = LocalizationService.ForSection("PrgSetup")("Auto.Create.Logs.CheckBox") + RadioButton1.Text = LocalizationService.ForSection("PrgSetup")("Modern.RadioButton") + RadioButton2.Text = LocalizationService.ForSection("PrgSetup")("Classic.RadioButton") + SaveFileDialog1.Title = LocalizationService.ForSection("PrgSetup")("Log.File.Title") + SaveFileDialog1.Filter = LocalizationService.ForSection("PrgSetup.Dialogs")("SaveFile.Filter") + + ColorModes(0) = LocalizationService.ForSection("PrgSetup")("System.Setting.Item") + ColorModes(1) = LocalizationService.ForSection("PrgSetup")("LightMode.Item") + ColorModes(2) = LocalizationService.ForSection("PrgSetup")("DarkMode.Item") + ComboBox1.Items.Clear() + ComboBox2.Items.Clear() + ComboBox1.Items.AddRange(ColorModes) + PopulateLanguageComboBox(ComboBox2, selectedLanguageCode) + + ComboBox1.SelectedIndex = Math.Min(selectedColorMode, ComboBox1.Items.Count - 1) + SelectLanguageComboBox(ComboBox2, selectedLanguageCode) + Finally + isApplyingLocalizedText = False + End Try + + ApplyTrackBarText() + ApplyNavigationText() + End Sub + + Private Sub ApplyNavigationText() + If pageInt = 4 Then + Next_Button.Text = LocalizationService.ForSection("PrgSetup.Next")("Finish.Label") + Else + Next_Button.Text = LocalizationService.ForSection("PrgSetup.Next.Actions")("Next.Button") + End If + End Sub + + Private Sub ApplyTrackBarText() + Select Case TrackBar1.Value + Case 0 + Label11.Text = LocalizationService.ForSection("PrgSetup.LogLevel")("Errors.Label") + Label16.Text = LocalizationService.ForSection("PrgSetup.LogLevel")("File.Only.Display.Label") + Case 1 + Label11.Text = LocalizationService.ForSection("PrgSetup.LogLevel")("Errors.Warnings.Label") + Label16.Text = LocalizationService.ForSection("PrgSetup.LogLevel")("File.Display.Errors.Label") + Case 2 + Label11.Text = LocalizationService.ForSection("PrgSetup.LogLevel")("Errors.Messages.Label") + Label16.Text = LocalizationService.ForSection("PrgSetup.LogLevel")("File.Display.Errors.Message") + Case 3 + Label11.Text = LocalizationService.ForSection("PrgSetup.LogLevel")("Errors.Warnings.Debug.Label") + Label16.Text = LocalizationService.ForSection("PrgSetup.LogLevel")("Level3.Message") + End Select + End Sub + + + Private Sub ApplySecondaryProgressPreview() + Dim previewText As String = LocalizationService.ForSection("PrgSetup.ProgressPreview")("ImageIndexes.Message") + Dim waitText As String = LocalizationService.ForSection("PrgSetup.ProgressPreview")("Wait.Label") + SecProgressStylePreview.Image = RenderSecondaryProgressPreview(RadioButton1.Checked, waitText, previewText) + End Sub + + Private Function RenderSecondaryProgressPreview(modernStyle As Boolean, waitText As String, previewText As String) As Bitmap + Dim image As Bitmap = New Bitmap(If(modernStyle, My.Resources.secprogress_modern, My.Resources.secprogress_classic)) + + Using graphics As Graphics = Graphics.FromImage(image) + graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit + + Using backgroundBrush As New SolidBrush(Color.FromArgb(32, 32, 32)) + If modernStyle Then + graphics.FillRectangle(backgroundBrush, 1, 1, image.Width - 2, image.Height - 2) + Else + graphics.FillRectangle(backgroundBrush, 55, 1, image.Width - 56, image.Height - 2) + End If + End Using + + Using textBrush As New SolidBrush(Color.White) + If modernStyle Then + Using previewFont As New Font("Segoe UI", 9.0F, FontStyle.Regular) + Using format As New StringFormat() With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center} + graphics.DrawString(previewText, previewFont, textBrush, New RectangleF(0, 0, image.Width, image.Height), format) + End Using + End Using + Else + Using waitFont As New Font("Segoe UI", 8.25F, FontStyle.Bold) + Using previewFont As New Font("Segoe UI", 8.25F, FontStyle.Regular) + graphics.DrawString(waitText, waitFont, textBrush, New PointF(56.0F, 13.0F)) + graphics.DrawString(previewText, previewFont, textBrush, New PointF(56.0F, 29.0F)) + End Using + End Using + End If + End Using + End Using + + Return image + End Function + Function DetectFont(FontName As String) As Boolean DynaLog.LogMessage("Detecting if specified font is installed in this computer...") DynaLog.LogMessage("Font to test: " & FontName) @@ -731,88 +558,34 @@ Public Class PrgSetup End Sub Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged - MainForm.Language = ComboBox2.SelectedIndex + If isApplyingLocalizedText Then Return + If ComboBox2.SelectedIndex < 0 Then Return + + Dim previousLanguageCode As String = MainForm.LanguageCode + Dim selectedLanguageCode As String = GetSelectedLanguageCode(ComboBox2, previousLanguageCode) + Dim validationMessage As String = "" + If Not LocalizationService.ValidateLanguage(selectedLanguageCode, validationMessage) Then + MessageBox.Show(validationMessage, + "Incompatible or invalid DISMTools language file", + MessageBoxButtons.OK, + MessageBoxIcon.Error) + isApplyingLocalizedText = True + Try + SelectLanguageComboBox(ComboBox2, previousLanguageCode) + Finally + isApplyingLocalizedText = False + End Try + Return + End If + + MainForm.LanguageCode = selectedLanguageCode + LocalizationService.SetLanguageByCultureCode(MainForm.LanguageCode) + ApplyLocalizedText() End Sub Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll DynaLog.LogMessage("Value of log level trackbar: " & TrackBar1.Value) - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Select Case TrackBar1.Value - Case 0 - Label11.Text = "Errors (Log level 1)" - Label16.Text = "The log file should only display errors after performing an image operation." - Case 1 - Label11.Text = "Errors and warnings (Log level 2)" - Label16.Text = "The log file should display errors and warnings after performing an image operation." - Case 2 - Label11.Text = "Errors, warnings and information messages (Log level 3)" - Label16.Text = "The log file should display errors, warnings and information messages after performing an image operation." - Case 3 - Label11.Text = "Errors, warnings, information and debug messages (Log level 4)" - Label16.Text = "The log file should display errors, warnings, information and debug messages after performing an image operation." - End Select - Case "ESN" - Select Case TrackBar1.Value - Case 0 - Label11.Text = "Errores (Nivel 1)" - Label16.Text = "El archivo de registro solo debe mostrar errores tras realizar una operación." - Case 1 - Label11.Text = "Errores y advertencias (Nivel 2)" - Label16.Text = "El archivo de registro debe mostrar errores y advertencias tras realizar una operación." - Case 2 - Label11.Text = "Errores, advertencias y mensajes de información (Nivel 3)" - Label16.Text = "El archivo de registro debe mostrar errores, advertencias y mensajes de información tras realizar una operación." - Case 3 - Label11.Text = "Errores, advertencias, mensajes de información y de depuración (Nivel 4)" - Label16.Text = "El archivo de registro debe mostrar errores, advertencias, mensajes de información y de depuración tras realizar una operación." - End Select - Case "FRA" - Select Case TrackBar1.Value - Case 0 - Label11.Text = "Erreurs (niveau du journal 1)" - Label16.Text = "Le fichier journal ne doit afficher les erreurs qu'après l'exécution d'une opération d'image." - Case 1 - Label11.Text = "Erreurs et avertissements (niveau de journal 2)" - Label16.Text = "Le fichier journal doit afficher les erreurs et les avertissements après l'exécution d'une opération d'image." - Case 2 - Label11.Text = "Erreurs, avertissements et messages d'information (niveau du journal 3)" - Label16.Text = "Le fichier journal doit afficher les erreurs, les avertissements et les messages d'information après l'exécution d'une opération d'image." - Case 3 - Label11.Text = "Erreurs, avertissements, informations et messages de débogage (niveau du journal 4)" - Label16.Text = "Le fichier journal doit afficher les erreurs, les avertissements, les informations et les messages de débogage après l'exécution d'une opération d'image." - End Select - Case "PTB", "PTG" - Select Case TrackBar1.Value - Case 0 - Label11.Text = "Erros (nível de registo 1)" - Label16.Text = "O ficheiro de registo só deve apresentar erros depois de executar uma operação de imagem." - Case 1 - Label11.Text = "Erros e avisos (nível de registo 2)" - Label16.Text = "O ficheiro de registo deve apresentar erros e avisos após a realização de uma operação de imagem." - Case 2 - Label11.Text = "Erros, avisos e mensagens de informação (nível de registo 3)" - Label16.Text = "O ficheiro de registo deve apresentar erros, avisos e mensagens de informação após a realização de uma operação de imagem." - Case 3 - Label11.Text = "Erros, avisos, informações e mensagens de depuração (nível de registo 4)" - Label16.Text = "O ficheiro de registo deve apresentar erros, avisos, informações e mensagens de depuração após a realização de uma operação de imagem." - End Select - Case "ITA" - Select Case TrackBar1.Value - Case 0 - Label11.Text = "Errori (livello di log 1)" - Label16.Text = "Il file di registro dovrebbe visualizzare gli errori solo dopo l'esecuzione di un'operazione di immagine" - Case 1 - Label11.Text = "Errori e avvisi (livello di registro 2)" - Label16.Text = "Il file di log deve visualizzare errori e avvisi dopo l'esecuzione di un'operazione di immagine" - Case 2 - Label11.Text = "Errori, avvisi e messaggi informativi (livello di registro 3)" - Label16.Text = "Il file di log deve visualizzare errori, avvisi e messaggi informativi dopo l'esecuzione di un'operazione di immagine." - Case 3 - Label11.Text = "Errori, avvisi, informazioni e messaggi di debug (livello di registro 4)" - Label16.Text = "Il file di log deve visualizzare errori, avvisi, informazioni e messaggi di debug dopo l'esecuzione di un'operazione di immagine." - End Select - End Select + ApplyTrackBarText() MainForm.LogLevel = TrackBar1.Value + 1 End Sub @@ -824,11 +597,7 @@ Public Class PrgSetup End Sub Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged - If RadioButton1.Checked Then - SecProgressStylePreview.Image = My.Resources.secprogress_modern - Else - SecProgressStylePreview.Image = My.Resources.secprogress_classic - End If + ApplySecondaryProgressPreview() End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged @@ -863,25 +632,14 @@ Public Class PrgSetup End Using Catch ex As WebException DynaLog.LogMessage("Could not get updater. Error message: " & ex.Status.ToString()) - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("We couldn't download the update checker. Reason:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Check for updates") - Case "ESN" - MsgBox("No pudimos descargar el comprobador de actualizaciones. Razón:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Comprobar actualizaciones") - Case "FRA" - MsgBox("Nous n'avons pas pu télécharger le vérificateur de mise à jour. Raison :" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Mettre à jour les données") - Case "PTB", "PTG" - MsgBox("Não foi possível descarregar o verificador de actualizações. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Verificar actualizações") - Case "ITA" - MsgBox("Non è stato possibile scaricare il programma di controllo degli aggiornamenti. Motivo:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, "Verifica aggiornamenti") - End Select + MsgBox(LocalizationService.ForSection("PrgSetup.Validation").Format("DownloadFailure.Message", ex.Status.ToString()), vbOKOnly + vbCritical, LocalizationService.ForSection("PrgSetup.Actions")("UpdateChecker.Title")) Exit Sub End Try DynaLog.LogMessage("Information to pass to updater:") DynaLog.LogMessage("- Branch: " & MainForm.dtBranch) DynaLog.LogMessage("- Process ID (PID): " & Process.GetCurrentProcess().Id) If File.Exists(Application.StartupPath & "\update.exe") Then - Process.Start(Application.StartupPath & "\update.exe", "/" & MainForm.dtBranch & " /pid=" & Process.GetCurrentProcess().Id) + Process.Start(Application.StartupPath & "\update.exe", "/" & MainForm.dtBranch & " /pid=" & Process.GetCurrentProcess().Id & " " & LocalizationService.GetLanguageCommandLineArgument()) Next_Button.PerformClick() End If End Sub @@ -895,4 +653,4 @@ Public Class PrgSetup WindowState = FormWindowState.Normal End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Get_Ops/AppxPkgs/GetAppxPkgInfo.Designer.vb b/Panels/Get_Ops/AppxPkgs/GetAppxPkgInfo.Designer.vb index 7c5ca5636..05923c06a 100644 --- a/Panels/Get_Ops/AppxPkgs/GetAppxPkgInfo.Designer.vb +++ b/Panels/Get_Ops/AppxPkgs/GetAppxPkgInfo.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class GetAppxPkgInfoDlg Inherits System.Windows.Forms.Form @@ -233,7 +233,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(80, 13) Me.Label22.TabIndex = 0 - Me.Label22.Text = "Package name:" + Me.Label22.Text = LocalizationService.ForSection("Designer.Get.AppX")("PackageName.Label") ' 'Label23 ' @@ -243,7 +243,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label23.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label23.Size = New System.Drawing.Size(38, 15) Me.Label23.TabIndex = 0 - Me.Label23.Text = "Label8" + Me.Label23.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label23.UseMnemonic = False ' 'Label24 @@ -254,7 +254,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label24.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label24.Size = New System.Drawing.Size(128, 17) Me.Label24.TabIndex = 0 - Me.Label24.Text = "Application display name:" + Me.Label24.Text = LocalizationService.ForSection("Designer.Get.AppX")("Display.Name.Label") ' 'Label25 ' @@ -265,7 +265,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label25.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label25.Size = New System.Drawing.Size(38, 15) Me.Label25.TabIndex = 0 - Me.Label25.Text = "Label8" + Me.Label25.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label25.UseMnemonic = False ' 'Label26 @@ -276,7 +276,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label26.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label26.Size = New System.Drawing.Size(70, 17) Me.Label26.TabIndex = 0 - Me.Label26.Text = "Architecture:" + Me.Label26.Text = LocalizationService.ForSection("Designer.Get.AppX")("Architecture.Label") ' 'Label35 ' @@ -287,7 +287,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label35.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label35.Size = New System.Drawing.Size(38, 15) Me.Label35.TabIndex = 0 - Me.Label35.Text = "Label8" + Me.Label35.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label35.UseMnemonic = False ' 'Label31 @@ -298,7 +298,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label31.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label31.Size = New System.Drawing.Size(70, 17) Me.Label31.TabIndex = 0 - Me.Label31.Text = "Resource ID:" + Me.Label31.Text = LocalizationService.ForSection("Designer.Get.AppX")("ResourceID.Label") ' 'Label32 ' @@ -309,7 +309,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label32.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label32.Size = New System.Drawing.Size(38, 15) Me.Label32.TabIndex = 0 - Me.Label32.Text = "Label8" + Me.Label32.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label32.UseMnemonic = False ' 'Label41 @@ -320,7 +320,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label41.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label41.Size = New System.Drawing.Size(46, 17) Me.Label41.TabIndex = 0 - Me.Label41.Text = "Version:" + Me.Label41.Text = LocalizationService.ForSection("Designer.Get.AppX")("Version.Label") ' 'Label40 ' @@ -331,7 +331,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label40.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label40.Size = New System.Drawing.Size(38, 15) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Label8" + Me.Label40.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label40.UseMnemonic = False ' 'Label43 @@ -342,7 +342,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label43.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label43.Size = New System.Drawing.Size(131, 17) Me.Label43.TabIndex = 0 - Me.Label43.Text = "Is registered to any user?" + Me.Label43.Text = LocalizationService.ForSection("Designer.Get.AppX")("Registered.User.Label") ' 'Label42 ' @@ -353,7 +353,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label42.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label42.Size = New System.Drawing.Size(38, 15) Me.Label42.TabIndex = 0 - Me.Label42.Text = "Label8" + Me.Label42.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label42.UseMnemonic = False ' 'Label4 @@ -364,7 +364,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label4.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label4.Size = New System.Drawing.Size(110, 17) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Installation directory:" + Me.Label4.Text = LocalizationService.ForSection("Designer.Get.AppX")("Install.Dir.Label") ' 'Label3 ' @@ -375,7 +375,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label3.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label3.Size = New System.Drawing.Size(38, 15) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Label8" + Me.Label3.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label3.UseMnemonic = False ' 'Label6 @@ -386,7 +386,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label6.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label6.Size = New System.Drawing.Size(135, 17) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Package manifest location:" + Me.Label6.Text = LocalizationService.ForSection("Designer.Get.AppX")("Package.Manifest.Label") ' 'Label5 ' @@ -397,7 +397,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label5.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label5.Size = New System.Drawing.Size(38, 15) Me.Label5.TabIndex = 0 - Me.Label5.Text = "Label8" + Me.Label5.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label5.UseMnemonic = False ' 'Label8 @@ -408,7 +408,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label8.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label8.Size = New System.Drawing.Size(135, 17) Me.Label8.TabIndex = 0 - Me.Label8.Text = "Store logo asset directory:" + Me.Label8.Text = LocalizationService.ForSection("Designer.Get.AppX")("StoreLogo.Asset.Dir.Label") ' 'Label7 ' @@ -419,7 +419,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label7.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label7.Size = New System.Drawing.Size(38, 15) Me.Label7.TabIndex = 0 - Me.Label7.Text = "Label8" + Me.Label7.Text = LocalizationService.ForSection("Designer.Get.AppX")("DynamicValue.Label") Me.Label7.UseMnemonic = False ' 'Label9 @@ -430,7 +430,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label9.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label9.Size = New System.Drawing.Size(113, 17) Me.Label9.TabIndex = 0 - Me.Label9.Text = "Main store logo asset:" + Me.Label9.Text = LocalizationService.ForSection("Designer.Get.AppX")("Main.StoreLogo.Asset.Label") ' 'PictureBox2 ' @@ -449,9 +449,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label10.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label10.Size = New System.Drawing.Size(403, 30) Me.Label10.TabIndex = 0 - Me.Label10.Text = "This asset has been guessed by DISMTools based on its size, which can lead to an " & _ - "incorrect result. If that happens, please report an issue on the GitHub reposito" & _ - "ry" + Me.Label10.Text = LocalizationService.ForSection("Designer.Get.AppX")("Asset.Guessed.DISM.Message") ' 'LinkLabel1 ' @@ -464,7 +462,7 @@ Partial Class GetAppxPkgInfoDlg Me.LinkLabel1.Size = New System.Drawing.Size(194, 15) Me.LinkLabel1.TabIndex = 3 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "This asset is not the one I'm looking for" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.Get.AppX")("Asset.One.IM.Link") ' 'Label55 ' @@ -494,7 +492,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(436, 36) Me.Label36.TabIndex = 0 - Me.Label36.Text = "AppX package information" + Me.Label36.Text = LocalizationService.ForSection("Designer.Get.AppX")("AppX.Package.Label") Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel7 @@ -514,7 +512,7 @@ Partial Class GetAppxPkgInfoDlg Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(436, 396) Me.Label37.TabIndex = 0 - Me.Label37.Text = "Select an installed AppX package on the left to view its information here" + Me.Label37.Text = LocalizationService.ForSection("Designer.Get.AppX")("Installed.AppX.Label") Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'FlowLayoutPanel4 @@ -532,7 +530,7 @@ Partial Class GetAppxPkgInfoDlg Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(96, 23) Me.Button2.TabIndex = 12 - Me.Button2.Text = "Save..." + Me.Button2.Text = LocalizationService.ForSection("Designer.Get.AppX")("Save.Button") Me.Button2.UseVisualStyleBackColor = True ' 'ImageTaskHeader1 @@ -564,7 +562,7 @@ Partial Class GetAppxPkgInfoDlg Me.Name = "GetAppxPkgInfoDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Get AppX package information" + Me.Text = LocalizationService.ForSection("Designer.Get.AppX")("AppX.Package.Get.Label") Me.FeatureInfoPanel.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) diff --git a/Panels/Get_Ops/AppxPkgs/GetAppxPkgInfo.vb b/Panels/Get_Ops/AppxPkgs/GetAppxPkgInfo.vb index e817daab4..583841b81 100644 --- a/Panels/Get_Ops/AppxPkgs/GetAppxPkgInfo.vb +++ b/Panels/Get_Ops/AppxPkgs/GetAppxPkgInfo.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.Dism Imports DISMTools.Utilities @@ -15,201 +15,24 @@ Public Class GetAppxPkgInfoDlg Private FilteredAppxPackages_Backup As IEnumerable(Of ImageAppxPackage) Private Sub GetAppxPkgInfoDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Get AppX package information" - ImageTaskHeader1.ItemText = Text - Label36.Text = "AppX package information" - Label37.Text = "Select an installed AppX package on the left to view its information here" - Label22.Text = "Package name:" - Label24.Text = "Application display name:" - Label26.Text = "Architecture:" - Label31.Text = "Resource ID:" - Label41.Text = "Version:" - Label43.Text = "Is registered to any user?" - Label4.Text = "Installation directory:" - Label6.Text = "Package manifest location:" - Label8.Text = "Store logo asset directory:" - Label9.Text = "Main store logo asset:" - Label10.Text = "This asset has been guessed by DISMTools based on its size, which can lead to an incorrect result. If that happens, please report an issue on the GitHub repository" - LinkLabel1.Text = "This asset is not the one I'm looking for" - Button2.Text = "Save..." - SearchBox1.cueBanner = "Type here to search for an application..." - Case "ESN" - Text = "Obtener información de paquetes AppX" - ImageTaskHeader1.ItemText = Text - Label36.Text = "Información de paquete AppX" - Label37.Text = "Seleccione un paquete AppX instalado en la izquierda para ver su información aquí" - Label22.Text = "Nombre de paquete:" - Label24.Text = "Nombre de aplicación a mostrar:" - Label26.Text = "Arquitectura:" - Label31.Text = "ID de recurso:" - Label41.Text = "Versión:" - Label43.Text = "¿Está registrado a algún usuario?" - Label4.Text = "Directorio de instalación:" - Label6.Text = "Ubicación del manifiesto del paquete:" - Label8.Text = "Directorio de recursos de logotipos de Tienda:" - Label9.Text = "Recurso de logotipos de Tienda principal:" - Label10.Text = "Este recurso ha sido averiguado por DISMTools por su tamaño, lo que puede llevar a un resultado incorrecto. Si eso ocurre, informe de un problema en el repositorio de GitHub" - LinkLabel1.Text = "Este recurso no es el que estaba buscando" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Escriba aquí para buscar una aplicación..." - Case "FRA" - Text = "Obtenir des informations sur les paquets AppX" - ImageTaskHeader1.ItemText = Text - Label36.Text = "Informations sur le paquet AppX" - Label37.Text = "Sélectionnez un paquet AppX installé sur la gauche pour afficher son information ici." - Label22.Text = "Nom du paquet :" - Label24.Text = "Nom d'affichage de l'application :" - Label26.Text = "Architecture :" - Label31.Text = "ID de la ressource :" - Label41.Text = "Version :" - Label43.Text = "Est-il enregistré au nom d'un utilisateur ?" - Label4.Text = "Répertoire d'installation :" - Label6.Text = "Emplacement du manifeste du paquet :" - Label8.Text = "Répertoire du logo du magasin :" - Label9.Text = "Logo du magasin principal :" - Label10.Text = "Ce bien a été deviné par DISMTools sur la base de sa taille, ce qui peut conduire à un résultat incorrect. Si cela se produit, veuillez signaler un problème sur le dépôt GitHub." - LinkLabel1.Text = "Cette ressource n'est pas celle que je recherche" - Button2.Text = "Sauvegarder..." - SearchBox1.cueBanner = "Tapez ici pour rechercher une application..." - Case "PTB", "PTG" - Text = "Obter informações do pacote AppX" - ImageTaskHeader1.ItemText = Text - Label36.Text = "Informações do pacote AppX" - Label37.Text = "Seleccione um pacote AppX instalado à esquerda para ver as suas informações aqui" - Label22.Text = "Nome do pacote:" - Label24.Text = "Nome de apresentação da aplicação:" - Label26.Text = "Arquitetura:" - Label31.Text = "ID do recurso:" - Label41.Text = "Versão:" - Label43.Text = "Está registada para algum utilizador?" - Label4.Text = "Diretório de instalação:" - Label6.Text = "Localização do manifesto do pacote:" - Label8.Text = "Diretório de activos do logótipo da loja:" - Label9.Text = "Ativo do logótipo principal da loja:" - Label10.Text = "Este ativo foi adivinhado pelo DISMTools com base no seu tamanho, o que pode conduzir a um resultado incorreto. Se isso acontecer, comunique um problema no repositório do GitHub" - LinkLabel1.Text = "Este recurso não é o que estou à procura" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Digite aqui para pesquisar uma aplicação..." - Case "ITA" - Text = "Verifica informazioni pacchetto AppX" - ImageTaskHeader1.ItemText = Text - Label36.Text = "Informazioni pacchetti AppX" - Label37.Text = "Seleziona un pacchetto AppX installato a sinistra per visualizzarne qui le informazioni" - Label22.Text = "Nome pacchetto:" - Label24.Text = "Nome applicazione visualizzato:" - Label26.Text = "Architettura:" - Label31.Text = "ID risorsa:" - Label41.Text = "Versione:" - Label43.Text = "È registrato a qualche utente?" - Label4.Text = "Cartella installazione:" - Label6.Text = "Percorso manifesto pacchetto:" - Label8.Text = "Cartella risorse logo negozio:" - Label9.Text = "Asset principale logo negozio:" - Label10.Text = "Questa risorsa è stata rilevata da DISMTools in base alle sue dimensioni, il che può portare ad un risultato errato. Se ciò accade, segnala il problema nel repository GitHub" - LinkLabel1.Text = "Questa risorsa non è quella cercata" - Button2.Text = "Salva..." - SearchBox1.cueBanner = "Digita qui per cercare un'applicazione..." - End Select - Case 1 - Text = "Get AppX package information" - ImageTaskHeader1.ItemText = Text - Label36.Text = "AppX package information" - Label37.Text = "Select an installed AppX package on the left to view its information here" - Label22.Text = "Package name:" - Label24.Text = "Application display name:" - Label26.Text = "Architecture:" - Label31.Text = "Resource ID:" - Label41.Text = "Version:" - Label43.Text = "Is registered to any user?" - Label4.Text = "Installation directory:" - Label6.Text = "Package manifest location:" - Label8.Text = "Store logo asset directory:" - Label9.Text = "Main store logo asset:" - Label10.Text = "This asset has been guessed by DISMTools based on its size, which can lead to an incorrect result. If that happens, please report an issue on the GitHub repository" - LinkLabel1.Text = "This asset is not the one I'm looking for" - Button2.Text = "Save..." - SearchBox1.cueBanner = "Type here to search for an application..." - Case 2 - Text = "Obtener información de paquetes AppX" - ImageTaskHeader1.ItemText = Text - Label36.Text = "Información de paquete AppX" - Label37.Text = "Seleccione un paquete AppX instalado en la izquierda para ver su información aquí" - Label22.Text = "Nombre de paquete:" - Label24.Text = "Nombre de aplicación a mostrar:" - Label26.Text = "Arquitectura:" - Label31.Text = "ID de recurso:" - Label41.Text = "Versión:" - Label43.Text = "¿Está registrado a algún usuario?" - Label4.Text = "Directorio de instalación:" - Label6.Text = "Ubicación del manifiesto del paquete:" - Label8.Text = "Directorio de recursos de logotipos de Tienda:" - Label9.Text = "Recurso de logotipos de Tienda principal:" - Label10.Text = "Este recurso ha sido averiguado por DISMTools por su tamaño, lo que puede llevar a un resultado incorrecto. Si eso ocurre, informe de un problema en el repositorio de GitHub" - LinkLabel1.Text = "Este recurso no es el que estaba buscando" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Escriba aquí para buscar una aplicación..." - Case 3 - Text = "Obtenir des informations sur les paquets AppX" - ImageTaskHeader1.ItemText = Text - Label36.Text = "Informations sur le paquet AppX" - Label37.Text = "Sélectionnez un paquet AppX installé sur la gauche pour afficher son information ici." - Label22.Text = "Nom du paquet :" - Label24.Text = "Nom d'affichage de l'application :" - Label26.Text = "Architecture :" - Label31.Text = "ID de la ressource :" - Label41.Text = "Version :" - Label43.Text = "Est-il enregistré au nom d'un utilisateur ?" - Label4.Text = "Répertoire d'installation :" - Label6.Text = "Emplacement du manifeste du paquet :" - Label8.Text = "Répertoire du logo du magasin :" - Label9.Text = "Logo du magasin principal :" - Label10.Text = "Ce bien a été deviné par DISMTools sur la base de sa taille, ce qui peut conduire à un résultat incorrect. Si cela se produit, veuillez signaler un problème sur le dépôt GitHub." - LinkLabel1.Text = "Cette ressource n'est pas celle que je recherche" - Button2.Text = "Sauvegarder..." - SearchBox1.cueBanner = "Tapez ici pour rechercher une application..." - Case 4 - Text = "Obter informações do pacote AppX" - ImageTaskHeader1.ItemText = Text - Label36.Text = "Informações do pacote AppX" - Label37.Text = "Seleccione um pacote AppX instalado à esquerda para ver as suas informações aqui" - Label22.Text = "Nome do pacote:" - Label24.Text = "Nome de apresentação da aplicação:" - Label26.Text = "Arquitetura:" - Label31.Text = "ID do recurso:" - Label41.Text = "Versão:" - Label43.Text = "Está registada para algum utilizador?" - Label4.Text = "Diretório de instalação:" - Label6.Text = "Localização do manifesto do pacote:" - Label8.Text = "Diretório de activos do logótipo da loja:" - Label9.Text = "Ativo do logótipo principal da loja:" - Label10.Text = "Este ativo foi adivinhado pelo DISMTools com base no seu tamanho, o que pode conduzir a um resultado incorreto. Se isso acontecer, comunique um problema no repositório do GitHub" - LinkLabel1.Text = "Este recurso não é o que estou à procura" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Digite aqui para pesquisar uma aplicação..." - Case 5 - Text = "Verifica informazioni sul pacchetto AppX" - ImageTaskHeader1.ItemText = Text - Label36.Text = "Informazioni pacchetti AppX" - Label37.Text = "Seleziona un pacchetto AppX installato a sinistra per visualizzarne qui le informazioni" - Label22.Text = "Nome pacchetto:" - Label24.Text = "Nome applicazione visualizzato:" - Label26.Text = "Architettura:" - Label31.Text = "ID risorsa:" - Label41.Text = "Versione:" - Label43.Text = "È registrato a qualche utente?" - Label4.Text = "Cartella installazione:" - Label6.Text = "Percorso manifesto pacchetto:" - Label8.Text = "Cartella risorse logo negozio:" - Label9.Text = "Asset principale logo negozio:" - Label10.Text = "Questa risorsa è stata rilevata da DISMTools in base alle sue dimensioni, il che può portare ad un risultato errato. Se ciò accade, segnala il problema nel repository GitHub" - LinkLabel1.Text = "Questa risorsa non è quella cercata" - Button2.Text = "Salva..." - SearchBox1.cueBanner = "Digita qui per cercare un'applicazione..." - End Select + Text = LocalizationService.ForSection("Get.AppX")("AppX.Package.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("Get.AppX").Format("Image.Task.Header.Label", Text) + Label36.Text = LocalizationService.ForSection("Get.AppX")("AppX.Package.Label.Label") + Label37.Text = LocalizationService.ForSection("Get.AppX")("Installed.AppX.Label") + Label22.Text = LocalizationService.ForSection("Get.AppX")("PackageName.Label") + Label24.Text = LocalizationService.ForSection("Get.AppX")("Display.Name.Label") + Label26.Text = LocalizationService.ForSection("Get.AppX")("Architecture.Label") + Label31.Text = LocalizationService.ForSection("Get.AppX")("ResourceID.Label") + Label41.Text = LocalizationService.ForSection("Get.AppX")("Version.Label") + Label43.Text = LocalizationService.ForSection("Get.AppX")("Registered.User.Label") + Label4.Text = LocalizationService.ForSection("Get.AppX")("Install.Dir.Label") + Label6.Text = LocalizationService.ForSection("Get.AppX")("Package.Manifest.Label") + Label8.Text = LocalizationService.ForSection("Get.AppX")("StoreLogo.Asset.Dir.Label") + Label9.Text = LocalizationService.ForSection("Get.AppX")("Main.StoreLogo.Asset.Label") + Label10.Text = LocalizationService.ForSection("Get.AppX")("Asset.Guessed.DISM.Message") + LinkLabel1.Text = LocalizationService.ForSection("Get.AppX")("Asset.One.IM.Link") + Button2.Text = LocalizationService.ForSection("Get.AppX")("Save.Button") + SearchBox1.cueBanner = LocalizationService.ForSection("Get.AppX")("Type.Search.Label") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -391,31 +214,7 @@ Public Class GetAppxPkgInfoDlg End If If IsPackageRegistered Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label42.Text = "Yes" - Case "ESN" - Label42.Text = "Sí" - Case "FRA" - Label42.Text = "Oui" - Case "PTB", "PTG" - Label42.Text = "Sim" - Case "ITA" - Label42.Text = "Sì" - End Select - Case 1 - Label42.Text = "Yes" - Case 2 - Label42.Text = "Sí" - Case 3 - Label42.Text = "Oui" - Case 4 - Label42.Text = "Sim" - Case 5 - Label42.Text = "Sì" - End Select + Label42.Text = LocalizationService.ForSection("Get.AppX.PackageList")("Yes.Button") If MainForm.OnlineManagement AndAlso Not MainForm.NoNTSamMappings Then DynaLog.LogMessage("Online installation management mode has been detected and we're expected to map SAM information. Proceeding...") Try @@ -429,31 +228,7 @@ Public Class GetAppxPkgInfoDlg End Try End If Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label42.Text = "No" - Case "ESN" - Label42.Text = "No" - Case "FRA" - Label42.Text = "Non" - Case "PTB", "PTG" - Label42.Text = "Não" - Case "ITA" - Label42.Text = "No" - End Select - Case 1 - Label42.Text = "No" - Case 2 - Label42.Text = "No" - Case 3 - Label42.Text = "Non" - Case 4 - Label42.Text = "Não" - Case 5 - Label42.Text = "No" - End Select + Label42.Text = LocalizationService.ForSection("Get.AppX.PackageList")("No.Button") End If DynaLog.LogMessage("Getting AppX main Store logo asset...") @@ -546,7 +321,7 @@ Public Class GetAppxPkgInfoDlg End If Catch ex As Exception DynaLog.LogMessage("Could not get some information about this application. Error message: " & ex.Message) - MsgBox("Could not get some information about this application.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("AppxPackages.Info.Messages")("Get.Label"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) End Try Panel4.Visible = True Panel7.Visible = False diff --git a/Panels/Get_Ops/Capabilities/GetCapabilityInfo.Designer.vb b/Panels/Get_Ops/Capabilities/GetCapabilityInfo.Designer.vb index 106aa90af..594a6ef8c 100644 --- a/Panels/Get_Ops/Capabilities/GetCapabilityInfo.Designer.vb +++ b/Panels/Get_Ops/Capabilities/GetCapabilityInfo.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class GetCapabilityInfoDlg Inherits System.Windows.Forms.Form @@ -82,7 +82,7 @@ Partial Class GetCapabilityInfoDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(38, 13) Me.Label2.TabIndex = 9 - Me.Label2.Text = "Ready" + Me.Label2.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("Ready.Label") ' 'FeatureInfoPanel ' @@ -138,12 +138,12 @@ Partial Class GetCapabilityInfoDlg ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Capability identity" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("Identity.Column") Me.ColumnHeader1.Width = 298 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "State" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("State.Column") Me.ColumnHeader2.Width = 118 ' 'SearchPanel @@ -254,7 +254,7 @@ Partial Class GetCapabilityInfoDlg Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(97, 13) Me.Label22.TabIndex = 0 - Me.Label22.Text = "Capability identity:" + Me.Label22.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("Identity.Label") ' 'Label23 ' @@ -264,7 +264,7 @@ Partial Class GetCapabilityInfoDlg Me.Label23.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label23.Size = New System.Drawing.Size(38, 15) Me.Label23.TabIndex = 0 - Me.Label23.Text = "Label8" + Me.Label23.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("DynamicValue.Label") Me.Label23.UseMnemonic = False ' 'Label24 @@ -275,7 +275,7 @@ Partial Class GetCapabilityInfoDlg Me.Label24.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label24.Size = New System.Drawing.Size(87, 17) Me.Label24.TabIndex = 0 - Me.Label24.Text = "Capability name:" + Me.Label24.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("CapabilityName.Label") ' 'Label25 ' @@ -286,7 +286,7 @@ Partial Class GetCapabilityInfoDlg Me.Label25.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label25.Size = New System.Drawing.Size(38, 15) Me.Label25.TabIndex = 0 - Me.Label25.Text = "Label8" + Me.Label25.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("DynamicValue.Label") Me.Label25.UseMnemonic = False ' 'Label26 @@ -297,7 +297,7 @@ Partial Class GetCapabilityInfoDlg Me.Label26.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label26.Size = New System.Drawing.Size(86, 17) Me.Label26.TabIndex = 0 - Me.Label26.Text = "Capability state:" + Me.Label26.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("CapabilityState.Label") ' 'Label35 ' @@ -308,7 +308,7 @@ Partial Class GetCapabilityInfoDlg Me.Label35.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label35.Size = New System.Drawing.Size(38, 15) Me.Label35.TabIndex = 0 - Me.Label35.Text = "Label8" + Me.Label35.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("DynamicValue.Label") Me.Label35.UseMnemonic = False ' 'Label31 @@ -319,7 +319,7 @@ Partial Class GetCapabilityInfoDlg Me.Label31.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label31.Size = New System.Drawing.Size(74, 17) Me.Label31.TabIndex = 0 - Me.Label31.Text = "Display name:" + Me.Label31.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("DisplayName.Label") ' 'Label32 ' @@ -330,7 +330,7 @@ Partial Class GetCapabilityInfoDlg Me.Label32.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label32.Size = New System.Drawing.Size(38, 15) Me.Label32.TabIndex = 0 - Me.Label32.Text = "Label8" + Me.Label32.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("DynamicValue.Label") Me.Label32.UseMnemonic = False ' 'Label41 @@ -341,7 +341,7 @@ Partial Class GetCapabilityInfoDlg Me.Label41.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label41.Size = New System.Drawing.Size(113, 17) Me.Label41.TabIndex = 0 - Me.Label41.Text = "Capability description:" + Me.Label41.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("Description.Label") ' 'Label40 ' @@ -352,7 +352,7 @@ Partial Class GetCapabilityInfoDlg Me.Label40.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label40.Size = New System.Drawing.Size(38, 15) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Label8" + Me.Label40.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("DynamicValue.Label") Me.Label40.UseMnemonic = False ' 'Label43 @@ -363,7 +363,7 @@ Partial Class GetCapabilityInfoDlg Me.Label43.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label43.Size = New System.Drawing.Size(35, 17) Me.Label43.TabIndex = 0 - Me.Label43.Text = "Sizes:" + Me.Label43.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("Sizes.Label") ' 'Label42 ' @@ -374,7 +374,7 @@ Partial Class GetCapabilityInfoDlg Me.Label42.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label42.Size = New System.Drawing.Size(38, 15) Me.Label42.TabIndex = 0 - Me.Label42.Text = "Label8" + Me.Label42.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("DynamicValue.Label") Me.Label42.UseMnemonic = False ' 'Label55 @@ -405,7 +405,7 @@ Partial Class GetCapabilityInfoDlg Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(436, 36) Me.Label36.TabIndex = 0 - Me.Label36.Text = "Capability information" + Me.Label36.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("CapabilityInfo.Label") Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel7 @@ -425,7 +425,7 @@ Partial Class GetCapabilityInfoDlg Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(436, 396) Me.Label37.TabIndex = 0 - Me.Label37.Text = "Select an installed capability on the left to view its information here" + Me.Label37.Text = LocalizationService.ForSection("Designer.GetCapInfo")("SelectCapability.Label") Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'FlowLayoutPanel4 @@ -443,7 +443,7 @@ Partial Class GetCapabilityInfoDlg Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(96, 23) Me.Button2.TabIndex = 10 - Me.Button2.Text = "Save..." + Me.Button2.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("Save.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -453,7 +453,7 @@ Partial Class GetCapabilityInfoDlg Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(152, 23) Me.Button1.TabIndex = 11 - Me.Button1.Text = "Look this item online" + Me.Button1.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("Look.Item.Online.Button") Me.Button1.UseVisualStyleBackColor = True Me.Button1.Visible = False ' @@ -488,7 +488,7 @@ Partial Class GetCapabilityInfoDlg Me.Name = "GetCapabilityInfoDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Get capability information" + Me.Text = LocalizationService.ForSection("Designer.CapabilityInfo")("Get.Label") Me.FeatureInfoPanel.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) diff --git a/Panels/Get_Ops/Capabilities/GetCapabilityInfo.vb b/Panels/Get_Ops/Capabilities/GetCapabilityInfo.vb index 3e5b4f5bb..fa9835b53 100644 --- a/Panels/Get_Ops/Capabilities/GetCapabilityInfo.vb +++ b/Panels/Get_Ops/Capabilities/GetCapabilityInfo.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.Threading Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Dism @@ -18,171 +18,21 @@ Public Class GetCapabilityInfoDlg ListView1.ForeColor = ForeColor SearchPic.Image = GetGlyphResource("search") WizardBtn.Image = GetGlyphResource("assistant") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Get capability information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ready" - Label22.Text = "Capability identity:" - Label24.Text = "Capability name:" - Label26.Text = "Capability state:" - Label31.Text = "Display name:" - Label36.Text = "Capability information" - Label37.Text = "Select an installed capability on the left to view its information here" - Label41.Text = "Capability description:" - Label43.Text = "Sizes:" - ListView1.Columns(0).Text = "Capability identity" - ListView1.Columns(1).Text = "State" - Button2.Text = "Save..." - SearchBox1.cueBanner = "Type here to search for a capability..." - Case "ESN" - Text = "Obtener información de funcionalidades" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Listo" - Label22.Text = "Identidad de la funcionalidad:" - Label24.Text = "Nombre de la funcionalidad:" - Label26.Text = "Estado de la funcionalidad:" - Label31.Text = "Nombre para mostrar" - Label36.Text = "Información de la funcionalidad" - Label37.Text = "Seleccione una funcionalidad instalada en la izquierda para ver su información aquí" - Label41.Text = "Descripción de la funcionalidad" - Label43.Text = "Tamaños:" - ListView1.Columns(0).Text = "Identidad de funcionalidad" - ListView1.Columns(1).Text = "Estado" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Escriba aquí para buscar una funcionalidad..." - Case "FRA" - Text = "Obtenir des informations sur les capacités" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Prêt" - Label22.Text = "Identité de la capacité :" - Label24.Text = "Nom de la capacité :" - Label26.Text = "État de la capacité :" - Label31.Text = "Nom d'affichage :" - Label36.Text = "Informations sur la capacité" - Label37.Text = "Sélectionnez une capacité installée sur la gauche pour afficher les informations correspondantes ici." - Label41.Text = "Description de la capacité :" - Label43.Text = "Tailles :" - ListView1.Columns(0).Text = "Identité de la capacité" - ListView1.Columns(1).Text = "État" - Button2.Text = "Sauvegarder..." - SearchBox1.cueBanner = "Tapez ici pour rechercher une capacité..." - Case "PTB", "PTG" - Text = "Obter informações sobre as capacidades" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Pronto" - Label22.Text = "Identidade da capacidade:" - Label24.Text = "Nome da capacidade:" - Label26.Text = "Estado da capacidade:" - Label31.Text = "Nome de apresentação:" - Label36.Text = "Informação sobre a capacidade" - Label37.Text = "Seleccione uma capacidade instalada à esquerda para ver a sua informação aqui" - Label41.Text = "Descrição da capacidade:" - Label43.Text = "Tamanhos:" - ListView1.Columns(0).Text = "Identidade da capacidade" - ListView1.Columns(1).Text = "Estado" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Digite aqui para pesquisar uma capacidade..." - Case "ITA" - Text = "Verifica informazioni capacità" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Pronto" - Label22.Text = "Identità capacità:" - Label24.Text = "Nome capacità:" - Label26.Text = "Stato capacità:" - Label31.Text = "Nome visualizzato:" - Label36.Text = "Informazioni sulla capacità" - Label37.Text = "Seleziona una capacità installata a sinistra per visualizzarne qui le informazioni" - Label41.Text = "Descrizione capacità:" - Label43.Text = "Dimensioni:" - ListView1.Columns(0).Text = "Identità capacità" - ListView1.Columns(1).Text = "Stato" - Button2.Text = "Salva..." - SearchBox1.cueBanner = "Digita qui per cercare una capacità..." - End Select - Case 1 - Text = "Get capability information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ready" - Label22.Text = "Capability identity:" - Label24.Text = "Capability name:" - Label26.Text = "Capability state:" - Label31.Text = "Display name:" - Label36.Text = "Capability information" - Label37.Text = "Select an installed capability on the left to view its information here" - Label41.Text = "Capability description:" - Label43.Text = "Sizes:" - ListView1.Columns(0).Text = "Capability identity" - ListView1.Columns(1).Text = "State" - Button2.Text = "Save..." - SearchBox1.cueBanner = "Type here to search for a capability..." - Case 2 - Text = "Obtener información de funcionalidades" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Listo" - Label22.Text = "Identidad de la funcionalidad:" - Label24.Text = "Nombre de la funcionalidad:" - Label26.Text = "Estado de la funcionalidad:" - Label31.Text = "Nombre para mostrar" - Label36.Text = "Información de la funcionalidad" - Label37.Text = "Seleccione una funcionalidad instalada en la izquierda para ver su información aquí" - Label41.Text = "Descripción de la funcionalidad" - Label43.Text = "Tamaños:" - ListView1.Columns(0).Text = "Identidad de funcionalidad" - ListView1.Columns(1).Text = "Estado" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Escriba aquí para buscar una funcionalidad..." - Case 3 - Text = "Obtenir des informations sur les capacités" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Prêt" - Label22.Text = "Identité de la capacité :" - Label24.Text = "Nom de la capacité :" - Label26.Text = "État de la capacité :" - Label31.Text = "Nom d'affichage :" - Label36.Text = "Informations sur la capacité" - Label37.Text = "Sélectionnez une capacité installée sur la gauche pour afficher les informations correspondantes ici." - Label41.Text = "Description de la capacité :" - Label43.Text = "Tailles :" - ListView1.Columns(0).Text = "Identité de la capacité" - ListView1.Columns(1).Text = "État" - Button2.Text = "Sauvegarder..." - SearchBox1.cueBanner = "Tapez ici pour rechercher une capacité..." - Case 4 - Text = "Obter informações sobre as capacidades" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Pronto" - Label22.Text = "Identidade da capacidade:" - Label24.Text = "Nome da capacidade:" - Label26.Text = "Estado da capacidade:" - Label31.Text = "Nome de apresentação:" - Label36.Text = "Informação sobre a capacidade" - Label37.Text = "Seleccione uma capacidade instalada à esquerda para ver a sua informação aqui" - Label41.Text = "Descrição da capacidade:" - Label43.Text = "Tamanhos:" - ListView1.Columns(0).Text = "Identidade da capacidade" - ListView1.Columns(1).Text = "Estado" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Digite aqui para pesquisar uma capacidade..." - Case 5 - Text = "Verifica informazioni capacità" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Pronto" - Label22.Text = "Identità capacità:" - Label24.Text = "Nome capacità:" - Label26.Text = "Stato capacità:" - Label31.Text = "Nome visualizzato:" - Label36.Text = "Informazioni capacità" - Label37.Text = "Seleziona una capacità installata a sinistra per visualizzarne qui le informazioni" - Label41.Text = "Descrizione capacità:" - Label43.Text = "Dimensioni:" - ListView1.Columns(0).Text = "Identità capacità" - ListView1.Columns(1).Text = "Stato" - Button2.Text = "Salva..." - SearchBox1.cueBanner = "Digita qui per cercare una capacità..." - End Select + Text = LocalizationService.ForSection("CapabilityInfo")("Get.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("CapabilityInfo").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("CapabilityInfo")("Ready.Label") + Label22.Text = LocalizationService.ForSection("CapabilityInfo")("Identity.Label") + Label24.Text = LocalizationService.ForSection("CapabilityInfo")("CapabilityName.Label") + Label26.Text = LocalizationService.ForSection("CapabilityInfo")("CapabilityState.Label") + Label31.Text = LocalizationService.ForSection("CapabilityInfo")("DisplayName.Label") + Label36.Text = LocalizationService.ForSection("CapabilityInfo")("CapabilityInfo.Label") + Label37.Text = LocalizationService.ForSection("GetCapInfo")("SelectCapability.Label") + Label41.Text = LocalizationService.ForSection("CapabilityInfo")("Description.Label") + Label43.Text = LocalizationService.ForSection("CapabilityInfo")("Sizes.Label") + ListView1.Columns(0).Text = LocalizationService.ForSection("CapabilityInfo")("Identity.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("CapabilityInfo")("State.Column") + Button2.Text = LocalizationService.ForSection("CapabilityInfo")("Save.Button") + SearchBox1.cueBanner = LocalizationService.ForSection("CapabilityInfo")("Type.Search.Label") If SplitContainer2.SplitterDistance = 440 Then SplitContainer2.SplitterDistance = WindowHelper.ScaleLogical(SplitContainer2.SplitterDistance) End If @@ -217,119 +67,23 @@ Public Class GetCapabilityInfoDlg If MainForm.ImgBW.IsBusy Then DynaLog.LogMessage("Background processes are busy. Stopping them...") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes need to have completed before showing feature information. We'll wait until they have completed" - Case "ESN" - msg = "Los procesos en segundo plano deben haber completado antes de obtener información de la característica. Esperaremos hasta que hayan completado" - Case "FRA" - msg = "Les processus en plan doivent être terminés avant d'afficher les caractéristiques. Nous attendrons qu'ils soient terminés" - Case "PTB", "PTG" - msg = "Os processos em segundo plano têm de estar concluídos antes de mostrar informações sobre as características. Vamos esperar até que estejam concluídos" - Case "ITA" - msg = "Prima di poter visualizzare le informazioni sulle funzionalità devono essere stati completati i processi in background. Attendi che siano completati" - End Select - Case 1 - msg = "Background processes need to have completed before showing feature information. We'll wait until they have completed" - Case 2 - msg = "Los procesos en segundo plano deben haber completado antes de obtener información de la característica. Esperaremos hasta que hayan completado" - Case 3 - msg = "Les processus en plan doivent être terminés avant d'afficher les caractéristiques. Nous attendrons qu'ils soient terminés" - Case 4 - msg = "Os processos em segundo plano têm de estar concluídos antes de mostrar informações sobre as características. Vamos esperar até que estejam concluídos" - Case 5 - msg = "Prima di poter visualizzare le informazioni sulle funzionalità devono essere stati completati i processi in background. Attendi che siano completati" - End Select + msg = LocalizationService.ForSection("CapabilityInfo")("Wait.Background.Message") MsgBox(msg, vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Waiting for background processes to finish..." - Case "ESN" - Label2.Text = "Esperando a que terminen los procesos en segundo plano..." - Case "FRA" - Label2.Text = "Attente de la fin des processus en arrière plan..." - Case "PTB", "PTG" - Label2.Text = "À espera que os processos em segundo plano terminem..." - Case "ITA" - Label2.Text = "In attesa del completamento che i processi in background..." - End Select - Case 1 - Label2.Text = "Waiting for background processes to finish..." - Case 2 - Label2.Text = "Esperando a que terminen los procesos en segundo plano..." - Case 3 - Label2.Text = "Attente de la fin des processus en arrière plan..." - Case 4 - Label2.Text = "À espera que os processos em segundo plano terminem..." - Case 5 - Label2.Text = "In attesa del completamento che i processi in background..." - End Select + Label2.Text = LocalizationService.ForSection("CapabilityInfo")("Waiting.Background.Label") While MainForm.ImgBW.IsBusy Application.DoEvents() Thread.Sleep(500) End While End If MainForm.StopMountedImageDetector() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Preparing to get capability information..." - Case "ESN" - Label2.Text = "Preparándonos para obtener información de la funcionalidad..." - Case "FRA" - Label2.Text = "Préparation de l'obtention des informations de la capacité en cours..." - Case "PTB", "PTG" - Label2.Text = "Preparar-se para obter informações sobre a capacidade..." - Case "ITA" - Label2.Text = "Preparazione verifica informazioni sulle capacità..." - End Select - Case 1 - Label2.Text = "Preparing to get capability information..." - Case 2 - Label2.Text = "Preparándonos para obtener información de la funcionalidad..." - Case 3 - Label2.Text = "Préparation de l'obtention des informations de la capacité en cours..." - Case 4 - Label2.Text = "Preparar-se para obter informações sobre a capacidade..." - Case 5 - Label2.Text = "Preparazione verifica informazioni sulle capacità..." - End Select + Label2.Text = LocalizationService.ForSection("CapabilityInfo")("Prepare.Cap.Item") Application.DoEvents() Try DynaLog.LogMessage("Initializing API...") DismApi.Initialize(DismLogLevel.LogErrors) DynaLog.LogMessage("Creating session...") Using imgSession As DismSession = If(MainForm.OnlineManagement, DismApi.OpenOnlineSession(), DismApi.OpenOfflineSession(MainForm.MountDir)) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Getting information from " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case "ESN" - Label2.Text = "Obteniendo información de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case "FRA" - Label2.Text = "Obtention des informations de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & " en cours..." - Case "PTB", "PTG" - Label2.Text = "Obter informações de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case "ITA" - Label2.Text = "Verifica informazioni da " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - End Select - Case 1 - Label2.Text = "Getting information from " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case 2 - Label2.Text = "Obteniendo información de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case 3 - Label2.Text = "Obtention des informations de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & " en cours..." - Case 4 - Label2.Text = "Obter informações de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case 5 - Label2.Text = "Verifica informazioni da " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - End Select + Label2.Text = LocalizationService.ForSection("CapabilityInfo").Format("GettingInfo.Item", ListView1.FocusedItem.SubItems(0).Text) DynaLog.LogMessage("Capability to get information about: " & ListView1.FocusedItem.SubItems(0).Text) Application.DoEvents() Dim capInfo As DismCapabilityInfo = DismApi.GetCapabilityInfo(imgSession, ListView1.FocusedItem.SubItems(0).Text) @@ -338,41 +92,12 @@ Public Class GetCapabilityInfoDlg Label35.Text = Casters.CastDismPackageState(capInfo.State, True) Label32.Text = capInfo.DisplayName Label40.Text = capInfo.Description - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label42.Text = "Download size: " & capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", "") & CrLf & _ - "Install size: " & capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", "") - Case "ESN" - Label42.Text = "Tamaño de descarga: " & capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", "") & CrLf & _ - "Tamaño de instalación: " & capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", "") - Case "FRA" - Label42.Text = "Taille du téléchargement : " & capInfo.DownloadSize & " octets" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize, True) & ")", "") & CrLf & _ - "Taille d'installation : " & capInfo.InstallSize & " octets" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize, True) & ")", "") - Case "PTB", "PTG" - Label42.Text = "Tamanho do descarregamento: " & capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", "") & CrLf & _ - "Tamanho da instalação: " & capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", "") - Case "ITA" - Label42.Text = "Dimensione del download: " & capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", "") & CrLf & _ - "Dimensione installazione: " & capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", "") - End Select - Case 1 - Label42.Text = "Download size: " & capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", "") & CrLf & _ - "Install size: " & capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", "") - Case 2 - Label42.Text = "Tamaño de descarga: " & capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", "") & CrLf & _ - "Tamaño de instalación: " & capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", "") - Case 3 - Label42.Text = "Taille du téléchargement : " & capInfo.DownloadSize & " octets" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize, True) & ")", "") & CrLf & _ - "Taille d'installation : " & capInfo.InstallSize & " octets" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize, True) & ")", "") - Case 4 - Label42.Text = "Tamanho do descarregamento: " & capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", "") & CrLf & _ - "Tamanho da instalação: " & capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", "") - Case 5 - Label42.Text = "Dimensione del download: " & capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", "") & CrLf & _ - "Dimensione installazione: " & capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", "") - End Select + Dim isFrenchSizeText As Boolean = LocalizationService.CurrentCultureCode.Equals("fr-FR", StringComparison.OrdinalIgnoreCase) + Dim downloadReadableSize As String = If(isFrenchSizeText, Converters.BytesToReadableSize(capInfo.DownloadSize, True), Converters.BytesToReadableSize(capInfo.DownloadSize)) + Dim installReadableSize As String = If(isFrenchSizeText, Converters.BytesToReadableSize(capInfo.InstallSize, True), Converters.BytesToReadableSize(capInfo.InstallSize)) + Dim downloadReadableSuffix As String = If(capInfo.DownloadSize >= 1024, LocalizationService.ForSection("CapabilityInfo").Format("ReadableSize.Suffix", downloadReadableSize), "") + Dim installReadableSuffix As String = If(capInfo.InstallSize >= 1024, LocalizationService.ForSection("CapabilityInfo").Format("ReadableSize.Suffix", installReadableSize), "") + Label42.Text = LocalizationService.ForSection("CapabilityInfo").Format("Download.Size.Bytes.Label", capInfo.DownloadSize, downloadReadableSuffix, capInfo.InstallSize, installReadableSuffix) End Using Catch NRE As NullReferenceException Panel4.Visible = False @@ -380,31 +105,7 @@ Public Class GetCapabilityInfoDlg Catch ex As Exception DynaLog.LogMessage("Could not get capability information. Error message: " & ex.Message) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Could not get capability information. Reason: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ESN" - msg = "No pudimos obtener información de la funcionalidad. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "FRA" - msg = "Impossible d'obtenir des informations sur les capacités. Raison : " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "PTB", "PTG" - msg = "Não foi possível obter informações sobre a capacidade. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ITA" - msg = "Impossibile verificare informazioni sulle capacità. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select - Case 1 - msg = "Could not get capability information. Reason: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 2 - msg = "No pudimos obtener información de la funcionalidad. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 3 - msg = "Impossible d'obtenir des informations sur les capacités. Raison : " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 4 - msg = "Não foi possível obter informações sobre a capacidade. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 5 - msg = "Impossibile verificare informazioni sulle capacità. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select + msg = LocalizationService.ForSection("CapabilityInfo").Format("Get.Reason.Message", ex.ToString(), ex.Message, Hex(ex.HResult)) MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally DynaLog.LogMessage("Shutting down API...") @@ -414,31 +115,7 @@ Public Class GetCapabilityInfoDlg End Try End Try - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Ready" - Case "ESN" - Label2.Text = "Listo" - Case "FRA" - Label2.Text = "Prêt" - Case "PTB", "PTG" - Label2.Text = "Pronto" - Case "ITA" - Label2.Text = "Pronto" - End Select - Case 1 - Label2.Text = "Ready" - Case 2 - Label2.Text = "Listo" - Case 3 - Label2.Text = "Prêt" - Case 4 - Label2.Text = "Pronto" - Case 5 - Label2.Text = "Pronto" - End Select + Label2.Text = LocalizationService.ForSection("CapabilityInfo")("Ready.Item") Panel4.Visible = True Panel7.Visible = False Else @@ -584,6 +261,6 @@ Public Class GetCapabilityInfoDlg End Sub Private Sub WizardBtn_MouseHover(sender As Object, e As EventArgs) Handles WizardBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Build query with the Assistant...") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("CapabilityInfo")("Build.Query.Assistant.Label")) End Sub End Class diff --git a/Panels/Get_Ops/Drivers/DriverFileInfoDlg.Designer.vb b/Panels/Get_Ops/Drivers/DriverFileInfoDlg.Designer.vb index ad7642473..923080563 100644 --- a/Panels/Get_Ops/Drivers/DriverFileInfoDlg.Designer.vb +++ b/Panels/Get_Ops/Drivers/DriverFileInfoDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class DriverFileInfoDlg Inherits System.Windows.Forms.Form @@ -55,7 +55,7 @@ Partial Class DriverFileInfoDlg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.DriverFileInfo")("Ok.Button") ' 'Copy_Button ' @@ -66,7 +66,7 @@ Partial Class DriverFileInfoDlg Me.Copy_Button.Name = "Copy_Button" Me.Copy_Button.Size = New System.Drawing.Size(67, 23) Me.Copy_Button.TabIndex = 1 - Me.Copy_Button.Text = "Copy" + Me.Copy_Button.Text = LocalizationService.ForSection("Designer.DriverFileInfo")("Copy.Button") ' 'ListView1 ' @@ -83,12 +83,12 @@ Partial Class DriverFileInfoDlg ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Property" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.DriverFileInfo")("Property.Column") Me.ColumnHeader1.Width = 117 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Value" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.DriverFileInfo")("Value.Column") Me.ColumnHeader2.Width = 327 ' 'Label1 @@ -100,7 +100,7 @@ Partial Class DriverFileInfoDlg Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 13) Me.Label1.TabIndex = 2 - Me.Label1.Text = "Information of driver file:" + Me.Label1.Text = LocalizationService.ForSection("Designer.DriverFileInfo")("Driver.File.Label") ' 'DriverFileInfoDlg ' @@ -118,7 +118,7 @@ Partial Class DriverFileInfoDlg Me.Name = "DriverFileInfoDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Driver file information" + Me.Text = LocalizationService.ForSection("Designer.DriverFileInfo")("Driver.File.Label.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Get_Ops/Drivers/DriverFileInfoDlg.vb b/Panels/Get_Ops/Drivers/DriverFileInfoDlg.vb index dcd6a1324..4c08afc5a 100644 --- a/Panels/Get_Ops/Drivers/DriverFileInfoDlg.vb +++ b/Panels/Get_Ops/Drivers/DriverFileInfoDlg.vb @@ -27,7 +27,7 @@ Public Class DriverFileInfoDlg "Class GUID: " & drvPkg.ClassGuid & CrLf & _ "Provider name: " & drvPkg.ProviderName & CrLf & _ "Date: " & drvPkg.Date & CrLf & _ - "Signature status: " & Casters.CastDismSignatureStatus(drvPkg.DriverSignature) & CrLf & _ + "Signature status: " & Casters.SignatureStatus(drvPkg.DriverSignature) & CrLf & _ "Catalog file: " & drvPkg.CatalogFile Dim data As New DataObject() data.SetText(clipStr, TextDataFormat.Text) @@ -36,81 +36,12 @@ Public Class DriverFileInfoDlg End Sub Private Sub DriverFileInfoDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Driver file information" - Label1.Text = "Information of driver file: " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Property" - ListView1.Columns(1).Text = "Value" - OK_Button.Text = "OK" - Copy_Button.Text = "Copy" - Case "ESN" - Text = "Información del archivo de controlador" - Label1.Text = "Información del archivo de controlador: " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Propiedad" - ListView1.Columns(1).Text = "Valor" - OK_Button.Text = "Aceptar" - Copy_Button.Text = "Copiar" - Case "FRA" - Text = "Informations sur le fichier du pilote" - Label1.Text = "Informations sur le fichier du pilote : " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Propriété" - ListView1.Columns(1).Text = "Valeur" - OK_Button.Text = "OK" - Copy_Button.Text = "Copier" - Case "PTB", "PTG" - Text = "Informações sobre o ficheiro do controlador" - Label1.Text = "Informações do ficheiro do controlador: " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Propriedade" - ListView1.Columns(1).Text = "Valor" - OK_Button.Text = "OK" - Copy_Button.Text = "Copiar" - Case "ITA" - Text = "Informazioni file driver" - Label1.Text = "Informazioni file driver: " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Proprietà" - ListView1.Columns(1).Text = "Valore" - OK_Button.Text = "OK" - Copy_Button.Text = "Copia" - End Select - Case 1 - Text = "Driver file information" - Label1.Text = "Information of driver file: " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Property" - ListView1.Columns(1).Text = "Value" - OK_Button.Text = "OK" - Copy_Button.Text = "Copy" - Case 2 - Text = "Información del archivo de controlador" - Label1.Text = "Información del archivo de controlador: " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Propiedad" - ListView1.Columns(1).Text = "Valor" - OK_Button.Text = "Aceptar" - Copy_Button.Text = "Copiar" - Case 3 - Text = "Informations sur le fichier du pilote" - Label1.Text = "Informations sur le fichier du pilote : " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Propriété" - ListView1.Columns(1).Text = "Valeur" - OK_Button.Text = "OK" - Copy_Button.Text = "Copier" - Case 4 - Text = "Informações sobre o ficheiro do controlador" - Label1.Text = "Informações do ficheiro do controlador: " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Propriedade" - ListView1.Columns(1).Text = "Valor" - OK_Button.Text = "OK" - Copy_Button.Text = "Copiar" - Case 5 - Text = "Informazioni file driver" - Label1.Text = "Informazioni file driver: " & Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex)) - ListView1.Columns(0).Text = "Proprietà" - ListView1.Columns(1).Text = "Valore" - OK_Button.Text = "OK" - Copy_Button.Text = "Copia" - End Select + Text = LocalizationService.ForSection("DriverFileInfo")("Driver.File.Label") + Label1.Text = LocalizationService.ForSection("DriverFileInfo").Format("Driver.File.Label.Label", Path.GetFileName(GetDriverInfo.ListBox1.Items(GetDriverInfo.ListBox1.SelectedIndex))) + ListView1.Columns(0).Text = LocalizationService.ForSection("DriverFileInfo")("Property.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("DriverFileInfo")("Value.Column") + OK_Button.Text = LocalizationService.ForSection("DriverFileInfo")("Ok.Button") + Copy_Button.Text = LocalizationService.ForSection("DriverFileInfo")("Copy.Button") ListView1.Items.Clear() drvPkg = Nothing Try @@ -131,146 +62,23 @@ Public Class DriverFileInfoDlg DriverDateString = drvPkg.Date.ToString("MM/dd/yyyy HH:mm:ss") End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ListView1.Items.Add(New ListViewItem(New String() {"Published name", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Original file name", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"Is critical to the boot process?", If(drvPkg.BootCritical, "Yes", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Is part of the Windows distribution?", If(drvPkg.InBox, "Yes", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Version", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Class name", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Class description", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"Class GUID", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Provider name", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Date", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"Signature status", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"Catalog file", drvPkg.CatalogFile})) - Case "ESN" - ListView1.Items.Add(New ListViewItem(New String() {"Nombre publicado", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Nombre original del archivo", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"¿Es crítico para el arranque?", If(drvPkg.BootCritical, "Sí", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"¿Es parte de la distribución de Windows?", If(drvPkg.InBox, "Sí", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Versión", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Nombre de clase", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Descripción de clase", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"GUID de clase", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Nombre del proveedor", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Fecha", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"Estado de firma del controlador", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"Archivo de catálogo", drvPkg.CatalogFile})) - Case "FRA" - ListView1.Items.Add(New ListViewItem(New String() {"Nom publiè", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Nom du fichier original", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"Est-il essentiel au processus de démarrage ?", If(drvPkg.BootCritical, "Oui", "Non")})) - ListView1.Items.Add(New ListViewItem(New String() {"Est-il partie de la distribution Windows ?", If(drvPkg.InBox, "Oui", "Non")})) - ListView1.Items.Add(New ListViewItem(New String() {"Version", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Nom de classe", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Description de classe", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"GUID de classe", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Nom du prestataire", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Date", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"État de la signature du pilote", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"Chemin d'accès au fichier de catalogue", drvPkg.CatalogFile})) - Case "PTB", "PTG" - ListView1.Items.Add(New ListViewItem(New String() {"Nome publicado", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome do ficheiro original", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"É fundamental para o processo de arranque?", If(drvPkg.BootCritical, "Sim", "Não")})) - ListView1.Items.Add(New ListViewItem(New String() {"Faz parte da distribuição do Windows?", If(drvPkg.InBox, "Sim", "Não")})) - ListView1.Items.Add(New ListViewItem(New String() {"Versão", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome da classe", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Descrição da classe", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"GUID da classe", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome do provedor", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Data", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"Estado da assinatura", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"Ficheiro de catálogo", drvPkg.CatalogFile})) - Case "ITA" - ListView1.Items.Add(New ListViewItem(New String() {"Nome pubblicato", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome file originale", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"È critico per il processo di avvio?", If(drvPkg.BootCritical, "Sì", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Fa parte della distribuzione di Windows?", If(drvPkg.InBox, "Sì", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Versione", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome classe", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Descrizione classe", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"GUID classe", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome provider", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Data", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"Stato firma", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"File catalogo", drvPkg.CatalogFile})) - End Select - Case 1 - ListView1.Items.Add(New ListViewItem(New String() {"Published name", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Original file name", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"Is critical to the boot process?", If(drvPkg.BootCritical, "Yes", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Is part of the Windows distribution?", If(drvPkg.InBox, "Yes", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Version", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Class name", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Class description", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"Class GUID", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Provider name", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Date", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"Signature status", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"Catalog file", drvPkg.CatalogFile})) - Case 2 - ListView1.Items.Add(New ListViewItem(New String() {"Nombre publicado", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Nombre original del archivo", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"¿Es crítico para el arranque?", If(drvPkg.BootCritical, "Sí", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"¿Es parte de la distribución de Windows?", If(drvPkg.InBox, "Sí", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Versión", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Nombre de clase", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Descripción de clase", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"GUID de clase", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Nombre del proveedor", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Fecha", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"Estado de firma del controlador", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"Archivo de catálogo", drvPkg.CatalogFile})) - Case 3 - ListView1.Items.Add(New ListViewItem(New String() {"Nom publiè", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Nom du fichier original", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"Est-il essentiel au processus de démarrage ?", If(drvPkg.BootCritical, "Oui", "Non")})) - ListView1.Items.Add(New ListViewItem(New String() {"Est-il partie de la distribution Windows ?", If(drvPkg.InBox, "Oui", "Non")})) - ListView1.Items.Add(New ListViewItem(New String() {"Version", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Nom de classe", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Description de classe", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"GUID de classe", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Nom du prestataire", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Date", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"État de la signature du pilote", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"Chemin d'accès au fichier de catalogue", drvPkg.CatalogFile})) - Case 4 - ListView1.Items.Add(New ListViewItem(New String() {"Nome publicado", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome do ficheiro original", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"É fundamental para o processo de arranque?", If(drvPkg.BootCritical, "Sim", "Não")})) - ListView1.Items.Add(New ListViewItem(New String() {"Faz parte da distribuição do Windows?", If(drvPkg.InBox, "Sim", "Não")})) - ListView1.Items.Add(New ListViewItem(New String() {"Versão", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome da classe", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Descrição da classe", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"GUID da classe", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome do provedor", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Data", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"Estado da assinatura", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"Ficheiro de catálogo", drvPkg.CatalogFile})) - Case 5 - ListView1.Items.Add(New ListViewItem(New String() {"Nome pubblicato", drvPkg.PublishedName})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome file originale", drvPkg.OriginalFileName})) - ListView1.Items.Add(New ListViewItem(New String() {"È critico per il processo di avvio?", If(drvPkg.BootCritical, "Sì", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Fa parte della distribuzione di Windows?", If(drvPkg.InBox, "Sì", "No")})) - ListView1.Items.Add(New ListViewItem(New String() {"Versione", drvPkg.Version.ToString()})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome classe", drvPkg.ClassName})) - ListView1.Items.Add(New ListViewItem(New String() {"Descrizione classe", drvPkg.ClassDescription})) - ListView1.Items.Add(New ListViewItem(New String() {"GUID classe", drvPkg.ClassGuid})) - ListView1.Items.Add(New ListViewItem(New String() {"Nome del provider", drvPkg.ProviderName})) - ListView1.Items.Add(New ListViewItem(New String() {"Data", DriverDateString})) - ListView1.Items.Add(New ListViewItem(New String() {"Stato firma", Casters.CastDismSignatureStatus(drvPkg.DriverSignature, True)})) - ListView1.Items.Add(New ListViewItem(New String() {"File catalogo", drvPkg.CatalogFile})) - End Select + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("PublishedName.Label"), drvPkg.PublishedName})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("Original.File.Name.Label"), drvPkg.OriginalFileName})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("Critical.Boot.Process.Label"), If(drvPkg.BootCritical, LocalizationService.ForSection("DriverFileInfo")("Yes.Button"), LocalizationService.ForSection("DriverFileInfo")("No.Button"))})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("Part.Windows.Label"), If(drvPkg.InBox, LocalizationService.ForSection("DriverFileInfo")("ListItem.Button"), LocalizationService.ForSection("DriverFileInfo")("No.Button"))})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("Version.Label"), drvPkg.Version.ToString()})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("ClassName.Label"), drvPkg.ClassName})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("ClassDescription.Label"), drvPkg.ClassDescription})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("ClassGUID.Label"), drvPkg.ClassGuid})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("ProviderName.Label"), drvPkg.ProviderName})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("Date.Label"), DriverDateString})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("SignatureStatus.Label"), Casters.SignatureStatus(drvPkg.DriverSignature, True)})) + ListView1.Items.Add(New ListViewItem(New String() {LocalizationService.ForSection("DriverFileInfo")("CatalogFile.Label"), drvPkg.CatalogFile})) End If End Using Catch ex As Exception DynaLog.LogMessage("Could not get information. Error: " & ex.Message) - MsgBox(ex.Message & " (HRESULT: " & ex.HResult & ")", vbOKOnly + vbCritical, Text) + MsgBox(ex.Message & String.Format(LocalizationService.ForSection("DriverFileInfo.Messages")("Hresult.Label"), ex.HResult), vbOKOnly + vbCritical, Text) Finally DynaLog.LogMessage("Shutting down API...") Try diff --git a/Panels/Get_Ops/Drivers/GetDriverInfo.Designer.vb b/Panels/Get_Ops/Drivers/GetDriverInfo.Designer.vb index da6a47b87..ad50fc2bf 100644 --- a/Panels/Get_Ops/Drivers/GetDriverInfo.Designer.vb +++ b/Panels/Get_Ops/Drivers/GetDriverInfo.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class GetDriverInfo Inherits System.Windows.Forms.Form @@ -190,7 +190,7 @@ Partial Class GetDriverInfo Me.Button9.Name = "Button9" Me.Button9.Size = New System.Drawing.Size(241, 23) Me.Button9.TabIndex = 14 - Me.Button9.Text = "View driver file information" + Me.Button9.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("View.Driver.File.Button") Me.Button9.UseVisualStyleBackColor = True ' 'Panel6 @@ -212,7 +212,7 @@ Partial Class GetDriverInfo Me.Button7.Name = "Button7" Me.Button7.Size = New System.Drawing.Size(75, 23) Me.Button7.TabIndex = 1 - Me.Button7.Text = "Change" + Me.Button7.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Change.Button") Me.Button7.UseVisualStyleBackColor = True ' 'Label48 @@ -223,9 +223,7 @@ Partial Class GetDriverInfo Me.Label48.Name = "Label48" Me.Label48.Size = New System.Drawing.Size(863, 48) Me.Label48.TabIndex = 0 - Me.Label48.Text = "You have configured the background processes to not show all drivers present in t" & _ - "his image, which includes drivers part of the Windows distribution, so you may n" & _ - "ot see the driver you're interested in." + Me.Label48.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Bg.Procs.Notice.Message") Me.Label48.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button8 @@ -236,7 +234,7 @@ Partial Class GetDriverInfo Me.Button8.Name = "Button8" Me.Button8.Size = New System.Drawing.Size(96, 23) Me.Button8.TabIndex = 13 - Me.Button8.Text = "Save..." + Me.Button8.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Save.Button") Me.Button8.UseVisualStyleBackColor = True ' 'Label5 @@ -247,7 +245,7 @@ Partial Class GetDriverInfo Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(38, 13) Me.Label5.TabIndex = 4 - Me.Label5.Text = "Status" + Me.Label5.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Status.Label") ' 'DriverContainerPanel ' @@ -314,12 +312,12 @@ Partial Class GetDriverInfo ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Published name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("PublishedName.Column") Me.ColumnHeader1.Width = 188 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Original file name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Original.File.Name.Column") Me.ColumnHeader2.Width = 220 ' 'SearchPanel @@ -442,7 +440,7 @@ Partial Class GetDriverInfo Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(85, 13) Me.Label22.TabIndex = 0 - Me.Label22.Text = "Published name:" + Me.Label22.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("PublishedName.Label") ' 'Label23 ' @@ -453,7 +451,7 @@ Partial Class GetDriverInfo Me.Label23.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label23.Size = New System.Drawing.Size(38, 15) Me.Label23.TabIndex = 0 - Me.Label23.Text = "Label8" + Me.Label23.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label23.UseMnemonic = False ' 'Label24 @@ -464,7 +462,7 @@ Partial Class GetDriverInfo Me.Label24.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label24.Size = New System.Drawing.Size(93, 17) Me.Label24.TabIndex = 0 - Me.Label24.Text = "Original file name:" + Me.Label24.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Original.File.Name.Label") ' 'Label25 ' @@ -475,7 +473,7 @@ Partial Class GetDriverInfo Me.Label25.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label25.Size = New System.Drawing.Size(38, 15) Me.Label25.TabIndex = 0 - Me.Label25.Text = "Label8" + Me.Label25.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label25.UseMnemonic = False ' 'Label26 @@ -486,7 +484,7 @@ Partial Class GetDriverInfo Me.Label26.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label26.Size = New System.Drawing.Size(80, 17) Me.Label26.TabIndex = 0 - Me.Label26.Text = "Provider name:" + Me.Label26.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("ProviderName.Label") ' 'Label35 ' @@ -497,7 +495,7 @@ Partial Class GetDriverInfo Me.Label35.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label35.Size = New System.Drawing.Size(38, 15) Me.Label35.TabIndex = 0 - Me.Label35.Text = "Label8" + Me.Label35.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label35.UseMnemonic = False ' 'Label31 @@ -508,7 +506,7 @@ Partial Class GetDriverInfo Me.Label31.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label31.Size = New System.Drawing.Size(65, 17) Me.Label31.TabIndex = 0 - Me.Label31.Text = "Class name:" + Me.Label31.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("ClassName.Label") ' 'Label32 ' @@ -519,7 +517,7 @@ Partial Class GetDriverInfo Me.Label32.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label32.Size = New System.Drawing.Size(38, 15) Me.Label32.TabIndex = 0 - Me.Label32.Text = "Label8" + Me.Label32.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label32.UseMnemonic = False ' 'Label41 @@ -530,7 +528,7 @@ Partial Class GetDriverInfo Me.Label41.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label41.Size = New System.Drawing.Size(91, 17) Me.Label41.TabIndex = 0 - Me.Label41.Text = "Class description:" + Me.Label41.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("ClassDescription.Label") ' 'Label40 ' @@ -541,7 +539,7 @@ Partial Class GetDriverInfo Me.Label40.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label40.Size = New System.Drawing.Size(38, 15) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Label8" + Me.Label40.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label40.UseMnemonic = False ' 'Label43 @@ -552,7 +550,7 @@ Partial Class GetDriverInfo Me.Label43.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label43.Size = New System.Drawing.Size(64, 17) Me.Label43.TabIndex = 0 - Me.Label43.Text = "Class GUID:" + Me.Label43.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("ClassGUID.Label") ' 'Label42 ' @@ -563,7 +561,7 @@ Partial Class GetDriverInfo Me.Label42.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label42.Size = New System.Drawing.Size(38, 15) Me.Label42.TabIndex = 0 - Me.Label42.Text = "Label8" + Me.Label42.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label42.UseMnemonic = False ' 'Label47 @@ -574,7 +572,7 @@ Partial Class GetDriverInfo Me.Label47.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label47.Size = New System.Drawing.Size(90, 17) Me.Label47.TabIndex = 0 - Me.Label47.Text = "Catalog file path:" + Me.Label47.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Catalog.File.Path.Label") ' 'Label46 ' @@ -585,7 +583,7 @@ Partial Class GetDriverInfo Me.Label46.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label46.Size = New System.Drawing.Size(38, 15) Me.Label46.TabIndex = 0 - Me.Label46.Text = "Label8" + Me.Label46.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label46.UseMnemonic = False ' 'Label33 @@ -596,7 +594,7 @@ Partial Class GetDriverInfo Me.Label33.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label33.Size = New System.Drawing.Size(166, 17) Me.Label33.TabIndex = 0 - Me.Label33.Text = "Part of the Windows distribution?" + Me.Label33.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Part.Windows.Label") ' 'Label34 ' @@ -607,7 +605,7 @@ Partial Class GetDriverInfo Me.Label34.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label34.Size = New System.Drawing.Size(38, 15) Me.Label34.TabIndex = 0 - Me.Label34.Text = "Label8" + Me.Label34.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label34.UseMnemonic = False ' 'Label28 @@ -618,7 +616,7 @@ Partial Class GetDriverInfo Me.Label28.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label28.Size = New System.Drawing.Size(151, 17) Me.Label28.TabIndex = 0 - Me.Label28.Text = "Is critical to the boot process?" + Me.Label28.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Critical.Boot.Process.Label") ' 'Label27 ' @@ -629,7 +627,7 @@ Partial Class GetDriverInfo Me.Label27.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label27.Size = New System.Drawing.Size(38, 15) Me.Label27.TabIndex = 0 - Me.Label27.Text = "Label8" + Me.Label27.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label27.UseMnemonic = False ' 'Label30 @@ -640,7 +638,7 @@ Partial Class GetDriverInfo Me.Label30.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label30.Size = New System.Drawing.Size(46, 17) Me.Label30.TabIndex = 0 - Me.Label30.Text = "Version:" + Me.Label30.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Version.Label") ' 'Label29 ' @@ -651,7 +649,7 @@ Partial Class GetDriverInfo Me.Label29.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label29.Size = New System.Drawing.Size(38, 15) Me.Label29.TabIndex = 0 - Me.Label29.Text = "Label8" + Me.Label29.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label29.UseMnemonic = False ' 'Label39 @@ -662,7 +660,7 @@ Partial Class GetDriverInfo Me.Label39.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label39.Size = New System.Drawing.Size(34, 17) Me.Label39.TabIndex = 0 - Me.Label39.Text = "Date:" + Me.Label39.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Date.Label") ' 'Label38 ' @@ -673,7 +671,7 @@ Partial Class GetDriverInfo Me.Label38.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label38.Size = New System.Drawing.Size(38, 15) Me.Label38.TabIndex = 0 - Me.Label38.Text = "Label8" + Me.Label38.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label38.UseMnemonic = False ' 'Label45 @@ -684,7 +682,7 @@ Partial Class GetDriverInfo Me.Label45.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label45.Size = New System.Drawing.Size(121, 17) Me.Label45.TabIndex = 0 - Me.Label45.Text = "Driver signature status:" + Me.Label45.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Driver.Signature.Label") ' 'Label44 ' @@ -695,7 +693,7 @@ Partial Class GetDriverInfo Me.Label44.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label44.Size = New System.Drawing.Size(38, 15) Me.Label44.TabIndex = 0 - Me.Label44.Text = "Label8" + Me.Label44.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label44.UseMnemonic = False ' 'Label55 @@ -726,7 +724,7 @@ Partial Class GetDriverInfo Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(436, 36) Me.Label36.TabIndex = 0 - Me.Label36.Text = "Driver information" + Me.Label36.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DriverInfo.Label") Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel7 @@ -746,7 +744,7 @@ Partial Class GetDriverInfo Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(436, 364) Me.Label37.TabIndex = 0 - Me.Label37.Text = "Select an installed driver to view its information here" + Me.Label37.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Installed.Driver.View.Label") Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'FlowLayoutPanel4 @@ -830,7 +828,7 @@ Partial Class GetDriverInfo Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(142, 22) Me.Button3.TabIndex = 2 - Me.Button3.Text = "Remove all" + Me.Button3.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("RemoveAll.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button2 @@ -842,7 +840,7 @@ Partial Class GetDriverInfo Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(140, 22) Me.Button2.TabIndex = 1 - Me.Button2.Text = "Remove selected" + Me.Button2.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("RemoveSelected.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -853,7 +851,7 @@ Partial Class GetDriverInfo Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(140, 22) Me.Button1.TabIndex = 0 - Me.Button1.Text = "Add driver..." + Me.Button1.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("AddDriver.Button") Me.Button1.UseVisualStyleBackColor = True ' 'DrvPackageContainerPanel @@ -910,7 +908,7 @@ Partial Class GetDriverInfo Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(113, 13) Me.Label8.TabIndex = 0 - Me.Label8.Text = "Hardware description:" + Me.Label8.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Hardware.Description.Label") ' 'Label9 ' @@ -921,7 +919,7 @@ Partial Class GetDriverInfo Me.Label9.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label9.Size = New System.Drawing.Size(38, 15) Me.Label9.TabIndex = 0 - Me.Label9.Text = "Label8" + Me.Label9.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label9.UseMnemonic = False ' 'Label10 @@ -932,7 +930,7 @@ Partial Class GetDriverInfo Me.Label10.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label10.Size = New System.Drawing.Size(72, 17) Me.Label10.TabIndex = 0 - Me.Label10.Text = "Hardware ID:" + Me.Label10.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("HardwareID.Label") ' 'Label11 ' @@ -943,7 +941,7 @@ Partial Class GetDriverInfo Me.Label11.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label11.Size = New System.Drawing.Size(38, 15) Me.Label11.TabIndex = 0 - Me.Label11.Text = "Label8" + Me.Label11.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label11.UseMnemonic = False ' 'Label12 @@ -954,7 +952,7 @@ Partial Class GetDriverInfo Me.Label12.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label12.Size = New System.Drawing.Size(77, 17) Me.Label12.TabIndex = 0 - Me.Label12.Text = "Additional IDs:" + Me.Label12.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("AdditionalIds.Label") ' 'Label13 ' @@ -964,7 +962,7 @@ Partial Class GetDriverInfo Me.Label13.Padding = New System.Windows.Forms.Padding(12, 4, 0, 0) Me.Label13.Size = New System.Drawing.Size(95, 17) Me.Label13.TabIndex = 0 - Me.Label13.Text = "Compatible IDs:" + Me.Label13.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("CompatibleIds.Label") ' 'Label14 ' @@ -975,7 +973,7 @@ Partial Class GetDriverInfo Me.Label14.Padding = New System.Windows.Forms.Padding(12, 2, 0, 0) Me.Label14.Size = New System.Drawing.Size(50, 15) Me.Label14.TabIndex = 0 - Me.Label14.Text = "Label8" + Me.Label14.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label14.UseMnemonic = False ' 'Label16 @@ -986,7 +984,7 @@ Partial Class GetDriverInfo Me.Label16.Padding = New System.Windows.Forms.Padding(12, 4, 0, 0) Me.Label16.Size = New System.Drawing.Size(79, 17) Me.Label16.TabIndex = 0 - Me.Label16.Text = "Exclude IDs:" + Me.Label16.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("ExcludeIds.Label") ' 'Label15 ' @@ -997,7 +995,7 @@ Partial Class GetDriverInfo Me.Label15.Padding = New System.Windows.Forms.Padding(12, 2, 0, 0) Me.Label15.Size = New System.Drawing.Size(50, 15) Me.Label15.TabIndex = 0 - Me.Label15.Text = "Label8" + Me.Label15.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label15.UseMnemonic = False ' 'Label17 @@ -1008,7 +1006,7 @@ Partial Class GetDriverInfo Me.Label17.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label17.Size = New System.Drawing.Size(126, 17) Me.Label17.TabIndex = 0 - Me.Label17.Text = "Hardware manufacturer:" + Me.Label17.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Hardware.Manufacturer.Label") ' 'Label18 ' @@ -1019,7 +1017,7 @@ Partial Class GetDriverInfo Me.Label18.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label18.Size = New System.Drawing.Size(38, 15) Me.Label18.TabIndex = 0 - Me.Label18.Text = "Label8" + Me.Label18.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label18.UseMnemonic = False ' 'Label20 @@ -1030,7 +1028,7 @@ Partial Class GetDriverInfo Me.Label20.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label20.Size = New System.Drawing.Size(70, 17) Me.Label20.TabIndex = 0 - Me.Label20.Text = "Architecture:" + Me.Label20.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Architecture.Label") ' 'Label19 ' @@ -1041,7 +1039,7 @@ Partial Class GetDriverInfo Me.Label19.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label19.Size = New System.Drawing.Size(38, 15) Me.Label19.TabIndex = 0 - Me.Label19.Text = "Label8" + Me.Label19.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("DynamicValue.Label") Me.Label19.UseMnemonic = False ' 'Label49 @@ -1097,7 +1095,7 @@ Partial Class GetDriverInfo Me.Label21.Name = "Label21" Me.Label21.Size = New System.Drawing.Size(82, 13) Me.Label21.TabIndex = 1 - Me.Label21.Text = "Jump to target:" + Me.Label21.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("JumpTarget.Label") Me.Label21.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Button6 @@ -1138,7 +1136,7 @@ Partial Class GetDriverInfo Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(257, 36) Me.Label7.TabIndex = 0 - Me.Label7.Text = "Hardware targets" + Me.Label7.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("HardwareTargets.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'NoDrvPanel @@ -1158,7 +1156,7 @@ Partial Class GetDriverInfo Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(436, 364) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Add or select a driver package to view its information here" + Me.Label6.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Add.DriverPackage.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'FlowLayoutPanel1 @@ -1179,7 +1177,7 @@ Partial Class GetDriverInfo Me.LinkLabel1.Size = New System.Drawing.Size(60, 13) Me.LinkLabel1.TabIndex = 2 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "<- Go back" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("GoBack.Link") ' 'MenuPanel ' @@ -1203,8 +1201,7 @@ Partial Class GetDriverInfo Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(791, 83) Me.Label4.TabIndex = 3 - Me.Label4.Text = "Click here to get information about drivers that you want to add to the Windows i" & _ - "mage you're servicing before proceeding with the driver addition process" + Me.Label4.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Help.AddDrivers.Message") ' 'Label3 ' @@ -1213,8 +1210,7 @@ Partial Class GetDriverInfo Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(791, 83) Me.Label3.TabIndex = 3 - Me.Label3.Text = "Click here to get information about drivers that you've installed or that came wi" & _ - "th the Windows image you're servicing" + Me.Label3.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Get.Drivers.Message") ' 'PictureBox3 ' @@ -1247,7 +1243,7 @@ Partial Class GetDriverInfo Me.InstalledDriverLink.Size = New System.Drawing.Size(352, 13) Me.InstalledDriverLink.TabIndex = 1 Me.InstalledDriverLink.TabStop = True - Me.InstalledDriverLink.Text = "I want to get information about installed drivers in the image" + Me.InstalledDriverLink.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("InstalledDriver.Link") ' 'DriverFileLink ' @@ -1260,7 +1256,7 @@ Partial Class GetDriverInfo Me.DriverFileLink.Size = New System.Drawing.Size(248, 13) Me.DriverFileLink.TabIndex = 1 Me.DriverFileLink.TabStop = True - Me.DriverFileLink.Text = "I want to get information about driver files" + Me.DriverFileLink.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Iwant.Link") ' 'Label2 ' @@ -1269,13 +1265,13 @@ Partial Class GetDriverInfo Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(221, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "What do you want to get information about?" + Me.Label2.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Get.Label") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Driver files|*.inf" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.GetDriverInfo")("Driver.Files.Inf.Filter") Me.OpenFileDialog1.SupportMultiDottedExtensions = True - Me.OpenFileDialog1.Title = "Locate driver files" + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.GetDriverInfo")("Locate.Driver.Files.Title") ' 'ImageTaskHeader1 ' @@ -1305,7 +1301,7 @@ Partial Class GetDriverInfo Me.Name = "GetDriverInfo" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Get driver information" + Me.Text = LocalizationService.ForSection("Designer.GetDriverInfo")("Driver.Label") Me.DriverInfoContainerPanel.ResumeLayout(False) Me.DriverInfoPanel.ResumeLayout(False) Me.DriverInfoPanel.PerformLayout() diff --git a/Panels/Get_Ops/Drivers/GetDriverInfo.vb b/Panels/Get_Ops/Drivers/GetDriverInfo.vb index 94f7aa2d7..ac667d1c6 100644 --- a/Panels/Get_Ops/Drivers/GetDriverInfo.vb +++ b/Panels/Get_Ops/Drivers/GetDriverInfo.vb @@ -34,457 +34,50 @@ Public Class GetDriverInfo End Enum Private Sub GetDriverInfo_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Get driver information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "What do you want to get information about?" - Label3.Text = "Click here to get information about drivers that you've installed or that came with the Windows image you're servicing" - Label4.Text = "Click here to get information about drivers that you want to add to the Windows image you're servicing before proceeding with the driver addition process" - Label5.Text = "Ready" - Label6.Text = "Add or select a driver package to view its information here" - Label7.Text = "Hardware targets" - Label8.Text = "Hardware description:" - Label10.Text = "Hardware ID:" - Label12.Text = "Additional IDs:" - Label13.Text = "Compatible IDs:" - Label16.Text = "Exclude IDs:" - Label17.Text = "Hardware manufacturer:" - Label20.Text = "Architecture:" - Label21.Text = "Jump to target:" - Label22.Text = "Published name:" - Label24.Text = "Original file name:" - Label26.Text = "Provider name:" - Label28.Text = "Is critical to the boot process?" - Label30.Text = "Version:" - Label31.Text = "Class name:" - Label33.Text = "Part of the Windows distribution?" - Label36.Text = "Driver information" - Label37.Text = "Select an installed driver to view its information here" - Label39.Text = "Date:" - Label41.Text = "Class description:" - Label43.Text = "Class GUID:" - Label45.Text = "Driver signature status:" - Label47.Text = "Catalog file path:" - Label48.Text = "You have configured the background processes to not show all drivers present in this image, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in." - Button1.Text = "Add driver..." - Button2.Text = "Remove selected" - Button3.Text = "Remove all" - Button7.Text = "Change" - Button8.Text = "Save..." - Button9.Text = "View driver file information" - LinkLabel1.Text = "<- Go back" - InstalledDriverLink.Text = "I want to get information about installed drivers in the image" - DriverFileLink.Text = "I want to get information about driver files" - ListView1.Columns(0).Text = "Published name" - ListView1.Columns(1).Text = "Original file name" - OpenFileDialog1.Title = "Locate driver files" - SearchBox1.Text = "Type here to search for a driver..." - Case "ESN" - Text = "Obtener información de controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "¿Acerca de qué le gustaría obtener información?" - Label3.Text = "Haga clic aquí para obtener información de controladores que ha instalado o que vengan con la imagen de Windows a la que está dando servicio" - Label4.Text = "Haga clic aquí para obtener información de controladores que le gustaría añadir a la imagen de Windows a la que está dando servicio antes de proceder con el proceso de adición de controladores" - Label5.Text = "Listo" - Label6.Text = "Añada o seleccione un paquete de controlador para ver su información aquí" - Label7.Text = "Hardware de destino" - Label8.Text = "Descripción de hardware:" - Label10.Text = "ID de hardware:" - Label12.Text = "Identificadores adicionales:" - Label13.Text = "Identificadores compatibles:" - Label16.Text = "Identificadores excluidos:" - Label17.Text = "Fabricante de hardware:" - Label20.Text = "Arquitectura:" - Label21.Text = "Saltar a hardware:" - Label22.Text = "Nombre publicado:" - Label24.Text = "Nombre de archivo original:" - Label26.Text = "Nombre de proveedor:" - Label28.Text = "¿Es crítico para el proceso de arranque?" - Label30.Text = "Versión:" - Label31.Text = "Nombre de clase:" - Label33.Text = "¿Es parte de la distribución de Windows?" - Label36.Text = "Información del controlador" - Label37.Text = "Seleccione un controlador instalado para obtener su información aquí" - Label39.Text = "Fecha:" - Label41.Text = "Descripción de clase:" - Label43.Text = "Identificador GUID de clase:" - Label45.Text = "Estado de firma del controlador:" - Label47.Text = "Ruta del archivo de catálogo:" - Label48.Text = "Ha configurado los procesos en segundo plano de manera que no se muestren todos los controladores de esta imagen, que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa." - Button1.Text = "Añadir controlador..." - Button2.Text = "Eliminar selección" - Button3.Text = "Eliminar todos" - Button7.Text = "Cambiar" - Button8.Text = "Guardar..." - Button9.Text = "Ver información del archivo de controladores" - LinkLabel1.Text = "<- Atrás" - InstalledDriverLink.Text = "Deseo obtener información acerca de controladores instalados en la imagen" - DriverFileLink.Text = "Deseo obtener información acerca de archivos de controladores" - ListView1.Columns(0).Text = "Nombre publicado" - ListView1.Columns(1).Text = "Nombre de archivo original" - OpenFileDialog1.Title = "Ubique los archivos de controladores" - SearchBox1.Text = "Escriba aquí para buscar un controlador..." - Case "FRA" - Text = "Obtenir des informations sur les pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Sur quoi souhaitez-vous obtenir des informations ?" - Label3.Text = "Cliquez ici pour obtenir des informations sur les pilotes que vous avez installés ou qui sont fournis avec l'image Windows dont vous assurez la maintenance" - Label4.Text = "Cliquez ici pour obtenir des informations sur les pilotes que vous souhaitez ajouter à l'image Windows que vous maintenez avant de poursuivre le processus d'ajout de pilote" - Label5.Text = "Prêt" - Label6.Text = "Ajoutez ou sélectionnez un paquet de pilote pour afficher son information ici" - Label7.Text = "Cibles matérielles" - Label8.Text = "Description du matériel :" - Label10.Text = "ID du matériel :" - Label12.Text = "ID supplémentaires :" - Label13.Text = "ID compatibles :" - Label16.Text = "ID d'exclusion :" - Label17.Text = "Fabricant de matériel :" - Label20.Text = "Architecture :" - Label21.Text = "Sauter à la cible :" - Label22.Text = "Nom publié :" - Label24.Text = "Nom du fichier original :" - Label26.Text = "Nom du prestataire :" - Label28.Text = "Est-il essentiel au processus de démarrage ?" - Label30.Text = "Version :" - Label31.Text = "Nom de classe :" - Label33.Text = "Fait-il partie de la distribution Windows ?" - Label36.Text = "Information sur le pilote" - Label37.Text = "Sélectionnez un pilote installé pour afficher ses informations ici" - Label39.Text = "Date :" - Label41.Text = "Description de classe :" - Label43.Text = "GUID de classe :" - Label45.Text = "État de la signature du pilote :" - Label47.Text = "Chemin d'accès au fichier de catalogue :" - Label48.Text = "Vous avez configuré les processus en arrière plan de manière à ne pas afficher tous les pilotes présents dans cette image, ce qui inclut les pilotes faisant partie de la distribution Windows. Il est donc possible que vous ne voyiez pas le pilote qui vous intéresse." - Button1.Text = "Ajouter un pilote..." - Button2.Text = "Supprimer la sélection" - Button3.Text = "Supprimer tout" - Button7.Text = "Changer" - Button8.Text = "Sauvegarder..." - Button9.Text = "Voir les informations sur le fichier pilote" - LinkLabel1.Text = "<- Retourner" - InstalledDriverLink.Text = "Je souhaite obtenir des informations sur les pilotes installés dans l'image." - DriverFileLink.Text = "Je souhaite obtenir des informations sur les fichiers pilotes" - ListView1.Columns(0).Text = "Nom publié" - ListView1.Columns(1).Text = "Nom du fichier original" - OpenFileDialog1.Title = "Localiser les fichiers pilotes" - SearchBox1.Text = "Tapez ici pour rechercher un pilote..." - Case "PTB", "PTG" - Text = "Obter informações do controlador" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Sobre o que é que pretende obter informações?" - Label3.Text = "Clique aqui para obter informações sobre os controladores que instalou ou que vieram com a imagem do Windows que está a reparar" - Label4.Text = "Clique aqui para obter informações sobre os controladores que pretende adicionar à imagem do Windows que está a reparar antes de prosseguir com o processo de adição de controladores" - Label5.Text = "Pronto" - Label6.Text = "Adicione ou seleccione um pacote de controladores para ver as suas informações aqui" - Label7.Text = "Alvos de hardware" - Label8.Text = "Descrição do hardware:" - Label10.Text = "ID do hardware:" - Label12.Text = "IDs adicionais:" - Label13.Text = "IDs compatíveis:" - Label16.Text = "Excluir IDs:" - Label17.Text = "Fabricante do hardware:" - Label20.Text = "Arquitetura:" - Label21.Text = "Saltar para o alvo:" - Label22.Text = "Nome publicado:" - Label24.Text = "Nome do ficheiro original:" - Label26.Text = "Nome do fornecedor:" - Label28.Text = "É crítico para o processo de arranque?" - Label30.Text = "Versão:" - Label31.Text = "Nome da classe:" - Label33.Text = "Parte da distribuição do Windows?" - Label36.Text = "Informações do controlador" - Label37.Text = "Seleccione um controlador instalado para ver as suas informações aqui" - Label39.Text = "Data:" - Label41.Text = "Descrição da classe:" - Label43.Text = "GUID da classe:" - Label45.Text = "Estado da assinatura do controlador:" - Label47.Text = "Caminho do ficheiro de catálogo:" - Label48.Text = "Configurou os processos em segundo plano para não mostrar todos os controladores presentes nesta imagem, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado." - Button1.Text = "Adicionar controlador..." - Button2.Text = "Remover selecionado" - Button3.Text = "Remover todos" - Button7.Text = "Alterar" - Button8.Text = "Guardar..." - Button9.Text = "Ver informações do ficheiro do controlador" - LinkLabel1.Text = "<- Voltar atrás" - InstalledDriverLink.Text = "Quero obter informações sobre os controladores instalados na imagem" - DriverFileLink.Text = "Pretendo obter informações sobre ficheiros de controladores" - ListView1.Columns(0).Text = "Nome publicado" - SearchBox1.Text = "Digite aqui para pesquisar um controlador..." - Case "ITA" - Text = "Verifica informazioni driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Su cosa vuoi verificare informazioni?" - Label3.Text = "Fai clic qui per verificare informazioni sui driver installati o forniti con l'immagine di Windows che stai revisionando" - Label4.Text = "Fai clic qui per verificare informazioni sui driver che vuoi aggiungere all'immagine di Windows prima di procedere con il processo di aggiunta dei driver" - Label5.Text = "Pronto" - Label6.Text = "Per visualizzarne le informazioni aggiungi o seleziona un pacchetto di driver " - Label7.Text = "Obiettivi hardware" - Label8.Text = "Descrizione hardware:" - Label10.Text = "ID hardware:" - Label12.Text = "ID aggiuntivi:" - Label13.Text = "ID compatibili:" - Label16.Text = "Escludi ID:" - Label17.Text = "Produttore hardware:" - Label20.Text = "Architettura:" - Label21.Text = "Vai all'obiettivo:" - Label22.Text = "Nome pubblicato:" - Label24.Text = "Nome file originale:" - Label26.Text = "Nome fornitore:" - Label28.Text = "È fondamentale per il processo di avvio?" - Label30.Text = "Versione:" - Label31.Text = "Nome classe:" - Label33.Text = "Parte distribuzione di Windows?" - Label36.Text = "Informazioni driver" - Label37.Text = "Per visualizzarne le informazioni seleziona un driver installato" - Label39.Text = "Data:" - Label41.Text = "Descrizione classe:" - Label43.Text = "GUID classe:" - Label45.Text = "Stato firma driver:" - Label47.Text = "Percorso file catalogo:" - Label48.Text = "I processi in background sono stati configurati in modo da non visualizzare tutti i driver presenti in questa immagine, che include i driver che fanno parte della distribuzione di Windows, quindi è possibile che non venga visualizzato il driver a cui sei interessato." - Button1.Text = "Aggiungi driver..." - Button2.Text = "Rimuovi selezionati" - Button3.Text = "Rimuovi tutti" - Button7.Text = "Modifica" - Button8.Text = "Salva..." - Button9.Text = "Visualizza informazioni sul file del driver" - LinkLabel1.Text = "<- Indietro" - InstalledDriverLink.Text = "Voglio verificare informazioni sui driver installati nell'immagine" - DriverFileLink.Text = "Voglio verificare informazioni sui file dei driver" - ListView1.Columns(0).Text = "Nome file pubblicato" - ListView1.Columns(1).Text = "Nome file originale" - OpenFileDialog1.Title = "Rilevamento file driver" - SearchBox1.Text = "Digita qui per cercare un driver..." - End Select - Case 1 - Text = "Get driver information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "What do you want to get information about?" - Label3.Text = "Click here to get information about drivers that you've installed or that came with the Windows image you're servicing" - Label4.Text = "Click here to get information about drivers that you want to add to the Windows image you're servicing before proceeding with the driver addition process" - Label5.Text = "Ready" - Label6.Text = "Add or select a driver package to view its information here" - Label7.Text = "Hardware targets" - Label8.Text = "Hardware description:" - Label10.Text = "Hardware ID:" - Label12.Text = "Additional IDs:" - Label13.Text = "Compatible IDs:" - Label16.Text = "Exclude IDs:" - Label17.Text = "Hardware manufacturer:" - Label20.Text = "Architecture:" - Label21.Text = "Jump to target:" - Label22.Text = "Published name:" - Label24.Text = "Original file name:" - Label26.Text = "Provider name:" - Label28.Text = "Is critical to the boot process?" - Label30.Text = "Version:" - Label31.Text = "Class name:" - Label33.Text = "Part of the Windows distribution?" - Label36.Text = "Driver information" - Label37.Text = "Select an installed driver to view its information here" - Label39.Text = "Date:" - Label41.Text = "Class description:" - Label43.Text = "Class GUID:" - Label45.Text = "Driver signature status:" - Label47.Text = "Catalog file path:" - Label48.Text = "You have configured the background processes to not show all drivers present in this image, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in." - Button1.Text = "Add driver..." - Button2.Text = "Remove selected" - Button3.Text = "Remove all" - Button7.Text = "Change" - Button8.Text = "Save..." - Button9.Text = "View driver file information" - LinkLabel1.Text = "<- Go back" - InstalledDriverLink.Text = "I want to get information about installed drivers in the image" - DriverFileLink.Text = "I want to get information about driver files" - ListView1.Columns(0).Text = "Published name" - ListView1.Columns(1).Text = "Original file name" - OpenFileDialog1.Title = "Locate driver files" - SearchBox1.Text = "Type here to search for a driver..." - Case 2 - Text = "Obtener información de controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "¿Acerca de qué le gustaría obtener información?" - Label3.Text = "Haga clic aquí para obtener información de controladores que ha instalado o que vengan con la imagen de Windows a la que está dando servicio" - Label4.Text = "Haga clic aquí para obtener información de controladores que le gustaría añadir a la imagen de Windows a la que está dando servicio antes de proceder con el proceso de adición de controladores" - Label5.Text = "Listo" - Label6.Text = "Añada o seleccione un paquete de controlador para ver su información aquí" - Label7.Text = "Hardware de destino" - Label8.Text = "Descripción de hardware:" - Label10.Text = "ID de hardware:" - Label12.Text = "Identificadores adicionales:" - Label13.Text = "Identificadores compatibles:" - Label16.Text = "Identificadores excluidos:" - Label17.Text = "Fabricante de hardware:" - Label20.Text = "Arquitectura:" - Label21.Text = "Saltar a hardware:" - Label22.Text = "Nombre publicado:" - Label24.Text = "Nombre de archivo original:" - Label26.Text = "Nombre de proveedor:" - Label28.Text = "¿Es crítico para el proceso de arranque?" - Label30.Text = "Versión:" - Label31.Text = "Nombre de clase:" - Label33.Text = "¿Es parte de la distribución de Windows?" - Label36.Text = "Información del controlador" - Label37.Text = "Seleccione un controlador instalado para obtener su información aquí" - Label39.Text = "Fecha:" - Label41.Text = "Descripción de clase:" - Label43.Text = "Identificador GUID de clase:" - Label45.Text = "Estado de firma del controlador:" - Label47.Text = "Ruta del archivo de catálogo:" - Label48.Text = "Ha configurado los procesos en segundo plano de manera que no se muestren todos los controladores de esta imagen, que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa." - Button1.Text = "Añadir controlador..." - Button2.Text = "Eliminar selección" - Button3.Text = "Eliminar todos" - Button7.Text = "Cambiar" - Button8.Text = "Guardar..." - Button9.Text = "Ver información del archivo de controladores" - LinkLabel1.Text = "<- Atrás" - InstalledDriverLink.Text = "Deseo obtener información acerca de controladores instalados en la imagen" - DriverFileLink.Text = "Deseo obtener información acerca de archivos de controladores" - ListView1.Columns(0).Text = "Nombre publicado" - ListView1.Columns(1).Text = "Nombre de archivo original" - OpenFileDialog1.Title = "Ubique los archivos de controladores" - SearchBox1.Text = "Escriba aquí para buscar un controlador..." - Case 3 - Text = "Obtenir des informations sur les pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Sur quoi souhaitez-vous obtenir des informations ?" - Label3.Text = "Cliquez ici pour obtenir des informations sur les pilotes que vous avez installés ou qui sont fournis avec l'image Windows dont vous assurez la maintenance" - Label4.Text = "Cliquez ici pour obtenir des informations sur les pilotes que vous souhaitez ajouter à l'image Windows que vous maintenez avant de poursuivre le processus d'ajout de pilote" - Label5.Text = "Prêt" - Label6.Text = "Ajoutez ou sélectionnez un paquet de pilote pour afficher son information ici" - Label7.Text = "Cibles matérielles" - Label8.Text = "Description du matériel :" - Label10.Text = "ID du matériel :" - Label12.Text = "ID supplémentaires :" - Label13.Text = "ID compatibles :" - Label16.Text = "ID d'exclusion :" - Label17.Text = "Fabricant de matériel :" - Label20.Text = "Architecture :" - Label21.Text = "Sauter à la cible :" - Label22.Text = "Nom publié :" - Label24.Text = "Nom du fichier original :" - Label26.Text = "Nom du prestataire :" - Label28.Text = "Est-il essentiel au processus de démarrage ?" - Label30.Text = "Version :" - Label31.Text = "Nom de classe :" - Label33.Text = "Fait-il partie de la distribution Windows ?" - Label36.Text = "Information sur le pilote" - Label37.Text = "Sélectionnez un pilote installé pour afficher ses informations ici" - Label39.Text = "Date :" - Label41.Text = "Description de classe :" - Label43.Text = "GUID de classe :" - Label45.Text = "État de la signature du pilote :" - Label47.Text = "Chemin d'accès au fichier de catalogue :" - Label48.Text = "Vous avez configuré les processus en arrière plan de manière à ne pas afficher tous les pilotes présents dans cette image, ce qui inclut les pilotes faisant partie de la distribution Windows. Il est donc possible que vous ne voyiez pas le pilote qui vous intéresse." - Button1.Text = "Ajouter un pilote..." - Button2.Text = "Supprimer la sélection" - Button3.Text = "Supprimer tout" - Button7.Text = "Changer" - Button8.Text = "Sauvegarder..." - Button9.Text = "Voir les informations sur le fichier pilote" - LinkLabel1.Text = "<- Retourner" - InstalledDriverLink.Text = "Je souhaite obtenir des informations sur les pilotes installés dans l'image." - DriverFileLink.Text = "Je souhaite obtenir des informations sur les fichiers pilotes" - ListView1.Columns(0).Text = "Nom publié" - ListView1.Columns(1).Text = "Nom du fichier original" - OpenFileDialog1.Title = "Localiser les fichiers pilotes" - SearchBox1.Text = "Tapez ici pour rechercher un pilote..." - Case 4 - Text = "Obter informações do controlador" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Sobre o que é que pretende obter informações?" - Label3.Text = "Clique aqui para obter informações sobre os controladores que instalou ou que vieram com a imagem do Windows que está a reparar" - Label4.Text = "Clique aqui para obter informações sobre os controladores que pretende adicionar à imagem do Windows que está a reparar antes de prosseguir com o processo de adição de controladores" - Label5.Text = "Pronto" - Label6.Text = "Adicione ou seleccione um pacote de controladores para ver as suas informações aqui" - Label7.Text = "Alvos de hardware" - Label8.Text = "Descrição do hardware:" - Label10.Text = "ID do hardware:" - Label12.Text = "IDs adicionais:" - Label13.Text = "IDs compatíveis:" - Label16.Text = "Excluir IDs:" - Label17.Text = "Fabricante do hardware:" - Label20.Text = "Arquitetura:" - Label21.Text = "Saltar para o alvo:" - Label22.Text = "Nome publicado:" - Label24.Text = "Nome do ficheiro original:" - Label26.Text = "Nome do fornecedor:" - Label28.Text = "É crítico para o processo de arranque?" - Label30.Text = "Versão:" - Label31.Text = "Nome da classe:" - Label33.Text = "Parte da distribuição do Windows?" - Label36.Text = "Informações do controlador" - Label37.Text = "Seleccione um controlador instalado para ver as suas informações aqui" - Label39.Text = "Data:" - Label41.Text = "Descrição da classe:" - Label43.Text = "GUID da classe:" - Label45.Text = "Estado da assinatura do controlador:" - Label47.Text = "Caminho do ficheiro de catálogo:" - Label48.Text = "Configurou os processos em segundo plano para não mostrar todos os controladores presentes nesta imagem, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado." - Button1.Text = "Adicionar controlador..." - Button2.Text = "Remover selecionado" - Button3.Text = "Remover todos" - Button7.Text = "Alterar" - Button8.Text = "Guardar..." - Button9.Text = "Ver informações do ficheiro do controlador" - LinkLabel1.Text = "<- Voltar atrás" - InstalledDriverLink.Text = "Quero obter informações sobre os controladores instalados na imagem" - DriverFileLink.Text = "Pretendo obter informações sobre ficheiros de controladores" - ListView1.Columns(0).Text = "Nome publicado" - SearchBox1.Text = "Digite aqui para pesquisar um controlador..." - Case 5 - Text = "Verifica informazioni driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Su cosa vuoi verificare informazioni?" - Label3.Text = "Fai clic qui per verificare informazioni sui driver installati o forniti con l'immagine di Windows che stai revisionando" - Label4.Text = "Fai clic qui per verificare informazioni sui driver che vuoi aggiungere all'immagine di Windows prima di procedere con il processo di aggiunta dei driver" - Label5.Text = "Pronto" - Label6.Text = "Per visualizzarne le informazioni aggiungi o seleziona un pacchetto driver" - Label7.Text = "Obiettivi hardware" - Label8.Text = "Descrizione hardware:" - Label10.Text = "ID hardware:" - Label12.Text = "ID aggiuntivi:" - Label13.Text = "ID compatibili:" - Label16.Text = "Escludi ID:" - Label17.Text = "Produttore hardware:" - Label20.Text = "Architettura:" - Label21.Text = "Vai all'obiettivo:" - Label22.Text = "Nome pubblicato:" - Label24.Text = "Nome file originale:" - Label26.Text = "Nome fornitore:" - Label28.Text = "È fondamentale per il processo di avvio?" - Label30.Text = "Versione:" - Label31.Text = "Nome classe:" - Label33.Text = "Parte della distribuzione di Windows?" - Label36.Text = "Informazioni driver" - Label37.Text = "Per visualizzarne le informazioni seleziona un driver installato" - Label39.Text = "Data:" - Label41.Text = "Descrizione classe:" - Label43.Text = "GUID classe:" - Label45.Text = "Stato firma driver:" - Label47.Text = "Percorso file catalogo:" - Label48.Text = "I processi in background sono stati configurati in modo da non visualizzare tutti i driver presenti in questa immagine, che include i driver che fanno parte della distribuzione di Windows, quindi è possibile che non venga visualizzato il driver a cui sei interessato." - Button1.Text = "Aggiungi driver..." - Button2.Text = "Rimuovi selezionati" - Button3.Text = "Rimuovi tutti" - Button7.Text = "Modifica" - Button8.Text = "Salva..." - Button9.Text = "Visualizza informazioni sul file del driver" - LinkLabel1.Text = "<- Indietro" - InstalledDriverLink.Text = "Voglio verificare informazioni sui driver installati nell'immagine" - DriverFileLink.Text = "Voglio verificare informazioni sui file dei driver" - ListView1.Columns(0).Text = "Nome file pubblicato" - ListView1.Columns(1).Text = "Nome file originale" - OpenFileDialog1.Title = "Rilevazione file driver" - SearchBox1.Text = "Digita qui per cercare un driver..." - End Select + Text = LocalizationService.ForSection("GetDriverInfo")("Driver.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("GetDriverInfo")("Get.Label") + Label3.Text = LocalizationService.ForSection("GetDriverInfo")("Get.Drivers.Message") + Label4.Text = LocalizationService.ForSection("GetDriverInfo")("AddDrivers.Help.Message") + Label5.Text = LocalizationService.ForSection("GetDriverInfo")("Ready.Label") + Label6.Text = LocalizationService.ForSection("GetDriverInfo")("Add.DriverPackage.Label") + Label7.Text = LocalizationService.ForSection("GetDriverInfo")("HardwareTargets.Label") + Label8.Text = LocalizationService.ForSection("GetDriverInfo")("Hardware.Description.Label") + Label10.Text = LocalizationService.ForSection("GetDriverInfo")("HardwareID.Label") + Label12.Text = LocalizationService.ForSection("GetDriverInfo")("AdditionalIds.Label") + Label13.Text = LocalizationService.ForSection("GetDriverInfo")("CompatibleIds.Label") + Label16.Text = LocalizationService.ForSection("GetDriverInfo")("ExcludeIds.Label") + Label17.Text = LocalizationService.ForSection("GetDriverInfo")("Hardware.Manufacturer.Label") + Label20.Text = LocalizationService.ForSection("GetDriverInfo")("Architecture.Label") + Label21.Text = LocalizationService.ForSection("GetDriverInfo")("JumpTarget.Label") + Label22.Text = LocalizationService.ForSection("GetDriverInfo")("PublishedName.Label") + Label24.Text = LocalizationService.ForSection("GetDriverInfo")("Original.File.Name.Label") + Label26.Text = LocalizationService.ForSection("GetDriverInfo")("ProviderName.Label") + Label28.Text = LocalizationService.ForSection("GetDriverInfo")("Critical.Boot.Process.Label") + Label30.Text = LocalizationService.ForSection("GetDriverInfo")("Version.Label") + Label31.Text = LocalizationService.ForSection("GetDriverInfo")("ClassName.Label") + Label33.Text = LocalizationService.ForSection("GetDriverInfo")("Part.Windows.Label") + Label36.Text = LocalizationService.ForSection("GetDriverInfo")("DriverInfo.Label") + Label37.Text = LocalizationService.ForSection("GetDriverInfo")("Installed.Driver.View.Label") + Label39.Text = LocalizationService.ForSection("GetDriverInfo")("Date.Label") + Label41.Text = LocalizationService.ForSection("GetDriverInfo")("ClassDescription.Label") + Label43.Text = LocalizationService.ForSection("GetDriverInfo")("ClassGUID.Label") + Label45.Text = LocalizationService.ForSection("GetDriverInfo")("Driver.Signature.Label") + Label47.Text = LocalizationService.ForSection("GetDriverInfo")("Catalog.File.Path.Label") + Label48.Text = LocalizationService.ForSection("GetDriverInfo")("Bg.Procs.Notice.Message") + Button1.Text = LocalizationService.ForSection("GetDriverInfo")("AddDriver.Button") + Button2.Text = LocalizationService.ForSection("GetDriverInfo")("RemoveSelected.Button") + Button3.Text = LocalizationService.ForSection("GetDriverInfo")("RemoveAll.Button") + Button7.Text = LocalizationService.ForSection("GetDriverInfo")("Change.Button") + Button8.Text = LocalizationService.ForSection("GetDriverInfo")("Save.Button") + Button9.Text = LocalizationService.ForSection("GetDriverInfo")("View.Driver.File.Button") + LinkLabel1.Text = LocalizationService.ForSection("GetDriverInfo")("GoBack.Link") + InstalledDriverLink.Text = LocalizationService.ForSection("GetDriverInfo")("InstalledDriver.Link") + DriverFileLink.Text = LocalizationService.ForSection("GetDriverInfo")("Iwant.Link") + ListView1.Columns(0).Text = LocalizationService.ForSection("GetDriverInfo")("PublishedName.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("GetDriverInfo")("Original.File.Name.Column") + OpenFileDialog1.Title = LocalizationService.ForSection("GetDriverInfo")("Locate.Driver.Files.Title") + SearchBox1.Text = LocalizationService.ForSection("GetDriverInfo")("Type.Search.Driver.Button") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -595,88 +188,16 @@ Public Class GetDriverInfo If MainForm.ImgBW.IsBusy Then DynaLog.LogMessage("Background processes are busy. Stopping them...") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes need to have completed before showing package information. We'll wait until they have completed" - Case "ESN" - msg = "Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado" - Case "FRA" - msg = "Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés" - Case "PTB", "PTG" - msg = "Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos" - Case "ITA" - msg = "Prima di visualizzare le informazioni sul pacchetto devono essere completati i processi in background. Attendi che siano completati." - End Select - Case 1 - msg = "Background processes need to have completed before showing package information. We'll wait until they have completed" - Case 2 - msg = "Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado" - Case 3 - msg = "Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés" - Case 4 - msg = "Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos" - Case 5 - msg = "Prima di visualizzare le informazioni sul pacchetto devono essere completati i processi in secondo piano. Attendi che siano completati." - End Select + msg = LocalizationService.ForSection("GetDriverInfo.DriverInfo")("Wait.Background.Message") MsgBox(msg, vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Waiting for background processes to finish..." - Case "ESN" - Label5.Text = "Esperando a que terminen los procesos en segundo plano..." - Case "FRA" - Label5.Text = "Attente de la fin des processus en arrière plan..." - Case "PTB", "PTG" - Label5.Text = "À espera que os processos em segundo plano terminem..." - Case "ITA" - Label5.Text = "In attesa del completamento dei processi in background..." - End Select - Case 1 - Label5.Text = "Waiting for background processes to finish..." - Case 2 - Label5.Text = "Esperando a que terminen los procesos en segundo plano..." - Case 3 - Label5.Text = "Attente de la fin des processus en arrière plan..." - Case 4 - Label5.Text = "À espera que os processos em segundo plano terminem..." - Case 5 - Label5.Text = "In attesa del completamento dei processi in background..." - End Select + Label5.Text = LocalizationService.ForSection("GetDriverInfo.DriverInfo")("Waiting.Background.Label") While MainForm.ImgBW.IsBusy Application.DoEvents() Thread.Sleep(500) End While End If MainForm.StopMountedImageDetector() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Preparing driver information processes..." - Case "ESN" - Label5.Text = "Preparando procesos de información de controladores..." - Case "FRA" - Label5.Text = "Préparation des processus d'information des pilotes en cours..." - Case "PTB", "PTG" - Label5.Text = "Preparar os processos de informação dos controladores..." - Case "ITA" - Label5.Text = "Preparazione verifica informazioni driver..." - End Select - Case 1 - Label5.Text = "Preparing driver information processes..." - Case 2 - Label5.Text = "Preparando procesos de información de controladores..." - Case 3 - Label5.Text = "Préparation des processus d'information des pilotes en cours..." - Case 4 - Label5.Text = "Preparar os processos de informação dos controladores..." - Case 5 - Label5.Text = "Preparazione verifica informazioni driver..." - End Select + Label5.Text = LocalizationService.ForSection("DriverInfo.Load")("Preparing.Driver.Item") Application.DoEvents() DynaLog.LogMessage("Initializing API...") DismApi.Initialize(DismLogLevel.LogErrors) @@ -686,31 +207,7 @@ Public Class GetDriverInfo DynaLog.LogMessage("Driver file to get information about: " & Quote & Path.GetFileName(drvFile) & Quote) If File.Exists(drvFile) Then DynaLog.LogMessage("Driver file exists.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Getting information from driver file " & Quote & Path.GetFileName(drvFile) & Quote & "..." & CrLf & "This may take some time and the program may temporarily freeze" - Case "ESN" - Label5.Text = "Obteniendo información del archivo de controlador " & Quote & Path.GetFileName(drvFile) & Quote & "..." & CrLf & "Esto puede llevar algo de tiempo y el programa podría congelarse temporalmente" - Case "FRA" - Label5.Text = "Obtention des informations du fichier pilote " & Quote & Path.GetFileName(drvFile) & Quote & " en cours..." & CrLf & "Cette opération peut prendre un certain temps et le programme peut se bloquer temporairement." - Case "PTB", "PTG" - Label5.Text = "Obter informações do ficheiro do controlador " & Quote & Path.GetFileName(drvFile) & Quote & "..." & CrLf & "Isto pode demorar algum tempo e o programa pode congelar temporariamente" - Case "ITA" - Label5.Text = "Verifica informazioni file driver " & Quote & Path.GetFileName(drvFile) & Quote & "..." & CrLf & "Questa operazione potrebbe richiedere del tempo e il programma potrebbe temporaneamente bloccarsi" - End Select - Case 1 - Label5.Text = "Getting information from driver file " & Quote & Path.GetFileName(drvFile) & Quote & "..." & CrLf & "This may take some time and the program may temporarily freeze" - Case 2 - Label5.Text = "Obteniendo información del archivo de controlador " & Quote & Path.GetFileName(drvFile) & Quote & "..." & CrLf & "Esto puede llevar algo de tiempo y el programa podría congelarse temporalmente" - Case 3 - Label5.Text = "Obtention des informations du fichier pilote " & Quote & Path.GetFileName(drvFile) & Quote & " en cours..." & CrLf & "Cette opération peut prendre un certain temps et le programme peut se bloquer temporairement." - Case 4 - Label5.Text = "Obter informações do ficheiro do controlador " & Quote & Path.GetFileName(drvFile) & Quote & "..." & CrLf & "Isto pode demorar algum tempo e o programa pode congelar temporariamente" - Case 5 - Label5.Text = "Verifica informazioni file driver " & Quote & Path.GetFileName(drvFile) & Quote & "..." & CrLf & "Questa operazione potrebbe richiedere del tempo e il programma potrebbe temporaneamente bloccarsi" - End Select + Label5.Text = LocalizationService.ForSection("GetDriverInfo.DriverInfo").Format("Driver.File.Message", Path.GetFileName(drvFile)) Application.DoEvents() Dim drvInfoCollection As DismDriverCollection = DismApi.GetDriverInfo(imgSession, drvFile) DynaLog.LogMessage("Information collection count: " & drvInfoCollection.Count) @@ -730,31 +227,7 @@ Public Class GetDriverInfo End Try End Try DynaLog.LogMessage("This process has finished.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Ready" - Case "ESN" - Label5.Text = "Listo" - Case "FRA" - Label5.Text = "Prêt" - Case "PTB", "PTG" - Label5.Text = "Pronto" - Case "ITA" - Label5.Text = "Pronto" - End Select - Case 1 - Label5.Text = "Ready" - Case 2 - Label5.Text = "Listo" - Case 3 - Label5.Text = "Prêt" - Case 4 - Label5.Text = "Pronto" - Case 5 - Label5.Text = "Pronto" - End Select + Label5.Text = LocalizationService.ForSection("GetDriverInfo.DriverInfo")("Ready.Item") WindowHelper.EnableCloseCapability(Handle) End Sub @@ -774,59 +247,11 @@ Public Class GetDriverInfo Label19.Text = Casters.CastDismArchitecture(selectedDriver.Architecture, True) If Label14.Text = "" Then DynaLog.LogMessage("There are no Compatible IDs declared by the device manufacturer (" & Quote & selectedDriver.ManufacturerName & Quote & ")") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label14.Text = "None declared by the hardware manufacturer" - Case "ESN" - Label14.Text = "Ninguno declarado por el fabricante del hardware" - Case "FRA" - Label14.Text = "Aucune déclarée par le fabricant du matériel" - Case "PTB", "PTG" - Label14.Text = "Nenhum declarado pelo fabricante do hardware" - Case "ITA" - Label14.Text = "Nessuno dichiarato dal produttore hardware" - End Select - Case 1 - Label14.Text = "None declared by the hardware manufacturer" - Case 2 - Label14.Text = "Ninguno declarado por el fabricante del hardware" - Case 3 - Label14.Text = "Aucune déclarée par le fabricant du matériel" - Case 4 - Label14.Text = "Nenhum declarado pelo fabricante do hardware" - Case 5 - Label14.Text = "Nessuno dichiarato dal produttore hardware" - End Select + Label14.Text = LocalizationService.ForSection("DriverInfo.Display")("NoManufacturer.Label") End If If Label15.Text = "" Then DynaLog.LogMessage("There are no Exclude IDs declared by the device manufacturer (" & Quote & selectedDriver.ManufacturerName & Quote & ")") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label15.Text = "None declared by the hardware manufacturer" - Case "ESN" - Label15.Text = "Ninguno declarado por el fabricante del hardware" - Case "FRA" - Label15.Text = "Aucune déclarée par le fabricant du matériel" - Case "PTB", "PTG" - Label15.Text = "Nenhum declarado pelo fabricante do hardware" - Case "ITA" - Label15.Text = "Nessuno dichiarato dal produttore hardware" - End Select - Case 1 - Label15.Text = "None declared by the hardware manufacturer" - Case 2 - Label15.Text = "Ninguno declarado por el fabricante del hardware" - Case 3 - Label15.Text = "Aucune déclarée par le fabricant du matériel" - Case 4 - Label15.Text = "Nenhum declarado pelo fabricante do hardware" - Case 5 - Label15.Text = "Nessuno dichiarato dal produttore hardware" - End Select + Label15.Text = LocalizationService.ForSection("DriverInfo.Display")("NoManufacturer.Label") End If End Sub @@ -873,31 +298,7 @@ Public Class GetDriverInfo DrvPackageInfoPanel.Visible = True Button2.Enabled = True If Not CurrentHWFile = ListBox1.SelectedIndex Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label7.Text = "Hardware target 1 of " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "ESN" - Label7.Text = "Hardware de destino 1 de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "FRA" - Label7.Text = "Cible matérielle 1 de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "PTB", "PTG" - Label7.Text = "Equipamento-alvo 1 de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "ITA" - Label7.Text = "Destinazione hardware 1 di " & DriverInfoList(ListBox1.SelectedIndex).Count - End Select - Case 1 - Label7.Text = "Hardware target 1 of " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 2 - Label7.Text = "Hardware de destino 1 de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 3 - Label7.Text = "Cible matérielle 1 de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 4 - Label7.Text = "Equipamento-alvo 1 de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 5 - Label7.Text = "Destinazione hardware 1 di " & DriverInfoList(ListBox1.SelectedIndex).Count - End Select + Label7.Text = LocalizationService.ForSection("GetDriverInfo.Hardware").Format("HardwareTarget.Label", DriverInfoList(ListBox1.SelectedIndex).Count) End If If Not CurrentHWFile = ListBox1.SelectedIndex Then CurrentHWTarget = 1 Button4.Enabled = False @@ -958,31 +359,7 @@ Public Class GetDriverInfo DynaLog.LogMessage("Switching to the previous hardware target...") DisplayDriverInformation(CurrentHWTarget - 1) CurrentHWTarget -= 1 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label7.Text = "Hardware target " & CurrentHWTarget & " of " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "ESN" - Label7.Text = "Hardware de destino " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "FRA" - Label7.Text = "Cible matérielle " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "PTB", "PTG" - Label7.Text = "Equipamento-alvo " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "ITA" - Label7.Text = "Destinazione hardware " & CurrentHWTarget & " di " & DriverInfoList(ListBox1.SelectedIndex).Count - End Select - Case 1 - Label7.Text = "Hardware target " & CurrentHWTarget & " of " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 2 - Label7.Text = "Hardware de destino " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 3 - Label7.Text = "Cible matérielle " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 4 - Label7.Text = "Equipamento-alvo " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 5 - Label7.Text = "Destinazione hardware " & CurrentHWTarget & " di " & DriverInfoList(ListBox1.SelectedIndex).Count - End Select + Label7.Text = LocalizationService.ForSection("GetDriverInfo").Format("HardwareTarget.Label", CurrentHWTarget, DriverInfoList(ListBox1.SelectedIndex).Count) Button5.Enabled = True If CurrentHWTarget = 1 Then Button4.Enabled = False End If @@ -993,31 +370,7 @@ Public Class GetDriverInfo DynaLog.LogMessage("Switching to the next hardware target...") DisplayDriverInformation(CurrentHWTarget + 1) CurrentHWTarget += 1 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label7.Text = "Hardware target " & CurrentHWTarget & " of " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "ESN" - Label7.Text = "Hardware de destino " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "FRA" - Label7.Text = "Cible matérielle " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "PTB", "PTG" - Label7.Text = "Equipamento-alvo " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "ITA" - Label7.Text = "Destinazione hardware " & CurrentHWTarget & " di " & DriverInfoList(ListBox1.SelectedIndex).Count - End Select - Case 1 - Label7.Text = "Hardware target " & CurrentHWTarget & " of " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 2 - Label7.Text = "Hardware de destino " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 3 - Label7.Text = "Cible matérielle " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 4 - Label7.Text = "Equipamento-alvo " & CurrentHWTarget & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 5 - Label7.Text = "Destinazione hardware " & CurrentHWTarget & " di " & DriverInfoList(ListBox1.SelectedIndex).Count - End Select + Label7.Text = LocalizationService.ForSection("GetDriverInfo").Format("HardwareTarget.Label", CurrentHWTarget, DriverInfoList(ListBox1.SelectedIndex).Count) Button4.Enabled = True If CurrentHWTarget = DriverInfoList(ListBox1.SelectedIndex).Count Then Button5.Enabled = False End If @@ -1025,122 +378,26 @@ Public Class GetDriverInfo Private Sub Button4_MouseHover(sender As Object, e As EventArgs) Handles Button4.MouseHover Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Previous hardware target" - Case "ESN" - msg = "Anterior hardware de destino" - Case "FRA" - msg = "Cible matérielle précédente" - Case "PTB", "PTG" - msg = "Equipamento-alvo anterior" - Case "ITA" - msg = "Destinazione hardware precedente" - End Select - Case 1 - msg = "Previous hardware target" - Case 2 - msg = "Anterior hardware de destino" - Case 3 - msg = "Cible matérielle précédente" - Case 4 - msg = "Equipamento-alvo anterior" - Case 5 - msg = "Destinazione hardware precedente" - End Select + msg = LocalizationService.ForSection("GetDriverInfo.Tooltip")("Previous.Hardware.Message") WindowHelper.DisplayToolTip(sender, msg) End Sub Private Sub Button5_MouseHover(sender As Object, e As EventArgs) Handles Button5.MouseHover Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Next hardware target" - Case "ESN" - msg = "Siguiente hardware de destino" - Case "FRA" - msg = "Prochaine cible matérielle" - Case "PTB", "PTG" - msg = "Equipamento-alvo seguinte" - Case "ITA" - msg = "Destinazione hardware successiva" - End Select - Case 1 - msg = "Next hardware target" - Case 2 - msg = "Siguiente hardware de destino" - Case 3 - msg = "Prochaine cible matérielle" - Case 4 - msg = "Equipamento-alvo seguinte" - Case 5 - msg = "Destinazione hardware sucecssiva" - End Select + msg = LocalizationService.ForSection("GetDriverInfo.Tooltip")("Next.Hardware.Target.Message") WindowHelper.DisplayToolTip(sender, msg) End Sub Private Sub Button6_MouseHover(sender As Object, e As EventArgs) Handles Button6.MouseHover Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Jump to specific hardware target" - Case "ESN" - msg = "Saltar a hardware de destino específico" - Case "FRA" - msg = "Sauter à la cible matérielle spécifique" - Case "PTB", "PTG" - msg = "Saltar para um equipamento-alvo específico" - Case "ITA" - msg = "Salta ad una destinazione hardware specifica" - End Select - Case 1 - msg = "Jump to specific hardware target" - Case 2 - msg = "Saltar a hardware de destino específico" - Case 3 - msg = "Sauter à la cible matérielle spécifique" - Case 4 - msg = "Saltar para um equipamento-alvo específico" - Case 5 - msg = "Salta ad una destinazione hardware specifica" - End Select + msg = LocalizationService.ForSection("GetDriverInfo.Tooltip")("Jump.Specific.Message") WindowHelper.DisplayToolTip(sender, msg) End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged JumpTo = ComboBox1.SelectedIndex + 1 If JumpTo < 1 Then Exit Sub - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label7.Text = "Hardware target " & JumpTo & " of " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "ESN" - Label7.Text = "Hardware de destino " & JumpTo & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "FRA" - Label7.Text = "Cible matérielle " & JumpTo & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "PTB", "PTG" - Label7.Text = "Equipamento-alvo " & JumpTo & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case "ITA" - Label7.Text = "Destinazione hardware " & JumpTo & " di " & DriverInfoList(ListBox1.SelectedIndex).Count - End Select - Case 1 - Label7.Text = "Hardware target " & JumpTo & " of " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 2 - Label7.Text = "Hardware de destino " & JumpTo & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 3 - Label7.Text = "Cible matérielle " & JumpTo & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 4 - Label7.Text = "Equipamento-alvo " & JumpTo & " de " & DriverInfoList(ListBox1.SelectedIndex).Count - Case 5 - Label7.Text = "Destinazione hardware " & JumpTo & " di " & DriverInfoList(ListBox1.SelectedIndex).Count - End Select + Label7.Text = LocalizationService.ForSection("GetDriverInfo").Format("HardwareTarget.Label", JumpTo, DriverInfoList(ListBox1.SelectedIndex).Count) CurrentHWTarget = JumpTo DisplayDriverInformation(JumpTo) JumpToPanel.Visible = False @@ -1168,49 +425,16 @@ Public Class GetDriverInfo DynaLog.LogMessage("Getting information about driver " & Quote & Path.GetFileName(drv.DriverOriginalFileName) & Quote & "...") Label23.Text = drv.DriverPublishedName Label25.Text = Path.GetFileName(drv.DriverOriginalFileName) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Yes", "No") - Case "ESN" - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Sí", "No") - Case "FRA" - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Oui", "Non") - Case "PTB", "PTG" - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Sim", "Não") - Case "ITA" - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Sì", "No") - End Select - Case 1 - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Yes", "No") - Case 2 - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Sí", "No") - Case 3 - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Oui", "Non") - Case 4 - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Sim", "Não") - Case 5 - Label27.Text = "" - Label34.Text = If(drv.DriverInbox, "Sì", "No") - End Select + Label27.Text = LocalizationService.ForSection("GetDriverInfo")("Value.Label") + Label34.Text = If(drv.DriverInbox, LocalizationService.ForSection("GetDriverInfo")("Yes.Button"), LocalizationService.ForSection("GetDriverInfo")("No.Button")) Label29.Text = drv.DriverVersion.ToString() Label32.Text = drv.DriverClassName Label35.Text = drv.DriverProviderName Label38.Text = drv.DriverDate Label40.Text = "" Label42.Text = "" - Label44.Text = "Unknown" - Label46.Text = "Unknown" + Label44.Text = LocalizationService.ForSection("DriverInfo")("Unknown.Label") + Label46.Text = LocalizationService.ForSection("DriverInfo")("Unknown.Label") Else Dim drv As DismDriverPackage = Nothing If SearchBox1.Text = "" Then @@ -1222,41 +446,8 @@ Public Class GetDriverInfo DynaLog.LogMessage("Getting information about driver " & Quote & Path.GetFileName(drv.OriginalFileName) & Quote & "...") Label23.Text = drv.PublishedName Label25.Text = Path.GetFileName(drv.OriginalFileName) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label27.Text = If(drv.BootCritical, "Yes", "No") - Label34.Text = If(drv.InBox, "Yes", "No") - Case "ESN" - Label27.Text = If(drv.BootCritical, "Sí", "No") - Label34.Text = If(drv.InBox, "Sí", "No") - Case "FRA" - Label27.Text = If(drv.BootCritical, "Oui", "Non") - Label34.Text = If(drv.InBox, "Oui", "Non") - Case "PTB", "PTG" - Label27.Text = If(drv.BootCritical, "Sim", "Não") - Label34.Text = If(drv.InBox, "Sim", "Não") - Case "ITA" - Label27.Text = If(drv.BootCritical, "Sì", "No") - Label34.Text = If(drv.InBox, "Sì", "No") - End Select - Case 1 - Label27.Text = If(drv.BootCritical, "Yes", "No") - Label34.Text = If(drv.InBox, "Yes", "No") - Case 2 - Label27.Text = If(drv.BootCritical, "Sí", "No") - Label34.Text = If(drv.InBox, "Sí", "No") - Case 3 - Label27.Text = If(drv.BootCritical, "Oui", "Non") - Label34.Text = If(drv.InBox, "Oui", "Non") - Case 4 - Label27.Text = If(drv.BootCritical, "Sim", "Não") - Label34.Text = If(drv.InBox, "Sim", "Não") - Case 5 - Label27.Text = If(drv.BootCritical, "Sì", "No") - Label34.Text = If(drv.InBox, "Sì", "No") - End Select + Label27.Text = If(drv.BootCritical, LocalizationService.ForSection("GetDriverInfo")("Yes.Button"), LocalizationService.ForSection("GetDriverInfo")("No.Button")) + Label34.Text = If(drv.InBox, LocalizationService.ForSection("GetDriverInfo")("Value.Button"), LocalizationService.ForSection("GetDriverInfo")("No.Button")) Label29.Text = drv.Version.ToString() Label32.Text = drv.ClassName Label35.Text = drv.ProviderName @@ -1272,38 +463,14 @@ Public Class GetDriverInfo Label38.Text = DriverDateString Label40.Text = drv.ClassDescription Label42.Text = drv.ClassGuid - Label44.Text = Casters.CastDismSignatureStatus(drv.DriverSignature, True) + Label44.Text = Casters.SignatureStatus(drv.DriverSignature, True) Label46.Text = drv.CatalogFile DynaLog.LogMessage("Getting driver signer...") Dim signer As String = DriverSignerViewer.GetSignerInfo(drv.OriginalFileName) If Not (signer Is Nothing OrElse signer = "") Then DynaLog.LogMessage("Driver signer information has been obtained.") DynaLog.LogMessage(String.Format("Driver file: {0} ; Signer: {1}", Quote & Path.GetFileName(drv.OriginalFileName) & Quote, signer)) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label44.Text &= " by " & signer - Case "ESN" - Label44.Text &= " por " & signer - Case "FRA" - Label44.Text &= " par " & signer - Case "PTB", "PTG" - Label44.Text &= " por " & signer - Case "ITA" - Label44.Text &= " da " & signer - End Select - Case 1 - Label44.Text &= " by " & signer - Case 2 - Label44.Text &= " por " & signer - Case 3 - Label44.Text &= " par " & signer - Case 4 - Label44.Text &= " por " & signer - Case 5 - Label44.Text &= " da " & signer - End Select + Label44.Text &= LocalizationService.ForSection("GetDriverInfo")("Text1.Label") & signer End If End If Else @@ -1514,6 +681,6 @@ Public Class GetDriverInfo End Sub Private Sub WizardBtn_MouseHover(sender As Object, e As EventArgs) Handles WizardBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Build query with the Assistant...") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("GetDriverInfo")("Build.Query.Assistant.Label")) End Sub End Class diff --git a/Panels/Get_Ops/Features/GetFeatureInfo.Designer.vb b/Panels/Get_Ops/Features/GetFeatureInfo.Designer.vb index 3009c1038..bd892e2d9 100644 --- a/Panels/Get_Ops/Features/GetFeatureInfo.Designer.vb +++ b/Panels/Get_Ops/Features/GetFeatureInfo.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class GetFeatureInfoDlg Inherits System.Windows.Forms.Form @@ -137,12 +137,12 @@ Partial Class GetFeatureInfoDlg ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Feature name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("FeatureName.Column") Me.ColumnHeader1.Width = 298 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Feature state" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("FeatureState.Column") Me.ColumnHeader2.Width = 118 ' 'SearchPanel @@ -254,7 +254,7 @@ Partial Class GetFeatureInfoDlg Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(78, 13) Me.Label22.TabIndex = 0 - Me.Label22.Text = "Feature name:" + Me.Label22.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("FeatureName.Label") ' 'Label23 ' @@ -264,7 +264,7 @@ Partial Class GetFeatureInfoDlg Me.Label23.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label23.Size = New System.Drawing.Size(38, 15) Me.Label23.TabIndex = 0 - Me.Label23.Text = "Label8" + Me.Label23.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("DynamicValue.Label") Me.Label23.UseMnemonic = False ' 'Label24 @@ -275,7 +275,7 @@ Partial Class GetFeatureInfoDlg Me.Label24.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label24.Size = New System.Drawing.Size(74, 17) Me.Label24.TabIndex = 0 - Me.Label24.Text = "Display name:" + Me.Label24.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("DisplayName.Label") ' 'Label25 ' @@ -286,7 +286,7 @@ Partial Class GetFeatureInfoDlg Me.Label25.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label25.Size = New System.Drawing.Size(38, 15) Me.Label25.TabIndex = 0 - Me.Label25.Text = "Label8" + Me.Label25.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("DynamicValue.Label") Me.Label25.UseMnemonic = False ' 'Label26 @@ -297,7 +297,7 @@ Partial Class GetFeatureInfoDlg Me.Label26.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label26.Size = New System.Drawing.Size(104, 17) Me.Label26.TabIndex = 0 - Me.Label26.Text = "Feature description:" + Me.Label26.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("Description.Label") ' 'Label35 ' @@ -308,7 +308,7 @@ Partial Class GetFeatureInfoDlg Me.Label35.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label35.Size = New System.Drawing.Size(38, 15) Me.Label35.TabIndex = 0 - Me.Label35.Text = "Label8" + Me.Label35.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("DynamicValue.Label") Me.Label35.UseMnemonic = False ' 'Label31 @@ -319,7 +319,7 @@ Partial Class GetFeatureInfoDlg Me.Label31.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label31.Size = New System.Drawing.Size(109, 17) Me.Label31.TabIndex = 0 - Me.Label31.Text = "Is a restart required?" + Me.Label31.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("RestartRequired.Label") ' 'Label32 ' @@ -330,7 +330,7 @@ Partial Class GetFeatureInfoDlg Me.Label32.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label32.Size = New System.Drawing.Size(38, 15) Me.Label32.TabIndex = 0 - Me.Label32.Text = "Label8" + Me.Label32.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("DynamicValue.Label") Me.Label32.UseMnemonic = False ' 'Label41 @@ -341,7 +341,7 @@ Partial Class GetFeatureInfoDlg Me.Label41.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label41.Size = New System.Drawing.Size(77, 17) Me.Label41.TabIndex = 0 - Me.Label41.Text = "Feature state:" + Me.Label41.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("FeatureState.Label") ' 'Label40 ' @@ -352,7 +352,7 @@ Partial Class GetFeatureInfoDlg Me.Label40.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label40.Size = New System.Drawing.Size(38, 15) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Label8" + Me.Label40.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("DynamicValue.Label") Me.Label40.UseMnemonic = False ' 'Label43 @@ -363,7 +363,7 @@ Partial Class GetFeatureInfoDlg Me.Label43.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label43.Size = New System.Drawing.Size(99, 17) Me.Label43.TabIndex = 0 - Me.Label43.Text = "Custom properties:" + Me.Label43.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("CustomProps.Label") ' 'Label42 ' @@ -374,7 +374,7 @@ Partial Class GetFeatureInfoDlg Me.Label42.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label42.Size = New System.Drawing.Size(38, 15) Me.Label42.TabIndex = 3 - Me.Label42.Text = "Label8" + Me.Label42.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("DynamicValue.Label") Me.Label42.UseMnemonic = False Me.Label42.Visible = False ' @@ -472,7 +472,7 @@ Partial Class GetFeatureInfoDlg Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(436, 36) Me.Label36.TabIndex = 0 - Me.Label36.Text = "Feature information" + Me.Label36.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("FeatureInfo.Label") Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel7 @@ -492,7 +492,7 @@ Partial Class GetFeatureInfoDlg Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(436, 396) Me.Label37.TabIndex = 0 - Me.Label37.Text = "Select an installed feature on the left to view its information here" + Me.Label37.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("Installed.Left.Label") Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'FlowLayoutPanel4 @@ -510,7 +510,7 @@ Partial Class GetFeatureInfoDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(38, 13) Me.Label2.TabIndex = 6 - Me.Label2.Text = "Ready" + Me.Label2.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("Ready.Label") ' 'Button2 ' @@ -519,7 +519,7 @@ Partial Class GetFeatureInfoDlg Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(96, 23) Me.Button2.TabIndex = 7 - Me.Button2.Text = "Save..." + Me.Button2.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("Save.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -529,7 +529,7 @@ Partial Class GetFeatureInfoDlg Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(152, 23) Me.Button1.TabIndex = 8 - Me.Button1.Text = "Look this item online" + Me.Button1.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("Look.Item.Online.Button") Me.Button1.UseVisualStyleBackColor = True Me.Button1.Visible = False ' @@ -564,7 +564,7 @@ Partial Class GetFeatureInfoDlg Me.Name = "GetFeatureInfoDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Get feature information" + Me.Text = LocalizationService.ForSection("Designer.GetFeatureInfo")("Get.Feature.Label") Me.FeatureInfoPanel.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) diff --git a/Panels/Get_Ops/Features/GetFeatureInfo.vb b/Panels/Get_Ops/Features/GetFeatureInfo.vb index 4008f49c8..d98332a9c 100644 --- a/Panels/Get_Ops/Features/GetFeatureInfo.vb +++ b/Panels/Get_Ops/Features/GetFeatureInfo.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.Threading Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Dism @@ -23,171 +23,21 @@ Public Class GetFeatureInfoDlg cPropValue.Font = New Font(MainForm.LogFont, MainForm.LogFontSize, If(MainForm.LogFontIsBold, FontStyle.Bold, FontStyle.Regular)) SearchPic.Image = GetGlyphResource("search") WizardBtn.Image = GetGlyphResource("assistant") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Get feature information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ready" - Label22.Text = "Feature name:" - Label24.Text = "Display name:" - Label26.Text = "Feature description:" - Label31.Text = "Is a restart required?" - Label36.Text = "Feature information" - Label37.Text = "Select an installed feature on the left to view its information here" - Label41.Text = "Feature state:" - Label43.Text = "Custom properties:" - ListView1.Columns(0).Text = "Feature name" - ListView1.Columns(1).Text = "Feature state" - Button2.Text = "Save..." - SearchBox1.cueBanner = "Type here to search for a feature..." - Case "ESN" - Text = "Obtener información de características" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Listo" - Label22.Text = "Nombre de característica:" - Label24.Text = "Nombre para mostrar:" - Label26.Text = "Descripción de la característica:" - Label31.Text = "¿Se requiere un reinicio?" - Label36.Text = "Información de la característica" - Label37.Text = "Seleccione una característica instalada en la izquierda para ver su información aquí" - Label41.Text = "Estado de la característica" - Label43.Text = "Propiedades personalizadas:" - ListView1.Columns(0).Text = "Nombre de característica" - ListView1.Columns(1).Text = "Estado" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Escriba aquí para buscar una característica..." - Case "FRA" - Text = "Obtenir des informations sur les caractéristiques" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Prêt" - Label22.Text = "Nom de la caractéristique :" - Label24.Text = "Nom d'affichage :" - Label26.Text = "Description de la caractéristique :" - Label31.Text = "Un redémarrage est-il nécessaire ?" - Label36.Text = "Information sur la caractéristique" - Label37.Text = "Sélectionnez une caractéristique installée sur la gauche pour afficher ses informations ici" - Label41.Text = "État de la caractéristique :" - Label43.Text = "Propriétés personnalisées :" - ListView1.Columns(0).Text = "Nom de la caractéristique" - ListView1.Columns(1).Text = "État de la caractéristique" - Button2.Text = "Sauvegarder..." - SearchBox1.cueBanner = "Tapez ici pour rechercher une caractéristique..." - Case "PTB", "PTG" - Text = "Obter informações sobre a caraterística" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Pronto" - Label22.Text = "Nome da caraterística:" - Label24.Text = "Nome do ecrã:" - Label26.Text = "Descrição da caraterística:" - Label31.Text = "É necessário reiniciar?" - Label36.Text = "Informação sobre a caraterística" - Label37.Text = "Seleccione uma caraterística instalada à esquerda para ver as suas informações aqui" - Label41.Text = "Estado da funcionalidade:" - Label43.Text = "Propriedades personalizadas:" - ListView1.Columns(0).Text = "Nome da caraterística" - ListView1.Columns(1).Text = "Estado da caraterística" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Digite aqui para pesquisar uma caraterística..." - Case "ITA" - Text = "Verifica informazioni funzionalità" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Pronto" - Label22.Text = "Nome funzionalità:" - Label24.Text = "Nome visualizzato:" - Label26.Text = "Descrizione funzionalità:" - Label31.Text = "È necessario un riavvio?" - Label36.Text = "Informazioni funzionalità" - Label37.Text = "Per visualizzarne qui le informazioni seleziona a sinistra una funzionalità installata" - Label41.Text = "Stato funzionalità:" - Label43.Text = "Proprietà personalizzate:" - ListView1.Columns(0).Text = "Nome funzionalità" - ListView1.Columns(1).Text = "Stato funzionalità" - Button2.Text = "Salva..." - SearchBox1.cueBanner = "Digita qui per cercare una funzionalità..." - End Select - Case 1 - Text = "Get feature information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ready" - Label22.Text = "Feature name:" - Label24.Text = "Display name:" - Label26.Text = "Feature description:" - Label31.Text = "Is a restart required?" - Label36.Text = "Feature information" - Label37.Text = "Select an installed feature on the left to view its information here" - Label41.Text = "Feature state:" - Label43.Text = "Custom properties:" - ListView1.Columns(0).Text = "Feature name" - ListView1.Columns(1).Text = "Feature state" - Button2.Text = "Save..." - SearchBox1.cueBanner = "Type here to search for a feature..." - Case 2 - Text = "Obtener información de características" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Listo" - Label22.Text = "Nombre de característica:" - Label24.Text = "Nombre para mostrar:" - Label26.Text = "Descripción de la característica:" - Label31.Text = "¿Se requiere un reinicio?" - Label36.Text = "Información de la característica" - Label37.Text = "Seleccione una característica instalada en la izquierda para ver su información aquí" - Label41.Text = "Estado de la característica" - Label43.Text = "Propiedades personalizadas:" - ListView1.Columns(0).Text = "Nombre de característica" - ListView1.Columns(1).Text = "Estado" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Escriba aquí para buscar una característica..." - Case 3 - Text = "Obtenir des informations sur les caractéristiques" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Prêt" - Label22.Text = "Nom de la caractéristique :" - Label24.Text = "Nom d'affichage :" - Label26.Text = "Description de la caractéristique :" - Label31.Text = "Un redémarrage est-il nécessaire ?" - Label36.Text = "Information sur la caractéristique" - Label37.Text = "Sélectionnez une caractéristique installée sur la gauche pour afficher ses informations ici" - Label41.Text = "État de la caractéristique :" - Label43.Text = "Propriétés personnalisées :" - ListView1.Columns(0).Text = "Nom de la caractéristique" - ListView1.Columns(1).Text = "État de la caractéristique" - Button2.Text = "Sauvegarder..." - SearchBox1.cueBanner = "Tapez ici pour rechercher une caractéristique..." - Case 4 - Text = "Obter informações sobre a caraterística" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Pronto" - Label22.Text = "Nome da caraterística:" - Label24.Text = "Nome do ecrã:" - Label26.Text = "Descrição da caraterística:" - Label31.Text = "É necessário reiniciar?" - Label36.Text = "Informação sobre a caraterística" - Label37.Text = "Seleccione uma caraterística instalada à esquerda para ver as suas informações aqui" - Label41.Text = "Estado da funcionalidade:" - Label43.Text = "Propriedades personalizadas:" - ListView1.Columns(0).Text = "Nome da caraterística" - ListView1.Columns(1).Text = "Estado da caraterística" - Button2.Text = "Guardar..." - SearchBox1.cueBanner = "Digite aqui para pesquisar uma caraterística..." - Case 5 - Text = "Verifica informazioni funzionalità" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Pronto" - Label22.Text = "Nome funzionalità:" - Label24.Text = "Nome visualizzato:" - Label26.Text = "Descrizione funzionalità:" - Label31.Text = "È necessario un riavvio?" - Label36.Text = "Informazioni sulla funzionalità" - Label37.Text = "Per visualizzarne qui le informazioni seleziona a sinistra una funzionalità installata" - Label41.Text = "Stato funzionalità:" - Label43.Text = "Proprietà personalizzate:" - ListView1.Columns(0).Text = "Nome funzionalità" - ListView1.Columns(1).Text = "Stato funzionalità" - Button2.Text = "Salva..." - SearchBox1.cueBanner = "Digita qui per cercare una funzionalità..." - End Select + Text = LocalizationService.ForSection("GetFeatureInfo")("Get.Feature.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("GetFeatureInfo").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("GetFeatureInfo")("Ready.Label") + Label22.Text = LocalizationService.ForSection("GetFeatureInfo")("FeatureName.Label") + Label24.Text = LocalizationService.ForSection("GetFeatureInfo")("DisplayName.Label") + Label26.Text = LocalizationService.ForSection("GetFeatureInfo")("Description.Label") + Label31.Text = LocalizationService.ForSection("GetFeatureInfo")("RestartRequired.Label") + Label36.Text = LocalizationService.ForSection("GetFeatureInfo")("FeatureInfo.Label") + Label37.Text = LocalizationService.ForSection("GetFeatureInfo")("Installed.Left.Label") + Label41.Text = LocalizationService.ForSection("GetFeatureInfo")("FeatureState.Label") + Label43.Text = LocalizationService.ForSection("GetFeatureInfo")("CustomProps.Label") + ListView1.Columns(0).Text = LocalizationService.ForSection("GetFeatureInfo")("FeatureName.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("GetFeatureInfo")("FeatureState.Column") + Button2.Text = LocalizationService.ForSection("GetFeatureInfo")("Save.Button") + SearchBox1.cueBanner = LocalizationService.ForSection("GetFeatureInfo")("Type.Search.Label") If SplitContainer2.SplitterDistance = 440 Then SplitContainer2.SplitterDistance = WindowHelper.ScaleLogical(SplitContainer2.SplitterDistance) End If @@ -222,57 +72,9 @@ Public Class GetFeatureInfoDlg If MainForm.ImgBW.IsBusy Then DynaLog.LogMessage("Background processes are busy. Stopping them...") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes need to have completed before showing feature information. We'll wait until they have completed" - Case "ESN" - msg = "Los procesos en segundo plano deben haber completado antes de obtener información de la característica. Esperaremos hasta que hayan completado" - Case "FRA" - msg = "Les processus en plan doivent être terminés avant d'afficher les caractéristiques. Nous attendrons qu'ils soient terminés" - Case "PTB", "PTG" - msg = "Os processos em segundo plano têm de estar concluídos antes de mostrar informações sobre as características. Vamos esperar até que estejam concluídos" - Case "ITA" - msg = "Prima di poter visualizzare le informazioni sulle funzionalità i processi in background devono essere stati completati. Attendi che siano stati completati." - End Select - Case 1 - msg = "Background processes need to have completed before showing feature information. We'll wait until they have completed" - Case 2 - msg = "Los procesos en segundo plano deben haber completado antes de obtener información de la característica. Esperaremos hasta que hayan completado" - Case 3 - msg = "Les processus en plan doivent être terminés avant d'afficher les caractéristiques. Nous attendrons qu'ils soient terminés" - Case 4 - msg = "Os processos em segundo plano têm de estar concluídos antes de mostrar informações sobre as características. Vamos esperar até que estejam concluídos" - Case 5 - msg = "Prima di poter visualizzare le informazioni sulle funzionalità i processi in background devono essere stati completati. Attendi che siano stati completati." - End Select + msg = LocalizationService.ForSection("GetFeatureInfo")("Wait.Background.Message") MsgBox(msg, vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Waiting for background processes to finish..." - Case "ESN" - Label2.Text = "Esperando a que terminen los procesos en segundo plano..." - Case "FRA" - Label2.Text = "Attente de la fin des processus en arrière plan..." - Case "PTB", "PTG" - Label2.Text = "À espera que os processos em segundo plano terminem..." - Case "ITA" - Label2.Text = "In attesa che i processi in background siano stati completati..." - End Select - Case 1 - Label2.Text = "Waiting for background processes to finish..." - Case 2 - Label2.Text = "Esperando a que terminen los procesos en segundo plano..." - Case 3 - Label2.Text = "Attente de la fin des processus en arrière plan..." - Case 4 - Label2.Text = "À espera que os processos em segundo plano terminem..." - Case 5 - Label2.Text = "In attesa che i processi in background siano stati completati..." - End Select + Label2.Text = LocalizationService.ForSection("GetFeatureInfo")("Waiting.Background.Label") While MainForm.ImgBW.IsBusy Application.DoEvents() Thread.Sleep(500) @@ -282,62 +84,14 @@ Public Class GetFeatureInfoDlg cPropPathView.Nodes.Clear() cPropName.Text = "" cPropValue.Text = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Preparing to get feature information..." - Case "ESN" - Label2.Text = "Preparándonos para obtener información de la característica..." - Case "FRA" - Label2.Text = "Préparation de l'obtention des informations de la caractéristique en cours..." - Case "PTB", "PTG" - Label2.Text = "Preparar-se para obter informações sobre a característica..." - Case "ITA" - Label2.Text = "Preparazione verifica informazioni funzionalità..." - End Select - Case 1 - Label2.Text = "Preparing to get feature information..." - Case 2 - Label2.Text = "Preparándonos para obtener información de la característica..." - Case 3 - Label2.Text = "Préparation de l'obtention des informations de la caractéristique en cours..." - Case 4 - Label2.Text = "Preparar-se para obter informações sobre a característica..." - Case 5 - Label2.Text = "Preparazione verifica informazioni funzionalità..." - End Select + Label2.Text = LocalizationService.ForSection("GetFeatureInfo")("Preparing.Item") Application.DoEvents() Try DynaLog.LogMessage("Initializing API...") DismApi.Initialize(DismLogLevel.LogErrors) DynaLog.LogMessage("Creating session...") Using imgSession As DismSession = If(MainForm.OnlineManagement, DismApi.OpenOnlineSession(), DismApi.OpenOfflineSession(MainForm.MountDir)) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Getting information from " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case "ESN" - Label2.Text = "Obteniendo información de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case "FRA" - Label2.Text = "Obtention des informations de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & " en cours..." - Case "PTB", "PTG" - Label2.Text = "Obter informações de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case "ITA" - Label2.Text = "Verifica informazioni da " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - End Select - Case 1 - Label2.Text = "Getting information from " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case 2 - Label2.Text = "Obteniendo información de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case 3 - Label2.Text = "Obtention des informations de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & " en cours..." - Case 4 - Label2.Text = "Obter informações de " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - Case 5 - Label2.Text = "Verifica informazioni da " & Quote & ListView1.FocusedItem.SubItems(0).Text & Quote & "..." - End Select + Label2.Text = LocalizationService.ForSection("GetFeatureInfo").Format("GettingInfo.Item", ListView1.FocusedItem.SubItems(0).Text) DynaLog.LogMessage("Feature to get information about: " & ListView1.FocusedItem.SubItems(0).Text) Application.DoEvents() Dim featInfo As DismFeatureInfo = DismApi.GetFeatureInfo(imgSession, ListView1.FocusedItem.SubItems(0).Text) @@ -357,58 +111,10 @@ Public Class GetFeatureInfoDlg cPropContents &= "- " & If(cProp.Path <> "", cProp.Path & "\", "") & cProp.Name & ": " & cProp.Value & CrLf Next PopulateTreeView(cPropPathView, cPropContents.Replace("- ", "").Trim()) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - cPropValue.Text = "Please select or expand an entry." - Case "ESN" - cPropValue.Text = "Por favor, seleccione o expanda una entrada." - Case "FRA" - cPropValue.Text = "Veuillez sélectionner ou étendre une entrée." - Case "PTB", "PTG" - cPropValue.Text = "Por favor, seleccione ou expanda uma entrada." - Case "ITA" - cPropValue.Text = "Seleziona o espandi un elemento." - End Select - Case 1 - cPropValue.Text = "Please select or expand an entry." - Case 2 - cPropValue.Text = "Por favor, seleccione o expanda una entrada." - Case 3 - cPropValue.Text = "Veuillez sélectionner ou étendre une entrée." - Case 4 - cPropValue.Text = "Por favor, seleccione ou expanda uma entrada." - Case 5 - cPropValue.Text = "Seleziona o espandi un elemento." - End Select + cPropValue.Text = LocalizationService.ForSection("GetFeatureInfo")("Expand.Entry.Label") Else DynaLog.LogMessage("This feature does not have custom properties.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label42.Text = "None" - Case "ESN" - Label42.Text = "Ninguna" - Case "FRA" - Label42.Text = "Aucune" - Case "PTB", "PTG" - Label42.Text = "Nenhum" - Case "ITA" - Label42.Text = "Nessuno" - End Select - Case 1 - Label42.Text = "None" - Case 2 - Label42.Text = "Ninguna" - Case 3 - Label42.Text = "Aucune" - Case 4 - Label42.Text = "Nenhum" - Case 5 - Label42.Text = "Nessuno" - End Select + Label42.Text = LocalizationService.ForSection("GetFeatureInfo")("None.Label") Label42.Visible = True CPropViewer.Visible = False End If @@ -419,31 +125,7 @@ Public Class GetFeatureInfoDlg Catch ex As Exception DynaLog.LogMessage("Could not get feature information. Error message: " & ex.Message) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Could not get feature information. Reason: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ESN" - msg = "No pudimos obtener información de la característica. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "FRA" - msg = "Impossible d'obtenir des informations sur les caractéristiques. Raison : " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "PTB", "PTG" - msg = "Não foi possível obter informações sobre a característica. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ITA" - msg = "Impossibile verificare informazioni sulle funzionalità. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select - Case 1 - msg = "Could not get feature information. Reason: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 2 - msg = "No pudimos obtener información de la característica. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 3 - msg = "Impossible d'obtenir des informations sur les caractéristiques. Raison : " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 4 - msg = "Não foi possível obter informações sobre a característica. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 5 - msg = "Impossibile verificare informazioni sulle funzionalità. Motivo: " & CrLf & CrLf & ex.ToString() & ": " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select + msg = LocalizationService.ForSection("GetFeatureInfo").Format("Reason.Message", ex.ToString(), ex.Message, Hex(ex.HResult)) MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally DynaLog.LogMessage("Shutting down API...") @@ -453,31 +135,7 @@ Public Class GetFeatureInfoDlg End Try End Try - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Ready" - Case "ESN" - Label2.Text = "Listo" - Case "FRA" - Label2.Text = "Prêt" - Case "PTB", "PTG" - Label2.Text = "Pronto" - Case "ITA" - Label2.Text = "Pronto" - End Select - Case 1 - Label2.Text = "Ready" - Case 2 - Label2.Text = "Listo" - Case 3 - Label2.Text = "Prêt" - Case 4 - Label2.Text = "Pronto" - Case 5 - Label2.Text = "Pronto" - End Select + Label2.Text = LocalizationService.ForSection("GetFeatureInfo")("Ready.Item") Panel4.Visible = True Panel7.Visible = False Else @@ -542,31 +200,7 @@ Public Class GetFeatureInfoDlg DynaLog.LogMessage("Value of selected custom property: " & selectedNode.Tag.ToString()) cPropValue.Text = selectedNode.Tag.ToString() Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - cPropValue.Text = "No value has been defined. If the selected item has subitems, expand it." - Case "ESN" - cPropValue.Text = "No se ha definido un valor. Si el elemento seleccionado tiene elementos secundarios, expándalo." - Case "FRA" - cPropValue.Text = "Aucune valeur n'a été définie. Si l'élément sélectionné a des sous-éléments, développez-le." - Case "PTB", "PTG" - cPropValue.Text = "Nenhum valor foi definido. Se o item selecionado tiver subitens, expanda-o." - Case "ITA" - cPropValue.Text = "Non è stato definito alcun valore. Se l'elemento selezionato ha delle sotto voci, espandilo." - End Select - Case 1 - cPropValue.Text = "No value has been defined. If the selected item has subitems, expand it." - Case 2 - cPropValue.Text = "No se ha definido un valor. Si el elemento seleccionado tiene elementos secundarios, expándalo." - Case 3 - cPropValue.Text = "Aucune valeur n'a été définie. Si l'élément sélectionné a des sous-éléments, développez-le." - Case 4 - cPropValue.Text = "Nenhum valor foi definido. Se o item selecionado tiver subitens, expanda-o." - Case 5 - cPropValue.Text = "Non è stato definito alcun valore. Se l'elemento selezionato ha delle sotto voci, espandilo." - End Select + cPropValue.Text = LocalizationService.ForSection("FeatureInfo.PathSelection")("SelectedValue.Message") End If End Sub @@ -700,6 +334,6 @@ Public Class GetFeatureInfoDlg End Sub Private Sub WizardBtn_MouseHover(sender As Object, e As EventArgs) Handles WizardBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Build query with the Assistant...") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("GetFeatureInfo")("Build.Query.Assistant.Label")) End Sub End Class diff --git a/Panels/Get_Ops/FilterAssistants/CapabilityFilterAssistantDialog.Designer.vb b/Panels/Get_Ops/FilterAssistants/CapabilityFilterAssistantDialog.Designer.vb index 0f5b09862..f9ae6b565 100644 --- a/Panels/Get_Ops/FilterAssistants/CapabilityFilterAssistantDialog.Designer.vb +++ b/Panels/Get_Ops/FilterAssistants/CapabilityFilterAssistantDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class CapabilityFilterAssistantDialog Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class CapabilityFilterAssistantDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Apply" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.CapabilityFilter")("Apply.Button") ' 'Cancel_Button ' @@ -69,7 +69,7 @@ Partial Class CapabilityFilterAssistantDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Clear" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.CapabilityFilter")("Clear.Button") ' 'TableLayoutPanel2 ' @@ -99,7 +99,7 @@ Partial Class CapabilityFilterAssistantDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(117, 27) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Name:" + Me.Label2.Text = LocalizationService.ForSection("Designer.CapabilityFilter")("Name.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label3 @@ -110,7 +110,7 @@ Partial Class CapabilityFilterAssistantDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(117, 27) Me.Label3.TabIndex = 1 - Me.Label3.Text = "State:" + Me.Label3.Text = LocalizationService.ForSection("Designer.CapabilityFilter")("State.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'TextBox1 @@ -125,7 +125,7 @@ Partial Class CapabilityFilterAssistantDialog ' Me.ComboBox1.Dock = System.Windows.Forms.DockStyle.Fill Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Any state", "Installed", "Installation Pending", "Removed"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.CapabilityFilter")("AnyState.Item"), LocalizationService.ForSection("Designer.CapabilityFilter")("Installed.Item"), LocalizationService.ForSection("Designer.CapabilityFilter")("Install.Pending.Item"), LocalizationService.ForSection("Designer.CapabilityFilter")("Removed.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(126, 30) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(442, 21) @@ -138,7 +138,7 @@ Partial Class CapabilityFilterAssistantDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(155, 13) Me.Label1.TabIndex = 3 - Me.Label1.Text = "Filter capability information by:" + Me.Label1.Text = LocalizationService.ForSection("Designer.CapabilityFilter")("FilterInfo.Prompt.Label") ' 'CapabilityFilterAssistantDialog ' @@ -157,7 +157,7 @@ Partial Class CapabilityFilterAssistantDialog Me.Name = "CapabilityFilterAssistantDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Filter capability information" + Me.Text = LocalizationService.ForSection("Designer.CapabilityFilter")("FilterInfo.Title") Me.TableLayoutPanel1.ResumeLayout(False) Me.TableLayoutPanel2.ResumeLayout(False) Me.TableLayoutPanel2.PerformLayout() diff --git a/Panels/Get_Ops/FilterAssistants/DriverFilterAssistantDialog.Designer.vb b/Panels/Get_Ops/FilterAssistants/DriverFilterAssistantDialog.Designer.vb index 7c2da63bf..b6906ef7a 100644 --- a/Panels/Get_Ops/FilterAssistants/DriverFilterAssistantDialog.Designer.vb +++ b/Panels/Get_Ops/FilterAssistants/DriverFilterAssistantDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class DriverFilterAssistantDialog Inherits System.Windows.Forms.Form @@ -107,7 +107,7 @@ Partial Class DriverFilterAssistantDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Apply" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.DriverFilter")("Apply.Button") ' 'Cancel_Button ' @@ -118,7 +118,7 @@ Partial Class DriverFilterAssistantDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Clear" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.DriverFilter")("Clear.Button") ' 'Label1 ' @@ -127,14 +127,14 @@ Partial Class DriverFilterAssistantDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(138, 13) Me.Label1.TabIndex = 4 - Me.Label1.Text = "Filter driver information by:" + Me.Label1.Text = LocalizationService.ForSection("Designer.DriverFilter")("FilterPrompt.Label") ' 'ComboBox1 ' Me.ComboBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Published Name", "Original File Name", "Provider Name", "Class Name", "Inbox Status", "Boot-Critical Status", "Signature Status", "Date"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.DriverFilter")("PublishedName.Item"), LocalizationService.ForSection("Designer.DriverFilter")("Original.File.Name.Item"), LocalizationService.ForSection("Designer.DriverFilter")("ProviderName.Item"), LocalizationService.ForSection("Designer.DriverFilter")("ClassName.Item"), LocalizationService.ForSection("Designer.DriverFilter")("InboxStatus.Item"), LocalizationService.ForSection("Designer.DriverFilter")("Boot.Critical.Status.Item"), LocalizationService.ForSection("Designer.DriverFilter")("SignatureStatus.Item"), LocalizationService.ForSection("Designer.DriverFilter")("Date.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(15, 28) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(597, 21) @@ -214,7 +214,7 @@ Partial Class DriverFilterAssistantDialog Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(67, 13) Me.Label13.TabIndex = 1 - Me.Label13.Text = "Month Name" + Me.Label13.Text = LocalizationService.ForSection("Designer.DriverFilter")("MonthName.Label") Me.Label13.Visible = False ' 'NumericUpDown1 @@ -247,7 +247,7 @@ Partial Class DriverFilterAssistantDialog Me.ComboBox4.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox4.FormattingEnabled = True - Me.ComboBox4.Items.AddRange(New Object() {"Year", "Month", "Date"}) + Me.ComboBox4.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.DriverFilter")("Year.Item"), LocalizationService.ForSection("Designer.DriverFilter")("Month.Item"), LocalizationService.ForSection("Designer.DriverFilter")("Date.Item")}) Me.ComboBox4.Location = New System.Drawing.Point(12, 12) Me.ComboBox4.Name = "ComboBox4" Me.ComboBox4.Size = New System.Drawing.Size(546, 21) @@ -258,7 +258,7 @@ Partial Class DriverFilterAssistantDialog Me.ComboBox3.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox3.FormattingEnabled = True - Me.ComboBox3.Items.AddRange(New Object() {"Released on", "Not released on", "Released before", "Released on or before", "Released after", "Released on or after"}) + Me.ComboBox3.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.DriverFilter")("Released.Item"), LocalizationService.ForSection("Designer.DriverFilter")("NotReleased.Item"), LocalizationService.ForSection("Designer.DriverFilter")("ReleasedBefore.Item"), LocalizationService.ForSection("Designer.DriverFilter")("ReleasedOnBefore.Item"), LocalizationService.ForSection("Designer.DriverFilter")("ReleasedAfter.Item"), LocalizationService.ForSection("Designer.DriverFilter")("ReleasedOnAfter.Item")}) Me.ComboBox3.Location = New System.Drawing.Point(14, 32) Me.ComboBox3.Name = "ComboBox3" Me.ComboBox3.Size = New System.Drawing.Size(570, 21) @@ -271,7 +271,7 @@ Partial Class DriverFilterAssistantDialog Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(34, 13) Me.Label12.TabIndex = 0 - Me.Label12.Text = "Date:" + Me.Label12.Text = LocalizationService.ForSection("Designer.DriverFilter")("Date.Label") ' 'SignatureStatusFilterPanel ' @@ -291,7 +291,7 @@ Partial Class DriverFilterAssistantDialog Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(216, 17) Me.CheckBox3.TabIndex = 1 - Me.CheckBox3.Text = "The drivers I'm searching for are signed" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.DriverFilter")("Search.Signed.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'Label11 @@ -301,7 +301,7 @@ Partial Class DriverFilterAssistantDialog Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(91, 13) Me.Label11.TabIndex = 0 - Me.Label11.Text = "Signature Status:" + Me.Label11.Text = LocalizationService.ForSection("Designer.DriverFilter")("SignatureStatus.Label") ' 'BootCriticalStatusFilterPanel ' @@ -321,7 +321,7 @@ Partial Class DriverFilterAssistantDialog Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(312, 17) Me.CheckBox2.TabIndex = 1 - Me.CheckBox2.Text = "The drivers I'm searching for are critical to the boot process" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.DriverFilter")("Search.BootCritical.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'Label10 @@ -331,7 +331,7 @@ Partial Class DriverFilterAssistantDialog Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(103, 13) Me.Label10.TabIndex = 0 - Me.Label10.Text = "Boot-Critical Status:" + Me.Label10.Text = LocalizationService.ForSection("Designer.DriverFilter")("Boot.Critical.Status.Label") ' 'InboxStatusFilterPanel ' @@ -351,7 +351,7 @@ Partial Class DriverFilterAssistantDialog Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(339, 17) Me.CheckBox1.TabIndex = 1 - Me.CheckBox1.Text = "The drivers I'm searching for are part of the Windows distribution" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.DriverFilter")("Search.Inbox.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label9 @@ -361,7 +361,7 @@ Partial Class DriverFilterAssistantDialog Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(73, 13) Me.Label9.TabIndex = 0 - Me.Label9.Text = "Inbox Status:" + Me.Label9.Text = LocalizationService.ForSection("Designer.DriverFilter")("InboxStatus.Label") ' 'ClassNameFilterPanel ' @@ -399,7 +399,7 @@ Partial Class DriverFilterAssistantDialog Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(124, 29) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Class Name:" + Me.Label6.Text = LocalizationService.ForSection("Designer.DriverFilter")("ClassName.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label7 @@ -409,7 +409,7 @@ Partial Class DriverFilterAssistantDialog Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(124, 94) Me.Label7.TabIndex = 0 - Me.Label7.Text = "Class Name Notes:" + Me.Label7.Text = LocalizationService.ForSection("Designer.DriverFilter")("Class.Name.Notes.Label") ' 'Label8 ' @@ -456,7 +456,7 @@ Partial Class DriverFilterAssistantDialog Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(81, 13) Me.Label5.TabIndex = 0 - Me.Label5.Text = "Provider Name:" + Me.Label5.Text = LocalizationService.ForSection("Designer.DriverFilter")("ProviderName.Label") ' 'OriginalFileNameFilterPanel ' @@ -485,7 +485,7 @@ Partial Class DriverFilterAssistantDialog Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(96, 13) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Original File Name:" + Me.Label4.Text = LocalizationService.ForSection("Designer.DriverFilter")("Original.File.Name.Label") ' 'PublishedNameFilterPanel ' @@ -514,7 +514,7 @@ Partial Class DriverFilterAssistantDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(86, 13) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Published Name:" + Me.Label3.Text = LocalizationService.ForSection("Designer.DriverFilter")("PublishedName.Label") ' 'NoFilterTypeSelectedPanel ' @@ -533,7 +533,7 @@ Partial Class DriverFilterAssistantDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(595, 179) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Choose a filter to use for driver searches." + Me.Label2.Text = LocalizationService.ForSection("Designer.DriverFilter")("Driver.Searches.Choose.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'DriverFilterAssistantDialog @@ -554,7 +554,7 @@ Partial Class DriverFilterAssistantDialog Me.Name = "DriverFilterAssistantDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Filter driver information" + Me.Text = LocalizationService.ForSection("Designer.DriverFilter")("Title") Me.TableLayoutPanel1.ResumeLayout(False) Me.FilterTypeContainerPanel.ResumeLayout(False) Me.DateFilterPanel.ResumeLayout(False) diff --git a/Panels/Get_Ops/FilterAssistants/DriverFilterAssistantDialog.vb b/Panels/Get_Ops/FilterAssistants/DriverFilterAssistantDialog.vb index 2ededf126..ea236ffb3 100644 --- a/Panels/Get_Ops/FilterAssistants/DriverFilterAssistantDialog.vb +++ b/Panels/Get_Ops/FilterAssistants/DriverFilterAssistantDialog.vb @@ -1,77 +1,77 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class DriverFilterAssistantDialog Public AppliedQuery As String Private DriverClassInfoDictionary As New Dictionary(Of String, String) From { - {"AudioProcessingObject", "Includes Audio processing objects (APOs). For more info, see Windows Audio Processing Objects."}, - {"Battery", "Includes battery devices and UPS devices."}, - {"Biometric", "(Windows Server 2003 and later versions) Includes all biometric-based personal identification devices."}, - {"Bluetooth", "(Windows XP SP1 and later versions) Includes all Bluetooth devices."}, - {"Camera", "(Windows 10 version 1709 and later versions) Includes universal camera drivers."}, - {"CDROM", "Includes CD-ROM drives, including SCSI CD-ROM drives. By default, the system's CD-ROM class installer also installs a system-supplied CD audio driver and CD-ROM changer driver as Plug and Play filters."}, - {"DiskDrive", "Includes hard disk drives. See also the HDC and SCSIAdapter classes."}, - {"Display", "Includes video adapters. Drivers for this class include display drivers and video miniport drivers."}, - {"Extension", "(Windows 10 and later versions) Includes all devices requiring customizations. For more information, see Using an Extension INF File."}, - {"FDC", "Includes floppy disk drive controllers."}, - {"FloppyDisk", "Includes floppy disk drives."}, - {"HDC", "Includes hard disk controllers, including ATA/ATAPI controllers but not SCSI and RAID disk controllers."}, - {"HIDClass", "Includes interactive input devices that are operated by the system-supplied HID class driver. Includes USB devices that comply with the USB HID Standard and non-USB devices that use a HID minidriver. For more information, see HIDClass Device Setup Class. See also the Keyboard or Mouse classes."}, - {"Dot4", "Includes devices that control the operation of multifunction IEEE 1284.4 peripheral devices."}, - {"Dot4Print", "Includes Dot4 print functions. A Dot4 print function is a function on a Dot4 device and has a single child device, which is a member of the Printer device setup class."}, - {"61883", "Includes IEEE 1394 devices that support the IEC-61883 protocol device class. The 61883 component includes the 61883.sys protocol driver that transmits various audio and video data streams over the 1394 bus. These currently include standard/high/low quality DV, MPEG2, DSS, and Audio. The IEC-61883 specifications define these data streams."}, - {"AVC", "Includes IEEE 1394 devices that support the AVC protocol device class."}, - {"SBP2", "Includes IEEE 1394 devices that support the SBP2 protocol device class."}, - {"1394", "Includes 1394 host controllers connected on a PCI bus, but not 1394 peripherals. Drivers for this class are system-supplied."}, - {"Image", "Includes still-image capture devices, digital cameras, and scanners."}, - {"Infrared", "Includes infrared devices. Drivers for this class include Serial-IR and Fast-IR NDIS miniports, but see also the Network Adapter class for other NDIS network adapter miniports."}, - {"Keyboard", "Includes all keyboards. That is, it must also be specified in the (secondary) INF for an enumerated child HID keyboard device."}, - {"MediumChanger", "Includes SCSI media changer devices."}, - {"MTD", "Includes memory devices, such as flash memory cards."}, - {"Modem", "Includes modem devices. An INF file for a device of this class specifies the features and configuration of the device and stores this information in the registry. An INF file for a device of this class can also be used to install device drivers for a controllerless modem or a software modem. These devices split the functionality between the modem device and the device driver. For more information about modem INF files and Microsoft Windows Driver Model (WDM) modem devices, see Overview of Modem INF Files and Adding WDM Modem Support."}, - {"Monitor", "Includes display monitors. An INF for a device of this class installs no device drivers, but instead specifies the features of a particular monitor to be stored in the registry for use by drivers of video adapters. (Monitors are enumerated as the child devices of display adapters.)"}, - {"Mouse", "Includes all mouse devices and other kinds of pointing devices, such as trackballs. That is, this class must also be specified in the (secondary) INF for an enumerated child HID mouse device."}, - {"MultiFunction", "Includes combo cards, such as a PCMCIA modem and network card adapter. The driver for such a Plug and Play multifunction device is installed under this class and enumerates the modem and network card separately as its child devices."}, - {"Media", "Includes Audio and DVD multimedia devices, joystick ports, and full-motion video capture devices."}, - {"MultiPortSerial", "Includes intelligent multiport serial cards, but not peripheral devices that connect to its ports. It doesn't include unintelligent (16550-type) multiport serial controllers or single-port serial controllers (see the Ports class)."}, - {"Net", "Consists of network adapter drivers. These drivers must either call NdisMRegisterMiniportDriver or NetAdapterCreate. Drivers that don't use NDIS or NetAdapter should use a different setup class."}, - {"NetClient", "Includes network and/or print providers. NetClient components are deprecated in Windows 8.1, Windows Server 2012 R2, and later."}, - {"NetService", "Includes network services, such as redirectors and servers."}, - {"NetTrans", "Includes NDIS protocols CoNDIS stand-alone call managers, and CoNDIS clients, in addition to higher level drivers in transport stacks."}, - {"SecurityAccelerator", "Includes devices that accelerate secure socket layer (SSL) cryptographic processing."}, - {"PCMCIA", "Includes PCMCIA and CardBus host controllers, but not PCMCIA or CardBus peripherals. Drivers for this class are system-supplied."}, - {"Ports", "Includes serial and parallel port devices. See also the MultiportSerial class."}, - {"Printer", "Includes printers. As an IT admin, hit them with a baseball bat."}, - {"PnpPrinters", "Includes SCSI/1394-enumerated printers. Drivers for this class provide printer communication for a specific bus."}, - {"Processor", "Includes processor types."}, - {"SCSIAdapter", "Includes SCSI Host Bus Adapters (HBAs), disk-array, and NVMe controllers."}, - {"SecurityDevices", "Includes Trusted Platform Module chips. A TPM is a secure cryptoprocessor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. Any new manufactured device must implement and enable TPM 2.0 by default. For more information, see TPM Recommendations."}, - {"Sensor", "Includes sensor and location devices, such as GPS devices."}, - {"SmartCardReader", "Includes smart card readers."}, - {"SoftwareComponent", "Includes virtual child device to encapsulate software components. For more information, see Adding Software Components with an INF file."}, - {"Storage", "Storage disks utilizing a multi-queue storage stack."}, - {"Volume", "Includes storage volumes as defined by the system-supplied logical volume manager and class drivers that create device objects to represent storage volumes, such as the system disk class driver."}, - {"System", "Includes HALs, system buses, system bridges, the system ACPI driver, and the system volume manager driver."}, - {"TapeDrive", "Includes tape drives, including all tape miniclass drivers."}, - {"USBDevice", "USBDevice includes all USB devices that don't belong to another class. This class isn't used for USB host controllers and hubs; drivers for these devices are provided by the operating system and should use the USB class described in System-Defined Device Setup Classes Reserved for System Use."}, - {"WCEUSBS", "Includes Windows CE ActiveSync devices. The WCEUSBS setup class supports communication between a personal computer and a device that is compatible with the Windows CE ActiveSync driver (generally, PocketPC devices) over USB."}, - {"WPD", "Includes WPD devices."} + {"AudioProcessingObject", LocalizationService.ForSection("DriverFilter.Classes")("AudioProcessing.Message")}, + {"Battery", LocalizationService.ForSection("DriverFilter.Classes")("Battery.Devices.UPS.Label")}, + {"Biometric", LocalizationService.ForSection("DriverFilter.Classes")("Windows.Message")}, + {"Bluetooth", LocalizationService.ForSection("DriverFilter.Classes")("Windows.Label")}, + {"Camera", LocalizationService.ForSection("DriverFilter.Classes")("Camera.Message")}, + {"CDROM", LocalizationService.ForSection("DriverFilter.Classes")("Cd.Rom.Drives.Message")}, + {"DiskDrive", LocalizationService.ForSection("DriverFilter.Classes")("Hard.Disk.Drives.Label")}, + {"Display", LocalizationService.ForSection("DriverFilter.Classes")("VideoAdapters.Message")}, + {"Extension", LocalizationService.ForSection("DriverFilter.Classes")("Extension.Message")}, + {"FDC", LocalizationService.ForSection("DriverFilter.Classes")("Floppy.Disk.Drive.Label")}, + {"FloppyDisk", LocalizationService.ForSection("DriverFilter.Classes")("Floppy.Disk.Drives.Label")}, + {"HDC", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Hard.Message")}, + {"HIDClass", LocalizationService.ForSection("DriverFilter.Classes")("InputDevices.Message")}, + {"Dot4", LocalizationService.ForSection("DriverFilter.Classes")("ControlDevices.Message")}, + {"Dot4Print", LocalizationService.ForSection("DriverFilter.Classes")("Dot.Print.Functions.Message")}, + {"61883", LocalizationService.ForSection("DriverFilter.Classes")("Ieeedevices.Support.Message")}, + {"AVC", LocalizationService.ForSection("DriverFilter.Classes")("Ieeedevices.Support.Label")}, + {"SBP2", LocalizationService.ForSection("DriverFilter.Classes")("SBP2.Message")}, + {"1394", LocalizationService.ForSection("DriverFilter.Classes")("HostControllers.Message")}, + {"Image", LocalizationService.ForSection("DriverFilter.Classes")("Still.Image.Capture.Label")}, + {"Infrared", LocalizationService.ForSection("DriverFilter.Classes")("InfraredDevices.Message")}, + {"Keyboard", LocalizationService.ForSection("DriverFilter.Classes")("Keyboards.Message")}, + {"MediumChanger", LocalizationService.ForSection("DriverFilter.Classes")("ScsimediaChanger.Label")}, + {"MTD", LocalizationService.ForSection("DriverFilter.Classes")("Memory.Devices.Such.Label")}, + {"Modem", LocalizationService.ForSection("DriverFilter.Classes")("Modem.Devices.INF.Message")}, + {"Monitor", LocalizationService.ForSection("DriverFilter.Classes")("Display.Monitors.INF.Message")}, + {"Mouse", LocalizationService.ForSection("DriverFilter.Classes")("Mouse.Devices.Message")}, + {"MultiFunction", LocalizationService.ForSection("DriverFilter.Classes")("Combo.Cards.Such.Message")}, + {"Media", LocalizationService.ForSection("DriverFilter.Classes")("Audio.Dvdmultimedia.Message")}, + {"MultiPortSerial", LocalizationService.ForSection("DriverFilter.Classes")("MultiportSerial.Message")}, + {"Net", LocalizationService.ForSection("DriverFilter.Classes")("NetworkAdapter.Message")}, + {"NetClient", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Network.Message")}, + {"NetService", LocalizationService.ForSection("DriverFilter.Classes")("Network.Services.Such.Label")}, + {"NetTrans", LocalizationService.ForSection("DriverFilter.Classes")("NdisprotocolsCo.Message")}, + {"SecurityAccelerator", LocalizationService.ForSection("DriverFilter.Classes")("SecureDevices.Message")}, + {"PCMCIA", LocalizationService.ForSection("DriverFilter.Classes")("PcmciacardBus.Message")}, + {"Ports", LocalizationService.ForSection("DriverFilter.Classes")("Serial.Parallel.Port.Message")}, + {"Printer", LocalizationService.ForSection("DriverFilter.Classes")("Printers.Admin.Hit.Label")}, + {"PnpPrinters", LocalizationService.ForSection("DriverFilter.Classes")("Includes.SCSI.Message")}, + {"Processor", LocalizationService.ForSection("DriverFilter.Classes")("ProcessorTypes.Label")}, + {"SCSIAdapter", LocalizationService.ForSection("DriverFilter.Classes")("ScsihostBus.Message")}, + {"SecurityDevices", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Trusted.Message")}, + {"Sensor", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Sensor.Label")}, + {"SmartCardReader", LocalizationService.ForSection("DriverFilter.Classes")("Smart.Card.Readers.Label")}, + {"SoftwareComponent", LocalizationService.ForSection("DriverFilter.Classes")("Virtual.Child.Device.Message")}, + {"Storage", LocalizationService.ForSection("DriverFilter.Classes")("Storage.Disks.Label")}, + {"Volume", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Storage.Message")}, + {"System", LocalizationService.ForSection("DriverFilter.Classes")("HalsSystem.Message")}, + {"TapeDrive", LocalizationService.ForSection("DriverFilter.Classes")("Tape.Drives.Including.Label")}, + {"USBDevice", LocalizationService.ForSection("DriverFilter.Classes")("Usbdevice.Includes.Message")}, + {"WCEUSBS", LocalizationService.ForSection("DriverFilter.Classes")("WindowsCeactive.Message")}, + {"WPD", LocalizationService.ForSection("DriverFilter.Classes")("Wpddevices.Label")} } Private MonthNumberNameDictionary As New Dictionary(Of Integer, String) From { - {1, "January"}, - {2, "February"}, - {3, "March"}, - {4, "April"}, - {5, "May"}, - {6, "June"}, - {7, "July"}, - {8, "August"}, - {9, "September"}, - {10, "October"}, - {11, "November"}, - {12, "December"} + {1, LocalizationService.ForSection("DriverFilter.Month")("January.Label")}, + {2, LocalizationService.ForSection("DriverFilter.Month")("February.Label")}, + {3, LocalizationService.ForSection("DriverFilter.Month")("March.Label")}, + {4, LocalizationService.ForSection("DriverFilter.Month")("April.Label")}, + {5, LocalizationService.ForSection("DriverFilter.Month")("Value.Label")}, + {6, LocalizationService.ForSection("DriverFilter.Month")("June.Label")}, + {7, LocalizationService.ForSection("DriverFilter.Month")("July.Label")}, + {8, LocalizationService.ForSection("DriverFilter.Month")("August.Label")}, + {9, LocalizationService.ForSection("DriverFilter.Month")("September.Label")}, + {10, LocalizationService.ForSection("DriverFilter.Month")("October.Label")}, + {11, LocalizationService.ForSection("DriverFilter.Month")("November.Label")}, + {12, LocalizationService.ForSection("DriverFilter.Month")("December.Label")} } Public ProvidedImageClassNames As New List(Of String) @@ -92,7 +92,7 @@ Public Class DriverFilterAssistantDialog Case 3 ' Class Name If ComboBox2.SelectedItem = "-----------------" Then - MessageBox.Show("This class name is not valid.", Text, MessageBoxButtons.OK, MessageBoxIcon.Stop) + MessageBox.Show(LocalizationService.ForSection("DriverFilter.Messages")("Class.Name.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Stop) Exit Sub End If AppliedQuery = String.Format("cn:{0}", ComboBox2.SelectedItem) diff --git a/Panels/Get_Ops/FilterAssistants/FeatureFilterAssistantDialog.Designer.vb b/Panels/Get_Ops/FilterAssistants/FeatureFilterAssistantDialog.Designer.vb index d6b62cbdf..b8f29e7a6 100644 --- a/Panels/Get_Ops/FilterAssistants/FeatureFilterAssistantDialog.Designer.vb +++ b/Panels/Get_Ops/FilterAssistants/FeatureFilterAssistantDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class FeatureFilterAssistantDialog Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class FeatureFilterAssistantDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Apply" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.FeatureFilter")("Apply.Button") ' 'Cancel_Button ' @@ -69,7 +69,7 @@ Partial Class FeatureFilterAssistantDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Clear" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.FeatureFilter")("Clear.Button") ' 'Label1 ' @@ -78,7 +78,7 @@ Partial Class FeatureFilterAssistantDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(146, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Filter feature information by:" + Me.Label1.Text = LocalizationService.ForSection("Designer.FeatureFilter")("Filter.Feature.Prompt.Label") ' 'TableLayoutPanel2 ' @@ -108,7 +108,7 @@ Partial Class FeatureFilterAssistantDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(117, 27) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Name:" + Me.Label2.Text = LocalizationService.ForSection("Designer.FeatureFilter")("Name.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label3 @@ -119,7 +119,7 @@ Partial Class FeatureFilterAssistantDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(117, 27) Me.Label3.TabIndex = 1 - Me.Label3.Text = "State:" + Me.Label3.Text = LocalizationService.ForSection("Designer.FeatureFilter")("State.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'TextBox1 @@ -134,7 +134,7 @@ Partial Class FeatureFilterAssistantDialog ' Me.ComboBox1.Dock = System.Windows.Forms.DockStyle.Fill Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Any state", "Enabled", "Enablement Pending", "Disabled", "Disablement Pending"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.FeatureFilter")("AnyState.Item"), LocalizationService.ForSection("Designer.FeatureFilter")("Enabled.Item"), LocalizationService.ForSection("Designer.FeatureFilter")("Enablement.Pending.Item"), LocalizationService.ForSection("Designer.FeatureFilter")("Disabled.Item"), LocalizationService.ForSection("Designer.FeatureFilter")("Disablement.Pending.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(126, 30) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(442, 21) @@ -157,7 +157,7 @@ Partial Class FeatureFilterAssistantDialog Me.Name = "FeatureFilterAssistantDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Filter feature information" + Me.Text = LocalizationService.ForSection("Designer.FeatureFilter")("Filter.Feature.Title") Me.TableLayoutPanel1.ResumeLayout(False) Me.TableLayoutPanel2.ResumeLayout(False) Me.TableLayoutPanel2.PerformLayout() diff --git a/Panels/Get_Ops/GetImgInfoDlg.Designer.vb b/Panels/Get_Ops/GetImgInfoDlg.Designer.vb index 81039467e..afb6a24c7 100644 --- a/Panels/Get_Ops/GetImgInfoDlg.Designer.vb +++ b/Panels/Get_Ops/GetImgInfoDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class GetImgInfoDlg Inherits System.Windows.Forms.Form @@ -98,10 +98,9 @@ Partial Class GetImgInfoDlg ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WIM files|*.wim|Virtual Hard Disk files|*.vhd, *.vhdx|ESD files|*.esd|SWM files|*" & _ - ".swm|Full Flash Utility files|*.ffu" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.Get.Img")("WIM.Files.Wimvirtual.Filter") Me.OpenFileDialog1.SupportMultiDottedExtensions = True - Me.OpenFileDialog1.Title = "Specify the image to get the information from" + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.Get.Img")("Image.Title") ' 'ImageInfoPanel ' @@ -157,11 +156,11 @@ Partial Class GetImgInfoDlg ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Index" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.Get.Img")("Index.Column") ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.Get.Img")("ImageName.Column") Me.ColumnHeader2.Width = 344 ' 'Panel1 @@ -186,7 +185,7 @@ Partial Class GetImgInfoDlg Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 4 - Me.Button3.Text = "Pick..." + Me.Button3.Text = LocalizationService.ForSection("Designer.Get.Img")("Pick.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button1 @@ -196,7 +195,7 @@ Partial Class GetImgInfoDlg Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 3 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.Get.Img")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -214,7 +213,7 @@ Partial Class GetImgInfoDlg Me.RadioButton2.Size = New System.Drawing.Size(95, 17) Me.RadioButton2.TabIndex = 1 Me.RadioButton2.TabStop = True - Me.RadioButton2.Text = "Another image" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.Get.Img")("AnotherImage.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -225,7 +224,7 @@ Partial Class GetImgInfoDlg Me.RadioButton1.Size = New System.Drawing.Size(146, 17) Me.RadioButton1.TabIndex = 1 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Currently mounted image" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.Get.Img")("CurrentlyMounted.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'Label3 @@ -235,7 +234,7 @@ Partial Class GetImgInfoDlg Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(141, 13) Me.Label3.TabIndex = 0 - Me.Label3.Text = "List of indexes of image file:" + Me.Label3.Text = LocalizationService.ForSection("Designer.Get.Img")("List.Indexes.ImageFile.Label") ' 'Label2 ' @@ -244,7 +243,7 @@ Partial Class GetImgInfoDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(172, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Image file to get information from:" + Me.Label2.Text = LocalizationService.ForSection("Designer.Get.Img")("ImageFile.Label") ' 'Panel3 ' @@ -321,7 +320,7 @@ Partial Class GetImgInfoDlg Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(79, 13) Me.Label22.TabIndex = 0 - Me.Label22.Text = "Image version:" + Me.Label22.Text = LocalizationService.ForSection("Designer.Get.Img")("ImageVersion.Label") ' 'Label23 ' @@ -331,7 +330,7 @@ Partial Class GetImgInfoDlg Me.Label23.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label23.Size = New System.Drawing.Size(38, 15) Me.Label23.TabIndex = 0 - Me.Label23.Text = "Label8" + Me.Label23.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label23.UseMnemonic = False ' 'Label24 @@ -342,7 +341,7 @@ Partial Class GetImgInfoDlg Me.Label24.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label24.Size = New System.Drawing.Size(70, 17) Me.Label24.TabIndex = 0 - Me.Label24.Text = "Image name:" + Me.Label24.Text = LocalizationService.ForSection("Designer.Get.Img")("ImageName.Label") ' 'Label25 ' @@ -353,7 +352,7 @@ Partial Class GetImgInfoDlg Me.Label25.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label25.Size = New System.Drawing.Size(38, 15) Me.Label25.TabIndex = 0 - Me.Label25.Text = "Label8" + Me.Label25.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label25.UseMnemonic = False ' 'Label26 @@ -364,7 +363,7 @@ Partial Class GetImgInfoDlg Me.Label26.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label26.Size = New System.Drawing.Size(96, 17) Me.Label26.TabIndex = 0 - Me.Label26.Text = "Image description:" + Me.Label26.Text = LocalizationService.ForSection("Designer.Get.Img")("ImageDescription.Label") ' 'Label35 ' @@ -375,7 +374,7 @@ Partial Class GetImgInfoDlg Me.Label35.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label35.Size = New System.Drawing.Size(38, 15) Me.Label35.TabIndex = 0 - Me.Label35.Text = "Label8" + Me.Label35.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label35.UseMnemonic = False ' 'Label31 @@ -386,7 +385,7 @@ Partial Class GetImgInfoDlg Me.Label31.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label31.Size = New System.Drawing.Size(62, 17) Me.Label31.TabIndex = 0 - Me.Label31.Text = "Image size:" + Me.Label31.Text = LocalizationService.ForSection("Designer.Get.Img")("ImageSize.Label") ' 'Label32 ' @@ -397,7 +396,7 @@ Partial Class GetImgInfoDlg Me.Label32.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label32.Size = New System.Drawing.Size(38, 15) Me.Label32.TabIndex = 0 - Me.Label32.Text = "Label8" + Me.Label32.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label32.UseMnemonic = False ' 'Label41 @@ -408,7 +407,7 @@ Partial Class GetImgInfoDlg Me.Label41.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label41.Size = New System.Drawing.Size(102, 17) Me.Label41.TabIndex = 0 - Me.Label41.Text = "Supports WIMBoot?" + Me.Label41.Text = LocalizationService.ForSection("Designer.Get.Img")("Supports.WIM.Boot.Label") ' 'Label40 ' @@ -419,7 +418,7 @@ Partial Class GetImgInfoDlg Me.Label40.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label40.Size = New System.Drawing.Size(38, 15) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Label8" + Me.Label40.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label40.UseMnemonic = False ' 'Label43 @@ -430,7 +429,7 @@ Partial Class GetImgInfoDlg Me.Label43.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label43.Size = New System.Drawing.Size(70, 17) Me.Label43.TabIndex = 0 - Me.Label43.Text = "Architecture:" + Me.Label43.Text = LocalizationService.ForSection("Designer.Get.Img")("Architecture.Label") ' 'Label42 ' @@ -441,7 +440,7 @@ Partial Class GetImgInfoDlg Me.Label42.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label42.Size = New System.Drawing.Size(38, 15) Me.Label42.TabIndex = 0 - Me.Label42.Text = "Label8" + Me.Label42.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label42.UseMnemonic = False ' 'Label47 @@ -452,7 +451,7 @@ Partial Class GetImgInfoDlg Me.Label47.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label47.Size = New System.Drawing.Size(30, 17) Me.Label47.TabIndex = 0 - Me.Label47.Text = "HAL:" + Me.Label47.Text = LocalizationService.ForSection("Designer.Get.Img")("HAL.Label") ' 'Label46 ' @@ -463,7 +462,7 @@ Partial Class GetImgInfoDlg Me.Label46.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label46.Size = New System.Drawing.Size(38, 15) Me.Label46.TabIndex = 0 - Me.Label46.Text = "Label8" + Me.Label46.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label46.UseMnemonic = False ' 'Label33 @@ -474,7 +473,7 @@ Partial Class GetImgInfoDlg Me.Label33.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label33.Size = New System.Drawing.Size(96, 17) Me.Label33.TabIndex = 0 - Me.Label33.Text = "Service Pack build:" + Me.Label33.Text = LocalizationService.ForSection("Designer.Get.Img")("ServicePackBuild.Label") ' 'Label34 ' @@ -485,7 +484,7 @@ Partial Class GetImgInfoDlg Me.Label34.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label34.Size = New System.Drawing.Size(38, 15) Me.Label34.TabIndex = 0 - Me.Label34.Text = "Label8" + Me.Label34.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label34.UseMnemonic = False ' 'Label28 @@ -496,7 +495,7 @@ Partial Class GetImgInfoDlg Me.Label28.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label28.Size = New System.Drawing.Size(96, 17) Me.Label28.TabIndex = 0 - Me.Label28.Text = "Service Pack level:" + Me.Label28.Text = LocalizationService.ForSection("Designer.Get.Img")("ServicePackLevel.Label") ' 'Label27 ' @@ -507,7 +506,7 @@ Partial Class GetImgInfoDlg Me.Label27.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label27.Size = New System.Drawing.Size(38, 15) Me.Label27.TabIndex = 0 - Me.Label27.Text = "Label8" + Me.Label27.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label27.UseMnemonic = False ' 'Label30 @@ -518,7 +517,7 @@ Partial Class GetImgInfoDlg Me.Label30.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label30.Size = New System.Drawing.Size(89, 17) Me.Label30.TabIndex = 0 - Me.Label30.Text = "Installation type:" + Me.Label30.Text = LocalizationService.ForSection("Designer.Get.Img")("InstallationType.Label") ' 'Label29 ' @@ -529,7 +528,7 @@ Partial Class GetImgInfoDlg Me.Label29.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label29.Size = New System.Drawing.Size(38, 15) Me.Label29.TabIndex = 0 - Me.Label29.Text = "Label8" + Me.Label29.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label29.UseMnemonic = False ' 'Label39 @@ -540,7 +539,7 @@ Partial Class GetImgInfoDlg Me.Label39.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label39.Size = New System.Drawing.Size(43, 17) Me.Label39.TabIndex = 0 - Me.Label39.Text = "Edition:" + Me.Label39.Text = LocalizationService.ForSection("Designer.Get.Img")("Edition.Label") ' 'Label38 ' @@ -551,7 +550,7 @@ Partial Class GetImgInfoDlg Me.Label38.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label38.Size = New System.Drawing.Size(38, 15) Me.Label38.TabIndex = 0 - Me.Label38.Text = "Label8" + Me.Label38.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label38.UseMnemonic = False ' 'Label45 @@ -562,7 +561,7 @@ Partial Class GetImgInfoDlg Me.Label45.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label45.Size = New System.Drawing.Size(73, 17) Me.Label45.TabIndex = 0 - Me.Label45.Text = "Product type:" + Me.Label45.Text = LocalizationService.ForSection("Designer.Get.Img")("ProductType.Label") ' 'Label4 ' @@ -573,7 +572,7 @@ Partial Class GetImgInfoDlg Me.Label4.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label4.Size = New System.Drawing.Size(38, 15) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Label8" + Me.Label4.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label4.UseMnemonic = False ' 'Label5 @@ -584,7 +583,7 @@ Partial Class GetImgInfoDlg Me.Label5.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label5.Size = New System.Drawing.Size(74, 17) Me.Label5.TabIndex = 0 - Me.Label5.Text = "Product suite:" + Me.Label5.Text = LocalizationService.ForSection("Designer.Get.Img")("ProductSuite.Label") ' 'Label44 ' @@ -595,7 +594,7 @@ Partial Class GetImgInfoDlg Me.Label44.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label44.Size = New System.Drawing.Size(38, 15) Me.Label44.TabIndex = 0 - Me.Label44.Text = "Label8" + Me.Label44.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label44.UseMnemonic = False ' 'Label7 @@ -606,7 +605,7 @@ Partial Class GetImgInfoDlg Me.Label7.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label7.Size = New System.Drawing.Size(115, 17) Me.Label7.TabIndex = 0 - Me.Label7.Text = "System root directory:" + Me.Label7.Text = LocalizationService.ForSection("Designer.Get.Img")("System.Root.Dir.Label") ' 'Label8 ' @@ -617,7 +616,7 @@ Partial Class GetImgInfoDlg Me.Label8.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label8.Size = New System.Drawing.Size(38, 15) Me.Label8.TabIndex = 0 - Me.Label8.Text = "Label8" + Me.Label8.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label8.UseMnemonic = False ' 'Label9 @@ -628,7 +627,7 @@ Partial Class GetImgInfoDlg Me.Label9.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label9.Size = New System.Drawing.Size(57, 17) Me.Label9.TabIndex = 0 - Me.Label9.Text = "File count:" + Me.Label9.Text = LocalizationService.ForSection("Designer.Get.Img")("FileCount.Label") ' 'Label6 ' @@ -639,7 +638,7 @@ Partial Class GetImgInfoDlg Me.Label6.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label6.Size = New System.Drawing.Size(38, 15) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Label8" + Me.Label6.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label6.UseMnemonic = False ' 'Label11 @@ -650,7 +649,7 @@ Partial Class GetImgInfoDlg Me.Label11.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label11.Size = New System.Drawing.Size(39, 17) Me.Label11.TabIndex = 0 - Me.Label11.Text = "Dates:" + Me.Label11.Text = LocalizationService.ForSection("Designer.Get.Img")("Dates.Label") ' 'Label10 ' @@ -661,7 +660,7 @@ Partial Class GetImgInfoDlg Me.Label10.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label10.Size = New System.Drawing.Size(38, 15) Me.Label10.TabIndex = 0 - Me.Label10.Text = "Label8" + Me.Label10.Text = LocalizationService.ForSection("Designer.Get.Img")("DynamicValue.Label") Me.Label10.UseMnemonic = False ' 'Label13 @@ -672,7 +671,7 @@ Partial Class GetImgInfoDlg Me.Label13.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label13.Size = New System.Drawing.Size(104, 17) Me.Label13.TabIndex = 0 - Me.Label13.Text = "Installed languages:" + Me.Label13.Text = LocalizationService.ForSection("Designer.Get.Img")("Installed.Languages.Label") ' 'LanguageList ' @@ -711,7 +710,7 @@ Partial Class GetImgInfoDlg Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(436, 36) Me.Label36.TabIndex = 0 - Me.Label36.Text = "Image information" + Me.Label36.Text = LocalizationService.ForSection("Designer.Get.Img")("ImageInfo.Label") Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel7 @@ -731,7 +730,7 @@ Partial Class GetImgInfoDlg Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(436, 396) Me.Label37.TabIndex = 0 - Me.Label37.Text = "Select an index on the list view on the left to view its information here" + Me.Label37.Text = LocalizationService.ForSection("Designer.Get.Img")("Index.List.View.Label") Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'FlowLayoutPanel4 @@ -749,7 +748,7 @@ Partial Class GetImgInfoDlg Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(96, 23) Me.Button2.TabIndex = 5 - Me.Button2.Text = "Save..." + Me.Button2.Text = LocalizationService.ForSection("Designer.Get.Img")("Save.Button") Me.Button2.UseVisualStyleBackColor = True ' 'ImageTaskHeader1 @@ -781,7 +780,7 @@ Partial Class GetImgInfoDlg Me.Name = "GetImgInfoDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Get image information" + Me.Text = LocalizationService.ForSection("Designer.Get.Img")("Image.Label") Me.ImageInfoPanel.ResumeLayout(False) Me.SplitContainer2.Panel1.ResumeLayout(False) Me.SplitContainer2.Panel2.ResumeLayout(False) diff --git a/Panels/Get_Ops/GetImgInfoDlg.vb b/Panels/Get_Ops/GetImgInfoDlg.vb index 120011ca7..0e0f0b833 100644 --- a/Panels/Get_Ops/GetImgInfoDlg.vb +++ b/Panels/Get_Ops/GetImgInfoDlg.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.Dism Imports System.Threading @@ -16,331 +16,37 @@ Public Class GetImgInfoDlg Dim SelectedImageFile As String Private Sub GetImgInfoDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Get image information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image file to get information from:" - Label3.Text = "List of indexes of image file:" - Label22.Text = "Image version:" - Label24.Text = "Image name:" - Label26.Text = "Image description:" - Label31.Text = "Image size:" - Label41.Text = "Supports WIMBoot?" - Label43.Text = "Architecture:" - Label47.Text = "HAL:" - Label33.Text = "Service Pack build:" - Label28.Text = "Service Pack level:" - Label30.Text = "Installation type:" - Label39.Text = "Edition:" - Label45.Text = "Product type:" - Label5.Text = "Product suite:" - Label7.Text = "System root directory:" - Label9.Text = "File count:" - Label11.Text = "Dates:" - Label13.Text = "Installed languages:" - Label36.Text = "Image information" - Label37.Text = "Select an index on the list view on the left to view its information here" - RadioButton1.Text = "Currently mounted image" - RadioButton2.Text = "Another image" - Button1.Text = "Browse..." - Button2.Text = "Save..." - Button3.Text = "Pick..." - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - OpenFileDialog1.Title = "Specify the image to get the information from" - Case "ESN" - Text = "Obtener información de la imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de imagen del que obtener información:" - Label3.Text = "Listado de índices del archivo de imagen:" - Label22.Text = "Versión de la imagen:" - Label24.Text = "Nombre de la imagen:" - Label26.Text = "Descripción de la imagen:" - Label31.Text = "Tamaño de la imagen:" - Label41.Text = "¿Soporta WIMBoot?" - Label43.Text = "Arquitectura:" - Label47.Text = "HAL:" - Label33.Text = "Compilación de Service Pack:" - Label28.Text = "Nivel de Service Pack:" - Label30.Text = "Tipo de instalación:" - Label39.Text = "Edición:" - Label45.Text = "Tipo de producto:" - Label5.Text = "Suite de producto:" - Label7.Text = "Directorio raíz del sistema:" - Label9.Text = "Número de archivos:" - Label11.Text = "Fechas:" - Label13.Text = "Idiomas instalados:" - Label36.Text = "Información de la imagen" - Label37.Text = "Seleccione un índice del listado de la izquierda para ver su información aquí" - RadioButton1.Text = "Imagen montada actualmente" - RadioButton2.Text = "Otra imagen" - Button1.Text = "Examinar..." - Button2.Text = "Guardar..." - Button3.Text = "Escoger..." - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - OpenFileDialog1.Title = "Especifique la imagen de la que obtener información" - Case "FRA" - Text = "Obtenir des informations de l'image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier image à partir duquel les informations sont obtenues :" - Label3.Text = "Liste des index du fichier d'image :" - Label22.Text = "Version de l'image :" - Label24.Text = "Nom de l'image :" - Label26.Text = "Description de l'image :" - Label31.Text = "Taille de l'image :" - Label41.Text = "Supporte WIMBoot ?" - Label43.Text = "Architecture :" - Label47.Text = "HAL :" - Label33.Text = "Compilation du Service Pack ::" - Label28.Text = "Niveau du Service Pack :" - Label30.Text = "Type d'installation :" - Label39.Text = "Édition:" - Label45.Text = "Type de produit :" - Label5.Text = "Suite de produit :" - Label7.Text = "Répertoire racine du système :" - Label9.Text = "Nombre de fichiers :" - Label11.Text = "Dates:" - Label13.Text = "Langues installées :" - Label36.Text = "Information de l'image" - Label37.Text = "Sélectionnez un index dans la liste de gauche pour afficher son information ici." - RadioButton1.Text = "Image actuellement montée" - RadioButton2.Text = "Autre image" - Button1.Text = "Parcourir..." - Button2.Text = "Sauvegarder..." - Button3.Text = "Choisir..." - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - OpenFileDialog1.Title = "Spécifier l'image à partir de laquelle l'information doit être obtenue" - Case "PTB", "PTG" - Text = "Obter informações sobre a imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de onde obter informações:" - Label3.Text = "Lista de índices do ficheiro de imagem:" - Label22.Text = "Versão da imagem:" - Label24.Text = "Nome da imagem:" - Label26.Text = "Descrição da imagem:" - Label31.Text = "Tamanho da imagem:" - Label41.Text = "Suporta WIMBoot?" - Label43.Text = "Arquitetura:" - Label47.Text = "HAL:" - Label33.Text = "Service Pack build:" - Label28.Text = "Nível do Service Pack:" - Label30.Text = "Tipo de instalação:" - Label39.Text = "Edição:" - Label45.Text = "Tipo de produto:" - Label5.Text = "Conjunto de produtos:" - Label7.Text = "Diretório raiz do sistema:" - Label9.Text = "Contagem de ficheiros:" - Label11.Text = "Datas:" - Label13.Text = "Idiomas instalados:" - Label36.Text = "Informações sobre a imagem" - Label37.Text = "Seleccione um índice na vista de lista à esquerda para ver a respectiva informação aqui" - RadioButton1.Text = "Imagem atualmente montada" - RadioButton2.Text = "Outra imagem" - Button1.Text = " Navegar..." - Button2.Text = "Guardar..." - Button3.Text = "Selecionar..." - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - OpenFileDialog1.Title = "Especificar a imagem da qual obter a informação" - Case "ITA" - Text = "Verifica informazioni immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine da cui ottenere informazioni:" - Label3.Text = "Elenco indici file immagine:" - Label22.Text = "Versione immagine:" - Label24.Text = "Nome immagine:" - Label26.Text = "Descrizione immagine:" - Label31.Text = "Dimensione immagine:" - Label41.Text = "Supporta WIMBoot?" - Label43.Text = "Architettura:" - Label47.Text = "HAL:" - Label33.Text = "Service Pack build:" - Label28.Text = "Livello Service Pack:" - Label30.Text = "Tipo di installazione:" - Label39.Text = "Edizione:" - Label45.Text = "Tipo prodotto:" - Label5.Text = "Suite prodotti:" - Label7.Text = "Cartella principale sistema:" - Label9.Text = "Numero file:" - Label11.Text = "Data:" - Label13.Text = "Lingue installate:" - Label36.Text = "Informazioni immagine" - Label37.Text = "Per visualizzarne qui le informazioni seleziona a sinistra un indice nella vista elenco" - RadioButton1.Text = "Immagine attualmente montata" - RadioButton2.Text = "Altra immagine" - Button1.Text = "Sfoglia..." - Button2.Text = "Salva..." - Button3.Text = "Scegli..." - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome immagine" - OpenFileDialog1.Title = "Specifica l'immagine di cui verificare le informazioni" - End Select - Case 1 - Text = "Get image information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image file to get information from:" - Label3.Text = "List of indexes of image file:" - Label22.Text = "Image version:" - Label24.Text = "Image name:" - Label26.Text = "Image description:" - Label31.Text = "Image size:" - Label41.Text = "Supports WIMBoot?" - Label43.Text = "Architecture:" - Label47.Text = "HAL:" - Label33.Text = "Service Pack build:" - Label28.Text = "Service Pack level:" - Label30.Text = "Installation type:" - Label39.Text = "Edition:" - Label45.Text = "Product type:" - Label5.Text = "Product suite:" - Label7.Text = "System root directory:" - Label9.Text = "File count:" - Label11.Text = "Dates:" - Label13.Text = "Installed languages:" - Label36.Text = "Image information" - Label37.Text = "Select an index on the list view on the left to view its information here" - RadioButton1.Text = "Currently mounted image" - RadioButton2.Text = "Another image" - Button1.Text = "Browse..." - Button2.Text = "Save..." - Button3.Text = "Pick..." - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - OpenFileDialog1.Title = "Specify the image to get the information from" - Case 2 - Text = "Obtener información de la imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de imagen del que obtener información:" - Label3.Text = "Listado de índices del archivo de imagen:" - Label22.Text = "Versión de la imagen:" - Label24.Text = "Nombre de la imagen:" - Label26.Text = "Descripción de la imagen:" - Label31.Text = "Tamaño de la imagen:" - Label41.Text = "¿Soporta WIMBoot?" - Label43.Text = "Arquitectura:" - Label47.Text = "HAL:" - Label33.Text = "Compilación de Service Pack:" - Label28.Text = "Nivel de Service Pack:" - Label30.Text = "Tipo de instalación:" - Label39.Text = "Edición:" - Label45.Text = "Tipo de producto:" - Label5.Text = "Suite de producto:" - Label7.Text = "Directorio raíz del sistema:" - Label9.Text = "Número de archivos:" - Label11.Text = "Fechas:" - Label13.Text = "Idiomas instalados:" - Label36.Text = "Información de la imagen" - Label37.Text = "Seleccione un índice del listado de la izquierda para ver su información aquí" - RadioButton1.Text = "Imagen montada actualmente" - RadioButton2.Text = "Otra imagen" - Button1.Text = "Examinar..." - Button2.Text = "Guardar..." - Button3.Text = "Escoger..." - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - OpenFileDialog1.Title = "Especifique la imagen de la que obtener información" - Case 3 - Text = "Obtenir des informations de l'image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier image à partir duquel les informations sont obtenues :" - Label3.Text = "Liste des index du fichier d'image :" - Label22.Text = "Version de l'image :" - Label24.Text = "Nom de l'image :" - Label26.Text = "Description de l'image :" - Label31.Text = "Taille de l'image :" - Label41.Text = "Supporte WIMBoot ?" - Label43.Text = "Architecture :" - Label47.Text = "HAL :" - Label33.Text = "Compilation du Service Pack ::" - Label28.Text = "Niveau du Service Pack :" - Label30.Text = "Type d'installation :" - Label39.Text = "Édition:" - Label45.Text = "Type de produit :" - Label5.Text = "Suite de produit :" - Label7.Text = "Répertoire racine du système :" - Label9.Text = "Nombre de fichiers :" - Label11.Text = "Dates:" - Label13.Text = "Langues installées :" - Label36.Text = "Information de l'image" - Label37.Text = "Sélectionnez un index dans la liste de gauche pour afficher son information ici." - RadioButton1.Text = "Image actuellement montée" - RadioButton2.Text = "Autre image" - Button1.Text = "Parcourir..." - Button2.Text = "Sauvegarder..." - Button3.Text = "Choisir..." - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - OpenFileDialog1.Title = "Spécifier l'image à partir de laquelle l'information doit être obtenue" - Case 4 - Text = "Obter informações sobre a imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de onde obter informações:" - Label3.Text = "Lista de índices do ficheiro de imagem:" - Label22.Text = "Versão da imagem:" - Label24.Text = "Nome da imagem:" - Label26.Text = "Descrição da imagem:" - Label31.Text = "Tamanho da imagem:" - Label41.Text = "Suporta WIMBoot?" - Label43.Text = "Arquitetura:" - Label47.Text = "HAL:" - Label33.Text = "Service Pack build:" - Label28.Text = "Nível do Service Pack:" - Label30.Text = "Tipo de instalação:" - Label39.Text = "Edição:" - Label45.Text = "Tipo de produto:" - Label5.Text = "Conjunto de produtos:" - Label7.Text = "Diretório raiz do sistema:" - Label9.Text = "Contagem de ficheiros:" - Label11.Text = "Datas:" - Label13.Text = "Idiomas instalados:" - Label36.Text = "Informações sobre a imagem" - Label37.Text = "Seleccione um índice na vista de lista à esquerda para ver a respectiva informação aqui" - RadioButton1.Text = "Imagem atualmente montada" - RadioButton2.Text = "Outra imagem" - Button1.Text = " Navegar..." - Button2.Text = "Guardar..." - Button3.Text = "Selecionar..." - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - OpenFileDialog1.Title = "Especificar a imagem da qual obter a informação" - Case 5 - Text = "Verifica informazioni immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di cui verificare le informazioni:" - Label3.Text = "Elenco indici file immagine:" - Label22.Text = "Versione immagine:" - Label24.Text = "Nome immagine:" - Label26.Text = "Descrizione immagine:" - Label31.Text = "Dimensione immagine:" - Label41.Text = "Supporta WIMBoot?" - Label43.Text = "Architettura:" - Label47.Text = "HAL:" - Label33.Text = "Build Service Pack:" - Label28.Text = "Livello Service Pack:" - Label30.Text = "Tipo installazione:" - Label39.Text = "Edizione:" - Label45.Text = "Tipo prodotto:" - Label5.Text = "Suite prodotti:" - Label7.Text = "Cartella principale sistema:" - Label9.Text = "Numero file:" - Label11.Text = "Data:" - Label13.Text = "Lingue installate:" - Label36.Text = "Informazioni immagine" - Label37.Text = "Per visualizzarne qui le informazioni seleziona a sinistra un indice nella vista elenco" - RadioButton1.Text = "Immagine attualmente montata" - RadioButton2.Text = "Altra immagine" - Button1.Text = "Sfoglia..." - Button2.Text = "Salva..." - Button3.Text = "Scegli..." - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome immagine" - OpenFileDialog1.Title = "Specifica l'immagine di cui verificare le informazioni" - End Select + Text = LocalizationService.ForSection("ImageInfo")("Get.Image.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ImageInfo").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ImageInfo")("ImageFile.Get.Label") + Label3.Text = LocalizationService.ForSection("ImageInfo")("List.Indexes.ImageFile.Label") + Label22.Text = LocalizationService.ForSection("ImageInfo")("ImageVersion.Label") + Label24.Text = LocalizationService.ForSection("ImageInfo")("ImageName.Label") + Label26.Text = LocalizationService.ForSection("ImageInfo")("ImageDescription.Label") + Label31.Text = LocalizationService.ForSection("ImageInfo")("ImageSize.Label") + Label41.Text = LocalizationService.ForSection("ImageInfo")("Supports.WIM.Boot.Label") + Label43.Text = LocalizationService.ForSection("ImageInfo")("Architecture.Label") + Label47.Text = LocalizationService.ForSection("ImageInfo")("HAL.Label") + Label33.Text = LocalizationService.ForSection("ImageInfo")("ServicePackBuild.Label") + Label28.Text = LocalizationService.ForSection("ImageInfo")("ServicePackLevel.Label") + Label30.Text = LocalizationService.ForSection("ImageInfo")("InstallationType.Label") + Label39.Text = LocalizationService.ForSection("ImageInfo")("Edition.Label") + Label45.Text = LocalizationService.ForSection("ImageInfo")("ProductType.Label") + Label5.Text = LocalizationService.ForSection("ImageInfo")("ProductSuite.Label") + Label7.Text = LocalizationService.ForSection("ImageInfo")("System.Root.Dir.Label") + Label9.Text = LocalizationService.ForSection("ImageInfo")("FileCount.Label") + Label11.Text = LocalizationService.ForSection("ImageInfo")("Dates.Label") + Label13.Text = LocalizationService.ForSection("ImageInfo")("Installed.Languages.Label") + Label36.Text = LocalizationService.ForSection("ImageInfo")("ImageInfo.Label") + Label37.Text = LocalizationService.ForSection("ImageInfo")("Index.List.View.Label") + RadioButton1.Text = LocalizationService.ForSection("ImageInfo")("CurrentlyMounted.RadioButton") + RadioButton2.Text = LocalizationService.ForSection("ImageInfo")("AnotherImage.RadioButton") + Button1.Text = LocalizationService.ForSection("ImageInfo")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImageInfo")("Save.Button") + Button3.Text = LocalizationService.ForSection("ImageInfo")("Pick.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("ImageInfo")("Index.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("ImageInfo")("ImageName.Column") + OpenFileDialog1.Title = LocalizationService.ForSection("ImageInfo")("Image.Get.Title") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -399,31 +105,7 @@ Public Class GetImgInfoDlg Catch ex As Exception DynaLog.LogMessage("Could not get image file information. Error message: " & ex.Message) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ESN" - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "FRA" - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "PTB", "PTG" - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ITA" - msg = "Impossibile verificare informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select - Case 1 - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 2 - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 3 - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 4 - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 5 - msg = "Impossibile verificare informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select + msg = LocalizationService.ForSection("ImageInfo.GetImageInfo").Format("Gather.ImageFile.Message", ex.ToString(), ex.Message, Hex(ex.HResult)) MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally DynaLog.LogMessage("Shutting down API...") @@ -443,58 +125,12 @@ Public Class GetImgInfoDlg DetectFeatureUpdate(ImageInfoList(Index).ProductVersion) Label25.Text = ImageInfoList(Index).ImageName Label35.Text = ImageInfoList(Index).ImageDescription - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize) & ")" - Case "ESN" - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize) & ")" - Case "FRA" - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " octets (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize, True) & ")" - Case "PTB", "PTG" - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize) & ")" - Case "ITA" - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize) & ")" - End Select - Case 1 - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize) & ")" - Case 2 - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize) & ")" - Case 3 - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " octets (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize, True) & ")" - Case 4 - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize) & ")" - Case 5 - Label32.Text = ImageInfoList(Index).ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize) & ")" - End Select + Dim isFrenchSizeText As Boolean = LocalizationService.CurrentCultureCode.Equals("fr-FR", StringComparison.OrdinalIgnoreCase) + Dim readableImageSize As String = If(isFrenchSizeText, Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize, True), Converters.BytesToReadableSize(ImageInfoList(Index).ImageSize)) + Label32.Text = LocalizationService.ForSection("ImageInfo").Format("Bytes.Label", ImageInfoList(Index).ImageSize.ToString("N0"), readableImageSize) Label42.Text = Casters.CastDismArchitecture(ImageInfoList(Index).Architecture, True) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "Undefined by the image") - Case "ESN" - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "No definida por la imagen") - Case "FRA" - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "Non défini par l'image") - Case "PTB", "PTG" - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "Não definido pela imagem") - Case "ITA" - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "Non definito dall'immagine") - End Select - Case 1 - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "Undefined by the image") - Case 2 - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "No definida por la imagen") - Case 3 - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "Non défini par l'image") - Case 4 - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "Não definido pela imagem") - Case 5 - Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, "Non definito dall'immagine") - End Select + Label46.Text = If(Not ImageInfoList(Index).Hal = "", ImageInfoList(Index).Hal, LocalizationService.ForSection("ImageInfo.DisplayImageInfo")("UndefinedImage.Label")) Label34.Text = ImageInfoList(Index).ProductVersion.Revision Label27.Text = ImageInfoList(Index).SpLevel Label29.Text = ImageInfoList(Index).InstallationType @@ -504,31 +140,7 @@ Public Class GetImgInfoDlg Label8.Text = ImageInfoList(Index).SystemRoot LanguageList.Items.Clear() For Each language In ImageInfoList(Index).Languages - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", default", "") & ")") - Case "ESN" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", predeterminado", "") & ")") - Case "FRA" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", défaut", "") & ")") - Case "PTB", "PTG" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", predefinido", "") & ")") - Case "ITA" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", predefinito", "") & ")") - End Select - Case 1 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", default", "") & ")") - Case 2 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", predeterminado", "") & ")") - Case 3 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", défaut", "") & ")") - Case 4 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", predefinido", "") & ")") - Case 5 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, ", predefinito", "") & ")") - End Select + LanguageList.Items.Add(language.Name & LocalizationService.ForSection("ImageInfo.LanguageList")("Display.Name.Open.Label") & language.DisplayName & If(ImageInfoList(Index).DefaultLanguage.Name = language.Name, LocalizationService.ForSection("ImageInfo.LanguageList")("Default.Label"), "") & LocalizationService.ForSection("ImageInfo.LanguageList")("Display.Name.Close.Label")) Next If ImageInfoList(Index).CustomizedInfo IsNot Nothing Then Dim CurrentOSCulture As CultureInfo = CultureInfo.CurrentCulture @@ -544,51 +156,8 @@ Public Class GetImgInfoDlg ImageModificationDate = ModifiedDate.ToString("MM/dd/yyyy HH:mm:ss") End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " files in " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " directories" - Label10.Text = "Date created: " & ImageCreationDate & CrLf & _ - "Date modified: " & ImageModificationDate - Case "ESN" - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " archivos en " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " directorios" - Label10.Text = "Fecha de creación: " & ImageCreationDate & CrLf & _ - "Fecha de modificación: " & ImageModificationDate - Case "FRA" - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " fichiers dans " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " répertoires" - Label10.Text = "Date de création : " & ImageCreationDate & CrLf & _ - "Date de modification : " & ImageModificationDate - Case "PTB", "PTG" - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " ficheiros em " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " directórios" - Label10.Text = "Data de criação: " & ImageCreationDate & CrLf & _ - "Data de modificação: " & ImageModificationDate - Case "ITA" - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " file in " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " cartelle" - Label10.Text = "Data di creazione: " & ImageCreationDate & CrLf & _ - "Data modifica: " & ImageModificationDate - End Select - Case 1 - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " files in " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " directories" - Label10.Text = "Date created: " & ImageCreationDate & CrLf & _ - "Date modified: " & ImageModificationDate - Case 2 - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " archivos en " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " directorios" - Label10.Text = "Fecha de creación: " & ImageCreationDate & CrLf & _ - "Fecha de modificación: " & ImageModificationDate - Case 3 - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " fichiers dans " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " répertoires" - Label10.Text = "Date de création : " & ImageCreationDate & CrLf & _ - "Date de modification : " & ImageModificationDate - Case 4 - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " ficheiros em " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " directórios" - Label10.Text = "Data de criação: " & ImageCreationDate & CrLf & _ - "Data de modificação: " & ImageModificationDate - Case 5 - Label6.Text = ImageInfoList(Index).CustomizedInfo.FileCount & " file in " & ImageInfoList(Index).CustomizedInfo.DirectoryCount & " cartelle" - Label10.Text = "Data di creazione: " & ImageCreationDate & CrLf & _ - "Data modifica: " & ImageModificationDate - End Select + Label6.Text = LocalizationService.ForSection("ImageInfo.DisplayImageInfo").Format("FilesDirectories.Label", ImageInfoList(Index).CustomizedInfo.FileCount, ImageInfoList(Index).CustomizedInfo.DirectoryCount) + Label10.Text = LocalizationService.ForSection("ImageInfo.DisplayImageInfo").Format("Date.Created.Modified.Label", ImageCreationDate, ImageModificationDate) Else Label6.Text = "" Label10.Text = "" @@ -720,31 +289,7 @@ Public Class GetImgInfoDlg Exit Sub End Select DynaLog.LogMessage("Detected feature update: " & FeatUpd) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label23.Text &= " (feature update: " & FeatUpd & ")" - Case "ESN" - Label23.Text &= " (actualización de características: " & FeatUpd & ")" - Case "FRA" - Label23.Text &= "(m-à-j des caractéristiques: " & FeatUpd & ")" - Case "PTB", "PTG" - Label23.Text &= " (atualização de funcionalidades: " & FeatUpd & ")" - Case "ITA" - Label23.Text &= " (aggiornamento funzionalità: " & FeatUpd & ")" - End Select - Case 1 - Label23.Text &= " (feature update: " & FeatUpd & ")" - Case 2 - Label23.Text &= " (actualización de características: " & FeatUpd & ")" - Case 3 - Label23.Text &= "(m-à-j des caractéristiques: " & FeatUpd & ")" - Case 4 - Label23.Text &= " (atualização de funcionalidades: " & FeatUpd & ")" - Case 5 - Label23.Text &= " (aggiornamento funzionalità: " & FeatUpd & ")" - End Select + Label23.Text &= LocalizationService.ForSection("ImageInfo.FeatureUpdate")("FeatureUpdate.Label") & FeatUpd & LocalizationService.ForSection("ImageInfo.FeatureUpdate")("Text1.Label") End Sub Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged diff --git a/Panels/Get_Ops/InfoSave/ImgInfoSaveDlg.Designer.vb b/Panels/Get_Ops/InfoSave/ImgInfoSaveDlg.Designer.vb index bcbfc96a7..d61dd574c 100644 --- a/Panels/Get_Ops/InfoSave/ImgInfoSaveDlg.Designer.vb +++ b/Panels/Get_Ops/InfoSave/ImgInfoSaveDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgInfoSaveDlg Inherits System.Windows.Forms.Form @@ -47,7 +47,7 @@ Partial Class ImgInfoSaveDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(640, 18) Me.Label2.TabIndex = 4 - Me.Label2.Text = "Status" + Me.Label2.Text = LocalizationService.ForSection("Designer.Img.Save")("Status.Label") ' 'Label1 ' @@ -58,8 +58,7 @@ Partial Class ImgInfoSaveDlg Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(640, 55) Me.Label1.TabIndex = 5 - Me.Label1.Text = "Please wait while DISMTools saves the image information to a file. This can take " & _ - "some time, depending on the tasks that are run." + Me.Label1.Text = LocalizationService.ForSection("Designer.Img.Save")("Wait.Message") ' 'PictureBox1 ' @@ -88,7 +87,7 @@ Partial Class ImgInfoSaveDlg Me.Name = "ImgInfoSaveDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Saving image information..." + Me.Text = LocalizationService.ForSection("Designer.Img.Save")("Saving.Image.Button") CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Get_Ops/InfoSave/ImgInfoSaveDlg.vb b/Panels/Get_Ops/InfoSave/ImgInfoSaveDlg.vb index 01b73fc14..6441299d3 100644 --- a/Panels/Get_Ops/InfoSave/ImgInfoSaveDlg.vb +++ b/Panels/Get_Ops/InfoSave/ImgInfoSaveDlg.vb @@ -65,10 +65,10 @@ Public Class ImgInfoSaveDlg End Sub Private Sub WriteExceptionInfo(ex As Exception) - Contents &= GetParagraph("The program could not get information about this task. See below for reasons why:") & CrLf & - GetListItems(New String() {"Exception: " & ex.ToString(), - "Exception message: " & ex.Message, - "Error code: " & Hex(ex.HResult) & CrLf & CrLf}. + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Get.Message")) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Exception.Label") & ex.ToString(), + LocalizationService.ForSection("ImageInfoSave.Report")("ExceptionMessage") & ex.Message, + LocalizationService.ForSection("ImageInfoSave.Report")("ErrorCode.Label") & Hex(ex.HResult) & CrLf & CrLf}. ToList()) End Sub @@ -76,7 +76,7 @@ Public Class ImgInfoSaveDlg Dim ImageInfoCollection As DismImageInfoCollection = Nothing Dim ImageInfoList As New List(Of DismImageInfo) If ImageInfoList.Count <> 0 Then ImageInfoList.Clear() - Contents &= GetHeader("Image information", HeaderSize.Header2) & CrLf + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("ImageInfo.Label"), HeaderSize.Header2) & CrLf If OnlineMode Then Dim revisionNumber As Integer Try @@ -87,20 +87,20 @@ Public Class ImgInfoSaveDlg revisionNumber = FileVersionInfo.GetVersionInfo(Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\system32\ntoskrnl.exe").ProductPrivatePart End Try - Contents &= GetHeader("Active installation information:", HeaderSize.Header3) & CrLf & - GetListItems(New String() {"Name: " & My.Computer.Info.OSFullName, - "Boot point (mount point): " & Environment.GetEnvironmentVariable("SYSTEMDRIVE"), - "Version: " & Environment.OSVersion.Version.Major & "." & Environment.OSVersion.Version.Minor & "." & Environment.OSVersion.Version.Build & "." & revisionNumber}. + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label"), HeaderSize.Header3) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Name.Label") & My.Computer.Info.OSFullName, + LocalizationService.ForSection("ImageInfoSave.Report")("Boot.Point.Mount.Label") & Environment.GetEnvironmentVariable("SYSTEMDRIVE"), + LocalizationService.ForSection("ImageInfoSave.Report")("Version.Label") & Environment.OSVersion.Version.Major & "." & Environment.OSVersion.Version.Minor & "." & Environment.OSVersion.Version.Build & "." & revisionNumber}. ToList()) & CrLf Exit Sub ElseIf OfflineMode Then - Contents &= GetHeader("Offline installation information:", HeaderSize.Header3) & CrLf & - GetListItems(New String() {"Boot point (mount point): " & ImgMountDir, - "- Version: " & FileVersionInfo.GetVersionInfo(ImgMountDir & "\Windows\system32\ntoskrnl.exe").ProductVersion.ToString()}. + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("Offline.Install.Label"), HeaderSize.Header3) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Boot.Point.Mount.Label") & ImgMountDir, + LocalizationService.ForSection("ImageInfoSave.Report")("OfflineVersion.Label") & FileVersionInfo.GetVersionInfo(ImgMountDir & "\Windows\system32\ntoskrnl.exe").ProductVersion.ToString()}. ToList()) & CrLf Exit Sub End If - Contents &= GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "")}.ToList()) + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "")}.ToList()) Debug.WriteLine("[GetImageInformation] Starting task...") Try Debug.WriteLine("[GetImageInformation] Starting API...") @@ -108,63 +108,39 @@ Public Class ImgInfoSaveDlg Debug.WriteLine("[GetImageInformation] Populating info collection...") ImageInfoCollection = DismApi.GetImageInfo(SourceImage) Debug.WriteLine("[GetImageInformation] Information processes completed for the image. Obtained images: " & ImageInfoCollection.Count) - Contents &= CrLf & GetParagraph("Information summary for " & ImageInfoCollection.Count & " image(s):", ParagraphStyle.Bold) & CrLf & - GetTableHeader(New String() {"Version", - "Image name", - "Image description", - "Image size", - "Architecture", - "HAL", - "Service Pack build", - "Service Pack level", - "Installation type", - "Edition", - "Product type", - "Product suite", - "System root directory", - "Languages", - "Date of creation", - "Date of modification"}.ToList()) + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & ImageInfoCollection.Count & LocalizationService.ForSection("ImageInfoSave.Report")("ImageS.Label"), ParagraphStyle.Bold) & CrLf & + GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Version.Column"), + LocalizationService.ForSection("ImageInfoSave.Report")("ImageName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ImageDescription"), + LocalizationService.ForSection("ImageInfoSave.Report")("ImageSize.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Architecture.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("HAL.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ServicePackBuild.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ServicePackLevel.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("InstallationType.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Edition.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ProductType.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ProductSuite.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("System.Root.Dir.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Languages.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("DateCreation.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("DateModification.Label")}.ToList()) Debug.WriteLine("[GetImageInformation] Exporting information to contents...") For Each ImageInfo As DismImageInfo In ImageInfoCollection Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Getting image information... (image " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " of " & ImageInfoCollection.Count & ")" - Case "ESN" - msg = "Obteniendo información de la imagen... (imagen " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " de " & ImageInfoCollection.Count & ")" - Case "FRA" - msg = "Obtention des informations sur l'image en cours... (image " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " de " & ImageInfoCollection.Count & ")" - Case "PTB", "PTG" - msg = "Obter informações sobre a imagem... (imagem " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " de " & ImageInfoCollection.Count & ")" - Case "ITA" - msg = "Verifica informazioni immagine... (immagine " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " di " & ImageInfoCollection.Count & ")" - End Select - Case 1 - msg = "Getting image information... (image " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " of " & ImageInfoCollection.Count & ")" - Case 2 - msg = "Obteniendo información de la imagen... (imagen " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " de " & ImageInfoCollection.Count & ")" - Case 3 - msg = "Obtention des informations sur l'image en cours... (image " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " de " & ImageInfoCollection.Count & ")" - Case 4 - msg = "Obter informações sobre a imagem... (imagem " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " de " & ImageInfoCollection.Count & ")" - Case 5 - msg = "Verifica informazioni immagine... (immagine " & ImageInfoCollection.IndexOf(ImageInfo) + 1 & " di " & ImageInfoCollection.Count & ")" - End Select + msg = LocalizationService.ForSection("ImageInfoSave.Image").Format("Getting.Image.Message", ImageInfoCollection.IndexOf(ImageInfo) + 1, ImageInfoCollection.Count) Dim languages As String = "
    " For Each language In ImageInfo.Languages - languages &= "
  • " & language.DisplayName & If(ImageInfo.DefaultLanguage.Name = language.Name, " (default)", "") & "
  • " + languages &= "
  • " & language.DisplayName & If(ImageInfo.DefaultLanguage.Name = language.Name, LocalizationService.ForSection("ImageInfoSave.Report")("Default.Label"), "") & "
  • " Next languages &= "
" ReportChanges(msg, (ImageInfoCollection.IndexOf(ImageInfo) / ImageInfoCollection.Count) * 100) Contents &= GetTableRow(New String() {ImageInfo.ProductVersion.ToString(), ImageInfo.ImageName, ImageInfo.ImageDescription, - ImageInfo.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(ImageInfo.ImageSize) & ")", + ImageInfo.ImageSize.ToString("N0") & LocalizationService.ForSection("ImageInfoSave.Report")("Bytes.Label") & Converters.BytesToReadableSize(ImageInfo.ImageSize) & ")", Casters.CastDismArchitecture(ImageInfo.Architecture), - If(ImageInfo.Hal <> "", ImageInfo.Hal, "Undefined by the image"), + If(ImageInfo.Hal <> "", ImageInfo.Hal, LocalizationService.ForSection("ImageInfoSave.Report")("UndefinedImage.Label")), ImageInfo.ProductVersion.Revision, ImageInfo.SpLevel, ImageInfo.InstallationType, @@ -188,73 +164,11 @@ Public Class ImgInfoSaveDlg Private Sub GetPackageInformation(GetEverything As Boolean) Dim InstalledPkgInfo As DismPackageCollection = Nothing Dim msg As String() = New String(2) {"", "", ""} - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Preparing package information processes..." - msg(1) = "The program has obtained basic information of the installed packages of this image. You can also get complete information of such packages and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed packages." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "Package information" - Case "ESN" - msg(0) = "Preparando procesos de información de paquetes..." - msg(1) = "El programa ha obtenido información básica de los paquetes instalados en esta imagen. También puede obtener información completa de dichos paquetes y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de paquetes instalados." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de paquetes" - Case "FRA" - msg(0) = "Préparation des processus d'information sur les paquets en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les paquets installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces paquets et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de paquets installés." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les paquets" - Case "PTB", "PTG" - msg(0) = "A preparar processos de informação de pacotes..." - msg(1) = "O programa obteve informações básicas sobre os pacotes instalados nesta imagem. Também pode obter informações completas sobre esses pacotes e guardá-las no relatório." & CrLf & CrLf & - "Tem em atenção que isto pode demorar mais tempo, dependendo do número de pacotes instalados." & CrLf & CrLf & - "Deseja obter esta informação e guardá-la no relatório?" - msg(2) = "Informações do pacote" - Case "ITA" - msg(0) = "Preparazione processi verifica informazioni pacchetti..." - msg(1) = "Il programma ha verificato le informazioni di base sui pacchetti installati in questa immagine. È anche possibile avere informazioni complete su tali pacchetti e salvarle nel rapporto." & CrLf & CrLf & - "Nota che questa operazione richiederà più tempo a seconda del numero di pacchetti installati." & CrLf & CrLf & - "Vuoi avere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni pacchetto" - End Select - Case 1 - msg(0) = "Preparing package information processes..." - msg(1) = "The program has obtained basic information of the installed packages of this image. You can also get complete information of such packages and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed packages." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "Package information" - Case 2 - msg(0) = "Preparando procesos de información de paquetes..." - msg(1) = "El programa ha obtenido información básica de los paquetes instalados en esta imagen. También puede obtener información completa de dichos paquetes y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de paquetes instalados." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de paquetes" - Case 3 - msg(0) = "Préparation des processus d'information sur les paquets en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les paquets installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces paquets et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de paquets installés." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les paquets" - Case 4 - msg(0) = "A preparar processos de informação de pacotes..." - msg(1) = "O programa obteve informações básicas sobre os pacotes instalados nesta imagem. Também pode obter informações completas sobre esses pacotes e guardá-las no relatório." & CrLf & CrLf & - "Tem em atenção que isto pode demorar mais tempo, dependendo do número de pacotes instalados." & CrLf & CrLf & - "Deseja obter esta informação e guardá-la no relatório?" - msg(2) = "Informações do pacote" - Case 5 - msg(0) = "Preparazione processi verifica informazioni pacchetti..." - msg(1) = "Il programma ha verificato le informazioni di base sui pacchetti installati in questa immagine. È anche possibile avere informazioni complete su tali pacchetti e salvarle nel rapporto." & CrLf & CrLf & - "Nota che questa operazione richiederà più tempo a seconda del numero di pacchetti installati." & CrLf & CrLf & - "Vuoi ottenere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni pacchetto" - End Select - Contents &= GetHeader("Package information", HeaderSize.Header2) & CrLf & - GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation")}.ToList()) & CrLf + msg(0) = LocalizationService.ForSection("ImgInfo.Packages")("Preparing.Package.Message") + msg(1) = LocalizationService.ForSection("ImageInfoSave.Packages")("Basic.Ready.Message") & LocalizationService.ForSection("ImageInfoSave.Packages")("May.Take.Long.Message") & CrLf & CrLf & LocalizationService.ForSection("ImageInfoSave.Packages")("Prompt.Label") + msg(2) = LocalizationService.ForSection("ImageInfoSave.Packages")("PackageInfo.Message") + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("PackageInfo.Label"), HeaderSize.Header2) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label"))}.ToList()) & CrLf Debug.WriteLine("[GetPackageInformation] Starting task...") Try Debug.WriteLine("[GetPackageInformation] Starting API...") @@ -265,85 +179,37 @@ Public Class ImgInfoSaveDlg Debug.WriteLine("[GetPackageInformation] Getting basic package information...") ReportChanges(msg(0), 5) InstalledPkgInfo = DismApi.GetPackages(imgSession) - Contents &= GetParagraph("Information summary for " & InstalledPkgInfo.Count & " package(s):", ParagraphStyle.Bold) & CrLf - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Packages have been obtained" - Case "ESN" - msg(0) = "Los paquetes han sido obtenidos" - Case "FRA" - msg(0) = "Des paquets ont été obtenus" - Case "PTB", "PTG" - msg(0) = "Os pacotes foram obtidos" - Case "ITA" - msg(0) = "I pacchetti sono stati acquisiti" - End Select - Case 1 - msg(0) = "Packages have been obtained" - Case 2 - msg(0) = "Los paquetes han sido obtenidos" - Case 3 - msg(0) = "Des paquets ont été obtenus" - Case 4 - msg(0) = "Os pacotes foram obtidos" - Case 5 - msg(0) = "I pacchetti sono stati acquisiti" - End Select + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & InstalledPkgInfo.Count & LocalizationService.ForSection("ImageInfoSave.Report")("PackageS.Label"), ParagraphStyle.Bold) & CrLf + msg(0) = LocalizationService.ForSection("ImageInfoSave.Packages")("PackagesObtained.Message") ReportChanges(msg(0), 10) Dim pkgCustomPropsList As String = "
    " Dim pkgFeaturesList As String = "
      " If GetEverything Then - Contents &= CrLf & GetTableHeader(New String() {"Package name", - "Applicable?", - "Copyright", - "Company", - "Creation time", - "Description", - "Install client", - "Install package name", - "Install time", - "Last update time", - "Display name", - "Product name", - "Product version", - "Release type", - "Restart required?", - "Support information", - "Package state", - "Boot up required?", - "Capability identity", - "Custom properties", - "Features"}. + Contents &= CrLf & GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("PackageName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Applicable.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Copyright.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Company.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CreationTime.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Description"), + LocalizationService.ForSection("ImageInfoSave.Report")("InstallClient.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Install.Package.Name.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("InstallTime.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Last.Update.Time.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("DisplayName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ProductName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ProductVersion.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ReleaseType.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("RestartRequired.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("SupportInfo.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("PackageState.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Boot.Up.Required.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Capability.Identity.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CustomProps.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Features.Label")}. ToList()) Debug.WriteLine("[GetPackageInformation] Getting complete package information...") For Each installedPackage As DismPackage In InstalledPkgInfo - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Getting information of packages... (package " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " of " & InstalledPkgInfo.Count & ")" - Case "ESN" - msg(0) = "Obteniendo información de paquetes... (paquete " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " de " & InstalledPkgInfo.Count & ")" - Case "FRA" - msg(0) = "Obtention des informations sur les paquets en cours... (paquet " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " de " & InstalledPkgInfo.Count & ")" - Case "PTB", "PTG" - msg(0) = "Obter informações sobre os pacotes... (pacote " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " de " & InstalledPkgInfo.Count & ")" - Case "ITA" - msg(0) = "Verifica informazioni pacchetti... (pacchetto " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " di " & InstalledPkgInfo.Count & ")" - End Select - Case 1 - msg(0) = "Getting information of packages... (package " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " of " & InstalledPkgInfo.Count & ")" - Case 2 - msg(0) = "Obteniendo información de paquetes... (paquete " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " de " & InstalledPkgInfo.Count & ")" - Case 3 - msg(0) = "Obtention des informations sur les paquets en cours... (paquet " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " de " & InstalledPkgInfo.Count & ")" - Case 4 - msg(0) = "Obter informações sobre os pacotes... (pacote " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " de " & InstalledPkgInfo.Count & ")" - Case 5 - msg(0) = "Verifica informazioni pacchetti... (pacchetto " & InstalledPkgInfo.IndexOf(installedPackage) + 1 & " di " & InstalledPkgInfo.Count & ")" - End Select + msg(0) = LocalizationService.ForSection("ImgInfo.Packages").Format("Loading.Package.Message", InstalledPkgInfo.IndexOf(installedPackage) + 1, InstalledPkgInfo.Count) ReportChanges(msg(0), (InstalledPkgInfo.IndexOf(installedPackage) / InstalledPkgInfo.Count) * 100) Dim pkgInfoEx As DismPackageInfoEx = Nothing Dim pkgInfo As DismPackageInfo = Nothing @@ -365,7 +231,7 @@ Public Class ImgInfoSaveDlg Next pkgCustomPropsList &= "
    " Else - pkgCustomPropsList = "None" + pkgCustomPropsList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If If pkgInfoEx.Features.Count > 0 Then Dim pkgFeats As DismFeatureCollection = pkgInfoEx.Features @@ -374,18 +240,18 @@ Public Class ImgInfoSaveDlg Next pkgFeaturesList &= "
" Else - pkgFeaturesList = "None" + pkgFeaturesList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If Contents &= GetTableRow(New String() {CodeBlockChar & pkgInfoEx.PackageName & CodeBlockChar, - Casters.CastDismApplicabilityStatus(pkgInfoEx.Applicable), + Casters.Applicability(pkgInfoEx.Applicable), pkgInfoEx.Copyright, pkgInfoEx.Company, - pkgInfoEx.CreationTime & If(pkgInfoEx.CreationTime.Year < 1900, " - **Preposterous time and date**", ""), + pkgInfoEx.CreationTime & If(pkgInfoEx.CreationTime.Year < 1900, LocalizationService.ForSection("ImageInfoSave.Report")("Preposterous.Time.Date.Label"), ""), pkgInfoEx.Description, pkgInfoEx.InstallClient, CodeBlockChar & pkgInfoEx.InstallPackageName & CodeBlockChar, pkgInfoEx.InstallTime, - pkgInfoEx.LastUpdateTime & If(pkgInfoEx.LastUpdateTime.Year < 1900, " - **Preposterous time and date**", ""), + pkgInfoEx.LastUpdateTime & If(pkgInfoEx.LastUpdateTime.Year < 1900, LocalizationService.ForSection("ImageInfoSave.Report")("Preposterous.Time.Date.Label"), ""), pkgInfoEx.DisplayName, pkgInfoEx.ProductName, pkgInfoEx.ProductVersion.ToString(), @@ -393,7 +259,7 @@ Public Class ImgInfoSaveDlg Casters.CastDismRestartType(pkgInfoEx.RestartRequired), pkgInfoEx.SupportInformation, Casters.CastDismPackageState(pkgInfoEx.PackageState), - Casters.CastDismFullyOfflineInstallationType(pkgInfoEx.FullyOffline), + Casters.OfflineInstallType(pkgInfoEx.FullyOffline), CodeBlockChar & pkgInfoEx.CapabilityId & CodeBlockChar, pkgCustomPropsList, pkgFeaturesList}. @@ -408,7 +274,7 @@ Public Class ImgInfoSaveDlg Next pkgCustomPropsList &= "" Else - pkgCustomPropsList = "None" + pkgCustomPropsList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If If pkgInfo.Features.Count > 0 Then Dim pkgFeats As DismFeatureCollection = pkgInfo.Features @@ -417,18 +283,18 @@ Public Class ImgInfoSaveDlg Next pkgFeaturesList &= "" Else - pkgFeaturesList = "None" + pkgFeaturesList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If Contents &= GetTableRow(New String() {CodeBlockChar & pkgInfo.PackageName & CodeBlockChar, - Casters.CastDismApplicabilityStatus(pkgInfo.Applicable), + Casters.Applicability(pkgInfo.Applicable), pkgInfo.Copyright, pkgInfo.Company, - pkgInfo.CreationTime & If(pkgInfo.CreationTime.Year < 1900, " - **Preposterous time and date**", ""), + pkgInfo.CreationTime & If(pkgInfo.CreationTime.Year < 1900, LocalizationService.ForSection("ImageInfoSave.Report")("Preposterous.Time.Date.Label"), ""), pkgInfo.Description, pkgInfo.InstallClient, CodeBlockChar & pkgInfo.InstallPackageName & CodeBlockChar, pkgInfo.InstallTime, - pkgInfo.LastUpdateTime & If(pkgInfo.LastUpdateTime.Year < 1900, " - **Preposterous time and date**", ""), + pkgInfo.LastUpdateTime & If(pkgInfo.LastUpdateTime.Year < 1900, LocalizationService.ForSection("ImageInfoSave.Report")("Preposterous.Time.Date.Label"), ""), pkgInfo.DisplayName, pkgInfo.ProductName, pkgInfo.ProductVersion.ToString(), @@ -436,45 +302,21 @@ Public Class ImgInfoSaveDlg Casters.CastDismRestartType(pkgInfo.RestartRequired), pkgInfo.SupportInformation, Casters.CastDismPackageState(pkgInfo.PackageState), - Casters.CastDismFullyOfflineInstallationType(pkgInfo.FullyOffline), - "None", + Casters.OfflineInstallType(pkgInfo.FullyOffline), + LocalizationService.ForSection("ImageInfoSave.Report")("None.Label"), pkgCustomPropsList, pkgFeaturesList}. ToList()) End If Next - Contents &= CrLf & GetParagraph("Complete package information has been gathered.") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("PackageInfo.Ready.Label")) & CrLf Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Saving installed packages..." - Case "ESN" - msg(0) = "Guardando paquetes instalados..." - Case "FRA" - msg(0) = "Sauvegarde des paquets installés en cours..." - Case "PTB", "PTG" - msg(0) = "Guardar os pacotes instalados..." - Case "ITA" - msg(0) = "Salvataggio pacchetti installati..." - End Select - Case 1 - msg(0) = "Saving installed packages..." - Case 2 - msg(0) = "Guardando paquetes instalados..." - Case 3 - msg(0) = "Sauvegarde des paquets installés en cours..." - Case 4 - msg(0) = "Guardar os pacotes instalados..." - Case 5 - msg(0) = "Salvataggio pacchetti installati..." - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.Packages")("SavePackages.Message") ReportChanges(msg(0), 50) - Contents &= GetTableHeader(New String() {"Package name", - "Package state", - "Package release type", - "Package install time"}. + Contents &= GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("PackageName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("PackageState.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Package.Release.Type.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Package.Install.Time.Label")}. ToList()) For Each installedPackage As DismPackage In InstalledPkgInfo Contents &= GetTableRow(New String() {CodeBlockChar & installedPackage.PackageName & CodeBlockChar, @@ -483,7 +325,7 @@ Public Class ImgInfoSaveDlg installedPackage.InstallTime}. ToList()) Next - Contents &= CrLf & GetParagraph("Complete package information has not been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("PackageInfo.Missing.Label")) & CrLf End If End Using Catch ex As Exception @@ -496,92 +338,44 @@ Public Class ImgInfoSaveDlg Private Sub GetPackageFileInformation() Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Preparing package information processes..." - Case "ESN" - msg = "Preparando procesos de información de paquetes..." - Case "FRA" - msg = "Préparation des processus d'information des paquets en cours..." - Case "PTB", "PTG" - msg = "A preparar processos de informação sobre pacotes..." - Case "ITA" - msg = "Preparazione processi verifica informazioni pacchetti..." - End Select - Case 1 - msg = "Preparing package information processes..." - Case 2 - msg = "Preparando procesos de información de paquetes..." - Case 3 - msg = "Préparation des processus d'information des paquets en cours..." - Case 4 - msg = "A preparar processos de informação sobre pacotes..." - Case 5 - msg = "Preparazione processi verifica informazioni pacchetti..." - End Select - Contents &= GetHeader("Package file information", HeaderSize.Header2) & CrLf & - GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation")}.ToList()) & CrLf + msg = LocalizationService.ForSection("ImgInfo.PkgFiles")("Preparing.Package.Message") + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("Package.File.Label"), HeaderSize.Header2) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label"))}.ToList()) & CrLf Debug.WriteLine("[GetPackageFileInformation] Starting task...") Try Debug.WriteLine("[GetPackageFileInformation] Starting API...") DismApi.Initialize(DismLogLevel.LogErrors) Debug.WriteLine("[GetPackageFileInformation] Creating image session...") ReportChanges(msg, 0) - Contents &= GetParagraph("Amount of package files to get information about: " & PackageFiles.Count, ParagraphStyle.Bold) - Contents &= CrLf & GetTableHeader(New String() {"Package name", - "Applicable?", - "Copyright", - "Company", - "Creation time", - "Description", - "Install client", - "Install package name", - "Install time", - "Last update time", - "Display name", - "Product name", - "Product version", - "Release type", - "Restart required?", - "Support information", - "Package state", - "Boot up required?", - "Capability identity", - "Custom properties", - "Features"}. + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Amount.Package.Files.Label") & PackageFiles.Count, ParagraphStyle.Bold) + Contents &= CrLf & GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("PackageName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Applicable.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Copyright.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Company.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CreationTime.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Description"), + LocalizationService.ForSection("ImageInfoSave.Report")("InstallClient.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Install.Package.Name.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("InstallTime.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Last.Update.Time.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("DisplayName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ProductName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ProductVersion.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ReleaseType.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("RestartRequired.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("SupportInfo.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("PackageState.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Boot.Up.Required.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Capability.Identity.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CustomProps.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Features.Label")}. ToList()) Dim pkgCustomPropsList As String = "
    " Dim pkgFeaturesList As String = "
      " Using imgSession As DismSession = If(OnlineMode, DismApi.OpenOnlineSession(), DismApi.OpenOfflineSession(ImgMountDir)) For Each pkgFile In PackageFiles Try - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Getting information from package files... (package file " & PackageFiles.IndexOf(pkgFile) + 1 & " of " & PackageFiles.Count & ")" - Case "ESN" - msg = "Obteniendo información de archivos de paquetes... (archivo de paquete " & PackageFiles.IndexOf(pkgFile) + 1 & " de " & PackageFiles.Count & ")" - Case "FRA" - msg = "Obtention des informations des fichiers paquets en cours... (fichier paquet " & PackageFiles.IndexOf(pkgFile) + 1 & " de " & PackageFiles.Count & ")" - Case "PTB", "PTG" - msg = "Obter informações dos ficheiros do pacote... (ficheiro do pacote " & PackageFiles.IndexOf(pkgFile) + 1 & " de " & PackageFiles.Count & ")" - Case "ITA" - msg = "Verifica informazioni file pacchetto... (file pacchetto " & PackageFiles.IndexOf(pkgFile) + 1 & " di " & PackageFiles.Count & ")" - End Select - Case 1 - msg = "Getting information from package files... (package file " & PackageFiles.IndexOf(pkgFile) + 1 & " of " & PackageFiles.Count & ")" - Case 2 - msg = "Obteniendo información de archivos de paquetes... (archivo de paquete " & PackageFiles.IndexOf(pkgFile) + 1 & " de " & PackageFiles.Count & ")" - Case 3 - msg = "Obtention des informations des fichiers paquets en cours... (fichier paquet " & PackageFiles.IndexOf(pkgFile) + 1 & " de " & PackageFiles.Count & ")" - Case 4 - msg = "Obter informações dos ficheiros do pacote... (ficheiro do pacote " & PackageFiles.IndexOf(pkgFile) + 1 & " de " & PackageFiles.Count & ")" - Case 5 - msg = "Verifica informazioni file pacchetto... (file pacchetto " & PackageFiles.IndexOf(pkgFile) + 1 & " di " & PackageFiles.Count & ")" - End Select + msg = LocalizationService.ForSection("ImgInfo.PackageFiles").Format("Loading.Package.Message", PackageFiles.IndexOf(pkgFile) + 1, PackageFiles.Count) ReportChanges(msg, (PackageFiles.IndexOf(pkgFile) / PackageFiles.Count) * 100) If File.Exists(pkgFile) Then Dim pkgInfoEx As DismPackageInfoEx = Nothing @@ -604,7 +398,7 @@ Public Class ImgInfoSaveDlg Next pkgCustomPropsList &= "
    " Else - pkgCustomPropsList = "None" + pkgCustomPropsList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If If pkgInfoEx.Features.Count > 0 Then Dim pkgFeats As DismFeatureCollection = pkgInfoEx.Features @@ -613,16 +407,16 @@ Public Class ImgInfoSaveDlg Next pkgFeaturesList &= "
" Else - pkgFeaturesList = "None" + pkgFeaturesList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If Contents &= GetTableRow(New String() {CodeBlockChar & pkgInfoEx.PackageName & CodeBlockChar, - Casters.CastDismApplicabilityStatus(pkgInfoEx.Applicable), + Casters.Applicability(pkgInfoEx.Applicable), pkgInfoEx.Copyright, pkgInfoEx.Company, pkgInfoEx.CreationTime, pkgInfoEx.Description, - If(pkgInfoEx.InstallClient = "", "None", pkgInfoEx.InstallClient), - If(pkgInfoEx.InstallPackageName = "", "None", CodeBlockChar & pkgInfoEx.InstallPackageName & CodeBlockChar), + If(pkgInfoEx.InstallClient = "", LocalizationService.ForSection("ImageInfoSave.Report")("None.Label"), pkgInfoEx.InstallClient), + If(pkgInfoEx.InstallPackageName = "", LocalizationService.ForSection("ImageInfoSave.Report")("None.Label"), CodeBlockChar & pkgInfoEx.InstallPackageName & CodeBlockChar), pkgInfoEx.InstallTime, pkgInfoEx.LastUpdateTime, pkgInfoEx.DisplayName, @@ -632,8 +426,8 @@ Public Class ImgInfoSaveDlg Casters.CastDismRestartType(pkgInfoEx.RestartRequired), pkgInfoEx.SupportInformation, Casters.CastDismPackageState(pkgInfoEx.PackageState), - Casters.CastDismFullyOfflineInstallationType(pkgInfoEx.FullyOffline), - If(pkgInfoEx.CapabilityId = "", "None", CodeBlockChar & pkgInfoEx.CapabilityId & CodeBlockChar), + Casters.OfflineInstallType(pkgInfoEx.FullyOffline), + If(pkgInfoEx.CapabilityId = "", LocalizationService.ForSection("ImageInfoSave.Report")("None.Label"), CodeBlockChar & pkgInfoEx.CapabilityId & CodeBlockChar), pkgCustomPropsList, pkgFeaturesList}.ToList()) ElseIf pkgInfo IsNot Nothing Then @@ -646,7 +440,7 @@ Public Class ImgInfoSaveDlg Next pkgCustomPropsList &= "" Else - pkgCustomPropsList = "None" + pkgCustomPropsList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If If pkgInfo.Features.Count > 0 Then Dim pkgFeats As DismFeatureCollection = pkgInfo.Features @@ -655,16 +449,16 @@ Public Class ImgInfoSaveDlg Next pkgFeaturesList &= "" Else - pkgFeaturesList = "None" + pkgFeaturesList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If Contents &= GetTableRow(New String() {CodeBlockChar & pkgInfo.PackageName & CodeBlockChar, - Casters.CastDismApplicabilityStatus(pkgInfo.Applicable), + Casters.Applicability(pkgInfo.Applicable), pkgInfo.Copyright, pkgInfo.Company, pkgInfo.CreationTime, pkgInfo.Description, - If(pkgInfo.InstallClient = "", "None", pkgInfo.InstallClient), - If(pkgInfo.InstallPackageName = "", "None", CodeBlockChar & pkgInfo.InstallPackageName & CodeBlockChar), + If(pkgInfo.InstallClient = "", LocalizationService.ForSection("ImageInfoSave.Report")("None.Label"), pkgInfo.InstallClient), + If(pkgInfo.InstallPackageName = "", LocalizationService.ForSection("ImageInfoSave.Report")("None.Label"), CodeBlockChar & pkgInfo.InstallPackageName & CodeBlockChar), pkgInfo.InstallTime, pkgInfo.LastUpdateTime, pkgInfo.DisplayName, @@ -674,8 +468,8 @@ Public Class ImgInfoSaveDlg Casters.CastDismRestartType(pkgInfo.RestartRequired), pkgInfo.SupportInformation, Casters.CastDismPackageState(pkgInfo.PackageState), - Casters.CastDismFullyOfflineInstallationType(pkgInfo.FullyOffline), - "None", + Casters.OfflineInstallType(pkgInfo.FullyOffline), + LocalizationService.ForSection("ImageInfoSave.Report")("None.Label"), pkgCustomPropsList, pkgFeaturesList}.ToList()) End If @@ -697,73 +491,11 @@ Public Class ImgInfoSaveDlg Private Sub GetFeatureInformation(GetEverything As Boolean) Dim InstalledFeatInfo As DismFeatureCollection = Nothing Dim msg As String() = New String(2) {"", "", ""} - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Preparing feature information processes..." - msg(1) = "The program has obtained basic information of the installed features of this image. You can also get complete information of such features and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed features." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "Feature information" - Case "ESN" - msg(0) = "Preparando procesos de información de características..." - msg(1) = "El programa ha obtenido información básica de las características instaladas en esta imagen. También puede obtener información completa de dichas características y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de características instaladas." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de características" - Case "FRA" - msg(0) = "Préparation des processus d'information sur les caractéristiques en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les caractéristiques installées sur cette image. Vous pouvez également obtenir des informations complètes sur ces caractéristiques et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de caractéristiques installées." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les caractéristiques" - Case "PTB", "PTG" - msg(0) = "A preparar processos de informação de características..." - msg(1) = "O programa obteve informações básicas sobre as características instaladas desta imagem. Também pode obter informações completas sobre essas características e guardá-las no relatório." & CrLf & CrLf & - "Tenha em atenção que isto pode demorar mais tempo, dependendo do número de características instaladas." & CrLf & CrLf & - "Pretende obter esta informação e guardá-la no relatório?" - msg(2) = "Informação sobre as características" - Case "ITA" - msg(0) = "Preparazione processi verifica informazioni funzionalità..." - msg(1) = "Il programma ha verificato le informazioni di base sulle funzionalità installate in questa immagine. È possibile avere informazioni complete su tali funzionalità e salvarle nel rapporto." & CrLf & CrLf & - "Tieni presente che questa operazione richiederà più tempo a seconda del numero di funzionalità installate." & CrLf & CrLf & - "Vuoi avere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni funzionalità" - End Select - Case 1 - msg(0) = "Preparing feature information processes..." - msg(1) = "The program has obtained basic information of the installed features of this image. You can also get complete information of such features and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed features." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "Feature information" - Case 2 - msg(0) = "Preparando procesos de información de características..." - msg(1) = "El programa ha obtenido información básica de las características instaladas en esta imagen. También puede obtener información completa de dichos características y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de características instalados." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de características" - Case 3 - msg(0) = "Préparation des processus d'information sur les caractéristiques en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les caractéristiques installées sur cette image. Vous pouvez également obtenir des informations complètes sur ces caractéristiques et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de caractéristiques installées." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les caractéristiques" - Case 4 - msg(0) = "A preparar processos de informação de características..." - msg(1) = "O programa obteve informações básicas sobre as características instaladas desta imagem. Também pode obter informações completas sobre essas características e guardá-las no relatório." & CrLf & CrLf & - "Tenha em atenção que isto pode demorar mais tempo, dependendo do número de características instaladas." & CrLf & CrLf & - "Pretende obter esta informação e guardá-la no relatório?" - msg(2) = "Informação sobre as características" - Case 5 - msg(0) = "Preparazione processi verifica informazioni funzionalità..." - msg(1) = "Il programma ha verificato le informazioni di base sulle funzionalità installate in questa immagine. È possibile avere informazioni complete su tali funzionalità e salvarle nel rapporto." & CrLf & CrLf & - "Tieni presente che questa operazione richiederà più tempo a seconda del numero di funzionalità installate." & CrLf & CrLf & - "Vuoi avere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni funzionalità" - End Select - Contents &= GetHeader("Feature information", HeaderSize.Header2) & CrLf & - GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation")}.ToList()) & CrLf + msg(0) = LocalizationService.ForSection("ImgInfo.Features")("Preparing.Feature.Message") + msg(1) = LocalizationService.ForSection("ImageInfoSave.Features")("Basic.Ready.Message") & LocalizationService.ForSection("ImageInfoSave.Features")("May.Take.Long.Message") & CrLf & CrLf & LocalizationService.ForSection("ImageInfoSave.Features")("Prompt.Label") + msg(2) = LocalizationService.ForSection("ImageInfoSave.Features")("FeatureInfo.Message") + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("FeatureInfo.Label"), HeaderSize.Header2) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label"))}.ToList()) & CrLf Debug.WriteLine("[GetFeatureInformation] Starting task...") Try Debug.WriteLine("[GetFeatureInformation] Starting API...") @@ -774,70 +506,22 @@ Public Class ImgInfoSaveDlg Debug.WriteLine("[GetFeatureInformation] Getting basic feature information...") ReportChanges(msg(0), 5) InstalledFeatInfo = DismApi.GetFeatures(imgSession) - Contents &= GetParagraph("Information summary for " & InstalledFeatInfo.Count & " feature(s):", ParagraphStyle.Bold) & CrLf - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Features have been obtained" - Case "ESN" - msg(0) = "Las características han sido obtenidas" - Case "FRA" - msg(0) = "Des caractéristiques ont été obtenues" - Case "PTB", "PTG" - msg(0) = "As características foram obtidas" - Case "ITA" - msg(0) = "Le funzionalità sono state acquisite" - End Select - Case 1 - msg(0) = "Features have been obtained" - Case 2 - msg(0) = "Las características han sido obtenidas" - Case 3 - msg(0) = "Des caractéristiques ont été obtenues" - Case 4 - msg(0) = "As características foram obtidas" - Case 5 - msg(0) = "Le funzionalità sono state acquisite" - End Select + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & InstalledFeatInfo.Count & LocalizationService.ForSection("ImageInfoSave.Report")("FeatureCount.Suffix"), ParagraphStyle.Bold) & CrLf + msg(0) = LocalizationService.ForSection("ImageInfoSave.Features")("FeaturesObtained.Message") ReportChanges(msg(0), 10) Dim featCustomPropsList As String = "
    " If GetEverything Then - Contents &= CrLf & GetTableHeader(New String() {"Feature name", - "Display name", - "Description", - "Restart required?", - "Feature state", - "Custom properties", - "On The Web"}.ToList()) + Contents &= CrLf & GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("FeatureName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("DisplayName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Description"), + LocalizationService.ForSection("ImageInfoSave.Report")("RestartRequired.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("FeatureState.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CustomProps.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Web.Label")}.ToList()) Debug.WriteLine("[GetFeatureInformation] Getting complete feature information...") For Each feature As DismFeature In InstalledFeatInfo featCustomPropsList = "
      " - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Getting information of features... (feature " & InstalledFeatInfo.IndexOf(feature) + 1 & " of " & InstalledFeatInfo.Count & ")" - Case "ESN" - msg(0) = "Obteniendo información de características... (característica " & InstalledFeatInfo.IndexOf(feature) + 1 & " de " & InstalledFeatInfo.Count & ")" - Case "FRA" - msg(0) = "Obtention des informations sur les caractéristiques en cours... (caractéristique " & InstalledFeatInfo.IndexOf(feature) + 1 & " de " & InstalledFeatInfo.Count & ")" - Case "PTB", "PTG" - msg(0) = "Obter informações sobre as características... (caraterística " & InstalledFeatInfo.IndexOf(feature) + 1 & " de " & InstalledFeatInfo.Count & ")" - Case "ITA" - msg(0) = "Ottenere informazioni sulle caratteristiche... (caratteristica " & InstalledFeatInfo.IndexOf(feature) + 1 & " di " & InstalledFeatInfo.Count & ")" - End Select - Case 1 - msg(0) = "Getting information of features... (feature " & InstalledFeatInfo.IndexOf(feature) + 1 & " of " & InstalledFeatInfo.Count & ")" - Case 2 - msg(0) = "Obteniendo información de características... (característica " & InstalledFeatInfo.IndexOf(feature) + 1 & " de " & InstalledFeatInfo.Count & ")" - Case 3 - msg(0) = "Obtention des informations sur les caractéristiques en cours... (caractéristique " & InstalledFeatInfo.IndexOf(feature) + 1 & " de " & InstalledFeatInfo.Count & ")" - Case 4 - msg(0) = "Obter informações sobre as características... (caraterística " & InstalledFeatInfo.IndexOf(feature) + 1 & " de " & InstalledFeatInfo.Count & ")" - Case 5 - msg(0) = "Ottenere informazioni sulle caratteristiche... (caratteristica " & InstalledFeatInfo.IndexOf(feature) + 1 & " di " & InstalledFeatInfo.Count & ")" - End Select + msg(0) = LocalizationService.ForSection("ImgInfo.Features").Format("Loading.Feature.Message", InstalledFeatInfo.IndexOf(feature) + 1, InstalledFeatInfo.Count) ReportChanges(msg(0), (InstalledFeatInfo.IndexOf(feature) / InstalledFeatInfo.Count) * 100) Dim featInfo As DismFeatureInfo = DismApi.GetFeatureInfo(imgSession, feature.FeatureName) Dim cProps As DismCustomPropertyCollection = featInfo.CustomProperties @@ -847,7 +531,7 @@ Public Class ImgInfoSaveDlg Next featCustomPropsList &= "
    " Else - featCustomPropsList = "None" + featCustomPropsList = LocalizationService.ForSection("ImageInfoSave.Report")("None.Label") End If Contents &= GetTableRow(New String() {featInfo.FeatureName, featInfo.DisplayName, @@ -855,45 +539,21 @@ Public Class ImgInfoSaveDlg Casters.CastDismRestartType(featInfo.RestartRequired), Casters.CastDismFeatureState(featInfo.FeatureState), featCustomPropsList, - MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, featInfo.FeatureName)), "Look this item online")}.ToList()) + MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, featInfo.FeatureName)), LocalizationService.ForSection("ImageInfoSave.Report")("Look.Item.Online.Label"))}.ToList()) Next - Contents &= CrLf & GetParagraph("Complete feature information has been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("FeatureInfo.Ready.Label")) & CrLf Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Saving installed features..." - Case "ESN" - msg(0) = "Guardando características instaladas..." - Case "FRA" - msg(0) = "Sauvegarde des caractéristiques installés en cours..." - Case "PTB", "PTG" - msg(0) = "Guardar as características instaladas..." - Case "ITA" - msg(0) = "Salvataggio funzionalità installate..." - End Select - Case 1 - msg(0) = "Saving installed features..." - Case 2 - msg(0) = "Guardando características instaladas..." - Case 3 - msg(0) = "Sauvegarde des caractéristiques installés en cours..." - Case 4 - msg(0) = "Guardar as características instaladas..." - Case 5 - msg(0) = "Salvataggio funzionalità installate..." - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.Features")("SaveFeatures.Message") ReportChanges(msg(0), 50) - Contents &= GetTableHeader(New String() {"Feature name", - "Feature state", - "On The Web"}.ToList()) + Contents &= GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("FeatureName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("FeatureState.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Web.Label")}.ToList()) For Each installedFeature As DismFeature In InstalledFeatInfo Contents &= GetTableRow(New String() {installedFeature.FeatureName, Casters.CastDismFeatureState(installedFeature.State), - MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, installedFeature.FeatureName)), "Look this item online")}.ToList()) & CrLf + MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, installedFeature.FeatureName)), LocalizationService.ForSection("ImageInfoSave.Report")("Look.Item.Online.Label"))}.ToList()) & CrLf Next - Contents &= CrLf & GetParagraph("Complete feature information has not been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("FeatureInfo.Missing.Label")) & CrLf End If End Using Catch ex As Exception @@ -907,79 +567,17 @@ Public Class ImgInfoSaveDlg Private Sub GetAppxInformation(GetEverything As Boolean) Dim InstalledAppxPackageInfo As DismAppxPackageCollection = Nothing Dim msg As String() = New String(2) {"", "", ""} - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Preparing AppX package information processes..." - msg(1) = "The program has obtained basic information of the installed AppX packages of this image. You can also get complete information of such AppX packages and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed AppX packages." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "AppX package information" - Case "ESN" - msg(0) = "Preparando procesos de información de paquetes AppX..." - msg(1) = "El programa ha obtenido información básica de los paquetes AppX instalados en esta imagen. También puede obtener información completa de dichos paquetes AppX y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de paquetes AppX instalados." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de paquetes AppX" - Case "FRA" - msg(0) = "Préparation des processus d'information sur les paquets AppX en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les paquets AppX installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces paquets AppX et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de paquets AppX installés." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les paquets AppX" - Case "PTB", "PTG" - msg(0) = "A preparar processos de informação dos pacotes AppX..." - msg(1) = "O programa obteve informações básicas sobre os pacotes AppX instalados nesta imagem. Também pode obter informações completas sobre esses pacotes AppX e guardá-las no relatório." & CrLf & CrLf & - "Tem em atenção que isto demorará mais tempo, dependendo do número de pacotes AppX instalados." & CrLf & CrLf & - "Deseja obter esta informação e guardá-la no relatório?" - msg(2) = "Informação dos pacotes AppX" - Case "ITA" - msg(0) = "Preparazione processi verifica informazioni pacchetti AppX..." - msg(1) = "Il programma ha verificato le informazioni di base sui pacchetti AppX installati in questa immagine. È possibile avere informazioni complete su tali pacchetti AppX e salvarle nel rapporto." & CrLf & CrLf & - "Nota che questa operazione richiederà più tempo a seconda del numero di pacchetti AppX installati." & CrLf & CrLf & - "Vuoi avere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni pacchetti AppX" - End Select - Case 1 - msg(0) = "Preparing AppX package information processes..." - msg(1) = "The program has obtained basic information of the installed AppX packages of this image. You can also get complete information of such AppX packages and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed AppX packages." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "AppX package information" - Case 2 - msg(0) = "Preparando procesos de información de paquetes AppX..." - msg(1) = "El programa ha obtenido información básica de los paquetes AppX instalados en esta imagen. También puede obtener información completa de dichos paquetes AppX y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de paquetes AppX instalados." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de paquetes AppX" - Case 3 - msg(0) = "Préparation des processus d'information sur les paquets AppX en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les paquets AppX installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces paquets AppX et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de paquets AppX installés." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les paquets AppX" - Case 4 - msg(0) = "A preparar processos de informação dos pacotes AppX..." - msg(1) = "O programa obteve informações básicas sobre os pacotes AppX instalados nesta imagem. Também pode obter informações completas sobre esses pacotes AppX e guardá-las no relatório." & CrLf & CrLf & - "Tem em atenção que isto demorará mais tempo, dependendo do número de pacotes AppX instalados." & CrLf & CrLf & - "Deseja obter esta informação e guardá-la no relatório?" - msg(2) = "Informação dos pacotes AppX" - Case 5 - msg(0) = "Preparazione dei processi di informazione sui pacchetti AppX..." - msg(1) = "Il programma ha ottenuto informazioni elementari sui pacchetti AppX installati in questa immagine. È inoltre possibile ottenere informazioni complete su tali pacchetti AppX e salvarle nel rapporto." & CrLf & CrLf & - "Si noti che questa operazione richiederà più tempo a seconda del numero di pacchetti AppX installati." & CrLf & CrLf & - "Volete ottenere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni sui pacchetti AppX" - End Select - Contents &= GetHeader("AppX package information", HeaderSize.Header2) & CrLf & - GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation")}.ToList()) & CrLf + msg(0) = LocalizationService.ForSection("ImageInfoSave.AppxInfo")("Preparing.Package.Message") + msg(1) = LocalizationService.ForSection("ImageInfoSave.AppxInfo")("Basic.Ready.Message") & LocalizationService.ForSection("ImageInfoSave.AppxInfo")("May.Take.Long.Message") & CrLf & CrLf & LocalizationService.ForSection("ImageInfoSave.AppxInfo")("Prompt.Label") + msg(2) = LocalizationService.ForSection("ImageInfoSave.AppxInfo")("Package.Message") + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("AppX.Package.Label"), HeaderSize.Header2) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label"))}.ToList()) & CrLf If ImageToGetInfoFrom.ImageEditionId Is Nothing Then ImageToGetInfoFrom.ImageEditionId = " " End If ' Detect if the image is Windows 8 or later. If not, skip this task If (Not OnlineMode And (Not MainForm.IsWindows8OrHigher(ImgMountDir & "\Windows\system32\ntoskrnl.exe") Or ImageToGetInfoFrom.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase))) Or (OnlineMode And Not MainForm.IsWindows8OrHigher(Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\system32\ntoskrnl.exe")) Then - Contents &= GetParagraph("This task is not supported on the specified Windows image. Check that it contains Windows 8 or a later Windows version, and that it isn't a Windows PE image. Skipping task...", ParagraphStyle.Bold) & CrLf + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Task.Supported.Win.Message"), ParagraphStyle.Bold) & CrLf Exit Sub Else Debug.WriteLine("[GetAppxInformation] Starting task...") @@ -987,45 +585,21 @@ Public Class ImgInfoSaveDlg Try ' Windows 8 can't get this information with the API. Use the MainForm arrays If Environment.OSVersion.Version.Major < 10 Then - Contents &= GetParagraph("Information summary for " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count() & " AppX package(s):", ParagraphStyle.Bold) & CrLf & - GetTableHeader(New String() {"Package name", - "Application display name", - "Architecture", - "Resource ID", - "Version", - "Registered to a user?", - "Installation location", - "Package manifest location", - "Store logo asset directory", - "Main store logo asset"}. + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count() & LocalizationService.ForSection("ImageInfoSave.Report")("AppXPackages.Label"), ParagraphStyle.Bold) & CrLf & + GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("PackageName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("App.Display.Name.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Architecture.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ResourceID.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Version.Column"), + LocalizationService.ForSection("ImageInfoSave.Report")("RegisteredUser.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Install.Location.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Package.Manifest.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("StoreLogo.Asset.Dir.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Main.StoreLogo.Asset.Label")}. ToList()) Dim idx As Integer = 0 For Each AppxPackage In ImageToGetInfoFrom.ImageAppxPackages_Backup - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Getting information of AppX packages... (AppX package " & idx + 1 & " of " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case "ESN" - msg(0) = "Obteniendo información de paquetes AppX... (paquete AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case "FRA" - msg(0) = "Obtention des informations sur les paquets AppX en cours... (paquet AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case "PTB", "PTG" - msg(0) = "Obter informações sobre os pacotes AppX... (pacote AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case "ITA" - msg(0) = "Ottenere informazioni sui pacchetti AppX... (pacchetto AppX " & idx + 1 & " di " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - End Select - Case 1 - msg(0) = "Getting information of AppX packages... (AppX package " & idx + 1 & " of " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case 2 - msg(0) = "Obteniendo información de paquetes AppX... (paquete AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case 3 - msg(0) = "Obtention des informations sur les paquets AppX en cours... (paquet AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case 4 - msg(0) = "Obter informações sobre os pacotes AppX... (pacote AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case 5 - msg(0) = "Ottenere informazioni sui pacchetti AppX... (pacchetto AppX " & idx + 1 & " di " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.AppxInfo").Format("Getting.Message", idx + 1, ImageToGetInfoFrom.ImageAppxPackages_Backup.Count) ReportChanges(msg(0), ((idx + 1) / ImageToGetInfoFrom.ImageAppxPackages_Backup.Count) * 100) Dim registrationStatus As String = "" ' Use to pass final result to Markdown report ' Detect if *.pckgdep files are present in the AppRepository folder, as that's how this program gets the registration status of an AppX package @@ -1034,12 +608,12 @@ Public Class ImgInfoSaveDlg ' Get the number of pckgdep files If My.Computer.FileSystem.GetFiles(If(OnlineMode, Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)) & "\ProgramData\Microsoft\Windows\AppRepository\Packages\" & AppxPackage.PackageFullName, ImgMountDir & "\ProgramData\Microsoft\Windows\AppRepository\Packages\" & AppxPackage.PackageFullName), FileIO.SearchOption.SearchTopLevelOnly, "*.pckgdep").Count > 0 Then - registrationStatus = "Yes" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("Yes.Button") Else - registrationStatus = "No" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("No.Button") End If Else - registrationStatus = "No" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("No.Button") End If Dim installationLocation As String = (If(OnlineMode, Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)), MainForm.MountDir) & "\Program Files\WindowsApps\" & AppxPackage.PackageFullName).Replace("\\", "\").Trim() Dim pkgDirs() As String = Directory.GetDirectories(If(MainForm.OnlineManagement, Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)), MainForm.MountDir) & "\Program Files\WindowsApps", AppxPackage.PackageFullName & "*", SearchOption.TopDirectoryOnly) @@ -1056,11 +630,11 @@ Public Class ImgInfoSaveDlg ElseIf File.Exists(pkgDirs(0).Replace("\\", "\").Trim() & "\AppxManifest.xml") Then instDir = pkgDirs(0).Replace("\\", "\").Trim() & "\AppxManifest.xml" Else - instDir = "Unknown" + instDir = LocalizationService.ForSection("ImageInfoSave.Report")("Unknown.Label") End If End If Catch ex As Exception - instDir = "Unknown" + instDir = LocalizationService.ForSection("ImageInfoSave.Report")("Unknown.Label") End Try ' Get store logo asset directory Dim logoAssetDir As String = "" ' Use to pass final result to Markdown report @@ -1109,7 +683,7 @@ Public Class ImgInfoSaveDlg If mainAsset <> "" And File.Exists(mainAsset) Then mainLogo = mainAsset.Replace("\\", "\").Trim() Else - mainLogo = "Unknown" + mainLogo = LocalizationService.ForSection("ImageInfoSave.Report")("Unknown.Label") End If Contents &= GetTableRow(New String() {AppxPackage.PackageFullName, AppxPackage.PackageName, @@ -1123,7 +697,7 @@ Public Class ImgInfoSaveDlg mainLogo.TrimEnd(Quote)}.ToList()) idx += 1 Next - Contents &= CrLf & GetParagraph("NOTE: main store logo asset locations are a guess, and may not be the assets you're looking for. If that happens, report an issue on the GitHub repo using the " & Quote & "Store logo asset preview issue" & Quote & " template. Then, provide the package name, the expected asset and the obtained asset.", ParagraphStyle.Italic) & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Notemain.StoreLogo.Message") & Quote & LocalizationService.ForSection("ImageInfoSave.Report")("StoreLogo.Asset.Label") & Quote & LocalizationService.ForSection("ImageInfoSave.Report")("Template.Provide.Message"), ParagraphStyle.Italic) & CrLf Else Debug.WriteLine("[GetAppxInformation] Starting API...") DismApi.Initialize(DismLogLevel.LogErrors) @@ -1135,75 +709,27 @@ Public Class ImgInfoSaveDlg ' Determine if MainForm arrays contain more stuff Dim pkgNames As New List(Of String) pkgNames.AddRange(InstalledAppxPackageInfo.Select(Function(appx) appx.PackageName)) - Contents &= CrLf & GetParagraph("Information summary for " & If(ImageToGetInfoFrom.ImageAppxPackages_Backup.Count() > pkgNames.Count, - ImageToGetInfoFrom.ImageAppxPackages_Backup.Count(), pkgNames.Count) & " AppX package(s):", ParagraphStyle.Bold) & CrLf & - GetTableHeader(New String() {"Package name", - "Application display name", - "Architecture", - "Resource ID", - "Version", - "Registered to a user?", - "Installation location", - "Package manifest location", - "Store logo asset directory", - "Main store logo asset"}. + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & If(ImageToGetInfoFrom.ImageAppxPackages_Backup.Count() > pkgNames.Count, + ImageToGetInfoFrom.ImageAppxPackages_Backup.Count(), pkgNames.Count) & LocalizationService.ForSection("ImageInfoSave.Report")("AppXPackages.Label"), ParagraphStyle.Bold) & CrLf & + GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("PackageName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("App.Display.Name.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Architecture.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ResourceID.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Version.Column"), + LocalizationService.ForSection("ImageInfoSave.Report")("RegisteredUser.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Install.Location.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Package.Manifest.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("StoreLogo.Asset.Dir.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Main.StoreLogo.Asset.Label")}. ToList()) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "AppX packages have been obtained" - Case "ESN" - msg(0) = "Los paquetes AppX han sido obtenidos" - Case "FRA" - msg(0) = "Des paquets AppX ont été obtenus" - Case "PTB", "PTG" - msg(0) = "Os pacotes AppX foram obtidos" - Case "ITA" - msg(0) = "I pacchetti AppX sono stati ottenuti" - End Select - Case 1 - msg(0) = "AppX packages have been obtained" - Case 2 - msg(0) = "Los paquetes AppX han sido obtenidos" - Case 3 - msg(0) = "Des paquets AppX ont été obtenus" - Case 4 - msg(0) = "Os pacotes AppX foram obtidos" - Case 5 - msg(0) = "I pacchetti AppX sono stati ottenuti" - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.AppxInfo")("Packages.Obtained.Message") ReportChanges(msg(0), 10) If GetEverything Then Debug.WriteLine("[GetAppxInformation] Getting complete AppX package information...") If Not ForceAppxApi AndAlso ImageToGetInfoFrom.ImageAppxPackages_Backup.Count - 1 > pkgNames.Count Then Dim idx As Integer = 0 For Each AppxPackage In ImageToGetInfoFrom.ImageAppxPackages_Backup - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Getting information of AppX packages... (AppX package " & idx + 1 & " of " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case "ESN" - msg(0) = "Obteniendo información de paquetes AppX... (paquete AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case "FRA" - msg(0) = "Obtention des informations sur les paquets AppX en cours... (paquet AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case "PTB", "PTG" - msg(0) = "Obter informações sobre os pacotes AppX... (pacote AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case "ITA" - msg(0) = "Ottenere informazioni sui pacchetti AppX... (pacchetto AppX " & idx + 1 & " di " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - End Select - Case 1 - msg(0) = "Getting information of AppX packages... (AppX package " & idx + 1 & " of " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case 2 - msg(0) = "Obteniendo información de paquetes AppX... (paquete AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case 3 - msg(0) = "Obtention des informations sur les paquets AppX en cours... (paquet AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case 4 - msg(0) = "Obter informações sobre os pacotes AppX... (pacote AppX " & idx + 1 & " de " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - Case 5 - msg(0) = "Ottenere informazioni sui pacchetti AppX... (pacchetto AppX " & idx + 1 & " di " & ImageToGetInfoFrom.ImageAppxPackages_Backup.Count & ")" - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.AppxInfo").Format("Getting.Message", idx + 1, ImageToGetInfoFrom.ImageAppxPackages_Backup.Count) ReportChanges(msg(0), ((idx + 1) / ImageToGetInfoFrom.ImageAppxPackages_Backup.Count) * 100) Dim registrationStatus As String = "" ' Use to pass final result to Markdown report ' Detect if *.pckgdep files are present in the AppRepository folder, as that's how this program gets the registration status of an AppX package @@ -1212,12 +738,12 @@ Public Class ImgInfoSaveDlg ' Get the number of pckgdep files If My.Computer.FileSystem.GetFiles(If(OnlineMode, Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)) & "\ProgramData\Microsoft\Windows\AppRepository\Packages\" & AppxPackage.PackageFullName, ImgMountDir & "\ProgramData\Microsoft\Windows\AppRepository\Packages\" & AppxPackage.PackageFullName), FileIO.SearchOption.SearchTopLevelOnly, "*.pckgdep").Count > 0 Then - registrationStatus = "Yes" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("Yes.Button") Else - registrationStatus = "No" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("No.Button") End If Else - registrationStatus = "No" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("No.Button") End If Dim installationLocation As String = (If(OnlineMode, Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)), MainForm.MountDir) & "\Program Files\WindowsApps\" & AppxPackage.PackageFullName).Replace("\\", "\").Trim() Dim pkgDirs() As String = Directory.GetDirectories(If(MainForm.OnlineManagement, Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)), MainForm.MountDir) & "\Program Files\WindowsApps", AppxPackage.PackageFullName & "*", SearchOption.TopDirectoryOnly) @@ -1234,11 +760,11 @@ Public Class ImgInfoSaveDlg ElseIf File.Exists(pkgDirs(0).Replace("\\", "\").Trim() & "\AppxManifest.xml") Then instDir = pkgDirs(0).Replace("\\", "\").Trim() & "\AppxManifest.xml" Else - instDir = "Unknown" + instDir = LocalizationService.ForSection("ImageInfoSave.Report")("Unknown.Label") End If End If Catch ex As Exception - instDir = "Unknown" + instDir = LocalizationService.ForSection("ImageInfoSave.Report")("Unknown.Label") End Try ' Get store logo asset directory Dim logoAssetDir As String = "" ' Use to pass final result to Markdown report @@ -1287,7 +813,7 @@ Public Class ImgInfoSaveDlg If mainAsset <> "" And File.Exists(mainAsset) Then mainLogo = mainAsset.Replace("\\", "\").Trim() Else - mainLogo = "Unknown" + mainLogo = LocalizationService.ForSection("ImageInfoSave.Report")("Unknown.Label") End If Contents &= GetTableRow(New String() {AppxPackage.PackageFullName, AppxPackage.PackageName, @@ -1301,34 +827,10 @@ Public Class ImgInfoSaveDlg mainLogo.TrimEnd(Quote)}.ToList()) idx += 1 Next - Contents &= CrLf & GetParagraph("NOTE: main store logo asset locations are a guess, and may not be the assets you're looking for. If that happens, report an issue on the GitHub repo using the " & Quote & "Store logo asset preview issue" & Quote & " template. Then, provide the package name, the expected asset and the obtained asset.", ParagraphStyle.Italic) & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Notemain.StoreLogo.Message") & Quote & LocalizationService.ForSection("ImageInfoSave.Report")("StoreLogo.Asset.Label") & Quote & LocalizationService.ForSection("ImageInfoSave.Report")("Template.Provide.Message"), ParagraphStyle.Italic) & CrLf Else For Each appxPkg As DismAppxPackage In InstalledAppxPackageInfo - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Getting information of AppX packages... (AppX package " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " of " & InstalledAppxPackageInfo.Count & ")" - Case "ESN" - msg(0) = "Obteniendo información de paquetes AppX ... (paquete AppX " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " de " & InstalledAppxPackageInfo.Count & ")" - Case "FRA" - msg(0) = "Obtention des informations sur les paquets AppX en cours... (paquet AppX " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " de " & InstalledAppxPackageInfo.Count & ")" - Case "PTB", "PTG" - msg(0) = "Obter informações sobre os pacotes AppX... (pacote AppX " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " de " & InstalledAppxPackageInfo.Count & ")" - Case "ITA" - msg(0) = "Ottenere informazioni sui pacchetti AppX... (pacchetto AppX " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " di " & InstalledAppxPackageInfo.Count & ")" - End Select - Case 1 - msg(0) = "Getting information of AppX packages... (AppX package " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " of " & InstalledAppxPackageInfo.Count & ")" - Case 2 - msg(0) = "Obteniendo información de paquetes AppX ... (paquete AppX " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " de " & InstalledAppxPackageInfo.Count & ")" - Case 3 - msg(0) = "Obtention des informations sur les paquets AppX en cours... (paquet AppX " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " de " & InstalledAppxPackageInfo.Count & ")" - Case 4 - msg(0) = "Obter informações sobre os pacotes AppX... (pacote AppX " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " de " & InstalledAppxPackageInfo.Count & ")" - Case 5 - msg(0) = "Ottenere informazioni sui pacchetti AppX... (pacchetto AppX " & InstalledAppxPackageInfo.IndexOf(appxPkg) + 1 & " di " & InstalledAppxPackageInfo.Count & ")" - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.AppxInfo").Format("Getting.Message", InstalledAppxPackageInfo.IndexOf(appxPkg) + 1, InstalledAppxPackageInfo.Count) ReportChanges(msg(0), (InstalledAppxPackageInfo.IndexOf(appxPkg) / InstalledAppxPackageInfo.Count) * 100) Dim registrationStatus As String = "" ' Use to pass final result to Markdown report ' Detect if *.pckgdep files are present in the AppRepository folder, as that's how this program gets the registration status of an AppX package @@ -1337,12 +839,12 @@ Public Class ImgInfoSaveDlg ' Get the number of pckgdep files If My.Computer.FileSystem.GetFiles(If(OnlineMode, Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.Windows)) & "\ProgramData\Microsoft\Windows\AppRepository\Packages\" & appxPkg.PackageName, ImgMountDir & "\ProgramData\Microsoft\Windows\AppRepository\Packages\" & appxPkg.PackageName), FileIO.SearchOption.SearchTopLevelOnly, "*.pckgdep").Count > 0 Then - registrationStatus = "Yes" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("Yes.Button") Else - registrationStatus = "No" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("No.Button") End If Else - registrationStatus = "No" + registrationStatus = LocalizationService.ForSection("ImageInfoSave.Report")("No.Button") End If ' Use the InstallLocation property of the AppxPackage class. ' TODO: if this works, implement InstallLocation on all other cases @@ -1357,7 +859,7 @@ Public Class ImgInfoSaveDlg pkgManifestLocation = installationLocation & "\AppxBundleManifest.xml" Else ' Unrecognized type of file - pkgManifestLocation = "Unknown" + pkgManifestLocation = LocalizationService.ForSection("ImageInfoSave.Report")("Unknown.Label") End If ' Get store logo asset directory Dim logoAssetDir As String = "" ' Use to pass final result to Markdown report @@ -1406,7 +908,7 @@ Public Class ImgInfoSaveDlg If mainAsset <> "" And File.Exists(mainAsset) Then mainLogo = mainAsset.Replace("\\", "\").Trim() Else - mainLogo = "Unknown" + mainLogo = LocalizationService.ForSection("ImageInfoSave.Report")("Unknown.Label") End If Contents &= GetTableRow(New String() {appxPkg.PackageName, appxPkg.DisplayName, @@ -1419,41 +921,17 @@ Public Class ImgInfoSaveDlg logoAssetDir.TrimEnd("\"), mainLogo}.ToList()) Next - Contents &= CrLf & GetParagraph("NOTE: main store logo asset locations are a guess, and may not be the assets you're looking for. If that happens, report an issue on the GitHub repo using the " & Quote & "Store logo asset preview issue" & Quote & " template. Then, provide the package name, the expected asset and the obtained asset.", ParagraphStyle.Italic) & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Notemain.StoreLogo.Message") & Quote & LocalizationService.ForSection("ImageInfoSave.Report")("StoreLogo.Asset.Label") & Quote & LocalizationService.ForSection("ImageInfoSave.Report")("Template.Provide.Message"), ParagraphStyle.Italic) & CrLf End If - Contents &= CrLf & GetParagraph("Complete AppX package information has been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Complete.AppX.Label")) & CrLf Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Saving installed AppX packages..." - Case "ESN" - msg(0) = "Guardando paquetes AppX instalados..." - Case "FRA" - msg(0) = "Sauvegarde des paquets AppX installés en cours..." - Case "PTB", "PTG" - msg(0) = "Guardar os pacotes AppX instalados..." - Case "ITA" - msg(0) = "Salvataggio dei pacchetti AppX installati..." - End Select - Case 1 - msg(0) = "Saving installed AppX packages..." - Case 2 - msg(0) = "Guardando paquetes AppX instalados..." - Case 3 - msg(0) = "Sauvegarde des paquets AppX installés en cours..." - Case 4 - msg(0) = "Guardar os pacotes AppX instalados..." - Case 5 - msg(0) = "Salvataggio dei pacchetti AppX installati..." - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.AppxInfo")("Saving.Installed.Message") ReportChanges(msg(0), 50) - Contents &= GetTableHeader(New String() {"Package name", - "Application display name", - "Architecture", - "Resource ID", - "Version"}.ToList()) + Contents &= GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("PackageName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("App.Display.Name.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Architecture.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ResourceID.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Version.Column")}.ToList()) For Each installedAppxPkg As DismAppxPackage In InstalledAppxPackageInfo Contents &= GetTableRow(New String() {installedAppxPkg.PackageName, installedAppxPkg.DisplayName, @@ -1461,7 +939,7 @@ Public Class ImgInfoSaveDlg installedAppxPkg.ResourceId, installedAppxPkg.Version.ToString()}.ToList()) Next - Contents &= CrLf & GetParagraph("Complete AppX package information has not been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("AppxInfo.Ready2.Label")) & CrLf End If End Using End If @@ -1477,78 +955,16 @@ Public Class ImgInfoSaveDlg Private Sub GetCapabilityInformation(GetEverything As Boolean) Dim InstalledCapInfo As DismCapabilityCollection = Nothing Dim msg As String() = New String(2) {"", "", ""} - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Preparing capability information processes..." - msg(1) = "The program has obtained basic information of the installed capabilities of this image. You can also get complete information of such capabilities and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed capabilities." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "Capability information" - Case "ESN" - msg(0) = "Preparando procesos de información de funcionalidades..." - msg(1) = "El programa ha obtenido información básica de las funcionalidades instaladas en esta imagen. También puede obtener información completa de dichas funcionalidades y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de funcionalidades instaladas." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de funcionalidades" - Case "FRA" - msg(0) = "Préparation des processus d'information sur les capacités en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les capacités installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces capacités et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de capacités installées." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les capacités" - Case "PTB", "PTG" - msg(0) = "A preparar processos de informação de capacidades..." - msg(1) = "O programa obteve informações básicas sobre as capacidades instaladas desta imagem. Também pode obter informações completas sobre essas capacidades e guardá-las no relatório." & CrLf & CrLf & - "Tenha em atenção que isto pode demorar mais tempo, dependendo do número de capacidades instaladas." & CrLf & CrLf & - "Deseja obter esta informação e guardá-la no relatório?" - msg(2) = "Informações sobre as capacidades" - Case "ITA" - msg(0) = "Preparazione dei processi di informazione sulle capacità..." - msg(1) = "Il programma ha ottenuto informazioni elementari sulle capacità installate di questa immagine. È inoltre possibile ottenere informazioni complete su tali funzionalità e salvarle nel rapporto." & CrLf & CrLf & - "Si noti che questa operazione richiederà più tempo a seconda del numero di funzionalità installate." & CrLf & CrLf & - "Volete ottenere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni sulle capacità" - End Select - Case 1 - msg(0) = "Preparing capability information processes..." - msg(1) = "The program has obtained basic information of the installed capabilities of this image. You can also get complete information of such capabilities and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed capabilities." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "Capability information" - Case 2 - msg(0) = "Preparando procesos de información de funcionalidades..." - msg(1) = "El programa ha obtenido información básica de las funcionalidades instaladas en esta imagen. También puede obtener información completa de dichas funcionalidades y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de funcionalidades instaladas." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de funcionalidades" - Case 3 - msg(0) = "Préparation des processus d'information sur les capacités en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les capacités installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces capacités et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de capacités installées." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les capacités" - Case 4 - msg(0) = "A preparar processos de informação de capacidades..." - msg(1) = "O programa obteve informações básicas sobre as capacidades instaladas desta imagem. Também pode obter informações completas sobre essas capacidades e guardá-las no relatório." & CrLf & CrLf & - "Tenha em atenção que isto pode demorar mais tempo, dependendo do número de capacidades instaladas." & CrLf & CrLf & - "Deseja obter esta informação e guardá-la no relatório?" - msg(2) = "Informações sobre as capacidades" - Case 5 - msg(0) = "Preparazione dei processi di informazione sulle capacità..." - msg(1) = "Il programma ha ottenuto informazioni elementari sulle capacità installate di questa immagine. È inoltre possibile ottenere informazioni complete su tali funzionalità e salvarle nel rapporto." & CrLf & CrLf & - "Si noti che questa operazione richiederà più tempo a seconda del numero di funzionalità installate." & CrLf & CrLf & - "Volete ottenere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni sulle capacità" - End Select - Contents &= GetHeader("Capability information", HeaderSize.Header2) & CrLf & - GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation")}.ToList()) & CrLf + msg(0) = LocalizationService.ForSection("ImgInfo.Capabilities")("Preparing.Message") + msg(1) = LocalizationService.ForSection("ImgInfo.Capabilities")("Basic.Ready.Message") & LocalizationService.ForSection("ImgInfo.Capabilities")("May.Take.Long.Message") & CrLf & CrLf & LocalizationService.ForSection("ImgInfo.Capabilities")("Save.Prompt.Label") + msg(2) = LocalizationService.ForSection("ImgInfo.Capabilities")("CapabilityInfo.Message") + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("CapabilityInfo.Label"), HeaderSize.Header2) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label"))}.ToList()) & CrLf If ImageToGetInfoFrom.ImageEditionId Is Nothing Then ImageToGetInfoFrom.ImageEditionId = " " End If If (Not OnlineMode And (Not MainForm.IsWindows10OrHigher(ImgMountDir & "\Windows\system32\ntoskrnl.exe") Or ImageToGetInfoFrom.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase))) Or (OnlineMode And Not MainForm.IsWindows10OrHigher(Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\system32\ntoskrnl.exe")) Then - Contents &= GetParagraph("This task is not supported on the specified Windows image. Check that it contains Windows 10 or a later Windows version, and that it isn't a Windows PE image. Skipping task...", ParagraphStyle.Bold) & CrLf + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Task.Supported.Message"), ParagraphStyle.Bold) & CrLf Exit Sub Else Debug.WriteLine("[GetCapabilityInformation] Starting task...") @@ -1560,115 +976,43 @@ Public Class ImgInfoSaveDlg Debug.WriteLine("[GetCapabilityInformation] Getting basic capability information...") ReportChanges(msg(0), 5) InstalledCapInfo = DismApi.GetCapabilities(imgSession) - Contents &= GetParagraph("Information summary for " & InstalledCapInfo.Count & " capability/ies:", ParagraphStyle.Bold) & CrLf - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Capabilities have been obtained" - Case "ESN" - msg(0) = "Las funcionalidades han sido obtenidas" - Case "FRA" - msg(0) = "Des capacités ont été obtenues" - Case "PTB", "PTG" - msg(0) = "As capacidades foram obtidas" - Case "ITA" - msg(0) = "Le capacità sono state ottenute" - End Select - Case 1 - msg(0) = "Capabilities have been obtained" - Case 2 - msg(0) = "Las funcionalidades han sido obtenidas" - Case 3 - msg(0) = "Des capacités ont été obtenues" - Case 4 - msg(0) = "As capacidades foram obtidas" - Case 5 - msg(0) = "Le capacità sono state ottenute" - End Select + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & InstalledCapInfo.Count & LocalizationService.ForSection("ImageInfoSave.Report")("CapabilityIes.Label"), ParagraphStyle.Bold) & CrLf + msg(0) = LocalizationService.ForSection("ImgInfo.Capabilities")("Loaded.Message") ReportChanges(msg(0), 10) If GetEverything Then - Contents &= CrLf & GetTableHeader(New String() {"Capability identity", - "Capability name", - "Capability state", - "Display name", - "Download size", - "Installation size", - "On The Web"}.ToList()) + Contents &= CrLf & GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Capability.Identity.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CapabilityName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CapabilityState.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("DisplayName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("DownloadSize.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("InstallationSize.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Web.Label")}.ToList()) Debug.WriteLine("[GetCapabilityInformation] Getting complete capability information...") For Each capability As DismCapability In InstalledCapInfo - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Getting information of capabilities... (capability " & InstalledCapInfo.IndexOf(capability) + 1 & " of " & InstalledCapInfo.Count & ")" - Case "ESN" - msg(0) = "Obteniendo información de funcionalidades... (funcionalidad " & InstalledCapInfo.IndexOf(capability) + 1 & " de " & InstalledCapInfo.Count & ")" - Case "FRA" - msg(0) = "Obtention des informations sur les capacités en cours... (capacité " & InstalledCapInfo.IndexOf(capability) + 1 & " de " & InstalledCapInfo.Count & ")" - Case "PTB", "PTG" - msg(0) = "Obter informações sobre as capacidades... (capacidade " & InstalledCapInfo.IndexOf(capability) + 1 & " de " & InstalledCapInfo.Count & ")" - Case "ITA" - msg(0) = "Ottenere informazioni sulle capacità... (capacità " & InstalledCapInfo.IndexOf(capability) + 1 & " di " & InstalledCapInfo.Count & ")" - End Select - Case 1 - msg(0) = "Getting information of capabilities... (capability " & InstalledCapInfo.IndexOf(capability) + 1 & " of " & InstalledCapInfo.Count & ")" - Case 2 - msg(0) = "Obteniendo información de funcionalidades... (funcionalidad " & InstalledCapInfo.IndexOf(capability) + 1 & " de " & InstalledCapInfo.Count & ")" - Case 3 - msg(0) = "Obtention des informations sur les capacités en cours... (capacité " & InstalledCapInfo.IndexOf(capability) + 1 & " de " & InstalledCapInfo.Count & ")" - Case 4 - msg(0) = "Obter informações sobre as capacidades... (capacidade " & InstalledCapInfo.IndexOf(capability) + 1 & " de " & InstalledCapInfo.Count & ")" - Case 5 - msg(0) = "Ottenere informazioni sulle capacità... (capacità " & InstalledCapInfo.IndexOf(capability) + 1 & " di " & InstalledCapInfo.Count & ")" - End Select + msg(0) = LocalizationService.ForSection("ImgInfo.Capabilities").Format("Loading.Capability.Message", InstalledCapInfo.IndexOf(capability) + 1, InstalledCapInfo.Count) ReportChanges(msg(0), (InstalledCapInfo.IndexOf(capability) / InstalledCapInfo.Count) * 100) Dim capInfo As DismCapabilityInfo = DismApi.GetCapabilityInfo(imgSession, capability.Name) Contents &= GetTableRow(New String() {CodeBlockChar & capInfo.Name & CodeBlockChar, CodeBlockChar & capInfo.Name.Remove(InStr(capInfo.Name, "~") - 1) & CodeBlockChar, Casters.CastDismPackageState(capInfo.State), capInfo.Description, - capInfo.DownloadSize & " bytes" & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", ""), - capInfo.InstallSize & " bytes" & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", ""), - MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, capInfo.Name)), "Look this item online")}.ToList()) + capInfo.DownloadSize & LocalizationService.ForSection("ImageInfoSave.Report")("BytesSuffix.Label") & If(capInfo.DownloadSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.DownloadSize) & ")", ""), + capInfo.InstallSize & LocalizationService.ForSection("ImageInfoSave.Report")("BytesSuffix.Label") & If(capInfo.InstallSize >= 1024, " (~" & Converters.BytesToReadableSize(capInfo.InstallSize) & ")", ""), + MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, capInfo.Name)), LocalizationService.ForSection("ImageInfoSave.Report")("Look.Item.Online.Label"))}.ToList()) Next - Contents &= CrLf & GetParagraph("Complete capability information has been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("CapabilityInfo.Ready.Label")) & CrLf Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Saving installed capabilities..." - Case "ESN" - msg(0) = "Guardando funcionalidades instaladas..." - Case "FRA" - msg(0) = "Sauvegarde des caractéristiques installées en cours..." - Case "PTB", "PTG" - msg(0) = "Guardar as capacidades instaladas..." - Case "ITA" - msg(0) = "Salvataggio delle capacità installate..." - End Select - Case 1 - msg(0) = "Saving installed capabilities..." - Case 2 - msg(0) = "Guardando funcionalidades instaladas..." - Case 3 - msg(0) = "Sauvegarde des caractéristiques installées en cours..." - Case 4 - msg(0) = "Guardar as capacidades instaladas..." - Case 5 - msg(0) = "Salvataggio delle capacità installate..." - End Select + msg(0) = LocalizationService.ForSection("ImgInfo.Capabilities")("Saving.Message") ReportChanges(msg(0), 50) - Contents &= GetTableHeader(New String() {"Capability identity", - "Capability state", - "On The Web"}.ToList()) + Contents &= GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Capability.Identity.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CapabilityState.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Web.Label")}.ToList()) For Each installedCapability As DismCapability In InstalledCapInfo Contents &= GetTableRow(New String() {CodeBlockChar & installedCapability.Name & CodeBlockChar, Casters.CastDismPackageState(installedCapability.State), - MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, installedCapability.Name)), "Look this item online")}.ToList()) + MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, installedCapability.Name)), LocalizationService.ForSection("ImageInfoSave.Report")("Look.Item.Online.Label"))}.ToList()) Next - Contents &= CrLf & GetParagraph("Complete capability information has not been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("CapabilityInfo.Missing.Label")) & CrLf End If End Using Catch ex As Exception @@ -1683,104 +1027,13 @@ Public Class ImgInfoSaveDlg Private Sub GetDriverInformation(GetEverything As Boolean, GetInboxDrivers As Boolean) Dim InstalledDrvInfo As DismDriverPackageCollection = Nothing Dim msg As String() = New String(3) {"", "", "", ""} - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Preparing driver information processes..." - msg(1) = "The program has obtained basic information of the installed drivers of this image. You can also get complete information of such drivers and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed drivers." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "Driver information" - msg(3) = "You have configured background processes to not detect all drivers, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in." & CrLf & CrLf & - "This setting is also applied to this task, but you can get the information of all drivers now. Do note that this can take a long time, depending on the amount of first-party drivers." & CrLf & CrLf & - "Do you want to get the information of all drivers, including drivers part of the Windows distribution?" - Case "ESN" - msg(0) = "Preparando procesos de información de controladores..." - msg(1) = "El programa ha obtenido información básica de los controladores instalados en esta imagen. También puede obtener información completa de dichos controladores y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de controladores instalados." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de controladores" - msg(3) = "Ha configurado los procesos en segundo plano para no detectar todos los controladores, lo que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa." & CrLf & CrLf & - "Esta configuración también se aplica a esta tarea, pero puede obtener la información de todos los controladores ahora. Dese cuenta de que esto puede llevar mucho tiempo, dependiendo del número de controladores de serie." & CrLf & CrLf & - "¿Desea obtener la información de todos los controladores, incluyendo los controladores que son parte de la distribución de Windows?" - Case "FRA" - msg(0) = "Préparation des processus d'information sur les pilotes en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les pilotes installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces pilotes et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de pilotes installés." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les pilotes" - msg(3) = "Vous avez configuré les processus d'arrière-plan pour qu'ils ne détectent pas tous les pilotes, ce qui inclut les pilotes faisant partie de la distribution Windows, il se peut donc que vous ne voyiez pas le pilote qui vous intéresse." & CrLf & CrLf & - "Ce paramètre est également appliqué à cette tâche, mais vous pouvez obtenir les informations de tous les pilotes maintenant. Notez que cela peut prendre beaucoup de temps, en fonction du nombre de pilotes de première partie." & CrLf & CrLf & - "Voulez-vous obtenir les informations de tous les pilotes, y compris les pilotes faisant partie de la distribution Windows ?" - Case "PTB", "PTG" - msg(0) = "A preparar processos de informação sobre controladores..." - msg(1) = "O programa obteve informações básicas sobre os controladores instalados nesta imagem. Também pode obter informações completas sobre esses controladores e guardá-las no relatório." & CrLf & CrLf & - "Tenha em atenção que isto pode demorar mais tempo dependendo do número de controladores instalados." & CrLf & CrLf & - "Pretende obter esta informação e guardá-la no relatório?" - msg(2) = "Informações do controlador" - msg(3) = "Configurou os processos em segundo plano para não detectarem todos os controladores, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado." & CrLf & CrLf & - "Esta configuração também é aplicada a esta tarefa, mas pode obter as informações de todos os controladores agora. Tenha em atenção que isto pode demorar muito tempo, dependendo da quantidade de controladores originais." & CrLf & CrLf & - "Pretende obter as informações de todos os controladores, incluindo os controladores que fazem parte da distribuição do Windows?" - Case "ITA" - msg(0) = "Preparazione dei processi di informazione sui driver..." - msg(1) = "Il programma ha ottenuto informazioni elementari sui driver installati su questa immagine. È inoltre possibile ottenere informazioni complete su tali driver e salvarle nel rapporto." & CrLf & CrLf & - "Si noti che questa operazione richiederà più tempo a seconda del numero di driver installati." & CrLf & CrLf & - "Volete ottenere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni sul driver" - msg(3) = "Avete configurato i processi in background in modo che non rilevino tutti i driver, compresi quelli che fanno parte della distribuzione di Windows, quindi potreste non vedere il driver che vi interessa." & CrLf & CrLf & - "Questa impostazione viene applicata anche a questa attività, ma ora è possibile ottenere le informazioni su tutti i driver. Tenere presente che questa operazione può richiedere molto tempo, a seconda della quantità di driver di prima parte." & CrLf & CrLf & - "Volete ottenere le informazioni su tutti i driver, compresi quelli che fanno parte della distribuzione di Windows?" - End Select - Case 1 - msg(0) = "Preparing driver information processes..." - msg(1) = "The program has obtained basic information of the installed drivers of this image. You can also get complete information of such drivers and save it in the report." & CrLf & CrLf & - "Do note that this will take longer depending on the number of installed drivers." & CrLf & CrLf & - "Do you want to get this information and save it in the report?" - msg(2) = "Driver information" - msg(3) = "You have configured background processes to not detect all drivers, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in." & CrLf & CrLf & - "This setting is also applied to this task, but you can get the information of all drivers now. Do note that this can take a long time, depending on the amount of first-party drivers." & CrLf & CrLf & - "Do you want to get the information of all drivers, including drivers part of the Windows distribution?" - Case 2 - msg(0) = "Preparando procesos de información de controladores..." - msg(1) = "El programa ha obtenido información básica de los controladores instalados en esta imagen. También puede obtener información completa de dichos controladores y guardarla en el informe." & CrLf & CrLf & - "Dese cuenta de que esto tardará más, dependiendo del número de controladores instalados." & CrLf & CrLf & - "¿Desea obtener esta información y guardarla en el informe?" - msg(2) = "Información de controladores" - msg(3) = "Ha configurado los procesos en segundo plano para no detectar todos los controladores, lo que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa." & CrLf & CrLf & - "Esta configuración también se aplica a esta tarea, pero puede obtener la información de todos los controladores ahora. Dese cuenta de que esto puede llevar mucho tiempo, dependiendo del número de controladores de serie." & CrLf & CrLf & - "¿Desea obtener la información de todos los controladores, incluyendo los controladores que son parte de la distribución de Windows?" - Case 3 - msg(0) = "Préparation des processus d'information sur les pilotes en cours..." - msg(1) = "Le programme a obtenu des informations basiques sur les pilotes installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces pilotes et les enregistrer dans le rapport." & CrLf & CrLf & - "Notez que cette opération peut prendre plus de temps en fonction du nombre de pilotes installés." & CrLf & CrLf & - "Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ?" - msg(2) = "Informations sur les pilotes" - msg(3) = "Vous avez configuré les processus d'arrière-plan pour qu'ils ne détectent pas tous les pilotes, ce qui inclut les pilotes faisant partie de la distribution Windows, il se peut donc que vous ne voyiez pas le pilote qui vous intéresse." & CrLf & CrLf & - "Ce paramètre est également appliqué à cette tâche, mais vous pouvez obtenir les informations de tous les pilotes maintenant. Notez que cela peut prendre beaucoup de temps, en fonction du nombre de pilotes de première partie." & CrLf & CrLf & - "Voulez-vous obtenir les informations de tous les pilotes, y compris les pilotes faisant partie de la distribution Windows ?" - Case 4 - msg(0) = "A preparar processos de informação sobre controladores..." - msg(1) = "O programa obteve informações básicas sobre os controladores instalados nesta imagem. Também pode obter informações completas sobre esses controladores e guardá-las no relatório." & CrLf & CrLf & - "Tenha em atenção que isto pode demorar mais tempo dependendo do número de controladores instalados." & CrLf & CrLf & - "Pretende obter esta informação e guardá-la no relatório?" - msg(2) = "Informações do controlador" - msg(3) = "Configurou os processos em segundo plano para não detectarem todos os controladores, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado." & CrLf & CrLf & - "Esta configuração também é aplicada a esta tarefa, mas pode obter as informações de todos os controladores agora. Tenha em atenção que isto pode demorar muito tempo, dependendo da quantidade de controladores originais." & CrLf & CrLf & - "Pretende obter as informações de todos os controladores, incluindo os controladores que fazem parte da distribuição do Windows?" - Case 5 - msg(0) = "Preparazione dei processi di informazione sui driver..." - msg(1) = "Il programma ha ottenuto informazioni elementari sui driver installati su questa immagine. È inoltre possibile ottenere informazioni complete su tali driver e salvarle nel rapporto." & CrLf & CrLf & - "Si noti che questa operazione richiederà più tempo a seconda del numero di driver installati." & CrLf & CrLf & - "Volete ottenere queste informazioni e salvarle nel rapporto?" - msg(2) = "Informazioni sul driver" - msg(3) = "Avete configurato i processi in background in modo che non rilevino tutti i driver, compresi quelli che fanno parte della distribuzione di Windows, quindi potreste non vedere il driver che vi interessa." & CrLf & CrLf & - "Questa impostazione viene applicata anche a questa attività, ma ora è possibile ottenere le informazioni su tutti i driver. Tenere presente che questa operazione può richiedere molto tempo, a seconda della quantità di driver di prima parte." & CrLf & CrLf & - "Volete ottenere le informazioni su tutti i driver, compresi quelli che fanno parte della distribuzione di Windows?" - End Select - Contents &= GetHeader("Driver information", HeaderSize.Header2) & CrLf & - GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation"), - "In-box driver information " & If(AllDrivers, "was saved", "was not saved")}.ToList()) & CrLf + msg(0) = LocalizationService.ForSection("ImageInfoSave.Drivers")("Preparing.Message") + msg(1) = LocalizationService.ForSection("ImageInfoSave.Drivers")("Basic.Ready.Message") & LocalizationService.ForSection("ImageInfoSave.Drivers")("May.Take.Long.Message") & CrLf & CrLf & LocalizationService.ForSection("ImageInfoSave.Drivers")("Prompt.Label") + msg(2) = LocalizationService.ForSection("ImageInfoSave.Drivers")("DriverInfo.Message") + msg(3) = LocalizationService.ForSection("ImageInfoSave.GetDriverInfo")("BgProcessDetect.Message") & LocalizationService.ForSection("ImageInfoSave.Drivers")("Setting.Applied.Task.Message") & CrLf & CrLf & LocalizationService.ForSection("ImageInfoSave.Drivers")("Get.Message") + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("DriverInfo.Label"), HeaderSize.Header2) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label")), + LocalizationService.ForSection("ImageInfoSave.Report")("Box.Driver.Label") & If(AllDrivers, LocalizationService.ForSection("ImageInfoSave.Report")("WasSaved.Label"), LocalizationService.ForSection("ImageInfoSave.Report")("Saved.Label"))}.ToList()) & CrLf Debug.WriteLine("[GetDriverInformation] Starting task...") Try Debug.WriteLine("[GetDriverInformation] Starting API...") @@ -1790,73 +1043,25 @@ Public Class ImgInfoSaveDlg Debug.WriteLine("[GetDriverInformation] Getting basic driver information...") ReportChanges(msg(0), 5) InstalledDrvInfo = DismApi.GetDrivers(imgSession, GetInboxDrivers) - Contents &= GetParagraph("Information summary for " & InstalledDrvInfo.Count & " driver(s):", ParagraphStyle.Bold) & CrLf - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Drivers have been obtained" - Case "ESN" - msg(0) = "Los controladores han sido obtenidos" - Case "FRA" - msg(0) = "Des pilotes ont été obtenus" - Case "PTB", "PTG" - msg(0) = "Os controladores foram obtidos" - Case "ITA" - msg(0) = "I driver del dispositivo sono stati ottenuti" - End Select - Case 1 - msg(0) = "Drivers have been obtained" - Case 2 - msg(0) = "Los controladores han sido obtenidos" - Case 3 - msg(0) = "Des pilotes ont été obtenus" - Case 4 - msg(0) = "Os controladores foram obtidos" - Case 5 - msg(0) = "I driver del dispositivo sono stati ottenuti" - End Select + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & InstalledDrvInfo.Count & LocalizationService.ForSection("ImageInfoSave.Report")("DriverS.Label"), ParagraphStyle.Bold) & CrLf + msg(0) = LocalizationService.ForSection("ImageInfoSave.Drivers")("DriversObtained.Message") ReportChanges(msg(0), 10) If GetEverything Then - Contents &= CrLf & GetTableHeader(New String() {"Published name", - "Original file name", - "Provider name", - "Class name", - "Class description", - "Class GUID", - "Catalog file path", - "Part of the Windows distribution?", - "Critical to the boot process?", - "Version", - "Date", - "Signature status"}.ToList()) + Contents &= CrLf & GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("PublishedName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Original.File.Name.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ProviderName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ClassName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ClassDescription"), + LocalizationService.ForSection("ImageInfoSave.Report")("ClassGUID.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Catalog.File.Path.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Part.Windows.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Critical.Boot.Process.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Version.Column"), + LocalizationService.ForSection("ImageInfoSave.Report")("Date.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("SignatureStatus.Label")}.ToList()) Debug.WriteLine("[GetDriverInformation] Getting complete driver information...") For Each driver As DismDriverPackage In InstalledDrvInfo - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Getting information of drivers... (driver " & InstalledDrvInfo.IndexOf(driver) + 1 & " of " & InstalledDrvInfo.Count & ")" - Case "ESN" - msg(0) = "Obteniendo información de controladores... (controlador " & InstalledDrvInfo.IndexOf(driver) + 1 & " de " & InstalledDrvInfo.Count & ")" - Case "FRA" - msg(0) = "Obtention des informations sur les pilotes en cours... (pilote " & InstalledDrvInfo.IndexOf(driver) + 1 & " de " & InstalledDrvInfo.Count & ")" - Case "PTB", "PTG" - msg(0) = "Obter informações sobre os controladores... (controlador " & InstalledDrvInfo.IndexOf(driver) + 1 & " de " & InstalledDrvInfo.Count & ")" - Case "ITA" - msg(0) = "Ottenere informazioni sui driver... (driver " & InstalledDrvInfo.IndexOf(driver) + 1 & " di " & InstalledDrvInfo.Count & ")" - End Select - Case 1 - msg(0) = "Getting information of drivers... (driver " & InstalledDrvInfo.IndexOf(driver) + 1 & " of " & InstalledDrvInfo.Count & ")" - Case 2 - msg(0) = "Obteniendo información de controladores... (controlador " & InstalledDrvInfo.IndexOf(driver) + 1 & " de " & InstalledDrvInfo.Count & ")" - Case 3 - msg(0) = "Obtention des informations sur les pilotes en cours... (pilote " & InstalledDrvInfo.IndexOf(driver) + 1 & " de " & InstalledDrvInfo.Count & ")" - Case 4 - msg(0) = "Obter informações sobre os controladores... (controlador " & InstalledDrvInfo.IndexOf(driver) + 1 & " de " & InstalledDrvInfo.Count & ")" - Case 5 - msg(0) = "Ottenere informazioni sui driver... (driver " & InstalledDrvInfo.IndexOf(driver) + 1 & " di " & InstalledDrvInfo.Count & ")" - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.Drivers").Format("Get.Driver.Message", InstalledDrvInfo.IndexOf(driver) + 1, InstalledDrvInfo.Count) ReportChanges(msg(0), (InstalledDrvInfo.IndexOf(driver) / InstalledDrvInfo.Count) * 100) Dim signer As String = DriverSignerViewer.GetSignerInfo(driver.OriginalFileName) Contents &= GetTableRow(New String() {CodeBlockChar & driver.PublishedName & CodeBlockChar, @@ -1866,57 +1071,33 @@ Public Class ImgInfoSaveDlg driver.ClassDescription, driver.ClassGuid, driver.CatalogFile, - If(driver.InBox, "Yes", "No"), - If(driver.BootCritical, "Yes", "No"), + If(driver.InBox, LocalizationService.ForSection("ImageInfoSave.Report")("Yes.Button"), LocalizationService.ForSection("ImageInfoSave.Report")("No.Button")), + If(driver.BootCritical, LocalizationService.ForSection("ImageInfoSave.Report")("Yes.Button"), LocalizationService.ForSection("ImageInfoSave.Report")("No.Button")), driver.Version.ToString(), driver.Date, - Casters.CastDismSignatureStatus(driver.DriverSignature) & If(Not (signer Is Nothing OrElse signer = ""), " by " & signer, "")}.ToList()) + Casters.SignatureStatus(driver.DriverSignature) & If(Not (signer Is Nothing OrElse signer = ""), " by " & signer, "")}.ToList()) Next - Contents &= CrLf & GetParagraph("Complete driver information has been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("DriverInfo.Ready.Label")) & CrLf Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Saving installed drivers..." - Case "ESN" - msg(0) = "Guardando controladores instalados..." - Case "FRA" - msg(0) = "Sauvegarde des pilotes installés en cours..." - Case "PTB", "PTG" - msg(0) = "Guardar os controladores instalados..." - Case "ITA" - msg(0) = "Salvataggio dei driver installati..." - End Select - Case 1 - msg(0) = "Saving installed drivers..." - Case 2 - msg(0) = "Guardando controladores instalados..." - Case 3 - msg(0) = "Sauvegarde des pilotes installés en cours..." - Case 4 - msg(0) = "Guardar os controladores instalados..." - Case 5 - msg(0) = "Salvataggio dei driver installati..." - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave.Drivers")("SaveDrivers.Message") ReportChanges(msg(0), 50) - Contents &= GetTableHeader(New String() {"Published name", - "Original file name", - "Part of the Windows distribution?", - "Class name", - "Provider name", - "Date", - "Version"}.ToList()) + Contents &= GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("PublishedName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Original.File.Name.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Part.Windows.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ClassName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ProviderName.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Date.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Version.Column")}.ToList()) For Each installedDriver As DismDriverPackage In InstalledDrvInfo Contents &= GetTableRow(New String() {CodeBlockChar & installedDriver.PublishedName & CodeBlockChar, Path.GetFileName(installedDriver.OriginalFileName) & " (" & Path.GetDirectoryName(installedDriver.OriginalFileName) & ")", - If(installedDriver.InBox, "Yes", "No"), + If(installedDriver.InBox, LocalizationService.ForSection("ImageInfoSave.Report")("Yes.Button"), LocalizationService.ForSection("ImageInfoSave.Report")("No.Button")), installedDriver.ClassName, installedDriver.ProviderName, installedDriver.Date, installedDriver.Version.ToString()}.ToList()) Next - Contents &= CrLf & GetParagraph("Complete driver information has not been gathered") & CrLf + Contents &= CrLf & GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("DriverInfo.Missing.Label")) & CrLf End If End Using Catch ex As Exception @@ -1929,33 +1110,9 @@ Public Class ImgInfoSaveDlg Private Sub GetDriverFileInformation() Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Preparing driver information processes..." - Case "ESN" - msg = "Preparando procesos de información de controladores..." - Case "FRA" - msg = "Préparation des processus d'information des pilotes en cours..." - Case "PTB", "PTG" - msg = "Preparar os processos de informação dos controladores..." - Case "ITA" - msg = "Preparazione dei processi di informazione del driver..." - End Select - Case 1 - msg = "Preparing driver information processes..." - Case 2 - msg = "Preparando procesos de información de controladores..." - Case 3 - msg = "Préparation des processus d'information des pilotes en cours..." - Case 4 - msg = "Preparar os processos de informação dos controladores..." - Case 5 - msg = "Preparazione dei processi di informazione del driver..." - End Select - Contents &= GetHeader("Driver package information", HeaderSize.Header2) & CrLf & CrLf & - GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation")}.ToList()) & CrLf + msg = LocalizationService.ForSection("ImgInfo.DriverFiles")("Preparing.Message") + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("DriverPackage.Label"), HeaderSize.Header2) & CrLf & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label"))}.ToList()) & CrLf Debug.WriteLine("[GetDriverFileInformation] Starting task...") Try Debug.WriteLine("[GetDriverFileInformation] Starting API...") @@ -1963,56 +1120,32 @@ Public Class ImgInfoSaveDlg Debug.WriteLine("[GetDriverFileInformation] Creating image session...") ReportChanges(msg, 0) Using imgSession As DismSession = If(OnlineMode, DismApi.OpenOnlineSession(), DismApi.OpenOfflineSession(ImgMountDir)) - Contents &= GetParagraph("Information summary for " & DriverPkgs.Count & " driver package(s):", ParagraphStyle.Bold) & CrLf + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & DriverPkgs.Count & LocalizationService.ForSection("ImageInfoSave.Report")("DriverPackageS.Label"), ParagraphStyle.Bold) & CrLf For Each drvPkg In DriverPkgs - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Getting information from driver files... (driver file " & DriverPkgs.IndexOf(drvPkg) + 1 & " of " & DriverPkgs.Count & ")" - Case "ESN" - msg = "Obteniendo información de archivos de controladores... (archivo de controlador " & DriverPkgs.IndexOf(drvPkg) + 1 & " de " & DriverPkgs.Count & ")" - Case "FRA" - msg = "Obtention des informations des fichiers pilotes en cours... (fichier pilote " & DriverPkgs.IndexOf(drvPkg) + 1 & " de " & DriverPkgs.Count & ")" - Case "PTB", "PTG" - msg = "Obter informações dos ficheiros de controladores... (ficheiro de controlador " & DriverPkgs.IndexOf(drvPkg) + 1 & " de " & DriverPkgs.Count & ")" - Case "ITA" - msg = "Ottenere informazioni dai file dei driver... (file dei driver " & DriverPkgs.IndexOf(drvPkg) + 1 & " di " & DriverPkgs.Count & ")" - End Select - Case 1 - msg = "Getting information from driver files... (driver file " & DriverPkgs.IndexOf(drvPkg) + 1 & " of " & DriverPkgs.Count & ")" - Case 2 - msg = "Obteniendo información de archivos de controladores... (archivo de controlador " & DriverPkgs.IndexOf(drvPkg) + 1 & " de " & DriverPkgs.Count & ")" - Case 3 - msg = "Obtention des informations des fichiers pilotes en cours... (fichier pilote " & DriverPkgs.IndexOf(drvPkg) + 1 & " de " & DriverPkgs.Count & ")" - Case 4 - msg = "Obter informações dos ficheiros de controladores... (ficheiro de controlador " & DriverPkgs.IndexOf(drvPkg) + 1 & " de " & DriverPkgs.Count & ")" - Case 5 - msg = "Ottenere informazioni dai file dei driver... (file dei driver " & DriverPkgs.IndexOf(drvPkg) + 1 & " di " & DriverPkgs.Count & ")" - End Select + msg = LocalizationService.ForSection("ImgInfo.DriverFiles").Format("Loading.Driver.Message", DriverPkgs.IndexOf(drvPkg) + 1, DriverPkgs.Count) ReportChanges(msg, (DriverPkgs.IndexOf(drvPkg) / DriverPkgs.Count) * 100) If File.Exists(drvPkg) Then - Contents &= GetHeader("Driver package " & DriverPkgs.IndexOf(drvPkg) + 1 & " of " & DriverPkgs.Count & "", HeaderSize.Header3) & CrLf + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("DriverPackage.Driver.Label") & DriverPkgs.IndexOf(drvPkg) + 1 & LocalizationService.ForSection("ImageInfoSave.Report")("Value.Label") & DriverPkgs.Count & "", HeaderSize.Header3) & CrLf Dim drvInfoCollection As DismDriverCollection = DismApi.GetDriverInfo(imgSession, drvPkg) If drvInfoCollection.Count > 0 Then - Contents &= GetParagraph("Information summary for " & drvInfoCollection.Count & " hardware target(s):", ParagraphStyle.Bold) & CrLf & - GetTableHeader(New String() {"Hardware description", - "Hardware ID", - "Compatible IDs", - "Exclude IDs", - "Hardware manufacturer", - "Architecture"}.ToList()) + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & drvInfoCollection.Count & LocalizationService.ForSection("ImageInfoSave.Report")("HardwareTargets.Label"), ParagraphStyle.Bold) & CrLf & + GetTableHeader(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Hardware.Description"), + LocalizationService.ForSection("ImageInfoSave.Report")("HardwareID.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("CompatibleIds.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("ExcludeIds.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Hardware.Manufacturer.Label"), + LocalizationService.ForSection("ImageInfoSave.Report")("Architecture.Label")}.ToList()) For Each hwTarget As DismDriver In drvInfoCollection Contents &= GetTableRow(New String() {hwTarget.HardwareDescription, hwTarget.HardwareId, - If(hwTarget.CompatibleIds = "", "None declared by the manufacturer", hwTarget.CompatibleIds), - If(hwTarget.ExcludeIds = "", "None declared by the manufacturer", hwTarget.ExcludeIds), + If(hwTarget.CompatibleIds = "", LocalizationService.ForSection("ImageInfoSave.Report")("None.Declared.Label"), hwTarget.CompatibleIds), + If(hwTarget.ExcludeIds = "", LocalizationService.ForSection("ImageInfoSave.Report")("None.Declared.Label"), hwTarget.ExcludeIds), hwTarget.ManufacturerName, Casters.CastDismArchitecture(hwTarget.Architecture)}.ToList()) Next Contents &= CrLf Else - Contents &= GetParagraph("This file contains no hardware targets. It could be invalid.", ParagraphStyle.Bold) & CrLf + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("File.Contains.Hardware.Label"), ParagraphStyle.Bold) & CrLf End If End If Next @@ -2027,109 +1160,37 @@ Public Class ImgInfoSaveDlg Private Sub GetWinPEConfiguration() Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Preparing to get Windows PE configuration..." - Case "ESN" - msg = "Preparándonos para obtener la configuración de Windows PE..." - Case "FRA" - msg = "Préparation de l'obtention de la configuration de Windows PE en cours..." - Case "PTB", "PTG" - msg = "A preparar para obter a configuração do Windows PE..." - Case "ITA" - msg = "Preparazione per ottenere la configurazione di Windows PE..." - End Select - Case 1 - msg = "Preparing to get Windows PE configuration..." - Case 2 - msg = "Preparándonos para obtener la configuración de Windows PE..." - Case 3 - msg = "Préparation de l'obtention de la configuration de Windows PE en cours..." - Case 4 - msg = "A preparar para obter a configuração do Windows PE..." - Case 5 - msg = "Preparazione per ottenere la configurazione di Windows PE..." - End Select - Contents &= GetHeader("Windows PE configuration", HeaderSize.Header2) & CrLf & CrLf + msg = LocalizationService.ForSection("ImageInfoSave.WinPE")("Prepare.Message") + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("Windows.Label"), HeaderSize.Header2) & CrLf & CrLf If Not ImageToGetInfoFrom.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) Then - Contents &= GetParagraph("This task is not supported on the specified Windows image. Check that it is a Windows PE image. Skipping task...", ParagraphStyle.Bold) & CrLf + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("UnsupportedWin.Message"), ParagraphStyle.Bold) & CrLf Exit Sub Else - Contents &= GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation")}.ToList()) & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label"))}.ToList()) & CrLf Debug.WriteLine("[GetWinPEConfiguration] Starting task...") Debug.WriteLine("[GetWinPEConfiguration] Detecting target path...") ReportChanges(msg, 0) Dim regExitCode As Integer = RegistryHelper.LoadRegistryHive(Path.Combine(ImgMountDir, "Windows", "system32", "config", "SOFTWARE"), "HKLM\PE_SOFT") If regExitCode <> 0 Then - Contents &= GetListItems(New String() {"Target path: could not get value"}.ToList()) & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Target.Path.Get.Label")}.ToList()) & CrLf End If regExitCode = RegistryHelper.LoadRegistryHive(Path.Combine(ImgMountDir, "Windows", "system32", "config", "SYSTEM"), "HKLM\PE_SYS") If regExitCode <> 0 Then - Contents &= GetListItems(New String() {"Scratch space: could not get value"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ScratchSpace.Get.Value.Label")}.ToList()) & CrLf & CrLf Exit Sub End If Try - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Getting Windows PE target path..." - Case "ESN" - msg = "Obteniendo la ruta de destino de Windows PE..." - Case "FRA" - msg = "Obtention du chemin d'accès cible de Windows PE en cours..." - Case "PTB", "PTG" - msg = "Obter a localização do objetivo do Windows PE..." - Case "ITA" - msg = "Ottenere il percorso di destinazione di Windows PE..." - End Select - Case 1 - msg = "Getting Windows PE target path..." - Case 2 - msg = "Obteniendo la ruta de destino de Windows PE..." - Case 3 - msg = "Obtention du chemin d'accès cible de Windows PE en cours..." - Case 4 - msg = "Obter a localização do objetivo do Windows PE..." - Case 5 - msg = "Ottenere il percorso di destinazione di Windows PE..." - End Select + msg = LocalizationService.ForSection("ImageInfoSave.WinPE")("Get.Target.Message") ReportChanges(msg, 50) ' Get target path first Dim regKey As RegistryKey = Registry.LocalMachine.OpenSubKey("PE_SOFT\Microsoft\Windows NT\CurrentVersion\WinPE", False) - Contents &= GetListItems(New String() {"Target path: " & regKey.GetValue("InstRoot", "could not get value").ToString()}.ToList()) & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("TargetPath.Label") & regKey.GetValue("InstRoot", LocalizationService.ForSection("ImageInfoSave.Report")("GetValue.Label")).ToString()}.ToList()) & CrLf regKey.Close() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Getting Windows PE scratch space..." - Case "ESN" - msg = "Obteniendo espacio temporal de Windows PE..." - Case "FRA" - msg = "Obtention de l'espace temporaire de Windows PE en cours..." - Case "PTB", "PTG" - msg = "A obter espaço temporário do Windows PE..." - Case "ITA" - msg = "Ottenere lo spazio temporaneo di Windows PE..." - End Select - Case 1 - msg = "Getting Windows PE scratch space..." - Case 2 - msg = "Obteniendo espacio temporal de Windows PE..." - Case 3 - msg = "Obtention de l'espace temporaire de Windows PE en cours..." - Case 4 - msg = "A obter espaço temporário do Windows PE..." - Case 5 - msg = "Ottenere lo spazio temporaneo di Windows PE..." - End Select + msg = LocalizationService.ForSection("ImageInfoSave.WinPE")("Get.Scratch.Message") ReportChanges(msg, 75) regKey = Registry.LocalMachine.OpenSubKey("PE_SYS\ControlSet001\Services\FBWF", False) Dim scSize As String = regKey.GetValue("WinPECacheThreshold", "").ToString() - Contents &= GetListItems(New String() {"Scratch space: " & If(Not scSize = "", scSize & " MB", "could not get value")}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ScratchSpace.Label") & If(Not scSize = "", scSize & " MB", LocalizationService.ForSection("ImageInfoSave.Report")("GetValue.Label"))}.ToList()) & CrLf & CrLf regKey.Close() Catch ex As Exception @@ -2141,72 +1202,72 @@ Public Class ImgInfoSaveDlg End Sub Private Sub GetDefaultCSServiceInformation() - Contents &= GetHeader("Service Information", HeaderSize.Header2) & CrLf & - GetListItems(New String() {"Image file to get information from: " & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, "active installation")}.ToList()) & CrLf - ReportChanges("Getting service information...", 0.0) + Contents &= GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("ServiceInfo.Label"), HeaderSize.Header2) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ImageFile.Get.Label") & If(SourceImage <> "" And Not OnlineMode, Quote & SourceImage & Quote, LocalizationService.ForSection("ImageInfoSave.Report")("Active.Install.Label.Label"))}.ToList()) & CrLf + ReportChanges(LocalizationService.ForSection("ImageInfoSave.Report")("Getting.Service.Label"), 0.0) Dim serviceList As List(Of WindowsService) = WindowsServiceHelper.GetServiceList(ImgMountDir, OnlineMode) If serviceList.Any() Then - Contents &= GetParagraph("Information summary for " & serviceList.Count & " service(s) in default control set:", ParagraphStyle.Bold) & CrLf & - GetTableHeader({"Service Name", "Display Name", "Description", "Start Type", "Service Type", "On The Web"}.ToList()) + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("InfoSummary.Label") & serviceList.Count & LocalizationService.ForSection("ImageInfoSave.Report")("Service.Default.Label"), ParagraphStyle.Bold) & CrLf & + GetTableHeader({LocalizationService.ForSection("ImageInfoSave.Report")("ServiceName.Label"), LocalizationService.ForSection("ImageInfoSave.Report")("DisplayName.Column"), LocalizationService.ForSection("ImageInfoSave.Report")("Description"), LocalizationService.ForSection("ImageInfoSave.Report")("StartType.Label"), LocalizationService.ForSection("ImageInfoSave.Report")("ServiceType.Label"), LocalizationService.ForSection("ImageInfoSave.Report")("Web.Label")}.ToList()) ' Do the service listing overview first; then do a loop again for each service. For Each service In serviceList - ReportChanges(String.Format("Saving information overview of service {0} of {1}...", serviceList.IndexOf(service) + 1, serviceList.Count), + ReportChanges(String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Overview.Svc.Label"), serviceList.IndexOf(service) + 1, serviceList.Count), (serviceList.IndexOf(service) / serviceList.Count) * 100) Contents &= GetTableRow({service.Name, service.DisplayName, service.Description, service.StartTypeToString(), service.TypeToString(), MarkdownHelper.GetLink(SearchEngineHelper.GetSearchQueryUri(String.Format("microsoft windows {0}{1}{0}", Quote, service.Name)), - "Look this item online")}.ToList()) + LocalizationService.ForSection("ImageInfoSave.Report")("Look.Item.Online.Label"))}.ToList()) Next Contents &= CrLf For Each service In serviceList - ReportChanges(String.Format("Saving detailed information of service {0} of {1}...", serviceList.IndexOf(service) + 1, serviceList.Count), + ReportChanges(String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Detailed.Svc.Label"), serviceList.IndexOf(service) + 1, serviceList.Count), (serviceList.IndexOf(service) / serviceList.Count) * 100) Dim peruserServiceStatus As String = "" If {80, 96}.Contains(service.Type) Then If service.UserServiceFlags = Integer.MinValue Then - peruserServiceStatus = "Undefined" + peruserServiceStatus = LocalizationService.ForSection("ImageInfoSave.Report")("Undefined.Label") Else peruserServiceStatus = service.UserServiceFlags End If Else - peruserServiceStatus = "Not a per-user service" + peruserServiceStatus = LocalizationService.ForSection("ImageInfoSave.Report")("Per.User.Service.Label") End If - Contents &= GetHeader(String.Format("Information for service: {0}", service.Name), HeaderSize.Header3) & CrLf & - GetListItems({String.Format("Service Display Name: {0}", service.DisplayName), - String.Format("Service Description: {0}", service.Description), - String.Format("Image Path: {0}", service.ImagePath), - String.Format("Object Name: {0}", service.ObjectName), - String.Format("Start Type: {0}", service.StartTypeToString()), - String.Format("Delayed Start? {0}", If(service.StartType = WindowsService.ServiceStartType.Automatic AndAlso service.DelayedStart, "Yes", "No")), - String.Format("Service Type: {0}", service.TypeToString()), - String.Format("Per-user Service Flags: {0}", peruserServiceStatus), - String.Format("Group: {0}", service.Group)}.ToList()) & CrLf & - GetParagraph("Windows NT® privileges:", ParagraphStyle.Bold) & CrLf & - GetTableHeader({"Privilege Name", "Privilege Display Name", "Privilege Description"}.ToList()) & + Contents &= GetHeader(String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("InfoService.Label"), service.Name), HeaderSize.Header3) & CrLf & + GetListItems({String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Service.Display.Name.Label"), service.DisplayName), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Service.Description"), service.Description), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("ImagePath.Label"), service.ImagePath), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("ObjectName.Label"), service.ObjectName), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("StartType.Option0.Label"), service.StartTypeToString()), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("DelayedStart.Label"), If(service.StartType = WindowsService.ServiceStartType.Automatic AndAlso service.DelayedStart, LocalizationService.ForSection("ImageInfoSave.Report")("Yes.Button"), LocalizationService.ForSection("ImageInfoSave.Report")("No.Button"))), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("ServiceType.Option0.Label"), service.TypeToString()), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Per.User.Flags.Label"), peruserServiceStatus), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Group.Label"), service.Group)}.ToList()) & CrLf & + GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("WindowsNt.Label"), ParagraphStyle.Bold) & CrLf & + GetTableHeader({LocalizationService.ForSection("ImageInfoSave.Report")("PrivilegeName.Label"), LocalizationService.ForSection("ImageInfoSave.Report")("Privilege.Display.Name.Label"), LocalizationService.ForSection("ImageInfoSave.Report")("Privilege.Description")}.ToList()) & String.Join("", service.RequiredPrivileges.Select(Function(privilege) GetTableRow({privilege.ConstantNameText, privilege.ConstantUserRight, privilege.ConstantDescription}.ToList()))) & CrLf & - GetParagraph("Error Control:", ParagraphStyle.Bold) & CrLf & - GetListItems({String.Format("On service error: {0}", service.ErrorControlToString()), - String.Format("Failure action on first error: {0}", service.FailureActionToString(service.FailureActions.FirstFailure)), - String.Format("Failure action on second error: {0}", service.FailureActionToString(service.FailureActions.SecondFailure)), - String.Format("Failure action on subsequent errors: {0}", service.FailureActionToString(service.FailureActions.SubsequentFailure)), - String.Format("Reset error count after the following minutes: {0} minute(s)", service.FailureActions.ResetDelayInSeconds / 60), - String.Format("Restart service after the following minutes: {0} minute(s) ({1} seconds) after first failure, {2} minute(s) ({3} seconds) after second failure, {4} minute(s) ({5} seconds) after subsequent failures", + GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("ErrorControl.Label"), ParagraphStyle.Bold) & CrLf & + GetListItems({String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("ServiceError.Label"), service.ErrorControlToString()), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Failure.Action.First.Label"), service.FailureActionToString(service.FailureActions.FirstFailure)), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Failure.Action.Second.Label"), service.FailureActionToString(service.FailureActions.SecondFailure)), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Failure.Errors.Label"), service.FailureActionToString(service.FailureActions.SubsequentFailure)), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("ResetErrorCount.Label"), service.FailureActions.ResetDelayInSeconds / 60), + String.Format(LocalizationService.ForSection("ImageInfoSave.Report")("Restart.Service.Message"), Math.Round((service.FailureActions.FirstDelayInMillis / 60000), 2), Math.Round((service.FailureActions.FirstDelayInMillis / 1000), 2), Math.Round((service.FailureActions.SecondDelayInMillis / 60000), 2), Math.Round((service.FailureActions.SecondDelayInMillis / 1000), 2), Math.Round((service.FailureActions.SubsequentDelaysInMillis / 60000), 2), Math.Round((service.FailureActions.SubsequentDelaysInMillis / 1000), 2))}.ToList()) & CrLf & - GetParagraph("Dependencies:", ParagraphStyle.Bold) & CrLf & - GetTableHeader({"Name", "Display Name", "Type"}.ToList()) & + GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Dependencies.Label"), ParagraphStyle.Bold) & CrLf & + GetTableHeader({LocalizationService.ForSection("ImageInfoSave.Report")("Name.Column"), LocalizationService.ForSection("ImageInfoSave.Report")("DisplayName.Column"), LocalizationService.ForSection("ImageInfoSave.Report")("Type.Label")}.ToList()) & String.Join("", serviceList.Where(Function(srv) service.Dependencies.Contains(srv.Name)).OrderBy(Function(srv) srv.DisplayName).Select(Function(srv) GetTableRow({srv.Name, srv.DisplayName, srv.TypeToString()}.ToList()))) & CrLf & - GetParagraph("Dependents:", ParagraphStyle.Bold) & CrLf & - GetTableHeader({"Name", "Display Name", "Type"}.ToList()) & + GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Dependents.Label"), ParagraphStyle.Bold) & CrLf & + GetTableHeader({LocalizationService.ForSection("ImageInfoSave.Report")("Name.Column"), LocalizationService.ForSection("ImageInfoSave.Report")("DisplayName.Column"), LocalizationService.ForSection("ImageInfoSave.Report")("Type.Label")}.ToList()) & String.Join("", serviceList.Where(Function(srv) srv.Dependencies.Contains(service.Name)).OrderBy(Function(srv) srv.DisplayName).Select(Function(srv) GetTableRow({srv.Name, srv.DisplayName, srv.TypeToString()}.ToList()))) & CrLf Next Else - Contents &= GetParagraph("No services were found.", ParagraphStyle.Bold) & CrLf + Contents &= GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("ServicesFound.Label"), ParagraphStyle.Bold) & CrLf End If End Sub @@ -2224,104 +1285,14 @@ Public Class ImgInfoSaveDlg Height = WindowHelper.ScaleLogical(200) ' tweak the height manually because Windows ain't doin' it! ProgressBar1.Width = WindowHelper.ScaleLogical(637) Visible = True - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Saving image information..." - Label1.Text = "Please wait while DISMTools saves the image information to a file. This can take some time, depending on the tasks that are run." - Label2.Text = "Please wait..." - Case "ESN" - Text = "Guardando información de la imagen..." - Label1.Text = "Espere mientras DISMTools guarda la información de la imagen en un archivo. Esto puede llevar algo de tiempo, dependiendo de las tareas que son ejecutadas." - Label2.Text = "Espere..." - Case "FRA" - Text = "Sauvegarde des informations sur l'image en cours..." - Label1.Text = "Veuillez patienter pendant que DISMTools enregistre l'information sur l'image dans un fichier. Cette opération peut prendre un certain temps, en fonction des tâches exécutées." - Label2.Text = "Veuillez patienter..." - Case "PTB", "PTG" - Text = "Salvando informações da imagem..." - Label1.Text = "Aguarde enquanto o DISMTools salva as informações da imagem em um arquivo. Isso pode levar algum tempo, dependendo das tarefas que estão sendo executadas." - Label2.Text = "Aguarde..." - Case "ITA" - Text = "Salvataggio delle informazioni sull'immagine..." - Label1.Text = "Attendere che DISMTools salvi le informazioni sull'immagine in un file. Questa operazione può richiedere un certo tempo, a seconda delle attività eseguite." - Label2.Text = "Attendere..." - End Select - Case 1 - Text = "Saving image information..." - Label1.Text = "Please wait while DISMTools saves the image information to a file. This can take some time, depending on the tasks that are run." - Label2.Text = "Please wait..." - Case 2 - Text = "Guardando información de la imagen..." - Label1.Text = "Espere mientras DISMTools guarda la información de la imagen en un archivo. Esto puede llevar algo de tiempo, dependiendo de las tareas que son ejecutadas." - Label2.Text = "Espere..." - Case 3 - Text = "Sauvegarde des informations sur l'image en cours..." - Label1.Text = "Veuillez patienter pendant que DISMTools enregistre l'information sur l'image dans un fichier. Cette opération peut prendre un certain temps, en fonction des tâches exécutées." - Label2.Text = "Veuillez patienter..." - Case 4 - Text = "Salvando informações da imagem..." - Label1.Text = "Aguarde enquanto o DISMTools salva as informações da imagem em um arquivo. Isso pode levar algum tempo, dependendo das tarefas que estão sendo executadas." - Label2.Text = "Aguarde..." - Case 5 - Text = "Salvataggio delle informazioni sull'immagine..." - Label1.Text = "Attendere che DISMTools salvi le informazioni sull'immagine in un file. Questa operazione può richiedere un certo tempo, a seconda delle attività eseguite." - Label2.Text = "Attendere..." - End Select + Text = LocalizationService.ForSection("ImageInfoSave")("Saving.Image.Button") + Label1.Text = LocalizationService.ForSection("ImageInfoSave")("Wait.Message") + Label2.Text = LocalizationService.ForSection("ImageInfoSave")("Wait.Label") If MainForm.ImgBW.IsBusy Then Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes need to have completed before getting information. We'll wait until they have completed" - Case "ESN" - msg = "Los procesos en segundo plano deben haber completado antes de obtener información. Esperaremos hasta que hayan completado" - Case "FRA" - msg = "Les processus en plan doivent être terminés avant d'afficher l'information. Nous attendrons qu'ils soient terminés" - Case "PTB", "PTG" - msg = "Os processos em segundo plano têm de estar concluídos antes de obter informações. Vamos esperar até que estejam concluídos" - Case "ITA" - msg = "I processi in background devono essere completati prima di ottenere informazioni. Aspetteremo che siano completati" - End Select - Case 1 - msg = "Background processes need to have completed before getting information. We'll wait until they have completed" - Case 2 - msg = "Los procesos en segundo plano deben haber completado antes de obtener información. Esperaremos hasta que hayan completado" - Case 3 - msg = "Les processus en plan doivent être terminés avant d'afficher l'information. Nous attendrons qu'ils soient terminés" - Case 4 - msg = "Os processos em segundo plano têm de estar concluídos antes de obter informações. Vamos esperar até que estejam concluídos" - Case 5 - msg = "I processi in background devono essere completati prima di ottenere informazioni. Aspetteremo che siano completati" - End Select + msg = LocalizationService.ForSection("ImageInfoSave")("Wait.Background.Message") MsgBox(msg, vbOKOnly + vbInformation, Text) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Waiting for background processes to finish..." - Case "ESN" - Label2.Text = "Esperando a que terminen los procesos en segundo plano..." - Case "FRA" - Label2.Text = "Attente de la fin des processus en arrière plan..." - Case "PTB", "PTG" - Label2.Text = "A aguardar que os processos em segundo plano terminem..." - Case "ITA" - Label2.Text = "In attesa che i processi in background finiscano..." - End Select - Case 1 - Label2.Text = "Waiting for background processes to finish..." - Case 2 - Label2.Text = "Esperando a que terminen los procesos en segundo plano..." - Case 3 - Label2.Text = "Attente de la fin des processus en arrière plan..." - Case 4 - Label2.Text = "A aguardar que os processos em segundo plano terminem..." - Case 5 - Label2.Text = "In attesa che i processi in background finiscano..." - End Select + Label2.Text = LocalizationService.ForSection("ImageInfoSave")("Waiting.Bg.Procs.Item") TaskbarHelper.SetIndicatorState(0, Windows.Shell.TaskbarItemProgressState.Indeterminate, MainForm.Handle) While MainForm.ImgBW.IsBusy Application.DoEvents() @@ -2349,53 +1320,20 @@ Public Class ImgInfoSaveDlg File.WriteAllText(SaveTarget, String.Empty) Catch ex As Exception Dim msg As String() = New String(1) {"", ""} - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg(0) = "Could not create the save target. Reason: " - msg(1) = "The operation has failed" - Case "ESN" - msg(0) = "No se pudo crear el informe de destino. Razón: " - msg(1) = "La operación ha fallado" - Case "FRA" - msg(0) = "Impossible de créer le fichier cible. Raison : " - msg(1) = "L'opération a échoué" - Case "PTB", "PTG" - msg(0) = "Não foi possível criar o destino de gravação. Motivo: " - msg(1) = "A operação falhou" - Case "ITA" - msg(0) = "Impossibile creare la destinazione di salvataggio. Motivo: " - msg(1) = "L'operazione non è riuscita" - End Select - Case 1 - msg(0) = "Could not create the save target. Reason: " - msg(1) = "The operation has failed" - Case 2 - msg(0) = "No se pudo crear el informe de destino. Razón: " - msg(1) = "La operación ha fallado" - Case 3 - msg(0) = "Impossible de créer le fichier cible. Raison : " - msg(1) = "L'opération a échoué" - Case 4 - msg(0) = "Não foi possível criar o destino de gravação. Motivo: " - msg(1) = "A operação falhou" - Case 5 - msg(0) = "Impossibile creare la destinazione di salvataggio. Motivo: " - msg(1) = "L'operazione non è riuscita" - End Select + msg(0) = LocalizationService.ForSection("ImageInfoSave")("Create.Target.Reason.Message") + msg(1) = LocalizationService.ForSection("ImageInfoSave")("OperationFailed.Message") MsgBox(msg(0) & ex.ToString() & ": " & ex.Message, vbOKOnly + vbCritical, msg(1)) Exit Sub End Try End If ' Set the beginning of the contents - Contents = GetHeader("DISMTools Image Information Report", HeaderSize.Header1) & - GetParagraph("This is an automatically generated report created by DISMTools. It can be viewed at any time to check image information." & CrLf & CrLf & - "This report contains information about the tasks that you wanted to get information about, which are reflected below this message." & CrLf & CrLf & - "This process primarily uses the DISM API to get information. If you want to get information of the API operations, this file does not include it. However, you can get that information from the log file stored in the standard location of: " & Quote & Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\logs\DISM\DISM.log" & Quote & CrLf, ParagraphStyle.Normal) & CrLf & - GetHeader("Task details", HeaderSize.Header2) & CrLf & - GetListItems(New String() {"Processes started at: " & Date.Now, "Report file target: " & Quote & SaveTarget & Quote}.ToList()) + Contents = GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("DISM.Tools.Image.Title"), HeaderSize.Header1) & + GetParagraph(LocalizationService.ForSection("ImageInfoSave.Report")("Automatically.Message") & CrLf & CrLf & + LocalizationService.ForSection("ImageInfoSave.Report")("Report.Contains.Message") & CrLf & CrLf & + LocalizationService.ForSection("ImageInfoSave.Report")("Process.Primarily.Message") & Quote & Environment.GetFolderPath(Environment.SpecialFolder.Windows) & "\logs\DISM\DISM.log" & Quote & CrLf, ParagraphStyle.Normal) & CrLf & + GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("TaskDetails.Label"), HeaderSize.Header2) & CrLf & + GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("ProcessesStarted.Label") & Date.Now, LocalizationService.ForSection("ImageInfoSave.Report")("Report.File.Target.Label") & Quote & SaveTarget & Quote}.ToList()) If OfflineMode Then SourceImage = ImgMountDir @@ -2405,79 +1343,12 @@ Public Class ImgInfoSaveDlg Dim TaskMessages As New List(Of String), TaskTitles As New List(Of String) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - TaskTitles.AddRange({"Package information", "Feature information", "AppX package information", "Capability information", "Driver information"}) - TaskMessages.AddRange({"Do you want to get complete information about installed packages? Note that this will take longer.", - "Do you want to get complete information about installed features? Note that this will take longer.", - "Do you want to get complete information about installed AppX packages? Note that this will take longer.", - "Do you want to get complete information about installed capabilities? Note that this will take longer.", - "Do you want to get complete information about installed drivers? Note that this will take longer."}) - Case "ESN" - TaskTitles.AddRange({"Información de paquetes", "Información de características", "Información de paquetes AppX", "Información de funcionalidades", "Información de controladores"}) - TaskMessages.AddRange({"¿Desea obtener información completa acerca de los paquetes presentes? Esto tardará más tiempo.", - "¿Desea obtener información completa acerca de las características presentes? Esto tardará más tiempo.", - "¿Desea obtener información completa acerca de los paquetes AppX presentes? Esto tardará más tiempo.", - "¿Desea obtener información completa acerca de las funcionalidades presentes? Esto tardará más tiempo.", - "¿Desea obtener información completa acerca de los controladores presentes? Esto tardará más tiempo."}) - Case "FRA" - TaskTitles.AddRange({"Informations sur les paquets", "Informations sur les caractéristiques", "Informations sur les paquets AppX", "Informations sur les capacités", "Informations sur les pilotes"}) - TaskMessages.AddRange({"Souhaitez-vous obtenir des informations complètes sur les paquets installés ? Notez que cela prendra plus de temps.", - "Souhaitez-vous obtenir des informations complètes sur les caractéristiques installées ? Notez que cela prendra plus de temps.", - "Souhaitez-vous obtenir des informations complètes sur les paquets AppX installés ? Notez que cela prendra plus de temps.", - "Souhaitez-vous obtenir des informations complètes sur les capacités installées ? Notez que cela prendra plus de temps.", - "Souhaitez-vous obtenir des informations complètes sur les pilotes installés ? Notez que cela prendra plus de temps."}) - - Case "PTB", "PTG" - TaskTitles.AddRange({"Informações do pacote", "Informação sobre as características", "AppX package information", "Informações sobre as capacidades", "Informações do controlador"}) - TaskMessages.AddRange({"Deseja obter informações completas sobre os pacotes instalados? Tenha em atenção que este processo demorará mais tempo.", - "Deseja obter informações completas sobre as características instaladas? Tenha em atenção que isto demorará mais tempo.", - "Deseja obter informações completas sobre os pacotes AppX instalados? Tenha em atenção que isto demorará mais tempo.", - "Deseja obter informações completas sobre as capacidades instaladas? Tenha em atenção que isto demorará mais tempo.", - "Deseja obter informações completas sobre os controladores instalados? Tenha em atenção que isto demorará mais tempo."}) - - Case "ITA" - TaskTitles.AddRange({"Informazioni pacchetto", "Informazioni funzionalità", "AppX package information", "Informazioni sulle capacità", "Informazioni sul driver"}) - TaskMessages.AddRange({"Vuoi ottenere informazioni complete sui pacchetti installati? Tieni presente che l'operazione richiederà più tempo.", - "Vuoi ottenere informazioni complete sulle funzionalità installate? Tieni presente che questa operazione richiederà più tempo.", - "Vuoi ottenere informazioni complete sui pacchetti AppX installati? Tieni presente che questa operazione richiederà più tempo.", - "Vuoi ottenere informazioni complete sulle capacità installate? Tieni presente che questa operazione richiederà più tempo.", - "Vuoi ottenere informazioni complete sui driver installati? Tieni presente che questa operazione richiederà più tempo."}) - End Select - Case 1 - TaskTitles.AddRange({"Package information", "Feature information", "AppX package information", "Capability information", "Driver information"}) - - Case 2 - TaskTitles.AddRange({"Información de paquetes", "Información de características", "Información de paquetes AppX", "Información de funcionalidades", "Información de controladores"}) - TaskMessages.AddRange({"¿Desea obtener información completa acerca de los paquetes presentes? Esto tardará más tiempo.", - "¿Desea obtener información completa acerca de las características presentes? Esto tardará más tiempo.", - "¿Desea obtener información completa acerca de los paquetes AppX presentes? Esto tardará más tiempo.", - "¿Desea obtener información completa acerca de las funcionalidades presentes? Esto tardará más tiempo.", - "¿Desea obtener información completa acerca de los controladores presentes? Esto tardará más tiempo."}) - Case 3 - TaskTitles.AddRange({"Informations sur les paquets", "Informations sur les caractéristiques", "Informations sur les paquets AppX", "Informations sur les capacités", "Informations sur les pilotes"}) - TaskMessages.AddRange({"Souhaitez-vous obtenir des informations complètes sur les paquets installés ? Notez que cela prendra plus de temps.", - "Souhaitez-vous obtenir des informations complètes sur les caractéristiques installées ? Notez que cela prendra plus de temps.", - "Souhaitez-vous obtenir des informations complètes sur les paquets AppX installés ? Notez que cela prendra plus de temps.", - "Souhaitez-vous obtenir des informations complètes sur les capacités installées ? Notez que cela prendra plus de temps.", - "Souhaitez-vous obtenir des informations complètes sur les pilotes installés ? Notez que cela prendra plus de temps."}) - Case 4 - TaskTitles.AddRange({"Informações do pacote", "Informação sobre as características", "Informação dos pacotes AppX", "Informações sobre as capacidades", "Informações do controlador"}) - TaskMessages.AddRange({"Deseja obter informações completas sobre os pacotes instalados? Tenha em atenção que este processo demorará mais tempo.", - "Deseja obter informações completas sobre as características instaladas? Tenha em atenção que isto demorará mais tempo.", - "Deseja obter informações completas sobre os pacotes AppX instalados? Tenha em atenção que isto demorará mais tempo.", - "Deseja obter informações completas sobre as capacidades instaladas? Tenha em atenção que isto demorará mais tempo.", - "Deseja obter informações completas sobre os controladores instalados? Tenha em atenção que isto demorará mais tempo."}) - Case 5 - TaskTitles.AddRange({"Informazioni pacchetto", "Informazioni funzionalità", "Informazioni pacchetti AppX", "Informazioni sulle capacità", "Informazioni sul driver"}) - TaskMessages.AddRange({"Vuoi ottenere informazioni complete sui pacchetti installati? Tieni presente che l'operazione richiederà più tempo.", - "Vuoi ottenere informazioni complete sulle funzionalità installate? Tieni presente che questa operazione richiederà più tempo.", - "Vuoi ottenere informazioni complete sui pacchetti AppX installati? Tieni presente che questa operazione richiederà più tempo.", - "Vuoi ottenere informazioni complete sulle capacità installate? Tieni presente che questa operazione richiederà più tempo.", - "Vuoi ottenere informazioni complete sui driver installati? Tieni presente che questa operazione richiederà più tempo."}) - End Select + TaskTitles.AddRange({LocalizationService.ForSection("ImageInfoSave")("PackageInfo.Label"), LocalizationService.ForSection("ImageInfoSave")("FeatureInfo.Label"), LocalizationService.ForSection("ImageInfoSave")("AppX.Package.Label"), LocalizationService.ForSection("ImageInfoSave")("CapabilityInfo.Label"), LocalizationService.ForSection("ImageInfoSave")("DriverInfo.Label")}) + TaskMessages.AddRange({LocalizationService.ForSection("ImageInfoSave")("Desea.Obtener.Message"), + LocalizationService.ForSection("ImageInfoSave")("Statement3.Message"), + LocalizationService.ForSection("ImageInfoSave")("Statement4.Message"), + LocalizationService.ForSection("ImageInfoSave")("Statement5.Message"), + LocalizationService.ForSection("ImageInfoSave")("Statement6.Message")}) Dim GetEveryPackage As Boolean = True, GetEveryFeature As Boolean = True, @@ -2526,7 +1397,7 @@ Public Class ImgInfoSaveDlg ' Begin performing operations Select Case SaveTask Case 0 - Contents &= GetListItems(New String() {"Information tasks: get complete image information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Complete.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetImageInformation() @@ -2539,84 +1410,40 @@ Public Class ImgInfoSaveDlg GetDefaultCSServiceInformation() End Sub) Case 1 - Contents &= GetListItems(New String() {"Information tasks: get image file information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Image.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetImageInformation() End Sub) Case 2 - Contents &= GetListItems(New String() {"Information tasks: get installed package information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Installed.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetPackageInformation((SkipQuestions And AutoCompleteInfo(0)) OrElse ((Not SkipQuestions Or Not AutoCompleteInfo(0)) And GetEveryPackage)) End Sub) Case 3 - Contents &= GetListItems(New String() {"Information tasks: get package file information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Package.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetPackageFileInformation() End Sub) Case 4 - Contents &= GetListItems(New String() {"Information tasks: get feature information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Feature.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetFeatureInformation((SkipQuestions And AutoCompleteInfo(1)) OrElse ((Not SkipQuestions Or Not AutoCompleteInfo(1)) And GetEveryFeature)) End Sub) Case 5 - Contents &= GetListItems(New String() {"Information tasks: get installed AppX package information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("TaskInstalled.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetAppxInformation((SkipQuestions And AutoCompleteInfo(2)) OrElse ((Not SkipQuestions Or Not AutoCompleteInfo(2)) And GetEveryAppxPackage)) End Sub) Case 6 - Contents &= GetListItems(New String() {"Information tasks: get capability information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Capability.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetCapabilityInformation((SkipQuestions And AutoCompleteInfo(3)) OrElse ((Not SkipQuestions Or Not AutoCompleteInfo(3)) And GetEveryCapability)) End Sub) Case 7 - Contents &= GetListItems(New String() {"Information tasks: get installed driver information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Driver.Label")}.ToList()) & CrLf & CrLf Dim InboxDriverMessage As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - InboxDriverMessage = "You have configured background processes to not detect all drivers, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in." & CrLf & CrLf & - "This setting is also applied to this task, but you can get the information of all drivers now. Do note that this can take a long time, depending on the amount of first-party drivers." & CrLf & CrLf & - "Do you want to get the information of all drivers, including drivers part of the Windows distribution?" - Case "ESN" - InboxDriverMessage = "Ha configurado los procesos en segundo plano para no detectar todos los controladores, lo que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa." & CrLf & CrLf & - "Esta configuración también se aplica a esta tarea, pero puede obtener la información de todos los controladores ahora. Dese cuenta de que esto puede llevar mucho tiempo, dependiendo del número de controladores de serie." & CrLf & CrLf & - "¿Desea obtener la información de todos los controladores, incluyendo los controladores que son parte de la distribución de Windows?" - Case "FRA" - InboxDriverMessage = "Vous avez configuré les processus d'arrière-plan pour qu'ils ne détectent pas tous les pilotes, ce qui inclut les pilotes faisant partie de la distribution Windows, il se peut donc que vous ne voyiez pas le pilote qui vous intéresse." & CrLf & CrLf & - "Ce paramètre est également appliqué à cette tâche, mais vous pouvez obtenir les informations de tous les pilotes maintenant. Notez que cela peut prendre beaucoup de temps, en fonction du nombre de pilotes de première partie." & CrLf & CrLf & - "Voulez-vous obtenir les informations de tous les pilotes, y compris les pilotes faisant partie de la distribution Windows ?" - Case "PTB", "PTG" - InboxDriverMessage = "Configurou os processos em segundo plano para não detectarem todos os controladores, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado." & CrLf & CrLf & - "Esta configuração também é aplicada a esta tarefa, mas pode obter as informações de todos os controladores agora. Tenha em atenção que isto pode demorar muito tempo, dependendo da quantidade de controladores originais." & CrLf & CrLf & - "Pretende obter as informações de todos os controladores, incluindo os controladores que fazem parte da distribuição do Windows?" - Case "ITA" - InboxDriverMessage = "Avete configurato i processi in background in modo che non rilevino tutti i driver, compresi quelli che fanno parte della distribuzione di Windows, quindi potreste non vedere il driver che vi interessa." & CrLf & CrLf & - "Questa impostazione viene applicata anche a questa attività, ma ora è possibile ottenere le informazioni su tutti i driver. Tenere presente che questa operazione può richiedere molto tempo, a seconda della quantità di driver di prima parte." & CrLf & CrLf & - "Volete ottenere le informazioni su tutti i driver, compresi quelli che fanno parte della distribuzione di Windows?" - End Select - Case 1 - InboxDriverMessage = "You have configured background processes to not detect all drivers, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in." & CrLf & CrLf & - "This setting is also applied to this task, but you can get the information of all drivers now. Do note that this can take a long time, depending on the amount of first-party drivers." & CrLf & CrLf & - "Do you want to get the information of all drivers, including drivers part of the Windows distribution?" - Case 2 - InboxDriverMessage = "Ha configurado los procesos en segundo plano para no detectar todos los controladores, lo que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa." & CrLf & CrLf & - "Esta configuración también se aplica a esta tarea, pero puede obtener la información de todos los controladores ahora. Dese cuenta de que esto puede llevar mucho tiempo, dependiendo del número de controladores de serie." & CrLf & CrLf & - "¿Desea obtener la información de todos los controladores, incluyendo los controladores que son parte de la distribución de Windows?" - Case 3 - InboxDriverMessage = "Vous avez configuré les processus d'arrière-plan pour qu'ils ne détectent pas tous les pilotes, ce qui inclut les pilotes faisant partie de la distribution Windows, il se peut donc que vous ne voyiez pas le pilote qui vous intéresse." & CrLf & CrLf & - "Ce paramètre est également appliqué à cette tâche, mais vous pouvez obtenir les informations de tous les pilotes maintenant. Notez que cela peut prendre beaucoup de temps, en fonction du nombre de pilotes de première partie." & CrLf & CrLf & - "Voulez-vous obtenir les informations de tous les pilotes, y compris les pilotes faisant partie de la distribution Windows ?" - Case 4 - InboxDriverMessage = "Configurou os processos em segundo plano para não detectarem todos os controladores, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado." & CrLf & CrLf & - "Esta configuração também é aplicada a esta tarefa, mas pode obter as informações de todos os controladores agora. Tenha em atenção que isto pode demorar muito tempo, dependendo da quantidade de controladores originais." & CrLf & CrLf & - "Pretende obter as informações de todos os controladores, incluindo os controladores que fazem parte da distribuição do Windows?" - Case 5 - InboxDriverMessage = "Avete configurato i processi in background in modo che non rilevino tutti i driver, compresi quelli che fanno parte della distribuzione di Windows, quindi potreste non vedere il driver che vi interessa." & CrLf & CrLf & - "Questa impostazione viene applicata anche a questa attività, ma ora è possibile ottenere le informazioni su tutti i driver. Tenere presente che questa operazione può richiedere molto tempo, a seconda della quantità di driver di prima parte." & CrLf & CrLf & - "Volete ottenere le informazioni su tutti i driver, compresi quelli che fanno parte della distribuzione di Windows?" - End Select + InboxDriverMessage = LocalizationService.ForSection("ImageInfoSave")("BgProcessDetect.Message") & LocalizationService.ForSection("ImageInfoSave")("Setting.Applied.Task.Message") & CrLf & CrLf & LocalizationService.ForSection("ImageInfoSave")("Get.Message") Dim GetInboxDrivers As Boolean = True If Not AllDrivers Then GetInboxDrivers = MessageBox.Show(InboxDriverMessage, TaskTitles(4), MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes @@ -2625,52 +1452,28 @@ Public Class ImgInfoSaveDlg GetDriverInformation((SkipQuestions And AutoCompleteInfo(4)) OrElse ((Not SkipQuestions Or Not AutoCompleteInfo(4)) And GetEveryDriver), GetInboxDrivers) End Sub) Case 8 - Contents &= GetListItems(New String() {"Information tasks: get driver package information"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Label.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetDriverFileInformation() End Sub) Case 9 - Contents &= GetListItems(New String() {"Information tasks: get Windows PE configuration"}.ToList()) & CrLf & CrLf + Contents &= GetListItems(New String() {LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Windows.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetWinPEConfiguration() End Sub) Case 10 - Contents &= GetListItems({"Information tasks: get services from default control set"}.ToList()) & CrLf & CrLf + Contents &= GetListItems({LocalizationService.ForSection("ImageInfoSave.Report")("Tasks.Get.Services.Label")}.ToList()) & CrLf & CrLf Await Task.Run(Sub() GetDefaultCSServiceInformation() End Sub) End Select ' Put an ending to the contents - Contents &= CrLf & CrLf & GetHeader("We have ended at " & Date.Now & ". Have a nice day!", HeaderSize.Header2) + Contents &= CrLf & CrLf & GetHeader(LocalizationService.ForSection("ImageInfoSave.Report")("WeEnded.Label") & Date.Now & LocalizationService.ForSection("ImageInfoSave.Report")("NiceDay.Label"), HeaderSize.Header2) ' Inform user that we are saving the file Dim saveMsg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - saveMsg = "Saving contents..." - Case "ESN" - saveMsg = "Guardando contenidos..." - Case "FRA" - saveMsg = "Sauvegarde des contenus en cours..." - Case "PTB", "PTG" - saveMsg = "A guardar o conteúdo..." - Case "ITA" - saveMsg = "Salvataggio dei contenuti..." - End Select - Case 1 - saveMsg = "Saving contents..." - Case 2 - saveMsg = "Guardando contenidos..." - Case 3 - saveMsg = "Sauvegarde des contenus en cours..." - Case 4 - saveMsg = "A guardar o conteúdo..." - Case 5 - saveMsg = "Salvataggio dei contenuti..." - End Select + saveMsg = LocalizationService.ForSection("ImageInfoSave")("SavingContents.Message") ReportChanges(saveMsg, ProgressBar1.Maximum) TaskbarHelper.SetIndicatorState(ProgressBar1.Maximum, Windows.Shell.TaskbarItemProgressState.None, MainForm.Handle) diff --git a/Panels/Get_Ops/InfoSave/InfoSaveResults.Designer.vb b/Panels/Get_Ops/InfoSave/InfoSaveResults.Designer.vb index 9d42c7bc4..dfc526d5e 100644 --- a/Panels/Get_Ops/InfoSave/InfoSaveResults.Designer.vb +++ b/Panels/Get_Ops/InfoSave/InfoSaveResults.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class InfoSaveResults Inherits System.Windows.Forms.Form @@ -44,8 +44,7 @@ Partial Class InfoSaveResults Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(1239, 26) Me.Label1.TabIndex = 1 - Me.Label1.Text = "The report has been saved to the location you had specified, and its contents wil" & _ - "l be shown below." + Me.Label1.Text = LocalizationService.ForSection("Designer.InfoSaveResults")("ReportSaved.Message") ' 'Button1 ' @@ -55,7 +54,7 @@ Partial Class InfoSaveResults Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "OK" + Me.Button1.Text = LocalizationService.ForSection("Designer.InfoSaveResults")("Ok.Button") Me.Button1.UseVisualStyleBackColor = True ' 'PrintDialog1 @@ -84,7 +83,7 @@ Partial Class InfoSaveResults Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(218, 23) Me.CheckBox1.TabIndex = 5 - Me.CheckBox1.Text = "Display content in Web View" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.InfoSaveResults")("Display.Content.Web.CheckBox") Me.CheckBox1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.CheckBox1.UseVisualStyleBackColor = True ' @@ -108,12 +107,12 @@ Partial Class InfoSaveResults Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(160, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "Save report..." + Me.Button2.Text = LocalizationService.ForSection("Designer.InfoSaveResults")("SaveReport.Button") Me.Button2.UseVisualStyleBackColor = True ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "HTML Reports|*.html" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.InfoSaveResults")("Htmlreports.Filter") ' 'Panel1 ' @@ -143,7 +142,7 @@ Partial Class InfoSaveResults Me.MinimumSize = New System.Drawing.Size(512, 600) Me.Name = "InfoSaveResults" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Image information report results" + Me.Text = LocalizationService.ForSection("Designer.InfoSaveResults")("Image.Report.Label") Me.Panel1.ResumeLayout(False) Me.Panel1.PerformLayout() Me.ResumeLayout(False) diff --git a/Panels/Get_Ops/InfoSave/InfoSaveResults.vb b/Panels/Get_Ops/InfoSave/InfoSaveResults.vb index e2c158eac..44f722213 100644 --- a/Panels/Get_Ops/InfoSave/InfoSaveResults.vb +++ b/Panels/Get_Ops/InfoSave/InfoSaveResults.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports System.Drawing.Printing Imports Markdig Imports Microsoft.VisualBasic.ControlChars @@ -20,61 +20,10 @@ Public Class InfoSaveResults End Sub Private Async Sub InfoSaveResults_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Image information report results" - Label1.Text = "The report has been saved to the location you had specified, and its contents will be shown below." - Button1.Text = "OK" - Button2.Text = "Save report..." - Case "ESN" - Text = "Resultados del informe de información de la imagen" - Label1.Text = "El informe ha sido guardado en la ubicación que especificó, y sus contenidos serán mostrados abajo." - Button1.Text = "Aceptar" - Button2.Text = "Guardar informe..." - Case "FRA" - Text = "Résultats du rapport d'information de l'image" - Label1.Text = "Le rapport a été sauvegardé à l'emplacement que vous aviez indiqué et son contenu s'affiche ci-dessous." - Button1.Text = "OK" - Button2.Text = "Enregistrer le rapport..." - Case "PTB", "PTG" - Text = "Resultados do relatório de informações sobre imagens" - Label1.Text = "O relatório foi guardado na localização que especificou e o seu conteúdo será apresentado abaixo." - Button1.Text = "OK" - Button2.Text = "Guardar relatório..." - Case "ITA" - Text = "Risultati del rapporto sulle informazioni sull'immagine" - Label1.Text = "Il rapporto è stato salvato nella posizione specificata e il suo contenuto viene visualizzato sottostante." - Button1.Text = "OK" - Button2.Text = "Salva rapporto..." - End Select - Case 1 - Text = "Image information report results" - Label1.Text = "The report has been saved to the location you had specified, and its contents will be shown below." - Button1.Text = "OK" - Button2.Text = "Save report..." - Case 2 - Text = "Resultados del informe de información de la imagen" - Label1.Text = "El informe ha sido guardado en la ubicación que especificó, y sus contenidos serán mostrados abajo." - Button1.Text = "Aceptar" - Button2.Text = "Guardar informe..." - Case 3 - Text = "Résultats du rapport d'information de l'image" - Label1.Text = "Le rapport a été sauvegardé à l'emplacement que vous aviez indiqué et son contenu s'affiche ci-dessous." - Button1.Text = "OK" - Button2.Text = "Enregistrer le rapport..." - Case 4 - Text = "Resultados do relatório de informações sobre imagens" - Label1.Text = "O relatório foi guardado na localização que especificou e o seu conteúdo será apresentado abaixo." - Button1.Text = "OK" - Button2.Text = "Guardar relatório..." - Case 5 - Text = "Risultati del rapporto sulle informazioni sull'immagine" - Label1.Text = "Il rapporto è stato salvato nella posizione specificata e il suo contenuto viene visualizzato sottostante." - Button1.Text = "OK" - Button2.Text = "Salva rapporto..." - End Select + Text = LocalizationService.ForSection("InfoSaveResults")("Image.Report.Label") + Label1.Text = LocalizationService.ForSection("InfoSaveResults")("ReportSaved.Message") + Button1.Text = LocalizationService.ForSection("InfoSaveResults.Actions")("Ok.Button") + Button2.Text = LocalizationService.ForSection("InfoSaveResults")("SaveReport.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor TextBox1.BackColor = BackColor @@ -245,7 +194,7 @@ Public Class InfoSaveResults Catch ex As Exception DynaLog.LogMessage("Could not convert to HTML. Error message: " & ex.Message) DynaLog.LogMessage("This could be an issue with Markdig.") - If MsgBox("Conversion to HTML has failed due to the following error: " & ex.Message & CrLf & CrLf & "Do you want to open this file in a text editor?", vbYesNo + vbCritical, "Conversion error") = MsgBoxResult.Yes Then + If MsgBox(LocalizationService.ForSection("InfoSave.Results.Messages").Format("HtmlFailed.Message", ex.Message), vbYesNo + vbCritical, LocalizationService.ForSection("InfoSave.Results.Messages")("ConversionError.Label")) = MsgBoxResult.Yes Then Process.Start(FilePath) End If Close() @@ -295,4 +244,4 @@ Public Class InfoSaveResults End Try End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Get_Ops/Pkgs/GetPkgInfo.Designer.vb b/Panels/Get_Ops/Pkgs/GetPkgInfo.Designer.vb index 3d627fbc7..27a6bba7d 100644 --- a/Panels/Get_Ops/Pkgs/GetPkgInfo.Designer.vb +++ b/Panels/Get_Ops/Pkgs/GetPkgInfo.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class GetPkgInfoDlg Inherits System.Windows.Forms.Form @@ -219,8 +219,7 @@ Partial Class GetPkgInfoDlg Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(791, 83) Me.Label4.TabIndex = 3 - Me.Label4.Text = "Click here to get information about packages that you want to add to the Windows " & _ - "image you're servicing before proceeding with the package addition process" + Me.Label4.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("AddPackages.Help.Message") ' 'Label3 ' @@ -229,8 +228,7 @@ Partial Class GetPkgInfoDlg Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(791, 83) Me.Label3.TabIndex = 3 - Me.Label3.Text = "Click here to get information about packages that you've installed or that came w" & _ - "ith the Windows image you're servicing" + Me.Label3.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Get.Packages.Message") ' 'PictureBox3 ' @@ -263,7 +261,7 @@ Partial Class GetPkgInfoDlg Me.InstalledPackageLink.Size = New System.Drawing.Size(366, 13) Me.InstalledPackageLink.TabIndex = 1 Me.InstalledPackageLink.TabStop = True - Me.InstalledPackageLink.Text = "I want to get information about installed packages in the image" + Me.InstalledPackageLink.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("InstalledPackage.Link") ' 'PackageFileLink ' @@ -276,7 +274,7 @@ Partial Class GetPkgInfoDlg Me.PackageFileLink.Size = New System.Drawing.Size(262, 13) Me.PackageFileLink.TabIndex = 1 Me.PackageFileLink.TabStop = True - Me.PackageFileLink.Text = "I want to get information about package files" + Me.PackageFileLink.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("PackageFile.Link") ' 'Label2 ' @@ -285,7 +283,7 @@ Partial Class GetPkgInfoDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(221, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "What do you want to get information about?" + Me.Label2.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Get.Label") ' 'PackageInfoPanel ' @@ -308,7 +306,7 @@ Partial Class GetPkgInfoDlg Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(96, 23) Me.Button4.TabIndex = 11 - Me.Button4.Text = "Save..." + Me.Button4.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Save.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Label5 @@ -319,7 +317,7 @@ Partial Class GetPkgInfoDlg Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(822, 44) Me.Label5.TabIndex = 4 - Me.Label5.Text = "Status" + Me.Label5.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Status.Label") ' 'PackageContainerPanel ' @@ -508,7 +506,7 @@ Partial Class GetPkgInfoDlg Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(80, 13) Me.Label22.TabIndex = 0 - Me.Label22.Text = "Package name:" + Me.Label22.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("PackageName.Label") ' 'Label23 ' @@ -519,7 +517,7 @@ Partial Class GetPkgInfoDlg Me.Label23.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label23.Size = New System.Drawing.Size(38, 15) Me.Label23.TabIndex = 0 - Me.Label23.Text = "Label8" + Me.Label23.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label23.UseMnemonic = False ' 'Label24 @@ -530,7 +528,7 @@ Partial Class GetPkgInfoDlg Me.Label24.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label24.Size = New System.Drawing.Size(114, 17) Me.Label24.TabIndex = 0 - Me.Label24.Text = "Is package applicable?" + Me.Label24.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Package.Applicable.Label") ' 'Label25 ' @@ -541,7 +539,7 @@ Partial Class GetPkgInfoDlg Me.Label25.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label25.Size = New System.Drawing.Size(38, 15) Me.Label25.TabIndex = 0 - Me.Label25.Text = "Label8" + Me.Label25.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label25.UseMnemonic = False ' 'Label26 @@ -552,7 +550,7 @@ Partial Class GetPkgInfoDlg Me.Label26.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label26.Size = New System.Drawing.Size(58, 17) Me.Label26.TabIndex = 0 - Me.Label26.Text = "Copyright:" + Me.Label26.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Copyright.Label") ' 'Label35 ' @@ -563,7 +561,7 @@ Partial Class GetPkgInfoDlg Me.Label35.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label35.Size = New System.Drawing.Size(38, 15) Me.Label35.TabIndex = 0 - Me.Label35.Text = "Label8" + Me.Label35.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label35.UseMnemonic = False ' 'Label31 @@ -574,7 +572,7 @@ Partial Class GetPkgInfoDlg Me.Label31.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label31.Size = New System.Drawing.Size(56, 17) Me.Label31.TabIndex = 0 - Me.Label31.Text = "Company:" + Me.Label31.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Company.Label") ' 'Label32 ' @@ -585,7 +583,7 @@ Partial Class GetPkgInfoDlg Me.Label32.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label32.Size = New System.Drawing.Size(38, 15) Me.Label32.TabIndex = 0 - Me.Label32.Text = "Label8" + Me.Label32.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label32.UseMnemonic = False ' 'Label41 @@ -596,7 +594,7 @@ Partial Class GetPkgInfoDlg Me.Label41.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label41.Size = New System.Drawing.Size(75, 17) Me.Label41.TabIndex = 0 - Me.Label41.Text = "Creation time:" + Me.Label41.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("CreationTime.Label") ' 'Label40 ' @@ -607,7 +605,7 @@ Partial Class GetPkgInfoDlg Me.Label40.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label40.Size = New System.Drawing.Size(38, 15) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Label8" + Me.Label40.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label40.UseMnemonic = False ' 'Label43 @@ -618,7 +616,7 @@ Partial Class GetPkgInfoDlg Me.Label43.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label43.Size = New System.Drawing.Size(64, 17) Me.Label43.TabIndex = 0 - Me.Label43.Text = "Description:" + Me.Label43.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Description.Label") ' 'Label42 ' @@ -629,7 +627,7 @@ Partial Class GetPkgInfoDlg Me.Label42.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label42.Size = New System.Drawing.Size(38, 15) Me.Label42.TabIndex = 0 - Me.Label42.Text = "Label8" + Me.Label42.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label42.UseMnemonic = False ' 'Label47 @@ -640,7 +638,7 @@ Partial Class GetPkgInfoDlg Me.Label47.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label47.Size = New System.Drawing.Size(68, 17) Me.Label47.TabIndex = 0 - Me.Label47.Text = "Install client:" + Me.Label47.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("InstallClient.Label") ' 'Label46 ' @@ -651,7 +649,7 @@ Partial Class GetPkgInfoDlg Me.Label46.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label46.Size = New System.Drawing.Size(38, 15) Me.Label46.TabIndex = 0 - Me.Label46.Text = "Label8" + Me.Label46.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label46.UseMnemonic = False ' 'Label33 @@ -662,7 +660,7 @@ Partial Class GetPkgInfoDlg Me.Label33.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label33.Size = New System.Drawing.Size(112, 17) Me.Label33.TabIndex = 0 - Me.Label33.Text = "Install package name:" + Me.Label33.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Install.Package.Name.Label") ' 'Label34 ' @@ -673,7 +671,7 @@ Partial Class GetPkgInfoDlg Me.Label34.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label34.Size = New System.Drawing.Size(38, 15) Me.Label34.TabIndex = 0 - Me.Label34.Text = "Label8" + Me.Label34.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label34.UseMnemonic = False ' 'Label28 @@ -684,7 +682,7 @@ Partial Class GetPkgInfoDlg Me.Label28.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label28.Size = New System.Drawing.Size(63, 17) Me.Label28.TabIndex = 0 - Me.Label28.Text = "Install time:" + Me.Label28.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("InstallTime.Label") ' 'Label27 ' @@ -695,7 +693,7 @@ Partial Class GetPkgInfoDlg Me.Label27.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label27.Size = New System.Drawing.Size(38, 15) Me.Label27.TabIndex = 0 - Me.Label27.Text = "Label8" + Me.Label27.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label27.UseMnemonic = False ' 'Label30 @@ -706,7 +704,7 @@ Partial Class GetPkgInfoDlg Me.Label30.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label30.Size = New System.Drawing.Size(91, 17) Me.Label30.TabIndex = 0 - Me.Label30.Text = "Last update time:" + Me.Label30.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Last.Update.Time.Label") ' 'Label29 ' @@ -717,7 +715,7 @@ Partial Class GetPkgInfoDlg Me.Label29.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label29.Size = New System.Drawing.Size(38, 15) Me.Label29.TabIndex = 0 - Me.Label29.Text = "Label8" + Me.Label29.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label29.UseMnemonic = False ' 'Label39 @@ -728,7 +726,7 @@ Partial Class GetPkgInfoDlg Me.Label39.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label39.Size = New System.Drawing.Size(74, 17) Me.Label39.TabIndex = 0 - Me.Label39.Text = "Display name:" + Me.Label39.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DisplayName.Label") ' 'Label38 ' @@ -739,7 +737,7 @@ Partial Class GetPkgInfoDlg Me.Label38.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label38.Size = New System.Drawing.Size(38, 15) Me.Label38.TabIndex = 0 - Me.Label38.Text = "Label8" + Me.Label38.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label38.UseMnemonic = False ' 'Label45 @@ -750,7 +748,7 @@ Partial Class GetPkgInfoDlg Me.Label45.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label45.Size = New System.Drawing.Size(77, 17) Me.Label45.TabIndex = 0 - Me.Label45.Text = "Product name:" + Me.Label45.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("ProductName.Label") ' 'Label44 ' @@ -761,7 +759,7 @@ Partial Class GetPkgInfoDlg Me.Label44.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label44.Size = New System.Drawing.Size(38, 15) Me.Label44.TabIndex = 0 - Me.Label44.Text = "Label8" + Me.Label44.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label44.UseMnemonic = False ' 'Label14 @@ -772,7 +770,7 @@ Partial Class GetPkgInfoDlg Me.Label14.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label14.Size = New System.Drawing.Size(86, 17) Me.Label14.TabIndex = 0 - Me.Label14.Text = "Product version:" + Me.Label14.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("ProductVersion.Label") ' 'Label15 ' @@ -783,7 +781,7 @@ Partial Class GetPkgInfoDlg Me.Label15.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label15.Size = New System.Drawing.Size(38, 15) Me.Label15.TabIndex = 0 - Me.Label15.Text = "Label8" + Me.Label15.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label15.UseMnemonic = False ' 'Label16 @@ -794,7 +792,7 @@ Partial Class GetPkgInfoDlg Me.Label16.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label16.Size = New System.Drawing.Size(74, 17) Me.Label16.TabIndex = 0 - Me.Label16.Text = "Release type:" + Me.Label16.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("ReleaseType.Label") ' 'Label21 ' @@ -805,7 +803,7 @@ Partial Class GetPkgInfoDlg Me.Label21.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label21.Size = New System.Drawing.Size(38, 15) Me.Label21.TabIndex = 0 - Me.Label21.Text = "Label8" + Me.Label21.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label21.UseMnemonic = False ' 'Label48 @@ -816,7 +814,7 @@ Partial Class GetPkgInfoDlg Me.Label48.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label48.Size = New System.Drawing.Size(109, 17) Me.Label48.TabIndex = 0 - Me.Label48.Text = "Is a restart required?" + Me.Label48.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("RestartRequired.Label") ' 'Label13 ' @@ -827,7 +825,7 @@ Partial Class GetPkgInfoDlg Me.Label13.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label13.Size = New System.Drawing.Size(38, 15) Me.Label13.TabIndex = 0 - Me.Label13.Text = "Label8" + Me.Label13.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label13.UseMnemonic = False ' 'Label50 @@ -838,7 +836,7 @@ Partial Class GetPkgInfoDlg Me.Label50.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label50.Size = New System.Drawing.Size(106, 17) Me.Label50.TabIndex = 0 - Me.Label50.Text = "Support information:" + Me.Label50.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("SupportInfo.Label") ' 'Label49 ' @@ -849,7 +847,7 @@ Partial Class GetPkgInfoDlg Me.Label49.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label49.Size = New System.Drawing.Size(38, 15) Me.Label49.TabIndex = 0 - Me.Label49.Text = "Label8" + Me.Label49.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label49.UseMnemonic = False ' 'Label52 @@ -860,7 +858,7 @@ Partial Class GetPkgInfoDlg Me.Label52.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label52.Size = New System.Drawing.Size(37, 17) Me.Label52.TabIndex = 0 - Me.Label52.Text = "State:" + Me.Label52.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("State.Label") ' 'Label51 ' @@ -871,7 +869,7 @@ Partial Class GetPkgInfoDlg Me.Label51.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label51.Size = New System.Drawing.Size(38, 15) Me.Label51.TabIndex = 0 - Me.Label51.Text = "Label8" + Me.Label51.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label51.UseMnemonic = False ' 'Label54 @@ -882,7 +880,7 @@ Partial Class GetPkgInfoDlg Me.Label54.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label54.Size = New System.Drawing.Size(201, 17) Me.Label54.TabIndex = 0 - Me.Label54.Text = "Is a boot up required for full installation?" + Me.Label54.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Boot.Up.Required.Label") ' 'Label53 ' @@ -893,7 +891,7 @@ Partial Class GetPkgInfoDlg Me.Label53.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label53.Size = New System.Drawing.Size(38, 15) Me.Label53.TabIndex = 0 - Me.Label53.Text = "Label8" + Me.Label53.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label53.UseMnemonic = False ' 'Label61 @@ -904,7 +902,7 @@ Partial Class GetPkgInfoDlg Me.Label61.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label61.Size = New System.Drawing.Size(97, 17) Me.Label61.TabIndex = 0 - Me.Label61.Text = "Capability identity:" + Me.Label61.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Capability.Identity.Label") ' 'Label56 ' @@ -915,7 +913,7 @@ Partial Class GetPkgInfoDlg Me.Label56.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label56.Size = New System.Drawing.Size(38, 15) Me.Label56.TabIndex = 0 - Me.Label56.Text = "Label8" + Me.Label56.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label56.UseMnemonic = False ' 'Label58 @@ -926,7 +924,7 @@ Partial Class GetPkgInfoDlg Me.Label58.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label58.Size = New System.Drawing.Size(99, 17) Me.Label58.TabIndex = 0 - Me.Label58.Text = "Custom properties:" + Me.Label58.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("CustomProps.Label") ' 'Label57 ' @@ -937,7 +935,7 @@ Partial Class GetPkgInfoDlg Me.Label57.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label57.Size = New System.Drawing.Size(38, 15) Me.Label57.TabIndex = 0 - Me.Label57.Text = "Label8" + Me.Label57.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label57.UseMnemonic = False Me.Label57.Visible = False ' @@ -1015,7 +1013,7 @@ Partial Class GetPkgInfoDlg Me.Label60.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label60.Size = New System.Drawing.Size(54, 17) Me.Label60.TabIndex = 0 - Me.Label60.Text = "Features:" + Me.Label60.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Features.Label") ' 'Label59 ' @@ -1026,7 +1024,7 @@ Partial Class GetPkgInfoDlg Me.Label59.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label59.Size = New System.Drawing.Size(38, 15) Me.Label59.TabIndex = 0 - Me.Label59.Text = "Label8" + Me.Label59.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label59.UseMnemonic = False ' 'Label55 @@ -1057,7 +1055,7 @@ Partial Class GetPkgInfoDlg Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(436, 36) Me.Label36.TabIndex = 0 - Me.Label36.Text = "Package information" + Me.Label36.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("PackageInfo.Label") Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel7 @@ -1077,7 +1075,7 @@ Partial Class GetPkgInfoDlg Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(436, 376) Me.Label37.TabIndex = 0 - Me.Label37.Text = "Select an installed package to view its information here" + Me.Label37.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Installed.Package.View.Label") Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'FlowLayoutPanel4 @@ -1161,7 +1159,7 @@ Partial Class GetPkgInfoDlg Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(142, 22) Me.Button3.TabIndex = 2 - Me.Button3.Text = "Remove all" + Me.Button3.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("RemoveAll.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button2 @@ -1173,7 +1171,7 @@ Partial Class GetPkgInfoDlg Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(140, 22) Me.Button2.TabIndex = 1 - Me.Button2.Text = "Remove selected" + Me.Button2.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("RemoveSelected.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -1184,7 +1182,7 @@ Partial Class GetPkgInfoDlg Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(140, 22) Me.Button1.TabIndex = 0 - Me.Button1.Text = "Add package..." + Me.Button1.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("AddPackage.Button") Me.Button1.UseVisualStyleBackColor = True ' 'PackageFileContainerPanel @@ -1270,7 +1268,7 @@ Partial Class GetPkgInfoDlg Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(80, 13) Me.Label8.TabIndex = 1 - Me.Label8.Text = "Package name:" + Me.Label8.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("PackageName.Label") ' 'Label9 ' @@ -1281,7 +1279,7 @@ Partial Class GetPkgInfoDlg Me.Label9.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label9.Size = New System.Drawing.Size(38, 15) Me.Label9.TabIndex = 24 - Me.Label9.Text = "Label8" + Me.Label9.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label9.UseMnemonic = False ' 'Label10 @@ -1292,7 +1290,7 @@ Partial Class GetPkgInfoDlg Me.Label10.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label10.Size = New System.Drawing.Size(114, 17) Me.Label10.TabIndex = 25 - Me.Label10.Text = "Is package applicable?" + Me.Label10.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Package.Applicable.Label") ' 'Label11 ' @@ -1303,7 +1301,7 @@ Partial Class GetPkgInfoDlg Me.Label11.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label11.Size = New System.Drawing.Size(38, 15) Me.Label11.TabIndex = 26 - Me.Label11.Text = "Label8" + Me.Label11.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label11.UseMnemonic = False ' 'Label12 @@ -1314,7 +1312,7 @@ Partial Class GetPkgInfoDlg Me.Label12.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label12.Size = New System.Drawing.Size(58, 17) Me.Label12.TabIndex = 27 - Me.Label12.Text = "Copyright:" + Me.Label12.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Copyright.Label") ' 'Label17 ' @@ -1325,7 +1323,7 @@ Partial Class GetPkgInfoDlg Me.Label17.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label17.Size = New System.Drawing.Size(38, 15) Me.Label17.TabIndex = 28 - Me.Label17.Text = "Label8" + Me.Label17.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label17.UseMnemonic = False ' 'Label18 @@ -1336,7 +1334,7 @@ Partial Class GetPkgInfoDlg Me.Label18.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label18.Size = New System.Drawing.Size(56, 17) Me.Label18.TabIndex = 29 - Me.Label18.Text = "Company:" + Me.Label18.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Company.Label") ' 'Label19 ' @@ -1347,7 +1345,7 @@ Partial Class GetPkgInfoDlg Me.Label19.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label19.Size = New System.Drawing.Size(38, 15) Me.Label19.TabIndex = 30 - Me.Label19.Text = "Label8" + Me.Label19.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label19.UseMnemonic = False ' 'Label20 @@ -1358,7 +1356,7 @@ Partial Class GetPkgInfoDlg Me.Label20.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label20.Size = New System.Drawing.Size(75, 17) Me.Label20.TabIndex = 31 - Me.Label20.Text = "Creation time:" + Me.Label20.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("CreationTime.Label") ' 'Label62 ' @@ -1369,7 +1367,7 @@ Partial Class GetPkgInfoDlg Me.Label62.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label62.Size = New System.Drawing.Size(38, 15) Me.Label62.TabIndex = 33 - Me.Label62.Text = "Label8" + Me.Label62.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label62.UseMnemonic = False ' 'Label63 @@ -1380,7 +1378,7 @@ Partial Class GetPkgInfoDlg Me.Label63.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label63.Size = New System.Drawing.Size(64, 17) Me.Label63.TabIndex = 42 - Me.Label63.Text = "Description:" + Me.Label63.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Description.Label") ' 'Label64 ' @@ -1391,7 +1389,7 @@ Partial Class GetPkgInfoDlg Me.Label64.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label64.Size = New System.Drawing.Size(38, 15) Me.Label64.TabIndex = 34 - Me.Label64.Text = "Label8" + Me.Label64.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label64.UseMnemonic = False ' 'Label65 @@ -1402,7 +1400,7 @@ Partial Class GetPkgInfoDlg Me.Label65.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label65.Size = New System.Drawing.Size(68, 17) Me.Label65.TabIndex = 35 - Me.Label65.Text = "Install client:" + Me.Label65.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("InstallClient.Label") ' 'Label66 ' @@ -1413,7 +1411,7 @@ Partial Class GetPkgInfoDlg Me.Label66.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label66.Size = New System.Drawing.Size(38, 15) Me.Label66.TabIndex = 36 - Me.Label66.Text = "Label8" + Me.Label66.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label66.UseMnemonic = False ' 'Label67 @@ -1424,7 +1422,7 @@ Partial Class GetPkgInfoDlg Me.Label67.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label67.Size = New System.Drawing.Size(112, 17) Me.Label67.TabIndex = 37 - Me.Label67.Text = "Install package name:" + Me.Label67.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Install.Package.Name.Label") ' 'Label68 ' @@ -1435,7 +1433,7 @@ Partial Class GetPkgInfoDlg Me.Label68.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label68.Size = New System.Drawing.Size(38, 15) Me.Label68.TabIndex = 38 - Me.Label68.Text = "Label8" + Me.Label68.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label68.UseMnemonic = False ' 'Label69 @@ -1446,7 +1444,7 @@ Partial Class GetPkgInfoDlg Me.Label69.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label69.Size = New System.Drawing.Size(63, 17) Me.Label69.TabIndex = 39 - Me.Label69.Text = "Install time:" + Me.Label69.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("InstallTime.Label") ' 'Label70 ' @@ -1457,7 +1455,7 @@ Partial Class GetPkgInfoDlg Me.Label70.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label70.Size = New System.Drawing.Size(38, 15) Me.Label70.TabIndex = 40 - Me.Label70.Text = "Label8" + Me.Label70.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label70.UseMnemonic = False ' 'Label71 @@ -1468,7 +1466,7 @@ Partial Class GetPkgInfoDlg Me.Label71.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label71.Size = New System.Drawing.Size(91, 17) Me.Label71.TabIndex = 41 - Me.Label71.Text = "Last update time:" + Me.Label71.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Last.Update.Time.Label") ' 'Label72 ' @@ -1479,7 +1477,7 @@ Partial Class GetPkgInfoDlg Me.Label72.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label72.Size = New System.Drawing.Size(38, 15) Me.Label72.TabIndex = 23 - Me.Label72.Text = "Label8" + Me.Label72.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label72.UseMnemonic = False ' 'Label73 @@ -1490,7 +1488,7 @@ Partial Class GetPkgInfoDlg Me.Label73.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label73.Size = New System.Drawing.Size(74, 17) Me.Label73.TabIndex = 32 - Me.Label73.Text = "Display name:" + Me.Label73.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DisplayName.Label") ' 'Label74 ' @@ -1501,7 +1499,7 @@ Partial Class GetPkgInfoDlg Me.Label74.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label74.Size = New System.Drawing.Size(38, 15) Me.Label74.TabIndex = 22 - Me.Label74.Text = "Label8" + Me.Label74.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label74.UseMnemonic = False ' 'Label75 @@ -1512,7 +1510,7 @@ Partial Class GetPkgInfoDlg Me.Label75.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label75.Size = New System.Drawing.Size(77, 17) Me.Label75.TabIndex = 10 - Me.Label75.Text = "Product name:" + Me.Label75.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("ProductName.Label") ' 'Label76 ' @@ -1523,7 +1521,7 @@ Partial Class GetPkgInfoDlg Me.Label76.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label76.Size = New System.Drawing.Size(38, 15) Me.Label76.TabIndex = 2 - Me.Label76.Text = "Label8" + Me.Label76.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label76.UseMnemonic = False ' 'Label77 @@ -1534,7 +1532,7 @@ Partial Class GetPkgInfoDlg Me.Label77.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label77.Size = New System.Drawing.Size(86, 17) Me.Label77.TabIndex = 3 - Me.Label77.Text = "Product version:" + Me.Label77.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("ProductVersion.Label") ' 'Label78 ' @@ -1545,7 +1543,7 @@ Partial Class GetPkgInfoDlg Me.Label78.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label78.Size = New System.Drawing.Size(38, 15) Me.Label78.TabIndex = 4 - Me.Label78.Text = "Label8" + Me.Label78.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label78.UseMnemonic = False ' 'Label79 @@ -1556,7 +1554,7 @@ Partial Class GetPkgInfoDlg Me.Label79.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label79.Size = New System.Drawing.Size(74, 17) Me.Label79.TabIndex = 5 - Me.Label79.Text = "Release type:" + Me.Label79.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("ReleaseType.Label") ' 'Label80 ' @@ -1567,7 +1565,7 @@ Partial Class GetPkgInfoDlg Me.Label80.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label80.Size = New System.Drawing.Size(38, 15) Me.Label80.TabIndex = 6 - Me.Label80.Text = "Label8" + Me.Label80.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label80.UseMnemonic = False ' 'Label81 @@ -1578,7 +1576,7 @@ Partial Class GetPkgInfoDlg Me.Label81.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label81.Size = New System.Drawing.Size(109, 17) Me.Label81.TabIndex = 7 - Me.Label81.Text = "Is a restart required?" + Me.Label81.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("RestartRequired.Label") ' 'Label82 ' @@ -1589,7 +1587,7 @@ Partial Class GetPkgInfoDlg Me.Label82.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label82.Size = New System.Drawing.Size(38, 15) Me.Label82.TabIndex = 8 - Me.Label82.Text = "Label8" + Me.Label82.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label82.UseMnemonic = False ' 'Label83 @@ -1600,7 +1598,7 @@ Partial Class GetPkgInfoDlg Me.Label83.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label83.Size = New System.Drawing.Size(106, 17) Me.Label83.TabIndex = 9 - Me.Label83.Text = "Support information:" + Me.Label83.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("SupportInfo.Label") ' 'Label84 ' @@ -1611,7 +1609,7 @@ Partial Class GetPkgInfoDlg Me.Label84.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label84.Size = New System.Drawing.Size(38, 15) Me.Label84.TabIndex = 11 - Me.Label84.Text = "Label8" + Me.Label84.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label84.UseMnemonic = False ' 'Label85 @@ -1622,7 +1620,7 @@ Partial Class GetPkgInfoDlg Me.Label85.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label85.Size = New System.Drawing.Size(37, 17) Me.Label85.TabIndex = 20 - Me.Label85.Text = "State:" + Me.Label85.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("State.Label") ' 'Label86 ' @@ -1633,7 +1631,7 @@ Partial Class GetPkgInfoDlg Me.Label86.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label86.Size = New System.Drawing.Size(38, 15) Me.Label86.TabIndex = 12 - Me.Label86.Text = "Label8" + Me.Label86.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label86.UseMnemonic = False ' 'Label87 @@ -1644,7 +1642,7 @@ Partial Class GetPkgInfoDlg Me.Label87.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label87.Size = New System.Drawing.Size(201, 17) Me.Label87.TabIndex = 13 - Me.Label87.Text = "Is a boot up required for full installation?" + Me.Label87.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Boot.Up.Required.Label") ' 'Label88 ' @@ -1655,7 +1653,7 @@ Partial Class GetPkgInfoDlg Me.Label88.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label88.Size = New System.Drawing.Size(38, 15) Me.Label88.TabIndex = 14 - Me.Label88.Text = "Label8" + Me.Label88.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label88.UseMnemonic = False ' 'Label89 @@ -1666,7 +1664,7 @@ Partial Class GetPkgInfoDlg Me.Label89.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label89.Size = New System.Drawing.Size(97, 17) Me.Label89.TabIndex = 44 - Me.Label89.Text = "Capability identity:" + Me.Label89.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Capability.Identity.Label") ' 'Label90 ' @@ -1677,7 +1675,7 @@ Partial Class GetPkgInfoDlg Me.Label90.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label90.Size = New System.Drawing.Size(38, 15) Me.Label90.TabIndex = 45 - Me.Label90.Text = "Label8" + Me.Label90.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label90.UseMnemonic = False ' 'Label91 @@ -1688,7 +1686,7 @@ Partial Class GetPkgInfoDlg Me.Label91.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label91.Size = New System.Drawing.Size(99, 17) Me.Label91.TabIndex = 17 - Me.Label91.Text = "Custom properties:" + Me.Label91.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("CustomProps.Label") ' 'Label92 ' @@ -1699,7 +1697,7 @@ Partial Class GetPkgInfoDlg Me.Label92.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label92.Size = New System.Drawing.Size(38, 15) Me.Label92.TabIndex = 18 - Me.Label92.Text = "Label8" + Me.Label92.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label92.UseMnemonic = False ' 'Label93 @@ -1710,7 +1708,7 @@ Partial Class GetPkgInfoDlg Me.Label93.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label93.Size = New System.Drawing.Size(54, 17) Me.Label93.TabIndex = 19 - Me.Label93.Text = "Features:" + Me.Label93.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Features.Label") ' 'Label94 ' @@ -1721,7 +1719,7 @@ Partial Class GetPkgInfoDlg Me.Label94.Padding = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.Label94.Size = New System.Drawing.Size(38, 15) Me.Label94.TabIndex = 21 - Me.Label94.Text = "Label8" + Me.Label94.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("DynamicValue.Label") Me.Label94.UseMnemonic = False ' 'Label95 @@ -1752,7 +1750,7 @@ Partial Class GetPkgInfoDlg Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(436, 36) Me.Label7.TabIndex = 0 - Me.Label7.Text = "Package information" + Me.Label7.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("PackageInfo.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'NoPkgPanel @@ -1772,7 +1770,7 @@ Partial Class GetPkgInfoDlg Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(436, 376) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Add or select a package file to view its information here" + Me.Label6.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Add.Package.File.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'FlowLayoutPanel1 @@ -1793,12 +1791,12 @@ Partial Class GetPkgInfoDlg Me.LinkLabel1.Size = New System.Drawing.Size(60, 13) Me.LinkLabel1.TabIndex = 2 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "<- Go back" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("GoBack.Link") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "CAB files|*.cab" - Me.OpenFileDialog1.Title = "Locate package files" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.GetPkgInfo")("Cabfiles.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.GetPkgInfo")("Locate.Package.Files.Title") ' 'ImageTaskHeader1 ' @@ -1829,7 +1827,7 @@ Partial Class GetPkgInfoDlg Me.Name = "GetPkgInfoDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Get package information" + Me.Text = LocalizationService.ForSection("Designer.GetPkgInfo")("Package.Label") Me.MenuPanel.ResumeLayout(False) Me.MenuPanel.PerformLayout() CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/Panels/Get_Ops/Pkgs/GetPkgInfo.vb b/Panels/Get_Ops/Pkgs/GetPkgInfo.vb index 5fa205dfd..5cc741195 100644 --- a/Panels/Get_Ops/Pkgs/GetPkgInfo.vb +++ b/Panels/Get_Ops/Pkgs/GetPkgInfo.vb @@ -26,631 +26,67 @@ Public Class GetPkgInfoDlg cPropPathView.ForeColor = ForeColor cPropValue.ForeColor = ForeColor SearchPic.Image = GetGlyphResource("search") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Get package information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "What do you want to get information about?" - Label3.Text = "Click here to get information about packages that you've installed or that came with the Windows image you're servicing" - Label4.Text = "Click here to get information about packages that you want to add to the Windows image you're servicing before proceeding with the package addition process" - Label5.Text = "Ready" - Label6.Text = "Add or select a package file to view its information here" - Label7.Text = "Package information" - Label8.Text = "Package name:" - Label10.Text = "Is package applicable?" - Label12.Text = "Copyright:" - Label14.Text = "Product version:" - Label16.Text = "Release type:" - Label18.Text = "Company:" - Label20.Text = "Creation time:" - Label22.Text = "Package name:" - Label24.Text = "Is package applicable?" - Label26.Text = "Copyright:" - Label28.Text = "Install time:" - Label30.Text = "Last update time:" - Label31.Text = "Company:" - Label33.Text = "Install package name:" - Label36.Text = "Package information" - Label37.Text = "Select an installed package to view its information here" - Label39.Text = "Display name:" - Label41.Text = "Creation time:" - Label43.Text = "Description:" - Label45.Text = "Product name:" - Label47.Text = "Install client:" - Label48.Text = "Is a restart required?" - Label50.Text = "Support information:" - Label52.Text = "State:" - Label54.Text = "Is a boot up required for full installation?" - Label58.Text = "Custom properties:" - Label60.Text = "Features:" - Label61.Text = "Capability identity:" - Label63.Text = "Description:" - Label65.Text = "Install client:" - Label67.Text = "Install package name:" - Label69.Text = "Install time:" - Label71.Text = "Last update time:" - Label73.Text = "Display name:" - Label75.Text = "Product name:" - Label77.Text = "Product version:" - Label79.Text = "Release type:" - Label81.Text = "Is a restart required?" - Label83.Text = "Support information:" - Label85.Text = "State:" - Label87.Text = "Is a boot up required for full installation?" - Label89.Text = "Capability identity:" - Label91.Text = "Custom properties:" - Label93.Text = "Features:" - LinkLabel1.Text = "<- Go back" - Button1.Text = "Add package..." - Button2.Text = "Remove selected" - Button3.Text = "Remove all" - Button4.Text = "Save..." - InstalledPackageLink.Text = "I want to get information about installed packages in the image" - PackageFileLink.Text = "I want to get information about package files" - OpenFileDialog1.Title = "Locate package files" - SearchBox1.cueBanner = "Type here to search for a package..." - Case "ESN" - Text = "Obtener información de paquetes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "¿Acerca de qué le gustaría obtener información?" - Label3.Text = "Haga clic aquí para obtener información de paquetes que ha instalado o que vengan con la imagen de Windows a la que está dando servicio" - Label4.Text = "Haga clic aquí para obtener información de paquetes que le gustaría añadir a la imagen de Windows a la que está dando servicio antes de proceder con el proceso de adición de paquetes" - Label5.Text = "Listo" - Label6.Text = "Añada o seleccione un archivo de paquete para ver su información aquí" - Label7.Text = "Información de paquete" - Label8.Text = "Nombre de paquete:" - Label10.Text = "¿El paquete es aplicable?" - Label12.Text = "Copyright:" - Label14.Text = "Versión de producto:" - Label16.Text = "Tipo de paquete:" - Label18.Text = "Compañía:" - Label20.Text = "Tiempo de creación:" - Label22.Text = "Nombre de paquete:" - Label24.Text = "¿El paquete es aplicable?" - Label26.Text = "Copyright:" - Label28.Text = "Tiempo de instalación:" - Label30.Text = "Último tiempo de actualización:" - Label31.Text = "Compañía:" - Label33.Text = "Nombre del paquete de instalación:" - Label36.Text = "Información de paquete" - Label37.Text = "Seleccione un paquete instalado para ver su información aquí" - Label39.Text = "Nombre a mostrar:" - Label41.Text = "Tiempo de creación:" - Label43.Text = "Descripción:" - Label45.Text = "Nombre de producto:" - Label47.Text = "Cliente de instalación:" - Label48.Text = "¿Se requiere un reinicio?" - Label50.Text = "Información de soporte:" - Label52.Text = "Estado:" - Label54.Text = "¿Se requiere un arranque para una instalación completa?" - Label58.Text = "Propiedades personalizadas:" - Label60.Text = "Características:" - Label61.Text = "Identidad de funcionalidad:" - Label63.Text = "Descripción:" - Label65.Text = "Cliente de instalación:" - Label67.Text = "Nombre del paquete de instalación:" - Label69.Text = "Tiempo de instalación:" - Label71.Text = "Último tiempo de actualización:" - Label73.Text = "Nombre a mostrar:" - Label75.Text = "Nombre de producto:" - Label77.Text = "Versión de producto:" - Label79.Text = "Tipo de paquete:" - Label81.Text = "¿Se requiere un reinicio?" - Label83.Text = "Información de soporte:" - Label85.Text = "Estado:" - Label87.Text = "¿Se requiere un arranque para una instalación completa?" - Label89.Text = "Identidad de funcionalidad:" - Label91.Text = "Propiedades personalizadas:" - Label93.Text = "Características:" - LinkLabel1.Text = "<- Atrás" - Button1.Text = "Añadir paquete..." - Button2.Text = "Eliminar selección" - Button3.Text = "Eliminar todo" - Button4.Text = "Guardar..." - InstalledPackageLink.Text = "Deseo obtener información acerca de paquetes instalados en la imagen" - PackageFileLink.Text = "Deseo obtener información acerca de archivos de paquetes" - OpenFileDialog1.Title = "Ubique los archivos de paquetes" - SearchBox1.cueBanner = "Escriba aquí para buscar un paquete..." - Case "FRA" - Text = "Obtenir des informations sur les paquets" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Sur quoi souhaitez-vous obtenir des informations ?" - Label3.Text = "Cliquez ici pour obtenir des informations sur les paquets que vous avez installés ou qui sont fournis avec l'image Windows dont vous assurez la maintenance." - Label4.Text = "Cliquez ici pour obtenir des informations sur les paquets que vous souhaitez ajouter à l'image Windows que vous maintenez avant de procéder à l'ajout de paquets." - Label5.Text = "Prêt" - Label6.Text = "Ajoutez ou sélectionnez un fichier de paquet pour afficher son information ici" - Label7.Text = "Information sur le paquet" - Label8.Text = "Nom du paquet :" - Label10.Text = "Le paquet est-il applicable ?" - Label12.Text = "Copyright :" - Label14.Text = "Version du produit :" - Label16.Text = "Type de publication :" - Label18.Text = "Enterprise :" - Label20.Text = "Temps de création :" - Label22.Text = "Nom du paquet :" - Label24.Text = "Le paquet est-il applicable ?" - Label26.Text = "Copyright :" - Label28.Text = "Temps d'installation :" - Label30.Text = "Dernière heure de mise à jour :" - Label31.Text = "Enterprise :" - Label33.Text = "Nom du paquet d'installation :" - Label36.Text = "Information sur le paquet" - Label37.Text = "Sélectionnez un paquet installé pour afficher son information ici" - Label39.Text = "Nom d'affichage:" - Label41.Text = "Temps de création :" - Label43.Text = "Description :" - Label45.Text = "Nom du produit :" - Label47.Text = "Client d'installation :" - Label48.Text = "Un redémarrage est-il nécessaire ?" - Label50.Text = "Information de support :" - Label52.Text = "État :" - Label54.Text = "L'installation complète nécessite-t-elle un démarrage ?" - Label58.Text = "Propriétés personnalisées :" - Label60.Text = "Caractéristiques :" - Label61.Text = "Identité de la capacité :" - Label63.Text = "Description :" - Label65.Text = "Client d'installation :" - Label67.Text = "Nom du paquet d'installation :" - Label69.Text = "Temps d'installation :" - Label71.Text = "Dernière heure de mise à jour :" - Label73.Text = "Nom d'affichage :" - Label75.Text = "Nom du produit :" - Label77.Text = "Version du produit :" - Label79.Text = "Type de publication :" - Label81.Text = "Un redémarrage est-il nécessaire ?" - Label83.Text = "Information de support :" - Label85.Text = "État:" - Label87.Text = "L'installation complète nécessite-t-elle un démarrage ?" - Label89.Text = "Identité de la capacité :" - Label91.Text = "Propriétés personnalisées :" - Label93.Text = "Caractéristiques :" - LinkLabel1.Text = "<- Retour" - Button1.Text = "Ajouter un paquet..." - Button2.Text = "Supprimer la sélection" - Button3.Text = "Supprimer tout" - Button4.Text = "Sauvegarder..." - InstalledPackageLink.Text = "Je souhaite obtenir des informations sur les paquets installés dans l'image." - PackageFileLink.Text = "Je souhaite obtenir des informations sur les fichiers de paquets" - OpenFileDialog1.Title = "Localiser les fichiers des paquets" - SearchBox1.cueBanner = "Tapez ici pour rechercher un paquet..." - Case "PTB", "PTG" - Text = "Obter informações sobre o pacote" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Sobre o que é que pretende obter informações?" - Label3.Text = "Clique aqui para obter informações sobre os pacotes que instalou ou que vieram com a imagem do Windows que está a reparar" - Label4.Text = "Clique aqui para obter informações sobre os pacotes que pretende adicionar à imagem do Windows que está a reparar antes de prosseguir com o processo de adição de pacotes" - Label5.Text = "Pronto" - Label6.Text = "Adicione ou seleccione um ficheiro de pacote para ver as suas informações aqui" - Label7.Text = "Informações do pacote" - Label8.Text = "Nome do pacote:" - Label10.Text = "O pacote é aplicável?" - Label12.Text = "Direitos de autor:" - Label14.Text = "Versão do produto:" - Label16.Text = "Tipo de versão:" - Label18.Text = "Empresa:" - Label20.Text = "Hora de criação:" - Label22.Text = "Nome do pacote:" - Label24.Text = "O pacote é aplicável?" - Label26.Text = "Direitos de autor:" - Label28.Text = "Hora de instalação:" - Label30.Text = "Hora da última atualização:" - Label31.Text = "Empresa:" - Label33.Text = "Nome do pacote de instalação:" - Label36.Text = "Informações do pacote" - Label37.Text = "Seleccione um pacote instalado para ver as suas informações aqui" - Label39.Text = "Nome de apresentação:" - Label41.Text = "Hora de criação:" - Label43.Text = "Descrição:" - Label45.Text = "Nome do produto:" - Label47.Text = "Instalar cliente:" - Label48.Text = "É necessário reiniciar?" - Label50.Text = "Informações de suporte:" - Label52.Text = "Estado:" - Label54.Text = "É necessário um arranque para a instalação completa?" - Label58.Text = "Propriedades personalizadas:" - Label60.Text = "Características:" - Label61.Text = "Identidade da capacidade:" - Label63.Text = "Descrição:" - Label65.Text = "Instalar cliente:" - Label67.Text = "Nome do pacote de instalação:" - Label69.Text = "Hora da instalação:" - Label71.Text = "Hora da última atualização:" - Label73.Text = "Nome do ecrã:" - Label75.Text = "Nome do produto:" - Label77.Text = "Versão do produto:" - Label79.Text = "Tipo de versão:" - Label81.Text = "É necessário reiniciar o sistema?" - Label83.Text = "Informações de suporte:" - Label85.Text = "Estado:" - Label87.Text = "É necessário um arranque para uma instalação completa?" - Label89.Text = "Identidade da capacidade:" - Label91.Text = "Propriedades personalizadas:" - Label93.Text = "Características:" - LinkLabel1.Text = "<- Voltar atrás" - Button1.Text = "Adicionar pacote..." - Button2.Text = "Remover selecionado" - Button3.Text = "Remover tudo" - Button4.Text = "Guardar..." - InstalledPackageLink.Text = "Pretendo obter informações sobre os pacotes instalados na imagem" - PackageFileLink.Text = "Pretendo obter informações sobre ficheiros de pacotes" - OpenFileDialog1.Title = "Localizar ficheiros de pacotes" - SearchBox1.cueBanner = "Digitar aqui para pesquisar um pacote..." - Case "ITA" - Text = "Ottieni informazioni sui pacchetti" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Su cosa vuoi ottenere informazioni?" - Label3.Text = "Fare clic qui per ottenere informazioni sui pacchetti installati o forniti con l'immagine di Windows che si sta assistendo" - Label4.Text = "Fare clic qui per ottenere informazioni sui pacchetti che si desidera aggiungere all'immagine di Windows in assistenza prima di procedere con il processo di aggiunta dei pacchetti" - Label5.Text = "Pronto" - Label6.Text = "Aggiungere o selezionare un file di pacchetto per visualizzarne le informazioni" - Label7.Text = "Informazioni sul pacchetto" - Label8.Text = "Nome del pacchetto:" - Label10.Text = "Il pacchetto è applicabile?" - Label12.Text = "Copyright:" - Label14.Text = "Versione del prodotto:" - Label16.Text = "Tipo di rilascio:" - Label18.Text = "Azienda:" - Label20.Text = "Tempo di creazione:" - Label22.Text = "Nome del pacchetto:" - Label24.Text = "Il pacchetto è applicabile?" - Label26.Text = "Copyright:" - Label28.Text = "Tempo di installazione:" - Label30.Text = "Ora ultimo aggiornamento:" - Label31.Text = "Azienda:" - Label33.Text = "Nome del pacchetto di installazione:" - Label36.Text = "Informazioni sul pacchetto" - Label37.Text = "Selezionare un pacchetto installato per visualizzarne le informazioni" - Label39.Text = "Nome visualizzato:" - Label41.Text = "Ora di creazione:" - Label43.Text = "Descrizione:" - Label45.Text = "Nome del prodotto:" - Label47.Text = "Client di installazione:" - Label48.Text = "È necessario un riavvio?" - Label50.Text = "Informazioni di supporto:" - Label52.Text = "Stato:" - Label54.Text = "È richiesto un avvio per l'installazione completa?" - Label58.Text = "Proprietà personalizzate:" - Label60.Text = "Caratteristiche:" - Label61.Text = "Identità della capacità:" - Label63.Text = "Descrizione:" - Label65.Text = "Installa client:" - Label67.Text = "Nome pacchetto di installazione:" - Label69.Text = "Tempo di installazione:" - Label71.Text = "Ora ultimo aggiornamento:" - Label73.Text = "Nome del display:" - Label75.Text = "Nome prodotto:" - Label77.Text = "Versione del prodotto:" - Label79.Text = "Tipo di rilascio:" - Label81.Text = "È necessario un riavvio?" - Label83.Text = "Informazioni di supporto:" - Label85.Text = "Stato:" - Label87.Text = "È richiesto un avvio per l'installazione completa?" - Label89.Text = "Identità di capacità:" - Label91.Text = "Proprietà personalizzate:" - Label93.Text = "Caratteristiche:" - LinkLabel1.Text = "<- Indietro" - Button1.Text = "Aggiungi pacchetto..." - Button2.Text = "Rimuovi selezionati" - Button3.Text = "Rimuovi tutti" - Button4.Text = "Salva..." - InstalledPackageLink.Text = "Voglio ottenere informazioni sui pacchetti installati nell'immagine" - PackageFileLink.Text = "Voglio ottenere informazioni sui file dei pacchetti" - OpenFileDialog1.Title = "Individuare i file dei pacchetti" - SearchBox1.cueBanner = "Digitare qui per cercare un pacchetto..." - End Select - Case 1 - Text = "Get package information" - ImageTaskHeader1.ItemText = Text - Label2.Text = "What do you want to get information about?" - Label3.Text = "Click here to get information about packages that you've installed or that came with the Windows image you're servicing" - Label4.Text = "Click here to get information about packages that you want to add to the Windows image you're servicing before proceeding with the package addition process" - Label5.Text = "Ready" - Label6.Text = "Add or select a package file to view its information here" - Label7.Text = "Package information" - Label8.Text = "Package name:" - Label10.Text = "Is package applicable?" - Label12.Text = "Copyright:" - Label14.Text = "Product version:" - Label16.Text = "Release type:" - Label18.Text = "Company:" - Label20.Text = "Creation time:" - Label22.Text = "Package name:" - Label24.Text = "Is package applicable?" - Label26.Text = "Copyright:" - Label28.Text = "Install time:" - Label30.Text = "Last update time:" - Label31.Text = "Company:" - Label33.Text = "Install package name:" - Label36.Text = "Package information" - Label37.Text = "Select an installed package to view its information here" - Label39.Text = "Display name:" - Label41.Text = "Creation time:" - Label43.Text = "Description:" - Label45.Text = "Product name:" - Label47.Text = "Install client:" - Label48.Text = "Is a restart required?" - Label50.Text = "Support information:" - Label52.Text = "State:" - Label54.Text = "Is a boot up required for full installation?" - Label58.Text = "Custom properties:" - Label60.Text = "Features:" - Label61.Text = "Capability identity:" - Label63.Text = "Description:" - Label65.Text = "Install client:" - Label67.Text = "Install package name:" - Label69.Text = "Install time:" - Label71.Text = "Last update time:" - Label73.Text = "Display name:" - Label75.Text = "Product name:" - Label77.Text = "Product version:" - Label79.Text = "Release type:" - Label81.Text = "Is a restart required?" - Label83.Text = "Support information:" - Label85.Text = "State:" - Label87.Text = "Is a boot up required for full installation?" - Label89.Text = "Capability identity:" - Label91.Text = "Custom properties:" - Label93.Text = "Features:" - LinkLabel1.Text = "<- Go back" - Button1.Text = "Add package..." - Button2.Text = "Remove selected" - Button3.Text = "Remove all" - Button4.Text = "Save..." - InstalledPackageLink.Text = "I want to get information about installed packages in the image" - PackageFileLink.Text = "I want to get information about package files" - OpenFileDialog1.Title = "Locate package files" - SearchBox1.cueBanner = "Type here to search for a package..." - Case 2 - Text = "Obtener información de paquetes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "¿Acerca de qué le gustaría obtener información?" - Label3.Text = "Haga clic aquí para obtener información de paquetes que ha instalado o que vengan con la imagen de Windows a la que está dando servicio" - Label4.Text = "Haga clic aquí para obtener información de paquetes que le gustaría añadir a la imagen de Windows a la que está dando servicio antes de proceder con el proceso de adición de paquetes" - Label5.Text = "Listo" - Label6.Text = "Añada o seleccione un archivo de paquete para ver su información aquí" - Label7.Text = "Información de paquete" - Label8.Text = "Nombre de paquete:" - Label10.Text = "¿El paquete es aplicable?" - Label12.Text = "Copyright:" - Label14.Text = "Versión de producto:" - Label16.Text = "Tipo de paquete:" - Label18.Text = "Compañía:" - Label20.Text = "Tiempo de creación:" - Label22.Text = "Nombre de paquete:" - Label24.Text = "¿El paquete es aplicable?" - Label26.Text = "Copyright:" - Label28.Text = "Tiempo de instalación:" - Label30.Text = "Último tiempo de actualización:" - Label31.Text = "Compañía:" - Label33.Text = "Nombre del paquete de instalación:" - Label36.Text = "Información de paquete" - Label37.Text = "Seleccione un paquete instalado para ver su información aquí" - Label39.Text = "Nombre a mostrar:" - Label41.Text = "Tiempo de creación:" - Label43.Text = "Descripción:" - Label45.Text = "Nombre de producto:" - Label47.Text = "Cliente de instalación:" - Label48.Text = "¿Se requiere un reinicio?" - Label50.Text = "Información de soporte:" - Label52.Text = "Estado:" - Label54.Text = "¿Se requiere un arranque para una instalación completa?" - Label58.Text = "Propiedades personalizadas:" - Label60.Text = "Características:" - Label61.Text = "Identidad de funcionalidad:" - Label63.Text = "Descripción:" - Label65.Text = "Cliente de instalación:" - Label67.Text = "Nombre del paquete de instalación:" - Label69.Text = "Tiempo de instalación:" - Label71.Text = "Último tiempo de actualización:" - Label73.Text = "Nombre a mostrar:" - Label75.Text = "Nombre de producto:" - Label77.Text = "Versión de producto:" - Label79.Text = "Tipo de paquete:" - Label81.Text = "¿Se requiere un reinicio?" - Label83.Text = "Información de soporte:" - Label85.Text = "Estado:" - Label87.Text = "¿Se requiere un arranque para una instalación completa?" - Label89.Text = "Identidad de funcionalidad:" - Label91.Text = "Propiedades personalizadas:" - Label93.Text = "Características:" - LinkLabel1.Text = "<- Atrás" - Button1.Text = "Añadir paquete..." - Button2.Text = "Eliminar selección" - Button3.Text = "Eliminar todo" - Button4.Text = "Guardar..." - InstalledPackageLink.Text = "Deseo obtener información acerca de paquetes instalados en la imagen" - PackageFileLink.Text = "Deseo obtener información acerca de archivos de paquetes" - OpenFileDialog1.Title = "Ubique los archivos de paquetes" - SearchBox1.cueBanner = "Escriba aquí para buscar un paquete..." - Case 3 - Text = "Obtenir des informations sur les paquets" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Sur quoi souhaitez-vous obtenir des informations ?" - Label3.Text = "Cliquez ici pour obtenir des informations sur les paquets que vous avez installés ou qui sont fournis avec l'image Windows dont vous assurez la maintenance." - Label4.Text = "Cliquez ici pour obtenir des informations sur les paquets que vous souhaitez ajouter à l'image Windows que vous maintenez avant de procéder à l'ajout de paquets." - Label5.Text = "Prêt" - Label6.Text = "Ajoutez ou sélectionnez un fichier de paquet pour afficher son information ici" - Label7.Text = "Information sur le paquet" - Label8.Text = "Nom du paquet :" - Label10.Text = "Le paquet est-il applicable ?" - Label12.Text = "Copyright :" - Label14.Text = "Version du produit :" - Label16.Text = "Type de publication :" - Label18.Text = "Enterprise :" - Label20.Text = "Temps de création :" - Label22.Text = "Nom du paquet :" - Label24.Text = "Le paquet est-il applicable ?" - Label26.Text = "Copyright :" - Label28.Text = "Temps d'installation :" - Label30.Text = "Dernière heure de mise à jour :" - Label31.Text = "Enterprise :" - Label33.Text = "Nom du paquet d'installation :" - Label36.Text = "Information sur le paquet" - Label37.Text = "Sélectionnez un paquet installé pour afficher son information ici" - Label39.Text = "Nom d'affichage:" - Label41.Text = "Temps de création :" - Label43.Text = "Description :" - Label45.Text = "Nom du produit :" - Label47.Text = "Client d'installation :" - Label48.Text = "Un redémarrage est-il nécessaire ?" - Label50.Text = "Information de support :" - Label52.Text = "État :" - Label54.Text = "L'installation complète nécessite-t-elle un démarrage ?" - Label58.Text = "Propriétés personnalisées :" - Label60.Text = "Caractéristiques :" - Label61.Text = "Identité de la capacité :" - Label63.Text = "Description :" - Label65.Text = "Client d'installation :" - Label67.Text = "Nom du paquet d'installation :" - Label69.Text = "Temps d'installation :" - Label71.Text = "Dernière heure de mise à jour :" - Label73.Text = "Nom d'affichage :" - Label75.Text = "Nom du produit :" - Label77.Text = "Version du produit :" - Label79.Text = "Type de publication :" - Label81.Text = "Un redémarrage est-il nécessaire ?" - Label83.Text = "Information de support :" - Label85.Text = "État:" - Label87.Text = "L'installation complète nécessite-t-elle un démarrage ?" - Label89.Text = "Identité de la capacité :" - Label91.Text = "Propriétés personnalisées :" - Label93.Text = "Caractéristiques :" - LinkLabel1.Text = "<- Retour" - Button1.Text = "Ajouter un paquet..." - Button2.Text = "Supprimer la sélection" - Button3.Text = "Supprimer tout" - Button4.Text = "Sauvegarder..." - InstalledPackageLink.Text = "Je souhaite obtenir des informations sur les paquets installés dans l'image." - PackageFileLink.Text = "Je souhaite obtenir des informations sur les fichiers de paquets" - OpenFileDialog1.Title = "Localiser les fichiers des paquets" - SearchBox1.cueBanner = "Tapez ici pour rechercher un paquet..." - Case 4 - Text = "Obter informações sobre o pacote" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Sobre o que é que pretende obter informações?" - Label3.Text = "Clique aqui para obter informações sobre os pacotes que instalou ou que vieram com a imagem do Windows que está a reparar" - Label4.Text = "Clique aqui para obter informações sobre os pacotes que pretende adicionar à imagem do Windows que está a reparar antes de prosseguir com o processo de adição de pacotes" - Label5.Text = "Pronto" - Label6.Text = "Adicione ou seleccione um ficheiro de pacote para ver as suas informações aqui" - Label7.Text = "Informações do pacote" - Label8.Text = "Nome do pacote:" - Label10.Text = "O pacote é aplicável?" - Label12.Text = "Direitos de autor:" - Label14.Text = "Versão do produto:" - Label16.Text = "Tipo de versão:" - Label18.Text = "Empresa:" - Label20.Text = "Hora de criação:" - Label22.Text = "Nome do pacote:" - Label24.Text = "O pacote é aplicável?" - Label26.Text = "Direitos de autor:" - Label28.Text = "Hora de instalação:" - Label30.Text = "Hora da última atualização:" - Label31.Text = "Empresa:" - Label33.Text = "Nome do pacote de instalação:" - Label36.Text = "Informações do pacote" - Label37.Text = "Seleccione um pacote instalado para ver as suas informações aqui" - Label39.Text = "Nome de apresentação:" - Label41.Text = "Hora de criação:" - Label43.Text = "Descrição:" - Label45.Text = "Nome do produto:" - Label47.Text = "Instalar cliente:" - Label48.Text = "É necessário reiniciar?" - Label50.Text = "Informações de suporte:" - Label52.Text = "Estado:" - Label54.Text = "É necessário um arranque para a instalação completa?" - Label58.Text = "Propriedades personalizadas:" - Label60.Text = "Características:" - Label61.Text = "Identidade da capacidade:" - Label63.Text = "Descrição:" - Label65.Text = "Instalar cliente:" - Label67.Text = "Nome do pacote de instalação:" - Label69.Text = "Hora da instalação:" - Label71.Text = "Hora da última atualização:" - Label73.Text = "Nome do ecrã:" - Label75.Text = "Nome do produto:" - Label77.Text = "Versão do produto:" - Label79.Text = "Tipo de versão:" - Label81.Text = "É necessário reiniciar o sistema?" - Label83.Text = "Informações de suporte:" - Label85.Text = "Estado:" - Label87.Text = "É necessário um arranque para uma instalação completa?" - Label89.Text = "Identidade da capacidade:" - Label91.Text = "Propriedades personalizadas:" - Label93.Text = "Características:" - LinkLabel1.Text = "<- Voltar atrás" - Button1.Text = "Adicionar pacote..." - Button2.Text = "Remover selecionado" - Button3.Text = "Remover tudo" - Button4.Text = "Guardar..." - InstalledPackageLink.Text = "Pretendo obter informações sobre os pacotes instalados na imagem" - PackageFileLink.Text = "Pretendo obter informações sobre ficheiros de pacotes" - OpenFileDialog1.Title = "Localizar ficheiros de pacotes" - SearchBox1.cueBanner = "Digitar aqui para pesquisar um pacote..." - Case 5 - Text = "Ottieni informazioni sui pacchetti" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Su cosa vuoi ottenere informazioni?" - Label3.Text = "Fare clic qui per ottenere informazioni sui pacchetti installati o forniti con l'immagine di Windows che si sta assistendo" - Label4.Text = "Fare clic qui per ottenere informazioni sui pacchetti che si desidera aggiungere all'immagine di Windows in assistenza prima di procedere con il processo di aggiunta dei pacchetti" - Label5.Text = "Pronto" - Label6.Text = "Aggiungere o selezionare un file di pacchetto per visualizzarne le informazioni" - Label7.Text = "Informazioni sul pacchetto" - Label8.Text = "Nome del pacchetto:" - Label10.Text = "Il pacchetto è applicabile?" - Label12.Text = "Copyright:" - Label14.Text = "Versione del prodotto:" - Label16.Text = "Tipo di rilascio:" - Label18.Text = "Azienda:" - Label20.Text = "Tempo di creazione:" - Label22.Text = "Nome del pacchetto:" - Label24.Text = "Il pacchetto è applicabile?" - Label26.Text = "Copyright:" - Label28.Text = "Tempo di installazione:" - Label30.Text = "Ora ultimo aggiornamento:" - Label31.Text = "Azienda:" - Label33.Text = "Nome del pacchetto di installazione:" - Label36.Text = "Informazioni sul pacchetto" - Label37.Text = "Selezionare un pacchetto installato per visualizzarne le informazioni" - Label39.Text = "Nome visualizzato:" - Label41.Text = "Ora di creazione:" - Label43.Text = "Descrizione:" - Label45.Text = "Nome del prodotto:" - Label47.Text = "Client di installazione:" - Label48.Text = "È necessario un riavvio?" - Label50.Text = "Informazioni di supporto:" - Label52.Text = "Stato:" - Label54.Text = "È richiesto un avvio per l'installazione completa?" - Label58.Text = "Proprietà personalizzate:" - Label60.Text = "Caratteristiche:" - Label61.Text = "Identità della capacità:" - Label63.Text = "Descrizione:" - Label65.Text = "Installa client:" - Label67.Text = "Nome pacchetto di installazione:" - Label69.Text = "Tempo di installazione:" - Label71.Text = "Ora ultimo aggiornamento:" - Label73.Text = "Nome del display:" - Label75.Text = "Nome prodotto:" - Label77.Text = "Versione del prodotto:" - Label79.Text = "Tipo di rilascio:" - Label81.Text = "È necessario un riavvio?" - Label83.Text = "Informazioni di supporto:" - Label85.Text = "Stato:" - Label87.Text = "È richiesto un avvio per l'installazione completa?" - Label89.Text = "Identità di capacità:" - Label91.Text = "Proprietà personalizzate:" - Label93.Text = "Caratteristiche:" - LinkLabel1.Text = "<- Indietro" - Button1.Text = "Aggiungi pacchetto..." - Button2.Text = "Rimuovi selezionati" - Button3.Text = "Rimuovi tutti" - Button4.Text = "Salva..." - InstalledPackageLink.Text = "Voglio ottenere informazioni sui pacchetti installati nell'immagine" - PackageFileLink.Text = "Voglio ottenere informazioni sui file dei pacchetti" - OpenFileDialog1.Title = "Individuare i file dei pacchetti" - SearchBox1.cueBanner = "Digitare qui per cercare un pacchetto..." - End Select + Text = LocalizationService.ForSection("GetPkgInfo")("Package.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("GetPkgInfo").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("GetPkgInfo")("Get.Label") + Label3.Text = LocalizationService.ForSection("GetPkgInfo")("Get.Packages.Message") + Label4.Text = LocalizationService.ForSection("GetPkgInfo")("AddPackages.Help.Message") + Label5.Text = LocalizationService.ForSection("GetPkgInfo")("Ready.Label") + Label6.Text = LocalizationService.ForSection("GetPkgInfo")("Add.Package.File.Label") + Label7.Text = LocalizationService.ForSection("GetPkgInfo")("PackageInfo.Label") + Label8.Text = LocalizationService.ForSection("GetPkgInfo")("PackageName.Label") + Label10.Text = LocalizationService.ForSection("GetPkgInfo")("Package.Applicable.Label") + Label12.Text = LocalizationService.ForSection("GetPkgInfo")("Copyright.Label") + Label14.Text = LocalizationService.ForSection("GetPkgInfo")("ProductVersion.Label") + Label16.Text = LocalizationService.ForSection("GetPkgInfo")("ReleaseType.Label") + Label18.Text = LocalizationService.ForSection("GetPkgInfo")("Company.Label") + Label20.Text = LocalizationService.ForSection("GetPkgInfo")("CreationTime.Label") + Label22.Text = LocalizationService.ForSection("GetPkgInfo")("PackageName.Label") + Label24.Text = LocalizationService.ForSection("GetPkgInfo")("Package.Applicable.Label") + Label26.Text = LocalizationService.ForSection("GetPkgInfo")("Copyright.Label") + Label28.Text = LocalizationService.ForSection("GetPkgInfo")("InstallTime.Label") + Label30.Text = LocalizationService.ForSection("GetPkgInfo")("Last.Update.Time.Label") + Label31.Text = LocalizationService.ForSection("GetPkgInfo")("Company.Label") + Label33.Text = LocalizationService.ForSection("GetPkgInfo")("Install.Package.Name.Label") + Label36.Text = LocalizationService.ForSection("GetPkgInfo")("PackageInfo.Label") + Label37.Text = LocalizationService.ForSection("GetPkgInfo")("Installed.Package.View.Label") + Label39.Text = LocalizationService.ForSection("GetPkgInfo")("DisplayName.Label") + Label41.Text = LocalizationService.ForSection("GetPkgInfo")("CreationTime.Label") + Label43.Text = LocalizationService.ForSection("GetPkgInfo")("Description.Label") + Label45.Text = LocalizationService.ForSection("GetPkgInfo")("ProductName.Label") + Label47.Text = LocalizationService.ForSection("GetPkgInfo")("InstallClient.Label") + Label48.Text = LocalizationService.ForSection("GetPkgInfo")("RestartRequired.Label") + Label50.Text = LocalizationService.ForSection("GetPkgInfo")("SupportInfo.Label") + Label52.Text = LocalizationService.ForSection("GetPkgInfo")("State.Label") + Label54.Text = LocalizationService.ForSection("GetPkgInfo")("Boot.Up.Required.Label") + Label58.Text = LocalizationService.ForSection("GetPkgInfo")("CustomProps.Label") + Label60.Text = LocalizationService.ForSection("GetPkgInfo")("Features.Label") + Label61.Text = LocalizationService.ForSection("GetPkgInfo")("Capability.Identity.Label") + Label63.Text = LocalizationService.ForSection("GetPkgInfo")("Description.Label") + Label65.Text = LocalizationService.ForSection("GetPkgInfo")("InstallClient.Label") + Label67.Text = LocalizationService.ForSection("GetPkgInfo")("Install.Package.Name.Label") + Label69.Text = LocalizationService.ForSection("GetPkgInfo")("InstallTime.Label") + Label71.Text = LocalizationService.ForSection("GetPkgInfo")("Last.Update.Time.Label") + Label73.Text = LocalizationService.ForSection("GetPkgInfo")("DisplayName.Label") + Label75.Text = LocalizationService.ForSection("GetPkgInfo")("ProductName.Label") + Label77.Text = LocalizationService.ForSection("GetPkgInfo")("ProductVersion.Label") + Label79.Text = LocalizationService.ForSection("GetPkgInfo")("ReleaseType.Label") + Label81.Text = LocalizationService.ForSection("GetPkgInfo")("RestartRequired.Label") + Label83.Text = LocalizationService.ForSection("GetPkgInfo")("SupportInfo.Label") + Label85.Text = LocalizationService.ForSection("GetPkgInfo")("State.Label") + Label87.Text = LocalizationService.ForSection("GetPkgInfo")("Boot.Up.Required.Label") + Label89.Text = LocalizationService.ForSection("GetPkgInfo")("Capability.Identity.Label") + Label91.Text = LocalizationService.ForSection("GetPkgInfo")("CustomProps.Label") + Label93.Text = LocalizationService.ForSection("GetPkgInfo")("Features.Label") + LinkLabel1.Text = LocalizationService.ForSection("GetPkgInfo")("GoBack.Link") + Button1.Text = LocalizationService.ForSection("GetPkgInfo")("AddPackage.Button") + Button2.Text = LocalizationService.ForSection("GetPkgInfo")("RemoveSelected.Button") + Button3.Text = LocalizationService.ForSection("GetPkgInfo")("RemoveAll.Button") + Button4.Text = LocalizationService.ForSection("GetPkgInfo")("Save.Button") + InstalledPackageLink.Text = LocalizationService.ForSection("GetPkgInfo")("Iwant.Link") + PackageFileLink.Text = LocalizationService.ForSection("GetPkgInfo")("PackageFile.Link") + OpenFileDialog1.Title = LocalizationService.ForSection("GetPkgInfo")("Locate.Package.Files.Title") + SearchBox1.cueBanner = LocalizationService.ForSection("GetPkgInfo")("Type.Search.Package.Label") ListBox1.ForeColor = ForeColor ListBox2.ForeColor = ForeColor If SplitContainer1.SplitterDistance = 440 Then @@ -710,57 +146,9 @@ Public Class GetPkgInfoDlg If MainForm.ImgBW.IsBusy Then DynaLog.LogMessage("Background processes are busy. Stopping them...") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes need to have completed before showing package information. We'll wait until they have completed" - Case "ESN" - msg = "Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado" - Case "FRA" - msg = "Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés" - Case "PTB", "PTG" - msg = "Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos" - Case "ITA" - msg = "I processi in secondo piano devono essere completati prima di mostrare le informazioni sul pacchetto. Aspetteremo che siano completati" - End Select - Case 1 - msg = "Background processes need to have completed before showing package information. We'll wait until they have completed" - Case 2 - msg = "Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado" - Case 3 - msg = "Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés" - Case 4 - msg = "Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos" - Case 5 - msg = "I processi in secondo piano devono essere completati prima di mostrare le informazioni sul pacchetto. Aspetteremo che siano completati" - End Select + msg = LocalizationService.ForSection("GetPkgInfo.PackageList")("Wait.Background.Message") MsgBox(msg, vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Waiting for background processes to finish..." - Case "ESN" - Label5.Text = "Esperando a que terminen los procesos en segundo plano..." - Case "FRA" - Label5.Text = "Attente de la fin des processus en arrière plan..." - Case "PTB", "PTG" - Label5.Text = "À espera que os processos em segundo plano terminem..." - Case "ITA" - Label5.Text = "In attesa che i processi in secondo piano finiscano..." - End Select - Case 1 - Label5.Text = "Waiting for background processes to finish..." - Case 2 - Label5.Text = "Esperando a que terminen los procesos en segundo plano..." - Case 3 - Label5.Text = "Attente de la fin des processus en arrière plan..." - Case 4 - Label5.Text = "À espera que os processos em segundo plano terminem..." - Case 5 - Label5.Text = "In attesa che i processi in secondo piano finiscano..." - End Select + Label5.Text = LocalizationService.ForSection("GetPkgInfo.PackageList")("Waiting.Background.Label") While MainForm.ImgBW.IsBusy Application.DoEvents() Thread.Sleep(500) @@ -770,31 +158,7 @@ Public Class GetPkgInfoDlg cPropPathView.Nodes.Clear() cPropName.Text = "" cPropValue.Text = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Preparing to get package information..." - Case "ESN" - Label5.Text = "Preparándonos para obtener información del paquete..." - Case "FRA" - Label5.Text = "Préparation de l'obtention des informations du paquet en cours..." - Case "PTB", "PTG" - Label5.Text = "Preparar-se para obter informações sobre o pacote..." - Case "ITA" - Label5.Text = "Preparazione per ottenere le informazioni sul pacchetto..." - End Select - Case 1 - Label5.Text = "Preparing to get package information..." - Case 2 - Label5.Text = "Preparándonos para obtener información del paquete..." - Case 3 - Label5.Text = "Préparation de l'obtention des informations du paquet en cours..." - Case 4 - Label5.Text = "Preparar-se para obter informações sobre o pacote..." - Case 5 - Label5.Text = "Preparazione per ottenere le informazioni sul pacchetto..." - End Select + Label5.Text = LocalizationService.ForSection("GetPkgInfo.PackageList")("Preparing.Package.Item") Application.DoEvents() Try DynaLog.LogMessage("Initializing API...") @@ -802,31 +166,7 @@ Public Class GetPkgInfoDlg DynaLog.LogMessage("Creating session...") Using imgSession As DismSession = If(MainForm.OnlineManagement, DismApi.OpenOnlineSession(), DismApi.OpenOfflineSession(MainForm.MountDir)) DynaLog.LogMessage("Package to get information about: " & Quote & ListBox2.SelectedItem & Quote) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Getting information from " & Quote & ListBox2.SelectedItem & Quote & "..." - Case "ESN" - Label5.Text = "Obteniendo información de " & Quote & ListBox2.SelectedItem & Quote & "..." - Case "FRA" - Label5.Text = "Obtention des informations de " & Quote & ListBox2.SelectedItem & Quote & " en cours..." - Case "PTB", "PTG" - Label5.Text = "Obter informações de " & Quote & ListBox2.SelectedItem & Quote & "..." - Case "ITA" - Label5.Text = "Ottenere informazioni da " & Quote & ListBox2.SelectedItem & Quote & "..." - End Select - Case 1 - Label5.Text = "Getting information from " & Quote & ListBox2.SelectedItem & Quote & "..." - Case 2 - Label5.Text = "Obteniendo información de " & Quote & ListBox2.SelectedItem & Quote & "..." - Case 3 - Label5.Text = "Obtention des informations de " & Quote & ListBox2.SelectedItem & Quote & " en cours..." - Case 4 - Label5.Text = "Obter informações de " & Quote & ListBox2.SelectedItem & Quote & "..." - Case 5 - Label5.Text = "Ottenere informazioni da " & Quote & ListBox2.SelectedItem & Quote & "..." - End Select + Label5.Text = LocalizationService.ForSection("GetPkgInfo.PackageList").Format("GettingInfo.Item", ListBox2.SelectedItem) Dim PkgInfoEx As DismPackageInfoEx = Nothing Dim PkgInfo As DismPackageInfo = Nothing ' On Windows 10 and later, use the extended version, as DISM gets extended package information. @@ -840,7 +180,7 @@ Public Class GetPkgInfoDlg PkgInfo = DismApi.GetPackageInfoByName(imgSession, ListBox2.SelectedItem) End If Label23.Text = If(OSVer.Major >= 10, PkgInfoEx.PackageName, PkgInfo.PackageName) - Label25.Text = Casters.CastDismApplicabilityStatus(If(OSVer.Major >= 10, PkgInfoEx.Applicable, PkgInfo.Applicable), True) + Label25.Text = Casters.Applicability(If(OSVer.Major >= 10, PkgInfoEx.Applicable, PkgInfo.Applicable), True) Label35.Text = If(OSVer.Major >= 10, PkgInfoEx.Copyright, PkgInfo.Copyright) Label32.Text = If(OSVer.Major >= 10, PkgInfoEx.Company, PkgInfo.Company) Label40.Text = If(OSVer.Major >= 10, PkgInfoEx.CreationTime, PkgInfo.CreationTime) @@ -870,7 +210,7 @@ Public Class GetPkgInfoDlg Label13.Text = Casters.CastDismRestartType(If(OSVer.Major >= 10, PkgInfoEx.RestartRequired, PkgInfo.RestartRequired), True) Label49.Text = If(OSVer.Major >= 10, PkgInfoEx.SupportInformation, PkgInfo.SupportInformation) Label51.Text = Casters.CastDismPackageState(If(OSVer.Major >= 10, PkgInfoEx.PackageState, PkgInfo.PackageState), True) - Label53.Text = Casters.CastDismFullyOfflineInstallationType(If(OSVer.Major >= 10, PkgInfoEx.FullyOffline, PkgInfo.FullyOffline), True) + Label53.Text = Casters.OfflineInstallType(If(OSVer.Major >= 10, PkgInfoEx.FullyOffline, PkgInfo.FullyOffline), True) If OSVer.Major >= 10 Then Label56.Text = PkgInfoEx.CapabilityId Else Label56.Text = "" Label57.Text = "" Dim cProps As DismCustomPropertyCollection = If(OSVer.Major >= 10, PkgInfoEx.CustomProperties, PkgInfo.CustomProperties) @@ -884,58 +224,10 @@ Public Class GetPkgInfoDlg cPropContents &= "- " & If(cProp.Path <> "", cProp.Path & "\", "") & cProp.Name & ": " & cProp.Value & CrLf Next PopulateTreeView(cPropPathView, cPropContents.Replace("- ", "").Trim()) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - cPropValue.Text = "Please select or expand an entry." - Case "ESN" - cPropValue.Text = "Por favor, seleccione o expanda una entrada." - Case "FRA" - cPropValue.Text = "Veuillez sélectionner ou étendre une entrée." - Case "PTB", "PTG" - cPropValue.Text = "Por favor, seleccione ou expanda uma entrada." - Case "ITA" - cPropValue.Text = "Selezionare o espandere un elemento." - End Select - Case 1 - cPropValue.Text = "Please select or expand an entry." - Case 2 - cPropValue.Text = "Por favor, seleccione o expanda una entrada." - Case 3 - cPropValue.Text = "Veuillez sélectionner ou étendre une entrée." - Case 4 - cPropValue.Text = "Por favor, seleccione ou expanda uma entrada." - Case 5 - cPropValue.Text = "Selezionare o espandere un elemento." - End Select + cPropValue.Text = LocalizationService.ForSection("GetPkgInfo.PackageList")("Expand.Entry.Label") Else DynaLog.LogMessage("This package does not have custom properties.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label57.Text = "None" - Case "ESN" - Label57.Text = "Ninguna" - Case "FRA" - Label57.Text = "Aucune" - Case "PTB", "PTG" - Label57.Text = "Nenhum" - Case "ITA" - Label57.Text = "Nessuno" - End Select - Case 1 - Label57.Text = "None" - Case 2 - Label57.Text = "Ninguna" - Case 3 - Label57.Text = "Aucune" - Case 4 - Label57.Text = "Nenhum" - Case 5 - Label57.Text = "Nessuno" - End Select + Label57.Text = LocalizationService.ForSection("GetPkgInfo.PackageList")("None.Label") Label57.Visible = True CPropViewer.Visible = False End If @@ -950,60 +242,12 @@ Public Class GetPkgInfoDlg Next Else DynaLog.LogMessage("This package does not have features.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label59.Text = "None" - Case "ESN" - Label59.Text = "Ninguna" - Case "FRA" - Label59.Text = "Aucune" - Case "PTB", "PTG" - Label59.Text = "Nenhum" - Case "ITA" - Label59.Text = "Nessuno" - End Select - Case 1 - Label59.Text = "None" - Case 2 - Label59.Text = "Ninguna" - Case 3 - Label59.Text = "Aucune" - Case 4 - Label59.Text = "Nenhum" - Case 5 - Label59.Text = "Nessuno" - End Select + Label59.Text = LocalizationService.ForSection("GetPkgInfo.PackageList")("None.Label") End If End Using Panel4.Visible = True Panel7.Visible = False - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Ready" - Case "ESN" - Label5.Text = "Listo" - Case "FRA" - Label5.Text = "Prêt" - Case "PTB", "PTG" - Label5.Text = "Pronto" - Case "ITA" - Label5.Text = "Pronto" - End Select - Case 1 - Label5.Text = "Ready" - Case 2 - Label5.Text = "Listo" - Case 3 - Label5.Text = "Prêt" - Case 4 - Label5.Text = "Pronto" - Case 5 - Label5.Text = "Pronto" - End Select + Label5.Text = LocalizationService.ForSection("GetPkgInfo.PackageList")("Ready.Item") Finally Try DismApi.Shutdown() @@ -1069,31 +313,7 @@ Public Class GetPkgInfoDlg DynaLog.LogMessage("Value of selected custom property: " & selectedNode.Tag.ToString()) cPropValue.Text = selectedNode.Tag.ToString() Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - cPropValue.Text = "No value has been defined. If the selected item has subitems, expand it." - Case "ESN" - cPropValue.Text = "No se ha definido un valor. Si el elemento seleccionado tiene elementos secundarios, expándalo." - Case "FRA" - cPropValue.Text = "Aucune valeur n'a été définie. Si l'élément sélectionné a des sous-éléments, développez-le." - Case "PTB", "PTG" - cPropValue.Text = "Nenhum valor foi definido. Se o item selecionado tiver subitens, expanda-o." - Case "ITA" - cPropValue.Text = "Non è stato definito alcun valore. Se l'elemento selezionato ha delle sottovoci, espandetelo." - End Select - Case 1 - cPropValue.Text = "No value has been defined. If the selected item has subitems, expand it." - Case 2 - cPropValue.Text = "No se ha definido un valor. Si el elemento seleccionado tiene elementos secundarios, expándalo." - Case 3 - cPropValue.Text = "Aucune valeur n'a été définie. Si l'élément sélectionné a des sous-éléments, développez-le." - Case 4 - cPropValue.Text = "Nenhum valor foi definido. Se o item selecionado tiver subitens, expanda-o." - Case 5 - cPropValue.Text = "Non è stato definito alcun valore. Se l'elemento selezionato ha delle sottovoci, espandetelo." - End Select + cPropValue.Text = LocalizationService.ForSection("GetPkgInfo.PropertyPath")("SelectedValue.Message") End If End Sub @@ -1108,88 +328,16 @@ Public Class GetPkgInfoDlg If MainForm.ImgBW.IsBusy Then DynaLog.LogMessage("Background processes are busy. Stopping them...") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Background processes need to have completed before showing package information. We'll wait until they have completed" - Case "ESN" - msg = "Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado" - Case "FRA" - msg = "Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés" - Case "PTB", "PTG" - msg = "Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos" - Case "ITA" - msg = "I processi in secondo piano devono essere completati prima di mostrare le informazioni sul pacchetto. Aspetteremo che siano completati" - End Select - Case 1 - msg = "Background processes need to have completed before showing package information. We'll wait until they have completed" - Case 2 - msg = "Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado" - Case 3 - msg = "Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés" - Case 4 - msg = "Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos" - Case 5 - msg = "I processi in secondo piano devono essere completati prima di mostrare le informazioni sul pacchetto. Aspetteremo che siano completati" - End Select + msg = LocalizationService.ForSection("PackageInfo.File")("Wait.Background.Message") MsgBox(msg, vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Waiting for background processes to finish..." - Case "ESN" - Label5.Text = "Esperando a que terminen los procesos en segundo plano..." - Case "FRA" - Label5.Text = "Attente de la fin des processus en arrière plan..." - Case "PTB", "PTG" - Label5.Text = "À espera que os processos em segundo plano terminem..." - Case "ITA" - Label5.Text = "In attesa che i processi in secondo piano finiscano..." - End Select - Case 1 - Label5.Text = "Waiting for background processes to finish..." - Case 2 - Label5.Text = "Esperando a que terminen los procesos en segundo plano..." - Case 3 - Label5.Text = "Attente de la fin des processus en arrière plan..." - Case 4 - Label5.Text = "À espera que os processos em segundo plano terminem..." - Case 5 - Label5.Text = "In attesa che i processi in secondo piano finiscano..." - End Select + Label5.Text = LocalizationService.ForSection("PackageInfo.File")("Waiting.Background.Label") While MainForm.ImgBW.IsBusy Application.DoEvents() Thread.Sleep(500) End While End If MainForm.StopMountedImageDetector() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Preparing package information processes..." - Case "ESN" - Label5.Text = "Preparando procesos de información de paquetes..." - Case "FRA" - Label5.Text = "Préparation des processus d'information des paquets en cours..." - Case "PTB", "PTG" - Label5.Text = "Preparar os processos de informação dos pacotes..." - Case "ITA" - Label5.Text = "Preparazione per ottenere le informazioni sul pacchetto..." - End Select - Case 1 - Label5.Text = "Preparing package information processes..." - Case 2 - Label5.Text = "Preparando procesos de información de paquetes..." - Case 3 - Label5.Text = "Préparation des processus d'information des paquets en cours..." - Case 4 - Label5.Text = "Preparar os processos de informação dos pacotes..." - Case 5 - Label5.Text = "Preparazione per ottenere le informazioni sul pacchetto..." - End Select + Label5.Text = LocalizationService.ForSection("PackageInfo.File")("Preparing.Item") Application.DoEvents() Try DynaLog.LogMessage("Initializing API...") @@ -1201,31 +349,7 @@ Public Class GetPkgInfoDlg DynaLog.LogMessage("Package file to get information about: " & Quote & Path.GetFileName(pkgFile) & Quote) If File.Exists(pkgFile) Then DynaLog.LogMessage("Package file exists.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Getting information from package file " & Quote & Path.GetFileName(pkgFile) & Quote & "..." & CrLf & "This may take some time and the program may temporarily freeze" - Case "ESN" - Label5.Text = "Obteniendo información del archivo de paquete " & Quote & Path.GetFileName(pkgFile) & Quote & "..." & CrLf & "Esto puede llevar algo de tiempo y el programa podría congelarse temporalmente" - Case "FRA" - Label5.Text = "Obtention des informations du fichier paquet " & Quote & Path.GetFileName(pkgFile) & Quote & " en cours..." & CrLf & "Cette opération peut prendre un certain temps et le programme peut se bloquer temporairement." - Case "PTB", "PTG" - Label5.Text = "Obter informações do ficheiro do pacote " & Quote & Path.GetFileName(pkgFile) & Quote & "..." & CrLf & "Isto pode demorar algum tempo e o programa pode congelar temporariamente" - Case "ITA" - Label5.Text = "Ottenere informazioni dal file del pacchetto " & Quote & Path.GetFileName(pkgFile) & Quote & "..." & CrLf & "Questa operazione potrebbe richiedere del tempo e il programma potrebbe bloccarsi temporaneamente" - End Select - Case 1 - Label5.Text = "Getting information from package file " & Quote & Path.GetFileName(pkgFile) & Quote & "..." & CrLf & "This may take some time and the program may temporarily freeze" - Case 2 - Label5.Text = "Obteniendo información del archivo de paquete " & Quote & Path.GetFileName(pkgFile) & Quote & "..." & CrLf & "Esto puede llevar algo de tiempo y el programa podría congelarse temporalmente" - Case 3 - Label5.Text = "Obtention des informations du fichier paquet " & Quote & Path.GetFileName(pkgFile) & Quote & " en cours..." & CrLf & "Cette opération peut prendre un certain temps et le programme peut se bloquer temporairement." - Case 4 - Label5.Text = "Obter informações do ficheiro do pacote " & Quote & Path.GetFileName(pkgFile) & Quote & "..." & CrLf & "Isto pode demorar algum tempo e o programa pode congelar temporariamente" - Case 5 - Label5.Text = "Ottenere informazioni dal file del pacchetto " & Quote & Path.GetFileName(pkgFile) & Quote & "..." & CrLf & "Questa operazione potrebbe richiedere del tempo e il programma potrebbe bloccarsi temporaneamente" - End Select + Label5.Text = LocalizationService.ForSection("PackageInfo.File").Format("Loading.Package.Message", Path.GetFileName(pkgFile)) Application.DoEvents() Dim pkgInfoEx As DismPackageInfoEx = Nothing Dim pkgInfo As DismPackageInfo = Nothing @@ -1247,7 +371,7 @@ Public Class GetPkgInfoDlg End Using Catch DISMEx As DismException DynaLog.LogMessage("Could not get package file information. Error message: " & DISMEx.Message) - MsgBox(DISMEx.Message & " (HRESULT " & Hex(DISMEx.HResult) & ")", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(DISMEx.Message & String.Format(LocalizationService.ForSection("GetPkgInfo.Messages")("Hresult.Label"), Hex(DISMEx.HResult)), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally Try DismApi.Shutdown() @@ -1259,31 +383,7 @@ Public Class GetPkgInfoDlg ' Cancel it End Try DynaLog.LogMessage("This process has finished.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Ready" - Case "ESN" - Label5.Text = "Listo" - Case "FRA" - Label5.Text = "Prêt" - Case "PTB", "PTG" - Label5.Text = "Pronto" - Case "ITA" - Label5.Text = "Pronto" - End Select - Case 1 - Label5.Text = "Ready" - Case 2 - Label5.Text = "Listo" - Case 3 - Label5.Text = "Prêt" - Case 4 - Label5.Text = "Pronto" - Case 5 - Label5.Text = "Pronto" - End Select + Label5.Text = LocalizationService.ForSection("PackageInfo.File")("Ready.Item") WindowHelper.EnableCloseCapability(Handle) End Sub @@ -1291,7 +391,7 @@ Public Class GetPkgInfoDlg DynaLog.LogMessage("Displaying information of a specific package file...") DynaLog.LogMessage("Index of Selected Package File: " & PkgFile) Label9.Text = If(OSVer.Major >= 10, PackageInfoExList(PkgFile).PackageName, PackageInfoList(PkgFile).PackageName) - Label11.Text = Casters.CastDismApplicabilityStatus(If(OSVer.Major >= 10, PackageInfoExList(PkgFile).Applicable, PackageInfoList(PkgFile).Applicable), True) + Label11.Text = Casters.Applicability(If(OSVer.Major >= 10, PackageInfoExList(PkgFile).Applicable, PackageInfoList(PkgFile).Applicable), True) Label17.Text = If(OSVer.Major >= 10, PackageInfoExList(PkgFile).Copyright, PackageInfoList(PkgFile).Copyright) Label19.Text = If(OSVer.Major >= 10, PackageInfoExList(PkgFile).Company, PackageInfoList(PkgFile).Company) Label62.Text = If(OSVer.Major >= 10, PackageInfoExList(PkgFile).CreationTime, PackageInfoList(PkgFile).CreationTime) @@ -1307,7 +407,7 @@ Public Class GetPkgInfoDlg Label82.Text = Casters.CastDismRestartType(If(OSVer.Major >= 10, PackageInfoExList(PkgFile).RestartRequired, PackageInfoList(PkgFile).RestartRequired), True) Label84.Text = If(OSVer.Major >= 10, PackageInfoExList(PkgFile).SupportInformation, PackageInfoList(PkgFile).SupportInformation) Label86.Text = Casters.CastDismPackageState(If(OSVer.Major >= 10, PackageInfoExList(PkgFile).PackageState, PackageInfoList(PkgFile).PackageState), True) - Label88.Text = Casters.CastDismFullyOfflineInstallationType(If(OSVer.Major >= 10, PackageInfoExList(PkgFile).FullyOffline, PackageInfoList(PkgFile).FullyOffline), True) + Label88.Text = Casters.OfflineInstallType(If(OSVer.Major >= 10, PackageInfoExList(PkgFile).FullyOffline, PackageInfoList(PkgFile).FullyOffline), True) If OSVer.Major >= 10 Then Label90.Text = PackageInfoExList(PkgFile).CapabilityId Else Label90.Text = "" Label92.Text = "" Dim cProps As DismCustomPropertyCollection = If(OSVer.Major >= 10, PackageInfoExList(PkgFile).CustomProperties, PackageInfoList(PkgFile).CustomProperties) @@ -1319,31 +419,7 @@ Public Class GetPkgInfoDlg Next Else DynaLog.LogMessage("This package does not have custom properties.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label92.Text = "None" - Case "ESN" - Label92.Text = "Ninguna" - Case "FRA" - Label92.Text = "Aucune" - Case "PTB", "PTG" - Label92.Text = "Nenhum" - Case "ITA" - Label92.Text = "Nessuno" - End Select - Case 1 - Label92.Text = "None" - Case 2 - Label92.Text = "Ninguna" - Case 3 - Label92.Text = "Aucune" - Case 4 - Label92.Text = "Nenhum" - Case 5 - Label92.Text = "Nessuno" - End Select + Label92.Text = LocalizationService.ForSection("PackageInfo.Display")("None.Label") End If Label94.Text = "" Dim pkgFeats As DismFeatureCollection = If(OSVer.Major >= 10, PackageInfoExList(PkgFile).Features, PackageInfoList(PkgFile).Features) @@ -1356,31 +432,7 @@ Public Class GetPkgInfoDlg Next Else DynaLog.LogMessage("This package does not have features.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label94.Text = "None" - Case "ESN" - Label94.Text = "Ninguna" - Case "FRA" - Label94.Text = "Aucune" - Case "PTB", "PTG" - Label94.Text = "Nenhum" - Case "ITA" - Label94.Text = "Nessuno" - End Select - Case 1 - Label94.Text = "None" - Case 2 - Label94.Text = "Ninguna" - Case 3 - Label94.Text = "Aucune" - Case 4 - Label94.Text = "Nenhum" - Case 5 - Label94.Text = "Nessuno" - End Select + Label94.Text = LocalizationService.ForSection("PackageInfo.Display")("None.Label") End If End Sub diff --git a/Panels/Get_Ops/WinPE/GetWinPESettings.Designer.vb b/Panels/Get_Ops/WinPE/GetWinPESettings.Designer.vb index 60aac3637..665c3a050 100644 --- a/Panels/Get_Ops/WinPE/GetWinPESettings.Designer.vb +++ b/Panels/Get_Ops/WinPE/GetWinPESettings.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class GetWinPESettings Inherits System.Windows.Forms.Form @@ -44,7 +44,7 @@ Partial Class GetWinPESettings Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(75, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.WinPESettings")("Ok.Button") Me.OK_Button.UseVisualStyleBackColor = True ' 'Label2 @@ -54,7 +54,7 @@ Partial Class GetWinPESettings Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(248, 13) Me.Label2.TabIndex = 7 - Me.Label2.Text = "These are the Windows PE settings for this image:" + Me.Label2.Text = LocalizationService.ForSection("Designer.WinPESettings")("Windows.Label") ' 'TableLayoutPanel1 ' @@ -104,7 +104,7 @@ Partial Class GetWinPESettings Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(94, 23) Me.Button1.TabIndex = 0 - Me.Button1.Text = "Change..." + Me.Button1.Text = LocalizationService.ForSection("Designer.WinPESettings")("Change.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Button2 @@ -115,7 +115,7 @@ Partial Class GetWinPESettings Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(94, 24) Me.Button2.TabIndex = 0 - Me.Button2.Text = "Change..." + Me.Button2.Text = LocalizationService.ForSection("Designer.WinPESettings")("Change.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label3 @@ -126,7 +126,7 @@ Partial Class GetWinPESettings Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(88, 29) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Target path:" + Me.Label3.Text = LocalizationService.ForSection("Designer.WinPESettings")("TargetPath.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label4 @@ -137,7 +137,7 @@ Partial Class GetWinPESettings Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(88, 30) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Scratch space:" + Me.Label4.Text = LocalizationService.ForSection("Designer.WinPESettings")("ScratchSpace.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button4 @@ -148,7 +148,7 @@ Partial Class GetWinPESettings Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(96, 23) Me.Button4.TabIndex = 12 - Me.Button4.Text = "Save..." + Me.Button4.Text = LocalizationService.ForSection("Designer.WinPESettings")("Save.Button") Me.Button4.UseVisualStyleBackColor = True ' 'ImageTaskHeader1 @@ -183,7 +183,7 @@ Partial Class GetWinPESettings Me.Name = "GetWinPESettings" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Get Windows PE settings" + Me.Text = LocalizationService.ForSection("Designer.WinPESettings")("Get.Windows.Pesettings.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Get_Ops/WinPE/GetWinPESettings.vb b/Panels/Get_Ops/WinPE/GetWinPESettings.vb index 7cdadc50d..4d9703555 100644 --- a/Panels/Get_Ops/WinPE/GetWinPESettings.vb +++ b/Panels/Get_Ops/WinPE/GetWinPESettings.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Win32 Imports System.ComponentModel @@ -16,31 +16,7 @@ Public Class GetWinPESettings If regExitCode <> 0 Then DynaLog.LogMessage("Could not load the hive.") DynaLog.LogMessage("Error message: " & New Win32Exception(regExitCode).Message) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label5.Text = "Could not get value" - Case "ESN" - Label5.Text = "No se pudo obtener el valor" - Case "FRA" - Label5.Text = "Impossible d'obtenir la valeur" - Case "PTB", "PTG" - Label5.Text = "Não foi possível obter o valor" - Case "ITA" - Label5.Text = "Impossibile ottenere il valore" - End Select - Case 1 - Label5.Text = "Could not get value" - Case 2 - Label5.Text = "No se pudo obtener el valor" - Case 3 - Label5.Text = "Impossible d'obtenir la valeur" - Case 4 - Label5.Text = "Não foi possível obter o valor" - Case 5 - Label5.Text = "Impossibile ottenere il valore" - End Select + Label5.Text = LocalizationService.ForSection("WinPESettings.GetPESettings")("GetValue.Label") Button1.Visible = False End If DynaLog.LogMessage("Loading SYSTEM hive of WinPE image...") @@ -49,60 +25,12 @@ Public Class GetWinPESettings If regExitCode <> 0 Then DynaLog.LogMessage("Could not load the hive.") DynaLog.LogMessage("Error message: " & New Win32Exception(regExitCode).Message) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label6.Text = "Could not get value" - Case "ESN" - Label6.Text = "No se pudo obtener el valor" - Case "FRA" - Label6.Text = "Impossible d'obtenir la valeur" - Case "PTB", "PTG" - Label6.Text = "Não foi possível obter o valor" - Case "ITA" - Label6.Text = "Impossibile ottenere il valore" - End Select - Case 1 - Label6.Text = "Could not get value" - Case 2 - Label6.Text = "No se pudo obtener el valor" - Case 3 - Label6.Text = "Impossible d'obtenir la valeur" - Case 4 - Label6.Text = "Não foi possível obter o valor" - Case 5 - Label6.Text = "Impossibile ottenere il valore" - End Select + Label6.Text = LocalizationService.ForSection("WinPESettings.GetPESettings")("GetValue.Label") Button2.Visible = False End If Try Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Could not get value" - Case "ESN" - msg = "No se pudo obtener el valor" - Case "FRA" - msg = "Impossible d'obtenir la valeur" - Case "PTB", "PTG" - msg = "Não foi possível obter o valor" - Case "ITA" - msg = "Impossibile ottenere il valore" - End Select - Case 1 - msg = "Could not get value" - Case 2 - msg = "No se pudo obtener el valor" - Case 3 - msg = "Impossible d'obtenir la valeur" - Case 4 - msg = "Não foi possível obter o valor" - Case 5 - msg = "Impossibile ottenere il valore" - End Select + msg = LocalizationService.ForSection("WinPESettings.GetPESettings")("GetValue.Message") DynaLog.LogMessage("Getting target path...") ' Get target path first Dim regKey As RegistryKey = Registry.LocalMachine.OpenSubKey("PE_SOFT\Microsoft\Windows NT\CurrentVersion\WinPE", False) @@ -144,111 +72,15 @@ Public Class GetWinPESettings Close() Exit Sub End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Get Windows PE settings" - ImageTaskHeader1.ItemText = Text - Label2.Text = "These are the Windows PE settings for this image:" - Label3.Text = "Target path:" - Label4.Text = "Scratch space:" - Button1.Text = "Change..." - Button2.Text = "Change..." - Button4.Text = "Save..." - OK_Button.Text = "OK" - Case "ESN" - Text = "Obtener configuraciones de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Estas son las configuraciones de Windows PE para esta imagen:" - Label3.Text = "Carpeta de destino:" - Label4.Text = "Espacio temporal:" - Button1.Text = "Cambiar..." - Button2.Text = "Cambiar..." - OK_Button.Text = "Aceptar" - Button4.Text = "Guardar..." - Case "FRA" - Text = "Obtenir les paramètres de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Il s'agit des paramètres Windows PE pour cette image :" - Label3.Text = "Chemin cible :" - Label4.Text = "Espace temporaire :" - Button1.Text = "Changer..." - Button2.Text = "Changer..." - OK_Button.Text = "OK" - Button4.Text = "Sauvegarder..." - Case "PTB", "PTG" - Text = "Obter as configurações do Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Estas são as configurações do Windows PE para esta imagem:" - Label3.Text = "Localização do destino:" - Label4.Text = "Espaço temporário:" - Button1.Text = "Alterar..." - Button2.Text = "Alterar..." - Button4.Text = "Guardar..." - OK_Button.Text = "OK" - Case "ITA" - Text = "Ottieni le impostazioni di Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Queste sono le impostazioni di Windows PE per questa immagine:" - Label3.Text = "Percorso di destinazione:" - Label4.Text = "Spazio temporaneo:" - Button1.Text = "Cambia..." - Button2.Text = "Cambia..." - Button4.Text = "Salva..." - OK_Button.Text = "OK" - End Select - Case 1 - Text = "Get Windows PE settings" - ImageTaskHeader1.ItemText = Text - Label2.Text = "These are the Windows PE settings for this image:" - Label3.Text = "Target path:" - Label4.Text = "Scratch space:" - Button1.Text = "Change..." - Button2.Text = "Change..." - OK_Button.Text = "OK" - Button4.Text = "Save..." - Case 2 - Text = "Obtener configuraciones de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Estas son las configuraciones de Windows PE para esta imagen:" - Label3.Text = "Carpeta de destino:" - Label4.Text = "Espacio temporal:" - Button1.Text = "Cambiar..." - Button2.Text = "Cambiar..." - OK_Button.Text = "Aceptar" - Button4.Text = "Guardar..." - Case 3 - Text = "Obtenir les paramètres de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Il s'agit des paramètres Windows PE pour cette image :" - Label3.Text = "Chemin cible :" - Label4.Text = "Espace temporaire :" - Button1.Text = "Changer..." - Button2.Text = "Changer..." - OK_Button.Text = "OK" - Button4.Text = "Sauvegarder..." - Case 4 - Text = "Obter as configurações do Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Estas são as configurações do Windows PE para esta imagem:" - Label3.Text = "Localização do destino:" - Label4.Text = "Espaço temporário:" - Button1.Text = "Alterar..." - Button2.Text = "Alterar..." - Button4.Text = "Guardar..." - OK_Button.Text = "OK" - Case 5 - Text = "Ottieni le impostazioni di Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Queste sono le impostazioni di Windows PE per questa immagine:" - Label3.Text = "Percorso di destinazione:" - Label4.Text = "Spazio temporaneo:" - Button1.Text = "Cambia..." - Button2.Text = "Cambia..." - Button4.Text = "Salva..." - OK_Button.Text = "OK" - End Select + Text = LocalizationService.ForSection("WinPESettings")("Get.Windows.Pesettings.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("WinPESettings")("Windows.Label") + Label3.Text = LocalizationService.ForSection("WinPESettings")("TargetPath.Label") + Label4.Text = LocalizationService.ForSection("WinPESettings")("ScratchSpace.Label") + Button1.Text = LocalizationService.ForSection("WinPESettings")("Change.Button") + Button2.Text = LocalizationService.ForSection("WinPESettings")("Change.Button") + OK_Button.Text = LocalizationService.ForSection("WinPESettings")("Ok.Button") + Button4.Text = LocalizationService.ForSection("WinPESettings")("Save.Button") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/ISOFiles/ISOCreator.Designer.vb b/Panels/ISOFiles/ISOCreator.Designer.vb index a3f3e039f..278c5792a 100644 --- a/Panels/ISOFiles/ISOCreator.Designer.vb +++ b/Panels/ISOFiles/ISOCreator.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ISOCreator Inherits System.Windows.Forms.Form @@ -90,7 +90,7 @@ Partial Class ISOCreator Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(1240, 32) Me.Label2.TabIndex = 7 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.ISOCreator")("ISO.File.Message") ' 'GroupBox1 ' @@ -118,7 +118,7 @@ Partial Class ISOCreator Me.GroupBox1.Size = New System.Drawing.Size(1238, 445) Me.GroupBox1.TabIndex = 8 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Options" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ISOCreator")("Options.Group") ' 'CheckBox4 ' @@ -128,7 +128,7 @@ Partial Class ISOCreator Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(224, 17) Me.CheckBox4.TabIndex = 12 - Me.CheckBox4.Text = "Include essential drivers from this system" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.ISOCreator")("Include.Essential.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'Button6 @@ -139,7 +139,7 @@ Partial Class ISOCreator Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(184, 23) Me.Button6.TabIndex = 11 - Me.Button6.Text = "Customize Environment..." + Me.Button6.Text = LocalizationService.ForSection("Designer.ISOCreator")("Customize.Environment.Button") Me.Button6.UseVisualStyleBackColor = True ' 'ListView1 @@ -159,27 +159,27 @@ Partial Class ISOCreator ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "#" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ISOCreator")("Value.Column") Me.ColumnHeader1.Width = 29 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image Name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.ISOCreator")("ImageName.Column") Me.ColumnHeader2.Width = 265 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Image Description" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.ISOCreator")("ImageDescription.Column") Me.ColumnHeader3.Width = 343 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Image Version" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.ISOCreator")("ImageVersion.Column") Me.ColumnHeader4.Width = 103 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Image Architecture" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.ISOCreator")("Image.Architecture.Column") Me.ColumnHeader5.Width = 130 ' 'Panel2 @@ -202,7 +202,7 @@ Partial Class ISOCreator Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(75, 23) Me.Button5.TabIndex = 2 - Me.Button5.Text = "Browse..." + Me.Button5.Text = LocalizationService.ForSection("Designer.ISOCreator")("Browse.Button") Me.Button5.UseVisualStyleBackColor = True ' 'TextBox4 @@ -222,7 +222,7 @@ Partial Class ISOCreator Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(133, 17) Me.CheckBox2.TabIndex = 8 - Me.CheckBox2.Text = "Copy to Ventoy drives" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.ISOCreator")("Copy.Ventoy.Drives.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -233,7 +233,7 @@ Partial Class ISOCreator Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(164, 17) Me.CheckBox1.TabIndex = 8 - Me.CheckBox1.Text = "Unattended answer file:" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ISOCreator")("Unattended.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Panel1 @@ -265,7 +265,7 @@ Partial Class ISOCreator Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(105, 13) Me.Label6.TabIndex = 6 - Me.Label6.Text = "Architecture:" + Me.Label6.Text = LocalizationService.ForSection("Designer.ISOCreator")("Architecture.Label") ' 'Button2 ' @@ -275,7 +275,7 @@ Partial Class ISOCreator Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "Pick..." + Me.Button2.Text = LocalizationService.ForSection("Designer.ISOCreator")("Pick.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button3 @@ -286,7 +286,7 @@ Partial Class ISOCreator Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 2 - Me.Button3.Text = "Browse..." + Me.Button3.Text = LocalizationService.ForSection("Designer.ISOCreator")("Browse.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button1 @@ -297,7 +297,7 @@ Partial Class ISOCreator Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ISOCreator")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox3 @@ -326,7 +326,7 @@ Partial Class ISOCreator Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(104, 13) Me.Label7.TabIndex = 0 - Me.Label7.Text = "Target ISO location:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ISOCreator")("Target.Isolocation.Label") ' 'Label4 ' @@ -335,7 +335,7 @@ Partial Class ISOCreator Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(143, 13) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Image file to add to ISO file:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ISOCreator")("ImageFile.Add.Label") ' 'Button4 ' @@ -345,7 +345,7 @@ Partial Class ISOCreator Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(156, 23) Me.Button4.TabIndex = 2 - Me.Button4.Text = "Use mounted image" + Me.Button4.Text = LocalizationService.ForSection("Designer.ISOCreator")("Mounted.Image.Button") Me.Button4.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -356,7 +356,7 @@ Partial Class ISOCreator Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(175, 17) Me.CheckBox3.TabIndex = 8 - Me.CheckBox3.Text = "Use newly-signed boot binaries" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.ISOCreator")("Newly.Signed.Boot.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'Cancel_Button @@ -367,7 +367,7 @@ Partial Class ISOCreator Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(75, 23) Me.Cancel_Button.TabIndex = 9 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ISOCreator")("Cancel.Button") Me.Cancel_Button.UseVisualStyleBackColor = True ' 'OK_Button @@ -378,7 +378,7 @@ Partial Class ISOCreator Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(75, 23) Me.OK_Button.TabIndex = 9 - Me.OK_Button.Text = "Create" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ISOCreator")("Create.Button") Me.OK_Button.UseVisualStyleBackColor = True ' 'GroupBox2 @@ -391,7 +391,7 @@ Partial Class ISOCreator Me.GroupBox2.Size = New System.Drawing.Size(1238, 98) Me.GroupBox2.TabIndex = 10 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Progress" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.ISOCreator")("Progress.Group") ' 'ProgressContainer ' @@ -420,7 +420,7 @@ Partial Class ISOCreator Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(1232, 78) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Once you're ready, click the Create button." + Me.Label3.Text = LocalizationService.ForSection("Designer.ISOCreator")("Re.Ready.Create.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'ISOProgressPanel @@ -454,8 +454,7 @@ Partial Class ISOCreator Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(1204, 13) Me.Label9.TabIndex = 0 - Me.Label9.Text = "You can do other things while the ISO is being created. Come back here anytime fo" & _ - "r an updated status." + Me.Label9.Text = LocalizationService.ForSection("Designer.ISOCreator")("Other.Things.Message") ' 'Label8 ' @@ -466,15 +465,15 @@ Partial Class ISOCreator Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(1204, 13) Me.Label8.TabIndex = 0 - Me.Label8.Text = "Status" + Me.Label8.Text = LocalizationService.ForSection("Designer.ISOCreator")("Status.Label") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WIM files|*.wim" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ISOCreator")("WIM.Files.Filter") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "ISO files|*.iso" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.ISOCreator")("Isofiles.Filter") Me.SaveFileDialog1.OverwritePrompt = False ' 'LinkLabel1 @@ -488,11 +487,11 @@ Partial Class ISOCreator Me.LinkLabel1.Size = New System.Drawing.Size(343, 13) Me.LinkLabel1.TabIndex = 11 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Download the Windows ADK" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.ISOCreator")("Download.Windows.ADK.Link") ' 'OpenFileDialog2 ' - Me.OpenFileDialog2.Filter = "Answer files|*.xml" + Me.OpenFileDialog2.Filter = LocalizationService.ForSection("Designer.ISOCreator")("Answer.Files.XML.Filter") ' 'ADKDownloaderBW ' @@ -531,7 +530,7 @@ Partial Class ISOCreator Me.Name = "ISOCreator" Me.ShowIcon = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Create an ISO file" + Me.Text = LocalizationService.ForSection("Designer.ISOCreator")("CreateIsofile.Label") Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() Me.Panel2.ResumeLayout(False) diff --git a/Panels/ISOFiles/ISOCreator.resx b/Panels/ISOFiles/ISOCreator.resx index e8bf084d4..c66a7b024 100644 --- a/Panels/ISOFiles/ISOCreator.resx +++ b/Panels/ISOFiles/ISOCreator.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -120,9 +62,6 @@ 17, 17 - - The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here. - 180, 17 diff --git a/Panels/ISOFiles/ISOCreator.vb b/Panels/ISOFiles/ISOCreator.vb index f5cdfaa3f..0692ab124 100644 --- a/Panels/ISOFiles/ISOCreator.vb +++ b/Panels/ISOFiles/ISOCreator.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports System.Threading Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Dism @@ -10,338 +10,44 @@ Public Class ISOCreator Dim ImageInfoCollection As DismImageInfoCollection Dim ISOMsg As String = "" - Dim progressMessages() As String = New String(2) {"Status", "Creating ISO file. This can take some time. Please wait...", "The ISO file has been created"} + Dim progressMessages() As String = New String(2) {"", "", ""} Dim success As Boolean Dim architectures() As String = New String(2) {"x86", "amd64", "arm64"} Dim adkDownloadLocations() As String = New String(1) {"https://download.microsoft.com/download/615540bc-be0b-433a-b91b-1f2b0642bb24/adk/adksetup.exe", "https://download.microsoft.com/download/2472e9a0-7c74-4ffd-a3e4-27ed1fa30d30/adkwinpeaddons/adkwinpesetup.exe"} Dim adkDownloadSuccess As Boolean Private Sub ISOCreator_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressMessages(0) = "Status" - progressMessages(1) = "Creating ISO file. This can take some time. Please wait..." - progressMessages(2) = "The ISO file has been created" - Text = "Create an ISO file" - ImageTaskHeader1.ItemText = Text - Label2.Text = "The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here." - Label3.Text = "Once you're ready, click the Create button." - Label4.Text = "Image file to add to ISO file:" - Label6.Text = "Architecture:" - Label7.Text = "Target ISO location:" - Label8.Text = progressMessages(0) - Label9.Text = "You can do other things while the ISO is being created. Come back here anytime for an updated status." - Button1.Text = "Browse..." - Button2.Text = "Pick..." - Button3.Text = "Browse..." - Button4.Text = "Use mounted image" - Button5.Text = "Browse..." - Button6.Text = "Customize Environment..." - OK_Button.Text = "Create" - Cancel_Button.Text = "Cancel" - GroupBox1.Text = "Options" - GroupBox2.Text = "Progress" - LinkLabel1.Text = "Download the Windows ADK" - ColumnHeader2.Text = "Image Name" - ColumnHeader3.Text = "Image Description" - ColumnHeader4.Text = "Image Version" - ColumnHeader5.Text = "Image Architecture" - CheckBox1.Text = "Unattended answer file:" - CheckBox2.Text = "Copy to Ventoy drives" - CheckBox3.Text = "Use newly-signed boot binaries" - CheckBox4.Text = "Include essential drivers from this system" - Case "ESN" - progressMessages(0) = "Estado" - progressMessages(1) = "Creando archivo ISO. Esto puede llevar algo de tiempo. Espere..." - progressMessages(2) = "El archivo ISO ha sido creado" - Text = "Crear un archivo ISO" - ImageTaskHeader1.ItemText = Text - Label2.Text = "El asistente de creación de archivos ISO le permite crear un archivo de imagen de disco rápidamente y que puede utilizar para probar los cambios hechos a su imagen de Windows. Un Entorno de Preinstalación (PE) personalizado será creado. Este entorno realizará configuración del disco automáticamente y aplicará la imagen que especifique aquí." - Label3.Text = "Cuando esté listo, haga clic en Crear." - Label4.Text = "Archivo de imagen a añadir al archivo ISO:" - Label6.Text = "Arquitectura:" - Label7.Text = "Ubicación del archivo ISO de destino:" - Label8.Text = progressMessages(0) - Label9.Text = "Puede hacer otras cosas mientras se crea el archivo ISO. Vuelva aquí para ver un estado actualizado." - Button1.Text = "Examinar..." - Button2.Text = "Escoger..." - Button3.Text = "Examinar..." - Button4.Text = "Usar imagen montada" - Button5.Text = "Examinar..." - Button6.Text = "Personalizar entorno..." - OK_Button.Text = "Crear" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Opciones" - GroupBox2.Text = "Progreso" - LinkLabel1.Text = "Descargar el ADK de Windows" - ColumnHeader2.Text = "Nombre de la imagen" - ColumnHeader3.Text = "Descripción de la imagen" - ColumnHeader4.Text = "Versión" - ColumnHeader5.Text = "Arquitectura" - CheckBox1.Text = "Archivo de respuesta:" - CheckBox2.Text = "Copiar a discos Ventoy" - CheckBox3.Text = "Utilizar archivos de arranque firmados con nuevos certificados" - CheckBox4.Text = "Incluir controladores esenciales de este sistema" - Case "FRA" - progressMessages(0) = "Statut" - progressMessages(1) = "Création du fichier ISO en cours. Cela peut prendre un certain temps. Veuillez patienter..." - progressMessages(2) = "Le fichier ISO a été créé" - Text = "Créer un fichier ISO" - ImageTaskHeader1.ItemText = Text - Label2.Text = "L'assistant de création de fichier ISO vous permet de créer rapidement un fichier image de disque que vous pouvez utiliser pour tester les modifications apportées à votre image Windows. Un environnement de préinstallation (PE) personnalisé sera créé. Cet environnement effectuera automatiquement la configuration du disque et appliquera l'image que vous spécifiez ici." - Label3.Text = "Lorsque vous êtes prêt, cliquez sur le bouton Créer." - Label4.Text = "Fichier image à ajouter au fichier ISO :" - Label6.Text = "Architecture :" - Label7.Text = "Emplacement ISO cible :" - Label8.Text = progressMessages(0) - Label9.Text = "Vous pouvez faire d'autres choses pendant la création de l'ISO. Revenez ici à tout moment pour obtenir une mise à jour de l'état." - Button1.Text = "Parcourir..." - Button2.Text = "Choisir..." - Button3.Text = "Parcourir..." - Button4.Text = "Utiliser une image montée" - Button5.Text = "Parcourir..." - Button6.Text = "Personnaliser l'environnement..." - OK_Button.Text = "Créer" - Cancel_Button.Text = "Annuler" - GroupBox1.Text = "Paramètres" - GroupBox2.Text = "Progrès" - LinkLabel1.Text = "Télécharger l'ADK Windows" - ColumnHeader2.Text = "Nom de l'image" - ColumnHeader3.Text = "Description de l'image" - ColumnHeader4.Text = "Version" - ColumnHeader5.Text = "Architecture" - CheckBox1.Text = "Fichier de réponse :" - CheckBox2.Text = "Copier sur les lecteurs Ventoy" - CheckBox3.Text = "Utiliser des binaires de démarrage nouvellement signés" - CheckBox4.Text = "Inclure les pilotes indispensables de ce système" - Case "PTB", "PTG" - progressMessages(0) = "Estado" - progressMessages(1) = "A criar ficheiro ISO. Isto pode demorar algum tempo. Por favor, aguarde..." - progressMessages(2) = "O ficheiro ISO foi criado" - Text = "Criar um ficheiro ISO" - ImageTaskHeader1.ItemText = Text - Label2.Text = "O assistente de criação de ficheiros ISO permite-lhe criar rapidamente um ficheiro de imagem de disco que pode utilizar para testar as alterações efectuadas à sua imagem do Windows. Será criado um ambiente de pré-instalação (PE) personalizado. Este ambiente irá efetuar automaticamente a configuração do disco e aplicar a imagem que especificar aqui." - Label3.Text = "Quando estiver pronto, clique no botão Criar." - Label4.Text = "Ficheiro de imagem a adicionar ao ficheiro ISO:" - Label6.Text = "Arquitetura:" - Label7.Text = "Localização ISO de destino:" - Label8.Text = progressMessages(0) - Label9.Text = "Pode fazer outras coisas enquanto o ISO está a ser criado. Volte aqui em qualquer altura para obter um estado atualizado." - Button1.Text = "Procurar..." - Button2.Text = "Escolher..." - Button3.Text = "Procurar..." - Button4.Text = "Utilizar imagem montada" - Button5.Text = "Procurar..." - Button6.Text = "Personalizar o ambiente..." - OK_Button.Text = "Criar" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Configurações" - GroupBox2.Text = "Progresso" - LinkLabel1.Text = "Baixar o Windows ADK" - ColumnHeader2.Text = "Nome da imagem" - ColumnHeader3.Text = "Descrição da imagem" - ColumnHeader4.Text = "Versão" - ColumnHeader5.Text = "Arquitetura" - CheckBox1.Text = "Ficheiro de resposta:" - CheckBox2.Text = "Copiar para unidades Ventoy" - CheckBox3.Text = "Utilizar binários de arranque com assinatura recente" - CheckBox4.Text = "Incluir os controladores essenciais deste sistema" - Case "ITA" - progressMessages(0) = "Stato" - progressMessages(1) = "Creazione del file ISO. L'operazione può richiedere del tempo. Attendere..." - progressMessages(2) = "Il file ISO è stato creato" - Text = "Creare un file ISO" - ImageTaskHeader1.ItemText = Text - Label2.Text = "La creazione guidata del file ISO consente di creare rapidamente un file immagine del disco da utilizzare per testare le modifiche apportate all'immagine di Windows. Verrà creato un ambiente di preinstallazione (PE) personalizzato. Questo ambiente eseguirà automaticamente la configurazione del disco e applicherà l'immagine specificata qui." - Label3.Text = "Una volta pronti, fare clic sul pulsante Crea" - Label4.Text = "File immagine da aggiungere al file ISO:" - Label6.Text = "Architettura:" - Label7.Text = "Posizione ISO di destinazione:" - Label8.Text = progressMessages(0) - Label9.Text = "È possibile fare altre cose mentre la ISO viene creata. Tornare qui in qualsiasi momento per uno stato aggiornato" - Button1.Text = "Sfoglia..." - Button2.Text = "Scegli..." - Button3.Text = "Sfoglia..." - Button4.Text = "Usa immagine montata" - Button5.Text = "Sfoglia..." - Button6.Text = "Personalizza l'ambiente..." - OK_Button.Text = "Crea" - Cancel_Button.Text = "Annulla" - GroupBox1.Text = "Opzioni" - GroupBox2.Text = "Avanzamento" - LinkLabel1.Text = "Scarica l'ADK di Windows" - ColumnHeader2.Text = "Nome dell'immagine" - ColumnHeader3.Text = "Descrizione dell'immagine" - ColumnHeader4.Text = "Versione" - ColumnHeader5.Text = "Architettura" - CheckBox1.Text = "File di risposta:" - CheckBox2.Text = "Copia su unità Ventoy" - CheckBox3.Text = "Utilizzare binari di avvio con firma recente" - CheckBox4.Text = "Includi i driver essenziali di questo sistema" - End Select - Case 1 - progressMessages(0) = "Status" - progressMessages(1) = "Creating ISO file. This can take some time. Please wait..." - progressMessages(2) = "The ISO file has been created" - Text = "Create an ISO file" - ImageTaskHeader1.ItemText = Text - Label2.Text = "The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here." - Label3.Text = "Once you're ready, click the Create button." - Label4.Text = "Image file to add to ISO file:" - Label6.Text = "Architecture:" - Label7.Text = "Target ISO location:" - Label8.Text = progressMessages(0) - Label9.Text = "You can do other things while the ISO is being created. Come back here anytime for an updated status." - Button1.Text = "Browse..." - Button2.Text = "Pick..." - Button3.Text = "Browse..." - Button4.Text = "Use mounted image" - Button5.Text = "Browse..." - Button6.Text = "Customize Environment..." - OK_Button.Text = "Create" - Cancel_Button.Text = "Cancel" - GroupBox1.Text = "Options" - GroupBox2.Text = "Progress" - LinkLabel1.Text = "Download the Windows ADK" - ColumnHeader2.Text = "Image Name" - ColumnHeader3.Text = "Image Description" - ColumnHeader4.Text = "Image Version" - ColumnHeader5.Text = "Image Architecture" - CheckBox1.Text = "Unattended answer file:" - CheckBox2.Text = "Copy to Ventoy drives" - CheckBox3.Text = "Use newly-signed boot binaries" - CheckBox4.Text = "Include essential drivers from this system" - Case 2 - progressMessages(0) = "Estado" - progressMessages(1) = "Creando archivo ISO. Esto puede llevar algo de tiempo. Espere..." - progressMessages(2) = "El archivo ISO ha sido creado" - Text = "Crear un archivo ISO" - ImageTaskHeader1.ItemText = Text - Label2.Text = "El asistente de creación de archivos ISO le permite crear un archivo de imagen de disco rápidamente y que puede utilizar para probar los cambios hechos a su imagen de Windows. Un Entorno de Preinstalación (PE) personalizado será creado. Este entorno realizará configuración del disco automáticamente y aplicará la imagen que especifique aquí." - Label3.Text = "Cuando esté listo, haga clic en Crear." - Label4.Text = "Archivo de imagen a añadir al archivo ISO:" - Label6.Text = "Arquitectura:" - Label7.Text = "Ubicación del archivo ISO de destino:" - Label8.Text = progressMessages(0) - Label9.Text = "Puede hacer otras cosas mientras se crea el archivo ISO. Vuelva aquí para ver un estado actualizado." - Button1.Text = "Examinar..." - Button2.Text = "Escoger..." - Button3.Text = "Examinar..." - Button4.Text = "Usar imagen montada" - Button5.Text = "Examinar..." - Button6.Text = "Personalizar entorno..." - OK_Button.Text = "Crear" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Opciones" - GroupBox2.Text = "Progreso" - LinkLabel1.Text = "Descargar el ADK de Windows" - ColumnHeader2.Text = "Nombre de la imagen" - ColumnHeader3.Text = "Descripción de la imagen" - ColumnHeader4.Text = "Versión" - ColumnHeader5.Text = "Arquitectura" - CheckBox1.Text = "Archivo de respuesta:" - CheckBox2.Text = "Copiar a discos Ventoy" - CheckBox3.Text = "Utilizar archivos de arranque firmados con nuevos certificados" - CheckBox4.Text = "Incluir controladores esenciales de este sistema" - Case 3 - progressMessages(0) = "Statut" - progressMessages(1) = "Création du fichier ISO en cours. Cela peut prendre un certain temps. Veuillez patienter..." - progressMessages(2) = "Le fichier ISO a été créé" - Text = "Créer un fichier ISO" - ImageTaskHeader1.ItemText = Text - Label2.Text = "L'assistant de création de fichier ISO vous permet de créer rapidement un fichier image de disque que vous pouvez utiliser pour tester les modifications apportées à votre image Windows. Un environnement de préinstallation (PE) personnalisé sera créé. Cet environnement effectuera automatiquement la configuration du disque et appliquera l'image que vous spécifiez ici." - Label3.Text = "Lorsque vous êtes prêt, cliquez sur le bouton Créer." - Label4.Text = "Fichier image à ajouter au fichier ISO :" - Label6.Text = "Architecture :" - Label7.Text = "Emplacement ISO cible :" - Label8.Text = progressMessages(0) - Label9.Text = "Vous pouvez faire d'autres choses pendant la création de l'ISO. Revenez ici à tout moment pour obtenir une mise à jour de l'état." - Button1.Text = "Parcourir..." - Button2.Text = "Choisir..." - Button3.Text = "Parcourir..." - Button4.Text = "Utiliser une image montée" - Button5.Text = "Parcourir..." - Button6.Text = "Personnaliser l'environnement..." - OK_Button.Text = "Créer" - Cancel_Button.Text = "Annuler" - GroupBox1.Text = "Paramètres" - GroupBox2.Text = "Progrès" - LinkLabel1.Text = "Télécharger l'ADK Windows" - ColumnHeader2.Text = "Nom de l'image" - ColumnHeader3.Text = "Description de l'image" - ColumnHeader4.Text = "Version" - ColumnHeader5.Text = "Architecture" - CheckBox1.Text = "Fichier de réponse :" - CheckBox2.Text = "Copier sur les lecteurs Ventoy" - CheckBox3.Text = "Utiliser des binaires de démarrage nouvellement signés" - CheckBox4.Text = "Inclure les pilotes indispensables de ce système" - Case 4 - progressMessages(0) = "Estado" - progressMessages(1) = "A criar ficheiro ISO. Isto pode demorar algum tempo. Por favor, aguarde..." - progressMessages(2) = "O ficheiro ISO foi criado" - Text = "Criar um ficheiro ISO" - ImageTaskHeader1.ItemText = Text - Label2.Text = "O assistente de criação de ficheiros ISO permite-lhe criar rapidamente um ficheiro de imagem de disco que pode utilizar para testar as alterações efectuadas à sua imagem do Windows. Será criado um ambiente de pré-instalação (PE) personalizado. Este ambiente irá efetuar automaticamente a configuração do disco e aplicar a imagem que especificar aqui." - Label3.Text = "Quando estiver pronto, clique no botão Criar." - Label4.Text = "Ficheiro de imagem a adicionar ao ficheiro ISO:" - Label6.Text = "Arquitetura:" - Label7.Text = "Localização ISO de destino:" - Label8.Text = progressMessages(0) - Label9.Text = "Pode fazer outras coisas enquanto o ISO está a ser criado. Volte aqui em qualquer altura para obter um estado atualizado." - Button1.Text = "Procurar..." - Button2.Text = "Escolher..." - Button3.Text = "Procurar..." - Button4.Text = "Utilizar imagem montada" - Button5.Text = "Procurar..." - Button6.Text = "Personalizar o ambiente..." - OK_Button.Text = "Criar" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Configurações" - GroupBox2.Text = "Progresso" - LinkLabel1.Text = "Baixar o Windows ADK" - ColumnHeader2.Text = "Nome da imagem" - ColumnHeader3.Text = "Descrição da imagem" - ColumnHeader4.Text = "Versão" - ColumnHeader5.Text = "Arquitetura" - CheckBox1.Text = "Ficheiro de resposta:" - CheckBox2.Text = "Copiar para unidades Ventoy" - CheckBox3.Text = "Utilizar binários de arranque com assinatura recente" - CheckBox4.Text = "Incluir os controladores essenciais deste sistema" - Case 5 - progressMessages(0) = "Stato" - progressMessages(1) = "Creazione del file ISO. L'operazione può richiedere del tempo. Attendere..." - progressMessages(2) = "Il file ISO è stato creato" - Text = "Creare un file ISO" - ImageTaskHeader1.ItemText = Text - Label2.Text = "La creazione guidata del file ISO consente di creare rapidamente un file immagine del disco da utilizzare per testare le modifiche apportate all'immagine di Windows. Verrà creato un ambiente di preinstallazione (PE) personalizzato. Questo ambiente eseguirà automaticamente la configurazione del disco e applicherà l'immagine specificata qui." - Label3.Text = "Una volta pronti, fare clic sul pulsante Crea" - Label4.Text = "File immagine da aggiungere al file ISO:" - Label6.Text = "Architettura:" - Label7.Text = "Posizione ISO di destinazione:" - Label8.Text = progressMessages(0) - Label9.Text = "È possibile fare altre cose mentre la ISO viene creata. Tornare qui in qualsiasi momento per uno stato aggiornato" - Button1.Text = "Sfoglia..." - Button2.Text = "Scegli..." - Button3.Text = "Sfoglia..." - Button4.Text = "Usa immagine montata" - Button5.Text = "Sfoglia..." - Button6.Text = "Personalizza l'ambiente..." - OK_Button.Text = "Crea" - Cancel_Button.Text = "Annulla" - GroupBox1.Text = "Opzioni" - GroupBox2.Text = "Avanzamento" - LinkLabel1.Text = "Scarica l'ADK di Windows" - ColumnHeader2.Text = "Nome dell'immagine" - ColumnHeader3.Text = "Descrizione dell'immagine" - ColumnHeader4.Text = "Versione" - ColumnHeader5.Text = "Architettura" - CheckBox1.Text = "File di risposta:" - CheckBox2.Text = "Copia su unità Ventoy" - CheckBox3.Text = "Utilizzare binari di avvio con firma recente" - CheckBox4.Text = "Includi i driver essenziali di questo sistema" - End Select + progressMessages(0) = LocalizationService.ForSection("ISOCreator")("Status.Message") + progressMessages(1) = LocalizationService.ForSection("ISOCreator")("Creating.ISO.Message") + progressMessages(2) = LocalizationService.ForSection("ISOCreator")("IsofileCreated.Message") + Text = LocalizationService.ForSection("ISOCreator")("CreateIsofile.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("ISOCreator")("ISO.File.Message") + Label3.Text = LocalizationService.ForSection("ISOCreator")("Re.Ready.Create.Label") + Label4.Text = LocalizationService.ForSection("ISOCreator")("ImageFile.Add.Label") + Label6.Text = LocalizationService.ForSection("ISOCreator")("Architecture.Label") + Label7.Text = LocalizationService.ForSection("ISOCreator")("Target.Isolocation.Label") + Label8.Text = progressMessages(0) + Label9.Text = LocalizationService.ForSection("ISOCreator")("Other.Things.Message") + Button1.Text = LocalizationService.ForSection("ISOCreator")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ISOCreator")("Pick.Button") + Button3.Text = LocalizationService.ForSection("ISOCreator")("Browse.Button") + Button4.Text = LocalizationService.ForSection("ISOCreator")("Mounted.Image.Button") + Button5.Text = LocalizationService.ForSection("ISOCreator")("Browse.Button") + Button6.Text = LocalizationService.ForSection("ISOCreator")("Customize.Environment.Button") + OK_Button.Text = LocalizationService.ForSection("ISOCreator")("Create.Button") + Cancel_Button.Text = LocalizationService.ForSection("ISOCreator")("Cancel.Button") + GroupBox1.Text = LocalizationService.ForSection("ISOCreator")("Options.Group") + GroupBox2.Text = LocalizationService.ForSection("ISOCreator")("Progress.Group") + LinkLabel1.Text = LocalizationService.ForSection("ISOCreator")("Download.Windows.ADK.Link") + ColumnHeader2.Text = LocalizationService.ForSection("ISOCreator")("ImageName.Column") + ColumnHeader3.Text = LocalizationService.ForSection("ISOCreator")("ImageDescription.Column") + ColumnHeader4.Text = LocalizationService.ForSection("ISOCreator")("ImageVersion.Column") + ColumnHeader5.Text = LocalizationService.ForSection("ISOCreator")("Image.Architecture.Column") + CheckBox1.Text = LocalizationService.ForSection("ISOCreator")("Unattended.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("ISOCreator")("Copy.Ventoy.Drives.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("ISOCreator")("Newly.Signed.Boot.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("ISOCreator")("Include.Essential.CheckBox") ImageTaskHeader1.SetColors() ImageTaskHeader1.HideWindowTitle(Me.Handle) BackColor = CurrentTheme.SectionBackgroundColor @@ -380,7 +86,7 @@ Public Class ISOCreator ' Check ADK status If Not Directory.Exists(ADKPath) Then DynaLog.LogMessage("ADK installation directory " & Quote & ADKPath & Quote & " is not found in this system. Either it has not been installed or it has been installed somewhere else.") - If MsgBox("The Windows ADK was not found on your system. Do you want DISMTools to download and install the latest one for you? Note that you'll need around 4 GB on your system.", vbYesNo + vbQuestion, "") = MsgBoxResult.Yes Then + If MsgBox(LocalizationService.ForSection("ISOFiles.Creator.Messages")("Windows.Message"), vbYesNo + vbQuestion, "") = MsgBoxResult.Yes Then Visible = True ADKDownloaderBW.RunWorkerAsync() Do Until Not ADKDownloaderBW.IsBusy @@ -388,31 +94,7 @@ Public Class ISOCreator Thread.Sleep(100) Loop If Not adkDownloadSuccess Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Process.Start("https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install") - Case "ESN" - Process.Start("https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install") - Case "FRA" - Process.Start("https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install") - Case "PTB", "PTG" - Process.Start("https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install") - Case "ITA" - Process.Start("https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install") - End Select - Case 1 - Process.Start("https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install") - Case 2 - Process.Start("https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install") - Case 3 - Process.Start("https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install") - Case 4 - Process.Start("https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install") - Case 5 - Process.Start("https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install") - End Select + Process.Start(LocalizationService.ForSection("ISOCreator")("Https.Learn.Message")) Close() End If Else @@ -558,31 +240,7 @@ Public Class ISOCreator Catch ex As Exception DynaLog.LogMessage("Could not get image file information. Error message: " & ex.Message) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ESN" - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "FRA" - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "PTB", "PTG" - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ITA" - msg = "Impossibile raccogliere informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select - Case 1 - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 2 - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 3 - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 4 - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 5 - msg = "Impossibile raccogliere informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select + msg = LocalizationService.ForSection("ISOCreator.GetImageInfo").Format("Gather.ImageFile.Message", ex.ToString(), ex.Message, Hex(ex.HResult)) MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally DynaLog.LogMessage("Shutting down API...") @@ -606,119 +264,23 @@ Public Class ISOCreator DynaLog.LogMessage("- Source image to add to ISO file: " & Quote & TextBox1.Text & Quote) DynaLog.LogMessage("- Destination ISO file: " & Quote & TextBox3.Text & Quote) If TextBox1.Text = "" OrElse Not File.Exists(TextBox1.Text) Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ISOMsg = "Either the source image file does not exist or you haven't provided any image file. Please specify a valid image file and try again." - Case "ESN" - ISOMsg = "El archivo de imagen de origen no existe o no ha especificado un archivo. Especifique un archivo de imagen válido e inténtelo de nuevo." - Case "FRA" - ISOMsg = "Soit le fichier image source n'existe pas, soit vous n'avez pas fourni de fichier image. Veuillez spécifier un fichier image valide et réessayer." - Case "PTB", "PTG" - ISOMsg = "Ou o ficheiro de imagem de origem não existe ou não forneceu qualquer ficheiro de imagem. Especifique um ficheiro de imagem válido e tente novamente." - Case "ITA" - ISOMsg = "Il file immagine di origine non esiste o non è stato fornito alcun file immagine. Specificare un file immagine valido e riprovare." - End Select - Case 1 - ISOMsg = "Either the source image file does not exist or you haven't provided any image file. Please specify a valid image file and try again." - Case 2 - ISOMsg = "El archivo de imagen de origen no existe o no ha especificado un archivo. Especifique un archivo de imagen válido e inténtelo de nuevo." - Case 3 - ISOMsg = "Soit le fichier image source n'existe pas, soit vous n'avez pas fourni de fichier image. Veuillez spécifier un fichier image valide et réessayer." - Case 4 - ISOMsg = "Ou o ficheiro de imagem de origem não existe ou não forneceu qualquer ficheiro de imagem. Especifique um ficheiro de imagem válido e tente novamente." - Case 5 - ISOMsg = "Il file immagine di origine non esiste o non è stato fornito alcun file immagine. Specificare un file immagine valido e riprovare." - End Select + ISOMsg = LocalizationService.ForSection("ISOCreator.Validation")("Either.Source.Message") MsgBox(ISOMsg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If If TextBox3.Text = "" Then If SaveFileDialog1.ShowDialog(Me) <> Windows.Forms.DialogResult.OK Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ISOMsg = "The target ISO hasn't been specified. Please specify a location for the ISO file and try again." - Case "ESN" - ISOMsg = "El archivo ISO de destino no se ha especificado. Especifique una ubicación para el archivo ISO e inténtelo de nuevo." - Case "FRA" - ISOMsg = "L'ISO cible n'a pas été spécifiée. Veuillez indiquer un emplacement pour le fichier ISO et réessayez." - Case "PTB", "PTG" - ISOMsg = "O ISO de destino não foi especificado. Especifique uma localização para o ficheiro ISO e tente novamente." - Case "ITA" - ISOMsg = "L'ISO di destinazione non è stata specificata. Specificare una posizione per il file ISO e riprovare." - End Select - Case 1 - ISOMsg = "The target ISO hasn't been specified. Please specify a location for the ISO file and try again." - Case 2 - ISOMsg = "El archivo ISO de destino no se ha especificado. Especifique una ubicación para el archivo ISO e inténtelo de nuevo." - Case 3 - ISOMsg = "L'ISO cible n'a pas été spécifiée. Veuillez indiquer un emplacement pour le fichier ISO et réessayez." - Case 4 - ISOMsg = "O ISO de destino não foi especificado. Especifique uma localização para o ficheiro ISO e tente novamente." - Case 5 - ISOMsg = "L'ISO di destinazione non è stata specificata. Specificare una posizione per il file ISO e riprovare." - End Select + ISOMsg = LocalizationService.ForSection("ISOCreator.Validation")("TargetISO.Required.Message") MsgBox(ISOMsg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ISOMsg = "Make sure that you have saved all your changes before continuing." & CrLf & CrLf & "If you have not done so, click No, save your image, and start the process again. You don't have to close this window." & CrLf & CrLf & "Do you want to create an ISO with this file?" - Case "ESN" - ISOMsg = "Asegúrese de que haya guardado todos sus cambios antes de continuar." & CrLf & CrLf & "Si no lo ha hecho, haga clic en No, guarde su imagen, y comience el proceso de nuevo. No tiene que cerrar esta ventana." & CrLf & CrLf & "¿Desea crear un archivo ISO con esta imagen?" - Case "FRA" - ISOMsg = "Assurez-vous d'avoir enregistré toutes vos modifications avant de continuer." & CrLf & CrLf & "Si vous ne l'avez pas fait, cliquez sur Non, enregistrez votre image et recommencez le processus. Vous n'êtes pas obligé de fermer cette fenêtre." & CrLf & CrLf & "Voulez-vous créer une ISO avec ce fichier ?" - Case "PTB", "PTG" - ISOMsg = "Certifique-se de que guardou todas as suas alterações antes de continuar." & CrLf & CrLf & "Se ainda não o fez, clique em Não, guarde a sua imagem e comece o processo novamente. Não é necessário fechar esta janela." & CrLf & CrLf & "Deseja criar uma ISO com este ficheiro?" - Case "ITA" - ISOMsg = "Assicurarsi di aver salvato tutte le modifiche prima di continuare." & CrLf & CrLf & "Se non lo si è fatto, fare clic su No, salvare l'immagine e ricominciare il processo. Non è necessario chiudere questa finestra." & CrLf & CrLf & "Si desidera creare una ISO con questo file?" - End Select - Case 1 - ISOMsg = "Make sure that you have saved all your changes before continuing." & CrLf & CrLf & "If you have not done so, click No, save your image, and start the process again. You don't have to close this window." & CrLf & CrLf & "Do you want to create an ISO with this file?" - Case 2 - ISOMsg = "Asegúrese de que haya guardado todos sus cambios antes de continuar." & CrLf & CrLf & "Si no lo ha hecho, haga clic en No, guarde su imagen, y comience el proceso de nuevo. No tiene que cerrar esta ventana." & CrLf & CrLf & "¿Desea crear un archivo ISO con esta imagen?" - Case 3 - ISOMsg = "Assurez-vous d'avoir enregistré toutes vos modifications avant de continuer." & CrLf & CrLf & "Si vous ne l'avez pas fait, cliquez sur Non, enregistrez votre image et recommencez le processus. Vous n'êtes pas obligé de fermer cette fenêtre." & CrLf & CrLf & "Voulez-vous créer une ISO avec ce fichier ?" - Case 4 - ISOMsg = "Certifique-se de que guardou todas as suas alterações antes de continuar." & CrLf & CrLf & "Se ainda não o fez, clique em Não, guarde a sua imagem e comece o processo novamente. Não é necessário fechar esta janela." & CrLf & CrLf & "Deseja criar uma ISO com este ficheiro?" - Case 5 - ISOMsg = "Assicurarsi di aver salvato tutte le modifiche prima di continuare." & CrLf & CrLf & "Se non lo si è fatto, fare clic su No, salvare l'immagine e ricominciare il processo. Non è necessario chiudere questa finestra." & CrLf & CrLf & "Si desidera creare una ISO con questo file?" - End Select + ISOMsg = LocalizationService.ForSection("ISOCreator.Validation")("Saved.Message") If MsgBox(ISOMsg, vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then Exit Sub End If If File.Exists(TextBox3.Text) Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ISOMsg = "The target ISO already exists. Do you want to replace it?" - Case "ESN" - ISOMsg = "El archivo ISO ya existe. ¿Desea reemplazarlo?" - Case "FRA" - ISOMsg = "L'ISO cible existe déjà. Voulez-vous la remplacer ?" - Case "PTB", "PTG" - ISOMsg = "O ISO de destino já existe. Deseja substituí-la?" - Case "ITA" - ISOMsg = "L'ISO di destinazione esiste già. Si desidera sostituirla?" - End Select - Case 1 - ISOMsg = "The target ISO already exists. Do you want to replace it?" - Case 2 - ISOMsg = "El archivo ISO ya existe. ¿Desea reemplazarlo?" - Case 3 - ISOMsg = "L'ISO cible existe déjà. Voulez-vous la remplacer ?" - Case 4 - ISOMsg = "O ISO de destino já existe. Deseja substituí-la?" - Case 5 - ISOMsg = "L'ISO di destinazione esiste già. Si desidera sostituirla?" - End Select + ISOMsg = LocalizationService.ForSection("ISOCreator.Validation")("Target.ISO.Message") If MsgBox(ISOMsg, vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.Yes Then Try File.Delete(TextBox3.Text) @@ -763,7 +325,12 @@ Public Class ISOCreator End Try - ISOCreator.StartInfo.Arguments = "-noprofile -nologo -executionpolicy unrestricted -file " & Quote & Application.StartupPath & "\bin\extps1\PE_Helper\PE_Helper.ps1" & Quote & " -cmd StartPEGen -arch " & ComboBox1.SelectedItem & " -imgFile " & Quote & TextBox1.Text & Quote & " -isoPath " & Quote & TextBox3.Text & Quote & " -unattendFile " & Quote & unattFile & Quote & If(CheckBox2.Checked, " -copyToVentoy", "") & If(CheckBox3.Checked, " -bootex", "") & If(CheckBox4.Checked, " -includeSysDrivers", "") + Dim peLanguageFile As String = LocalizationService.GetLanguageFilePath(MainForm.LanguageCode) + If String.IsNullOrWhiteSpace(peLanguageFile) OrElse Not File.Exists(peLanguageFile) Then + Throw New FileNotFoundException("The selected localization file could not be found.", peLanguageFile) + End If + + ISOCreator.StartInfo.Arguments = "-noprofile -nologo -executionpolicy unrestricted -file " & Quote & Application.StartupPath & "\bin\extps1\PE_Helper\PE_Helper.ps1" & Quote & " -cmd StartPEGen -arch " & ComboBox1.SelectedItem & " -imgFile " & Quote & TextBox1.Text & Quote & " -isoPath " & Quote & TextBox3.Text & Quote & " -unattendFile " & Quote & unattFile & Quote & " -languageCode " & Quote & MainForm.LanguageCode & Quote & " -languageFile " & Quote & peLanguageFile & Quote & If(CheckBox2.Checked, " -copyToVentoy", "") & If(CheckBox3.Checked, " -bootex", "") & If(CheckBox4.Checked, " -includeSysDrivers", "") ISOCreator.Start() ISOCreator.WaitForExit() DynaLog.LogMessage("The PE Helper process finished with exit code " & Hex(ISOCreator.ExitCode)) @@ -792,31 +359,7 @@ Public Class ISOCreator DynaLog.LogMessage("The PE Helper has finished.") DynaLog.LogMessage("- Did it succeed? " & If(success, "Yes", "No")) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = If(success, "The ISO file has been created successfully", "Failed to create the ISO file") - Case "ESN" - msg = If(success, "El archivo ISO ha sido creado satisfactoriamente", "No pudimos crear el archivo ISO") - Case "FRA" - msg = If(success, "Le fichier ISO a été créé avec succès", "Le processus de création de l'ISO a échoué") - Case "PTB", "PTG" - msg = If(success, "O ficheiro ISO foi criado com êxito", "O processo de criação do ISO falhou") - Case "ITA" - msg = If(success, "Il file ISO è stato creato con successo", "La creazione del file ISO non è riuscita") - End Select - Case 1 - msg = If(success, "The ISO file has been created successfully", "Failed to create the ISO file") - Case 2 - msg = If(success, "El archivo ISO ha sido creado satisfactoriamente", "No pudimos crear el archivo ISO") - Case 3 - msg = If(success, "Le fichier ISO a été créé avec succès", "Le processus de création de l'ISO a échoué") - Case 4 - msg = If(success, "O ficheiro ISO foi criado com êxito", "O processo de criação do ISO falhou") - Case 5 - msg = If(success, "Il file ISO è stato creato con successo", "La creazione del file ISO non è riuscita") - End Select + msg = If(success, LocalizationService.ForSection("ISOCreator.Background")("Isofile.Created.Done.Message"), LocalizationService.ForSection("ISOCreator.Background")("Failed.Create.Message")) WindowHelper.DisplayNotificationBalloon(If(success, ToolTipIcon.Info, ToolTipIcon.Warning), ImageTaskHeader1.ItemText, msg) OK_Button.Enabled = True Cancel_Button.Enabled = True @@ -870,31 +413,7 @@ Public Class ISOCreator End Sub Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Process.Start("https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install") - Case "ESN" - Process.Start("https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install") - Case "FRA" - Process.Start("https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install") - Case "PTB", "PTG" - Process.Start("https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install") - Case "ITA" - Process.Start("https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install") - End Select - Case 1 - Process.Start("https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install") - Case 2 - Process.Start("https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install") - Case 3 - Process.Start("https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install") - Case 4 - Process.Start("https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install") - Case 5 - Process.Start("https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install") - End Select + Process.Start(LocalizationService.ForSection("ISOCreator.Links")("Https.Learn.Message")) End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click @@ -932,81 +451,9 @@ Public Class ISOCreator Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Dim uefiCA2023_Message As String = "", uefiCA2023_Title As String = "", uefiCA2023_NotSupportedOnCurrentSystemMessage As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - uefiCA2023_Message = "This option will create ISO files that contain EFI boot binaries that are signed with the " & Quote & "Windows UEFI CA 2023" & Quote & " certificate." & CrLf & CrLf & - "Some computers that use UEFI may not boot correctly to this ISO file with the updated boot binaries. Because of this, it is recommended that you check your test equipment for compatibility with these binaries." & CrLf & CrLf & - "Run the PowerShell command described in the Help documentation for the ISO creator to determine whether a device has this certificate installed." & CrLf & CrLf & - "If you have any doubts, we recommend that you leave this option unchecked." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "We have detected that, currently, this system does not support Windows UEFI CA 2023 boot binaries. If you continue with ISO creation, you may not be able to boot to the resulting ISO file on this system." - uefiCA2023_Title = "Windows UEFI CA 2023 information" - Case "ESN" - uefiCA2023_Message = "Esta opción creará archivos ISO que contengan archivos de arranque EFI firmados con el certificado " & Quote & "Windows UEFI CA 2023" & Quote & CrLf & CrLf & - "Algunos equipos que utilicen UEFI podrán no iniciar correctamente este archivo ISO con los archivos de arranque actualizados. Debido a esto, es recomendable que compruebe sus dispositivos de prueba para ver si son compatibles con estos archivos." & CrLf & CrLf & - "Ejecute el comando de PowerShell descrito en la Ayuda para el creador de archivos ISO (en inglés) para determinar si un equipo tiene este certificado instalado." & CrLf & CrLf & - "Si tiene dudas, le recomendamos que deje esta opción sin marcar." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "Hemos detectado que, actualmente, su sistema no soporta archivos de arranque Windows UEFI CA 2023. Si continúa con la creación de archivos ISO, podría no ser capaz de arrancar a archivos ISO resultantes en este sistema." - uefiCA2023_Title = "Información sobre Windows UEFI CA 2023" - Case "FRA" - uefiCA2023_Message = "Cette option créera des fichiers ISO contenant des binaires de démarrage EFI signés avec le certificat " & Quote & "Windows UEFI CA 2023" & Quote & "." & CrLf & CrLf & - "Certains ordinateurs qui utilisent l'UEFI peuvent ne pas démarrer correctement avec ce fichier ISO contenant les binaires de démarrage mis à jour. Pour cette raison, il est recommandé de vérifier la compatibilité de votre équipement de test avec ces binaires." & CrLf & CrLf & - "Exécutez la commande PowerShell décrite dans la documentation d'aide du créateur de l'ISO (en anglais) pour déterminer si ce certificat est installé sur un appareil." & CrLf & CrLf & - "Si vous avez des doutes, nous vous recommandons de ne pas cocher cette option." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "Nous avons détecté que, actuellement, ce système ne prend pas en charge les binaires de démarrage Windows UEFI CA 2023. Si vous poursuivez la création de l'ISO, vous risquez de ne pas pouvoir démarrer à partir du fichier ISO obtenu sur ce système." - uefiCA2023_Title = "Informations Windows UEFI CA 2023" - Case "PTB", "PTG" - uefiCA2023_Message = "Esta opção criará ficheiros ISO que contêm binários de arranque EFI assinados com o certificado " & Quote & "Windows UEFI CA 2023" & Quote & "." & CrLf & CrLf & - "Alguns computadores que utilizam UEFI podem não arrancar corretamente com este ficheiro ISO com os binários de arranque actualizados. Por este motivo, recomenda-se que verifique a compatibilidade do seu equipamento de teste com estes binários." & CrLf & CrLf & - "Execute o comando PowerShell descrito na documentação de ajuda do criador ISO (em inglês) para determinar se um dispositivo tem este certificado instalado." & CrLf & CrLf & - "Se tiver dúvidas, recomendamos que deixe esta opção desmarcada." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "Detetámos que, atualmente, este sistema não suporta binários de arranque Windows UEFI CA 2023. Se continuar com a criação da ISO, poderá não conseguir arrancar a partir do ficheiro ISO resultante neste sistema." - uefiCA2023_Title = "Informações sobre o Windows UEFI CA 2023" - Case "ITA" - uefiCA2023_Message = "Questa opzione creerà file ISO contenenti binari di avvio EFI firmati con il certificato " & Quote & "Windows UEFI CA 2023" & Quote & "." & CrLf & CrLf & - "Alcuni computer che utilizzano UEFI potrebbero non avviarsi correttamente da questo file ISO con i binari di avvio aggiornati. Per questo motivo, si consiglia di verificare la compatibilità della propria apparecchiatura di test con questi file binari." & CrLf & CrLf & - "Eseguire il comando PowerShell descritto nella documentazione della Guida per il creatore ISO (in inglese) per determinare se un dispositivo ha questo certificato installato." & CrLf & CrLf & - "In caso di dubbi, si consiglia di lasciare questa opzione deselezionata." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "Abbiamo rilevato che, attualmente, questo sistema non supporta i file binari di avvio Windows UEFI CA 2023. Se si procede con la creazione dell'ISO, potrebbe non essere possibile avviare il file ISO risultante su questo sistema." - uefiCA2023_Title = "Informazioni su Windows UEFI CA 2023" - End Select - Case 1 - uefiCA2023_Message = "This option will create ISO files that contain EFI boot binaries that are signed with the " & Quote & "Windows UEFI CA 2023" & Quote & " certificate." & CrLf & CrLf & - "Some computers that use UEFI may not boot correctly to this ISO file with the updated boot binaries. Because of this, it is recommended that you check your test equipment for compatibility with these binaries." & CrLf & CrLf & - "Run the PowerShell command described in the Help documentation for the ISO creator to determine whether a device has this certificate installed." & CrLf & CrLf & - "If you have any doubts, we recommend that you leave this option unchecked." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "We have detected that, currently, this system does not support Windows UEFI CA 2023 boot binaries. If you continue with ISO creation, you may not be able to boot to the resulting ISO file on this system." - uefiCA2023_Title = "Windows UEFI CA 2023 information" - Case 2 - uefiCA2023_Message = "Esta opción creará archivos ISO que contengan archivos de arranque EFI firmados con el certificado " & Quote & "Windows UEFI CA 2023" & Quote & CrLf & CrLf & - "Algunos equipos que utilicen UEFI podrán no iniciar correctamente este archivo ISO con los archivos de arranque actualizados. Debido a esto, es recomendable que compruebe sus dispositivos de prueba para ver si son compatibles con estos archivos." & CrLf & CrLf & - "Ejecute el comando de PowerShell descrito en la Ayuda para el creador de archivos ISO (en inglés) para determinar si un equipo tiene este certificado instalado." & CrLf & CrLf & - "Si tiene dudas, le recomendamos que deje esta opción sin marcar." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "Hemos detectado que, actualmente, su sistema no soporta archivos de arranque Windows UEFI CA 2023. Si continúa con la creación de archivos ISO, podría no ser capaz de arrancar a archivos ISO resultantes en este sistema." - uefiCA2023_Title = "Información sobre Windows UEFI CA 2023" - Case 3 - uefiCA2023_Message = "Cette option créera des fichiers ISO contenant des binaires de démarrage EFI signés avec le certificat " & Quote & "Windows UEFI CA 2023" & Quote & "." & CrLf & CrLf & - "Certains ordinateurs qui utilisent l'UEFI peuvent ne pas démarrer correctement avec ce fichier ISO contenant les binaires de démarrage mis à jour. Pour cette raison, il est recommandé de vérifier la compatibilité de votre équipement de test avec ces binaires." & CrLf & CrLf & - "Exécutez la commande PowerShell décrite dans la documentation d'aide du créateur de l'ISO (en anglais) pour déterminer si ce certificat est installé sur un appareil." & CrLf & CrLf & - "Si vous avez des doutes, nous vous recommandons de ne pas cocher cette option." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "Nous avons détecté que, actuellement, ce système ne prend pas en charge les binaires de démarrage Windows UEFI CA 2023. Si vous poursuivez la création de l'ISO, vous risquez de ne pas pouvoir démarrer à partir du fichier ISO obtenu sur ce système." - uefiCA2023_Title = "Informations Windows UEFI CA 2023" - Case 4 - uefiCA2023_Message = "Esta opção criará ficheiros ISO que contêm binários de arranque EFI assinados com o certificado " & Quote & "Windows UEFI CA 2023" & Quote & "." & CrLf & CrLf & - "Alguns computadores que utilizam UEFI podem não arrancar corretamente com este ficheiro ISO com os binários de arranque actualizados. Por este motivo, recomenda-se que verifique a compatibilidade do seu equipamento de teste com estes binários." & CrLf & CrLf & - "Execute o comando PowerShell descrito na documentação de ajuda do criador ISO (em inglês) para determinar se um dispositivo tem este certificado instalado." & CrLf & CrLf & - "Se tiver dúvidas, recomendamos que deixe esta opção desmarcada." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "Detetámos que, atualmente, este sistema não suporta binários de arranque Windows UEFI CA 2023. Se continuar com a criação da ISO, poderá não conseguir arrancar a partir do ficheiro ISO resultante neste sistema." - uefiCA2023_Title = "Informações sobre o Windows UEFI CA 2023" - Case 5 - uefiCA2023_Message = "Questa opzione creerà file ISO contenenti binari di avvio EFI firmati con il certificato " & Quote & "Windows UEFI CA 2023" & Quote & "." & CrLf & CrLf & - "Alcuni computer che utilizzano UEFI potrebbero non avviarsi correttamente da questo file ISO con i binari di avvio aggiornati. Per questo motivo, si consiglia di verificare la compatibilità della propria apparecchiatura di test con questi file binari." & CrLf & CrLf & - "Eseguire il comando PowerShell descritto nella documentazione della Guida per il creatore ISO (in inglese) per determinare se un dispositivo ha questo certificato installato." & CrLf & CrLf & - "In caso di dubbi, si consiglia di lasciare questa opzione deselezionata." - uefiCA2023_NotSupportedOnCurrentSystemMessage = "Abbiamo rilevato che, attualmente, questo sistema non supporta i file binari di avvio Windows UEFI CA 2023. Se si procede con la creazione dell'ISO, potrebbe non essere possibile avviare il file ISO risultante su questo sistema." - uefiCA2023_Title = "Informazioni su Windows UEFI CA 2023" - End Select + uefiCA2023_Message = LocalizationService.ForSection("ISOCreator")("Create.ISO.Message") & LocalizationService.ForSection("ISOCreator")("Computers.UEFI.Message") & CrLf & CrLf & LocalizationService.ForSection("ISOCreator")("Run.Power.Shell.Message") & CrLf & CrLf & LocalizationService.ForSection("ISOCreator")("Doubts.Recommend.Message") + uefiCA2023_NotSupportedOnCurrentSystemMessage = LocalizationService.ForSection("ISOCreator")("Have.Detected.Message") + uefiCA2023_Title = LocalizationService.ForSection("ISOCreator")("Windows.Title") If CheckBox3.Checked Then MsgBox(uefiCA2023_Message, vbOKOnly + vbInformation, uefiCA2023_Title) @@ -1069,12 +516,10 @@ Public Class ISOCreator End Sub Private Sub CheckBox4_MouseHover(sender As Object, e As EventArgs) Handles CheckBox4.MouseHover - WindowHelper.DisplayToolTip(sender, "When you check this option, storage controllers and network adapter drivers from this machine will be included" & CrLf & - "in your ISO file. They will also be applied to the image file once deployed.") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("ISOCreator")("Check.Option.Storage.Message")) End Sub Private Sub CheckBox3_MouseHover(sender As Object, e As EventArgs) Handles CheckBox3.MouseHover - WindowHelper.DisplayToolTip(sender, "If available in your installed Assessment and Deployment Kit, your ISO file will use boot binaries signed with Windows UEFI CA 2023." & CrLf & - "This option is designed for target systems that support Secure Boot and have the latest boot certificates in the allowlist database (DB).") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("ISOCreator")("AvailableADK.Message")) End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/ISOFiles/NewTestingEnv.Designer.vb b/Panels/ISOFiles/NewTestingEnv.Designer.vb index 0119fe25f..5baeebcae 100644 --- a/Panels/ISOFiles/NewTestingEnv.Designer.vb +++ b/Panels/ISOFiles/NewTestingEnv.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class NewTestingEnv Inherits System.Windows.Forms.Form @@ -65,7 +65,7 @@ Partial Class NewTestingEnv Me.LinkLabel1.Size = New System.Drawing.Size(343, 13) Me.LinkLabel1.TabIndex = 20 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Download the Windows ADK" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Download.Windows.ADK.Link") ' 'OK_Button ' @@ -75,7 +75,7 @@ Partial Class NewTestingEnv Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(75, 23) Me.OK_Button.TabIndex = 18 - Me.OK_Button.Text = "Create" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Create.Button") Me.OK_Button.UseVisualStyleBackColor = True ' 'Cancel_Button @@ -86,7 +86,7 @@ Partial Class NewTestingEnv Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(75, 23) Me.Cancel_Button.TabIndex = 19 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Cancel.Button") Me.Cancel_Button.UseVisualStyleBackColor = True ' 'Label2 @@ -98,7 +98,7 @@ Partial Class NewTestingEnv Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(760, 55) Me.Label2.TabIndex = 16 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("WizardHelp.Message") ' 'Panel1 ' @@ -129,7 +129,7 @@ Partial Class NewTestingEnv Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(105, 13) Me.Label6.TabIndex = 6 - Me.Label6.Text = "Architecture:" + Me.Label6.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Architecture.Label") ' 'Label5 ' @@ -139,7 +139,7 @@ Partial Class NewTestingEnv Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(132, 13) Me.Label5.TabIndex = 15 - Me.Label5.Text = "Environment architecture:" + Me.Label5.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Env.Architecture.Label") ' 'Button3 ' @@ -149,7 +149,7 @@ Partial Class NewTestingEnv Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 14 - Me.Button3.Text = "Browse..." + Me.Button3.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Browse.Button") Me.Button3.UseVisualStyleBackColor = True ' 'TextBox3 @@ -169,7 +169,7 @@ Partial Class NewTestingEnv Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(120, 13) Me.Label7.TabIndex = 12 - Me.Label7.Text = "Target project location:" + Me.Label7.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Target.Project.Label") ' 'GroupBox2 ' @@ -181,7 +181,7 @@ Partial Class NewTestingEnv Me.GroupBox2.Size = New System.Drawing.Size(760, 98) Me.GroupBox2.TabIndex = 21 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Progress" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Progress.Group") ' 'ProgressContainer ' @@ -210,7 +210,7 @@ Partial Class NewTestingEnv Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(754, 78) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Once you're ready, click the Create button." + Me.Label3.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Re.Ready.Create.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'ISOProgressPanel @@ -244,8 +244,7 @@ Partial Class NewTestingEnv Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(726, 13) Me.Label9.TabIndex = 0 - Me.Label9.Text = "You can do other things while the ISO is being created. Come back here anytime fo" & _ - "r an updated status." + Me.Label9.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Other.Things.Message") ' 'Label8 ' @@ -256,7 +255,7 @@ Partial Class NewTestingEnv Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(726, 13) Me.Label8.TabIndex = 0 - Me.Label8.Text = "Status" + Me.Label8.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Status.Label") ' 'FolderBrowserDialog1 ' @@ -313,7 +312,7 @@ Partial Class NewTestingEnv Me.Name = "NewTestingEnv" Me.ShowIcon = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Create a testing environment" + Me.Text = LocalizationService.ForSection("Designer.NewTestingEnv")("Create.Environment.Label") Me.Panel1.ResumeLayout(False) Me.GroupBox2.ResumeLayout(False) Me.ProgressContainer.ResumeLayout(False) diff --git a/Panels/ISOFiles/NewTestingEnv.resx b/Panels/ISOFiles/NewTestingEnv.resx index 2be9b307e..c4c96af62 100644 --- a/Panels/ISOFiles/NewTestingEnv.resx +++ b/Panels/ISOFiles/NewTestingEnv.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,11 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments. - -The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file. - 17, 17 diff --git a/Panels/ISOFiles/NewTestingEnv.vb b/Panels/ISOFiles/NewTestingEnv.vb index 14bb94e21..d47f6fbbf 100644 --- a/Panels/ISOFiles/NewTestingEnv.vb +++ b/Panels/ISOFiles/NewTestingEnv.vb @@ -1,209 +1,31 @@ -Imports System.IO +Imports System.IO Imports System.Threading Imports Microsoft.VisualBasic.ControlChars Public Class NewTestingEnv - Dim progressMessages() As String = New String(2) {"Status", "Creating project. This can take some time. Please wait...", "The project has been created"} + Dim progressMessages() As String = New String(2) {"", "", ""} Dim success As Boolean Dim architectures() As String = New String(2) {"x86", "amd64", "arm64"} Private Sub NewTestingEnv_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progressMessages(0) = "Status" - progressMessages(1) = "Creating project. This can take some time. Please wait..." - progressMessages(2) = "The project has been created" - Text = "Create a testing environment" - ImageTaskHeader1.ItemText = Text - Label2.Text = "This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments." & CrLf & CrLf & - "The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file." - Label3.Text = "Once you're ready, click the Create button." - Label5.Text = "Environment architecture:" - Label6.Text = "Architecture:" - Label7.Text = "Target project location:" - Label8.Text = progressMessages(0) - Label9.Text = "You can do other things while the project is being created. Come back here anytime for an updated status." - Button3.Text = "Browse..." - OK_Button.Text = "Create" - Cancel_Button.Text = "Cancel" - GroupBox2.Text = "Progress" - LinkLabel1.Text = "Download the Windows ADK" - Case "ESN" - progressMessages(0) = "Estado" - progressMessages(1) = "Creando proyecto. Esto puede llevar algo de tiempo. Espere..." - progressMessages(2) = "El proyecto ha sido creado" - Text = "Crear un entorno de pruebas" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Este asistente le creará un entorno que le ayudará a probar sus aplicaciones en entornos de preinstalación de Windows." & CrLf & CrLf & - "El proyecto que será creado contiene una plantilla de solución compatible con todos los entornos, y recursos para crear aplicaciones para entornos de preinstalación de Windows. Puede aprender más acerca de estos proyectos en el archivo LÉAME incluido." - Label3.Text = "Cuando esté listo, haga clic en Crear." - Label5.Text = "Arquitectura del entorno:" - Label6.Text = "Arquitectura:" - Label7.Text = "Ubicación del proyecto:" - Label8.Text = progressMessages(0) - Label9.Text = "Puede hacer otras cosas mientras se crea el proyecto. Vuelva aquí para ver un estado actualizado." - Button3.Text = "Examinar..." - OK_Button.Text = "Crear" - Cancel_Button.Text = "Cancelar" - GroupBox2.Text = "Progreso" - LinkLabel1.Text = "Descargar el ADK de Windows" - Case "FRA" - progressMessages(0) = "Statut" - progressMessages(1) = "Création du projet. Cela peut prendre un certain temps. Veuillez patienter..." - progressMessages(2) = "Le projet a été créé" - Text = "Créer un environnement de test" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Cet assistant va créer un environnement qui vous aidera à tester vos applications sur les environnements de préinstallation Windows." & CrLf & CrLf & - "Le projet qui sera créé contient une solution modèle compatible avec tous les environnements et ressources pour la création d'applications pour les environnements de préinstallation Windows. Vous pouvez en savoir plus sur ces projets dans le fichier LISEZMOI inclus." - Label3.Text = "Lorsque vous êtes prêt, cliquez sur le bouton Créer." - Label5.Text = "Architecture de l'environnement :" - Label6.Text = "Architecture :" - Label7.Text = "Emplacement du projet cible :" - Label8.Text = progressMessages(0) - Label9.Text = "Vous pouvez faire d'autres choses pendant la création du projet. Revenez ici à tout moment pour connaître l'état d'avancement du projet." - Button3.Text = "Parcourir..." - OK_Button.Text = "Créer" - Cancel_Button.Text = "Annuler" - GroupBox2.Text = "Progrès" - LinkLabel1.Text = "Télécharger l'ADK Windows" - Case "PTB", "PTG" - progressMessages(0) = "Estado" - progressMessages(1) = "A criar projeto. Isto pode demorar algum tempo. Por favor, aguarde..." - progressMessages(2) = "O projeto foi criado" - Text = "Criar um ambiente de teste" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Este assistente irá criar um ambiente que o ajudará a testar as suas aplicações em ambientes de pré-instalação do Windows." & CrLf & CrLf & - "O projeto que será criado contém uma solução modelo compatível com todos os ambientes e recursos para a criação de aplicações para Ambientes de Pré-instalação do Windows. Pode obter mais informações sobre estes projectos no ficheiro LEIAME incluído." - Label3.Text = "Quando estiver pronto, clique no botão Criar." - Label5.Text = "Arquitetura do ambiente:" - Label6.Text = "Arquitetura:" - Label7.Text = "Localização do projeto alvo:" - Label8.Text = progressMessages(0) - Label9.Text = "Pode fazer outras coisas enquanto o projeto está a ser criado. Volte aqui em qualquer altura para obter um estado atualizado." - Button3.Text = "Navegar..." - OK_Button.Text = "Criar" - Cancel_Button.Text = "Cancelar" - GroupBox2.Text = "Progresso" - LinkLabel1.Text = "Baixar o Windows ADK" - Case "ITA" - progressMessages(0) = "Stato" - progressMessages(1) = "Creazione del progetto. L'operazione può richiedere del tempo. Attendere..." - progressMessages(2) = "Il progetto è stato creato" - Text = "Creare un ambiente di test" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Questa procedura guidata creerà un ambiente che vi aiuterà a testare le vostre applicazioni sugli ambienti di preinstallazione di Windows." & CrLf & CrLf & - "Il progetto che verrà creato contiene una soluzione modello compatibile con tutti gli ambienti e le risorse per la creazione di applicazioni per gli ambienti di preinstallazione di Windows. Per ulteriori informazioni su questi progetti, consultare il file LEGGIMI incluso." - Label3.Text = "Una volta pronti, fate clic sul pulsante Crea." - Label5.Text = "Architettura dell'ambiente:" - Label6.Text = "Architettura:" - Label7.Text = "Posizione del progetto di destinazione:" - Label8.Text = progressMessages(0) - Label9.Text = "Potete fare altre cose mentre il progetto viene creato. Tornate qui in qualsiasi momento per avere uno stato aggiornato." - Button3.Text = "Sfoglia..." - OK_Button.Text = "Crea" - Cancel_Button.Text = "Annullare" - GroupBox2.Text = "Stato di avanzamento" - LinkLabel1.Text = "Scarica l'ADK di Windows" - End Select - Case 1 - progressMessages(0) = "Status" - progressMessages(1) = "Creating project. This can take some time. Please wait..." - progressMessages(2) = "The project has been created" - Text = "Create a testing environment" - ImageTaskHeader1.ItemText = Text - Label2.Text = "This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments." & CrLf & CrLf & - "The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file." - Label3.Text = "Once you're ready, click the Create button." - Label5.Text = "Environment architecture:" - Label6.Text = "Architecture:" - Label7.Text = "Target project location:" - Label8.Text = progressMessages(0) - Label9.Text = "You can do other things while the project is being created. Come back here anytime for an updated status." - Button3.Text = "Browse..." - OK_Button.Text = "Create" - Cancel_Button.Text = "Cancel" - GroupBox2.Text = "Progress" - LinkLabel1.Text = "Download the Windows ADK" - Case 2 - progressMessages(0) = "Estado" - progressMessages(1) = "Creando proyecto. Esto puede llevar algo de tiempo. Espere..." - progressMessages(2) = "El proyecto ha sido creado" - Text = "Crear un entorno de pruebas" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Este asistente le creará un entorno que le ayudará a probar sus aplicaciones en entornos de preinstalación de Windows." & CrLf & CrLf & - "El proyecto que será creado contiene una plantilla de solución compatible con todos los entornos, y recursos para crear aplicaciones para entornos de preinstalación de Windows. Puede aprender más acerca de estos proyectos en el archivo LÉAME incluido." - Label3.Text = "Cuando esté listo, haga clic en Crear." - Label5.Text = "Arquitectura del entorno:" - Label6.Text = "Arquitectura:" - Label7.Text = "Ubicación del proyecto:" - Label8.Text = progressMessages(0) - Label9.Text = "Puede hacer otras cosas mientras se crea el proyecto. Vuelva aquí para ver un estado actualizado." - Button3.Text = "Examinar..." - OK_Button.Text = "Crear" - Cancel_Button.Text = "Cancelar" - GroupBox2.Text = "Progreso" - LinkLabel1.Text = "Descargar el ADK de Windows" - Case 3 - progressMessages(0) = "Statut" - progressMessages(1) = "Création du projet. Cela peut prendre un certain temps. Veuillez patienter..." - progressMessages(2) = "Le projet a été créé" - Text = "Créer un environnement de test" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Cet assistant va créer un environnement qui vous aidera à tester vos applications sur les environnements de préinstallation Windows." & CrLf & CrLf & - "Le projet qui sera créé contient une solution modèle compatible avec tous les environnements et ressources pour la création d'applications pour les environnements de préinstallation Windows. Vous pouvez en savoir plus sur ces projets dans le fichier LISEZMOI inclus." - Label3.Text = "Lorsque vous êtes prêt, cliquez sur le bouton Créer." - Label5.Text = "Architecture de l'environnement :" - Label6.Text = "Architecture :" - Label7.Text = "Emplacement du projet cible :" - Label8.Text = progressMessages(0) - Label9.Text = "Vous pouvez faire d'autres choses pendant la création du projet. Revenez ici à tout moment pour connaître l'état d'avancement du projet." - Button3.Text = "Parcourir..." - OK_Button.Text = "Créer" - Cancel_Button.Text = "Annuler" - GroupBox2.Text = "Progrès" - LinkLabel1.Text = "Télécharger l'ADK Windows" - Case 4 - progressMessages(0) = "Estado" - progressMessages(1) = "A criar projeto. Isto pode demorar algum tempo. Por favor, aguarde..." - progressMessages(2) = "O projeto foi criado" - Text = "Criar um ambiente de teste" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Este assistente irá criar um ambiente que o ajudará a testar as suas aplicações em ambientes de pré-instalação do Windows." & CrLf & CrLf & - "O projeto que será criado contém uma solução modelo compatível com todos os ambientes e recursos para a criação de aplicações para Ambientes de Pré-instalação do Windows. Pode obter mais informações sobre estes projectos no ficheiro LEIAME incluído." - Label3.Text = "Quando estiver pronto, clique no botão Criar." - Label5.Text = "Arquitetura do ambiente:" - Label6.Text = "Arquitetura:" - Label7.Text = "Localização do projeto alvo:" - Label8.Text = progressMessages(0) - Label9.Text = "Pode fazer outras coisas enquanto o projeto está a ser criado. Volte aqui em qualquer altura para obter um estado atualizado." - Button3.Text = "Navegar..." - OK_Button.Text = "Criar" - Cancel_Button.Text = "Cancelar" - GroupBox2.Text = "Progresso" - LinkLabel1.Text = "Baixar o Windows ADK" - Case 5 - progressMessages(0) = "Stato" - progressMessages(1) = "Creazione del progetto. L'operazione può richiedere del tempo. Attendere..." - progressMessages(2) = "Il progetto è stato creato" - Text = "Creare un ambiente di test" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Questa procedura guidata creerà un ambiente che vi aiuterà a testare le vostre applicazioni sugli ambienti di preinstallazione di Windows." & CrLf & CrLf & - "Il progetto che verrà creato contiene una soluzione modello compatibile con tutti gli ambienti e le risorse per la creazione di applicazioni per gli ambienti di preinstallazione di Windows. Per ulteriori informazioni su questi progetti, consultare il file LEGGIMI incluso." - Label3.Text = "Una volta pronti, fate clic sul pulsante Crea." - Label5.Text = "Architettura dell'ambiente:" - Label6.Text = "Architettura:" - Label7.Text = "Posizione del progetto di destinazione:" - Label8.Text = progressMessages(0) - Label9.Text = "Potete fare altre cose mentre il progetto viene creato. Tornate qui in qualsiasi momento per avere uno stato aggiornato." - Button3.Text = "Sfoglia..." - OK_Button.Text = "Crea" - Cancel_Button.Text = "Annullare" - GroupBox2.Text = "Stato di avanzamento" - LinkLabel1.Text = "Scarica l'ADK di Windows" - End Select + progressMessages(0) = LocalizationService.ForSection("NewTestingEnv")("Status.Message") + progressMessages(1) = LocalizationService.ForSection("NewTestingEnv")("Creating.Project.Message") + progressMessages(2) = LocalizationService.ForSection("NewTestingEnv")("ProjectCreated.Message") + Text = LocalizationService.ForSection("NewTestingEnv")("Create.Environment.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("NewTestingEnv")("WizardHelp.Message") & LocalizationService.ForSection("NewTestingEnv")("ProjectTemplate.Message") + Label3.Text = LocalizationService.ForSection("NewTestingEnv")("Re.Ready.Create.Label") + Label5.Text = LocalizationService.ForSection("NewTestingEnv")("Env.Architecture.Label") + Label6.Text = LocalizationService.ForSection("NewTestingEnv")("Architecture.Label") + Label7.Text = LocalizationService.ForSection("NewTestingEnv")("Target.Project.Label") + Label8.Text = progressMessages(0) + Label9.Text = LocalizationService.ForSection("NewTestingEnv")("Other.Things.Project.Message") + Button3.Text = LocalizationService.ForSection("NewTestingEnv")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("NewTestingEnv")("Create.Button") + Cancel_Button.Text = LocalizationService.ForSection("NewTestingEnv")("Cancel.Button") + GroupBox2.Text = LocalizationService.ForSection("NewTestingEnv")("Progress.Group") + LinkLabel1.Text = LocalizationService.ForSection("NewTestingEnv")("Download.Windows.ADK.Link") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -224,31 +46,7 @@ Public Class NewTestingEnv ' Check ADK status If Not Directory.Exists(ADKPath) Then DynaLog.LogMessage("ADK installation directory " & Quote & ADKPath & Quote & " is not found in this system. Either it has not been installed or it has been installed somewhere else.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Process.Start("https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install") - Case "ESN" - Process.Start("https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install") - Case "FRA" - Process.Start("https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install") - Case "PTB", "PTG" - Process.Start("https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install") - Case "ITA" - Process.Start("https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install") - End Select - Case 1 - Process.Start("https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install") - Case 2 - Process.Start("https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install") - Case 3 - Process.Start("https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install") - Case 4 - Process.Start("https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install") - Case 5 - Process.Start("https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install") - End Select + Process.Start(LocalizationService.ForSection("NewTestingEnv")("Https.Learn.Message")) Close() End If @@ -281,31 +79,7 @@ Public Class NewTestingEnv End Sub Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Process.Start("https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install") - Case "ESN" - Process.Start("https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install") - Case "FRA" - Process.Start("https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install") - Case "PTB", "PTG" - Process.Start("https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install") - Case "ITA" - Process.Start("https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install") - End Select - Case 1 - Process.Start("https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install") - Case 2 - Process.Start("https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install") - Case 3 - Process.Start("https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install") - Case 4 - Process.Start("https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install") - Case 5 - Process.Start("https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install") - End Select + Process.Start(LocalizationService.ForSection("NewTestingEnv.Links")("Https.Learn.Message")) End Sub Private Sub Cancel_Button_Click(sender As Object, e As EventArgs) Handles Cancel_Button.Click @@ -357,31 +131,7 @@ Public Class NewTestingEnv DynaLog.LogMessage("The PE Helper has finished.") DynaLog.LogMessage("- Did it succeed? " & If(success, "Yes", "No")) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = If(success, "The project has been created successfully", "Failed to create the project") - Case "ESN" - msg = If(success, "El proyecto ha sido creado satisfactoriamente", "No pudimos crear el proyecto") - Case "FRA" - msg = If(success, "Le projet a été créé avec succès", "Le processus de création de le projet a échoué") - Case "PTB", "PTG" - msg = If(success, "O projeto ISO foi criado com êxito", "O processo de criação do projeto falhou") - Case "ITA" - msg = If(success, "Il progetto è stato creato con successo", "La creazione del progetto non è riuscita") - End Select - Case 1 - msg = If(success, "The project has been created successfully", "Failed to create the project") - Case 2 - msg = If(success, "El proyecto ha sido creado satisfactoriamente", "No pudimos crear el proyecto") - Case 3 - msg = If(success, "Le projet a été créé avec succès", "Le processus de création de le projet a échoué") - Case 4 - msg = If(success, "O projeto ISO foi criado com êxito", "O processo de criação do projeto falhou") - Case 5 - msg = If(success, "Il progetto è stato creato con successo", "La creazione del progetto non è riuscita") - End Select + msg = If(success, LocalizationService.ForSection("NewTestingEnv.Background")("Project.Created.Done.Message"), LocalizationService.ForSection("NewTestingEnv.Background")("Failed.Create.Message")) MsgBox(msg, vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) OK_Button.Enabled = True Cancel_Button.Enabled = True @@ -396,4 +146,4 @@ Public Class NewTestingEnv Beep() End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/ISOFiles/PECustomizerDialog.Designer.vb b/Panels/ISOFiles/PECustomizerDialog.Designer.vb index 7173a564c..bb1b1bb9f 100644 --- a/Panels/ISOFiles/PECustomizerDialog.Designer.vb +++ b/Panels/ISOFiles/PECustomizerDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class PECustomizerDialog Inherits System.Windows.Forms.Form @@ -98,7 +98,7 @@ Partial Class PECustomizerDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.PECustomizer")("Ok.Button") ' 'Cancel_Button ' @@ -109,7 +109,7 @@ Partial Class PECustomizerDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.PECustomizer")("Cancel.Button") ' 'Label1 ' @@ -118,7 +118,7 @@ Partial Class PECustomizerDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(287, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Customize the Preinstallation Environment for this session:" + Me.Label1.Text = LocalizationService.ForSection("Designer.PECustomizer")("Customize.Session.Label") ' 'GroupBox1 ' @@ -131,7 +131,7 @@ Partial Class PECustomizerDialog Me.GroupBox1.Size = New System.Drawing.Size(556, 100) Me.GroupBox1.TabIndex = 2 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Wallpaper" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.PECustomizer")("Wallpaper.Group") ' 'Button1 ' @@ -141,7 +141,7 @@ Partial Class PECustomizerDialog Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 4 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.PECustomizer")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -151,7 +151,7 @@ Partial Class PECustomizerDialog Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(199, 17) Me.CheckBox1.TabIndex = 3 - Me.CheckBox1.Text = "Use my current desktop background" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.PECustomizer")("My.Desktop.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -171,7 +171,7 @@ Partial Class PECustomizerDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(206, 13) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Path to custom wallpaper (JPG files only):" + Me.Label2.Text = LocalizationService.ForSection("Designer.PECustomizer")("Path.Custom.Wallpaper.Label") ' 'CheckBox2 ' @@ -182,7 +182,7 @@ Partial Class PECustomizerDialog Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(508, 17) Me.CheckBox2.TabIndex = 3 - Me.CheckBox2.Text = "Show version information on the top-left corner of the primary screen" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.PECustomizer")("Show.Version.Top.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -194,7 +194,7 @@ Partial Class PECustomizerDialog Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(324, 17) Me.CheckBox3.TabIndex = 3 - Me.CheckBox3.Text = "Display images and groups in a WDS server in a graphical view" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.PECustomizer")("Display.Images.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox4 @@ -209,8 +209,7 @@ Partial Class PECustomizerDialog Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(502, 32) Me.CheckBox4.TabIndex = 3 - Me.CheckBox4.Text = "Show a report with hardware IDs of unknown devices when launching the Driver Inst" & _ - "allation Module" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.PECustomizer")("Show.Report.Hardware.Message") Me.CheckBox4.TextAlign = System.Drawing.ContentAlignment.TopLeft Me.CheckBox4.UseVisualStyleBackColor = True ' @@ -223,19 +222,19 @@ Partial Class PECustomizerDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(508, 13) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Default partition table override:" + Me.Label3.Text = LocalizationService.ForSection("Designer.PECustomizer")("Default.Partitio.Table.Label") ' 'ComboBox1 ' Me.ComboBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Do not use a partition table override", "Default to using a MBR partition table regardless of the firmware type", "Default to using a GPT partition table regardless of the firmware type"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.PECustomizer")("Partition.Table.Item"), LocalizationService.ForSection("Designer.PECustomizer")("Default.Mbrpartition.Item"), LocalizationService.ForSection("Designer.PECustomizer")("Default.Gptpartition.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(9, 125) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(511, 21) Me.ComboBox1.TabIndex = 4 - Me.ComboBox1.Text = "Do not use a partition table override" + Me.ComboBox1.Text = LocalizationService.ForSection("Designer.PECustomizer")("Partition.Table.Item") ' 'Label4 ' @@ -246,8 +245,7 @@ Partial Class PECustomizerDialog Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(489, 13) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Partition table overrides affect both disk configuration and boot file creation p" & _ - "rocedures taken." + Me.Label4.Text = LocalizationService.ForSection("Designer.PECustomizer")("Partition.Table.Message") ' 'Label5 ' @@ -258,21 +256,19 @@ Partial Class PECustomizerDialog Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(508, 13) Me.Label5.TabIndex = 1 - Me.Label5.Text = "On supported UEFI systems with Secure Boot and Windows UEFI CA 2023 certificates:" & _ - "" + Me.Label5.Text = LocalizationService.ForSection("Designer.PECustomizer")("SecureBoot.Label") ' 'ComboBox2 ' Me.ComboBox2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox2.FormattingEnabled = True - Me.ComboBox2.Items.AddRange(New Object() {"Ask me which version of the boot binary to use", "Default to boot binaries signed with Microsoft Windows Production PCA 2011", "Default to boot binaries signed with Windows UEFI CA 2023, if available on my tar" & _ - "get image"}) + Me.ComboBox2.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.PECustomizer")("Ask.Me.Version.Item"), LocalizationService.ForSection("Designer.PECustomizer.BootSign")("Windows.Production.PCA.Item"), LocalizationService.ForSection("Designer.PECustomizer.BootSign")("Windows.UEFI.CA.Item")}) Me.ComboBox2.Location = New System.Drawing.Point(9, 192) Me.ComboBox2.Name = "ComboBox2" Me.ComboBox2.Size = New System.Drawing.Size(511, 21) Me.ComboBox2.TabIndex = 4 - Me.ComboBox2.Text = "Ask me which version of the boot binary to use" + Me.ComboBox2.Text = LocalizationService.ForSection("Designer.PECustomizer")("Ask.Me.Version.Item") ' 'Label6 ' @@ -281,8 +277,7 @@ Partial Class PECustomizerDialog Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(455, 13) Me.Label6.TabIndex = 5 - Me.Label6.Text = "Amount of connection attempts that should be considered when connecting to a WDS " & _ - "server:" + Me.Label6.Text = LocalizationService.ForSection("Designer.PECustomizer")("Connection.Attempts.Label") ' 'NumericUpDown1 ' @@ -302,11 +297,11 @@ Partial Class PECustomizerDialog Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(113, 13) Me.Label7.TabIndex = 5 - Me.Label7.Text = "connection attempt(s)" + Me.Label7.Text = LocalizationService.ForSection("Designer.PECustomizer")("ConnectionAttempts.Label") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "JPG files|*.jpg" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.PECustomizer")("JpgfilesJpg.Filter") ' 'CheckBox5 ' @@ -318,8 +313,7 @@ Partial Class PECustomizerDialog Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(508, 32) Me.CheckBox5.TabIndex = 3 - Me.CheckBox5.Text = "Copy unattended answer files specified in the ISO creator to the Sysprep director" & _ - "y of the target system" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.PECustomizer")("CopyAnswerFiles.Message") Me.CheckBox5.UseVisualStyleBackColor = True ' 'Label8 @@ -329,7 +323,7 @@ Partial Class PECustomizerDialog Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(324, 13) Me.Label8.TabIndex = 5 - Me.Label8.Text = "Port to be used by PXE Helper clients to send requests by default:" + Me.Label8.Text = LocalizationService.ForSection("Designer.PECustomizer")("Port.Used.PXE.Label") ' 'NumericUpDown2 ' @@ -351,8 +345,7 @@ Partial Class PECustomizerDialog Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(508, 13) Me.Label9.TabIndex = 5 - Me.Label9.Text = "Pick the default keyboard layout to use in the Preinstallation Environment from t" & _ - "he list below:" + Me.Label9.Text = LocalizationService.ForSection("Designer.PECustomizer")("Pick.Default.Keyboard.Label") ' 'ListView1 ' @@ -368,12 +361,12 @@ Partial Class PECustomizerDialog ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Layout Code" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.PECustomizer")("LayoutCode.Column") Me.ColumnHeader1.Width = 96 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Layout Name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.PECustomizer")("LayoutName.Column") Me.ColumnHeader2.Width = 384 ' 'Label10 @@ -383,7 +376,7 @@ Partial Class PECustomizerDialog Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(207, 13) Me.Label10.TabIndex = 1 - Me.Label10.Text = "Layout code of selected keyboard layout:" + Me.Label10.Text = LocalizationService.ForSection("Designer.PECustomizer")("Layout.Code.Selected.Label") ' 'TextBox2 ' @@ -400,7 +393,7 @@ Partial Class PECustomizerDialog Me.DefaultPolicySaveButton.Name = "DefaultPolicySaveButton" Me.DefaultPolicySaveButton.Size = New System.Drawing.Size(160, 23) Me.DefaultPolicySaveButton.TabIndex = 9 - Me.DefaultPolicySaveButton.Text = "Save to default policies" + Me.DefaultPolicySaveButton.Text = LocalizationService.ForSection("Designer.PECustomizer")("Save.Default.Policies.Label") Me.DefaultPolicySaveButton.UseVisualStyleBackColor = True ' 'TabControl1 @@ -434,7 +427,7 @@ Partial Class PECustomizerDialog Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) Me.TabPage1.Size = New System.Drawing.Size(548, 256) Me.TabPage1.TabIndex = 0 - Me.TabPage1.Text = "General" + Me.TabPage1.Text = LocalizationService.ForSection("Designer.PECustomizer")("General.Tab") Me.TabPage1.UseVisualStyleBackColor = True ' 'TabPage2 @@ -451,7 +444,7 @@ Partial Class PECustomizerDialog Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) Me.TabPage2.Size = New System.Drawing.Size(548, 256) Me.TabPage2.TabIndex = 1 - Me.TabPage2.Text = "PXE Helpers" + Me.TabPage2.Text = LocalizationService.ForSection("Designer.PECustomizer")("PXEs.Tab") Me.TabPage2.UseVisualStyleBackColor = True ' 'TabPage3 @@ -467,7 +460,7 @@ Partial Class PECustomizerDialog Me.TabPage3.Name = "TabPage3" Me.TabPage3.Size = New System.Drawing.Size(548, 256) Me.TabPage3.TabIndex = 2 - Me.TabPage3.Text = "Keyboard Layouts" + Me.TabPage3.Text = LocalizationService.ForSection("Designer.PECustomizer")("KeyboardLayouts.Tab") Me.TabPage3.UseVisualStyleBackColor = True ' 'Label11 @@ -479,8 +472,7 @@ Partial Class PECustomizerDialog Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(492, 13) Me.Label11.TabIndex = 10 - Me.Label11.Text = "This option will only take effect on images that don't have any answer files appl" & _ - "ied." + Me.Label11.Text = LocalizationService.ForSection("Designer.PECustomizer")("Option.Only.Take.Label") ' 'CheckBox6 ' @@ -491,7 +483,7 @@ Partial Class PECustomizerDialog Me.CheckBox6.Name = "CheckBox6" Me.CheckBox6.Size = New System.Drawing.Size(508, 17) Me.CheckBox6.TabIndex = 9 - Me.CheckBox6.Text = "Override keyboard layouts used by target images with the one I select here" + Me.CheckBox6.Text = LocalizationService.ForSection("Designer.PECustomizer")("KeyboardOverride.CheckBox") Me.CheckBox6.UseVisualStyleBackColor = True ' 'TabPage4 @@ -504,7 +496,7 @@ Partial Class PECustomizerDialog Me.TabPage4.Padding = New System.Windows.Forms.Padding(3) Me.TabPage4.Size = New System.Drawing.Size(548, 256) Me.TabPage4.TabIndex = 3 - Me.TabPage4.Text = "Unattended Deployments" + Me.TabPage4.Text = LocalizationService.ForSection("Designer.PECustomizer")("Unattended.Deployments.Tab") Me.TabPage4.UseVisualStyleBackColor = True ' 'Label12 @@ -516,20 +508,19 @@ Partial Class PECustomizerDialog Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(508, 13) Me.Label12.TabIndex = 5 - Me.Label12.Text = "If an unattended answer file exists in both the ISO file and the Windows image fi" & _ - "le:" + Me.Label12.Text = LocalizationService.ForSection("Designer.PECustomizer")("Unattended.AnswerFile.Label") ' 'ComboBox3 ' Me.ComboBox3.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox3.FormattingEnabled = True - Me.ComboBox3.Items.AddRange(New Object() {"Ask me how to resolve the conflict", "Handle the conflict by using the answer file of the ISO file", "Handle the conflict by using the answer file of the Windows image file"}) + Me.ComboBox3.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.PECustomizer")("Ask.Me.Resolve.Item"), LocalizationService.ForSection("Designer.PECustomizer.Conflict")("ISO.Item"), LocalizationService.ForSection("Designer.PECustomizer.Conflict")("WindowsImage.Item")}) Me.ComboBox3.Location = New System.Drawing.Point(12, 32) Me.ComboBox3.Name = "ComboBox3" Me.ComboBox3.Size = New System.Drawing.Size(511, 21) Me.ComboBox3.TabIndex = 6 - Me.ComboBox3.Text = "Ask me how to resolve the conflict" + Me.ComboBox3.Text = LocalizationService.ForSection("Designer.PECustomizer")("Ask.Me.Resolve.Item") ' 'Label13 ' @@ -540,7 +531,7 @@ Partial Class PECustomizerDialog Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(508, 128) Me.Label13.TabIndex = 5 - Me.Label13.Text = resources.GetString("Label13.Text") + Me.Label13.Text = LocalizationService.ForSection("Designer.PECustomizer")("Assuming.Each.Answer.Message") Me.Label13.Visible = False ' 'PECustomizerDialog @@ -562,7 +553,7 @@ Partial Class PECustomizerDialog Me.Name = "PECustomizerDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Customize Preinstallation Environment" + Me.Text = LocalizationService.ForSection("Designer.PECustomizer")("CustomizePE.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/ISOFiles/PECustomizerDialog.resx b/Panels/ISOFiles/PECustomizerDialog.resx index 16f047d1d..17f604b47 100644 --- a/Panels/ISOFiles/PECustomizerDialog.resx +++ b/Panels/ISOFiles/PECustomizerDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -120,11 +62,4 @@ 17, 17 - - Assuming what each of the answer files will do is not a good idea because you don't expect what each file will have in different operating system deployment runs. - -Therefore, you should manually review each of the answer files when you encounter conflicts. Or, if your Windows image contains an answer file, don't include one with your ISO file, as the one from the Windows image will automatically be applied during setup. - -If you use bootable media creation solutions, such as Rufus, configure them so they don't override your answer file. - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/ISOFiles/PECustomizerDialog.vb b/Panels/ISOFiles/PECustomizerDialog.vb index 5614e429d..64848ef18 100644 --- a/Panels/ISOFiles/PECustomizerDialog.vb +++ b/Panels/ISOFiles/PECustomizerDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Win32 Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -141,7 +141,7 @@ Public Class PECustomizerDialog Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click If Not SavePolicies() Then - MessageBox.Show(Me, "Policies could not be saved.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(Me, LocalizationService.ForSection("ISOFiles.PECustomizer")("PoliciesSaved.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Exit Sub End If Me.DialogResult = System.Windows.Forms.DialogResult.OK @@ -255,18 +255,18 @@ Public Class PECustomizerDialog Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged If TextBox1.Text <> "" Then If Not File.Exists(TextBox1.Text) Then - MessageBox.Show(Me, "The specified wallpaper does not exist.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(Me, LocalizationService.ForSection("ISOFiles.PECustomizer")("Wallpaper.Exist.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) TextBox1.Text = "" Exit Sub End If If Not Path.GetExtension(TextBox1.Text).Equals(".jpg", StringComparison.OrdinalIgnoreCase) Then - MessageBox.Show(Me, "The specified wallpaper is not supported. Only JPG files are supported.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(Me, LocalizationService.ForSection("ISOFiles.PECustomizer")("Wallpaper.Supported.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) TextBox1.Text = "" Exit Sub End If - MessageBox.Show(Me, "By continuing with this wallpaper you will be overriding a background you may have already stored in your user data folder. That background will be reused the next time you launch DISMTools.", Text, MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(Me, LocalizationService.ForSection("ISOFiles.PECustomizer")("WallpaperOverride.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub @@ -291,16 +291,15 @@ Public Class PECustomizerDialog End Sub Private Sub DefaultPolicySaveButton_MouseHover(sender As Object, e As EventArgs) Handles DefaultPolicySaveButton.MouseHover - WindowHelper.DisplayToolTip(sender, "Default policies allow you to make the settings you specify here permanent." & Environment.NewLine & - "This also includes any wallpapers you specify here.") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("PECustomizer.Tooltips")("DefaultPolicies.Message")) End Sub Private Sub DefaultPolicySaveButton_Click(sender As Object, e As EventArgs) Handles DefaultPolicySaveButton.Click If SaveDefaultPolicies() Then MainForm.WriteDefaultPEPolicy() - MessageBox.Show("Default policies have been saved.", Text, MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("PECustomizer.Messages")("Default.Policies.Saved.Label"), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) Else - MessageBox.Show("Default policies could not be saved.", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning) + MessageBox.Show(LocalizationService.ForSection("PECustomizer.Messages")("Policies.SaveFailed.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning) End If End Sub diff --git a/Panels/ISOFiles/PxeServerPortSpecifier.Designer.vb b/Panels/ISOFiles/PxeServerPortSpecifier.Designer.vb index 64654975e..006010486 100644 --- a/Panels/ISOFiles/PxeServerPortSpecifier.Designer.vb +++ b/Panels/ISOFiles/PxeServerPortSpecifier.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class PxeServerPortSpecifier Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class PxeServerPortSpecifier Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.PXEServerPort")("Ok.Button") ' 'Cancel_Button ' @@ -69,7 +69,7 @@ Partial Class PxeServerPortSpecifier Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.PXEServerPort")("Cancel.Button") ' 'Label1 ' @@ -80,7 +80,7 @@ Partial Class PxeServerPortSpecifier Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(598, 72) Me.Label1.TabIndex = 1 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.PXEServerPort")("Other.Message") ' 'Label2 ' @@ -89,7 +89,7 @@ Partial Class PxeServerPortSpecifier Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(228, 13) Me.Label2.TabIndex = 2 - Me.Label2.Text = "Use the following port for server components:" + Me.Label2.Text = LocalizationService.ForSection("Designer.PXEServerPort")("Port.Server.Label") ' 'NumericUpDown1 ' @@ -109,7 +109,7 @@ Partial Class PxeServerPortSpecifier Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 4 - Me.Button1.Text = "Default" + Me.Button1.Text = LocalizationService.ForSection("Designer.PXEServerPort")("Default.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Button2 @@ -119,7 +119,7 @@ Partial Class PxeServerPortSpecifier Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(176, 23) Me.Button2.TabIndex = 5 - Me.Button2.Text = "Check if this port is in use" + Me.Button2.Text = LocalizationService.ForSection("Designer.PXEServerPort")("Check.Button") Me.Button2.UseVisualStyleBackColor = True ' 'PxeServerPortSpecifier @@ -142,7 +142,7 @@ Partial Class PxeServerPortSpecifier Me.Name = "PxeServerPortSpecifier" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Specify a port for server components" + Me.Text = LocalizationService.ForSection("Designer.PXEServerPort")("ServerComponents.Label") Me.TableLayoutPanel1.ResumeLayout(False) CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Panels/ISOFiles/PxeServerPortSpecifier.resx b/Panels/ISOFiles/PxeServerPortSpecifier.resx index 294b5d838..7905453d9 100644 --- a/Panels/ISOFiles/PxeServerPortSpecifier.resx +++ b/Panels/ISOFiles/PxeServerPortSpecifier.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use this dialog to specify a different port for server components during this session if the default port is in use by a program or a service and the server components don't work correctly as a result. - -If you click Cancel, the selected server component will be launched using the default port. - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/ISOFiles/PxeServerPortSpecifier.vb b/Panels/ISOFiles/PxeServerPortSpecifier.vb index c04d5427e..5d45a72a7 100644 --- a/Panels/ISOFiles/PxeServerPortSpecifier.vb +++ b/Panels/ISOFiles/PxeServerPortSpecifier.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class PxeServerPortSpecifier @@ -46,10 +46,10 @@ Public Class PxeServerPortSpecifier netstatProc.WaitForExit() If netstatProc.ExitCode = 0 Then ' This port is in use - MessageBox.Show(String.Format("The specified port, {0}, is already in use.", NumericUpDown1.Value), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("ISOFiles.PXEServerPort").Format("Already.Label", NumericUpDown1.Value), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) Else ' This port is free - MessageBox.Show(String.Format("The specified port, {0}, is not in use.", NumericUpDown1.Value), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("ISOFiles.PXEServerPort").Format("Port.Label", NumericUpDown1.Value), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Using End Sub diff --git a/Panels/ISOFiles/WDSImageGroupSpecifier.Designer.vb b/Panels/ISOFiles/WDSImageGroupSpecifier.Designer.vb index 3b5e65e2c..ba0894eb8 100644 --- a/Panels/ISOFiles/WDSImageGroupSpecifier.Designer.vb +++ b/Panels/ISOFiles/WDSImageGroupSpecifier.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class WDSImageGroupSpecifier Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class WDSImageGroupSpecifier Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.WDSImageGroup")("Ok.Button") ' 'Cancel_Button ' @@ -69,7 +69,7 @@ Partial Class WDSImageGroupSpecifier Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.WDSImageGroup")("Cancel.Button") ' 'Label1 ' @@ -78,7 +78,7 @@ Partial Class WDSImageGroupSpecifier Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(94, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Choose an action:" + Me.Label1.Text = LocalizationService.ForSection("Designer.WDSImageGroup")("Action.Choose.Label") ' 'ComboBox1 ' @@ -98,7 +98,7 @@ Partial Class WDSImageGroupSpecifier Me.Refresh_Button.Name = "Refresh_Button" Me.Refresh_Button.Size = New System.Drawing.Size(75, 23) Me.Refresh_Button.TabIndex = 3 - Me.Refresh_Button.Text = "Refresh" + Me.Refresh_Button.Text = LocalizationService.ForSection("Designer.WDSImageGroup")("Refresh.Button") Me.Refresh_Button.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -110,7 +110,7 @@ Partial Class WDSImageGroupSpecifier Me.RadioButton1.Size = New System.Drawing.Size(278, 17) Me.RadioButton1.TabIndex = 4 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Upload this image to the following WDS image group:" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.WDSImageGroup")("Upload.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'RadioButton2 @@ -120,7 +120,7 @@ Partial Class WDSImageGroupSpecifier Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(384, 17) Me.RadioButton2.TabIndex = 4 - Me.RadioButton2.Text = "Create the following WDS image group for me and upload this image there:" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.WDSImageGroup")("CreateGroup.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'TextBox1 @@ -140,7 +140,7 @@ Partial Class WDSImageGroupSpecifier Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(131, 13) Me.Label2.TabIndex = 6 - Me.Label2.Text = "This group already exists." + Me.Label2.Text = LocalizationService.ForSection("Designer.WDSImageGroup")("Already.Exists.Label") Me.Label2.Visible = False ' 'WDSImageGroupSpecifier @@ -165,7 +165,7 @@ Partial Class WDSImageGroupSpecifier Me.Name = "WDSImageGroupSpecifier" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Specify a group in your WDS server..." + Me.Text = LocalizationService.ForSection("Designer.WDSImageGroup")("SpecifyGroup.Button") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/ISOFiles/WDSImageGroupSpecifier.vb b/Panels/ISOFiles/WDSImageGroupSpecifier.vb index 3cd249f32..edad55c8d 100644 --- a/Panels/ISOFiles/WDSImageGroupSpecifier.vb +++ b/Panels/ISOFiles/WDSImageGroupSpecifier.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.Xml.Serialization Public Class WDSImageGroupSpecifier @@ -9,7 +9,7 @@ Public Class WDSImageGroupSpecifier Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click ' If we chose to create the image group we'll do that first, then we select it If RadioButton2.Checked AndAlso Not CreateWdsImageGroup(TextBox1.Text) Then - MessageBox.Show("The specified WDS image group could not be created.", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning) + MessageBox.Show(LocalizationService.ForSection("ISOFiles.WDSImageGroup")("Image.Label"), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning) Exit Sub End If @@ -42,7 +42,7 @@ Public Class WDSImageGroupSpecifier End If End If Catch ex As Exception - MsgBox("Could not get image groups.", vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("ISOFiles.WDSImageGroup")("Get.Image.Groups.Label"), vbOKOnly + vbCritical, Text) End Try End Sub diff --git a/Panels/ISOFiles/WDSInstallImageCopy.Designer.vb b/Panels/ISOFiles/WDSInstallImageCopy.Designer.vb index c0955db9a..0d0cf31c2 100644 --- a/Panels/ISOFiles/WDSInstallImageCopy.Designer.vb +++ b/Panels/ISOFiles/WDSInstallImageCopy.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class WDSInstallImageCopy Inherits System.Windows.Forms.Form @@ -81,7 +81,7 @@ Partial Class WDSInstallImageCopy Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(75, 23) Me.OK_Button.TabIndex = 10 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Ok.Button") Me.OK_Button.UseVisualStyleBackColor = True ' 'Cancel_Button @@ -93,7 +93,7 @@ Partial Class WDSInstallImageCopy Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(75, 23) Me.Cancel_Button.TabIndex = 11 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Cancel.Button") Me.Cancel_Button.UseVisualStyleBackColor = True ' 'Button2 @@ -104,7 +104,7 @@ Partial Class WDSInstallImageCopy Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 14 - Me.Button2.Text = "Pick..." + Me.Button2.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Pick.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -115,7 +115,7 @@ Partial Class WDSInstallImageCopy Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 15 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -134,7 +134,7 @@ Partial Class WDSInstallImageCopy Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(144, 13) Me.Label4.TabIndex = 12 - Me.Label4.Text = "Image file to copy to server:" + Me.Label4.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("ImageFile.Server.Label") ' 'Button3 ' @@ -144,7 +144,7 @@ Partial Class WDSInstallImageCopy Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(156, 23) Me.Button3.TabIndex = 16 - Me.Button3.Text = "Use mounted image" + Me.Button3.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Mounted.Image.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Label1 @@ -154,7 +154,7 @@ Partial Class WDSInstallImageCopy Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(238, 13) Me.Label1.TabIndex = 12 - Me.Label1.Text = "The images will be added to the following group:" + Me.Label1.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Images.Added.Group.Label") ' 'TextBox2 ' @@ -183,27 +183,27 @@ Partial Class WDSInstallImageCopy ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "#" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Value.Column") Me.ColumnHeader1.Width = 44 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image Name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("ImageName.Column") Me.ColumnHeader2.Width = 265 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Image Description" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("ImageDescription.Column") Me.ColumnHeader3.Width = 343 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Image Version" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("ImageVersion.Column") Me.ColumnHeader4.Width = 103 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Image Architecture" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Image.Architecture.Column") Me.ColumnHeader5.Width = 130 ' 'Button4 @@ -214,7 +214,7 @@ Partial Class WDSInstallImageCopy Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(156, 23) Me.Button4.TabIndex = 14 - Me.Button4.Text = "Pick from server groups..." + Me.Button4.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Pick.Server.Groups.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Button5 @@ -225,7 +225,7 @@ Partial Class WDSInstallImageCopy Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(96, 23) Me.Button5.TabIndex = 14 - Me.Button5.Text = "Select all" + Me.Button5.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("SelectAll.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button6 @@ -236,7 +236,7 @@ Partial Class WDSInstallImageCopy Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(96, 23) Me.Button6.TabIndex = 14 - Me.Button6.Text = "Clear selection" + Me.Button6.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("ClearSelection.Button") Me.Button6.UseVisualStyleBackColor = True ' 'GroupBox1 @@ -249,7 +249,7 @@ Partial Class WDSInstallImageCopy Me.GroupBox1.Size = New System.Drawing.Size(984, 98) Me.GroupBox1.TabIndex = 18 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Progress" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Progress.Group") ' 'ProgressContainer ' @@ -278,7 +278,7 @@ Partial Class WDSInstallImageCopy Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(978, 78) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Once you're ready, click OK." + Me.Label3.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Re.Ready.OK.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'ISOProgressPanel @@ -311,11 +311,11 @@ Partial Class WDSInstallImageCopy Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(950, 13) Me.Label8.TabIndex = 0 - Me.Label8.Text = "Status" + Me.Label8.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Status.Label") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WIM files|*.wim" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.WDSImageCopy")("WIM.Files.Filter") ' 'BackgroundWorker1 ' @@ -361,7 +361,7 @@ Partial Class WDSInstallImageCopy Me.Name = "WDSInstallImageCopy" Me.ShowIcon = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Copy an image to Windows Deployment Services" + Me.Text = LocalizationService.ForSection("Designer.WDSImageCopy")("Image.Win.Deploy.Label") Me.GroupBox1.ResumeLayout(False) Me.ProgressContainer.ResumeLayout(False) Me.IdlePanel.ResumeLayout(False) diff --git a/Panels/ISOFiles/WDSInstallImageCopy.vb b/Panels/ISOFiles/WDSInstallImageCopy.vb index b04ff19dc..5b35e196f 100644 --- a/Panels/ISOFiles/WDSInstallImageCopy.vb +++ b/Panels/ISOFiles/WDSInstallImageCopy.vb @@ -1,4 +1,4 @@ -Imports Microsoft.Dism +Imports Microsoft.Dism Public Class WDSInstallImageCopy @@ -12,20 +12,18 @@ Public Class WDSInstallImageCopy DynaLog.LogMessage("- Source image to add to WDS: " & Quote & TextBox1.Text & Quote) DynaLog.LogMessage("- Group to add image to: " & Quote & TextBox2.Text & Quote) If TextBox1.Text = "" OrElse Not File.Exists(TextBox1.Text) Then - MsgBox("Either the source image file does not exist or you haven't provided any image file. Please specify a valid image file and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("WDSImageCopy.Messages")("Either.Source.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If If TextBox2.Text = "" Then - MsgBox("No group has been specified. Please specify a new or an existing WDS group and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("WDSImageCopy.Messages")("Group.Has.None.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If If ListView1.CheckedItems.Count < 1 Then - MsgBox("No images have been selected for addition to your WDS server.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("WDSImageCopy.Messages")("Images.Have.None.Label"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If - If MsgBox("Make sure that the image you are adding has been prepared with Sysprep." & CrLf & CrLf & - "If you have not done so, click No, prepare the image, and start the process again. You don't have to close this window." & CrLf & CrLf & - "Do you want to add this image to your WDS server?", vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("WDSImageCopy.Messages")("Image.Add.Message"), vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then Exit Sub End If OK_Button.Enabled = False @@ -45,7 +43,7 @@ Public Class WDSInstallImageCopy Private Sub WDSInstallImageCopy_Load(sender As Object, e As EventArgs) Handles MyBase.Load If WindowsServiceHelper.GetOnlineSystemServiceInformationByName("WDSServer") Is Nothing Then ' We are either not running this on Windows Server, or we are, but without the WDS role - MsgBox("This wizard does not support this computer. Make sure that this computer is running Windows Server and that it has the Windows Deployment Services role installed.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("WDSImageCopy.Messages")("Wizard.Support.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Close() Exit Sub End If @@ -125,37 +123,13 @@ Public Class WDSInstallImageCopy ' Block all boot images (or at least warn) If ImageInfoCollection.Any(Function(ImageInfo) ImageInfo.EditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase)) Then - MsgBox("A boot image has been detected. You should not use these as installation images in your server.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("WDSImageCopy.Messages")("Boot.Image.Detected.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) End If End If Catch ex As Exception DynaLog.LogMessage("Could not get image file information. Error message: " & ex.Message) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ESN" - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "FRA" - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "PTB", "PTG" - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ITA" - msg = "Impossibile raccogliere informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select - Case 1 - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 2 - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 3 - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 4 - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 5 - msg = "Impossibile raccogliere informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select + msg = LocalizationService.ForSection("WDSImageCopy.ImageInfo").Format("Gather.ImageFile.Message", ex.ToString(), ex.Message, Hex(ex.HResult)) MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally DynaLog.LogMessage("Shutting down API...") @@ -224,12 +198,12 @@ Public Class WDSInstallImageCopy ISOProgressPanel.Visible = True If e.ProgressPercentage < 100 Then WindowHelper.DisableCloseCapability(Handle) - Label8.Text = "Uploading images..." + Label8.Text = LocalizationService.ForSection("WDSImageCopy.Progress")("UploadingImages.Label") ProgressBar1.Style = ProgressBarStyle.Marquee TaskbarHelper.SetIndicatorState(0, Windows.Shell.TaskbarItemProgressState.Indeterminate, MainForm.Handle) Else WindowHelper.EnableCloseCapability(Handle) - If success Then Label8.Text = "Image uploads done." + If success Then Label8.Text = LocalizationService.ForSection("WDSImageCopy.Progress")("Image.Uploads.Done.Label") ProgressBar1.Style = ProgressBarStyle.Blocks TaskbarHelper.SetIndicatorState(0, Windows.Shell.TaskbarItemProgressState.None, MainForm.Handle) End If @@ -239,7 +213,7 @@ Public Class WDSInstallImageCopy Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted DynaLog.LogMessage("The process has finished.") DynaLog.LogMessage("- Did it succeed? " & If(success, "Yes", "No")) - MsgBox(If(success, "The images were uploaded successfully.", "The images were not uploaded successfully."), + MsgBox(If(success, LocalizationService.ForSection("WDSImageCopy.Messages")("UploadSuccessful.Label"), LocalizationService.ForSection("WDSImageCopy.Messages")("Images.Uploaded.Done.Label")), vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) OK_Button.Enabled = True Cancel_Button.Enabled = True @@ -278,4 +252,4 @@ Public Class WDSInstallImageCopy TextBox2.Text = WDSImageGroupSpecifier.SpecifiedImageGroup End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/ImageTaskHeader.Designer.vb b/Panels/ImageTaskHeader.Designer.vb index 8b27fea7d..235d14bee 100644 --- a/Panels/ImageTaskHeader.Designer.vb +++ b/Panels/ImageTaskHeader.Designer.vb @@ -47,7 +47,7 @@ Partial Class ImageTaskHeader Me.ItemTitle.Name = "ItemTitle" Me.ItemTitle.Size = New System.Drawing.Size(340, 30) Me.ItemTitle.TabIndex = 3 - Me.ItemTitle.Text = "Item Text" + Me.ItemTitle.Text = LocalizationService.ForSection("Designer.ImageTaskHeader")("ItemText.Title") ' 'ImageTaskHeader ' diff --git a/Panels/Img_Ops/ActiveInstAccessWarn.Designer.vb b/Panels/Img_Ops/ActiveInstAccessWarn.Designer.vb index e3b07e156..589014840 100644 --- a/Panels/Img_Ops/ActiveInstAccessWarn.Designer.vb +++ b/Panels/Img_Ops/ActiveInstAccessWarn.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ActiveInstAccessWarn Inherits System.Windows.Forms.Form @@ -56,7 +56,7 @@ Partial Class ActiveInstAccessWarn Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Continue" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ActiveInstall")("Continue.Button") ' 'Cancel_Button ' @@ -67,7 +67,7 @@ Partial Class ActiveInstAccessWarn Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 0 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ActiveInstall")("Cancel.Button") ' 'PictureBox1 ' @@ -88,7 +88,7 @@ Partial Class ActiveInstAccessWarn Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(432, 224) Me.Label1.TabIndex = 2 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.ActiveInstall")("Enter.Online.Message") ' 'Label2 ' @@ -99,7 +99,7 @@ Partial Class ActiveInstAccessWarn Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(322, 18) Me.Label2.TabIndex = 2 - Me.Label2.Text = "The current project will be unloaded." + Me.Label2.Text = LocalizationService.ForSection("Designer.ActiveInstall")("ProjectUnloaded.Label") ' 'ActiveInstAccessWarn ' @@ -119,7 +119,7 @@ Partial Class ActiveInstAccessWarn Me.Name = "ActiveInstAccessWarn" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "About active installation management" + Me.Text = LocalizationService.ForSection("Designer.ActiveInstall")("Active.Install.Label") Me.TableLayoutPanel1.ResumeLayout(False) CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/ActiveInstAccessWarn.resx b/Panels/Img_Ops/ActiveInstAccessWarn.resx index 4488e6ec0..7905453d9 100644 --- a/Panels/Img_Ops/ActiveInstAccessWarn.resx +++ b/Panels/Img_Ops/ActiveInstAccessWarn.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,13 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation. - -Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program. - -If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable. - -We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible) - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Img_Ops/ActiveInstAccessWarn.vb b/Panels/Img_Ops/ActiveInstAccessWarn.vb index 5f49b715e..a1df3d54c 100644 --- a/Panels/Img_Ops/ActiveInstAccessWarn.vb +++ b/Panels/Img_Ops/ActiveInstAccessWarn.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class ActiveInstAccessWarn @@ -14,101 +14,11 @@ Public Class ActiveInstAccessWarn End Sub Private Sub ActiveInstAccessWarn_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "About active installation management" - Label1.Text = "You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation." & CrLf & CrLf & _ - "Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program." & CrLf & CrLf & _ - "If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable." & CrLf & CrLf & _ - "We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible)" - Label2.Text = "The current project will be unloaded." - OK_Button.Text = "Continue" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Acerca de la administración de instalaciones activas" - Label1.Text = "Está a punto de entrar en el modo de administración de instalaciones en línea, que le permite realizar cambios a su instalación activa de Windows." & CrLf & CrLf & _ - "Dado a que este modo le permite modificar su instalación, debería ser extremadamente cuidadoso al realizar tareas con este programa." & CrLf & CrLf & _ - "Si realiza una operación a una imagen en línea sin tener cuidado, puede romperla, a tal punto que la instalación no pueda iniciar." & CrLf & CrLf & _ - "Nosotros NO SOMOS RESPONSABLES de cualquier daño producido a su instalación activa. Si se queda con un sistema que no puede iniciar, debería reinstalar Windows (haciendo una copia de seguridad de sus archivos en primer lugar, si es posible)" - Label2.Text = "El proyecto actual será descargado." - OK_Button.Text = "Continuar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "À propos de la gestion active des installations" - Label1.Text = "Vous êtes sur le point d'entrer dans le mode de gestion de l'installation en ligne, qui vous permet d'apporter des modifications à votre installation Windows active." & CrLf & CrLf & _ - "Étant donné que ce mode vous permet de modifier votre installation, vous devez être extrêmement prudent lorsque vous effectuez des tâches avec ce programme." & CrLf & CrLf & _ - "Si vous effectuez sans précaution une opération sur une image en ligne, vous risquez de la casser, au point de rendre l'installation non amorçable." & CrLf & CrLf & _ - "Nous NE SOMMES PAS RESPONSABLES des dommages causés à votre installation active. Si vous vous retrouvez avec un système non amorçable, vous devez réinstaller Windows (en sauvegardant d'abord vos fichiers, si possible)." - Label2.Text = "Le projet actuel sera déchargé." - OK_Button.Text = "Continuer" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Acerca da gestão da instalação ativa" - Label1.Text = "Está prestes a entrar no modo de gestão da instalação online, que lhe permite efetuar alterações à sua instalação ativa do Windows." & CrLf & CrLf & _ - "Dado que este modo permite-lhe modificar a sua instalação, deve ser extremamente cuidadoso ao executar tarefas com este programa." & CrLf & CrLf & _ - "Se efetuar uma operação descuidada numa imagem online, pode quebrá-la, ao ponto de tornar a instalação impossível de arrancar." & CrLf & CrLf & _ - "NÃO NOS RESPONSABILIZAMOS por qualquer dano causado à sua instalação ativa. Se ficar com um sistema não arrancável, deve reinstalar o Windows (fazendo primeiro uma cópia de segurança dos seus ficheiros, se possível)" - Label2.Text = "O projeto atual será descarregado." - OK_Button.Text = "Continuar" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Informazioni sulla gestione dell'installazione attiva" - Label1.Text = "Si sta per accedere alla modalità di gestione dell'installazione attiva, che consente di apportare modifiche all'installazione attiva di Windows." & CrLf & CrLf & _ - "Poiché questa modalità consente di modificare l'installazione, è necessario prestare la massima attenzione quando si eseguono operazioni con questo programma." & CrLf & CrLf & _ - "Se si esegue incautamente un'operazione su un'immagine online, la si può rompere, fino a rendere l'installazione non avviabile." & CrLf & CrLf & _ - "NON SIAMO RESPONSABILI di eventuali danni arrecati all'installazione attiva. Se il sistema risulta non avviabile, è necessario reinstallare Windows (eseguendo prima un backup dei file, se possibile)" - Label2.Text = "Il progetto corrente verrà scaricato" - OK_Button.Text = "Continua" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Text = "About active installation management" - Label1.Text = "You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation." & CrLf & CrLf & _ - "Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program." & CrLf & CrLf & _ - "If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable." & CrLf & CrLf & _ - "We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible)" - Label2.Text = "The current project will be unloaded." - OK_Button.Text = "Continue" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Acerca de la administración de instalaciones activas" - Label1.Text = "Está a punto de entrar en el modo de administración de instalaciones en línea, que le permite realizar cambios a su instalación activa de Windows." & CrLf & CrLf & _ - "Dado a que este modo le permite modificar su instalación, debería ser extremadamente cuidadoso al realizar tareas con este programa." & CrLf & CrLf & _ - "Si realiza una operación a una imagen en línea sin tener cuidado, puede romperla, a tal punto que la instalación no pueda iniciar." & CrLf & CrLf & _ - "Nosotros NO SOMOS RESPONSABLES de cualquier daño producido a su instalación activa. Si se queda con un sistema que no puede iniciar, debería reinstalar Windows (haciendo una copia de seguridad de sus archivos en primer lugar, si es posible)" - Label2.Text = "El proyecto actual será descargado." - OK_Button.Text = "Continuar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "À propos de la gestion active des installations" - Label1.Text = "Vous êtes sur le point d'entrer dans le mode de gestion de l'installation en ligne, qui vous permet d'apporter des modifications à votre installation Windows active." & CrLf & CrLf & _ - "Étant donné que ce mode vous permet de modifier votre installation, vous devez être extrêmement prudent lorsque vous effectuez des tâches avec ce programme." & CrLf & CrLf & _ - "Si vous effectuez sans précaution une opération sur une image en ligne, vous risquez de la casser, au point de rendre l'installation non amorçable." & CrLf & CrLf & _ - "Nous NE SOMMES PAS RESPONSABLES des dommages causés à votre installation active. Si vous vous retrouvez avec un système non amorçable, vous devez réinstaller Windows (en sauvegardant d'abord vos fichiers, si possible)." - Label2.Text = "Le projet actuel sera déchargé." - OK_Button.Text = "Continuer" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Acerca da gestão da instalação ativa" - Label1.Text = "Está prestes a entrar no modo de gestão da instalação online, que lhe permite efetuar alterações à sua instalação ativa do Windows." & CrLf & CrLf & _ - "Dado que este modo permite-lhe modificar a sua instalação, deve ser extremamente cuidadoso ao executar tarefas com este programa." & CrLf & CrLf & _ - "Se efetuar uma operação descuidada numa imagem online, pode quebrá-la, ao ponto de tornar a instalação impossível de arrancar." & CrLf & CrLf & _ - "NÃO NOS RESPONSABILIZAMOS por qualquer dano causado à sua instalação ativa. Se ficar com um sistema não arrancável, deve reinstalar o Windows (fazendo primeiro uma cópia de segurança dos seus ficheiros, se possível)" - Label2.Text = "O projeto atual será descarregado." - OK_Button.Text = "Continuar" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Informazioni sulla gestione dell'installazione attiva" - Label1.Text = "Si sta per accedere alla modalità di gestione dell'installazione attiva, che consente di apportare modifiche all'installazione attiva di Windows." & CrLf & CrLf & _ - "Poiché questa modalità consente di modificare l'installazione, è necessario prestare la massima attenzione quando si eseguono operazioni con questo programma." & CrLf & CrLf & _ - "Se si esegue incautamente un'operazione su un'immagine online, la si può rompere, fino a rendere l'installazione non avviabile." & CrLf & CrLf & _ - "NON SIAMO RESPONSABILI di eventuali danni arrecati all'installazione attiva. Se il sistema risulta non avviabile, è necessario reinstallare Windows (eseguendo prima un backup dei file, se possibile)" - Label2.Text = "Il progetto corrente verrà scaricato" - OK_Button.Text = "Continua" - Cancel_Button.Text = "Annullare" - End Select + Text = LocalizationService.ForSection("ActiveInstallWarn")("Active.Install.Label") + Label1.Text = LocalizationService.ForSection("ActiveInstall")("Enter.Online.Message") + Label2.Text = LocalizationService.ForSection("ActiveInstall")("ProjectUnloaded.Label") + OK_Button.Text = LocalizationService.ForSection("ActiveInstall")("Continue.Button") + Cancel_Button.Text = LocalizationService.ForSection("ActiveInstall")("Cancel.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) diff --git a/Panels/Img_Ops/AppxPkgs/AddProvAppxPackage.Designer.vb b/Panels/Img_Ops/AppxPkgs/AddProvAppxPackage.Designer.vb index 11be70c5b..e3a6876dd 100644 --- a/Panels/Img_Ops/AppxPkgs/AddProvAppxPackage.Designer.vb +++ b/Panels/Img_Ops/AppxPkgs/AddProvAppxPackage.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddProvAppxPackage Inherits System.Windows.Forms.Form @@ -116,7 +116,7 @@ Partial Class AddProvAppxPackage Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.AppxProvision")("Ok.Button") ' 'Cancel_Button ' @@ -127,7 +127,7 @@ Partial Class AddProvAppxPackage Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.AppxProvision")("Cancel.Button") ' 'AppxDetailsPanel ' @@ -158,8 +158,7 @@ Partial Class AddProvAppxPackage Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(527, 30) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Select an entry in the list view to show the details of an app and to configure a" & _ - "ddition settings" + Me.Label6.Text = LocalizationService.ForSection("Designer.AppxProvision")("Entry.List.View.Message") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'AppxFilePanel @@ -195,7 +194,7 @@ Partial Class AddProvAppxPackage Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(434, 13) Me.Label9.TabIndex = 0 - Me.Label9.Text = "AppxVersion" + Me.Label9.Text = LocalizationService.ForSection("Designer.AppxProvision")("AppxVersion.Label") ' 'Label8 ' @@ -207,7 +206,7 @@ Partial Class AddProvAppxPackage Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(434, 13) Me.Label8.TabIndex = 0 - Me.Label8.Text = "AppxPublisher" + Me.Label8.Text = LocalizationService.ForSection("Designer.AppxProvision")("AppxPublisher.Label") ' 'Label7 ' @@ -219,7 +218,7 @@ Partial Class AddProvAppxPackage Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(434, 19) Me.Label7.TabIndex = 0 - Me.Label7.Text = "AppxTitle" + Me.Label7.Text = LocalizationService.ForSection("Designer.AppxProvision")("AppxTitle.Label") ' 'TableLayoutPanel2 ' @@ -250,7 +249,7 @@ Partial Class AddProvAppxPackage Me.Button9.Name = "Button9" Me.Button9.Size = New System.Drawing.Size(119, 22) Me.Button9.TabIndex = 3 - Me.Button9.Text = "Remove selected entry" + Me.Button9.Text = LocalizationService.ForSection("Designer.AppxProvision")("Remove.Selected.Entry.Button") Me.Button9.UseVisualStyleBackColor = True ' 'Button3 @@ -262,7 +261,7 @@ Partial Class AddProvAppxPackage Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(120, 22) Me.Button3.TabIndex = 2 - Me.Button3.Text = "Remove all entries" + Me.Button3.Text = LocalizationService.ForSection("Designer.AppxProvision")("Remove.Entries.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button2 @@ -273,7 +272,7 @@ Partial Class AddProvAppxPackage Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(119, 22) Me.Button2.TabIndex = 1 - Me.Button2.Text = "Add folder..." + Me.Button2.Text = LocalizationService.ForSection("Designer.AppxProvision")("AddFolder.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -284,7 +283,7 @@ Partial Class AddProvAppxPackage Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(119, 22) Me.Button1.TabIndex = 0 - Me.Button1.Text = "Add file..." + Me.Button1.Text = LocalizationService.ForSection("Designer.AppxProvision")("AddFile.Button") Me.Button1.UseVisualStyleBackColor = True ' 'ListView1 @@ -304,27 +303,27 @@ Partial Class AddProvAppxPackage ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "File/Folder" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.AppxProvision")("FileFolder.Column") Me.ColumnHeader1.Width = 343 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Type" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.AppxProvision")("Type.Column") Me.ColumnHeader2.Width = 120 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Application name" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.AppxProvision")("ApplicationName.Column") Me.ColumnHeader3.Width = 139 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Application publisher" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.AppxProvision")("App.Publisher.Column") Me.ColumnHeader4.Width = 275 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Application version" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.AppxProvision")("App.Version.Column") Me.ColumnHeader5.Width = 162 ' 'Label2 @@ -335,8 +334,7 @@ Partial Class AddProvAppxPackage Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(507, 30) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Please add packed or unpacked AppX packages by using the buttons below, or by dro" & _ - "pping them to the list view below:" + Me.Label2.Text = LocalizationService.ForSection("Designer.AppxProvision")("Packages.Required.Message") ' 'GroupBox2 ' @@ -348,7 +346,7 @@ Partial Class AddProvAppxPackage Me.GroupBox2.Size = New System.Drawing.Size(504, 221) Me.GroupBox2.TabIndex = 5 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "AppX dependencies" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.AppxProvision")("AppxDependencies.Group") ' 'Panel3 ' @@ -398,7 +396,7 @@ Partial Class AddProvAppxPackage Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(156, 22) Me.Button4.TabIndex = 2 - Me.Button4.Text = "Remove all dependencies" + Me.Button4.Text = LocalizationService.ForSection("Designer.AppxProvision")("Remove.Dependencies.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Button5 @@ -410,7 +408,7 @@ Partial Class AddProvAppxPackage Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(155, 22) Me.Button5.TabIndex = 1 - Me.Button5.Text = "Remove dependency" + Me.Button5.Text = LocalizationService.ForSection("Designer.AppxProvision")("RemoveDependency.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button6 @@ -421,7 +419,7 @@ Partial Class AddProvAppxPackage Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(155, 22) Me.Button6.TabIndex = 0 - Me.Button6.Text = "Add dependency..." + Me.Button6.Text = LocalizationService.ForSection("Designer.AppxProvision")("AddDependency.Button") Me.Button6.UseVisualStyleBackColor = True ' 'Label3 @@ -432,8 +430,7 @@ Partial Class AddProvAppxPackage Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(491, 30) Me.Label3.TabIndex = 0 - Me.Label3.Text = "An AppX package may need some dependencies for it to be installed correctly. If s" & _ - "o, you can specify a list of dependencies now:" + Me.Label3.Text = LocalizationService.ForSection("Designer.AppxProvision")("Package.Message") ' 'CheckBox1 ' @@ -443,7 +440,7 @@ Partial Class AddProvAppxPackage Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(110, 17) Me.CheckBox1.TabIndex = 7 - Me.CheckBox1.Text = "Custom data file:" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.AppxProvision")("CustomDataFile.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -464,7 +461,7 @@ Partial Class AddProvAppxPackage Me.Button7.Name = "Button7" Me.Button7.Size = New System.Drawing.Size(75, 23) Me.Button7.TabIndex = 9 - Me.Button7.Text = "Browse..." + Me.Button7.Text = LocalizationService.ForSection("Designer.AppxProvision")("Browse.Button") Me.Button7.UseVisualStyleBackColor = True ' 'TextBox2 @@ -485,7 +482,7 @@ Partial Class AddProvAppxPackage Me.Button8.Name = "Button8" Me.Button8.Size = New System.Drawing.Size(75, 23) Me.Button8.TabIndex = 9 - Me.Button8.Text = "Browse..." + Me.Button8.Text = LocalizationService.ForSection("Designer.AppxProvision")("Browse.Button") Me.Button8.UseVisualStyleBackColor = True ' 'GroupBox3 @@ -499,7 +496,7 @@ Partial Class AddProvAppxPackage Me.GroupBox3.Size = New System.Drawing.Size(504, 143) Me.GroupBox3.TabIndex = 5 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "AppX regions" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.AppxProvision")("AppxRegions.Group") ' 'CheckBox4 ' @@ -510,7 +507,7 @@ Partial Class AddProvAppxPackage Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(185, 17) Me.CheckBox4.TabIndex = 9 - Me.CheckBox4.Text = "Make app available for all regions" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.AppxProvision")("App.Available.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'LinkLabel1 @@ -525,8 +522,7 @@ Partial Class AddProvAppxPackage Me.LinkLabel1.Size = New System.Drawing.Size(445, 37) Me.LinkLabel1.TabIndex = 8 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To lea" & _ - "rn more about these codes, click here" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.AppxProvision")("App.Regions.Form.Message") Me.LinkLabel1.UseCompatibleTextRendering = True ' 'TextBox3 @@ -547,7 +543,7 @@ Partial Class AddProvAppxPackage Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(445, 13) Me.Label5.TabIndex = 0 - Me.Label5.Text = "To specify multiple app regions, separate them with a semicolon (;)" + Me.Label5.Text = LocalizationService.ForSection("Designer.AppxProvision")("Multiple.App.Regions.Label") ' 'CheckBox2 ' @@ -556,38 +552,37 @@ Partial Class AddProvAppxPackage Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(230, 17) Me.CheckBox2.TabIndex = 10 - Me.CheckBox2.Text = "Commit image after adding AppX packages" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.AppxProvision")("CommitImage.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'AppxFileOFD ' - Me.AppxFileOFD.Filter = "Applications|*.appx;*.appxbundle;*.msix;*.msixbundle|Application Installer packag" & _ - "e|*.appinstaller" + Me.AppxFileOFD.Filter = LocalizationService.ForSection("Designer.AppxProvision")("MSIX.Packages.Filter") Me.AppxFileOFD.Multiselect = True Me.AppxFileOFD.SupportMultiDottedExtensions = True - Me.AppxFileOFD.Title = "Specify the AppX files to add provisioning for" + Me.AppxFileOFD.Title = LocalizationService.ForSection("Designer.AppxProvision")("Files.Title") ' 'AppxDependencyOFD ' - Me.AppxDependencyOFD.Filter = "Dependency files|*.appx;*.msix" + Me.AppxDependencyOFD.Filter = LocalizationService.ForSection("Designer.AppxProvision")("DependencyFiles.Filter") Me.AppxDependencyOFD.SupportMultiDottedExtensions = True - Me.AppxDependencyOFD.Title = "Browse for files applications depend on" + Me.AppxDependencyOFD.Title = LocalizationService.ForSection("Designer.AppxProvision")("Browse.Dependencies.Title") ' 'LicenseFileOFD ' - Me.LicenseFileOFD.Filter = "XML licenses|*.xml" + Me.LicenseFileOFD.Filter = LocalizationService.ForSection("Designer.AppxProvision")("Xmllicenses.Filter") Me.LicenseFileOFD.SupportMultiDottedExtensions = True - Me.LicenseFileOFD.Title = "Specify a license file" + Me.LicenseFileOFD.Title = LocalizationService.ForSection("Designer.AppxProvision")("LicenseFile.Title") ' 'CustomDataFileOFD ' - Me.CustomDataFileOFD.Filter = "All files|*.*" + Me.CustomDataFileOFD.Filter = LocalizationService.ForSection("Designer.AppxProvision")("CustomData.Filter") Me.CustomDataFileOFD.SupportMultiDottedExtensions = True - Me.CustomDataFileOFD.Title = "Specify a custom data file" + Me.CustomDataFileOFD.Title = LocalizationService.ForSection("Designer.AppxProvision")("CustomData.File.Title") ' 'UnpackedAppxFolderFBD ' - Me.UnpackedAppxFolderFBD.Description = "Please specify a folder containing unpacked AppX files:" + Me.UnpackedAppxFolderFBD.Description = LocalizationService.ForSection("Designer.AppxProvision")("Folder.Required.Description") Me.UnpackedAppxFolderFBD.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'AppxScanner @@ -637,7 +632,7 @@ Partial Class AddProvAppxPackage Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(82, 17) Me.CheckBox3.TabIndex = 10 - Me.CheckBox3.Text = "License file:" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.AppxProvision")("LicenseFile.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'Panel2 @@ -652,12 +647,12 @@ Partial Class AddProvAppxPackage 'ComboBox1 ' Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Do not configure stub preference", "Install application as a stub package", "Install application as a full package"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.AppxProvision")("Configure.Stub.Item"), LocalizationService.ForSection("Designer.AppxProvision")("Install.Stub.Package.Item"), LocalizationService.ForSection("Designer.AppxProvision")("Install.Full.Package.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(131, 10) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(364, 21) Me.ComboBox1.TabIndex = 12 - Me.ComboBox1.Text = "Do not configure stub preference" + Me.ComboBox1.Text = LocalizationService.ForSection("Designer.AppxProvision")("Configure.Stub.Item") ' 'Label4 ' @@ -668,7 +663,7 @@ Partial Class AddProvAppxPackage Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(115, 13) Me.Label4.TabIndex = 11 - Me.Label4.Text = "Stub preference:" + Me.Label4.Text = LocalizationService.ForSection("Designer.AppxProvision")("StubPreference.Label") ' 'Button10 ' @@ -677,7 +672,7 @@ Partial Class AddProvAppxPackage Me.Button10.Name = "Button10" Me.Button10.Size = New System.Drawing.Size(32, 23) Me.Button10.TabIndex = 12 - Me.Button10.Text = "..." + Me.Button10.Text = LocalizationService.ForSection("Designer.AppxProvision")("Value.Button") Me.Button10.TextAlign = System.Drawing.ContentAlignment.TopCenter Me.Button10.UseVisualStyleBackColor = True ' @@ -718,7 +713,7 @@ Partial Class AddProvAppxPackage Me.Name = "AddProvAppxPackage" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add provisioned AppX packages" + Me.Text = LocalizationService.ForSection("Designer.AppxProvision")("Add.Prov.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.AppxDetailsPanel.ResumeLayout(False) Me.NoAppxFilePanel.ResumeLayout(False) diff --git a/Panels/Img_Ops/AppxPkgs/AddProvAppxPackage.vb b/Panels/Img_Ops/AppxPkgs/AddProvAppxPackage.vb index 3f7ba2c5b..d32613a24 100644 --- a/Panels/Img_Ops/AppxPkgs/AddProvAppxPackage.vb +++ b/Panels/Img_Ops/AppxPkgs/AddProvAppxPackage.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports DISMTools.Elements @@ -29,7 +29,7 @@ Public Class AddProvAppxPackage Dim Packages As New List(Of AppxPackage) - Dim StubPreferences() As String = New String(2) {"Do not configure stub preference", "Install application as a stub package", "Install application as a full package"} + Dim StubPreferences() As String = New String(2) {"", "", ""} Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click DynaLog.LogMessage("Disposing of progress panel if not disposed of previously...") @@ -40,36 +40,12 @@ Public Class AddProvAppxPackage DynaLog.LogMessage("Detecting AppX packages to add...") If ListView1.Items.Count = 0 Then DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify packed or unpacked AppX packages and try again.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case "ESN" - MsgBox("Especifique archivos AppX empaquetados o desempaquetados e inténtelo de nuevo.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Veuillez spécifier les paquets AppX comprimés ou non et réessayez.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("Especifique pacotes AppX embalados ou não embalados e tente novamente.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case "ITA" - MsgBox("Specificare i pacchetti AppX imballati o non imballati e riprovare.", vbOKOnly + vbCritical, "Aggiungere i pacchetti AppX approvvigionati") - End Select - Case 1 - MsgBox("Please specify packed or unpacked AppX packages and try again.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case 2 - MsgBox("Especifique archivos AppX empaquetados o desempaquetados e inténtelo de nuevo.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case 3 - MsgBox("Veuillez spécifier les paquets AppX comprimés ou non et réessayez.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case 4 - MsgBox("Especifique pacotes AppX embalados ou não embalados e tente novamente.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case 5 - MsgBox("Specificare i pacchetti AppX imballati o non imballati e riprovare.", vbOKOnly + vbCritical, "Aggiungere i pacchetti AppX approvvigionati") - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.Validation")("Packages.Required.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxProvision.Validation")("Add.Prov.Title")) Exit Sub Else DynaLog.LogMessage("AppX packages to add to the queue: " & AppxAdditionCount) If AppxAdditionCount > 65535 Then - MsgBox("Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update.", vbOKOnly + vbCritical, "Add provisioned AppX packages") + MsgBox(LocalizationService.ForSection("AppxPackages.Add.Messages")("Right.Only.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxPackages.Add.Messages")("Prov.Label")) Exit Sub Else DynaLog.LogMessage("Adding AppX packages to queue...") @@ -97,59 +73,11 @@ Public Class AddProvAppxPackage DynaLog.LogMessage("A license file is expected to be used.") If TextBox1.Text = "" Then DynaLog.LogMessage("No license file has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a license file and try again. You can also continue without one, but this may compromise the image.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case "ESN" - MsgBox("Especifique un archivo de licencia e inténtelo de nuevo. También puede continuar sin uno, pero esta acción podría comprometer la imagen.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Veuillez indiquer un fichier de licence et réessayer. Vous pouvez également continuer sans licence, mais cela risque de compromettre l'image.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("Por favor, especifique um ficheiro de licença e tente novamente. Também pode continuar sem um, mas isso pode comprometer a imagem.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case "ITA" - MsgBox("Specificare un file di licenza e riprovare. È possibile continuare anche senza, ma ciò potrebbe compromettere l'immagine", vbOKOnly + vbCritical, "Aggiungere i pacchetti AppX approvvigionati") - End Select - Case 1 - MsgBox("Please specify a license file and try again. You can also continue without one, but this may compromise the image.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case 2 - MsgBox("Especifique un archivo de licencia e inténtelo de nuevo. También puede continuar sin uno, pero esta acción podría comprometer la imagen.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case 3 - MsgBox("Veuillez indiquer un fichier de licence et réessayer. Vous pouvez également continuer sans licence, mais cela risque de compromettre l'image.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case 4 - MsgBox("Por favor, especifique um ficheiro de licença e tente novamente. Também pode continuar sem um, mas isso pode comprometer a imagem.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case 5 - MsgBox("Specificare un file di licenza e riprovare. È possibile continuare anche senza, ma ciò potrebbe compromettere l'immagine", vbOKOnly + vbCritical, "Aggiungere i pacchetti AppX approvvigionati") - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.Validation")("LicenseFile.Required.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxProvision.Validation")("Add.Prov.Title")) Exit Sub ElseIf Not File.Exists(TextBox1.Text) Then DynaLog.LogMessage("The license file does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The license file specified was not found. Make sure it exists on the specified location and try again.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case "ESN" - MsgBox("El archivo de licencia especificado no se ha encontrado. Asegúrese de que exista en la ubicación especificada e inténtelo de nuevo.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Le fichier de licence spécifié n'a pas été trouvé. Assurez-vous qu'il existe à l'emplacement spécifié et réessayez.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("O ficheiro de licença especificado não foi encontrado. Certifique-se de que existe no local especificado e tente novamente.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case "ITA" - MsgBox("Il file di licenza specificato non è stato trovato. Assicuratevi che esista nella posizione specificata e riprovate", vbOKOnly + vbCritical, "Aggiungi pacchetti AppX approvvigionati") - End Select - Case 1 - MsgBox("The license file specified was not found. Make sure it exists on the specified location and try again.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case 2 - MsgBox("El archivo de licencia especificado no se ha encontrado. Asegúrese de que exista en la ubicación especificada e inténtelo de nuevo.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case 3 - MsgBox("Le fichier de licence spécifié n'a pas été trouvé. Assurez-vous qu'il existe à l'emplacement spécifié et réessayez.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case 4 - MsgBox("O ficheiro de licença especificado não foi encontrado. Certifique-se de que existe no local especificado e tente novamente.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case 5 - MsgBox("Il file di licenza specificato non è stato trovato. Assicuratevi che esista nella posizione specificata e riprovate", vbOKOnly + vbCritical, "Aggiungi pacchetti AppX approvvigionati") - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.Validation")("LicenseNotFound.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxProvision.Validation")("Add.Prov.Title")) Exit Sub Else DynaLog.LogMessage("The license file exists in the file system.") @@ -166,59 +94,11 @@ Public Class AddProvAppxPackage DynaLog.LogMessage("A custom data file is expected to be used.") If TextBox2.Text = "" Then DynaLog.LogMessage("No custom data file has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a custom data file and try again. You can also continue without one.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case "ESN" - MsgBox("Especifique un archivo de datos personalizados e inténtelo de nuevo. También puede continuar sin uno", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Veuillez spécifier un fichier de données personnalisé et réessayer. Vous pouvez également continuer sans fichier.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("Especifique um ficheiro de dados personalizado e tente novamente. Também pode continuar sem um.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case "ITA" - MsgBox("Specificare un file di dati personalizzato e riprovare. È possibile continuare anche senza", vbOKOnly + vbCritical, "Aggiungere pacchetti AppX approvvigionati") - End Select - Case 1 - MsgBox("Please specify a custom data file and try again. You can also continue without one.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case 2 - MsgBox("Especifique un archivo de datos personalizados e inténtelo de nuevo. También puede continuar sin uno", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case 3 - MsgBox("Veuillez spécifier un fichier de données personnalisé et réessayer. Vous pouvez également continuer sans fichier.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case 4 - MsgBox("Especifique um ficheiro de dados personalizado e tente novamente. Também pode continuar sem um.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case 5 - MsgBox("Specificare un file di dati personalizzato e riprovare. È possibile continuare anche senza", vbOKOnly + vbCritical, "Aggiungere pacchetti AppX approvvigionati") - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.Validation")("CustomData.Required.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxProvision.Validation")("Add.Prov.Title")) Exit Sub ElseIf Not File.Exists(TextBox2.Text) Then DynaLog.LogMessage("The custom data file does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The custom data file specified was not found. Make sure it exists on the specified location and try again.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case "ESN" - MsgBox("El archivo de datos personalizados especificado no se ha encontrado. Asegúrese de que exista en la ubicación especificada e inténtelo de nuevo.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Le fichier de données personnalisées spécifié n'a pas été trouvé. Assurez-vous qu'il existe à l'emplacement spécifié et réessayez.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("O ficheiro de dados personalizado especificado não foi encontrado. Certifique-se de que existe na localização especificada e tente novamente.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case "ITA" - MsgBox("Il file di dati personalizzati specificato non è stato trovato. Assicurarsi che esista nella posizione specificata e riprovare", vbOKOnly + vbCritical, "Aggiungere pacchetti AppX approvvigionati") - End Select - Case 1 - MsgBox("The custom data file specified was not found. Make sure it exists on the specified location and try again.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case 2 - MsgBox("El archivo de datos personalizados especificado no se ha encontrado. Asegúrese de que exista en la ubicación especificada e inténtelo de nuevo.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case 3 - MsgBox("Le fichier de données personnalisées spécifié n'a pas été trouvé. Assurez-vous qu'il existe à l'emplacement spécifié et réessayez.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case 4 - MsgBox("O ficheiro de dados personalizado especificado não foi encontrado. Certifique-se de que existe na localização especificada e tente novamente.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case 5 - MsgBox("Il file di dati personalizzati specificato non è stato trovato. Assicurarsi che esista nella posizione specificata e riprovare", vbOKOnly + vbCritical, "Aggiungere pacchetti AppX approvvigionati") - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.Validation")("CustomData.File.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxProvision.Validation")("Add.Prov.Title")) Exit Sub Else DynaLog.LogMessage("The custom data file exists in the file system.") @@ -268,31 +148,7 @@ Public Class AddProvAppxPackage Return True Else DynaLog.LogMessage("The image is not supported") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.Init")("UnsupportedImage.Message"), vbOKOnly + vbCritical, Text) Return False End If End Function @@ -302,406 +158,43 @@ Public Class AddProvAppxPackage Close() End If ComboBox1.Items.Clear() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Add provisioned AppX packages" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please add packed or unpacked AppX packages by using the buttons below, or by dropping them to the list view below:" - Label3.Text = "An AppX package may need some dependencies for it to be installed correctly. If so, you can specify a list of dependencies now:" - Label4.Text = "Stub preference:" - Label5.Text = "To specify multiple app regions, separate them with a semicolon (;)" - Label6.Text = "Select an entry in the list view to show the details of an app and to configure addition settings" - Button1.Text = "Add file" - Button2.Text = "Add folder" - Button3.Text = "Remove all entries" - Button4.Text = "Remove all dependencies" - Button5.Text = "Remove dependency" - Button6.Text = "Add dependency..." - Button7.Text = "Browse..." - Button8.Text = "Browse..." - Button9.Text = "Remove selected entry" - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - CheckBox1.Text = "Custom data file:" - CheckBox2.Text = "Commit image after adding AppX packages" - CustomDataFileOFD.Title = "Specify a custom data file" - GroupBox2.Text = "AppX dependencies" - GroupBox3.Text = "AppX regions" - LicenseFileOFD.Title = "Specify a license file" - LinkLabel1.Text = "App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To learn more about these codes, click here" - LinkLabel1.LinkArea = New LinkArea(108, 10) - ListView1.Columns(0).Text = "File/Folder" - ListView1.Columns(1).Text = "Type" - ListView1.Columns(2).Text = "Application name" - ListView1.Columns(3).Text = "Application publisher" - ListView1.Columns(4).Text = "Application version" - CheckBox3.Text = "License file:" - CheckBox4.Text = "Make app available for all regions" - UnpackedAppxFolderFBD.Description = "Please specify a folder containing unpacked AppX files:" - Case "ESN" - Text = "Añadir paquetes aprovisionados AppX" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Añada archivos AppX empaquetados o desempaquetados usando los botones de abajo, o soltándolos en la lista de abajo:" - Label3.Text = "Un paquete AppX podría necesitar algunas dependencias para que sea instalado correctamente. Si es así, puede especificarlas ahora:" - Label4.Text = "Preferencia de talón:" - Label5.Text = "Para especificar regiones de aplicación múltiples, sepáralos con un punto y coma (;)" - Label6.Text = "Seleccione una entrada en la lista para mostrar los detalles de una aplicación y para configurar opciones de adición" - Button1.Text = "Añadir archivo" - Button2.Text = "Añadir carpeta" - Button3.Text = "Eliminar todas las entradas" - Button4.Text = "Eliminar todas las dependencias" - Button5.Text = "Eliminar dependencia" - Button6.Text = "Añadir dependencia..." - Button7.Text = "Examinar..." - Button8.Text = "Examinar..." - Button9.Text = "Eliminar entrada seleccionada" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - CheckBox1.Text = "Archivo de datos:" - CheckBox2.Text = "Guardar imagen tras añadir paquetes AppX" - CustomDataFileOFD.Title = "Especificar un archivo de datos personalizados" - GroupBox2.Text = "Dependencias de aplicaciones" - GroupBox3.Text = "Regiones de aplicaciones" - LicenseFileOFD.Title = "Especificar un archivo de licencia" - LinkLabel1.Text = "Las regiones de aplicaciones deben estar en el formato de códigos ISO 3166-1 Alpha 2 o Alpha 3. Saber más acerca de estos códigos" - LinkLabel1.LinkArea = New LinkArea(96, 33) - ListView1.Columns(0).Text = "Archivo/Carpeta" - ListView1.Columns(1).Text = "Tipo" - ListView1.Columns(2).Text = "Nombre de aplicación" - ListView1.Columns(3).Text = "Publicador de aplicación" - ListView1.Columns(4).Text = "Versión de aplicación" - CheckBox3.Text = "Archivo de licencia:" - CheckBox4.Text = "Hacer aplicación disponible para todas las regiones" - UnpackedAppxFolderFBD.Description = "Especifique un directorio contenedor de archivos de una aplicación AppX:" - Case "FRA" - Text = "Ajouter des paquets AppX provisionnés" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez ajouter des paquets AppX emballés ou non emballés en utilisant les boutons ci-dessous, ou en les déposant dans la liste ci-dessous :" - Label3.Text = "Un paquet AppX peut avoir besoin de certaines dépendances pour être installé correctement. Si c'est le cas, vous pouvez spécifier une liste de dépendances maintenant :" - Label4.Text = "Préférence pour le paquet de stub :" - Label5.Text = "Pour spécifier plusieurs régions d'application, séparez-les par un point-virgule ( ;)" - Label6.Text = "Sélectionnez une entrée dans la liste pour afficher les détails d'une application et pour configurer les paramètres d'ajout." - Button1.Text = "Ajouter un fichier" - Button2.Text = "Ajouter un répertoire" - Button3.Text = "Supprimer toutes les entrées" - Button4.Text = "Supprimer toutes les dépendances" - Button5.Text = "Supprimer la dépendance" - Button6.Text = "Ajouter une dépendance..." - Button7.Text = "Parcourir..." - Button8.Text = "Parcourir..." - Button9.Text = "Supprimer l'entrée sélectionnée" - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - CheckBox1.Text = "Fichier de données personnalisé :" - CheckBox2.Text = "Sauvegarder l'image après l'ajout de paquets AppX" - CustomDataFileOFD.Title = "Spécifier un fichier de données personnalisé" - GroupBox2.Text = "Dépendances AppX" - GroupBox3.Text = "Régions AppX" - LicenseFileOFD.Title = "Spécifier un fichier de licence" - LinkLabel1.Text = "Les régions d'application doivent être présentées sous la forme de codes ISO 3166-1 Alpha 2 ou Alpha 3. Pour en savoir plus sur ces codes, cliquez ici" - LinkLabel1.LinkArea = New LinkArea(139, 11) - ListView1.Columns(0).Text = "Fichier/Répertoire" - ListView1.Columns(1).Text = "Type" - ListView1.Columns(2).Text = "Nom de l'application" - ListView1.Columns(3).Text = "Éditeur de l'application" - ListView1.Columns(4).Text = "Version de l'application" - CheckBox3.Text = "Fichier de licence :" - CheckBox4.Text = "Mettre l'application à la disposition de toutes les régions" - UnpackedAppxFolderFBD.Description = "Veuillez spécifier un répertoire contenant les fichiers AppX décompressés :" - Case "PTB", "PTG" - Text = "Adicionar pacotes AppX provisionados" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Adicione pacotes AppX embalados ou descompactados utilizando os botões abaixo, ou largando-os na vista de lista abaixo:" - Label3.Text = "Um pacote AppX pode precisar de algumas dependências para ser instalado corretamente. Se assim for, pode especificar uma lista de dependências agora:" - Label4.Text = "Preferência de pacote de stub:" - Label5.Text = "Para especificar várias regiões de aplicação, separe-as com um ponto e vírgula (;)" - Label6.Text = "Seleccione uma entrada na vista de lista para mostrar os detalhes de uma aplicação e para configurar definições adicionais" - Button1.Text = "Adicionar ficheiro" - Button2.Text = "Adicionar pasta" - Button3.Text = "Remover todas as entradas" - Button4.Text = "Remover todas as dependências" - Button5.Text = "Remover dependência" - Button6.Text = "Adicionar dependência..." - Button7.Text = "Navegar..." - Button8.Text = "Navegar..." - Button9.Text = "Remover entrada selecionada" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - CheckBox1.Text = "Ficheiro de dados personalizado:" - CheckBox2.Text = "Confirmar imagem depois de adicionar pacotes AppX" - CustomDataFileOFD.Title = "Especificar um ficheiro de dados personalizado" - GroupBox2.Text = "Dependências AppX" - GroupBox3.Text = "Regiões da AppX" - LicenseFileOFD.Title = "Especificar um ficheiro de licença" - LinkLabel1.Text = "As regiões da aplicação têm de estar na forma de códigos ISO 3166-1 Alpha 2 ou Alpha-3. Para saber mais sobre estes códigos, clique aqui" - LinkLabel1.LinkArea = New LinkArea(125, 11) - ListView1.Columns(0).Text = "Ficheiro/Pasta" - ListView1.Columns(1).Text = "Tipo" - ListView1.Columns(2).Text = "Nome da aplicação" - ListView1.Columns(3).Text = "Editor da aplicação" - ListView1.Columns(4).Text = "Versão da aplicação" - CheckBox3.Text = "Ficheiro de licença:" - CheckBox4.Text = "Tornar a aplicação disponível para todas as regiões" - UnpackedAppxFolderFBD.Description = "Especifique uma pasta que contenha ficheiros AppX descompactados:" - Case "ITA" - Text = "Aggiungi pacchetti AppX approvvigionati" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Aggiungere pacchetti AppX imballati o non imballati utilizzando i pulsanti sottostanti o rilasciandoli nella vista elenco sottostante:" - Label3.Text = "Un pacchetto AppX può richiedere alcune dipendenze per essere installato correttamente. In tal caso, è possibile specificare un elenco di dipendenze:" - Label4.Text = "Preferenza pacchetto stub:" - Label5.Text = "Per specificare più regioni di app, separarle con un punto e virgola (;)" - Label6.Text = "Selezionate un elemento nella vista elenco per visualizzare i dettagli di un'applicazione e per configurare le impostazioni aggiuntive" - Button1.Text = "Aggiungi file" - Button2.Text = "Aggiungi cartella" - Button3.Text = "Rimuovi tutte le voci" - Button4.Text = "Rimuovi tutte le dipendenze" - Button5.Text = "Rimuovi dipendenza" - Button6.Text = "Aggiungi dipendenza..." - Button7.Text = "Sfogliare..." - Button8.Text = "Sfoglia..." - Button9.Text = "Rimuovi voce selezionata" - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - CheckBox1.Text = "File dati personalizzato:" - CheckBox2.Text = "Applicare l'immagine dopo l'aggiunta dei pacchetti AppX" - CustomDataFileOFD.Title = "Specifica un file di dati personalizzato" - GroupBox2.Text = "Dipendenze AppX" - GroupBox3.Text = "Regioni di AppX" - LicenseFileOFD.Title = "Specificare un file di licenza" - LinkLabel1.Text = "Le regioni dell'app devono essere sotto forma di codici ISO 3166-1 Alpha 2 o Alpha-3. Per saperne di più su questi codici, fare clic qui" - LinkLabel1.LinkArea = New LinkArea(123, 13) - ListView1.Columns(0).Text = "File/Cartella" - ListView1.Columns(1).Text = "Tipo" - ListView1.Columns(2).Text = "Nome applicazione" - ListView1.Columns(3).Text = "Editore dell'applicazione" - ListView1.Columns(4).Text = "Versione dell'applicazione" - CheckBox3.Text = "File di licenza:" - CheckBox4.Text = "Rendi l'applicazione disponibile per tutte le regioni" - UnpackedAppxFolderFBD.Description = "Specificare una cartella contenente i file AppX scompattati:" - End Select - Case 1 - Text = "Add provisioned AppX packages" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please add packed or unpacked AppX packages by using the buttons below, or by dropping them to the list view below:" - Label3.Text = "An AppX package may need some dependencies for it to be installed correctly. If so, you can specify a list of dependencies now:" - Label4.Text = "Stub preference:" - Label5.Text = "To specify multiple app regions, separate them with a semicolon (;)" - Label6.Text = "Select an entry in the list view to show the details of an app and to configure addition settings" - Button1.Text = "Add file" - Button2.Text = "Add folder" - Button3.Text = "Remove all entries" - Button4.Text = "Remove all dependencies" - Button5.Text = "Remove dependency" - Button6.Text = "Add dependency..." - Button7.Text = "Browse..." - Button8.Text = "Browse..." - Button9.Text = "Remove selected entry" - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - CheckBox1.Text = "Custom data file:" - CheckBox2.Text = "Commit image after adding AppX packages" - CustomDataFileOFD.Title = "Specify a custom data file" - GroupBox2.Text = "AppX dependencies" - GroupBox3.Text = "AppX regions" - LicenseFileOFD.Title = "Specify a license file" - LinkLabel1.Text = "App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To learn more about these codes, click here" - LinkLabel1.LinkArea = New LinkArea(108, 10) - ListView1.Columns(0).Text = "File/Folder" - ListView1.Columns(1).Text = "Type" - ListView1.Columns(2).Text = "Application name" - ListView1.Columns(3).Text = "Application publisher" - ListView1.Columns(4).Text = "Application version" - CheckBox3.Text = "License file:" - CheckBox4.Text = "Make app available for all regions" - UnpackedAppxFolderFBD.Description = "Please specify a folder containing unpacked AppX files:" - Case 2 - Text = "Añadir paquetes aprovisionados AppX" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Añada archivos AppX empaquetados o desempaquetados usando los botones de abajo, o soltándolos en la lista de abajo:" - Label3.Text = "Un paquete AppX podría necesitar algunas dependencias para que sea instalado correctamente. Si es así, puede especificarlas ahora:" - Label4.Text = "Preferencia de talón:" - Label5.Text = "Para especificar regiones de aplicación múltiples, sepáralos con un punto y coma (;)" - Label6.Text = "Seleccione una entrada en la lista para mostrar los detalles de una aplicación y para configurar opciones de adición" - Button1.Text = "Añadir archivo" - Button2.Text = "Añadir carpeta" - Button3.Text = "Eliminar todas las entradas" - Button4.Text = "Eliminar todas las dependencias" - Button5.Text = "Eliminar dependencia" - Button6.Text = "Añadir dependencia..." - Button7.Text = "Examinar..." - Button8.Text = "Examinar..." - Button9.Text = "Eliminar entrada seleccionada" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - CheckBox1.Text = "Archivo de datos:" - CheckBox2.Text = "Guardar imagen tras añadir paquetes AppX" - CustomDataFileOFD.Title = "Especificar un archivo de datos personalizados" - GroupBox2.Text = "Dependencias de aplicaciones" - GroupBox3.Text = "Regiones de aplicaciones" - LicenseFileOFD.Title = "Especificar un archivo de licencia" - LinkLabel1.Text = "Las regiones de aplicaciones deben estar en el formato de códigos ISO 3166-1 Alpha 2 o Alpha 3. Saber más acerca de estos códigos" - LinkLabel1.LinkArea = New LinkArea(96, 33) - ListView1.Columns(0).Text = "Archivo/Carpeta" - ListView1.Columns(1).Text = "Tipo" - ListView1.Columns(2).Text = "Nombre de aplicación" - ListView1.Columns(3).Text = "Publicador de aplicación" - ListView1.Columns(4).Text = "Versión de aplicación" - CheckBox3.Text = "Archivo de licencia:" - CheckBox4.Text = "Hacer aplicación disponible para todas las regiones" - UnpackedAppxFolderFBD.Description = "Especifique un directorio contenedor de archivos de una aplicación AppX:" - Case 3 - Text = "Ajouter des paquets AppX provisionnés" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez ajouter des paquets AppX emballés ou non emballés en utilisant les boutons ci-dessous, ou en les déposant dans la liste ci-dessous :" - Label3.Text = "Un paquet AppX peut avoir besoin de certaines dépendances pour être installé correctement. Si c'est le cas, vous pouvez spécifier une liste de dépendances maintenant :" - Label4.Text = "Préférence pour le paquet de stub :" - Label5.Text = "Pour spécifier plusieurs régions d'application, séparez-les par un point-virgule ( ;)" - Label6.Text = "Sélectionnez une entrée dans la liste pour afficher les détails d'une application et pour configurer les paramètres d'ajout." - Button1.Text = "Ajouter un fichier" - Button2.Text = "Ajouter un répertoire" - Button3.Text = "Supprimer toutes les entrées" - Button4.Text = "Supprimer toutes les dépendances" - Button5.Text = "Supprimer la dépendance" - Button6.Text = "Ajouter une dépendance..." - Button7.Text = "Parcourir..." - Button8.Text = "Parcourir..." - Button9.Text = "Supprimer l'entrée sélectionnée" - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - CheckBox1.Text = "Fichier de données personnalisé :" - CheckBox2.Text = "Sauvegarder l'image après l'ajout de paquets AppX" - CustomDataFileOFD.Title = "Spécifier un fichier de données personnalisé" - GroupBox2.Text = "Dépendances AppX" - GroupBox3.Text = "Régions AppX" - LicenseFileOFD.Title = "Spécifier un fichier de licence" - LinkLabel1.Text = "Les régions d'application doivent être présentées sous la forme de codes ISO 3166-1 Alpha 2 ou Alpha 3. Pour en savoir plus sur ces codes, cliquez ici" - LinkLabel1.LinkArea = New LinkArea(139, 11) - ListView1.Columns(0).Text = "Fichier/Répertoire" - ListView1.Columns(1).Text = "Type" - ListView1.Columns(2).Text = "Nom de l'application" - ListView1.Columns(3).Text = "Éditeur de l'application" - ListView1.Columns(4).Text = "Version de l'application" - CheckBox3.Text = "Fichier de licence :" - CheckBox4.Text = "Mettre l'application à la disposition de toutes les régions" - UnpackedAppxFolderFBD.Description = "Veuillez spécifier un répertoire contenant les fichiers AppX décompressés :" - Case 4 - Text = "Adicionar pacotes AppX provisionados" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Adicione pacotes AppX embalados ou descompactados utilizando os botões abaixo, ou largando-os na vista de lista abaixo:" - Label3.Text = "Um pacote AppX pode precisar de algumas dependências para ser instalado corretamente. Se assim for, pode especificar uma lista de dependências agora:" - Label4.Text = "Preferência de pacote de stub:" - Label5.Text = "Para especificar várias regiões de aplicação, separe-as com um ponto e vírgula (;)" - Label6.Text = "Seleccione uma entrada na vista de lista para mostrar os detalhes de uma aplicação e para configurar definições adicionais" - Button1.Text = "Adicionar ficheiro" - Button2.Text = "Adicionar pasta" - Button3.Text = "Remover todas as entradas" - Button4.Text = "Remover todas as dependências" - Button5.Text = "Remover dependência" - Button6.Text = "Adicionar dependência..." - Button7.Text = "Navegar..." - Button8.Text = "Navegar..." - Button9.Text = "Remover entrada selecionada" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - CheckBox1.Text = "Ficheiro de dados personalizado:" - CheckBox2.Text = "Confirmar imagem depois de adicionar pacotes AppX" - CustomDataFileOFD.Title = "Especificar um ficheiro de dados personalizado" - GroupBox2.Text = "Dependências AppX" - GroupBox3.Text = "Regiões da AppX" - LicenseFileOFD.Title = "Especificar um ficheiro de licença" - LinkLabel1.Text = "As regiões da aplicação têm de estar na forma de códigos ISO 3166-1 Alpha 2 ou Alpha-3. Para saber mais sobre estes códigos, clique aqui" - LinkLabel1.LinkArea = New LinkArea(125, 11) - ListView1.Columns(0).Text = "Ficheiro/Pasta" - ListView1.Columns(1).Text = "Tipo" - ListView1.Columns(2).Text = "Nome da aplicação" - ListView1.Columns(3).Text = "Editor da aplicação" - ListView1.Columns(4).Text = "Versão da aplicação" - CheckBox3.Text = "Ficheiro de licença:" - CheckBox4.Text = "Tornar a aplicação disponível para todas as regiões" - UnpackedAppxFolderFBD.Description = "Especifique uma pasta que contenha ficheiros AppX descompactados:" - Case 5 - Text = "Aggiungi pacchetti AppX approvvigionati" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Aggiungere pacchetti AppX imballati o non imballati utilizzando i pulsanti sottostanti o rilasciandoli nella vista elenco sottostante:" - Label3.Text = "Un pacchetto AppX può richiedere alcune dipendenze per essere installato correttamente. In tal caso, è possibile specificare un elenco di dipendenze:" - Label4.Text = "Preferenza pacchetto stub:" - Label5.Text = "Per specificare più regioni di app, separarle con un punto e virgola (;)" - Label6.Text = "Selezionate un elemento nella vista elenco per visualizzare i dettagli di un'applicazione e per configurare le impostazioni aggiuntive" - Button1.Text = "Aggiungi file" - Button2.Text = "Aggiungi cartella" - Button3.Text = "Rimuovi tutte le voci" - Button4.Text = "Rimuovi tutte le dipendenze" - Button5.Text = "Rimuovi dipendenza" - Button6.Text = "Aggiungi dipendenza..." - Button7.Text = "Sfogliare..." - Button8.Text = "Sfoglia..." - Button9.Text = "Rimuovi voce selezionata" - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - CheckBox1.Text = "File dati personalizzato:" - CheckBox2.Text = "Applicare l'immagine dopo l'aggiunta dei pacchetti AppX" - CustomDataFileOFD.Title = "Specifica un file di dati personalizzato" - GroupBox2.Text = "Dipendenze AppX" - GroupBox3.Text = "Regioni di AppX" - LicenseFileOFD.Title = "Specificare un file di licenza" - LinkLabel1.Text = "Le regioni dell'app devono essere sotto forma di codici ISO 3166-1 Alpha 2 o Alpha-3. Per saperne di più su questi codici, fare clic qui" - LinkLabel1.LinkArea = New LinkArea(123, 13) - ListView1.Columns(0).Text = "File/Cartella" - ListView1.Columns(1).Text = "Tipo" - ListView1.Columns(2).Text = "Nome applicazione" - ListView1.Columns(3).Text = "Editore dell'applicazione" - ListView1.Columns(4).Text = "Versione dell'applicazione" - CheckBox3.Text = "File di licenza:" - CheckBox4.Text = "Rendi l'applicazione disponibile per tutte le regioni" - UnpackedAppxFolderFBD.Description = "Specificare una cartella contenente i file AppX scompattati:" - End Select - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - StubPreferences(0) = "Do not configure stub preference" - StubPreferences(1) = "Install application as a stub package" - StubPreferences(2) = "Install application as a full package" - Case "ESN" - StubPreferences(0) = "No configurar preferencia de talón" - StubPreferences(1) = "Instalar aplicación como un paquete talón" - StubPreferences(2) = "Instalar aplicación como un paquete completo" - Case "FRA" - StubPreferences(0) = "Ne pas configurer la préférence de stub" - StubPreferences(1) = "Installer l'application en tant que paquet partiel" - StubPreferences(2) = "Installer l'application en tant que paquet complet" - Case "PTB", "PTG" - StubPreferences(0) = "Não configurar preferência de stub" - StubPreferences(1) = "Instalar a aplicação como um pacote de stub" - StubPreferences(2) = "Instalar a aplicação como um pacote completo" - Case "ITA" - StubPreferences(0) = "Non configurare le preferenze di stub" - StubPreferences(1) = "Installa l'applicazione come pacchetto stub" - StubPreferences(2) = "Installa l'applicazione come pacchetto completo" - End Select - Case 1 - StubPreferences(0) = "Do not configure stub preference" - StubPreferences(1) = "Install application as a stub package" - StubPreferences(2) = "Install application as a full package" - Case 2 - StubPreferences(0) = "No configurar preferencia de talón" - StubPreferences(1) = "Instalar aplicación como un paquete talón" - StubPreferences(2) = "Instalar aplicación como un paquete completo" - Case 3 - StubPreferences(0) = "Ne pas configurer la préférence de stub" - StubPreferences(1) = "Installer l'application en tant que paquet partiel" - StubPreferences(2) = "Installer l'application en tant que paquet complet" - Case 4 - StubPreferences(0) = "Não configurar preferência de stub" - StubPreferences(1) = "Instalar a aplicação como um pacote de stub" - StubPreferences(2) = "Instalar a aplicação como um pacote completo" - Case 5 - StubPreferences(0) = "Non configurare le preferenze di stub" - StubPreferences(1) = "Installa l'applicazione come pacchetto stub" - StubPreferences(2) = "Installa l'applicazione come pacchetto completo" - End Select + Text = LocalizationService.ForSection("AppxProvision")("Add.Prov.Item") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("AppxProvision")("Packages.Required.Message") + Label3.Text = LocalizationService.ForSection("AppxProvision")("Package.Message") + Label4.Text = LocalizationService.ForSection("AppxProvision")("StubPreference.Item") + Label5.Text = LocalizationService.ForSection("AppxProvision")("Multiple.App.Regions.Item") + Label6.Text = LocalizationService.ForSection("AppxProvision")("Entry.List.View.Message") + Button1.Text = LocalizationService.ForSection("AppxProvision")("AddFile.Item") + Button2.Text = LocalizationService.ForSection("AppxProvision")("AddFolder.Item") + Button3.Text = LocalizationService.ForSection("AppxProvision")("Remove.Entries.Item") + Button4.Text = LocalizationService.ForSection("AppxProvision")("Remove.Dependencies.Item") + Button5.Text = LocalizationService.ForSection("AppxProvision")("RemoveDependency.Item") + Button6.Text = LocalizationService.ForSection("AppxProvision")("AddDependency.Item") + Button7.Text = LocalizationService.ForSection("AppxProvision")("Browse.Button") + Button8.Text = LocalizationService.ForSection("AppxProvision")("Browse.Button") + Button9.Text = LocalizationService.ForSection("AppxProvision")("Remove.Selected.Entry.Item") + Cancel_Button.Text = LocalizationService.ForSection("AppxProvision")("Cancel.Button") + OK_Button.Text = LocalizationService.ForSection("AppxProvision")("Ok.Button") + CheckBox1.Text = LocalizationService.ForSection("AppxProvision")("CustomDataFile.Item") + CheckBox2.Text = LocalizationService.ForSection("AppxProvision")("CommitImage.Item") + CustomDataFileOFD.Title = LocalizationService.ForSection("AppxProvision")("CustomData.File.Title") + GroupBox2.Text = LocalizationService.ForSection("AppxProvision")("AppxDependencies.Item") + GroupBox3.Text = LocalizationService.ForSection("AppxProvision")("AppxRegions.Item") + LicenseFileOFD.Title = LocalizationService.ForSection("AppxProvision")("LicenseFile.Title") + LinkLabel1.Text = LocalizationService.ForSection("AppxProvision")("App.Regions.Form.Message") + LinkLabel1.LinkArea = LocalizationService.GetLinkArea(LinkLabel1.Text, LocalizationService.ForSection("AppxProvision")("Help.Link")) + ListView1.Columns(0).Text = LocalizationService.ForSection("AppxProvision")("FileFolder.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("AppxProvision")("Type.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("AppxProvision")("ApplicationName.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("AppxProvision")("App.Publisher.Column") + ListView1.Columns(4).Text = LocalizationService.ForSection("AppxProvision")("App.Version.Column") + CheckBox3.Text = LocalizationService.ForSection("AppxProvision")("LicenseFile.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("AppxProvision")("App.Available.CheckBox") + UnpackedAppxFolderFBD.Description = LocalizationService.ForSection("AppxProvision")("Folder.Required.Description") + StubPreferences(0) = LocalizationService.ForSection("AppxProvision")("Configure.Stub.Item") + StubPreferences(1) = LocalizationService.ForSection("AppxProvision")("Install.Stub.Package.Item") + StubPreferences(2) = LocalizationService.ForSection("AppxProvision")("Install.Full.Package.Item") ComboBox1.Items.AddRange(StubPreferences) ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor @@ -934,71 +427,11 @@ Public Class AddProvAppxPackage AppxPublishers = AppxPublisherList.ToArray() AppxVersion = AppxVersionList.ToArray() ' Add the package right away - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Unpacked (Encrypted)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Packed (Encrypted)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - Case "ESN" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desempaquetado (Encriptado)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Empaquetado (Encriptado)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - Case "FRA" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Décompacté (Crypté)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Compacté (Crypté)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - Case "PTB", "PTG" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desembalado (Encriptado)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Embalado (Encriptado)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - Case "ITA" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Disimballato (criptato)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Imballato (criptato)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - End Select - Case 1 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Unpacked (Encrypted)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Packed (Encrypted)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - Case 2 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desempaquetado (Encriptado)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Empaquetado (Encriptado)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - Case 3 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Décompacté (Crypté)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Compacté (Crypté)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - Case 4 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desembalado (Encriptado)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Embalado (Encriptado)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - Case 5 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Disimballato (criptato)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Imballato (criptato)", EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) - End If - End Select + If IsFolder Then + ListView1.Items.Add(New ListViewItem(New String() {Package, LocalizationService.ForSection("AppxProvision.Scan")("Unpacked.Encrypted.Label"), EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) + Else + ListView1.Items.Add(New ListViewItem(New String() {Package, LocalizationService.ForSection("AppxProvision.Scan")("PackedEncrypted.Label"), EcurrentAppxName, EcurrentAppxPublisher, EcurrentAppxVersion})) + End If Exit For End If Next @@ -1018,71 +451,11 @@ Public Class AddProvAppxPackage End If DynaLog.LogMessage("Specified package is an encrypted bundle application.") ' Add the package right away - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Unpacked (Encrypted)", "Encrypted application", "Encrypted application", "Encrypted application"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Packed (Encrypted)", "Encrypted application", "Encrypted application", "Encrypted application"})) - End If - Case "ESN" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desempaquetado (Encriptado)", "Aplicación encriptada", "Aplicación encriptada", "Aplicación encriptada"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Empaquetado (Encriptado)", "Aplicación encriptada", "Aplicación encriptada", "Aplicación encriptada"})) - End If - Case "FRA" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Décompacté (Crypté)", "Application cryptée", "Application cryptée", "Application cryptée"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Compacté (Crypté)", "Application cryptée", "Application cryptée", "Application cryptée"})) - End If - Case "PTB", "PTG" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desembalado (Encriptado)", "Aplicação encriptada", "Aplicação encriptada", "Aplicação encriptada"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Embalado (Encriptado)", "Aplicação encriptada", "Aplicação encriptada", "Aplicação encriptada"})) - End If - Case "ITA" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Disimballato (criptato)", "Applicazione criptata", "Applicazione criptata", "Applicazione criptata"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Imballato (criptato)", "Applicazione criptata", "Applicazione criptata", "Applicazione criptata"})) - End If - End Select - Case 1 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Unpacked (Encrypted)", "Encrypted application", "Encrypted application", "Encrypted application"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Packed (Encrypted)", "Encrypted application", "Encrypted application", "Encrypted application"})) - End If - Case 2 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desempaquetado (Encriptado)", "Aplicación encriptada", "Aplicación encriptada", "Aplicación encriptada"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Empaquetado (Encriptado)", "Aplicación encriptada", "Aplicación encriptada", "Aplicación encriptada"})) - End If - Case 3 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Décompacté (Crypté)", "Application cryptée", "Application cryptée", "Application cryptée"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Compacté (Crypté)", "Application cryptée", "Application cryptée", "Application cryptée"})) - End If - Case 4 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desembalado (Encriptado)", "Aplicação encriptada", "Aplicação encriptada", "Aplicação encriptada"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Embalado (Encriptado)", "Aplicação encriptada", "Aplicação encriptada", "Aplicação encriptada"})) - End If - Case 5 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Disimballato (criptato)", "Applicazione criptata", "Applicazione criptata", "Applicazione criptata"})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Imballato (criptato)", "Applicazione criptata", "Applicazione criptata", "Applicazione criptata"})) - End If - End Select + If IsFolder Then + ListView1.Items.Add(New ListViewItem(New String() {Package, LocalizationService.ForSection("AppxProvision.Scan")("Unpacked.Encrypted.Item"), LocalizationService.ForSection("AppxProvision.Scan")("Encrypted.App.Label"), LocalizationService.ForSection("AppxProvision.Scan")("ListItem.Label"), LocalizationService.ForSection("AppxProvision.Scan")("Encrypted.App.Label")})) + Else + ListView1.Items.Add(New ListViewItem(New String() {Package, LocalizationService.ForSection("AppxProvision.Scan")("PackedEncrypted.Item"), LocalizationService.ForSection("AppxProvision.Scan")("Encrypted.App.Label"), LocalizationService.ForSection("AppxProvision.Scan")("Encrypted.App.Label"), LocalizationService.ForSection("AppxProvision.Scan")("Encrypted.App.Label")})) + End If Dim encPackage As New AppxPackage() encPackage.PackageFile = Package encPackage.PackageName = "" @@ -1096,31 +469,7 @@ Public Class AddProvAppxPackage ElseIf Path.GetExtension(Package).Replace(".", "").Trim().StartsWith("e", StringComparison.OrdinalIgnoreCase) AndAlso Not MainForm.OnlineManagement Then DynaLog.LogMessage("Specified package is encrypted and the active installation is not being managed.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The package:" & CrLf & CrLf & Package & CrLf & CrLf & "is an encrypted application package. Neither DISMTools nor DISM support adding these application types. If you'd like to add it, you can do so, after the image is applied and booted to." - Case "ESN" - msg = "El paquete:" & CrLf & CrLf & Package & CrLf & CrLf & "es un paquete de aplicación encriptado. Ni DISMTools ni DISM soportan añadir estos tipos de aplicaciones. Si le gustaría añadirlo, puede hacerlo, después de que la imagen se haya aplicado e iniciado." - Case "FRA" - msg = "Le paquet :" & CrLf & CrLf & Package & CrLf & CrLf & "est un paquet d'applications cryptées. Ni DISMTools ni DISM ne supportent l'ajout de ces types d'applications. Si vous souhaitez l'ajouter, vous pouvez le faire après l'application de l'image et le démarrage." - Case "PTB", "PTG" - msg = "O pacote:" & CrLf & CrLf & Package & CrLf & CrLf & "é um pacote de aplicações encriptadas. Nem o DISMTools nem o DISM suportam a adição destes tipos de aplicações. Se quiser adicioná-lo, pode fazê-lo depois de a imagem ser aplicada e inicializada." - Case "ITA" - msg = "Il pacchetto:" & CrLf & CrLf & Package & CrLf & CrLf & "è un pacchetto di applicazioni criptate. Né DISMTools né DISM supportano l'aggiunta di questi tipi di applicazioni. Se si desidera aggiungerlo, è possibile farlo dopo che l'immagine è stata applicata e avviata." - End Select - Case 1 - msg = "The package:" & CrLf & CrLf & Package & CrLf & CrLf & "is an encrypted application package. Neither DISMTools nor DISM support adding these application types. If you'd like to add it, you can do so, after the image is applied and booted to." - Case 2 - msg = "El paquete:" & CrLf & CrLf & Package & CrLf & CrLf & "es un paquete de aplicación encriptado. Ni DISMTools ni DISM soportan añadir estos tipos de aplicaciones. Si le gustaría añadirlo, puede hacerlo, después de que la imagen se haya aplicado e iniciado." - Case 3 - msg = "Le paquet :" & CrLf & CrLf & Package & CrLf & CrLf & "est un paquet d'applications cryptées. Ni DISMTools ni DISM ne supportent l'ajout de ces types d'applications. Si vous souhaitez l'ajouter, vous pouvez le faire après l'application de l'image et le démarrage." - Case 4 - msg = "O pacote:" & CrLf & CrLf & Package & CrLf & CrLf & "é um pacote de aplicações encriptadas. Nem o DISMTools nem o DISM suportam a adição destes tipos de aplicações. Se quiser adicioná-lo, pode fazê-lo depois de a imagem ser aplicada e inicializada." - Case 5 - msg = "Il pacchetto:" & CrLf & CrLf & Package & CrLf & CrLf & "è un pacchetto di applicazioni criptate. Né DISMTools né DISM supportano l'aggiunta di questi tipi di applicazioni. Se si desidera aggiungerlo, è possibile farlo dopo che l'immagine è stata applicata e avviata." - End Select + msg = LocalizationService.ForSection("AppxProvision.Scan").Format("Package.Encrypted.Message", Package) MsgBox(msg, vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) Exit Sub End If @@ -1260,31 +609,7 @@ Public Class AddProvAppxPackage Else DynaLog.LogMessage("Either no manifest or an unknown manifest has been detected. This is unknown.") ' Unrecognized type - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This folder doesn't seem to contain an AppX package structure. It will not be added to the list", vbOKOnly + vbExclamation, "Add provisioned AppX packages") - Case "ESN" - MsgBox("Esta carpeta no parece contener una estructura de un paquete AppX. No será añadida a la lista", vbOKOnly + vbExclamation, "Añadir paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Ce répertoire ne semble pas contenir de structure de paquetage AppX. Il ne sera pas ajouté à la liste", vbOKOnly + vbExclamation, "Ajouter des paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("Esta pasta não parece conter uma estrutura de pacotes AppX. Não será adicionada à lista", vbOKOnly + vbExclamation, "Adicionar pacotes AppX provisionados") - Case "ITA" - MsgBox("Questa cartella non sembra contenere una struttura di pacchetti AppX. Non verrà aggiunta all'elenco", vbOKOnly + vbExclamation, "Aggiungi pacchetti AppX approvvigionati") - End Select - Case 1 - MsgBox("This folder doesn't seem to contain an AppX package structure. It will not be added to the list", vbOKOnly + vbExclamation, "Add provisioned AppX packages") - Case 2 - MsgBox("Esta carpeta no parece contener una estructura de un paquete AppX. No será añadida a la lista", vbOKOnly + vbExclamation, "Añadir paquetes aprovisionados AppX") - Case 3 - MsgBox("Ce répertoire ne semble pas contenir de structure de paquetage AppX. Il ne sera pas ajouté à la liste", vbOKOnly + vbExclamation, "Ajouter des paquets AppX provisionnés") - Case 4 - MsgBox("Esta pasta não parece conter uma estrutura de pacotes AppX. Não será adicionada à lista", vbOKOnly + vbExclamation, "Adicionar pacotes AppX provisionados") - Case 5 - MsgBox("Questa cartella non sembra contenere una struttura di pacchetti AppX. Non verrà aggiunta all'elenco", vbOKOnly + vbExclamation, "Aggiungi pacchetti AppX approvvigionati") - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.Scan")("Folder.Message"), vbOKOnly + vbExclamation, LocalizationService.ForSection("AppxProvision.Scan")("Add.Title")) Exit Sub End If DynaLog.LogMessage("Getting Store logo asset...") @@ -1441,31 +766,7 @@ Public Class AddProvAppxPackage If Item.SubItems(2).Text = currentAppxName And Item.SubItems(3).Text = currentAppxPublisher And Item.SubItems(4).Text = currentAppxVersion And Packages(Item.Index).PackageArchitecture = currentAppxArchitecture Then DynaLog.LogMessage("The package has already been added. Cancelling process...") ' Cancel everything - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The package you want to add is already added to the list, and all its properties match with the properties of the package specified. We won't add the specified package", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("El paquete que desea añadir ya está añadido a la lista, y todas sus propiedades coinciden con las propiedades del paquete especificado. No añadiremos el paquete especificado", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Le paquet que vous souhaitez ajouter est déjà ajouté à la liste et toutes ses propriétés correspondent à celles du paquet spécifié. Nous n'ajouterons pas le paquet spécifié", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("O pacote que pretende adicionar já foi adicionado à lista e todas as suas propriedades coincidem com as propriedades do pacote especificado. Não vamos adicionar o pacote especificado", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco e tutte le sue proprietà corrispondono a quelle del pacchetto specificato. Non aggiungeremo il pacchetto specificato", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("The package you want to add is already added to the list, and all its properties match with the properties of the package specified. We won't add the specified package", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("El paquete que desea añadir ya está añadido a la lista, y todas sus propiedades coinciden con las propiedades del paquete especificado. No añadiremos el paquete especificado", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Le paquet que vous souhaitez ajouter est déjà ajouté à la liste et toutes ses propriétés correspondent à celles du paquet spécifié. Nous n'ajouterons pas le paquet spécifié", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("O pacote que pretende adicionar já foi adicionado à lista e todas as suas propriedades coincidem com as propriedades do pacote especificado. Não vamos adicionar o pacote especificado", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco e tutte le sue proprietà corrispondono a quelle del pacchetto specificato. Non aggiungeremo il pacchetto specificato", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.Scan")("Package.Add.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) If Directory.Exists(Application.StartupPath & "\appxscan") Then Directory.Delete(Application.StartupPath & "\appxscan", True) End If @@ -1473,60 +774,12 @@ Public Class AddProvAppxPackage ElseIf Item.SubItems(2).Text = currentAppxName And Not Item.SubItems(3).Text = currentAppxPublisher Then DynaLog.LogMessage("The package is already present in the list but comes from a different developer/publisher.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The package you want to add is already added to the list, but it comes from a different developer or publisher." & CrLf & CrLf & "Do note that applications redistributed by third-party publishers or developers can cause damage to the Windows image." & CrLf & CrLf & "Do you want to replace the entry in the list with the package specified?" - Case "ESN" - msg = "El paquete que desea añadir ya está añadido a la lista, pero proviene de un desarrollador o publicador distinto." & CrLf & CrLf & "Dese cuenta de que las aplicaciones redistribuidas por publicadores o desarrolladores de terceros pueden dañar la imagen de Windows." & CrLf & CrLf & "¿Desea reemplazar la entrada en la lista por el paquete especificado?" - Case "FRA" - msg = "Le paquet que vous souhaitez ajouter a déjà été ajouté à la liste, mais il provient d'un développeur ou d'un éditeur différent." & CrLf & CrLf & "Notez que les applications redistribuées par des éditeurs ou des développeurs tiers peuvent endommager l'image Windows." & CrLf & CrLf & "Voulez-vous remplacer l'entrée de la liste par le paquet spécifié ?" - Case "PTB", "PTG" - msg = "O pacote que pretende adicionar já foi adicionado à lista, mas vem de um programador ou editor diferente." & CrLf & CrLf & "Tenha em atenção que as aplicações redistribuídas por programadores ou editores terceiros podem causar danos na imagem do Windows." & CrLf & CrLf & "Pretende substituir a entrada na lista pelo pacote especificado?" - Case "ITA" - msg = "Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco, ma proviene da uno sviluppatore o da un editore diverso." & CrLf & CrLf & "Si noti che le applicazioni ridistribuite da editori o sviluppatori di terze parti possono causare danni all'immagine di Windows." & CrLf & CrLf & "Si desidera sostituire la voce nell'elenco con il pacchetto specificato?" - End Select - Case 1 - msg = "The package you want to add is already added to the list, but it comes from a different developer or publisher." & CrLf & CrLf & "Do note that applications redistributed by third-party publishers or developers can cause damage to the Windows image." & CrLf & CrLf & "Do you want to replace the entry in the list with the package specified?" - Case 2 - msg = "El paquete que desea añadir ya está añadido a la lista, pero proviene de un desarrollador o publicador distinto." & CrLf & CrLf & "Dese cuenta de que las aplicaciones redistribuidas por publicadores o desarrolladores de terceros pueden dañar la imagen de Windows." & CrLf & CrLf & "¿Desea reemplazar la entrada en la lista por el paquete especificado?" - Case 3 - msg = "Le paquet que vous souhaitez ajouter a déjà été ajouté à la liste, mais il provient d'un développeur ou d'un éditeur différent." & CrLf & CrLf & "Notez que les applications redistribuées par des éditeurs ou des développeurs tiers peuvent endommager l'image Windows." & CrLf & CrLf & "Voulez-vous remplacer l'entrée de la liste par le paquet spécifié ?" - Case 4 - msg = "O pacote que pretende adicionar já foi adicionado à lista, mas vem de um programador ou editor diferente." & CrLf & CrLf & "Tenha em atenção que as aplicações redistribuídas por programadores ou editores terceiros podem causar danos na imagem do Windows." & CrLf & CrLf & "Pretende substituir a entrada na lista pelo pacote especificado?" - Case 5 - msg = "Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco, ma proviene da uno sviluppatore o da un editore diverso." & CrLf & CrLf & "Si noti che le applicazioni ridistribuite da editori o sviluppatori di terze parti possono causare danni all'immagine di Windows." & CrLf & CrLf & "Si desidera sostituire la voce nell'elenco con il pacchetto specificato?" - End Select + msg = LocalizationService.ForSection("AppxProvision.Scan")("Package.Added.Message") If MsgBox(msg, vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.Yes Then DynaLog.LogMessage("Changing packages...") ' Set properties Item.SubItems(0).Text = Package - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Item.SubItems(1).Text = If(IsFolder, "Unpacked", "Packed") - Case "ESN" - Item.SubItems(1).Text = If(IsFolder, "Desempaquetado", "Empaquetado") - Case "FRA" - Item.SubItems(1).Text = If(IsFolder, "Décompacté", "Compacté") - Case "PTB", "PTG" - Item.SubItems(1).Text = If(IsFolder, "Desembalado", "Embalado") - Case "ITA" - Item.SubItems(1).Text = If(IsFolder, "Disimballato", "Imballato") - End Select - Case 1 - Item.SubItems(1).Text = If(IsFolder, "Unpacked", "Packed") - Case 2 - Item.SubItems(1).Text = If(IsFolder, "Desempaquetado", "Empaquetado") - Case 3 - Item.SubItems(1).Text = If(IsFolder, "Décompacté", "Compacté") - Case 4 - Item.SubItems(1).Text = If(IsFolder, "Desembalado", "Embalado") - Case 5 - Item.SubItems(1).Text = If(IsFolder, "Disimballato", "Imballato") - End Select + Item.SubItems(1).Text = If(IsFolder, LocalizationService.ForSection("AppxProvision.Scan")("Unpacked.Item"), LocalizationService.ForSection("AppxProvision.Scan")("Packed.Item")) Item.SubItems(2).Text = currentAppxName Item.SubItems(3).Text = currentAppxPublisher Item.SubItems(4).Text = currentAppxVersion @@ -1548,60 +801,12 @@ Public Class AddProvAppxPackage ' - Cast the version strings to version objects ' - Compare the version objects part by part Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The package you want to add is already added to the list, but it contains a newer version." & CrLf & CrLf & "Do you want to replace the entry in the list with the updated package specified?" - Case "ESN" - msg = "El paquete que desea añadir ya está añadido a la lista, pero contiene una nueva versión." & CrLf & CrLf & "¿Desea reemplazar la entrada en la lista por el paquete actualizado especificado?" - Case "FRA" - msg = "Le paquet que vous souhaitez ajouter est déjà ajouté à la liste, mais il contient une version plus récente." & CrLf & CrLf & "Voulez-vous remplacer l'entrée de la liste par le paquet mis à jour spécifié ?" - Case "PTB", "PTG" - msg = "O pacote que pretende adicionar já foi adicionado à lista, mas contém uma versão mais recente." & CrLf & CrLf & "Pretende substituir a entrada na lista pelo pacote atualizado especificado?" - Case "ITA" - msg = "Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco, ma contiene una versione più recente." & CrLf & CrLf & "Si desidera sostituire la voce nell'elenco con il pacchetto aggiornato specificato?" - End Select - Case 1 - msg = "The package you want to add is already added to the list, but it contains a newer version." & CrLf & CrLf & "Do you want to replace the entry in the list with the updated package specified?" - Case 2 - msg = "El paquete que desea añadir ya está añadido a la lista, pero contiene una nueva versión." & CrLf & CrLf & "¿Desea reemplazar la entrada en la lista por el paquete actualizado especificado?" - Case 3 - msg = "Le paquet que vous souhaitez ajouter est déjà ajouté à la liste, mais il contient une version plus récente." & CrLf & CrLf & "Voulez-vous remplacer l'entrée de la liste par le paquet mis à jour spécifié ?" - Case 4 - msg = "O pacote que pretende adicionar já foi adicionado à lista, mas contém uma versão mais recente." & CrLf & CrLf & "Pretende substituir a entrada na lista pelo pacote atualizado especificado?" - Case 5 - msg = "Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco, ma contiene una versione più recente." & CrLf & CrLf & "Si desidera sostituire la voce nell'elenco con il pacchetto aggiornato specificato?" - End Select + msg = LocalizationService.ForSection("AppxProvision.Scan")("Package.Already.Message") If MsgBox(msg, vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.Yes Then DynaLog.LogMessage("Updating package to add...") ' Set properties Item.SubItems(0).Text = Package - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Item.SubItems(1).Text = If(IsFolder, "Unpacked", "Packed") - Case "ESN" - Item.SubItems(1).Text = If(IsFolder, "Desempaquetado", "Empaquetado") - Case "FRA" - Item.SubItems(1).Text = If(IsFolder, "Décompacté", "Compacté") - Case "PTB", "PTG" - Item.SubItems(1).Text = If(IsFolder, "Desembalado", "Embalado") - Case "ITA" - Item.SubItems(1).Text = If(IsFolder, "Disimballato", "Imballato") - End Select - Case 1 - Item.SubItems(1).Text = If(IsFolder, "Unpacked", "Packed") - Case 2 - Item.SubItems(1).Text = If(IsFolder, "Desempaquetado", "Empaquetado") - Case 3 - Item.SubItems(1).Text = If(IsFolder, "Décompacté", "Compacté") - Case 4 - Item.SubItems(1).Text = If(IsFolder, "Desembalado", "Embalado") - Case 5 - Item.SubItems(1).Text = If(IsFolder, "Disimballato", "Imballato") - End Select + Item.SubItems(1).Text = If(IsFolder, LocalizationService.ForSection("AppxProvision.Scan")("ItemSub.Item"), LocalizationService.ForSection("AppxProvision.Scan")("Packed.Item")) Item.SubItems(2).Text = currentAppxName Item.SubItems(3).Text = currentAppxPublisher Item.SubItems(4).Text = currentAppxVersion @@ -1621,71 +826,11 @@ Public Class AddProvAppxPackage Next End If DynaLog.LogMessage("Adding item to list...") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Unpacked", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Packed", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - Case "ESN" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desempaquetado", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Empaquetado", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - Case "FRA" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Décompacté", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Compacté", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - Case "PTB", "PTG" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desembalado", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Embalado", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - Case "ITA" - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Disimballato", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Imballato", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - End Select - Case 1 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Unpacked", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Packed", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - Case 2 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desempaquetado", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Empaquetado", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - Case 3 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Décompacté", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Compacté", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - Case 4 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Desembalado", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Embalado", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - Case 5 - If IsFolder Then - ListView1.Items.Add(New ListViewItem(New String() {Package, "Disimballato", currentAppxName, currentAppxPublisher, currentAppxVersion})) - Else - ListView1.Items.Add(New ListViewItem(New String() {Package, "Imballato", currentAppxName, currentAppxPublisher, currentAppxVersion})) - End If - End Select + If IsFolder Then + ListView1.Items.Add(New ListViewItem(New String() {Package, LocalizationService.ForSection("AppxProvision.Scan")("ListItem.Item"), currentAppxName, currentAppxPublisher, currentAppxVersion})) + Else + ListView1.Items.Add(New ListViewItem(New String() {Package, LocalizationService.ForSection("AppxProvision.Scan")("Packed.Item"), currentAppxName, currentAppxPublisher, currentAppxVersion})) + End If Dim currentPackage As New AppxPackage() currentPackage.PackageFile = Package currentPackage.PackageName = currentAppxName @@ -1769,31 +914,7 @@ Public Class AddProvAppxPackage End If Else DynaLog.LogMessage("Either no manifest or an unknown manifest has been detected. This is unknown.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Could not get application store logo assets from this package - cannot read from manifest", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case "ESN" - MsgBox("No se pudo obtener recursos de logotipos de este paquete - no se puede leer el manifiesto", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Impossible d'obtenir les ressources du logo de la boutique d'applications à partir de ce paquet - impossible de lire le manifeste.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("Não foi possível obter os activos do logótipo da loja de aplicações deste pacote - não é possível ler do manifesto", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case "ITA" - MsgBox("Impossibile ottenere le risorse del logo dell'application store da questo pacchetto - non è possibile leggere dal manifest", vbOKOnly + vbCritical, "Aggiungere pacchetti AppX approvvigionati") - End Select - Case 1 - MsgBox("Could not get application store logo assets from this package - cannot read from manifest", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case 2 - MsgBox("No se pudo obtener recursos de logotipos de este paquete - no se puede leer el manifiesto", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case 3 - MsgBox("Impossible d'obtenir les ressources du logo de la boutique d'applications à partir de ce paquet - impossible de lire le manifeste.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case 4 - MsgBox("Não foi possível obter os activos do logótipo da loja de aplicações deste pacote - não é possível ler do manifesto", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case 5 - MsgBox("Impossibile ottenere le risorse del logo dell'application store da questo pacchetto - non è possibile leggere dal manifest", vbOKOnly + vbCritical, "Aggiungere pacchetti AppX approvvigionati") - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.StoreLogo")("ReadFailed.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxProvision.StoreLogo")("Add.Title")) End If Else DynaLog.LogMessage("Specified package is not a folder. Beginning to scan package...") @@ -1948,41 +1069,8 @@ Public Class AddProvAppxPackage If ListView1.SelectedItems.Count = 1 Then Try Label7.Text = ListView1.FocusedItem.SubItems(2).Text - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label8.Text = "Publisher: " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Version: " & ListView1.FocusedItem.SubItems(4).Text - Case "ESN" - Label8.Text = "Publicador: " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Versión: " & ListView1.FocusedItem.SubItems(4).Text - Case "FRA" - Label8.Text = "Éditeur : " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Version : " & ListView1.FocusedItem.SubItems(4).Text - Case "PTB", "PTG" - Label8.Text = "Editora: " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Versão: " & ListView1.FocusedItem.SubItems(4).Text - Case "ITA" - Label8.Text = "Editore: " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Versione: " & ListView1.FocusedItem.SubItems(4).Text - End Select - Case 1 - Label8.Text = "Publisher: " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Version: " & ListView1.FocusedItem.SubItems(4).Text - Case 2 - Label8.Text = "Publicador: " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Versión: " & ListView1.FocusedItem.SubItems(4).Text - Case 3 - Label8.Text = "Éditeur : " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Version : " & ListView1.FocusedItem.SubItems(4).Text - Case 4 - Label8.Text = "Editora: " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Versão: " & ListView1.FocusedItem.SubItems(4).Text - Case 5 - Label8.Text = "Editore: " & ListView1.FocusedItem.SubItems(3).Text - Label9.Text = "Versione: " & ListView1.FocusedItem.SubItems(4).Text - End Select + Label8.Text = LocalizationService.ForSection("AppxProvision").Format("Publisher.Label", ListView1.FocusedItem.SubItems(3).Text) + Label9.Text = LocalizationService.ForSection("AppxProvision").Format("Version.Label", ListView1.FocusedItem.SubItems(4).Text) Catch ex As NullReferenceException End Try @@ -2079,41 +1167,8 @@ Public Class AddProvAppxPackage AppxFilePanel.Visible = If(ListView1.SelectedItems.Count <= 0, False, True) AppxDetailsPanel.Height = WindowHelper.ScaleLogical(If(ListView1.SelectedItems.Count <= 0, 520, 83)) FlowLayoutPanel1.Visible = If(ListView1.SelectedItems.Count <= 0, False, True) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label7.Text = "Multiple selection" - Label8.Text = "View the common properties of all selected applications" - Case "ESN" - Label7.Text = "Selección múltiple" - Label8.Text = "Vea las propiedades comunes de todas las aplicaciones seleccionadas" - Case "FRA" - Label7.Text = "Sélection multiple" - Label8.Text = "Voir les propriétés communes de toutes les applications sélectionnées" - Case "PTB", "PTG" - Label7.Text = "Seleção múltipla" - Label8.Text = "Ver as propriedades comuns de todas as aplicações seleccionadas" - Case "ITA" - Label7.Text = "Selezione multiple" - Label8.Text = "Visualizza le proprietà comuni di tutte le applicazioni selezionate" - End Select - Case 1 - Label7.Text = "Multiple selection" - Label8.Text = "View the common properties of all selected applications" - Case 2 - Label7.Text = "Selección múltiple" - Label8.Text = "Vea las propiedades comunes de todas las aplicaciones seleccionadas" - Case 3 - Label7.Text = "Sélection multiple" - Label8.Text = "Voir les propriétés communes de toutes les applications sélectionnées" - Case 4 - Label7.Text = "Seleção múltipla" - Label8.Text = "Ver as propriedades comuns de todas as aplicações seleccionadas" - Case 5 - Label7.Text = "Selezione multiple" - Label8.Text = "Visualizza le proprietà comuni di tutte le applicazioni selezionate" - End Select + Label7.Text = LocalizationService.ForSection("AppxProvision.MultiSelect")("Selection.Label") + Label8.Text = LocalizationService.ForSection("AppxProvision.MultiSelect")("CommonProps.Label") DynaLog.LogMessage("Detecting common properties with the Elements...") Label9.Visible = False PictureBox2.Visible = False @@ -2253,31 +1308,7 @@ Public Class AddProvAppxPackage Dim ctrlLoc As Point = PictureBox2.PointToScreen(Point.Empty) .StartPosition = FormStartPosition.Manual .Location = ctrlLoc - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - .Text = "Preview" - Case "ESN" - .Text = "Vista previa" - Case "FRA" - .Text = "Aperçu" - Case "PTB", "PTG" - .Text = "Pré-visualização" - Case "ITA" - .Text = "Anteprima" - End Select - Case 1 - .Text = "Preview" - Case 2 - .Text = "Vista previa" - Case 3 - .Text = "Aperçu" - Case 4 - .Text = "Pré-visualização" - Case 5 - .Text = "Anteprima" - End Select + .Text = LocalizationService.ForSection("AppxProvision")("Preview.Label") With LogoAssetPreview .Parent = LogoAssetPopupForm .Dock = DockStyle.Fill @@ -2322,57 +1353,9 @@ Public Class AddProvAppxPackage Private Sub PictureBox2_MouseHover(sender As Object, e As EventArgs) Handles PictureBox2.MouseHover Try - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "The logo assets for this file could not be detected", "Click here to enlarge the view")) - Case "ESN" - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "Los recursos de este archivo no pudieron ser detectados", "Haga clic para agrandar la vista")) - Case "FRA" - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "Le logo de ce fichier n'a pas pu être détecté.", "Cliquez ici pour agrandir la vue")) - Case "PTB", "PTG" - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "Não foi possível detetar os activos do logótipo para este ficheiro", "Clique aqui para ampliar a vista")) - Case "ITA" - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "Non è stato possibile rilevare le risorse del logo per questo file", "Fare clic qui per ingrandire la visualizzazione")) - End Select - Case 1 - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "The logo assets for this file could not be detected", "Click here to enlarge the view")) - Case 2 - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "Los recursos de este archivo no pudieron ser detectados", "Haga clic para agrandar la vista")) - Case 3 - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "Le logo de ce fichier n'a pas pu être détecté.", "Cliquez ici pour agrandir la vue")) - Case 4 - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "Não foi possível detetar os activos do logótipo para este ficheiro", "Clique aqui para ampliar a vista")) - Case 5 - WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & "\temp\storeassets\" & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, "Non è stato possibile rilevare le risorse del logo per questo file", "Fare clic qui per ingrandire la visualizzazione")) - End Select + WindowHelper.DisplayToolTip(sender, If(My.Computer.FileSystem.GetFiles(Application.StartupPath & LocalizationService.ForSection("AppxProvision.Tooltip")("TempStoreassets.Label") & ListView1.FocusedItem.SubItems(2).Text).Count <= 0, LocalizationService.ForSection("AppxProvision.Tooltip")("Logo.Assets.File.Label"), LocalizationService.ForSection("AppxProvision.Tooltip")("Enlarge.View.Label"))) Catch ex As Exception - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - WindowHelper.DisplayToolTip(sender, "The logo assets for this file could not be detected") - Case "ESN" - WindowHelper.DisplayToolTip(sender, "Los recursos de este archivo no pudieron ser detectados") - Case "FRA" - WindowHelper.DisplayToolTip(sender, "Le logo de ce fichier n'a pas pu être détecté.") - Case "PTB", "PTG" - WindowHelper.DisplayToolTip(sender, "Não foi possível detetar os activos do logótipo para este ficheiro") - Case "ITA" - WindowHelper.DisplayToolTip(sender, "Non è stato possibile rilevare le risorse del logo per questo file") - End Select - Case 1 - WindowHelper.DisplayToolTip(sender, "The logo assets for this file could not be detected") - Case 2 - WindowHelper.DisplayToolTip(sender, "Los recursos de este archivo no pudieron ser detectados") - Case 3 - WindowHelper.DisplayToolTip(sender, "Le logo de ce fichier n'a pas pu être détecté.") - Case 4 - WindowHelper.DisplayToolTip(sender, "Não foi possível detetar os activos do logótipo para este ficheiro") - Case 5 - WindowHelper.DisplayToolTip(sender, "Non è stato possibile rilevare le risorse del logo per questo file") - End Select + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("AppxProvision.Tooltip")("Logo.Assets.File.Item")) End Try End Sub @@ -2444,31 +1427,7 @@ Public Class AddProvAppxPackage ElseIf My.Computer.FileSystem.GetFiles(PackageFile, FileIO.SearchOption.SearchTopLevelOnly, "*.appx").Count > 0 Or My.Computer.FileSystem.GetFiles(PackageFile, FileIO.SearchOption.SearchTopLevelOnly, "*.msix").Count > 0 Or My.Computer.FileSystem.GetFiles(PackageFile, FileIO.SearchOption.SearchTopLevelOnly, "*.appxbundle").Count > 0 Or My.Computer.FileSystem.GetFiles(PackageFile, FileIO.SearchOption.SearchTopLevelOnly, "*.msixbundle").Count > 0 Then DynaLog.LogMessage("There are AppX packages. Asking user whether or not to scan folder recursively...") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The following directory:" & CrLf & Quote & PackageFile & Quote & CrLf & "contains application packages. Do you want to process them as well?" & CrLf & CrLf & "NOTE: this will scan this directory recursively, so it may take longer for this operation to complete" - Case "ESN" - msg = "El siguiente directorio:" & CrLf & Quote & PackageFile & Quote & CrLf & "contiene paquetes de aplicación. ¿Desea procesarlos también?" & CrLf & CrLf & "NOTA: esto escaneará este directorio de una forma recursiva, así que esta operación podría tardar más tiempo en completar" - Case "FRA" - msg = "Le répertoire suivant :" & CrLf & Quote & PackageFile & Quote & CrLf & "contient des paquets d'application. Voulez-vous les traiter également ?" & CrLf & CrLf & "REMARQUE : l'analyse de ce répertoire se fera de manière récursive, ce qui peut prolonger la durée de l'opération." - Case "PTB", "PTG" - msg = "O seguinte diretório:" & CrLf & Quote & PackageFile & Quote & CrLf & "contém pacotes de aplicações. Deseja processá-los também?" & CrLf & CrLf & "NOTA: esta operação irá analisar este diretório recursivamente, pelo que poderá demorar mais tempo a ser concluída" - Case "ITA" - msg = "La seguente cartella:" & CrLf & Quote & PackageFile & Quote & CrLf & "contiene pacchetti di applicazioni. Si desidera elaborare anche questi?" & CrLf & CrLf & "NOTA: la scansione di questa cartella avverrà in modo ricorsivo, pertanto il completamento dell'operazione potrebbe richiedere più tempo" - End Select - Case 1 - msg = "The following directory:" & CrLf & Quote & PackageFile & Quote & CrLf & "contains application packages. Do you want to process them as well?" & CrLf & CrLf & "NOTE: this will scan this directory recursively, so it may take longer for this operation to complete" - Case 2 - msg = "El siguiente directorio:" & CrLf & Quote & PackageFile & Quote & CrLf & "contiene paquetes de aplicación. ¿Desea procesarlos también?" & CrLf & CrLf & "NOTA: esto escaneará este directorio de una forma recursiva, así que esta operación podría tardar más tiempo en completar" - Case 3 - msg = "Le répertoire suivant :" & CrLf & Quote & PackageFile & Quote & CrLf & "contient des paquets d'application. Voulez-vous les traiter également ?" & CrLf & CrLf & "REMARQUE : l'analyse de ce répertoire se fera de manière récursive, ce qui peut prolonger la durée de l'opération." - Case 4 - msg = "O seguinte diretório:" & CrLf & Quote & PackageFile & Quote & CrLf & "contém pacotes de aplicações. Deseja processá-los também?" & CrLf & CrLf & "NOTA: esta operação irá analisar este diretório recursivamente, pelo que poderá demorar mais tempo a ser concluída" - Case 5 - msg = "La seguente cartella:" & CrLf & Quote & PackageFile & Quote & CrLf & "contiene pacchetti di applicazioni. Si desidera elaborare anche questi?" & CrLf & CrLf & "NOTA: la scansione di questa cartella avverrà in modo ricorsivo, pertanto il completamento dell'operazione potrebbe richiedere più tempo" - End Select + msg = LocalizationService.ForSection("AppxProvision.DragDrop").Format("Dir.Contains.App.Message", PackageFile) If MsgBox(msg, vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.Yes Then DynaLog.LogMessage("The user has accepted the question.") For Each AppPkg In My.Computer.FileSystem.GetFiles(PackageFile, FileIO.SearchOption.SearchAllSubDirectories) @@ -2493,31 +1452,7 @@ Public Class AddProvAppxPackage End If Else DynaLog.LogMessage("Item " & Quote & Path.GetFileName(PackageFile) & Quote & " is an unrecognized file.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The file that has been dropped here isn't an application package.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case "ESN" - MsgBox("El archivo que se ha soltado aquí no es un paquete de aplicación.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Le fichier qui a été déposé ici n'est pas un paquet d'application.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("O ficheiro que foi deixado aqui não é um pacote de aplicações.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case "ITA" - MsgBox("Il file che è stato scaricato qui non è un pacchetto dell'applicazione", vbOKOnly + vbCritical, "Aggiungere i pacchetti AppX approvvigionati") - End Select - Case 1 - MsgBox("The file that has been dropped here isn't an application package.", vbOKOnly + vbCritical, "Add provisioned AppX packages") - Case 2 - MsgBox("El archivo que se ha soltado aquí no es un paquete de aplicación.", vbOKOnly + vbCritical, "Añadir paquetes aprovisionados AppX") - Case 3 - MsgBox("Le fichier qui a été déposé ici n'est pas un paquet d'application.", vbOKOnly + vbCritical, "Ajouter des paquets AppX provisionnés") - Case 4 - MsgBox("O ficheiro que foi deixado aqui não é um pacote de aplicações.", vbOKOnly + vbCritical, "Adicionar pacotes AppX provisionados") - Case 5 - MsgBox("Il file che è stato scaricato qui non è un pacchetto dell'applicazione", vbOKOnly + vbCritical, "Aggiungere i pacchetti AppX approvvigionati") - End Select + MsgBox(LocalizationService.ForSection("AppxProvision.DragDrop")("File.Dropped.Isn.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxProvision.DragDrop")("Add.Prov.Title")) End If Next Cursor = Cursors.Arrow diff --git a/Panels/Img_Ops/AppxPkgs/AppInstallerDownloader.Designer.vb b/Panels/Img_Ops/AppxPkgs/AppInstallerDownloader.Designer.vb index 1711bdec1..7395cc2dc 100644 --- a/Panels/Img_Ops/AppxPkgs/AppInstallerDownloader.Designer.vb +++ b/Panels/Img_Ops/AppxPkgs/AppInstallerDownloader.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AppInstallerDownloader Inherits System.Windows.Forms.Form @@ -60,8 +60,7 @@ Partial Class AppInstallerDownloader Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(640, 55) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Please wait while DISMTools downloads the application package to add it to this i" & _ - "mage. This can take some time, depending on your network connection speed." + Me.Label1.Text = LocalizationService.ForSection("Designer.AppInstaller")("Wait.Message") ' 'ProgressBar1 ' @@ -82,7 +81,7 @@ Partial Class AppInstallerDownloader Me.StatusLbl.Name = "StatusLbl" Me.StatusLbl.Size = New System.Drawing.Size(640, 14) Me.StatusLbl.TabIndex = 1 - Me.StatusLbl.Text = "Status" + Me.StatusLbl.Text = LocalizationService.ForSection("Designer.AppInstaller")("StatusLbl.Label") ' 'Timer1 ' @@ -101,7 +100,7 @@ Partial Class AppInstallerDownloader Me.GroupBox1.Size = New System.Drawing.Size(637, 122) Me.GroupBox1.TabIndex = 3 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Transfer details" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.AppInstaller")("TransferDetails.Group") ' 'downUriLbl ' @@ -122,7 +121,7 @@ Partial Class AppInstallerDownloader Me.downETALbl.Name = "downETALbl" Me.downETALbl.Size = New System.Drawing.Size(600, 14) Me.downETALbl.TabIndex = 1 - Me.downETALbl.Text = "Estimated time remaining:" + Me.downETALbl.Text = LocalizationService.ForSection("Designer.AppInstaller")("TimeRemaining.Label") ' 'downSpdLbl ' @@ -133,7 +132,7 @@ Partial Class AppInstallerDownloader Me.downSpdLbl.Name = "downSpdLbl" Me.downSpdLbl.Size = New System.Drawing.Size(600, 14) Me.downSpdLbl.TabIndex = 1 - Me.downSpdLbl.Text = "Download speed:" + Me.downSpdLbl.Text = LocalizationService.ForSection("Designer.AppInstaller")("DownloadSpeed.Label") ' 'Label2 ' @@ -144,7 +143,7 @@ Partial Class AppInstallerDownloader Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(600, 14) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Download URL:" + Me.Label2.Text = LocalizationService.ForSection("Designer.AppInstaller")("DownloadURL.Label") ' 'Cancel_Button ' @@ -154,7 +153,7 @@ Partial Class AppInstallerDownloader Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(75, 23) Me.Cancel_Button.TabIndex = 4 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.AppInstaller")("Cancel.Button") Me.Cancel_Button.UseVisualStyleBackColor = True ' 'Label3 @@ -164,7 +163,7 @@ Partial Class AppInstallerDownloader Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(559, 18) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Please wait..." + Me.Label3.Text = LocalizationService.ForSection("Designer.AppInstaller")("Wait.Label") Me.Label3.Visible = False ' 'CopyUri_Button @@ -174,7 +173,7 @@ Partial Class AppInstallerDownloader Me.CopyUri_Button.Name = "CopyUri_Button" Me.CopyUri_Button.Size = New System.Drawing.Size(75, 23) Me.CopyUri_Button.TabIndex = 2 - Me.CopyUri_Button.Text = "Copy" + Me.CopyUri_Button.Text = LocalizationService.ForSection("Designer.AppInstaller")("CopyURI.Button") Me.CopyUri_Button.UseVisualStyleBackColor = True ' 'AppInstallerDownloader @@ -198,7 +197,7 @@ Partial Class AppInstallerDownloader Me.Name = "AppInstallerDownloader" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Downloading application package..." + Me.Text = LocalizationService.ForSection("Designer.AppInstaller")("DownloadPackage.Button") CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.GroupBox1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/AppxPkgs/AppInstallerDownloader.vb b/Panels/Img_Ops/AppxPkgs/AppInstallerDownloader.vb index 9e32d5cbf..25e048409 100644 --- a/Panels/Img_Ops/AppxPkgs/AppInstallerDownloader.vb +++ b/Panels/Img_Ops/AppxPkgs/AppInstallerDownloader.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.Net Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -15,8 +15,6 @@ Public Class AppInstallerDownloader Public AppInstallerFile As String Dim AppInstallerUri As String Dim Downloader As New WebClient() - - Dim Language As Integer Dim progress As String Dim downSpd As Long @@ -34,118 +32,21 @@ Public Class AppInstallerDownloader downUriLbl.Text = "" sw.Reset() sw.Start() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Downloading application package..." - Label1.Text = "Please wait while DISMTools downloads the application package to add it to this image. This can take some time, depending on your network connection speed." - StatusLbl.Text = "Please wait..." - GroupBox1.Text = "Transfer details" - Label2.Text = "Download URL:" - downSpdLbl.Text = "Download speed: unknown" - downETALbl.Text = "Estimated time remaining: unknown" - Cancel_Button.Text = "Cancel" - Label3.Text = "Please wait..." - Case "ESN" - Text = "Descargando paquete de aplicación..." - Label1.Text = "Espere mientras DISMTools descarga el paquete de aplicación para añadirlo a esta imagen. Esto puede llevar algo de tiempo, dependiendo de la velocidad de su conexión de red." - StatusLbl.Text = "Espere..." - GroupBox1.Text = "Detalles de la transferencia" - Label2.Text = "URL de descarga:" - downSpdLbl.Text = "Velocidad de descarga: desconocida" - downETALbl.Text = "Tiempo restante estimado: desconocido" - Cancel_Button.Text = "Cancelar" - Label3.Text = "Espere..." - Case "FRA" - Text = "Téléchargement du paquet de l'application en cours..." - Label1.Text = "Veuillez patienter pendant que DISMTools télécharge le paquet d'application pour l'ajouter à cette image. Cela peut prendre un certain temps, en fonction de la vitesse de votre connexion réseau." - StatusLbl.Text = "Veuillez patienter..." - GroupBox1.Text = "Détails du transfert" - Label2.Text = "URL de téléchargement :" - downSpdLbl.Text = "Vitesse de téléchargement : inconnue" - downETALbl.Text = "Temps restant estimé : inconnu" - Cancel_Button.Text = "Annuler" - Label3.Text = "Veuillez patienter..." - Case "PTB", "PTG" - Text = "Descarregando o pacote da aplicação..." - Label1.Text = "Aguarde enquanto o DISMTools baixa o pacote de aplicativos para adicioná-lo a esta imagem. Isso pode levar algum tempo, dependendo da velocidade da conexão de rede." - StatusLbl.Text = "Aguarde..." - GroupBox1.Text = "Detalhes da transferência" - Label2.Text = "URL de transferência:" - downSpdLbl.Text = "Velocidade de transferência: desconhecida" - downETALbl.Text = "Tempo estimado restante: desconhecido" - Cancel_Button.Text = "Cancelar" - Label3.Text = "Aguarde..." - Case "ITA" - Text = " Scaricamento del pacchetto dell'applicazione..." - Label1.Text = "Attendere che DISMTools scarichi il pacchetto applicativo per aggiungerlo a questa immagine. Questa operazione può richiedere del tempo, a seconda della velocità della connessione di rete." - StatusLbl.Text = "Attendere..." - GroupBox1.Text = "Dettagli del trasferimento" - Label2.Text = "URL di scaricamento:" - downSpdLbl.Text = "Velocità di scaricamento: sconosciuta" - downETALbl.Text = "Tempo stimato rimanente: sconosciuto" - Cancel_Button.Text = "Annullare" - Label3.Text = "Attendere..." - End Select - Case 1 - Text = "Downloading application package..." - Label1.Text = "Please wait while DISMTools downloads the application package to add it to this image. This can take some time, depending on your network connection speed." - StatusLbl.Text = "Please wait..." - GroupBox1.Text = "Transfer details" - Label2.Text = "Download URL:" - downSpdLbl.Text = "Download speed: unknown" - downETALbl.Text = "Estimated time remaining: unknown" - Cancel_Button.Text = "Cancel" - Label3.Text = "Please wait..." - Case 2 - Text = "Descargando paquete de aplicación..." - Label1.Text = "Espere mientras DISMTools descarga el paquete de aplicación para añadirlo a esta imagen. Esto puede llevar algo de tiempo, dependiendo de la velocidad de su conexión de red." - StatusLbl.Text = "Espere..." - GroupBox1.Text = "Detalles de la transferencia" - Label2.Text = "URL de descarga:" - downSpdLbl.Text = "Velocidad de descarga: desconocida" - downETALbl.Text = "Tiempo restante estimado: desconocido" - Cancel_Button.Text = "Cancelar" - Label3.Text = "Espere..." - Case 3 - Text = "Téléchargement du paquet de l'application en cours..." - Label1.Text = "Veuillez patienter pendant que DISMTools télécharge le paquet d'application pour l'ajouter à cette image. Cela peut prendre un certain temps, en fonction de la vitesse de votre connexion réseau." - StatusLbl.Text = "Veuillez patienter..." - GroupBox1.Text = "Détails du transfert" - Label2.Text = "URL de téléchargement :" - downSpdLbl.Text = "Vitesse de téléchargement : inconnue" - downETALbl.Text = "Temps restant estimé : inconnu" - Cancel_Button.Text = "Annuler" - Label3.Text = "Veuillez patienter..." - Case 4 - Text = "Descarregando o pacote da aplicação..." - Label1.Text = "Aguarde enquanto o DISMTools baixa o pacote de aplicativos para adicioná-lo a esta imagem. Isso pode levar algum tempo, dependendo da velocidade da conexão de rede." - StatusLbl.Text = "Aguarde..." - GroupBox1.Text = "Detalhes da transferência" - Label2.Text = "URL de transferência:" - downSpdLbl.Text = "Velocidade de transferência: desconhecida" - downETALbl.Text = "Tempo estimado restante: desconhecido" - Cancel_Button.Text = "Cancelar" - Label3.Text = "Aguarde..." - Case 5 - Text = " Scaricamento del pacchetto dell'applicazione..." - Label1.Text = "Attendere che DISMTools scarichi il pacchetto applicativo per aggiungerlo a questa immagine. Questa operazione può richiedere del tempo, a seconda della velocità della connessione di rete." - StatusLbl.Text = "Attendere..." - GroupBox1.Text = "Dettagli del trasferimento" - Label2.Text = "URL di scaricamento:" - downSpdLbl.Text = "Velocità di scaricamento: sconosciuta" - downETALbl.Text = "Tempo stimato rimanente: sconosciuto" - Cancel_Button.Text = "Annullare" - Label3.Text = "Attendere..." - End Select + Text = LocalizationService.ForSection("AppInstaller")("DownloadPackage.Button") + Label1.Text = LocalizationService.ForSection("AppInstaller")("Wait.Message") + StatusLbl.Text = LocalizationService.ForSection("AppInstaller")("StatusLbl.Label") + GroupBox1.Text = LocalizationService.ForSection("AppInstaller")("TransferDetails.Group") + Label2.Text = LocalizationService.ForSection("AppInstaller")("DownloadURL.Label") + downSpdLbl.Text = LocalizationService.ForSection("AppInstaller")("DownloadSpeed.Label") + downETALbl.Text = LocalizationService.ForSection("AppInstaller")("EtaUnknown.Label") + Cancel_Button.Text = LocalizationService.ForSection("AppInstaller")("Cancel.Button") + Label3.Text = LocalizationService.ForSection("AppInstaller")("Wait.Label") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor GroupBox1.ForeColor = ForeColor Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) WindowHelper.ToggleDarkTitleBar(handle, CurrentTheme.IsDark) ThemeHelper.UpdateLinkLabelColors(Me, Color.DodgerBlue, CurrentTheme.AccentColors(0)) - Language = MainForm.Language Height = WindowHelper.ScaleLogical(320) originalTitle = Text Visible = True @@ -258,31 +159,8 @@ Public Class AppInstallerDownloader Private Sub WebClient_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) ProgressBar1.Value = e.ProgressPercentage - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - progress = "Downloading main application package... (" & BytesToReadableSize(e.BytesReceived) & " of " & BytesToReadableSize(e.TotalBytesToReceive) & " downloaded)" - Case "ESN" - progress = "Descargando paquete de aplicación principal... (" & BytesToReadableSize(e.BytesReceived) & " de " & BytesToReadableSize(e.TotalBytesToReceive) & " descargados)" - Case "FRA" - progress = "Téléchargement de l'application principale en cours... (" & BytesToReadableSize(e.BytesReceived, True) & " of " & BytesToReadableSize(e.TotalBytesToReceive, True) & " téléchargés)" - Case "PTB", "PTG" - progress = "Descarregar o pacote da aplicação principal... (" & BytesToReadableSize(e.BytesReceived) & " de " & BytesToReadableSize(e.TotalBytesToReceive) & " descarregados)" - Case "ITA" - progress = "Scaricamento del pacchetto dell'applicazione principale... (" & BytesToReadableSize(e.BytesReceived) & " di " & BytesToReadableSize(e.TotalBytesToReceive) & " scaricato)" - End Select - Case 1 - progress = "Downloading main application package... (" & BytesToReadableSize(e.BytesReceived) & " of " & BytesToReadableSize(e.TotalBytesToReceive) & " downloaded)" - Case 2 - progress = "Descargando paquete de aplicación principal... (" & BytesToReadableSize(e.BytesReceived) & " de " & BytesToReadableSize(e.TotalBytesToReceive) & " descargados)" - Case 3 - progress = "Téléchargement de l'application principale en cours... (" & BytesToReadableSize(e.BytesReceived, True) & " of " & BytesToReadableSize(e.TotalBytesToReceive, True) & " téléchargés)" - Case 4 - progress = "Descarregar o pacote da aplicação principal... (" & BytesToReadableSize(e.BytesReceived) & " de " & BytesToReadableSize(e.TotalBytesToReceive) & " descarregados)" - Case 5 - progress = "Scaricamento del pacchetto dell'applicazione principale... (" & BytesToReadableSize(e.BytesReceived) & " di " & BytesToReadableSize(e.TotalBytesToReceive) & " scaricato)" - End Select + Dim useFrenchSizeUnits As Boolean = LocalizationService.CurrentCultureCode.StartsWith("fr", StringComparison.OrdinalIgnoreCase) + progress = LocalizationService.ForSection("AppInstaller.Progress").Format("MainPackage.Label", BytesToReadableSize(e.BytesReceived, useFrenchSizeUnits), BytesToReadableSize(e.TotalBytesToReceive, useFrenchSizeUnits)) downSpd = CLng(Math.Round(e.BytesReceived / sw.Elapsed.TotalSeconds, 2)) If e.TotalBytesToReceive > 0 Then time = TimeSpan.FromSeconds((e.TotalBytesToReceive - e.BytesReceived) / CDbl(downSpd)) @@ -311,41 +189,9 @@ Public Class AppInstallerDownloader Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick StatusLbl.Text = progress - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - downSpdLbl.Text = "Download speed: " & BytesToReadableSize(downSpd) & "/s" - downETALbl.Text = "Estimated time remaining: " & time.ToString("m\:ss") & " seconds" - Case "ESN" - downSpdLbl.Text = "Velocidad de descarga: " & BytesToReadableSize(downSpd) & "/s" - downETALbl.Text = "Tiempo restante estimado: " & time.ToString("m\:ss") & " segundos" - Case "FRA" - downSpdLbl.Text = "Vitesse de téléchargement : " & BytesToReadableSize(downSpd, True) & "/s" - downETALbl.Text = "Estimation du temps restant : " & time.ToString("m\:ss") & " secondes" - Case "PTB", "PTG" - downSpdLbl.Text = "Velocidade de transferência: " & BytesToReadableSize(downSpd) & "/s" - downETALbl.Text = "Tempo restante estimado: " & time.ToString("m\:ss") & " segundos" - Case "ITA" - downSpdLbl.Text = "Velocità di scaricamento: " & BytesToReadableSize(downSpd) & "/s" - downETALbl.Text = "Tempo stimato rimanente: " & time.ToString("m\:ss") & " secondi" - End Select - Case 1 - downSpdLbl.Text = "Download speed: " & BytesToReadableSize(downSpd) & "/s" - downETALbl.Text = "Estimated time remaining: " & time.ToString("m\:ss") & " seconds" - Case 2 - downSpdLbl.Text = "Velocidad de descarga: " & BytesToReadableSize(downSpd) & "/s" - downETALbl.Text = "Tiempo restante estimado: " & time.ToString("m\:ss") & " segundos" - Case 3 - downSpdLbl.Text = "Vitesse de téléchargement : " & BytesToReadableSize(downSpd, True) & "/s" - downETALbl.Text = "Estimation du temps restant : " & time.ToString("m\:ss") & " secondes" - Case 4 - downSpdLbl.Text = "Velocidade de transferência: " & BytesToReadableSize(downSpd) & "/s" - downETALbl.Text = "Tempo restante estimado: " & time.ToString("m\:ss") & " segundos" - Case 5 - downSpdLbl.Text = "Velocità di scaricamento: " & BytesToReadableSize(downSpd) & "/s" - downETALbl.Text = "Tempo stimato rimanente: " & time.ToString("m\:ss") & " secondi" - End Select + Dim useFrenchSizeUnits As Boolean = LocalizationService.CurrentCultureCode.StartsWith("fr", StringComparison.OrdinalIgnoreCase) + downSpdLbl.Text = LocalizationService.ForSection("AppInstaller.Status").Format("DownloadSpeed.Label", BytesToReadableSize(downSpd, useFrenchSizeUnits)) + downETALbl.Text = LocalizationService.ForSection("AppInstaller.Status").Format("EtaSeconds.Label", time.ToString("m\:ss")) If ProgressBar1.Value <= ProgressBar1.Maximum Then TaskbarHelper.SetIndicatorState(ProgressBar1.Value, Windows.Shell.TaskbarItemProgressState.Normal, MainForm.Handle) Text = String.Format("[{0}%] {1}", Math.Round(ProgressBar1.Value, 0), originalTitle) @@ -359,31 +205,7 @@ Public Class AppInstallerDownloader If DownloadError IsNot Nothing Then DynaLog.LogMessage("An error has occurred and was not caused by user cancellation. Error message: " & DownloadError.Message) Dim msg As String = "" - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "An error occurred while downloading the file: " & DownloadError.Message - Case "ESN" - msg = "Se produjo un error al descargar el archivo: " & DownloadError.Message - Case "FRA" - msg = "Une erreur s'est produite lors du téléchargement du fichier : " & DownloadError.Message - Case "PTB", "PTG" - msg = "Ocorreu um erro ao baixar o arquivo: " & DownloadError.Message - Case "ITA" - msg = "Si è verificato un errore durante il scaricamento del file: " & DownloadError.Message - End Select - Case 1 - msg = "An error occurred while downloading the file: " & DownloadError.Message - Case 2 - msg = "Se produjo un error al descargar el archivo: " & DownloadError.Message - Case 3 - msg = "Une erreur s'est produite lors du téléchargement du fichier : " & DownloadError.Message - Case 4 - msg = "Ocorreu um erro ao baixar o arquivo: " & DownloadError.Message - Case 5 - msg = "Si è verificato un errore durante il scaricamento del file: " & DownloadError.Message - End Select + msg = LocalizationService.ForSection("AppInstaller.Error").Format("DownloadFailed.Message", DownloadError.Message) MsgBox(msg, vbOKOnly + vbCritical, "DISMTools") End If End Sub diff --git a/Panels/Img_Ops/AppxPkgs/RemProvAppxPackage.Designer.vb b/Panels/Img_Ops/AppxPkgs/RemProvAppxPackage.Designer.vb index 036a32181..58f711093 100644 --- a/Panels/Img_Ops/AppxPkgs/RemProvAppxPackage.Designer.vb +++ b/Panels/Img_Ops/AppxPkgs/RemProvAppxPackage.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class RemProvAppxPackage Inherits System.Windows.Forms.Form @@ -59,7 +59,7 @@ Partial Class RemProvAppxPackage Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.RemoveAppx")("Ok.Button") ' 'Cancel_Button ' @@ -70,7 +70,7 @@ Partial Class RemProvAppxPackage Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.RemoveAppx")("Cancel.Button") ' 'ListView1 ' @@ -89,32 +89,32 @@ Partial Class RemProvAppxPackage ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Package name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.RemoveAppx")("PackageName.Column") Me.ColumnHeader1.Width = 243 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Application display name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.RemoveAppx")("App.Display.Name.Column") Me.ColumnHeader2.Width = 202 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Architecture" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.RemoveAppx")("Architecture.Column") Me.ColumnHeader3.Width = 73 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Resource ID" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.RemoveAppx")("ResourceID.Column") Me.ColumnHeader4.Width = 74 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Version" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.RemoveAppx")("Version.Column") Me.ColumnHeader5.Width = 80 ' 'ColumnHeader6 ' - Me.ColumnHeader6.Text = "Registered to any user?" + Me.ColumnHeader6.Text = LocalizationService.ForSection("Designer.RemoveAppx")("Registered.User.Column") Me.ColumnHeader6.Width = 130 ' 'ImageTaskHeader1 @@ -148,7 +148,7 @@ Partial Class RemProvAppxPackage Me.Name = "RemProvAppxPackage" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Remove provisioned AppX packages" + Me.Text = LocalizationService.ForSection("Designer.RemoveAppx")("Prov.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/AppxPkgs/RemProvAppxPackage.vb b/Panels/Img_Ops/AppxPkgs/RemProvAppxPackage.vb index 3e1c97049..9f91b09e9 100644 --- a/Panels/Img_Ops/AppxPkgs/RemProvAppxPackage.vb +++ b/Panels/Img_Ops/AppxPkgs/RemProvAppxPackage.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Imports System.IO Imports DISMTools.Utilities @@ -19,36 +19,12 @@ Public Class RemProvAppxPackage DynaLog.LogMessage("Detecting AppX packages to remove...") If ListView1.CheckedItems.Count = 0 Then DynaLog.LogMessage("No items have been selected for removal.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify AppX packages to remove and try again.", vbOKOnly + vbCritical, "Remove provisioned AppX packages") - Case "ESN" - MsgBox("Especifique paquetes AppX a eliminar e inténtelo de nuevo.", vbOKOnly + vbCritical, "Eliminar paquetes aprovisionados AppX") - Case "FRA" - MsgBox("Veuillez indiquer les paquets AppX à supprimer et réessayer.", vbOKOnly + vbCritical, "Supprimer les paquets AppX provisionnés") - Case "PTB", "PTG" - MsgBox("Especifique os pacotes AppX a remover e tente novamente.", vbOKOnly + vbCritical, "Remover pacotes AppX aprovisionados") - Case "ITA" - MsgBox("Specificare i pacchetti AppX da rimuovere e riprovare", vbOKOnly + vbCritical, "Rimuovere i pacchetti AppX in dotazione") - End Select - Case 1 - MsgBox("Please specify AppX packages to remove and try again.", vbOKOnly + vbCritical, "Remove provisioned AppX packages") - Case 2 - MsgBox("Especifique paquetes AppX a eliminar e inténtelo de nuevo.", vbOKOnly + vbCritical, "Eliminar paquetes aprovisionados AppX") - Case 3 - MsgBox("Veuillez indiquer les paquets AppX à supprimer et réessayer.", vbOKOnly + vbCritical, "Supprimer les paquets AppX provisionnés") - Case 4 - MsgBox("Especifique os pacotes AppX a remover e tente novamente.", vbOKOnly + vbCritical, "Remover pacotes AppX aprovisionados") - Case 5 - MsgBox("Specificare i pacchetti AppX da rimuovere e riprovare", vbOKOnly + vbCritical, "Rimuovere i pacchetti AppX in dotazione") - End Select + MsgBox(LocalizationService.ForSection("RemoveAppx.Validation")("Packages.Required.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("RemoveAppx.Validation")("Prov.Title")) Exit Sub Else DynaLog.LogMessage("AppX packages to remove: " & AppxRemovalCount) If AppxRemovalCount > 65535 Then - MsgBox("Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update.", vbOKOnly + vbCritical, "Remove provisioned AppX packages") + MsgBox(LocalizationService.ForSection("AppxPackages.Remove.Messages")("Right.Only.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("AppxPackages.Remove.Messages")("Prov.Label")) Exit Sub Else DynaLog.LogMessage("Adding AppX packages to queue...") @@ -78,31 +54,7 @@ Public Class RemProvAppxPackage DynaLog.LogMessage("Desktop Experience has been detected as a disabled feature.") Dim msg As String = "" ' Display incompatibility - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The Desktop Experience (DesktopExperience) feature needs to be enabled in order to remove AppX packages in Windows Server Core/Nano Server images." & CrLf & CrLf & "Enable this feature, boot to the image, and try again." - Case "ESN" - msg = "La característica Experiencia del Escritorio (DesktopExperience) debe estar habilitada para eliminar paquetes AppX en imágenes Windows Server Core/Nano Server." & CrLf & CrLf & "Habilite esta característica, arranque la imagen, e inténtelo de nuevo." - Case "FRA" - msg = "La caractéristique Expérience du bureau (DesktopExperience) doit être activée afin de supprimer les paquets AppX dans les images Windows Server Core/Nano Server." & CrLf & CrLf & "Activez cette caractéristique, démarrez sur l'image et réessayez." - Case "PTB", "PTG" - msg = "A caraterística Área de Trabalho (DesktopExperience) tem de ser ativada para remover pacotes AppX nas imagens do Windows Server Core/Nano Server." & CrLf & CrLf & "Ative esta caraterística, arranque para a imagem e tente novamente." - Case "ITA" - msg = "Le caratteristiche di Esperienza del Desktop (DesktopExperience) devono essere abilitate per rimuovere i pacchetti AppX nelle immagini di Windows Server Core/Nano Server." & CrLf & CrLf & "Abilitate questa caratteristica, avviate l'immagine e riprovate" - End Select - Case 1 - msg = "The Desktop Experience (DesktopExperience) feature needs to be enabled in order to remove AppX packages in Windows Server Core/Nano Server images." & CrLf & CrLf & "Enable this feature, boot to the image, and try again." - Case 2 - msg = "La característica Experiencia del Escritorio (DesktopExperience) debe estar habilitada para eliminar paquetes AppX en imágenes Windows Server Core/Nano Server." & CrLf & CrLf & "Habilite esta característica, arranque la imagen, e inténtelo de nuevo." - Case 3 - msg = "La caractéristique Expérience du bureau (DesktopExperience) doit être activée afin de supprimer les paquets AppX dans les images Windows Server Core/Nano Server." & CrLf & CrLf & "Activez cette caractéristique, démarrez sur l'image et réessayez." - Case 4 - msg = "A caraterística Área de Trabalho (DesktopExperience) tem de ser ativada para remover pacotes AppX nas imagens do Windows Server Core/Nano Server." & CrLf & CrLf & "Ative esta caraterística, arranque para a imagem e tente novamente." - Case 5 - msg = "Le caratteristiche di Esperienza del Desktop (DesktopExperience) devono essere abilitate per rimuovere i pacchetti AppX nelle immagini di Windows Server Core/Nano Server." & CrLf & CrLf & "Abilitate questa caratteristica, avviate l'immagine e riprovate" - End Select + msg = LocalizationService.ForSection("RemoveAppx.Validation")("DesktopExperience.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If @@ -128,31 +80,7 @@ Public Class RemProvAppxPackage DynaLog.LogMessage("Checking edition and version information for any unmet requirements...") If MainForm.CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) Or Not MainForm.IsWindows8OrHigher(MainForm.MountDir & "\Windows\system32\ntoskrnl.exe") Then DynaLog.LogMessage("The image is not supported") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("RemoveAppx.Init")("UnsupportedImage.Message"), vbOKOnly + vbCritical, Text) Return False End If DynaLog.LogMessage("All requirements are met. Continuing with the task...") @@ -174,7 +102,7 @@ Public Class RemProvAppxPackage Casters.CastDismArchitecture(appxPackage.PackageArchitecture), appxPackage.PackageResourceId, appxPackage.PackageVersion.ToString(), - appxPackage.GetLocalizedRegistrationStatus(MainForm.MountDir, MainForm.Language)})).ToArray()) + appxPackage.GetLocalizedRegistrationStatus(MainForm.MountDir)})).ToArray()) Else ListView1.Items.AddRange(MainForm.CurrentImage.ImageAppxPackages.Select(Function(appxPackage) New ListViewItem(New String() {appxPackage.PackageName, String.Format("{0}{1}", If(MainForm.AppxDisplayNameFormatOnRemoval < 2, appxPackage.PackageName, ""), @@ -195,121 +123,16 @@ Public Class RemProvAppxPackage If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Remove provisioned AppX packages" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Package name" - ListView1.Columns(1).Text = "Application display name" - ListView1.Columns(2).Text = "Architecture" - ListView1.Columns(3).Text = "Resource ID" - ListView1.Columns(4).Text = "Version" - ListView1.Columns(5).Text = "Registered to any user?" - Case "ESN" - Text = "Eliminar paquetes aprovisionados AppX" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nombre de paquete" - ListView1.Columns(1).Text = "Nombre de aplicación" - ListView1.Columns(2).Text = "Arquitectura" - ListView1.Columns(3).Text = "ID de recursos" - ListView1.Columns(4).Text = "Versión" - ListView1.Columns(5).Text = "¿Registrada a un usuario?" - Case "FRA" - Text = "Supprimer les paquets AppX provisionnés" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Nom du paquet" - ListView1.Columns(1).Text = "Nom d'affichage de l'application" - ListView1.Columns(2).Text = "Architecture" - ListView1.Columns(3).Text = "ID de la ressource" - ListView1.Columns(4).Text = "Version" - ListView1.Columns(5).Text = "Enregistré au nom d'un utilisateur ?" - Case "PTB", "PTG" - Text = "Remover pacotes AppX provisionados" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nome do pacote" - ListView1.Columns(1).Text = "Nome de apresentação da aplicação" - ListView1.Columns(2).Text = "Arquitetura" - ListView1.Columns(3).Text = "ID do recurso" - ListView1.Columns(4).Text = "Versão" - ListView1.Columns(5).Text = "Registado por algum utilizador?" - Case "ITA" - Text = "Rimuovi i pacchetti AppX in provisioning" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Nome del pacchetto" - ListView1.Columns(1).Text = "Nome del display dell'applicazione" - ListView1.Columns(2).Text = "Architettura" - ListView1.Columns(3).Text = "ID risorsa" - ListView1.Columns(4).Text = "Versione" - ListView1.Columns(5).Text = "Registrato a qualche utente?" - End Select - Case 1 - Text = "Remove provisioned AppX packages" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Package name" - ListView1.Columns(1).Text = "Application display name" - ListView1.Columns(2).Text = "Architecture" - ListView1.Columns(3).Text = "Resource ID" - ListView1.Columns(4).Text = "Version" - ListView1.Columns(5).Text = "Registered to any user?" - Case 2 - Text = "Eliminar paquetes aprovisionados AppX" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nombre de paquete" - ListView1.Columns(1).Text = "Nombre de aplicación" - ListView1.Columns(2).Text = "Arquitectura" - ListView1.Columns(3).Text = "ID de recursos" - ListView1.Columns(4).Text = "Versión" - ListView1.Columns(5).Text = "¿Registrada a un usuario?" - Case 3 - Text = "Supprimer les paquets AppX provisionnés" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Nom du paquet" - ListView1.Columns(1).Text = "Nom d'affichage de l'application" - ListView1.Columns(2).Text = "Architecture" - ListView1.Columns(3).Text = "ID de la ressource" - ListView1.Columns(4).Text = "Version" - ListView1.Columns(5).Text = "Enregistré au nom d'un utilisateur ?" - Case 4 - Text = "Remover pacotes AppX provisionados" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nome do pacote" - ListView1.Columns(1).Text = "Nome de apresentação da aplicação" - ListView1.Columns(2).Text = "Arquitetura" - ListView1.Columns(3).Text = "ID do recurso" - ListView1.Columns(4).Text = "Versão" - ListView1.Columns(5).Text = "Registado por algum utilizador?" - Case 5 - Text = "Rimuovi i pacchetti AppX in provisioning" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Nome del pacchetto" - ListView1.Columns(1).Text = "Nome del display dell'applicazione" - ListView1.Columns(2).Text = "Architettura" - ListView1.Columns(3).Text = "ID risorsa" - ListView1.Columns(4).Text = "Versione" - ListView1.Columns(5).Text = "Registrato a qualche utente?" - End Select + Text = LocalizationService.ForSection("RemoveAppx")("Prov.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("RemoveAppx").Format("Image.Task.Header.Label", Text) + OK_Button.Text = LocalizationService.ForSection("RemoveAppx")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("RemoveAppx")("Cancel.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("RemoveAppx")("PackageName.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("RemoveAppx")("App.Display.Name.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("RemoveAppx")("Architecture.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("RemoveAppx")("ResourceID.Column") + ListView1.Columns(4).Text = LocalizationService.ForSection("RemoveAppx")("Version.Column") + ListView1.Columns(5).Text = LocalizationService.ForSection("RemoveAppx")("Registered.User.Column") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -370,31 +193,7 @@ Public Class RemProvAppxPackage End If Try - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MainForm.ResViewTSMI.Text = "View resources of " & friendlyDisplayName - Case "ESN" - MainForm.ResViewTSMI.Text = "Ver recursos de " & friendlyDisplayName - Case "FRA" - MainForm.ResViewTSMI.Text = "Voir les ressources de " & friendlyDisplayName - Case "PTB", "PTG" - MainForm.ResViewTSMI.Text = "Ver recursos de " & friendlyDisplayName - Case "ITA" - MainForm.ResViewTSMI.Text = "Visualizza le risorse di " & friendlyDisplayName - End Select - Case 1 - MainForm.ResViewTSMI.Text = "View resources of " & friendlyDisplayName - Case 2 - MainForm.ResViewTSMI.Text = "Ver recursos de " & friendlyDisplayName - Case 3 - MainForm.ResViewTSMI.Text = "Voir les ressources de " & friendlyDisplayName - Case 4 - MainForm.ResViewTSMI.Text = "Ver recursos de " & friendlyDisplayName - Case 5 - MainForm.ResViewTSMI.Text = "Visualizza le risorse di " & friendlyDisplayName - End Select + MainForm.ResViewTSMI.Text = LocalizationService.ForSection("RemoveAppx").Format("ViewResources.Label", friendlyDisplayName) Catch ex As Exception MainForm.ResViewTSMI.Text = "" MainForm.ResViewTSMI.Visible = False diff --git a/Panels/Img_Ops/Bg_Processes/BGProcDetails.Designer.vb b/Panels/Img_Ops/Bg_Processes/BGProcDetails.Designer.vb index 4a2fd3fe8..d28e87d48 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcDetails.Designer.vb +++ b/Panels/Img_Ops/Bg_Processes/BGProcDetails.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class BGProcDetails Inherits System.Windows.Forms.Form @@ -43,7 +43,7 @@ Partial Class BGProcDetails Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(333, 18) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Gathering image information..." + Me.Label1.Text = LocalizationService.ForSection("Designer.BgprocDetails")("Gathering.Image.Label") ' 'ProgressBar1 ' @@ -62,7 +62,7 @@ Partial Class BGProcDetails Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(472, 18) Me.Label2.TabIndex = 1 - Me.Label2.Text = "" + Me.Label2.Text = LocalizationService.ForSection("Designer.BgprocDetails")("InfoTask.Label") ' 'Label3 ' @@ -74,7 +74,7 @@ Partial Class BGProcDetails Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(472, 39) Me.Label3.TabIndex = 1 - Me.Label3.Text = "These processes may take some time to complete." + Me.Label3.Text = LocalizationService.ForSection("Designer.BgprocDetails")("Processes.Take.Time.Label") ' 'Panel1 ' @@ -115,7 +115,7 @@ Partial Class BGProcDetails Me.Name = "BGProcDetails" Me.ShowIcon = False Me.ShowInTaskbar = False - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.BgprocDetails")("DISMTools.Label") Me.TopMost = True Me.Panel1.ResumeLayout(False) Me.Panel1.PerformLayout() diff --git a/Panels/Img_Ops/Bg_Processes/BGProcDetails.vb b/Panels/Img_Ops/Bg_Processes/BGProcDetails.vb index 6e672b3d5..8cd65e5c3 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcDetails.vb +++ b/Panels/Img_Ops/Bg_Processes/BGProcDetails.vb @@ -1,4 +1,4 @@ -Public Class BGProcDetails +Public Class BGProcDetails Private isMouseDown As Boolean = False Private mouseOffset As Point @@ -96,41 +96,8 @@ End If End If End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Gathering image information..." - Label3.Text = "These processes may take some time to complete" - Case "ESN" - Label1.Text = "Recopilando información de la imagen..." - Label3.Text = "Estos procesos podrían tardar algo de tiempo en completar" - Case "FRA" - Label1.Text = "Collecte des informations de l'image en cours..." - Label3.Text = "Ces processus peuvent prendre un certain temps" - Case "PTB", "PTG" - Label1.Text = "A recolher informação sobre a imagem..." - Label3.Text = "Estes processos podem demorar algum tempo a concluir" - Case "ITA" - Label1.Text = "Raccolta informazioni sull'immagine..." - Label3.Text = "Il completamento di questi processi può richiedere del tempo" - End Select - Case 1 - Label1.Text = "Gathering image information..." - Label3.Text = "These processes may take some time to complete" - Case 2 - Label1.Text = "Recopilando información de la imagen..." - Label3.Text = "Estos procesos podrían tardar algo de tiempo en completar" - Case 3 - Label1.Text = "Collecte des informations de l'image en cours..." - Label3.Text = "Ces processus peuvent prendre un certain temps" - Case 4 - Label1.Text = "A recolher informação sobre a imagem..." - Label3.Text = "Estes processos podem demorar algum tempo a concluir" - Case 5 - Label1.Text = "Raccolta informazioni sull'immagine..." - Label3.Text = "Il completamento di questi processi può richiedere del tempo" - End Select + Label1.Text = LocalizationService.ForSection("BGProcDetails.VisibleChanged")("Gathering.Image.Label") + Label3.Text = LocalizationService.ForSection("BGProcDetails.VisibleChanged")("Processes.Take.Time.Label") BackColor = CurrentTheme.BackgroundColor ForeColor = CurrentTheme.ForegroundColor If MainForm.pinState = 0 Then @@ -146,4 +113,4 @@ WindowState = FormWindowState.Normal End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Img_Ops/Bg_Processes/BGProcFailureDialog.Designer.vb b/Panels/Img_Ops/Bg_Processes/BGProcFailureDialog.Designer.vb index 95b2d8955..27f14487f 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcFailureDialog.Designer.vb +++ b/Panels/Img_Ops/Bg_Processes/BGProcFailureDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class BGProcFailureDialog Inherits System.Windows.Forms.Form @@ -57,7 +57,7 @@ Partial Class BGProcFailureDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.BgprocFailure")("Ok.Button") ' 'Label1 ' @@ -68,7 +68,7 @@ Partial Class BGProcFailureDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(679, 69) Me.Label1.TabIndex = 1 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.BgprocFailure")("Run.Issues.Message") ' 'ListBox1 ' @@ -129,7 +129,7 @@ Partial Class BGProcFailureDialog Me.Name = "BGProcFailureDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Failed background processes" + Me.Text = LocalizationService.ForSection("Designer.BgprocFailure")("Failed.Bg.Procs.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.SplitContainer1.Panel1.ResumeLayout(False) Me.SplitContainer1.Panel2.ResumeLayout(False) diff --git a/Panels/Img_Ops/Bg_Processes/BGProcFailureDialog.resx b/Panels/Img_Ops/Bg_Processes/BGProcFailureDialog.resx index 2263fc2ea..7905453d9 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcFailureDialog.resx +++ b/Panels/Img_Ops/Bg_Processes/BGProcFailureDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - We have run into some issues while getting the information about this Windows image. This may be due to incompatibilities caused by this image and system components, by modifications to the image, or by program bugs. - -Please look at the list below to see which tasks failed and why: - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Img_Ops/Bg_Processes/BGProcNotify.Designer.vb b/Panels/Img_Ops/Bg_Processes/BGProcNotify.Designer.vb index e52795606..42d566ae1 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcNotify.Designer.vb +++ b/Panels/Img_Ops/Bg_Processes/BGProcNotify.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class BGProcNotify Inherits System.Windows.Forms.Form @@ -42,7 +42,7 @@ Partial Class BGProcNotify Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(293, 18) Me.Label1.TabIndex = 0 - Me.Label1.Text = "This project has been loaded successfully" + Me.Label1.Text = LocalizationService.ForSection("Designer.BgprocNotify")("Project.Loaded.Done.Label") ' 'Label2 ' @@ -54,8 +54,7 @@ Partial Class BGProcNotify Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(315, 32) Me.Label2.TabIndex = 0 - Me.Label2.Text = "The program is now gathering image information in the background. This may take s" & _ - "ome time." + Me.Label2.Text = LocalizationService.ForSection("Designer.BgprocNotify")("Gathering.Image.Label") ' 'Panel1 ' diff --git a/Panels/Img_Ops/Bg_Processes/BGProcNotify.vb b/Panels/Img_Ops/Bg_Processes/BGProcNotify.vb index 438cd52c3..a7ab618ed 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcNotify.vb +++ b/Panels/Img_Ops/Bg_Processes/BGProcNotify.vb @@ -1,4 +1,4 @@ -Imports System.Threading +Imports System.Threading Public Class BGProcNotify @@ -6,41 +6,8 @@ Public Class BGProcNotify Private Sub BGProcNotify_Load(sender As Object, e As EventArgs) Handles MyBase.Load Opacity = 100 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "This project has been loaded successfully" - Label2.Text = "The program is now gathering image information in the background. This may take some time." - Case "ESN" - Label1.Text = "Este proyecto ha sido cargado satisfactoriamente" - Label2.Text = "El programa está recopilando información de la imagen en segundo plano. Esto podría llevar algo de tiempo." - Case "FRA" - Label1.Text = "Ce projet a été chargé avec succès" - Label2.Text = "Le programme recueille maintenant des informations sur l'image en arrière-plan. Cela peut prendre un certain temps." - Case "PTB", "PTG" - Label1.Text = "Este projeto foi carregado com sucesso" - Label2.Text = "O programa está agora a recolher informações sobre a imagem em segundo plano. Isto pode demorar algum tempo" - Case "ITA" - Label1.Text = "Il progetto è stato caricato con successo" - Label2.Text = "Il programma sta raccogliendo informazioni sull'immagine in background. Questa operazione potrebbe richiedere del tempo" - End Select - Case 1 - Label1.Text = "This project has been loaded successfully" - Label2.Text = "The program is now gathering image information in the background. This may take some time." - Case 2 - Label1.Text = "Este proyecto ha sido cargado satisfactoriamente" - Label2.Text = "El programa está recopilando información de la imagen en segundo plano. Esto podría llevar algo de tiempo." - Case 3 - Label1.Text = "Ce projet a été chargé avec succès" - Label2.Text = "Le programme recueille maintenant des informations sur l'image en arrière-plan. Cela peut prendre un certain temps." - Case 4 - Label1.Text = "Este projeto foi carregado com sucesso" - Label2.Text = "O programa está agora a recolher informações sobre a imagem em segundo plano. Isto pode demorar algum tempo" - Case 5 - Label1.Text = "Il progetto è stato caricato con successo" - Label2.Text = "Il programma sta raccogliendo informazioni sull'immagine in background. Questa operazione potrebbe richiedere del tempo" - End Select + Label1.Text = LocalizationService.ForSection("BGProcNotify")("Project.Loaded.Done.Label") + Label2.Text = LocalizationService.ForSection("BGProcNotify")("Gathering.Image.Label") If Environment.OSVersion.Version.Major = 10 Then ' The Left property also includes the window shadows on Windows 10 and 11 Location = New Point(MainForm.Left + 8, MainForm.Top + MainForm.StatusStrip.Top - (7 + MainForm.StatusStrip.Height)) ElseIf Environment.OSVersion.Version.Major = 6 Then @@ -79,4 +46,4 @@ Public Class BGProcNotify WindowState = FormWindowState.Normal End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.Designer.vb b/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.Designer.vb index 40b12703f..ae67a7885 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.Designer.vb +++ b/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class BGProcsBusyDialog Inherits System.Windows.Forms.Form @@ -63,7 +63,7 @@ Partial Class BGProcsBusyDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.BgProcessesBusy")("Ok.Button") ' 'Label2 ' @@ -72,7 +72,7 @@ Partial Class BGProcsBusyDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 87) Me.Label2.TabIndex = 11 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.BgProcessesBusy")("Finish.Process.Begin.Message") ' 'Label1 ' @@ -82,7 +82,7 @@ Partial Class BGProcsBusyDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 10 - Me.Label1.Text = "We're still gathering image information" + Me.Label1.Text = LocalizationService.ForSection("Designer.BgProcessesBusy")("Re.Still.Gathering.Label") ' 'BGProcsBusyDialog ' @@ -101,7 +101,7 @@ Partial Class BGProcsBusyDialog Me.Name = "BGProcsBusyDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.BgProcessesBusy")("DISMTools.Label") Me.Panel1.ResumeLayout(False) Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.resx b/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.resx index da690e727..7905453d9 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.resx +++ b/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer. - -You can check the status of this background process at any time by clicking the icon on the bottom left. - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.vb b/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.vb index 244aea258..75d4a1c29 100644 --- a/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.vb +++ b/Panels/Img_Ops/Bg_Processes/BGProcsBusyDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class BGProcsBusyDialog @@ -9,61 +9,9 @@ Public Class BGProcsBusyDialog End Sub Private Sub BGProcsBusyDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "We're still gathering image information" - Label2.Text = "Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer." & CrLf & CrLf & _ - "You can check the status of this background process at any time by clicking the icon on the bottom left." - OK_Button.Text = "OK" - Case "ESN" - Label1.Text = "Aún estamos recopilando información de la imagen" - Label2.Text = "Cuando terminemos este proceso, puede comenzar a realizar operaciones con la imagen. Esto suele tardar unos minutos, pero esto puede depender en la imagen y el rendimiento de su equipo." & CrLf & CrLf & _ - "Puede comprobar el estado de este proceso en segundo plano en cualquier momento haciendo clic en el icono en la parte inferior izquierda." - OK_Button.Text = "Aceptar" - Case "FRA" - Label1.Text = "Nous continuons à recueillir des informations de l'image" - Label2.Text = "Une fois ce processus terminé, vous pouvez commencer à exécuter les tâches liées à l'image. Cela prend généralement quelques minutes, mais cela peut dépendre de l'image et de la vitesse de votre ordinateur." & CrLf & CrLf & _ - "Vous pouvez à tout moment vérifier l'état de ce processus en arrière plan en cliquant sur l'icône en bas à gauche." - OK_Button.Text = "OK" - Case "PTB", "PTG" - Label1.Text = "Ainda estamos a recolher informações sobre a imagem" - Label2.Text = "Quando terminarmos este processo, pode começar a executar tarefas de imagem. Normalmente, isto demora alguns minutos, mas pode depender da imagem e da velocidade do seu computador." & CrLf & CrLf & _ - "Pode verificar o estado deste processo em segundo plano a qualquer momento, clicando no ícone no canto inferior esquerdo." - OK_Button.Text = "OK" - Case "ITA" - Label1.Text = "Stiamo ancora raccogliendo informazioni sull'immagine" - Label2.Text = "Una volta terminato questo processo, è possibile iniziare a eseguire le operazioni sull'immagine. Di solito ci vogliono un paio di minuti, ma ciò può dipendere dall'immagine e dalla velocità del computer." & CrLf & CrLf & _ - "È possibile controllare lo stato di questo processo in background in qualsiasi momento facendo clic sull'icona in basso a sinistra." - OK_Button.Text = "OK" - End Select - Case 1 - Label1.Text = "We're still gathering image information" - Label2.Text = "Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer." & CrLf & CrLf & _ - "You can check the status of this background process at any time by clicking the icon on the bottom left." - OK_Button.Text = "OK" - Case 2 - Label1.Text = "Aún estamos recopilando información de la imagen" - Label2.Text = "Cuando terminemos este proceso, puede comenzar a realizar operaciones con la imagen. Esto suele tardar unos minutos, pero esto puede depender en la imagen y el rendimiento de su equipo." & CrLf & CrLf & _ - "Puede comprobar el estado de este proceso en segundo plano en cualquier momento haciendo clic en el icono en la parte inferior izquierda." - OK_Button.Text = "Aceptar" - Case 3 - Label1.Text = "Nous continuons à recueillir des informations de l'image" - Label2.Text = "Une fois ce processus terminé, vous pouvez commencer à exécuter les tâches liées à l'image. Cela prend généralement quelques minutes, mais cela peut dépendre de l'image et de la vitesse de votre ordinateur." & CrLf & CrLf & _ - "Vous pouvez à tout moment vérifier l'état de ce processus en arrière plan en cliquant sur l'icône en bas à gauche." - OK_Button.Text = "OK" - Case 4 - Label1.Text = "Ainda estamos a recolher informações sobre a imagem" - Label2.Text = "Quando terminarmos este processo, pode começar a executar tarefas de imagem. Normalmente, isto demora alguns minutos, mas pode depender da imagem e da velocidade do seu computador." & CrLf & CrLf & _ - "Pode verificar o estado deste processo em segundo plano a qualquer momento, clicando no ícone no canto inferior esquerdo." - OK_Button.Text = "OK" - Case 5 - Label1.Text = "Stiamo ancora raccogliendo informazioni sull'immagine" - Label2.Text = "Una volta terminato questo processo, è possibile iniziare a eseguire le operazioni sull'immagine. Di solito ci vogliono un paio di minuti, ma ciò può dipendere dall'immagine e dalla velocità del computer." & CrLf & CrLf & _ - "È possibile controllare lo stato di questo processo in background in qualsiasi momento facendo clic sull'icona in basso a sinistra." - OK_Button.Text = "OK" - End Select + Label1.Text = LocalizationService.ForSection("BG.Procs")("Re.Still.Gathering.Label") + Label2.Text = LocalizationService.ForSection("BG.Procs")("Finish.Process.Begin.Message") + OK_Button.Text = LocalizationService.ForSection("BG.Procs")("Ok.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Img_Ops/Capabilities/AddCapabilities.Designer.vb b/Panels/Img_Ops/Capabilities/AddCapabilities.Designer.vb index 0a13ff791..10afb0ce8 100644 --- a/Panels/Img_Ops/Capabilities/AddCapabilities.Designer.vb +++ b/Panels/Img_Ops/Capabilities/AddCapabilities.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddCapabilities Inherits System.Windows.Forms.Form @@ -76,7 +76,7 @@ Partial Class AddCapabilities Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.AddCapabilities")("Ok.Button") ' 'Cancel_Button ' @@ -87,7 +87,7 @@ Partial Class AddCapabilities Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.AddCapabilities")("Cancel.Button") ' 'GroupBox1 ' @@ -98,7 +98,7 @@ Partial Class AddCapabilities Me.GroupBox1.Size = New System.Drawing.Size(759, 314) Me.GroupBox1.TabIndex = 6 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Capabilities" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.AddCapabilities")("Capabilities.Group") ' 'TableLayoutPanel2 ' @@ -123,7 +123,7 @@ Partial Class AddCapabilities Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(98, 23) Me.Button2.TabIndex = 0 - Me.Button2.Text = "Select all" + Me.Button2.Text = LocalizationService.ForSection("Designer.AddCapabilities")("SelectAll.Button") ' 'Button3 ' @@ -134,7 +134,7 @@ Partial Class AddCapabilities Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(98, 23) Me.Button3.TabIndex = 1 - Me.Button3.Text = "Select none" + Me.Button3.Text = LocalizationService.ForSection("Designer.AddCapabilities")("SelectNone.Button") ' 'ListView1 ' @@ -149,12 +149,12 @@ Partial Class AddCapabilities ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Capability" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.AddCapabilities")("Capability.Column") Me.ColumnHeader1.Width = 520 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "State" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.AddCapabilities")("State.Column") Me.ColumnHeader2.Width = 204 ' 'GroupBox2 @@ -171,7 +171,7 @@ Partial Class AddCapabilities Me.GroupBox2.Size = New System.Drawing.Size(759, 142) Me.GroupBox2.TabIndex = 6 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.AddCapabilities")("Options.Group") ' 'Button1 ' @@ -181,7 +181,7 @@ Partial Class AddCapabilities Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 9 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.AddCapabilities")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label2 @@ -192,7 +192,7 @@ Partial Class AddCapabilities Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(44, 13) Me.Label2.TabIndex = 7 - Me.Label2.Text = "Source:" + Me.Label2.Text = LocalizationService.ForSection("Designer.AddCapabilities")("Source.Label") ' 'CheckBox3 ' @@ -201,7 +201,7 @@ Partial Class AddCapabilities Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(209, 17) Me.CheckBox3.TabIndex = 0 - Me.CheckBox3.Text = "Commit image after adding capabilities" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.AddCaps")("CommitImage.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -212,7 +212,7 @@ Partial Class AddCapabilities Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(179, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Limit access to Windows Update" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.AddCapabilities")("WindowsUpdate.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -222,7 +222,7 @@ Partial Class AddCapabilities Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(241, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Specify different source for capability installs" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.AddCapabilities")("DifferentSource.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Button4 @@ -233,7 +233,7 @@ Partial Class AddCapabilities Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(175, 23) Me.Button4.TabIndex = 9 - Me.Button4.Text = "Detect from group policy" + Me.Button4.Text = LocalizationService.ForSection("Designer.AddCapabilities")("Detect.Group.Policy.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Panel1 @@ -268,7 +268,7 @@ Partial Class AddCapabilities ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Specify the source to use for capability addition:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.AddCapabilities")("SourceHint.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'ImageTaskHeader1 @@ -314,7 +314,7 @@ Partial Class AddCapabilities Me.Name = "AddCapabilities" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add capabilities" + Me.Text = LocalizationService.ForSection("Designer.AddCapabilities")("AddCapabilities.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.TableLayoutPanel2.ResumeLayout(False) diff --git a/Panels/Img_Ops/Capabilities/AddCapabilities.vb b/Panels/Img_Ops/Capabilities/AddCapabilities.vb index 7a2ab2333..b9af1be5a 100644 --- a/Panels/Img_Ops/Capabilities/AddCapabilities.vb +++ b/Panels/Img_Ops/Capabilities/AddCapabilities.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Win32 Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -30,64 +30,13 @@ Public Class AddCapabilities DynaLog.LogMessage("Getting states of capabilities for any missing sources...") For x = 0 To capCount - 1 If MainForm.OnlineManagement And Not CheckBox2.Checked Then Exit For - If ListView1.CheckedItems(x).SubItems(1).Text = "Not present" Then + If ListView1.CheckedItems(x).SubItems(1).Text = LocalizationService.ForSection("Casters.Cast.DISM")("Present.Label") Then If CheckBox1.Checked And RichTextBox1.Text = "" Or Not Directory.Exists(RichTextBox1.Text) Then DynaLog.LogMessage("No source has been specified or it does not exist.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - If MsgBox("Some capabilities in this image require specifying a source for them to be enabled. The specified source is not valid for this operation." & CrLf & CrLf & If(RichTextBox1.Text = "", "Please specify a valid source and try again.", "Please make sure the source exists in the file system and try again."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - Case "ESN" - If MsgBox("Algunas funcionalidades en esta imagen requieren especificar un origen para ser habilitadas. El origen especificado no es válido para esta operación" & CrLf & CrLf & If(RichTextBox1.Text = "", "Especifique un origen válido e inténtelo de nuevo.", "Asegúrese de que el origen exista en el sistema de archivos e inténtelo de nuevo."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - Case "FRA" - If MsgBox("Certaines capacités de cette image nécessitent la spécification d'une source pour être activées. La source spécifiée n'est pas valide pour cette opération." & CrLf & CrLf & If(RichTextBox1.Text = "", "Veuillez indiquer une source valide et réessayer.", "Assurez-vous que la source existe dans le système de fichiers et réessayez."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - Case "PTB", "PTG" - If MsgBox("Algumas capacidades nesta imagem requerem a especificação de uma fonte para serem activadas. A fonte especificada não é válida para esta operação." & CrLf & CrLf & If(RichTextBox1.Text = "", "Especifique uma fonte válida e tente novamente.", "Certifique-se de que a fonte existe no sistema de ficheiros e tente novamente."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - Case "ITA" - If MsgBox("Alcune capacità di questa immagine richiedono l'indicazione di un'origine per essere abilitate. L'origine specificata non è valida per questa operazione." & CrLf & CrLf & If(RichTextBox1.Text = "", "Specificare un'origine valida e riprovare.", "Assicurarsi che l'origine esista nel file system e riprovare."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - End Select - Case 1 - If MsgBox("Some capabilities in this image require specifying a source for them to be enabled. The specified source is not valid for this operation." & CrLf & CrLf & If(RichTextBox1.Text = "", "Please specify a valid source and try again.", "Please make sure the source exists in the file system and try again."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - Case 2 - If MsgBox("Algunas funcionalidades en esta imagen requieren especificar un origen para ser habilitadas. El origen especificado no es válido para esta operación" & CrLf & CrLf & If(RichTextBox1.Text = "", "Especifique un origen válido e inténtelo de nuevo.", "Asegúrese de que el origen exista en el sistema de archivos e inténtelo de nuevo."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - Case 3 - If MsgBox("Certaines capacités de cette image nécessitent la spécification d'une source pour être activées. La source spécifiée n'est pas valide pour cette opération." & CrLf & CrLf & If(RichTextBox1.Text = "", "Veuillez indiquer une source valide et réessayer.", "Assurez-vous que la source existe dans le système de fichiers et réessayez."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - Case 4 - If MsgBox("Algumas capacidades nesta imagem requerem a especificação de uma fonte para serem activadas. A fonte especificada não é válida para esta operação." & CrLf & CrLf & If(RichTextBox1.Text = "", "Especifique uma fonte válida e tente novamente.", "Certifique-se de que a fonte existe no sistema de ficheiros e tente novamente."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - Case 5 - If MsgBox("Alcune capacità di questa immagine richiedono l'indicazione di un'origine per essere abilitate. L'origine specificata non è valida per questa operazione." & CrLf & CrLf & If(RichTextBox1.Text = "", "Specificare un'origine valida e riprovare.", "Assicurarsi che l'origine esista nel file system e riprovare."), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then - CheckBox1.Checked = True - Button1.PerformClick() - End If - End Select + If MsgBox(LocalizationService.ForSection("AddCapabilities.Validation")("SourceRequired.Message") & CrLf & CrLf & If(RichTextBox1.Text = "", LocalizationService.ForSection("AddCapabilities.Validation")("Source.Required.Message"), LocalizationService.ForSection("AddCapabilities.Validation")("Source.Message")), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then + CheckBox1.Checked = True + Button1.PerformClick() + End If End If End If Next @@ -101,60 +50,12 @@ Public Class AddCapabilities ProgressPanel.capAdditionSource = RichTextBox1.Text ' Don't know if it would work on cases where it begins with "wim:\" Else DynaLog.LogMessage("The specified source does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The specified source does not exist in the file system. Make sure it exists and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("El origen especificado no existe en el sistema de archivos. Asegúrese de que existe e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("La source spécifiée n'existe pas dans le système de fichiers. Assurez-vous qu'elle existe et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("A origem especificada não existe no sistema de ficheiros. Certifique-se de que existe e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("L'origine specificata non esiste nel file system. Assicurarsi che esista e riprovare", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("The specified source does not exist in the file system. Make sure it exists and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("El origen especificado no existe en el sistema de archivos. Asegúrese de que existe e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("La source spécifiée n'existe pas dans le système de fichiers. Assurez-vous qu'elle existe et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("A origem especificada não existe no sistema de ficheiros. Certifique-se de que existe e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("L'origine specificata non esiste nel file system. Assicurarsi che esista e riprovare", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("AddCapabilities.Validation")("Source.Exist.File.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If Else DynaLog.LogMessage("No source has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("There is no source specified. Specify a source and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("No se ha especificado un origen. Especifique un origen e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Aucune source n'est spécifiée. Indiquez une source et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Não existe uma origem especificada. Especifique uma fonte e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Non è stata specificata un'origine. Specificare un'origine e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("There is no source specified. Specify a source and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("No se ha especificado un origen. Especifique un origen e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Aucune source n'est spécifiée. Indiquez une source et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Não existe uma origem especificada. Especifique uma fonte e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Non è stata specificata un'origine. Specificare un'origine e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("AddCapabilities.Validation")("Source.Required.No.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If End If @@ -170,31 +71,7 @@ Public Class AddCapabilities End If Else DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("There aren't any selected capabilities to install. Please select some capabilities and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("No hay funcionalidades seleccionadas para instalar. Seleccione algunas de ellas e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Il n'y a pas de capacités sélectionnées à installer. Veuillez sélectionner des capacités et réessayer.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Não existem quaisquer capacidades seleccionadas para instalar. Por favor, seleccione algumas capacidades e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Non sono state selezionate capacità da installare. Selezionare alcune capacità e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("There aren't any selected capabilities to install. Please select some capabilities and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("No hay funcionalidades seleccionadas para instalar. Seleccione algunas de ellas e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Il n'y a pas de capacités sélectionnées à installer. Veuillez sélectionner des capacités et réessayer.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Não existem quaisquer capacidades seleccionadas para instalar. Por favor, seleccione algumas capacidades e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Non sono state selezionate capacità da installare. Selezionare alcune capacità e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("AddCapabilities.Validation")("Selected.None.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.capAdditionCount = capCount @@ -214,31 +91,7 @@ Public Class AddCapabilities DynaLog.LogMessage("Checking edition and version information for any unmet requirements...") If MainForm.CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) Or Not MainForm.IsWindows10OrHigher(MainForm.MountDir & "\Windows\system32\ntoskrnl.exe") Then DynaLog.LogMessage("The image is not supported") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("AddCapabilities.Initialize")("UnsupportedImage.Message"), vbOKOnly + vbCritical, Text) Return False End If DynaLog.LogMessage("All requirements are met. Continuing with the task...") @@ -261,181 +114,22 @@ Public Class AddCapabilities If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Add capabilities" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Select all" - Button3.Text = "Select none" - Button4.Text = "Detect from group policy" - GroupBox1.Text = "Capabilities" - GroupBox2.Text = "Options" - CheckBox1.Text = "Specify different source for capability installs" - CheckBox2.Text = "Limit access to Windows Update" - CheckBox3.Text = "Commit image after adding capabilities" - ListView1.Columns(0).Text = "Capability" - ListView1.Columns(1).Text = "State" - Case "ESN" - Text = "Añadir funcionalidades" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origen:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Seleccionar todas" - Button3.Text = "Seleccionar ninguna" - Button4.Text = "Detectar políticas de grupo" - GroupBox1.Text = "Funcionalidades" - GroupBox2.Text = "Opciones" - CheckBox1.Text = "Especificar un origen diferente para la instalación de funcionalidades" - CheckBox2.Text = "Limitar acceso a Windows Update" - CheckBox3.Text = "Guardar imagen tras añadir funcionalidades" - ListView1.Columns(0).Text = "Funcionalidad" - ListView1.Columns(1).Text = "Estado" - Case "FRA" - Text = "Ajouter des capacités" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Sélectionner tout" - Button3.Text = "Sélectionner aucun" - Button4.Text = "Détecter à partir des politiques de groupe" - GroupBox1.Text = "Capacités" - GroupBox2.Text = "Paramètres" - CheckBox1.Text = "Spécifier une source différente pour l'installation des capacités" - CheckBox2.Text = "Limiter l'accès à Windows Update" - CheckBox3.Text = "Sauvegarder l'image après l'ajout de capacités" - ListView1.Columns(0).Text = "Capacité" - ListView1.Columns(1).Text = "État" - Case "PTB", "PTG" - Text = "Adicionar capacidades" - ImageTaskHeader1.ItemText = Text - Label2.Text = " Origem:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Navegar..." - Button2.Text = "Selecionar tudo" - Button3.Text = "Não selecionar nenhum" - Button4.Text = "Detetar a partir da política de grupo" - GroupBox1.Text = "Capacidades" - GroupBox2.Text = "Opções" - CheckBox1.Text = "Especificar uma origem diferente para as instalações de capacidades" - CheckBox2.Text = "Limitar o acesso ao Windows Update" - CheckBox3.Text = "Confirmar imagem depois de adicionar capacidades" - ListView1.Columns(0).Text = "Capacidade" - ListView1.Columns(1).Text = "Estado" - Case "ITA" - Text = "Aggiungi capacità" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origine:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Sfoglia..." - Button2.Text = "Seleziona tutto" - Button3.Text = "Seleziona nessuno" - Button4.Text = "Rileva da criteri di gruppo" - GroupBox1.Text = "Capacità" - GroupBox2.Text = "Opzioni" - CheckBox1.Text = "Specifica un'origine diversa per l'installazione delle capacità" - CheckBox2.Text = "Limita l'accesso a Windows Update" - CheckBox3.Text = "Applica l'immagine dopo l'aggiunta delle funzionalità" - ListView1.Columns(0).Text = "Capacità" - ListView1.Columns(1).Text = "Stato" - End Select - Case 1 - Text = "Add capabilities" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Select all" - Button3.Text = "Select none" - Button4.Text = "Detect from group policy" - GroupBox1.Text = "Capabilities" - GroupBox2.Text = "Options" - CheckBox1.Text = "Specify different source for capability installs" - CheckBox2.Text = "Limit access to Windows Update" - CheckBox3.Text = "Commit image after adding capabilities" - ListView1.Columns(0).Text = "Capability" - ListView1.Columns(1).Text = "State" - Case 2 - Text = "Añadir funcionalidades" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origen:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Seleccionar todas" - Button3.Text = "Seleccionar ninguna" - Button4.Text = "Detectar políticas de grupo" - GroupBox1.Text = "Funcionalidades" - GroupBox2.Text = "Opciones" - CheckBox1.Text = "Especificar un origen diferente para la instalación de funcionalidades" - CheckBox2.Text = "Limitar acceso a Windows Update" - CheckBox3.Text = "Guardar imagen tras añadir funcionalidades" - ListView1.Columns(0).Text = "Funcionalidad" - ListView1.Columns(1).Text = "Estado" - Case 3 - Text = "Ajouter des capacités" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Sélectionner tout" - Button3.Text = "Sélectionner aucun" - Button4.Text = "Détecter à partir des politiques de groupe" - GroupBox1.Text = "Capacités" - GroupBox2.Text = "Paramètres" - CheckBox1.Text = "Spécifier une source différente pour l'installation des capacités" - CheckBox2.Text = "Limiter l'accès à Windows Update" - CheckBox3.Text = "Sauvegarder l'image après l'ajout de capacités" - ListView1.Columns(0).Text = "Capacité" - ListView1.Columns(1).Text = "État" - Case 4 - Text = "Adicionar capacidades" - ImageTaskHeader1.ItemText = Text - Label2.Text = " Origem:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Navegar..." - Button2.Text = "Selecionar tudo" - Button3.Text = "Não selecionar nenhum" - Button4.Text = "Detetar a partir da política de grupo" - GroupBox1.Text = "Capacidades" - GroupBox2.Text = "Opções" - CheckBox1.Text = "Especificar uma origem diferente para as instalações de capacidades" - CheckBox2.Text = "Limitar o acesso ao Windows Update" - CheckBox3.Text = "Confirmar imagem depois de adicionar capacidades" - ListView1.Columns(0).Text = "Capacidade" - ListView1.Columns(1).Text = "Estado" - Case 5 - Text = "Aggiungi capacità" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origine:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Sfoglia..." - Button2.Text = "Seleziona tutto" - Button3.Text = "Seleziona nessuno" - Button4.Text = "Rileva da criteri di gruppo" - GroupBox1.Text = "Capacità" - GroupBox2.Text = "Opzioni" - CheckBox1.Text = "Specifica un'origine diversa per l'installazione delle capacità" - CheckBox2.Text = "Limita l'accesso a Windows Update" - CheckBox3.Text = "Applica l'immagine dopo l'aggiunta delle funzionalità" - ListView1.Columns(0).Text = "Capacità" - ListView1.Columns(1).Text = "Stato" - End Select + Text = LocalizationService.ForSection("AddCapabilities")("AddCapabilities.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("AddCapabilities").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("AddCapabilities")("Source.Label") + OK_Button.Text = LocalizationService.ForSection("AddCapabilities")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("AddCapabilities")("Cancel.Button") + Button1.Text = LocalizationService.ForSection("AddCapabilities")("Browse.Button") + Button2.Text = LocalizationService.ForSection("AddCapabilities")("SelectAll.Button") + Button3.Text = LocalizationService.ForSection("AddCapabilities")("SelectNone.Button") + Button4.Text = LocalizationService.ForSection("AddCapabilities")("Detect.Group.Policy.Button") + GroupBox1.Text = LocalizationService.ForSection("AddCapabilities")("Capabilities.Group") + GroupBox2.Text = LocalizationService.ForSection("AddCapabilities")("Options.Group") + CheckBox1.Text = LocalizationService.ForSection("AddCapabilities")("DifferentSource.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("AddCapabilities")("WindowsUpdate.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("AddCaps.AddCap")("CommitImage.CheckBox") + ListView1.Columns(0).Text = LocalizationService.ForSection("AddCapabilities")("Capability.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("AddCapabilities")("State.Column") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/Capabilities/RemCapabilities.Designer.vb b/Panels/Img_Ops/Capabilities/RemCapabilities.Designer.vb index 1256ae3e7..d368adc6b 100644 --- a/Panels/Img_Ops/Capabilities/RemCapabilities.Designer.vb +++ b/Panels/Img_Ops/Capabilities/RemCapabilities.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class RemCapabilities Inherits System.Windows.Forms.Form @@ -55,7 +55,7 @@ Partial Class RemCapabilities Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.RemCapabilities")("Ok.Button") ' 'Cancel_Button ' @@ -66,7 +66,7 @@ Partial Class RemCapabilities Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.RemCapabilities")("Cancel.Button") ' 'ListView1 ' @@ -81,12 +81,12 @@ Partial Class RemCapabilities ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Capability" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.RemCapabilities")("Capability.Column") Me.ColumnHeader1.Width = 524 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "State" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.RemCapabilities")("State.Column") Me.ColumnHeader2.Width = 199 ' 'ImageTaskHeader1 @@ -120,7 +120,7 @@ Partial Class RemCapabilities Me.Name = "RemCapabilities" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Remove capabilities" + Me.Text = LocalizationService.ForSection("Designer.RemCapabilities")("Remove.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/Capabilities/RemCapabilities.vb b/Panels/Img_Ops/Capabilities/RemCapabilities.vb index 69d88ab5e..2b4eec213 100644 --- a/Panels/Img_Ops/Capabilities/RemCapabilities.vb +++ b/Panels/Img_Ops/Capabilities/RemCapabilities.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Dism Imports DISMTools.Utilities @@ -26,31 +26,7 @@ Public Class RemCapabilities ProgressPanel.capRemovalLastId = ListView1.CheckedItems(capCount - 1).SubItems(0).Text Else DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("There aren't any selected capabilities to remove. Please select some capabilities and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("No hay funcionalidades seleccionadas para eliminar. Seleccione algunas de ellas e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Il n'y a pas de capacités sélectionnées à supprimer. Veuillez sélectionner des capacités et réessayer.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Não existem quaisquer capacidades seleccionadas para remover. Por favor, seleccione algumas capacidades e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Non ci sono capacità selezionate da rimuovere. Selezionare alcune funzionalità e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("There aren't any selected capabilities to remove. Please select some capabilities and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("No hay funcionalidades seleccionadas para eliminar. Seleccione algunas de ellas e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Il n'y a pas de capacités sélectionnées à supprimer. Veuillez sélectionner des capacités et réessayer.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Não existem quaisquer capacidades seleccionadas para remover. Por favor, seleccione algumas capacidades e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Non ci sono capacità selezionate da rimuovere. Selezionare alcune funzionalità e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("RemCapabilities.Validation")("Selected.None.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.capRemovalCount = capCount @@ -70,31 +46,7 @@ Public Class RemCapabilities DynaLog.LogMessage("Checking edition and version information for any unmet requirements...") If MainForm.CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) Or Not MainForm.IsWindows10OrHigher(MainForm.MountDir & "\Windows\system32\ntoskrnl.exe") Then DynaLog.LogMessage("The image is not supported") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is not supported on this image", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción no está soportada en esta imagen", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action n'est pas prise en charge sur cette image", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação não é suportada nesta imagem", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("Questa azione non è supportata su questa immagine", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("RemCapabilities.Initialize")("UnsupportedImage.Message"), vbOKOnly + vbCritical, Text) Return False End If DynaLog.LogMessage("All requirements are met. Continuing with the task...") @@ -117,81 +69,12 @@ Public Class RemCapabilities If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Remove capabilities" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Capability" - ListView1.Columns(1).Text = "State" - Case "ESN" - Text = "Eliminar funcionalidades" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Funcionalidad" - ListView1.Columns(1).Text = "Estado" - Case "FRA" - Text = "Supprimer les capacités" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Capacité" - ListView1.Columns(1).Text = "État" - Case "PTB", "PTG" - Text = "Remover capacidades" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Capacidade" - ListView1.Columns(1).Text = "Estado" - Case "ITA" - Text = "Rimuovi capacità" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Capacità" - ListView1.Columns(1).Text = "Stato" - End Select - Case 1 - Text = "Remove capabilities" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Capability" - ListView1.Columns(1).Text = "State" - Case 2 - Text = "Eliminar funcionalidades" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Funcionalidad" - ListView1.Columns(1).Text = "Estado" - Case 3 - Text = "Supprimer les capacités" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Capacité" - ListView1.Columns(1).Text = "État" - Case 4 - Text = "Remover capacidades" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Capacidade" - ListView1.Columns(1).Text = "Estado" - Case 5 - Text = "Rimuovi capacità" - ImageTaskHeader1.ItemText = Text - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Capacità" - ListView1.Columns(1).Text = "Stato" - End Select + Text = LocalizationService.ForSection("RemCapabilities")("Remove.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("RemCapabilities").Format("Image.Task.Header.Label", Text) + OK_Button.Text = LocalizationService.ForSection("RemCapabilities")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("RemCapabilities")("Cancel.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("RemCapabilities")("Capability.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("RemCapabilities")("State.Column") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/CompClean/ImgCleanup.Designer.vb b/Panels/Img_Ops/CompClean/ImgCleanup.Designer.vb index f00adf69b..a99c6e8a2 100644 --- a/Panels/Img_Ops/CompClean/ImgCleanup.Designer.vb +++ b/Panels/Img_Ops/CompClean/ImgCleanup.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgCleanup Inherits System.Windows.Forms.Form @@ -96,7 +96,7 @@ Partial Class ImgCleanup Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Ok.Button") ' 'Cancel_Button ' @@ -107,7 +107,7 @@ Partial Class ImgCleanup Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Cancel.Button") ' 'Label2 ' @@ -116,12 +116,12 @@ Partial Class ImgCleanup Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(79, 13) Me.Label2.TabIndex = 17 - Me.Label2.Text = "Choose a task:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Task.Choose.Label") ' 'ComboBox1 ' Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Revert pending actions", "Clean up Service Pack backup files", "Clean up component store", "Analyze component store", "Check component store", "Scan component store for corruption", "Repair component store"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.ImgCleanup")("Revert.Pending.Actions.Item"), LocalizationService.ForSection("Designer.ImgCleanup")("Clean.Up.ServicePack.Item"), LocalizationService.ForSection("Designer.ImgCleanup")("Clean.Up.Component.Item"), LocalizationService.ForSection("Designer.ImgCleanup")("Analyze.Component.Store.Item"), LocalizationService.ForSection("Designer.ImgCleanup")("Check.Component.Store.Item"), LocalizationService.ForSection("Designer.ImgCleanup")("Scan.Comp.Store.Item"), LocalizationService.ForSection("Designer.ImgCleanup")("Repair.Component.Store.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(97, 55) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(675, 21) @@ -135,7 +135,7 @@ Partial Class ImgCleanup Me.GroupBox1.Size = New System.Drawing.Size(760, 192) Me.GroupBox1.TabIndex = 19 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Task options" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImgCleanup")("TaskOptions.Group") ' 'Panel1 ' @@ -170,8 +170,7 @@ Partial Class ImgCleanup Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(754, 172) Me.Label4.TabIndex = 0 - Me.Label4.Text = "There are no configurable options for this task. However, you should only run thi" & _ - "s task to try to recover a Windows image that fails to boot." + Me.Label4.Text = LocalizationService.ForSection("Designer.ImgCleanup")("NoOptions.Message") Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel3 @@ -191,7 +190,7 @@ Partial Class ImgCleanup Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(256, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Hide service pack from the Installed Updates list" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImgCleanup")("HideServicePack.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Panel4 @@ -215,7 +214,7 @@ Partial Class ImgCleanup Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(392, 13) Me.Label6.TabIndex = 1 - Me.Label6.Text = "LastResetBase_UTC" + Me.Label6.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Last.Reset.Base.Label") ' 'Label7 ' @@ -224,8 +223,7 @@ Partial Class ImgCleanup Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(442, 13) Me.Label7.TabIndex = 1 - Me.Label7.Text = "You should only check this option if the base reset takes more than 30 minutes to" & _ - " complete" + Me.Label7.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Only.Check.Option.Label") ' 'Label5 ' @@ -234,7 +232,7 @@ Partial Class ImgCleanup Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(279, 13) Me.Label5.TabIndex = 1 - Me.Label5.Text = "The superseded components base reset was last run on:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Superseded.Base.Reset.Label") ' 'CheckBox3 ' @@ -243,7 +241,7 @@ Partial Class ImgCleanup Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(210, 17) Me.CheckBox3.TabIndex = 0 - Me.CheckBox3.Text = "Defer long-running cleanup operations" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Defer.Long.Running.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -253,7 +251,7 @@ Partial Class ImgCleanup Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(213, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Reset base of superseded components" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Reset.Base.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'Panel5 @@ -273,7 +271,7 @@ Partial Class ImgCleanup Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(754, 172) Me.Label8.TabIndex = 1 - Me.Label8.Text = "There are no configurable options for this task." + Me.Label8.Text = LocalizationService.ForSection("Designer.ImgCleanup")("NoOptions.Label") Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel6 @@ -293,7 +291,7 @@ Partial Class ImgCleanup Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(754, 172) Me.Label9.TabIndex = 2 - Me.Label9.Text = "There are no configurable options for this task." + Me.Label9.Text = LocalizationService.ForSection("Designer.ImgCleanup")("NoOptions.Label") Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel7 @@ -313,7 +311,7 @@ Partial Class ImgCleanup Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(754, 172) Me.Label10.TabIndex = 2 - Me.Label10.Text = "There are no configurable options for this task." + Me.Label10.Text = LocalizationService.ForSection("Designer.ImgCleanup")("NoOptions.Label") Me.Label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Panel8 @@ -369,7 +367,7 @@ Partial Class ImgCleanup Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 3 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label11 @@ -380,7 +378,7 @@ Partial Class ImgCleanup Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(44, 13) Me.Label11.TabIndex = 1 - Me.Label11.Text = "Source:" + Me.Label11.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Source.Label") ' 'CheckBox5 ' @@ -390,7 +388,7 @@ Partial Class ImgCleanup Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(179, 17) Me.CheckBox5.TabIndex = 0 - Me.CheckBox5.Text = "Limit access to Windows Update" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.ImgCleanup")("WindowsUpdate.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'CheckBox4 @@ -400,7 +398,7 @@ Partial Class ImgCleanup Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(228, 17) Me.CheckBox4.TabIndex = 0 - Me.CheckBox4.Text = "Use different source for component repair" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Different.Source.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'Button2 @@ -411,7 +409,7 @@ Partial Class ImgCleanup Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(175, 23) Me.Button2.TabIndex = 12 - Me.Button2.Text = "Detect from group policy" + Me.Button2.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Detect.Group.Policy.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label12 @@ -421,7 +419,7 @@ Partial Class ImgCleanup Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(754, 172) Me.Label12.TabIndex = 7 - Me.Label12.Text = "Select a task listed above to configure its options." + Me.Label12.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Task.Listed.Label") Me.Label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label3 @@ -433,13 +431,13 @@ Partial Class ImgCleanup Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(675, 60) Me.Label3.TabIndex = 20 - Me.Label3.Text = "Choose a task to see its description" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImgCleanup")("Task.See.Choose.Label") ' 'HealthRestoreSourceOFD ' - Me.HealthRestoreSourceOFD.Filter = "WIM files|*.wim|ESD files|*.esd" + Me.HealthRestoreSourceOFD.Filter = LocalizationService.ForSection("Designer.ImgCleanup")("WIM.Files.Wimesd.Filter") Me.HealthRestoreSourceOFD.SupportMultiDottedExtensions = True - Me.HealthRestoreSourceOFD.Title = "Specify the source from which we will restore the component store health" + Me.HealthRestoreSourceOFD.Title = LocalizationService.ForSection("Designer.ImgCleanup")("Source.Title") ' 'ImageTaskHeader1 ' @@ -486,7 +484,7 @@ Partial Class ImgCleanup Me.Name = "ImgCleanup" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Image cleanup" + Me.Text = LocalizationService.ForSection("Designer.ImgCleanup")("ImageCleanup.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.Panel1.ResumeLayout(False) diff --git a/Panels/Img_Ops/CompClean/ImgCleanup.vb b/Panels/Img_Ops/CompClean/ImgCleanup.vb index fa133d246..2834bb538 100644 --- a/Panels/Img_Ops/CompClean/ImgCleanup.vb +++ b/Panels/Img_Ops/CompClean/ImgCleanup.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Win32 Imports Microsoft.VisualBasic.ControlChars Imports System.IO @@ -6,7 +6,7 @@ Imports System.Text.RegularExpressions Public Class ImgCleanup - Dim Tasks() As String = New String(6) {"Revert pending actions", "Clean up Service Pack backup files", "Clean up component store", "Analyze component store", "Check component store", "Scan component store for corruption", "Repair component store"} + Dim Tasks() As String = New String(6) {"", "", "", "", "", "", ""} Dim SelTask As Integer = -1 @@ -25,31 +25,7 @@ Public Class ImgCleanup DynaLog.LogMessage("Detecting state of component repair sources...") If CheckBox4.Checked And RichTextBox1.Text = "" Then DynaLog.LogMessage("No source has been provided.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("No valid source has been provided for component store repair." & CrLf & CrLf & If(RichTextBox1.Text = "", "Please provide a source and try again.", "Please make sure the specified source exists in the file system and try again."), vbOKOnly + vbCritical, "Image cleanup") - Case "ESN" - MsgBox("No se ha proporcionado un origen válido para la reparación del almacén de componentes." & CrLf & CrLf & If(RichTextBox1.Text = "", "Proporcione un origen e inténtelo de nuevo", "Asegúrese de que el origen especificado exista en el sistema de archivos e inténtelo de nuevo."), vbOKOnly + vbCritical, "Limpieza de imagen") - Case "FRA" - MsgBox("Aucune source valide n'a été fournie pour la réparation du stock de composants." & CrLf & CrLf & If(RichTextBox1.Text = "", "Veuillez indiquer une source et réessayer.", "Assurez-vous que la source spécifiée existe dans le système de fichiers et réessayez."), vbOKOnly + vbCritical, "Nettoyage de l'image") - Case "PTB", "PTG" - MsgBox("Não foi fornecida nenhuma fonte válida para a reparação do armazenamento de componentes." & CrLf & CrLf & If(RichTextBox1.Text = "", "Forneça uma fonte e tente novamente.", "Certifique-se de que a fonte especificada existe no sistema de ficheiros e tente novamente."), vbOKOnly + vbCritical, "Limpeza da imagem") - Case "ITA" - MsgBox("Non è stata fornita un'origine valida per la riparazione dell'archivio componenti." & CrLf & CrLf & If(RichTextBox1.Text = "", "Fornire un'origine e riprovare.", "Assicurarsi che l'origine specificata esista nel file system e riprovare."), vbOKOnly + vbCritical, "Pulizia immagine") - End Select - Case 1 - MsgBox("No valid source has been provided for component store repair." & CrLf & CrLf & If(RichTextBox1.Text = "", "Please provide a source and try again.", "Please make sure the specified source exists in the file system and try again."), vbOKOnly + vbCritical, "Image cleanup") - Case 2 - MsgBox("No se ha proporcionado un origen válido para la reparación del almacén de componentes." & CrLf & CrLf & If(RichTextBox1.Text = "", "Proporcione un origen e inténtelo de nuevo", "Asegúrese de que el origen especificado exista en el sistema de archivos e inténtelo de nuevo."), vbOKOnly + vbCritical, "Limpieza de imagen") - Case 3 - MsgBox("Aucune source valide n'a été fournie pour la réparation du stock de composants." & CrLf & CrLf & If(RichTextBox1.Text = "", "Veuillez indiquer une source et réessayer.", "Assurez-vous que la source spécifiée existe dans le système de fichiers et réessayez."), vbOKOnly + vbCritical, "Nettoyage de l'image") - Case 4 - MsgBox("Não foi fornecida nenhuma fonte válida para a reparação do armazenamento de componentes." & CrLf & CrLf & If(RichTextBox1.Text = "", "Forneça uma fonte e tente novamente.", "Certifique-se de que a fonte especificada existe no sistema de ficheiros e tente novamente."), vbOKOnly + vbCritical, "Limpeza da imagem") - Case 5 - MsgBox("Non è stata fornita un'origine valida per la riparazione dell'archivio componenti." & CrLf & CrLf & If(RichTextBox1.Text = "", "Fornire un'origine e riprovare.", "Assicurarsi che l'origine specificata esista nel file system e riprovare."), vbOKOnly + vbCritical, "Pulizia immagine") - End Select + MsgBox(LocalizationService.ForSection("ImgCleanup.Validation")("Source.Has.None.Message") & CrLf & CrLf & If(RichTextBox1.Text = "", LocalizationService.ForSection("ImgCleanup.Validation")("Provide.Source.Try.Message"), LocalizationService.ForSection("ImgCleanup.Validation")("Please.Make.Message")), vbOKOnly + vbCritical, LocalizationService.ForSection("ImgCleanup.Validation")("ImageCleanup.Message")) Exit Sub End If ProgressPanel.ComponentRepairSource = RichTextBox1.Text @@ -69,331 +45,37 @@ Public Class ImgCleanup Private Sub ImgCleanup_Load(sender As Object, e As EventArgs) Handles MyBase.Load ComboBox1.Items.Clear() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Image cleanup" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Choose a task:" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Choose a task to see its description" - Label4.Text = "There are no configurable options for this task. However, you should only run this task to try to recover a Windows image that fails to boot." - Label5.Text = "The superseded components base reset was last run on:" - Label7.Text = "You should only check this option if the base reset takes more than 30 minutes to complete" - Label8.Text = "There are no configurable options for this task." - Label9.Text = "There are no configurable options for this task." - Label10.Text = "There are no configurable options for this task." - Label11.Text = "Source:" - Label12.Text = "Select a task listed above to configure its options." - GroupBox1.Text = "Task options" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Tasks(0) = "Revert pending actions" - Tasks(1) = "Clean up Service Pack backup files" - Tasks(2) = "Clean up component store" - Tasks(3) = "Analyze component store" - Tasks(4) = "Check component store" - Tasks(5) = "Scan component store for corruption" - Tasks(6) = "Repair component store" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Specify the source from which we will restore the component store health" - Button1.Text = "Browse..." - Button2.Text = "Detect from group policy" - CheckBox1.Text = "Hide service pack from the Installed Updates list" - CheckBox2.Text = "Reset base of superseded components" - CheckBox3.Text = "Defer long-running cleanup operations" - CheckBox4.Text = "Use different source for component repair" - CheckBox5.Text = "Limit access to Windows Update" - Case "ESN" - Text = "Limpieza de imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Elija una tarea:" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Elija una tarea para ver su descripción" - Label4.Text = "No hay opciones configurables para esta tarea. Sin embargo, debería ejecutar esta tarea para intentar recuperar una imagen de Windows que no inicia." - Label5.Text = "El restablecimiento de la base de componentes sustituidos fue ejecutado por última vez en:" - Label7.Text = "Debería marcar esta opción solo si el restablecimiento de la base tarda más de 30 minutos en completar" - Label8.Text = "No hay opciones configurables para esta tarea." - Label9.Text = "No hay opciones configurables para esta tarea." - Label10.Text = "No hay opciones configurables para esta tarea." - Label11.Text = "Origen:" - Label12.Text = "Seleccione una tarea en la lista de arriba para configurar sus opciones." - GroupBox1.Text = "Opciones de tarea" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Tasks(0) = "Revertir acciones pendientes" - Tasks(1) = "Limpiar archivos de copia de seguridad de Service Pack" - Tasks(2) = "Limpiar almacén de componentes" - Tasks(3) = "Analizar almacén de componentes" - Tasks(4) = "Comprobar almacén de componentes" - Tasks(5) = "Escanear almacén de componentes para detectar corrupción" - Tasks(6) = "Reparar almacén de componentes" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Especifique el origen desde donde restauraremos la salud del almacén de componentes" - Button1.Text = "Examinar..." - Button2.Text = "Detectar políticas de grupo" - CheckBox1.Text = "Ocultar Service Pack del listado de Actualizaciones instaladas" - CheckBox2.Text = "Restablecer la base de componentes sustituidos" - CheckBox3.Text = "Diferir operaciones largas de limpieza" - CheckBox4.Text = "Usar origen diferente para la reparación de componentes" - CheckBox5.Text = "Limitar acceso a Windows Update" - Case "FRA" - Text = "Nettoyage de l'image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Choisissez une tâche :" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Choisissez une tâche pour voir sa description" - Label4.Text = "Il n'y a pas d'options configurables pour cette tâche. Cependant, vous ne devez exécuter cette tâche que pour essayer de récupérer une image Windows qui ne démarre pas." - Label5.Text = "La réinitialisation de la base des composants remplacés a été exécutée pour la dernière fois :" - Label7.Text = "Ne cochez cette option que si la réinitialisation de la base prend plus de 30 minutes." - Label8.Text = "Il n'y a pas d'options configurables pour cette tâche." - Label9.Text = "Il n'y a pas d'options configurables pour cette tâche." - Label10.Text = "Il n'y a pas d'options configurables pour cette tâche." - Label11.Text = "Source :" - Label12.Text = "Sélectionnez une tâche dans la liste ci-dessus pour configurer ses paramètres." - GroupBox1.Text = "Paramètres de la tâche" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Tasks(0) = "Annuler les actions en cours" - Tasks(1) = "Nettoyer les fichiers de sauvegarde du Service Pack" - Tasks(2) = "Nettoyer le stock de composants" - Tasks(3) = "Analyser le stock de composants" - Tasks(4) = "Vérifier le stock de composants" - Tasks(5) = "Rechercher la corruption du stock de composants" - Tasks(6) = "Réparer le stock de composants" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Indiquez la source à partir de laquelle nous restaurerons l'état du stock de composants." - Button1.Text = "Parcourir..." - Button2.Text = "Détecter à partir des politiques de groupe" - CheckBox1.Text = "Cacher le Service Pack de la liste des mises à jour installées" - CheckBox2.Text = "Réinitialiser la base des composants remplacés" - CheckBox3.Text = "Différer les opérations de nettoyage de longue durée" - CheckBox4.Text = "Utiliser une autre source pour la réparation des composants" - CheckBox5.Text = "Limiter l'accès à Windows Update" - Case "PTB", "PTG" - Text = "Limpeza de imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Escolha uma tarefa:" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Escolha uma tarefa para ver a sua descrição" - Label4.Text = "Não existem opções configuráveis para esta tarefa. No entanto, só deve executar esta tarefa para tentar recuperar uma imagem do Windows que não arranque." - Label5.Text = "A reinicialização da base de componentes substituídos foi executada pela última vez em:" - Label7.Text = "Só deve marcar esta opção se a reposição de base demorar mais de 30 minutos a concluir" - Label8.Text = "Não existem opções configuráveis para esta tarefa." - Label9.Text = "Não existem opções configuráveis para esta tarefa." - Label10.Text = "Não existem opções configuráveis para esta tarefa." - Label11.Text = "Fonte:" - Label12.Text = "Seleccione uma tarefa listada acima para configurar as suas opções." - GroupBox1.Text = "Opções da tarefa" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Tasks(0) = "Reverter acções pendentes" - Tasks(1) = "Limpar ficheiros de cópia de segurança do Service Pack" - Tasks(2) = "Limpar o armazenamento de componentes" - Tasks(3) = "Analisar o armazenamento de componentes" - Tasks(4) = "Verificar o arquivo de componentes" - Tasks(5) = "Verificar se o arquivo de componentes está corrompido" - Tasks(6) = "Reparar o arquivo de componentes" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Especificar a fonte a partir da qual iremos restaurar o estado do armazenamento de componentes" - Button1.Text = "Navegar..." - Button2.Text = "Detetar a partir da política de grupo" - CheckBox1.Text = "Ocultar o service pack da lista de actualizações instaladas" - CheckBox2.Text = "Repor a base de componentes substituídos" - CheckBox3.Text = "Adiar operações de limpeza de longa duração" - CheckBox4.Text = "Utilizar outra fonte para reparação de componentes" - CheckBox5.Text = "Limitar o acesso ao Windows Update" - Case "ITA" - Text = "Pulizia immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Scegliere un'attività:" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Scegliere un'attività per vederne la descrizione" - Label4.Text = "Non ci sono opzioni configurabili per questa attività. Tuttavia, si dovrebbe eseguire questa attività solo per tentare di ripristinare un'immagine di Windows che non riesce ad avviarsi" - Label5.Text = "Il ripristino della base dei componenti sostituiti è stato eseguito l'ultima volta in data:" - Label7.Text = "Selezionare questa opzione solo se il ripristino della base richiede più di 30 minuti per essere completato" - Label8.Text = "Non ci sono opzioni configurabili per questa attività" - Label9.Text = "Non ci sono opzioni configurabili per questa attività" - Label10.Text = "Non ci sono opzioni configurabili per questa attività" - Label11.Text = "Fonte:" - Label12.Text = "Selezionare un'attività elencata sopra per configurarne le opzioni" - GroupBox1.Text = "Opzioni dell'attività" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Tasks(0) = "Annullamento delle azioni in sospeso" - Tasks(1) = "Pulisci i file di backup del Service Pack" - Tasks(2) = "Ripulire l'archivio dei componenti" - Tasks(3) = "Analizzare l'archivio dei componenti" - Tasks(4) = "Controllare l'archivio dei componenti" - Tasks(5) = "Scansiona l'archivio dei componenti per individuare eventuali corruzioni" - Tasks(6) = "Ripara l'archivio dei componenti" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Specificare l'origine da cui ripristinare lo stato di salute dell'archivio componenti" - Button1.Text = "Sfogliare..." - Button2.Text = "Rileva dai criteri di gruppo" - CheckBox1.Text = "Nascondi il service pack dall'elenco degli aggiornamenti installati" - CheckBox2.Text = "Ripristina la base dei componenti sostituiti" - CheckBox3.Text = "Rimanda le operazioni di pulizia di lunga durata" - CheckBox4.Text = "Usa un'altra fonte per la riparazione dei componenti" - CheckBox5.Text = "Limita l'accesso a Windows Update" - End Select - Case 1 - Text = "Image cleanup" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Choose a task:" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Choose a task to see its description" - Label4.Text = "There are no configurable options for this task. However, you should only run this task to try to recover a Windows image that fails to boot." - Label5.Text = "The superseded components base reset was last run on:" - Label7.Text = "You should only check this option if the base reset takes more than 30 minutes to complete" - Label8.Text = "There are no configurable options for this task." - Label9.Text = "There are no configurable options for this task." - Label10.Text = "There are no configurable options for this task." - Label11.Text = "Source:" - Label12.Text = "Select a task listed above to configure its options." - GroupBox1.Text = "Task options" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Tasks(0) = "Revert pending actions" - Tasks(1) = "Clean up Service Pack backup files" - Tasks(2) = "Clean up component store" - Tasks(3) = "Analyze component store" - Tasks(4) = "Check component store" - Tasks(5) = "Scan component store for corruption" - Tasks(6) = "Repair component store" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Specify the source from which we will restore the component store health" - Button1.Text = "Browse..." - Button2.Text = "Detect from group policy" - CheckBox1.Text = "Hide service pack from the Installed Updates list" - CheckBox2.Text = "Reset base of superseded components" - CheckBox3.Text = "Defer long-running cleanup operations" - CheckBox4.Text = "Use different source for component repair" - CheckBox5.Text = "Limit access to Windows Update" - Case 2 - Text = "Limpieza de imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Elija una tarea:" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Elija una tarea para ver su descripción" - Label4.Text = "No hay opciones configurables para esta tarea. Sin embargo, debería ejecutar esta tarea para intentar recuperar una imagen de Windows que no inicia." - Label5.Text = "El restablecimiento de la base de componentes sustituidos fue ejecutado por última vez en:" - Label7.Text = "Debería marcar esta opción solo si el restablecimiento de la base tarda más de 30 minutos en completar" - Label8.Text = "No hay opciones configurables para esta tarea." - Label9.Text = "No hay opciones configurables para esta tarea." - Label10.Text = "No hay opciones configurables para esta tarea." - Label11.Text = "Origen:" - Label12.Text = "Seleccione una tarea en la lista de arriba para configurar sus opciones." - GroupBox1.Text = "Opciones de tarea" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Tasks(0) = "Revertir acciones pendientes" - Tasks(1) = "Limpiar archivos de copia de seguridad de Service Pack" - Tasks(2) = "Limpiar almacén de componentes" - Tasks(3) = "Analizar almacén de componentes" - Tasks(4) = "Comprobar almacén de componentes" - Tasks(5) = "Escanear almacén de componentes para detectar corrupción" - Tasks(6) = "Reparar almacén de componentes" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Especifique el origen desde donde restauraremos la salud del almacén de componentes" - Button1.Text = "Examinar..." - Button2.Text = "Detectar políticas de grupo" - CheckBox1.Text = "Ocultar Service Pack del listado de Actualizaciones instaladas" - CheckBox2.Text = "Restablecer la base de componentes sustituidos" - CheckBox3.Text = "Diferir operaciones largas de limpieza" - CheckBox4.Text = "Usar origen diferente para la reparación de componentes" - CheckBox5.Text = "Limitar acceso a Windows Update" - Case 3 - Text = "Nettoyage de l'image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Choisissez une tâche :" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Choisissez une tâche pour voir sa description" - Label4.Text = "Il n'y a pas d'options configurables pour cette tâche. Cependant, vous ne devez exécuter cette tâche que pour essayer de récupérer une image Windows qui ne démarre pas." - Label5.Text = "La réinitialisation de la base des composants remplacés a été exécutée pour la dernière fois :" - Label7.Text = "Ne cochez cette option que si la réinitialisation de la base prend plus de 30 minutes." - Label8.Text = "Il n'y a pas d'options configurables pour cette tâche." - Label9.Text = "Il n'y a pas d'options configurables pour cette tâche." - Label10.Text = "Il n'y a pas d'options configurables pour cette tâche." - Label11.Text = "Source :" - Label12.Text = "Sélectionnez une tâche dans la liste ci-dessus pour configurer ses paramètres." - GroupBox1.Text = "Paramètres de la tâche" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Tasks(0) = "Annuler les actions en cours" - Tasks(1) = "Nettoyer les fichiers de sauvegarde du Service Pack" - Tasks(2) = "Nettoyer le stock de composants" - Tasks(3) = "Analyser le stock de composants" - Tasks(4) = "Vérifier le stock de composants" - Tasks(5) = "Rechercher la corruption du stock de composants" - Tasks(6) = "Réparer le stock de composants" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Indiquez la source à partir de laquelle nous restaurerons l'état du stock de composants." - Button1.Text = "Parcourir..." - Button2.Text = "Détecter à partir des politiques de groupe" - CheckBox1.Text = "Cacher le Service Pack de la liste des mises à jour installées" - CheckBox2.Text = "Réinitialiser la base des composants remplacés" - CheckBox3.Text = "Différer les opérations de nettoyage de longue durée" - CheckBox4.Text = "Utiliser une autre source pour la réparation des composants" - CheckBox5.Text = "Limiter l'accès à Windows Update" - Case 4 - Text = "Limpeza de imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Escolha uma tarefa:" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Escolha uma tarefa para ver a sua descrição" - Label4.Text = "Não existem opções configuráveis para esta tarefa. No entanto, só deve executar esta tarefa para tentar recuperar uma imagem do Windows que não arranque." - Label5.Text = "A reinicialização da base de componentes substituídos foi executada pela última vez em:" - Label7.Text = "Só deve marcar esta opção se a reposição de base demorar mais de 30 minutos a concluir" - Label8.Text = "Não existem opções configuráveis para esta tarefa." - Label9.Text = "Não existem opções configuráveis para esta tarefa." - Label10.Text = "Não existem opções configuráveis para esta tarefa." - Label11.Text = "Fonte:" - Label12.Text = "Seleccione uma tarefa listada acima para configurar as suas opções." - GroupBox1.Text = "Opções da tarefa" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Tasks(0) = "Reverter acções pendentes" - Tasks(1) = "Limpar ficheiros de cópia de segurança do Service Pack" - Tasks(2) = "Limpar o armazenamento de componentes" - Tasks(3) = "Analisar o armazenamento de componentes" - Tasks(4) = "Verificar o arquivo de componentes" - Tasks(5) = "Verificar se o arquivo de componentes está corrompido" - Tasks(6) = "Reparar o arquivo de componentes" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Especificar a fonte a partir da qual iremos restaurar o estado do armazenamento de componentes" - Button1.Text = "Navegar..." - Button2.Text = "Detetar a partir da política de grupo" - CheckBox1.Text = "Ocultar o service pack da lista de actualizações instaladas" - CheckBox2.Text = "Repor a base de componentes substituídos" - CheckBox3.Text = "Adiar operações de limpeza de longa duração" - CheckBox4.Text = "Utilizar outra fonte para reparação de componentes" - CheckBox5.Text = "Limitar o acesso ao Windows Update" - Case 5 - Text = "Pulizia immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Scegliere un'attività:" - If ComboBox1.SelectedItem = "" Then Label3.Text = "Scegliere un'attività per vederne la descrizione" - Label4.Text = "Non ci sono opzioni configurabili per questa attività. Tuttavia, si dovrebbe eseguire questa attività solo per tentare di ripristinare un'immagine di Windows che non riesce ad avviarsi" - Label5.Text = "Il ripristino della base dei componenti sostituiti è stato eseguito l'ultima volta in data:" - Label7.Text = "Selezionare questa opzione solo se il ripristino della base richiede più di 30 minuti per essere completato" - Label8.Text = "Non ci sono opzioni configurabili per questa attività" - Label9.Text = "Non ci sono opzioni configurabili per questa attività" - Label10.Text = "Non ci sono opzioni configurabili per questa attività" - Label11.Text = "Fonte:" - Label12.Text = "Selezionare un'attività elencata sopra per configurarne le opzioni" - GroupBox1.Text = "Opzioni dell'attività" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Tasks(0) = "Annullamento delle azioni in sospeso" - Tasks(1) = "Pulisci i file di backup del Service Pack" - Tasks(2) = "Ripulire l'archivio dei componenti" - Tasks(3) = "Analizzare l'archivio dei componenti" - Tasks(4) = "Controllare l'archivio dei componenti" - Tasks(5) = "Scansiona l'archivio dei componenti per individuare eventuali corruzioni" - Tasks(6) = "Ripara l'archivio dei componenti" - ComboBox1.Items.AddRange(Tasks) - HealthRestoreSourceOFD.Title = "Specificare l'origine da cui ripristinare lo stato di salute dell'archivio componenti" - Button1.Text = "Sfogliare..." - Button2.Text = "Rileva dai criteri di gruppo" - CheckBox1.Text = "Nascondi il service pack dall'elenco degli aggiornamenti installati" - CheckBox2.Text = "Ripristina la base dei componenti sostituiti" - CheckBox3.Text = "Rimanda le operazioni di pulizia di lunga durata" - CheckBox4.Text = "Usa un'altra fonte per la riparazione dei componenti" - CheckBox5.Text = "Limita l'accesso a Windows Update" - End Select + Text = LocalizationService.ForSection("ImgCleanup")("ImageCleanup.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("ImgCleanup")("Task.Choose.Label") + If ComboBox1.SelectedItem = "" Then Label3.Text = LocalizationService.ForSection("ImgCleanup")("Text4.Label") + Label4.Text = LocalizationService.ForSection("ImgCleanup")("NoOptions.Message") + Label5.Text = LocalizationService.ForSection("ImgCleanup")("Superseded.Base.Reset.Label") + Label7.Text = LocalizationService.ForSection("ImgCleanup")("Only.Check.Option.Label") + Label8.Text = LocalizationService.ForSection("ImgCleanup")("NoOptions.Label") + Label9.Text = LocalizationService.ForSection("ImgCleanup")("NoOptions.Label") + Label10.Text = LocalizationService.ForSection("ImgCleanup")("NoOptions.Label") + Label11.Text = LocalizationService.ForSection("ImgCleanup")("Source.Label") + Label12.Text = LocalizationService.ForSection("ImgCleanup")("Task.Listed.Label") + GroupBox1.Text = LocalizationService.ForSection("ImgCleanup")("TaskOptions.Group") + OK_Button.Text = LocalizationService.ForSection("ImgCleanup")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImgCleanup")("Cancel.Button") + Tasks(0) = LocalizationService.ForSection("ImgCleanup")("Revert.Pending.Actions.Item") + Tasks(1) = LocalizationService.ForSection("ImgCleanup")("Clean.Up.ServicePack.Item") + Tasks(2) = LocalizationService.ForSection("ImgCleanup")("Clean.Up.Component.Item") + Tasks(3) = LocalizationService.ForSection("ImgCleanup")("Analyze.Component.Store.Item") + Tasks(4) = LocalizationService.ForSection("ImgCleanup")("Check.Component.Store.Item") + Tasks(5) = LocalizationService.ForSection("ImgCleanup")("Scan.Comp.Store.Item") + Tasks(6) = LocalizationService.ForSection("ImgCleanup")("Repair.Component.Store.Item") + ComboBox1.Items.AddRange(Tasks) + HealthRestoreSourceOFD.Title = LocalizationService.ForSection("ImgCleanup")("Source.Title") + Button1.Text = LocalizationService.ForSection("ImgCleanup")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImgCleanup")("Detect.Group.Policy.Button") + CheckBox1.Text = LocalizationService.ForSection("ImgCleanup")("HideServicePack.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("ImgCleanup")("Reset.Base.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("ImgCleanup")("Defer.Long.Running.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("ImgCleanup")("Different.Source.CheckBox") + CheckBox5.Text = LocalizationService.ForSection("ImgCleanup")("WindowsUpdate.CheckBox") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -412,31 +94,7 @@ Public Class ImgCleanup DynaLog.LogMessage("Detecting last base reset of active installation...") Dim regKey As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing", False) Dim LastResetBase_UTC As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Could not get last base reset date. It is possible that no base resets were made").ToString() - Case "ESN" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "No se pudo obtener la fecha de restablecimiento de base. Es posible que no se haya hecho ningún restablecimiento").ToString() - Case "FRA" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Impossible d'obtenir la date de la dernière remise à zéro de la base. Il est possible qu'aucune réinitialisation de la base n'ait été effectuée.").ToString() - Case "PTB", "PTG" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Não foi possível obter a data da última reposição de base. É possível que não tenham sido efectuadas reinicializações de base").ToString() - Case "ITA" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Impossibile ottenere la data dell'ultimo ripristino della base. È possibile che non sia stato effettuato alcun azzeramento della base").ToString() - End Select - Case 1 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Could not get last base reset date. It is possible that no base resets were made").ToString() - Case 2 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "No se pudo obtener la fecha de restablecimiento de base. Es posible que no se haya hecho ningún restablecimiento").ToString() - Case 3 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Impossible d'obtenir la date de la dernière remise à zéro de la base. Il est possible qu'aucune réinitialisation de la base n'ait été effectuée.").ToString() - Case 4 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Não foi possível obter a data da última reposição de base. É possível que não tenham sido efectuadas reinicializações de base").ToString() - Case 5 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Impossibile ottenere la data dell'ultimo ripristino della base. È possibile che non sia stato effettuato alcun azzeramento della base").ToString() - End Select + LastResetBase_UTC = regKey.GetValue(LocalizationService.ForSection("ImgCleanup")("Last.Reset.Base.Label"), LocalizationService.ForSection("ImgCleanup")("Get.Last.Base.Message")).ToString() regKey.Close() Dim charArray() As Char = LastResetBase_UTC.ToCharArray() If LastResetBase_UTC.Contains("/") Then charArray(10) = " " @@ -451,31 +109,7 @@ Public Class ImgCleanup If regExitCode = 0 Then Dim regKey As RegistryKey = Registry.LocalMachine.OpenSubKey("MountedSoft\Microsoft\Windows\CurrentVersion\Component Based Servicing", False) Dim LastResetBase_UTC As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Could not get last base reset date. It is possible that no base resets were made").ToString() - Case "ESN" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "No se pudo obtener la fecha de restablecimiento de base. Es posible que no se haya hecho ningún restablecimiento").ToString() - Case "FRA" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Impossible d'obtenir la date de la dernière remise à zéro de la base. Il est possible qu'aucune réinitialisation de la base n'ait été effectuée.").ToString() - Case "PTB", "PTG" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Não foi possível obter a data da última reposição de base. É possível que não tenham sido efectuadas reinicializações de base").ToString() - Case "ITA" - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Impossibile ottenere la data dell'ultimo ripristino della base. È possibile che non sia stato effettuato alcun azzeramento della base").ToString() - End Select - Case 1 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Could not get last base reset date. It is possible that no base resets were made").ToString() - Case 2 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "No se pudo obtener la fecha de restablecimiento de base. Es posible que no se haya hecho ningún restablecimiento").ToString() - Case 3 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Impossible d'obtenir la date de la dernière remise à zéro de la base. Il est possible qu'aucune réinitialisation de la base n'ait été effectuée.").ToString() - Case 4 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Não foi possível obter a data da última reposição de base. É possível que não tenham sido efectuadas reinicializações de base").ToString() - Case 5 - LastResetBase_UTC = regKey.GetValue("LastResetBase_UTC", "Impossibile ottenere la data dell'ultimo ripristino della base. È possibile che non sia stato effettuato alcun azzeramento della base").ToString() - End Select + LastResetBase_UTC = regKey.GetValue(LocalizationService.ForSection("ImgCleanup")("Last.Reset.Base.Item"), LocalizationService.ForSection("ImgCleanup")("Get.Last.Base.Item")).ToString() regKey.Close() Dim charArray() As Char = LastResetBase_UTC.ToCharArray() If LastResetBase_UTC.Contains("/") Then charArray(10) = " " @@ -484,31 +118,7 @@ Public Class ImgCleanup DynaLog.LogMessage("Detected date: " & LastResetBase_UTC) RegistryHelper.UnloadRegistryHive("HKLM\MountedSoft") Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label6.Text = "Could not get last base reset date" - Case "ESN" - Label6.Text = "No se pudo obtener la fecha del último restablecimiento de base" - Case "FRA" - Label6.Text = "Impossible d'obtenir la date de la dernière réinitialisation de la base" - Case "PTB", "PTG" - Label6.Text = "Não foi possível obter a data da última reposição de base." - Case "ITA" - Label6.Text = "Impossibile ottenere la data dell'ultimo ripristino della base." - End Select - Case 1 - Label6.Text = "Could not get last base reset date" - Case 2 - Label6.Text = "No se pudo obtener la fecha del último restablecimiento de base" - Case 3 - Label6.Text = "Impossible d'obtenir la date de la dernière réinitialisation de la base" - Case 4 - Label6.Text = "Não foi possível obter a data da última reposição de base." - Case 5 - Label6.Text = "Impossibile ottenere la data dell'ultimo ripristino della base." - End Select + Label6.Text = LocalizationService.ForSection("ImgCleanup")("Get.Last.Base.Label") End If End If @@ -525,31 +135,7 @@ Public Class ImgCleanup Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged If ComboBox1.SelectedItem = "" Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "Choose a task to see its description" - Case "ESN" - Label3.Text = "Elija una tarea para ver su descripción" - Case "FRA" - Label3.Text = "Choisissez une tâche pour voir sa description" - Case "PTB", "PTG" - Label3.Text = "Escolha uma tarefa para ver a sua descrição" - Case "ITA" - Label3.Text = "Scegliere un'attività per vederne la descrizione" - End Select - Case 1 - Label3.Text = "Choose a task to see its description" - Case 2 - Label3.Text = "Elija una tarea para ver su descripción" - Case 3 - Label3.Text = "Choisissez une tâche pour voir sa description" - Case 4 - Label3.Text = "Escolha uma tarefa para ver a sua descrição" - Case 5 - Label3.Text = "Scegliere un'attività per vederne la descrizione" - End Select + Label3.Text = LocalizationService.ForSection("ImgCleanup")("Task.See.Choose.Label") Panel2.Visible = False Panel3.Visible = False Panel4.Visible = False @@ -560,31 +146,7 @@ Public Class ImgCleanup Else Select Case ComboBox1.SelectedIndex Case 0 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "If you experience a boot failure, this option can try to recover the system by reverting all pending actions from previous servicing operations" - Case "ESN" - Label3.Text = "Si experimenta un error en el arranque, esta opción puede intentar recuperar el sistema revirtiendo todas las acciones pendientes de operaciones de servicio previas" - Case "FRA" - Label3.Text = "En cas d'échec du démarrage, cette option permet d'essayer de récupérer le système en annulant toutes les actions en cours des opérations de maintenance précédentes." - Case "PTB", "PTG" - Label3.Text = "Se ocorrer uma falha de arranque, esta opção pode tentar recuperar o sistema revertendo todas as acções pendentes de operações de manutenção anteriores" - Case "ITA" - Label3.Text = "Se si verifica un errore di avvio, questa opzione può tentare di ripristinare il sistema annullando tutte le azioni in sospeso dalle precedenti operazioni di assistenza." - End Select - Case 1 - Label3.Text = "If you experience a boot failure, this option can try to recover the system by reverting all pending actions from previous servicing operations" - Case 2 - Label3.Text = "Si experimenta un error en el arranque, esta opción puede intentar recuperar el sistema revirtiendo todas las acciones pendientes de operaciones de servicio previas" - Case 3 - Label3.Text = "En cas d'échec du démarrage, cette option permet d'essayer de récupérer le système en annulant toutes les actions en cours des opérations de maintenance précédentes." - Case 4 - Label3.Text = "Se ocorrer uma falha de arranque, esta opção pode tentar recuperar o sistema revertendo todas as acções pendentes de operações de manutenção anteriores" - Case 5 - Label3.Text = "Se si verifica un errore di avvio, questa opzione può tentare di ripristinare il sistema annullando tutte le azioni in sospeso dalle precedenti operazioni di assistenza." - End Select + Label3.Text = LocalizationService.ForSection("ImgCleanup")("Experience.Boot.Message") Panel2.Visible = True Panel3.Visible = False Panel4.Visible = False @@ -593,31 +155,7 @@ Public Class ImgCleanup Panel7.Visible = False Panel8.Visible = False Case 1 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "Removes backup files created during the installation of a service pack" - Case "ESN" - Label3.Text = "Elimina archivos de copia de seguridad creados durante la instalación de un Service Pack" - Case "FRA" - Label3.Text = "Supprime les fichiers de sauvegarde créés lors de l'installation d'un service pack" - Case "PTB", "PTG" - Label3.Text = "Remove os ficheiros de cópia de segurança criados durante a instalação de um service pack" - Case "ITA" - Label3.Text = "Rimuove i file di backup creati durante l'installazione di un service pack" - End Select - Case 1 - Label3.Text = "Removes backup files created during the installation of a service pack" - Case 2 - Label3.Text = "Elimina archivos de copia de seguridad creados durante la instalación de un Service Pack" - Case 3 - Label3.Text = "Supprime les fichiers de sauvegarde créés lors de l'installation d'un service pack" - Case 4 - Label3.Text = "Remove os ficheiros de cópia de segurança criados durante a instalação de um service pack" - Case 5 - Label3.Text = "Rimuove i file di backup creati durante l'installazione di un service pack" - End Select + Label3.Text = LocalizationService.ForSection("ImgCleanup")("Removes.Backup.Files.Item") Panel2.Visible = False Panel3.Visible = True Panel4.Visible = False @@ -626,31 +164,7 @@ Public Class ImgCleanup Panel7.Visible = False Panel8.Visible = False Case 2 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "Cleans up the superseded components and reduces the size of the component store" - Case "ESN" - Label3.Text = "Limpia los componentes sustituidos y reduce el tamaño del almacén de componentes" - Case "FRA" - Label3.Text = "Nettoie les composants remplacés et réduit la taille du stock de composants." - Case "PTB", "PTG" - Label3.Text = "Limpa os componentes substituídos e reduz o tamanho do armazenamento de componentes" - Case "ITA" - Label3.Text = "Pulisce i componenti sostituiti e riduce le dimensioni dell'archivio dei componenti" - End Select - Case 1 - Label3.Text = "Cleans up the superseded components and reduces the size of the component store" - Case 2 - Label3.Text = "Limpia los componentes sustituidos y reduce el tamaño del almacén de componentes" - Case 3 - Label3.Text = "Nettoie les composants remplacés et réduit la taille du stock de composants." - Case 4 - Label3.Text = "Limpa os componentes substituídos e reduz o tamanho do armazenamento de componentes" - Case 5 - Label3.Text = "Pulisce i componenti sostituiti e riduce le dimensioni dell'archivio dei componenti" - End Select + Label3.Text = LocalizationService.ForSection("ImgCleanup")("Cleans.Up.Superseded.Item") Panel2.Visible = False Panel3.Visible = False Panel4.Visible = True @@ -659,31 +173,7 @@ Public Class ImgCleanup Panel7.Visible = False Panel8.Visible = False Case 3 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "Creates a report of the component store, including its size" - Case "ESN" - Label3.Text = "Crea un informe del almacén de componentes, incluyendo su tamaño" - Case "FRA" - Label3.Text = "Crée un rapport sur le stock de composants, y compris sa taille." - Case "PTB", "PTG" - Label3.Text = "Cria um relatório do armazenamento de componentes, incluindo o seu tamanho" - Case "ITA" - Label3.Text = "Crea un rapporto sul magazzino dei componenti, comprese le dimensioni" - End Select - Case 1 - Label3.Text = "Creates a report of the component store, including its size" - Case 2 - Label3.Text = "Crea un informe del almacén de componentes, incluyendo su tamaño" - Case 3 - Label3.Text = "Crée un rapport sur le stock de composants, y compris sa taille." - Case 4 - Label3.Text = "Cria um relatório do armazenamento de componentes, incluindo o seu tamanho" - Case 5 - Label3.Text = "Crea un rapporto sul magazzino dei componenti, comprese le dimensioni" - End Select + Label3.Text = LocalizationService.ForSection("ImgCleanup")("Creates.Report.Comp.Item") Panel2.Visible = False Panel3.Visible = False Panel4.Visible = False @@ -692,31 +182,7 @@ Public Class ImgCleanup Panel7.Visible = False Panel8.Visible = False Case 4 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "Checks whether the image has been flagged as corrupted by a failed process and whether the corruption can be repaired" - Case "ESN" - Label3.Text = "Comprueba si la imagen ha sido reportada como corrupta por un proceso fallido y si la corrupción puede ser reparada" - Case "FRA" - Label3.Text = "Vérifie si l'image a été signalée comme corrompue par un processus ayant échoué et si la corruption peut être réparée." - Case "PTB", "PTG" - Label3.Text = "Verifica se a imagem foi assinalada como corrompida por um processo falhado e se a corrupção pode ser reparada" - Case "ITA" - Label3.Text = "Controlla se l'immagine è stata contrassegnata come corrotta da un processo non riuscito e se la corruzione può essere riparata" - End Select - Case 1 - Label3.Text = "Checks whether the image has been flagged as corrupted by a failed process and whether the corruption can be repaired" - Case 2 - Label3.Text = "Comprueba si la imagen ha sido reportada como corrupta por un proceso fallido y si la corrupción puede ser reparada" - Case 3 - Label3.Text = "Vérifie si l'image a été signalée comme corrompue par un processus ayant échoué et si la corruption peut être réparée." - Case 4 - Label3.Text = "Verifica se a imagem foi assinalada como corrompida por um processo falhado e se a corrupção pode ser reparada" - Case 5 - Label3.Text = "Controlla se l'immagine è stata contrassegnata come corrotta da un processo non riuscito e se la corruzione può essere riparata" - End Select + Label3.Text = LocalizationService.ForSection("ImgCleanup")("Checks.Whether.Image.Message") Panel2.Visible = False Panel3.Visible = False Panel4.Visible = False @@ -725,31 +191,7 @@ Public Class ImgCleanup Panel7.Visible = False Panel8.Visible = False Case 5 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "Scans the image for component store corruption, but does not perform repair options automatically" - Case "ESN" - Label3.Text = "Escanea la imagen para comprobar corrupción en el almacén de componentes, pero no realiza operaciones de reparación automáticamente" - Case "FRA" - Label3.Text = "Analyse l'image pour détecter une corruption du stock de composants, mais n'exécute pas automatiquement les options de réparation." - Case "PTB", "PTG" - Label3.Text = "Analisa a imagem em busca de corrupção no armazenamento de componentes, mas não executa as opções de reparação automaticamente" - Case "ITA" - Label3.Text = "Esegue la scansione dell'immagine per individuare eventuali danni all'archivio componenti, ma non esegue automaticamente le opzioni di riparazione" - End Select - Case 1 - Label3.Text = "Scans the image for component store corruption, but does not perform repair options automatically" - Case 2 - Label3.Text = "Escanea la imagen para comprobar corrupción en el almacén de componentes, pero no realiza operaciones de reparación automáticamente" - Case 3 - Label3.Text = "Analyse l'image pour détecter une corruption du stock de composants, mais n'exécute pas automatiquement les options de réparation." - Case 4 - Label3.Text = "Analisa a imagem em busca de corrupção no armazenamento de componentes, mas não executa as opções de reparação automaticamente" - Case 5 - Label3.Text = "Esegue la scansione dell'immagine per individuare eventuali danni all'archivio componenti, ma non esegue automaticamente le opzioni di riparazione" - End Select + Label3.Text = LocalizationService.ForSection("ImgCleanup")("Scans.Image.Message") Panel2.Visible = False Panel3.Visible = False Panel4.Visible = False @@ -758,31 +200,7 @@ Public Class ImgCleanup Panel7.Visible = True Panel8.Visible = False Case 6 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label3.Text = "Scans the image for component store corruption and performs repair operations automatically" - Case "ESN" - Label3.Text = "Escanea la imagen para comprobar corrupción en el almacén de componentes y realiza operaciones de reparación automáticamente" - Case "FRA" - Label3.Text = "Analyse l'image pour détecter une corruption du stock de composants et effectue les opérations de réparation automatiquement." - Case "PTB", "PTG" - Label3.Text = "Analisa a imagem em busca de corrupção no armazenamento de componentes e efectua operações de reparação automaticamente" - Case "ITA" - Label3.Text = "Esegue la scansione dell'immagine per individuare eventuali danni all'archivio componenti ed esegue automaticamente le operazioni di riparazione" - End Select - Case 1 - Label3.Text = "Scans the image for component store corruption and performs repair operations automatically" - Case 2 - Label3.Text = "Escanea la imagen para comprobar corrupción en el almacén de componentes y realiza operaciones de reparación automáticamente" - Case 3 - Label3.Text = "Analyse l'image pour détecter une corruption du stock de composants et effectue les opérations de réparation automatiquement." - Case 4 - Label3.Text = "Analisa a imagem em busca de corrupção no armazenamento de componentes e efectua operações de reparação automaticamente" - Case 5 - Label3.Text = "Esegue la scansione dell'immagine per individuare eventuali danni all'archivio componenti ed esegue automaticamente le operazioni di riparazione" - End Select + Label3.Text = LocalizationService.ForSection("ImgCleanup")("Scans.Image.Component.Item") Panel2.Visible = False Panel3.Visible = False Panel4.Visible = False diff --git a/Panels/Img_Ops/Conversion/ImgWim2Esd.Designer.vb b/Panels/Img_Ops/Conversion/ImgWim2Esd.Designer.vb index e14e69c55..5a4a308c4 100644 --- a/Panels/Img_Ops/Conversion/ImgWim2Esd.Designer.vb +++ b/Panels/Img_Ops/Conversion/ImgWim2Esd.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgWim2Esd Inherits System.Windows.Forms.Form @@ -77,7 +77,7 @@ Partial Class ImgWim2Esd Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.Img.WIM")("Ok.Button") ' 'Cancel_Button ' @@ -88,7 +88,7 @@ Partial Class ImgWim2Esd Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.Img.WIM")("Cancel.Button") ' 'GroupBox1 ' @@ -102,7 +102,7 @@ Partial Class ImgWim2Esd Me.GroupBox1.Size = New System.Drawing.Size(760, 88) Me.GroupBox1.TabIndex = 4 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Source" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.Img.WIM")("Source.Group") ' 'Button1 ' @@ -112,7 +112,7 @@ Partial Class ImgWim2Esd Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 5 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.Img.WIM")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -131,7 +131,7 @@ Partial Class ImgWim2Esd Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(92, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Source image file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.Img.WIM")("SourceImageFile.Label") ' 'GroupBox2 ' @@ -148,7 +148,7 @@ Partial Class ImgWim2Esd Me.GroupBox2.Size = New System.Drawing.Size(760, 272) Me.GroupBox2.TabIndex = 4 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.Img.WIM")("Options.Group") ' 'ListView1 ' @@ -164,22 +164,22 @@ Partial Class ImgWim2Esd ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Index" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.Img.WIM")("Index.Column") Me.ColumnHeader1.Width = 44 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.Img.WIM")("ImageName.Column") Me.ColumnHeader2.Width = 256 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Image description" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.Img.WIM")("ImageDescription.Column") Me.ColumnHeader3.Width = 256 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Image version" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.Img.WIM")("ImageVersion.Column") Me.ColumnHeader4.Width = 128 ' 'NumericUpDown1 @@ -198,7 +198,7 @@ Partial Class ImgWim2Esd Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(39, 13) Me.Label7.TabIndex = 5 - Me.Label7.Text = "Index:" + Me.Label7.Text = LocalizationService.ForSection("Designer.Img.WIM")("Index.Label") ' 'ComboBox1 ' @@ -217,7 +217,7 @@ Partial Class ImgWim2Esd Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(141, 13) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Format of converted image:" + Me.Label3.Text = LocalizationService.ForSection("Designer.Img.WIM")("Format.Converted.Image.Label") ' 'LinkLabel1 ' @@ -230,7 +230,7 @@ Partial Class ImgWim2Esd Me.LinkLabel1.Size = New System.Drawing.Size(299, 13) Me.LinkLabel1.TabIndex = 2 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Which format do I choose?" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.Img.WIM")("Format.Ichoose.Link") Me.LinkLabel1.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'GroupBox3 @@ -245,7 +245,7 @@ Partial Class ImgWim2Esd Me.GroupBox3.Size = New System.Drawing.Size(760, 88) Me.GroupBox3.TabIndex = 4 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Destination" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.Img.WIM")("Destination.Group") ' 'Button2 ' @@ -255,7 +255,7 @@ Partial Class ImgWim2Esd Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 5 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.Img.WIM")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label5 @@ -265,7 +265,7 @@ Partial Class ImgWim2Esd Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(113, 13) Me.Label5.TabIndex = 0 - Me.Label5.Text = "Destination image file:" + Me.Label5.Text = LocalizationService.ForSection("Designer.Img.WIM")("Destination.ImageFile.Label") ' 'TextBox2 ' @@ -278,12 +278,12 @@ Partial Class ImgWim2Esd ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WIM files|*.wim|ESD files|*.esd" - Me.OpenFileDialog1.Title = "Specify the source image file you want to convert" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.Img.WIM")("OpenFile.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.Img.WIM")("Source.ImageFile.Title") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Title = "Where will the target image be stored?" + Me.SaveFileDialog1.Title = LocalizationService.ForSection("Designer.Img.WIM")("Target.Image.Stored.Title") ' 'ImageTaskHeader1 ' @@ -318,7 +318,7 @@ Partial Class ImgWim2Esd Me.Name = "ImgWim2Esd" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Convert image" + Me.Text = LocalizationService.ForSection("Designer.Img.WIM")("ConvertImage.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/Conversion/ImgWim2Esd.vb b/Panels/Img_Ops/Conversion/ImgWim2Esd.vb index 19dc96619..01bfd7e5d 100644 --- a/Panels/Img_Ops/Conversion/ImgWim2Esd.vb +++ b/Panels/Img_Ops/Conversion/ImgWim2Esd.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Dism Imports System.IO Imports System.Threading @@ -42,221 +42,26 @@ Public Class ImgWim2Esd End Sub Private Sub ImgWim2Esd_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Convert image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image file:" - Label3.Text = "Format of converted image:" - Label5.Text = "Destination image file:" - Label7.Text = "Index:" - LinkLabel1.Text = "Which format do I choose?" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView1.Columns(2).Text = "Image description" - ListView1.Columns(3).Text = "Image version" - GroupBox1.Text = "Source" - GroupBox2.Text = "Options" - GroupBox3.Text = "Destination" - OpenFileDialog1.Title = "Specify the source image file you want to convert" - SaveFileDialog1.Title = "Where will the target image be stored?" - Case "ESN" - Text = "Convertir imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de imagen de origen:" - Label3.Text = "Formato de imagen convertida:" - Label5.Text = "Archivo de imagen de destino:" - Label7.Text = "Índice:" - LinkLabel1.Text = "¿Qué formato escojo?" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView1.Columns(2).Text = "Descripción de imagen" - ListView1.Columns(3).Text = "Versión de imagen" - GroupBox1.Text = "Origen" - GroupBox2.Text = "Opciones" - GroupBox3.Text = "Destino" - OpenFileDialog1.Title = "Especifique el archivo de imagen de origen que desea convertir" - SaveFileDialog1.Title = "¿Dónde se almacenará el archivo de imagen de destino?" - Case "FRA" - Text = "Convertir l'image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier de l'image source :" - Label3.Text = "Format de l'image convertie :" - Label5.Text = "Fichier de l'image de destination :" - Label7.Text = "Index :" - LinkLabel1.Text = "Quel format dois-je choisir ?" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView1.Columns(2).Text = "Description de l'image" - ListView1.Columns(3).Text = "Version de l'image" - GroupBox1.Text = "Source" - GroupBox2.Text = "Paramètres" - GroupBox3.Text = "Destination" - OpenFileDialog1.Title = "Spécifiez le fichier de l'image source que vous souhaitez convertir" - SaveFileDialog1.Title = "Où l'image cible sera-t-elle stockée ?" - Case "PTB", "PTG" - Text = "Converter imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de origem:" - Label3.Text = "Formato da imagem convertida:" - Label5.Text = "Ficheiro de imagem de destino:" - Label7.Text = "Índice:" - LinkLabel1.Text = "Qual o formato que devo escolher?" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView1.Columns(2).Text = "Descrição da imagem" - ListView1.Columns(3).Text = "Versão da imagem" - GroupBox1.Text = "Fonte" - GroupBox2.Text = "Opções" - GroupBox3.Text = "Destino" - OpenFileDialog1.Title = "Especifique o ficheiro de imagem de origem que pretende converter" - SaveFileDialog1.Title = "Onde será guardada a imagem de destino?" - Case "ITA" - Text = "Convertire immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di origine:" - Label3.Text = "Formato dell'immagine convertita:" - Label5.Text = "File immagine di destinazione:" - Label7.Text = "Indice:" - LinkLabel1.Text = "Quale formato devo scegliere?" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView1.Columns(2).Text = "Descrizione dell'immagine" - ListView1.Columns(3).Text = "Versione dell'immagine" - GroupBox1.Text = "Sorgente" - GroupBox2.Text = "Opzioni" - GroupBox3.Text = "Destinazione" - OpenFileDialog1.Title = "Specificare il file immagine di origine che si desidera convertire" - SaveFileDialog1.Title = "Dove verrà memorizzata l'immagine di destinazione?" - End Select - Case 1 - Text = "Convert image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image file:" - Label3.Text = "Format of converted image:" - Label5.Text = "Destination image file:" - Label7.Text = "Index:" - LinkLabel1.Text = "Which format do I choose?" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView1.Columns(2).Text = "Image description" - ListView1.Columns(3).Text = "Image version" - GroupBox1.Text = "Source" - GroupBox2.Text = "Options" - GroupBox3.Text = "Destination" - OpenFileDialog1.Title = "Specify the source image file you want to convert" - SaveFileDialog1.Title = "Where will the target image be stored?" - Case 2 - Text = "Convertir imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de imagen de origen:" - Label3.Text = "Formato de imagen convertida:" - Label5.Text = "Archivo de imagen de destino:" - Label7.Text = "Índice:" - LinkLabel1.Text = "¿Qué formato escojo?" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView1.Columns(2).Text = "Descripción de imagen" - ListView1.Columns(3).Text = "Versión de imagen" - GroupBox1.Text = "Origen" - GroupBox2.Text = "Opciones" - GroupBox3.Text = "Destino" - OpenFileDialog1.Title = "Especifique el archivo de imagen de origen que desea convertir" - SaveFileDialog1.Title = "¿Dónde se almacenará el archivo de imagen de destino?" - Case 3 - Text = "Convertir l'image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier de l'image source :" - Label3.Text = "Format de l'image convertie :" - Label5.Text = "Fichier de l'image de destination :" - Label7.Text = "Index :" - LinkLabel1.Text = "Quel format dois-je choisir ?" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView1.Columns(2).Text = "Description de l'image" - ListView1.Columns(3).Text = "Version de l'image" - GroupBox1.Text = "Source" - GroupBox2.Text = "Paramètres" - GroupBox3.Text = "Destination" - OpenFileDialog1.Title = "Spécifiez le fichier de l'image source que vous souhaitez convertir" - SaveFileDialog1.Title = "Où l'image cible sera-t-elle stockée ?" - Case 4 - Text = "Converter imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de origem:" - Label3.Text = "Formato da imagem convertida:" - Label5.Text = "Ficheiro de imagem de destino:" - Label7.Text = "Índice:" - LinkLabel1.Text = "Qual o formato que devo escolher?" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView1.Columns(2).Text = "Descrição da imagem" - ListView1.Columns(3).Text = "Versão da imagem" - GroupBox1.Text = "Fonte" - GroupBox2.Text = "Opções" - GroupBox3.Text = "Destino" - OpenFileDialog1.Title = "Especifique o ficheiro de imagem de origem que pretende converter" - SaveFileDialog1.Title = "Onde será guardada a imagem de destino?" - Case 5 - Text = "Convertire immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di origine:" - Label3.Text = "Formato dell'immagine convertita:" - Label5.Text = "File immagine di destinazione:" - Label7.Text = "Indice:" - LinkLabel1.Text = "Quale formato devo scegliere?" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView1.Columns(2).Text = "Descrizione dell'immagine" - ListView1.Columns(3).Text = "Versione dell'immagine" - GroupBox1.Text = "Sorgente" - GroupBox2.Text = "Opzioni" - GroupBox3.Text = "Destinazione" - OpenFileDialog1.Title = "Specificare il file immagine di origine che si desidera convertire" - SaveFileDialog1.Title = "Dove verrà memorizzata l'immagine di destinazione?" - End Select + Text = LocalizationService.ForSection("Img.WIM")("ConvertImage.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("Img.WIM").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("Img.WIM")("SourceImageFile.Label") + Label3.Text = LocalizationService.ForSection("Img.WIM")("Format.Converted.Image.Label") + Label5.Text = LocalizationService.ForSection("Img.WIM")("Destination.ImageFile.Label") + Label7.Text = LocalizationService.ForSection("Img.WIM")("Index.Label") + LinkLabel1.Text = LocalizationService.ForSection("Img.WIM")("Format.Ichoose.Link") + Button1.Text = LocalizationService.ForSection("Img.WIM")("Browse.Button") + Button2.Text = LocalizationService.ForSection("Img.WIM")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("Img.WIM")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("Img.WIM")("Cancel.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("Img.WIM")("Index.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("Img.WIM")("ImageName.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("Img.WIM")("ImageDescription.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("Img.WIM")("ImageVersion.Column") + GroupBox1.Text = LocalizationService.ForSection("Img.WIM")("Source.Group") + GroupBox2.Text = LocalizationService.ForSection("Img.WIM")("Options.Group") + GroupBox3.Text = LocalizationService.ForSection("Img.WIM")("Destination.Group") + OpenFileDialog1.Title = LocalizationService.ForSection("Img.WIM")("Source.ImageFile.Title") + SaveFileDialog1.Title = LocalizationService.ForSection("Img.WIM")("Target.Image.Stored.Title") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -292,7 +97,7 @@ Public Class ImgWim2Esd End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged - SaveFileDialog1.Filter = UCase(ComboBox1.SelectedItem) & " files|*." & LCase(ComboBox1.SelectedItem) + SaveFileDialog1.Filter = LocalizationService.ForSection("Panels.ImageOps.WimToEsd")("Files.Filter") End Sub Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged @@ -310,7 +115,7 @@ Public Class ImgWim2Esd ListView1.Items.Add(New ListViewItem(New String() {imgInfo.ImageIndex, imgInfo.ImageName, imgInfo.ImageDescription, imgInfo.ProductVersion.ToString()})) Next Catch ex As Exception - MsgBox("Could not get index information for this image file", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("ImageConversion.WimToEsd")("Get.Index.Image.Label"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally DynaLog.LogMessage("Shutting down API...") Try diff --git a/Panels/Img_Ops/Drivers/AddDrivers.Designer.vb b/Panels/Img_Ops/Drivers/AddDrivers.Designer.vb index 1419e5b9d..8bd9683fc 100644 --- a/Panels/Img_Ops/Drivers/AddDrivers.Designer.vb +++ b/Panels/Img_Ops/Drivers/AddDrivers.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddDrivers Inherits System.Windows.Forms.Form @@ -76,7 +76,7 @@ Partial Class AddDrivers Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.AddDrivers")("Ok.Button") ' 'Cancel_Button ' @@ -87,7 +87,7 @@ Partial Class AddDrivers Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.AddDrivers")("Cancel.Button") ' 'GroupBox1 ' @@ -99,7 +99,7 @@ Partial Class AddDrivers Me.GroupBox1.Size = New System.Drawing.Size(548, 360) Me.GroupBox1.TabIndex = 7 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Driver files" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.AddDrivers")("DriverFiles.Group") ' 'Label2 ' @@ -109,8 +109,7 @@ Partial Class AddDrivers Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(536, 32) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Please specify the drivers to add by using the buttons below or by dropping them " & _ - "to the list below:" + Me.Label2.Text = LocalizationService.ForSection("Designer.AddDrivers")("Drivers.Required.Message") ' 'TableLayoutPanel2 ' @@ -141,7 +140,7 @@ Partial Class AddDrivers Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(128, 22) Me.Button4.TabIndex = 3 - Me.Button4.Text = "Remove selected entry" + Me.Button4.Text = LocalizationService.ForSection("Designer.AddDrivers")("Remove.Selected.Entry.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Button3 @@ -153,7 +152,7 @@ Partial Class AddDrivers Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(128, 22) Me.Button3.TabIndex = 2 - Me.Button3.Text = "Remove all entries" + Me.Button3.Text = LocalizationService.ForSection("Designer.AddDrivers")("Remove.Entries.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button2 @@ -164,7 +163,7 @@ Partial Class AddDrivers Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(128, 22) Me.Button2.TabIndex = 1 - Me.Button2.Text = "Add folder..." + Me.Button2.Text = LocalizationService.ForSection("Designer.AddDrivers")("AddFolder.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -175,7 +174,7 @@ Partial Class AddDrivers Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(128, 22) Me.Button1.TabIndex = 0 - Me.Button1.Text = "Add file..." + Me.Button1.Text = LocalizationService.ForSection("Designer.AddDrivers")("AddFile.Button") Me.Button1.UseVisualStyleBackColor = True ' 'ListView1 @@ -191,12 +190,12 @@ Partial Class AddDrivers ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "File/Folder" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.AddDrivers")("FileFolder.Column") Me.ColumnHeader1.Width = 350 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Type" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.AddDrivers")("Type.Column") Me.ColumnHeader2.Width = 154 ' 'GroupBox2 @@ -208,7 +207,7 @@ Partial Class AddDrivers Me.GroupBox2.Size = New System.Drawing.Size(430, 460) Me.GroupBox2.TabIndex = 7 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Driver folders" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.AddDrivers")("DriverFolders.Group") ' 'Panel1 ' @@ -238,8 +237,7 @@ Partial Class AddDrivers Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(417, 42) Me.Label3.TabIndex = 1 - Me.Label3.Text = "You can let the program scan the driver folders present on the list below recursi" & _ - "vely and add them as well. To do so, tick the entries you'd like to be scanned:" + Me.Label3.Text = LocalizationService.ForSection("Designer.AddDrivers")("Scan.Driver.Message") ' 'GroupBox3 ' @@ -250,7 +248,7 @@ Partial Class AddDrivers Me.GroupBox3.Size = New System.Drawing.Size(548, 94) Me.GroupBox3.TabIndex = 7 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Options" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.AddDrivers")("Options.Group") ' 'CheckBox2 ' @@ -259,7 +257,7 @@ Partial Class AddDrivers Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(190, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Commit image after adding drivers" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.AddDrivers")("CommitImage.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -269,18 +267,17 @@ Partial Class AddDrivers Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(202, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Force installation of unsigned drivers" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.AddDrivers")("Force.Install.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Driver files|*.inf" - Me.OpenFileDialog1.Title = "Specify the driver package to add" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.AddDrivers")("Driver.Files.Inf.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.AddDrivers")("DriverPackage.Title") ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Specify the folder containing driver packages. You will then be able to specify i" & _ - "f it needs to be scanned recursively:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.AddDrivers")("DriverFolder.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'ImageTaskHeader1 @@ -316,7 +313,7 @@ Partial Class AddDrivers Me.Name = "AddDrivers" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add drivers" + Me.Text = LocalizationService.ForSection("Designer.AddDrivers")("AddDrivers.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.TableLayoutPanel2.ResumeLayout(False) diff --git a/Panels/Img_Ops/Drivers/AddDrivers.vb b/Panels/Img_Ops/Drivers/AddDrivers.vb index c85babffe..aeb843c22 100644 --- a/Panels/Img_Ops/Drivers/AddDrivers.vb +++ b/Panels/Img_Ops/Drivers/AddDrivers.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -51,31 +51,7 @@ Public Class AddDrivers End If Else DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("There are no selected driver packages to install. Please specify the driver packages you'd like to install and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("No hay paquetes de controladores seleccionados para instalar. Especifique los paquetes de controladores que le gustaría instalar e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Il n'y a pas de pilotes sélectionnés à installer. Veuillez spécifier les paquets de pilotes que vous souhaitez installer et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Não existem pacotes de controladores seleccionados para instalar. Especifique os pacotes de controladores que gostaria de instalar e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Non sono stati selezionati pacchetti driver da installare. Specificare i pacchetti di driver che si desidera installare e riprovare", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("There are no selected driver packages to install. Please specify the driver packages you'd like to install and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("No hay paquetes de controladores seleccionados para instalar. Especifique los paquetes de controladores que le gustaría instalar e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Il n'y a pas de pilotes sélectionnés à installer. Veuillez spécifier les paquets de pilotes que vous souhaitez installer et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Não existem pacotes de controladores seleccionados para instalar. Especifique os pacotes de controladores que gostaria de instalar e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Non sono stati selezionati pacchetti driver da installare. Specificare i pacchetti di driver che si desidera installare e riprovare", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("AddDrivers.Validation")("DriverPackages.None.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.drvAdditionLastPkg = ListView1.Items(drvPkgCount - 1).SubItems(0).Text @@ -98,31 +74,7 @@ Public Class AddDrivers Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk DynaLog.LogMessage("Driver file specified: " & Quote & OpenFileDialog1.FileName & Quote) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "File"})) - Case "ESN" - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "Archivo"})) - Case "FRA" - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "Fichier"})) - Case "PTB", "PTG" - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "Ficheiro"})) - Case "ITA" - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "File"})) - End Select - Case 1 - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "File"})) - Case 2 - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "Archivo"})) - Case 3 - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "Fichier"})) - Case 4 - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "Ficheiro"})) - Case 5 - ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, "File"})) - End Select + ListView1.Items.Add(New ListViewItem(New String() {OpenFileDialog1.FileName, LocalizationService.ForSection("AddDrivers.FileOk")("File.Label")})) Button3.Enabled = ListView1.Items.Count > 0 End Sub @@ -133,89 +85,11 @@ Public Class AddDrivers If My.Computer.FileSystem.GetFiles(FolderBrowserDialog1.SelectedPath, FileIO.SearchOption.SearchAllSubDirectories, "*.inf").Count > 0 Then DynaLog.LogMessage("This folder has driver files. Asking user...") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The package specified is a folder. You can let DISM scan it recursively to add all drivers in it, or you can specify the drivers to add manually." & CrLf & CrLf & _ - "- To let DISM scan this folder recursively, click Yes" & CrLf & _ - "- To pick the drivers in this folder manually, click No" & CrLf & _ - "- To skip adding this folder, click Cancel" - Case "ESN" - msg = "El paquete especificado es una carpeta. Puede dejar que DISM la escanee de forma recursiva para añadir todos los controladores en ella, o puede especificar los controladores a añadir manualmente." & CrLf & CrLf & _ - "- Para dejar que DISM escanee esta carpeta de forma recursiva, haga clic en Sí" & CrLf & _ - "- Para escoger los controladores en esta carpeta manualmente, haga clic en No" & CrLf & _ - "- Para omitir la adición de esta carpeta, haga clic en Cancelar" - Case "FRA" - msg = "Le paquet de pilotes spécifié est un dossier. Vous pouvez laisser DISM l'analyser de manière récursive pour ajouter tous les pilotes qu'il contient, ou vous pouvez spécifier les pilotes à ajouter manuellement." & CrLf & CrLf & _ - "- Pour laisser DISM analyser ce dossier de manière récursive, cliquez sur Oui" & CrLf & _ - "- Pour sélectionner manuellement les pilotes de ce dossier, cliquez sur Non" & CrLf & _ - "- Pour ne pas ajouter ce dossier, cliquez sur Annuler" - Case "PTB", "PTG" - msg = "O pacote especificado é uma pasta. Pode deixar que o DISM a analise recursivamente para adicionar todos os controladores nela contidos, ou pode especificar os controladores a adicionar manualmente." & CrLf & CrLf & _ - "- Para permitir que o DISM verifique esta pasta recursivamente, clique em Sim" & CrLf & _ - "- Para escolher manualmente os controladores desta pasta, clique em Não" & CrLf & _ - "- Para não adicionar esta pasta, clique em Cancelar" - Case "ITA" - msg = "Il pacchetto specificato è una cartella. Si può lasciare che DISM la scansioni ricorsivamente per aggiungere tutti i driver in essa contenuti, oppure si possono specificare i driver da aggiungere manualmente." & CrLf & CrLf & _ - "- Per consentire a DISM di eseguire la scansione ricorsiva di questa cartella, fare clic su Sì" & CrLf & _ - "- Per scegliere manualmente i driver in questa cartella, fare clic su No" & CrLf & _ - "- Per non aggiungere questa cartella, fare clic su Annulla" - End Select - Case 1 - msg = "The package specified is a folder. You can let DISM scan it recursively to add all drivers in it, or you can specify the drivers to add manually." & CrLf & CrLf & _ - "- To let DISM scan this folder recursively, click Yes" & CrLf & _ - "- To pick the drivers in this folder manually, click No" & CrLf & _ - "- To skip adding this folder, click Cancel" - Case 2 - msg = "El paquete especificado es una carpeta. Puede dejar que DISM la escanee de forma recursiva para añadir todos los controladores en ella, o puede especificar los controladores a añadir manualmente." & CrLf & CrLf & _ - "- Para dejar que DISM escanee esta carpeta de forma recursiva, haga clic en Sí" & CrLf & _ - "- Para escoger los controladores en esta carpeta manualmente, haga clic en No" & CrLf & _ - "- Para omitir la adición de esta carpeta, haga clic en Cancelar" - Case 3 - msg = "Le paquet de pilotes spécifié est un dossier. Vous pouvez laisser DISM l'analyser de manière récursive pour ajouter tous les pilotes qu'il contient, ou vous pouvez spécifier les pilotes à ajouter manuellement." & CrLf & CrLf & _ - "- Pour laisser DISM analyser ce dossier de manière récursive, cliquez sur Oui" & CrLf & _ - "- Pour sélectionner manuellement les pilotes de ce dossier, cliquez sur Non" & CrLf & _ - "- Pour ne pas ajouter ce dossier, cliquez sur Annuler" - Case 4 - msg = "O pacote especificado é uma pasta. Pode deixar que o DISM a analise recursivamente para adicionar todos os controladores nela contidos, ou pode especificar os controladores a adicionar manualmente." & CrLf & CrLf & _ - "- Para permitir que o DISM verifique esta pasta recursivamente, clique em Sim" & CrLf & _ - "- Para escolher manualmente os controladores desta pasta, clique em Não" & CrLf & _ - "- Para não adicionar esta pasta, clique em Cancelar" - Case 5 - msg = "Il pacchetto specificato è una cartella. Si può lasciare che DISM la scansioni ricorsivamente per aggiungere tutti i driver in essa contenuti, oppure si possono specificare i driver da aggiungere manualmente." & CrLf & CrLf & _ - "- Per consentire a DISM di eseguire la scansione ricorsiva di questa cartella, fare clic su Sì" & CrLf & _ - "- Per scegliere manualmente i driver in questa cartella, fare clic su No" & CrLf & _ - "- Per non aggiungere questa cartella, fare clic su Annulla" - End Select + msg = LocalizationService.ForSection("AddDrivers.Actions")("Package.Folder.Message") Select Case MsgBox(msg, vbYesNoCancel + vbInformation, ImageTaskHeader1.ItemText) Case MsgBoxResult.Yes DynaLog.LogMessage("Adding folder to queue...") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Folder"})) - Case "ESN" - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Carpeta"})) - Case "FRA" - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Répertoire"})) - Case "PTB", "PTG" - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Pasta"})) - Case "ITA" - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Cartella"})) - End Select - Case 1 - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Folder"})) - Case 2 - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Carpeta"})) - Case 3 - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Répertoire"})) - Case 4 - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Pasta"})) - Case 5 - ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, "Cartella"})) - End Select + ListView1.Items.Add(New ListViewItem(New String() {FolderBrowserDialog1.SelectedPath, LocalizationService.ForSection("AddDrivers")("Folder.Label")})) CheckedListBox1.Items.Add(FolderBrowserDialog1.SelectedPath) CheckedListBox1.SetItemChecked(CheckedListBox1.Items.IndexOf(FolderBrowserDialog1.SelectedPath), True) Case MsgBoxResult.No @@ -228,31 +102,7 @@ Public Class AddDrivers End Select Else DynaLog.LogMessage("This folder does not have driver files.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("There are no driver packages in the specified folder", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("No hay paquetes de controladores en la carpeta espcificada", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Il n'y a pas de pilotes dans le répertoire spécifié.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Não existem pacotes de controladores na pasta especificada", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Non ci sono pacchetti driver nella cartella specificata", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("There are no driver packages in the specified folder", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("No hay paquetes de controladores en la carpeta espcificada", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Il n'y a pas de pilotes dans le répertoire spécifié.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Não existem pacotes de controladores na pasta especificada", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Non ci sono pacchetti driver nella cartella specificata", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("AddDrivers.Actions")("Packages.None.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) End If Cursor = Cursors.Arrow End If @@ -294,211 +144,25 @@ Public Class AddDrivers If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Add drivers" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please specify the drivers to add by using the buttons below or by dropping them to the list below:" - Label3.Text = "You can let the program scan the driver folders present on the list below recursively and add them as well. To do so, tick the entries you'd like to be scanned:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Add file..." - Button2.Text = "Add folder..." - Button3.Text = "Remove all entries" - Button4.Text = "Remove selected entry" - CheckBox1.Text = "Force installation of unsigned drivers" - CheckBox2.Text = "Commit image after adding drivers" - GroupBox1.Text = "Driver files" - GroupBox2.Text = "Driver folders" - GroupBox3.Text = "Options" - ListView1.Columns(0).Text = "File/Folder" - ListView1.Columns(1).Text = "Type" - OpenFileDialog1.Title = "Specify the driver package to add" - FolderBrowserDialog1.Description = "Specify the folder containing driver packages. You will then be able to specify if it needs to be scanned recursively:" - Case "ESN" - Text = "Añadir controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique los controladores a añadir usando los botones de abajo o colocándolos en la lista de abajo:" - Label3.Text = "Puede dejar que el programa escanee las carpetas de controladores presentes en la lista de abajo de forma recursiva y añadirlos también. Para hacerlo, marque las entradas que le gustaría que fuesen escaneadas:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Añadir archivo..." - Button2.Text = "Añadir carpeta..." - Button3.Text = "Eliminar todas las entradas" - Button4.Text = "Eliminar entrada seleccionada" - CheckBox1.Text = "Forzar instalación de controladores no firmados" - CheckBox2.Text = "Guardar imagen tras añadir controladores" - GroupBox1.Text = "Archivos de controladores" - GroupBox2.Text = "Carpetas de controladores" - GroupBox3.Text = "Opciones" - ListView1.Columns(0).Text = "Archivo/Carpeta" - ListView1.Columns(1).Text = "Tipo" - OpenFileDialog1.Title = "Especifique el paquete de controlador a añadir" - FolderBrowserDialog1.Description = "Especifique la carpeta que contiene paquetes de controladores. Luego podrá especificar si necesita ser escaneada de forma recursiva:" - Case "FRA" - Text = "Ajouter des pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez spécifier les pilotes à ajouter en utilisant les boutons ci-dessous ou en les déposant dans la liste ci-dessous :" - Label3.Text = "Vous pouvez laisser le programme analyser les répertoires de pilotes présents dans la liste ci-dessous de manière récursive et les ajouter également. Pour ce faire, cochez les entrées que vous souhaitez voir analysées :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Ajouter un fichier..." - Button2.Text = "Ajouter un répertoire..." - Button3.Text = "Supprimer toutes les entrées" - Button4.Text = "Supprimer l'entrée sélectionnée" - CheckBox1.Text = "Forcer l'installation des pilotes non signés" - CheckBox2.Text = "Sauvegarder l'image après l'ajout des pilotes" - GroupBox1.Text = "Fichiers des pilotes" - GroupBox2.Text = "Répertoires des pilotes" - GroupBox3.Text = "Paramètres" - ListView1.Columns(0).Text = "Fichier/Répertoire" - ListView1.Columns(1).Text = "Type" - OpenFileDialog1.Title = "Spécifier le paquet de pilotes à ajouter" - FolderBrowserDialog1.Description = "Indiquez le répertoire contenant les pilotes. Vous pourrez ensuite préciser s'il doit être analysé de manière récursive :" - Case "PTB", "PTG" - Text = "Adicionar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique os controladores a adicionar utilizando os botões abaixo ou colocando-os na lista abaixo:" - Label3.Text = "Pode deixar o programa procurar recursivamente as pastas de controladores presentes na lista abaixo e adicioná-las também. Para o fazer, assinale as entradas que pretende que sejam verificadas:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Adicionar ficheiro..." - Button2.Text = "Adicionar pasta..." - Button3.Text = "Remover todos os registos" - Button4.Text = "Remover entrada selecionada" - CheckBox1.Text = "Forçar a instalação de controladores não assinados" - CheckBox2.Text = "Confirmar imagem após adicionar controladores" - GroupBox1.Text = "Ficheiros de controladores" - GroupBox2.Text = "Pastas de controladores" - GroupBox3.Text = "Opções" - ListView1.Columns(0).Text = "Ficheiro/Pasta" - ListView1.Columns(1).Text = "Tipo" - OpenFileDialog1.Title = "Especificar o pacote de controladores a adicionar" - FolderBrowserDialog1.Description = "Especificar a pasta que contém os pacotes de controladores. Poderá então especificar se é necessário efetuar uma verificação recursiva:" - Case "ITA" - Text = "Aggiungi driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare i driver da aggiungere utilizzando i pulsanti sottostanti o rilasciandoli nell'elenco sottostante:" - Label3.Text = "È possibile lasciare che il programma esegua una scansione ricorsiva delle cartelle dei driver presenti nell'elenco sottostante e aggiungerli. A tale scopo, selezionare le voci che si desidera sottoporre a scansione:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Aggiungi file..." - Button2.Text = "Aggiungi cartella..." - Button3.Text = "Rimuovi tutte le voci" - Button4.Text = "Rimuovi la voce selezionata" - CheckBox1.Text = "Forza l'installazione dei driver non firmati" - CheckBox2.Text = "Applica l'immagine dopo l'aggiunta dei driver" - GroupBox1.Text = "File di driver" - GroupBox2.Text = "Cartelle dei driver" - GroupBox3.Text = "Opzioni" - ListView1.Columns(0).Text = "File/Cartella" - ListView1.Columns(1).Text = "Tipo" - OpenFileDialog1.Title = "Specificare il pacchetto driver da aggiungere" - FolderBrowserDialog1.Description = "Specificare la cartella contenente i pacchetti di driver. Sarà quindi possibile specificare se è necessario eseguire una scansione ricorsiva:" - End Select - Case 1 - Text = "Add drivers" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please specify the drivers to add by using the buttons below or by dropping them to the list below:" - Label3.Text = "You can let the program scan the driver folders present on the list below recursively and add them as well. To do so, tick the entries you'd like to be scanned:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Add file..." - Button2.Text = "Add folder..." - Button3.Text = "Remove all entries" - Button4.Text = "Remove selected entry" - CheckBox1.Text = "Force installation of unsigned drivers" - CheckBox2.Text = "Commit image after adding drivers" - GroupBox1.Text = "Driver files" - GroupBox2.Text = "Driver folders" - GroupBox3.Text = "Options" - ListView1.Columns(0).Text = "File/Folder" - ListView1.Columns(1).Text = "Type" - OpenFileDialog1.Title = "Specify the driver package to add" - FolderBrowserDialog1.Description = "Specify the folder containing driver packages. You will then be able to specify if it needs to be scanned recursively:" - Case 2 - Text = "Añadir controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique los controladores a añadir usando los botones de abajo o colocándolos en la lista de abajo:" - Label3.Text = "Puede dejar que el programa escanee las carpetas de controladores presentes en la lista de abajo de forma recursiva y añadirlos también. Para hacerlo, marque las entradas que le gustaría que fuesen escaneadas:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Añadir archivo..." - Button2.Text = "Añadir carpeta..." - Button3.Text = "Eliminar todas las entradas" - Button4.Text = "Eliminar entrada seleccionada" - CheckBox1.Text = "Forzar instalación de controladores no firmados" - CheckBox2.Text = "Guardar imagen tras añadir controladores" - GroupBox1.Text = "Archivos de controladores" - GroupBox2.Text = "Carpetas de controladores" - GroupBox3.Text = "Opciones" - ListView1.Columns(0).Text = "Archivo/Carpeta" - ListView1.Columns(1).Text = "Tipo" - OpenFileDialog1.Title = "Especifique el paquete de controlador a añadir" - FolderBrowserDialog1.Description = "Especifique la carpeta que contiene paquetes de controladores. Luego podrá especificar si necesita ser escaneada de forma recursiva:" - Case 3 - Text = "Ajouter des pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez spécifier les pilotes à ajouter en utilisant les boutons ci-dessous ou en les déposant dans la liste ci-dessous :" - Label3.Text = "Vous pouvez laisser le programme analyser les répertoires de pilotes présents dans la liste ci-dessous de manière récursive et les ajouter également. Pour ce faire, cochez les entrées que vous souhaitez voir analysées :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Ajouter un fichier..." - Button2.Text = "Ajouter un répertoire..." - Button3.Text = "Supprimer toutes les entrées" - Button4.Text = "Supprimer l'entrée sélectionnée" - CheckBox1.Text = "Forcer l'installation des pilotes non signés" - CheckBox2.Text = "Sauvegarder l'image après l'ajout des pilotes" - GroupBox1.Text = "Fichiers des pilotes" - GroupBox2.Text = "Répertoires des pilotes" - GroupBox3.Text = "Paramètres" - ListView1.Columns(0).Text = "Fichier/Répertoire" - ListView1.Columns(1).Text = "Type" - OpenFileDialog1.Title = "Spécifier le paquet de pilotes à ajouter" - FolderBrowserDialog1.Description = "Indiquez le répertoire contenant les pilotes. Vous pourrez ensuite préciser s'il doit être analysé de manière récursive :" - Case 4 - Text = "Adicionar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique os controladores a adicionar utilizando os botões abaixo ou colocando-os na lista abaixo:" - Label3.Text = "Pode deixar o programa procurar recursivamente as pastas de controladores presentes na lista abaixo e adicioná-las também. Para o fazer, assinale as entradas que pretende que sejam verificadas:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Adicionar ficheiro..." - Button2.Text = "Adicionar pasta..." - Button3.Text = "Remover todos os registos" - Button4.Text = "Remover entrada selecionada" - CheckBox1.Text = "Forçar a instalação de controladores não assinados" - CheckBox2.Text = "Confirmar imagem após adicionar controladores" - GroupBox1.Text = "Ficheiros de controladores" - GroupBox2.Text = "Pastas de controladores" - GroupBox3.Text = "Opções" - ListView1.Columns(0).Text = "Ficheiro/Pasta" - ListView1.Columns(1).Text = "Tipo" - OpenFileDialog1.Title = "Especificar o pacote de controladores a adicionar" - FolderBrowserDialog1.Description = "Especificar a pasta que contém os pacotes de controladores. Poderá então especificar se é necessário efetuar uma verificação recursiva:" - Case 5 - Text = "Aggiungi driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare i driver da aggiungere utilizzando i pulsanti sottostanti o rilasciandoli nell'elenco sottostante:" - Label3.Text = "È possibile lasciare che il programma esegua una scansione ricorsiva delle cartelle dei driver presenti nell'elenco sottostante e aggiungerli. A tale scopo, selezionare le voci che si desidera sottoporre a scansione:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Aggiungi file..." - Button2.Text = "Aggiungi cartella..." - Button3.Text = "Rimuovi tutte le voci" - Button4.Text = "Rimuovi la voce selezionata" - CheckBox1.Text = "Forza l'installazione dei driver non firmati" - CheckBox2.Text = "Applica l'immagine dopo l'aggiunta dei driver" - GroupBox1.Text = "File di driver" - GroupBox2.Text = "Cartelle dei driver" - GroupBox3.Text = "Opzioni" - ListView1.Columns(0).Text = "File/Cartella" - ListView1.Columns(1).Text = "Tipo" - OpenFileDialog1.Title = "Specificare il pacchetto driver da aggiungere" - FolderBrowserDialog1.Description = "Specificare la cartella contenente i pacchetti di driver. Sarà quindi possibile specificare se è necessario eseguire una scansione ricorsiva:" - End Select + Text = LocalizationService.ForSection("AddDrivers")("Title.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("AddDrivers").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("AddDrivers")("Drivers.Required.Message") + Label3.Text = LocalizationService.ForSection("AddDrivers")("Scan.Driver.Message") + OK_Button.Text = LocalizationService.ForSection("AddDrivers")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("AddDrivers")("Cancel.Button") + Button1.Text = LocalizationService.ForSection("AddDrivers")("AddFile.Button") + Button2.Text = LocalizationService.ForSection("AddDrivers")("AddFolder.Button") + Button3.Text = LocalizationService.ForSection("AddDrivers")("Remove.Entries.Button") + Button4.Text = LocalizationService.ForSection("AddDrivers")("Remove.Selected.Entry.Button") + CheckBox1.Text = LocalizationService.ForSection("AddDrivers")("Force.Install.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("AddDrivers")("CommitImage.CheckBox") + GroupBox1.Text = LocalizationService.ForSection("AddDrivers")("DriverFiles.Group") + GroupBox2.Text = LocalizationService.ForSection("AddDrivers")("DriverFolders.Group") + GroupBox3.Text = LocalizationService.ForSection("AddDrivers")("Options.Group") + ListView1.Columns(0).Text = LocalizationService.ForSection("AddDrivers")("FileFolder.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("AddDrivers")("Type.Column") + OpenFileDialog1.Title = LocalizationService.ForSection("AddDrivers")("DriverPackage.Title") + FolderBrowserDialog1.Description = LocalizationService.ForSection("AddDrivers")("DriverFolder.Description") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -533,89 +197,11 @@ Public Class AddDrivers If (File.GetAttributes(PkgFile) And FileAttributes.Directory) = FileAttributes.Directory Then DynaLog.LogMessage("The specified item is a folder. Asking user...") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The package specified is a folder. You can let DISM scan it recursively to add all drivers in it, or you can specify the drivers to add manually." & CrLf & CrLf & _ - "- To let DISM scan this folder recursively, click Yes" & CrLf & _ - "- To pick the drivers in this folder manually, click No" & CrLf & _ - "- To skip adding this folder, click Cancel" - Case "ESN" - msg = "El paquete especificado es una carpeta. Puede dejar que DISM la escanee de forma recursiva para añadir todos los controladores en ella, o puede especificar los controladores a añadir manualmente." & CrLf & CrLf & _ - "- Para dejar que DISM escanee esta carpeta de forma recursiva, haga clic en Sí" & CrLf & _ - "- Para escoger los controladores en esta carpeta manualmente, haga clic en No" & CrLf & _ - "- Para omitir la adición de esta carpeta, haga clic en Cancelar" - Case "FRA" - msg = "Le paquet de pilotes spécifié est un dossier. Vous pouvez laisser DISM l'analyser de manière récursive pour ajouter tous les pilotes qu'il contient, ou vous pouvez spécifier les pilotes à ajouter manuellement." & CrLf & CrLf & _ - "- Pour laisser DISM analyser ce dossier de manière récursive, cliquez sur Oui" & CrLf & _ - "- Pour sélectionner manuellement les pilotes de ce dossier, cliquez sur Non" & CrLf & _ - "- Pour ne pas ajouter ce dossier, cliquez sur Annuler" - Case "PTB", "PTG" - msg = "O pacote especificado é uma pasta. Pode deixar que o DISM a analise recursivamente para adicionar todos os controladores nela contidos, ou pode especificar os controladores a adicionar manualmente." & CrLf & CrLf & _ - "- Para permitir que o DISM verifique esta pasta recursivamente, clique em Sim" & CrLf & _ - "- Para escolher manualmente os controladores desta pasta, clique em Não" & CrLf & _ - "- Para não adicionar esta pasta, clique em Cancelar" - Case "ITA" - msg = "Il pacchetto specificato è una cartella. Si può lasciare che DISM la scansioni ricorsivamente per aggiungere tutti i driver in essa contenuti, oppure si possono specificare i driver da aggiungere manualmente." & CrLf & CrLf & _ - "- Per consentire a DISM di eseguire la scansione ricorsiva di questa cartella, fare clic su Sì" & CrLf & _ - "- Per scegliere manualmente i driver in questa cartella, fare clic su No" & CrLf & _ - "- Per non aggiungere questa cartella, fare clic su Annulla" - End Select - Case 1 - msg = "The package specified is a folder. You can let DISM scan it recursively to add all drivers in it, or you can specify the drivers to add manually." & CrLf & CrLf & _ - "- To let DISM scan this folder recursively, click Yes" & CrLf & _ - "- To pick the drivers in this folder manually, click No" & CrLf & _ - "- To skip adding this folder, click Cancel" - Case 2 - msg = "El paquete especificado es una carpeta. Puede dejar que DISM la escanee de forma recursiva para añadir todos los controladores en ella, o puede especificar los controladores a añadir manualmente." & CrLf & CrLf & _ - "- Para dejar que DISM escanee esta carpeta de forma recursiva, haga clic en Sí" & CrLf & _ - "- Para escoger los controladores en esta carpeta manualmente, haga clic en No" & CrLf & _ - "- Para omitir la adición de esta carpeta, haga clic en Cancelar" - Case 3 - msg = "Le paquet de pilotes spécifié est un dossier. Vous pouvez laisser DISM l'analyser de manière récursive pour ajouter tous les pilotes qu'il contient, ou vous pouvez spécifier les pilotes à ajouter manuellement." & CrLf & CrLf & _ - "- Pour laisser DISM analyser ce dossier de manière récursive, cliquez sur Oui" & CrLf & _ - "- Pour sélectionner manuellement les pilotes de ce dossier, cliquez sur Non" & CrLf & _ - "- Pour ne pas ajouter ce dossier, cliquez sur Annuler" - Case 4 - msg = "O pacote especificado é uma pasta. Pode deixar que o DISM a analise recursivamente para adicionar todos os controladores nela contidos, ou pode especificar os controladores a adicionar manualmente." & CrLf & CrLf & _ - "- Para permitir que o DISM verifique esta pasta recursivamente, clique em Sim" & CrLf & _ - "- Para escolher manualmente os controladores desta pasta, clique em Não" & CrLf & _ - "- Para não adicionar esta pasta, clique em Cancelar" - Case 5 - msg = "Il pacchetto specificato è una cartella. Si può lasciare che DISM la scansioni ricorsivamente per aggiungere tutti i driver in essa contenuti, oppure si possono specificare i driver da aggiungere manualmente." & CrLf & CrLf & _ - "- Per consentire a DISM di eseguire la scansione ricorsiva di questa cartella, fare clic su Sì" & CrLf & _ - "- Per scegliere manualmente i driver in questa cartella, fare clic su No" & CrLf & _ - "- Per non aggiungere questa cartella, fare clic su Annulla" - End Select + msg = LocalizationService.ForSection("AddDrivers.DragDrop")("Package.Folder.Message") Select Case MsgBox(msg, vbYesNoCancel + vbInformation, ImageTaskHeader1.ItemText) Case MsgBoxResult.Yes DynaLog.LogMessage("Adding folder to queue...") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Folder"})) - Case "ESN" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Carpeta"})) - Case "FRA" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Répertoire"})) - Case "PTB", "PTG" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Pasta"})) - Case "ITA" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Cartella"})) - End Select - Case 1 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Folder"})) - Case 2 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Carpeta"})) - Case 3 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Répertoire"})) - Case 4 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Pasta"})) - Case 5 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Cartella"})) - End Select + ListView1.Items.Add(New ListViewItem(New String() {PkgFile, LocalizationService.ForSection("AddDrivers.DragDrop")("Folder.Label")})) CheckedListBox1.Items.Add(PkgFile) CheckedListBox1.SetItemChecked(CheckedListBox1.Items.IndexOf(PkgFile), True) Case MsgBoxResult.No @@ -628,31 +214,7 @@ Public Class AddDrivers End Select Else DynaLog.LogMessage("The specified item is a file.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "File"})) - Case "ESN" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Archivo"})) - Case "FRA" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Fichier"})) - Case "PTB", "PTG" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Ficheiro"})) - Case "ITA" - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "File"})) - End Select - Case 1 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "File"})) - Case 2 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Archivo"})) - Case 3 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Fichier"})) - Case 4 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "Ficheiro"})) - Case 5 - ListView1.Items.Add(New ListViewItem(New String() {PkgFile, "File"})) - End Select + ListView1.Items.Add(New ListViewItem(New String() {PkgFile, LocalizationService.ForSection("AddDrivers.DragDrop")("File.Item")})) End If Next Button3.Enabled = ListView1.Items.Count > 0 diff --git a/Panels/Img_Ops/Drivers/DriverManualFilePicker.Designer.vb b/Panels/Img_Ops/Drivers/DriverManualFilePicker.Designer.vb index 609d5f105..aac4f69cb 100644 --- a/Panels/Img_Ops/Drivers/DriverManualFilePicker.Designer.vb +++ b/Panels/Img_Ops/Drivers/DriverManualFilePicker.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class DriverManualFilePicker Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class DriverManualFilePicker Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.DriverFilePicker")("Ok.Button") ' 'Cancel_Button ' @@ -69,7 +69,7 @@ Partial Class DriverManualFilePicker Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.DriverFilePicker")("Cancel.Button") ' 'Label1 ' @@ -80,8 +80,7 @@ Partial Class DriverManualFilePicker Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(599, 30) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Below is a recursive listing of all drivers in the directory you are specifying. " & _ - "From this list, pick the drivers you want to add and click OK." + Me.Label1.Text = LocalizationService.ForSection("Designer.DriverFilePicker")("RecursiveListing.Message") ' 'Button1 ' @@ -91,7 +90,7 @@ Partial Class DriverManualFilePicker Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Refresh" + Me.Button1.Text = LocalizationService.ForSection("Designer.DriverFilePicker")("Refresh.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label2 @@ -101,7 +100,7 @@ Partial Class DriverManualFilePicker Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(367, 29) Me.Label2.TabIndex = 4 - Me.Label2.Text = "Directory status" + Me.Label2.Text = LocalizationService.ForSection("Designer.DriverFilePicker")("DirectoryStatus.Label") ' 'ScanBW ' @@ -147,7 +146,7 @@ Partial Class DriverManualFilePicker Me.Name = "DriverManualFilePicker" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Choose driver files in directory" + Me.Text = LocalizationService.ForSection("Designer.DriverFilePicker")("Driver.Files.Choose.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Panel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/Drivers/DriverManualFilePicker.vb b/Panels/Img_Ops/Drivers/DriverManualFilePicker.vb index 42a6c52ff..861e755b2 100644 --- a/Panels/Img_Ops/Drivers/DriverManualFilePicker.vb +++ b/Panels/Img_Ops/Drivers/DriverManualFilePicker.vb @@ -1,11 +1,10 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Public Class DriverManualFilePicker Public DriverDir As String = "" - Dim Language As Integer Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click DynaLog.LogMessage("Items checked for addition: " & CheckedListBox1.CheckedItems.Count) @@ -18,31 +17,7 @@ Public Class DriverManualFilePicker If CheckedListBox1.Items.Count > 0 Then For Each Item In CheckedListBox1.CheckedItems If SelectedDrivers.Contains(Item) Then Continue For - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "File"})) - Case "ESN" - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "Archivo"})) - Case "FRA" - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "Fichier"})) - Case "PTB", "PTG" - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "Ficheiro"})) - Case "ITA" - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "File"})) - End Select - Case 1 - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "File"})) - Case 2 - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "Archivo"})) - Case 3 - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "Fichier"})) - Case 4 - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "Ficheiro"})) - Case 5 - AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, "File"})) - End Select + AddDrivers.ListView1.Items.Add(New ListViewItem(New String() {Item, LocalizationService.ForSection("DriverFilePicker.Validation")("File.Label")})) Next End If Me.DialogResult = System.Windows.Forms.DialogResult.OK @@ -55,74 +30,13 @@ Public Class DriverManualFilePicker End Sub Private Sub DriverManualFilePicker_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Language = MainForm.Language Control.CheckForIllegalCrossThreadCalls = False CheckedListBox1.Items.Clear() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Choose driver files in directory" - Label1.Text = "Below is a recursive listing of all drivers in the directory you are specifying. From this list, pick the drivers you want to add and click OK." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Refresh" - Case "ESN" - Text = "Escoja archivos de controladores en directorio" - Label1.Text = "Debajo se muestra un listado recursivo de todos los controladores en el directorio que está especificando. Escoja los controladores que quiera añadir de esta lista y haga clic en Aceptar." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Actualizar" - Case "FRA" - Text = "Choisir les fichiers du pilote dans le répertoire" - Label1.Text = "Vous trouverez ci-dessous une liste récursive de tous les pilotes dans le répertoire que vous avez spécifié. Dans cette liste, sélectionnez les pilotes que vous souhaitez ajouter et cliquez sur OK." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Rafraîchir" - Case "PTB", "PTG" - Text = "Escolher ficheiros de controladores no diretório" - Label1.Text = "Abaixo está uma lista recursiva de todos os controladores no diretório que está a especificar. A partir desta lista, escolha os controladores que pretende adicionar e clique em OK." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Atualizar" - Case "ITA" - Text = "Scegliere i file dei driver nella cartella" - Label1.Text = "Di seguito è riportato un elenco ricorsivo di tutti i driver presenti nella cartella specificata. Da questo elenco, scegliere i driver che si desidera aggiungere e fare clic su OK." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Aggiorna" - End Select - Case 1 - Text = "Choose driver files in directory" - Label1.Text = "Below is a recursive listing of all drivers in the directory you are specifying. From this list, pick the drivers you want to add and click OK." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Refresh" - Case 2 - Text = "Escoja archivos de controladores en directorio" - Label1.Text = "Debajo se muestra un listado recursivo de todos los controladores en el directorio que está especificando. Escoja los controladores que quiera añadir de esta lista y haga clic en Aceptar." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Actualizar" - Case 3 - Text = "Choisir les fichiers du pilote dans le répertoire" - Label1.Text = "Vous trouverez ci-dessous une liste récursive de tous les pilotes dans le répertoire que vous avez spécifié. Dans cette liste, sélectionnez les pilotes que vous souhaitez ajouter et cliquez sur OK." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Rafraîchir" - Case 4 - Text = "Escolher ficheiros de controladores no diretório" - Label1.Text = "Abaixo está uma lista recursiva de todos os controladores no diretório que está a especificar. A partir desta lista, escolha os controladores que pretende adicionar e clique em OK." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Atualizar" - Case 5 - Text = "Scegliere i file dei driver nella cartella" - Label1.Text = "Di seguito è riportato un elenco ricorsivo di tutti i driver presenti nella cartella specificata. Da questo elenco, scegliere i driver che si desidera aggiungere e fare clic su OK." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Aggiorna" - End Select + Text = LocalizationService.ForSection("Driver.Manual")("Driver.Files.Choose.Label") + Label1.Text = LocalizationService.ForSection("Driver.Manual")("RecursiveListing.Message") + OK_Button.Text = LocalizationService.ForSection("Driver.Manual")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("Driver.Manual")("Cancel.Button") + Button1.Text = LocalizationService.ForSection("Driver.Manual")("Refresh.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor CheckedListBox1.BackColor = CurrentTheme.SectionBackgroundColor @@ -133,120 +47,22 @@ Public Class DriverManualFilePicker If DriverDir <> "" And Directory.Exists(DriverDir) Then ScanBW.RunWorkerAsync() End Sub + Private Sub UpdateScanStatus() + Label2.Text = LocalizationService.ForSection("Driver.Manual.Scan").Format("Scanning.Driver.Dir.Label", CheckedListBox1.Items.Count) + End Sub + Private Sub ScanBW_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles ScanBW.DoWork DynaLog.LogMessage("Scanning directory " & Quote & DriverDir & Quote & "...") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Scanning directory..." & CrLf & _ - "Driver files found thus far: " & CheckedListBox1.Items.Count - Case "ESN" - Label2.Text = "Escaneando directorio..." & CrLf & _ - "Archivos de controladores encontrados por ahora: " & CheckedListBox1.Items.Count - Case "FRA" - Label2.Text = "Scannage du répertoire en cours..." & CrLf & _ - "Fichiers de pilotes trouvés jusqu'à présent : " & CheckedListBox1.Items.Count - Case "PTB", "PTG" - Label2.Text = "Pesquisar diretório..." & CrLf & _ - "Ficheiros de controladores encontrados até agora: " & CheckedListBox1.Items.Count - Case "ITA" - Label2.Text = "Scansione della cartella..." & CrLf & _ - "File di driver trovati finora: " & CheckedListBox1.Items.Count - End Select - Case 1 - Label2.Text = "Scanning directory..." & CrLf & _ - "Driver files found thus far: " & CheckedListBox1.Items.Count - Case 2 - Label2.Text = "Escaneando directorio..." & CrLf & _ - "Archivos de controladores encontrados por ahora: " & CheckedListBox1.Items.Count - Case 3 - Label2.Text = "Scannage du répertoire en cours..." & CrLf & _ - "Fichiers de pilotes trouvés jusqu'à présent : " & CheckedListBox1.Items.Count - Case 4 - Label2.Text = "Pesquisar diretório..." & CrLf & _ - "Ficheiros de controladores encontrados até agora: " & CheckedListBox1.Items.Count - Case 5 - Label2.Text = "Scansione della cartella..." & CrLf & _ - "File di driver trovati finora: " & CheckedListBox1.Items.Count - End Select + UpdateScanStatus() For Each DrvFile In Directory.GetFiles(DriverDir, "*.inf", SearchOption.AllDirectories) CheckedListBox1.Items.Add(DrvFile) - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Scanning directory..." & CrLf & _ - "Driver files found thus far: " & CheckedListBox1.Items.Count - Case "ESN" - Label2.Text = "Escaneando directorio..." & CrLf & _ - "Archivos de controladores encontrados por ahora: " & CheckedListBox1.Items.Count - Case "FRA" - Label2.Text = "Scannage du répertoire en cours..." & CrLf & _ - "Fichiers de pilotes trouvés jusqu'à présent : " & CheckedListBox1.Items.Count - Case "PTB", "PTG" - Label2.Text = "Pesquisar diretório..." & CrLf & _ - "Ficheiros de controladores encontrados até agora: " & CheckedListBox1.Items.Count - Case "ITA" - Label2.Text = "Scansione della cartella..." & CrLf & _ - "File di driver trovati finora: " & CheckedListBox1.Items.Count - End Select - Case 1 - Label2.Text = "Scanning directory..." & CrLf & _ - "Driver files found thus far: " & CheckedListBox1.Items.Count - Case 2 - Label2.Text = "Escaneando directorio..." & CrLf & _ - "Archivos de controladores encontrados por ahora: " & CheckedListBox1.Items.Count - Case 3 - Label2.Text = "Scannage du répertoire en cours..." & CrLf & _ - "Fichiers de pilotes trouvés jusqu'à présent : " & CheckedListBox1.Items.Count - Case 4 - Label2.Text = "Pesquisar diretório..." & CrLf & _ - "Ficheiros de controladores encontrados até agora: " & CheckedListBox1.Items.Count - Case 5 - Label2.Text = "Scansione della cartella..." & CrLf & _ - "File di driver trovati finora: " & CheckedListBox1.Items.Count - End Select + UpdateScanStatus() Next DynaLog.LogMessage("Items detected in directory: " & CheckedListBox1.Items.Count) End Sub Private Sub ScanBW_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles ScanBW.RunWorkerCompleted - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Directory scan complete." & CrLf & _ - "Driver files found: " & CheckedListBox1.Items.Count - Case "ESN" - Label2.Text = "Escaneo del directorio completado." & CrLf & _ - "Archivos de controladores encontrados: " & CheckedListBox1.Items.Count - Case "FRA" - Label2.Text = "Scannage du répertoire terminé." & CrLf & _ - "Fichiers de pilotes trouvés : " & CheckedListBox1.Items.Count - Case "PTB", "PTG" - Label2.Text = "Pesquisa de diretório concluída." & CrLf & _ - "Ficheiros de controladores encontrados: " & CheckedListBox1.Items.Count - Case "ITA" - Label2.Text = "Scansione della directory completata." & CrLf & _ - "File driver trovati: " & CheckedListBox1.Items.Count - End Select - Case 1 - Label2.Text = "Directory scan complete." & CrLf & _ - "Driver files found: " & CheckedListBox1.Items.Count - Case 2 - Label2.Text = "Escaneo del directorio completado." & CrLf & _ - "Archivos de controladores encontrados: " & CheckedListBox1.Items.Count - Case 3 - Label2.Text = "Scannage du répertoire terminé." & CrLf & _ - "Fichiers de pilotes trouvés : " & CheckedListBox1.Items.Count - Case 4 - Label2.Text = "Pesquisa de diretório concluída." & CrLf & _ - "Ficheiros de controladores encontrados: " & CheckedListBox1.Items.Count - Case 5 - Label2.Text = "Scansione della directory completata." & CrLf & _ - "File driver trovati: " & CheckedListBox1.Items.Count - End Select + Label2.Text = LocalizationService.ForSection("Driver.Manual.Scan").Format("Dir.Complete.Driver.Label", CheckedListBox1.Items.Count) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click diff --git a/Panels/Img_Ops/Drivers/ExportDrivers.Designer.vb b/Panels/Img_Ops/Drivers/ExportDrivers.Designer.vb index 2d9bed2b7..020f890fa 100644 --- a/Panels/Img_Ops/Drivers/ExportDrivers.Designer.vb +++ b/Panels/Img_Ops/Drivers/ExportDrivers.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ExportDrivers Inherits System.Windows.Forms.Form @@ -66,7 +66,7 @@ Partial Class ExportDrivers Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ExportDrivers")("Ok.Button") ' 'Cancel_Button ' @@ -77,7 +77,7 @@ Partial Class ExportDrivers Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ExportDrivers")("Cancel.Button") ' 'Label2 ' @@ -86,7 +86,7 @@ Partial Class ExportDrivers Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(76, 13) Me.Label2.TabIndex = 6 - Me.Label2.Text = "Export target:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ExportDrivers")("ExportTarget.Label") ' 'TextBox1 ' @@ -102,12 +102,12 @@ Partial Class ExportDrivers Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 8 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ExportDrivers")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Please specify the path where the drivers will be exported to:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.ExportDrivers")("DriversPath.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'GroupBox1 @@ -120,7 +120,7 @@ Partial Class ExportDrivers Me.GroupBox1.Size = New System.Drawing.Size(600, 200) Me.GroupBox1.TabIndex = 9 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Driver Export Mode" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ExportDrivers")("Driver.Mode.Group") ' 'TableLayoutPanel2 ' @@ -147,7 +147,7 @@ Partial Class ExportDrivers Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(120, 29) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Class Name:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ExportDrivers")("ClassName.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label4 @@ -157,7 +157,7 @@ Partial Class ExportDrivers Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(120, 94) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Class Name Notes:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ExportDrivers")("Class.Name.Notes.Label") ' 'Label5 ' @@ -184,7 +184,7 @@ Partial Class ExportDrivers Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(373, 17) Me.RadioButton2.TabIndex = 0 - Me.RadioButton2.Text = "Export drivers with the following matching class name to the destination:" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.ExportDrivers")("Matching.Drivers.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -196,7 +196,7 @@ Partial Class ExportDrivers Me.RadioButton1.Size = New System.Drawing.Size(225, 17) Me.RadioButton1.TabIndex = 0 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Export all image drivers to the destination" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.ExportDrivers")("Image.Drivers.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'ImageTaskHeader1 @@ -233,7 +233,7 @@ Partial Class ExportDrivers Me.Name = "ExportDrivers" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Export drivers" + Me.Text = LocalizationService.ForSection("Designer.ExportDrivers")("ExportDrivers.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/Drivers/ExportDrivers.vb b/Panels/Img_Ops/Drivers/ExportDrivers.vb index 1d42601bd..2330b0cf9 100644 --- a/Panels/Img_Ops/Drivers/ExportDrivers.vb +++ b/Panels/Img_Ops/Drivers/ExportDrivers.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Dism @@ -8,58 +8,58 @@ Public Class ExportDrivers Private SelectedClass As String Private DriverClassInfoDictionary As New Dictionary(Of String, String) From { - {"AudioProcessingObject", "Includes Audio processing objects (APOs). For more info, see Windows Audio Processing Objects."}, - {"Battery", "Includes battery devices and UPS devices."}, - {"Biometric", "(Windows Server 2003 and later versions) Includes all biometric-based personal identification devices."}, - {"Bluetooth", "(Windows XP SP1 and later versions) Includes all Bluetooth devices."}, - {"Camera", "(Windows 10 version 1709 and later versions) Includes universal camera drivers."}, - {"CDROM", "Includes CD-ROM drives, including SCSI CD-ROM drives. By default, the system's CD-ROM class installer also installs a system-supplied CD audio driver and CD-ROM changer driver as Plug and Play filters."}, - {"DiskDrive", "Includes hard disk drives. See also the HDC and SCSIAdapter classes."}, - {"Display", "Includes video adapters. Drivers for this class include display drivers and video miniport drivers."}, - {"Extension", "(Windows 10 and later versions) Includes all devices requiring customizations. For more information, see Using an Extension INF File."}, - {"FDC", "Includes floppy disk drive controllers."}, - {"FloppyDisk", "Includes floppy disk drives."}, - {"HDC", "Includes hard disk controllers, including ATA/ATAPI controllers but not SCSI and RAID disk controllers."}, - {"HIDClass", "Includes interactive input devices that are operated by the system-supplied HID class driver. Includes USB devices that comply with the USB HID Standard and non-USB devices that use a HID minidriver. For more information, see HIDClass Device Setup Class. See also the Keyboard or Mouse classes."}, - {"Dot4", "Includes devices that control the operation of multifunction IEEE 1284.4 peripheral devices."}, - {"Dot4Print", "Includes Dot4 print functions. A Dot4 print function is a function on a Dot4 device and has a single child device, which is a member of the Printer device setup class."}, - {"61883", "Includes IEEE 1394 devices that support the IEC-61883 protocol device class. The 61883 component includes the 61883.sys protocol driver that transmits various audio and video data streams over the 1394 bus. These currently include standard/high/low quality DV, MPEG2, DSS, and Audio. The IEC-61883 specifications define these data streams."}, - {"AVC", "Includes IEEE 1394 devices that support the AVC protocol device class."}, - {"SBP2", "Includes IEEE 1394 devices that support the SBP2 protocol device class."}, - {"1394", "Includes 1394 host controllers connected on a PCI bus, but not 1394 peripherals. Drivers for this class are system-supplied."}, - {"Image", "Includes still-image capture devices, digital cameras, and scanners."}, - {"Infrared", "Includes infrared devices. Drivers for this class include Serial-IR and Fast-IR NDIS miniports, but see also the Network Adapter class for other NDIS network adapter miniports."}, - {"Keyboard", "Includes all keyboards. That is, it must also be specified in the (secondary) INF for an enumerated child HID keyboard device."}, - {"MediumChanger", "Includes SCSI media changer devices."}, - {"MTD", "Includes memory devices, such as flash memory cards."}, - {"Modem", "Includes modem devices. An INF file for a device of this class specifies the features and configuration of the device and stores this information in the registry. An INF file for a device of this class can also be used to install device drivers for a controllerless modem or a software modem. These devices split the functionality between the modem device and the device driver. For more information about modem INF files and Microsoft Windows Driver Model (WDM) modem devices, see Overview of Modem INF Files and Adding WDM Modem Support."}, - {"Monitor", "Includes display monitors. An INF for a device of this class installs no device drivers, but instead specifies the features of a particular monitor to be stored in the registry for use by drivers of video adapters. (Monitors are enumerated as the child devices of display adapters.)"}, - {"Mouse", "Includes all mouse devices and other kinds of pointing devices, such as trackballs. That is, this class must also be specified in the (secondary) INF for an enumerated child HID mouse device."}, - {"MultiFunction", "Includes combo cards, such as a PCMCIA modem and network card adapter. The driver for such a Plug and Play multifunction device is installed under this class and enumerates the modem and network card separately as its child devices."}, - {"Media", "Includes Audio and DVD multimedia devices, joystick ports, and full-motion video capture devices."}, - {"MultiPortSerial", "Includes intelligent multiport serial cards, but not peripheral devices that connect to its ports. It doesn't include unintelligent (16550-type) multiport serial controllers or single-port serial controllers (see the Ports class)."}, - {"Net", "Consists of network adapter drivers. These drivers must either call NdisMRegisterMiniportDriver or NetAdapterCreate. Drivers that don't use NDIS or NetAdapter should use a different setup class."}, - {"NetClient", "Includes network and/or print providers. NetClient components are deprecated in Windows 8.1, Windows Server 2012 R2, and later."}, - {"NetService", "Includes network services, such as redirectors and servers."}, - {"NetTrans", "Includes NDIS protocols CoNDIS stand-alone call managers, and CoNDIS clients, in addition to higher level drivers in transport stacks."}, - {"SecurityAccelerator", "Includes devices that accelerate secure socket layer (SSL) cryptographic processing."}, - {"PCMCIA", "Includes PCMCIA and CardBus host controllers, but not PCMCIA or CardBus peripherals. Drivers for this class are system-supplied."}, - {"Ports", "Includes serial and parallel port devices. See also the MultiportSerial class."}, - {"Printer", "Includes printers. As an IT admin, hit them with a baseball bat."}, - {"PnpPrinters", "Includes SCSI/1394-enumerated printers. Drivers for this class provide printer communication for a specific bus."}, - {"Processor", "Includes processor types."}, - {"SCSIAdapter", "Includes SCSI Host Bus Adapters (HBAs), disk-array, and NVMe controllers."}, - {"SecurityDevices", "Includes Trusted Platform Module chips. A TPM is a secure cryptoprocessor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. Any new manufactured device must implement and enable TPM 2.0 by default. For more information, see TPM Recommendations."}, - {"Sensor", "Includes sensor and location devices, such as GPS devices."}, - {"SmartCardReader", "Includes smart card readers."}, - {"SoftwareComponent", "Includes virtual child device to encapsulate software components. For more information, see Adding Software Components with an INF file."}, - {"Storage", "Storage disks utilizing a multi-queue storage stack."}, - {"Volume", "Includes storage volumes as defined by the system-supplied logical volume manager and class drivers that create device objects to represent storage volumes, such as the system disk class driver."}, - {"System", "Includes HALs, system buses, system bridges, the system ACPI driver, and the system volume manager driver."}, - {"TapeDrive", "Includes tape drives, including all tape miniclass drivers."}, - {"USBDevice", "USBDevice includes all USB devices that don't belong to another class. This class isn't used for USB host controllers and hubs; drivers for these devices are provided by the operating system and should use the USB class described in System-Defined Device Setup Classes Reserved for System Use."}, - {"WCEUSBS", "Includes Windows CE ActiveSync devices. The WCEUSBS setup class supports communication between a personal computer and a device that is compatible with the Windows CE ActiveSync driver (generally, PocketPC devices) over USB."}, - {"WPD", "Includes WPD devices."} + {"AudioProcessingObject", LocalizationService.ForSection("DriverFilter.Classes")("AudioProcessing.Message")}, + {"Battery", LocalizationService.ForSection("DriverFilter.Classes")("Battery.Devices.UPS.Label")}, + {"Biometric", LocalizationService.ForSection("DriverFilter.Classes")("Windows.Message")}, + {"Bluetooth", LocalizationService.ForSection("DriverFilter.Classes")("Windows.Label")}, + {"Camera", LocalizationService.ForSection("DriverFilter.Classes")("Camera.Message")}, + {"CDROM", LocalizationService.ForSection("DriverFilter.Classes")("Cd.Rom.Drives.Message")}, + {"DiskDrive", LocalizationService.ForSection("DriverFilter.Classes")("Hard.Disk.Drives.Label")}, + {"Display", LocalizationService.ForSection("DriverFilter.Classes")("VideoAdapters.Message")}, + {"Extension", LocalizationService.ForSection("DriverFilter.Classes")("Extension.Message")}, + {"FDC", LocalizationService.ForSection("DriverFilter.Classes")("Floppy.Disk.Drive.Label")}, + {"FloppyDisk", LocalizationService.ForSection("DriverFilter.Classes")("Floppy.Disk.Drives.Label")}, + {"HDC", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Hard.Message")}, + {"HIDClass", LocalizationService.ForSection("DriverFilter.Classes")("InputDevices.Message")}, + {"Dot4", LocalizationService.ForSection("DriverFilter.Classes")("ControlDevices.Message")}, + {"Dot4Print", LocalizationService.ForSection("DriverFilter.Classes")("Dot.Print.Functions.Message")}, + {"61883", LocalizationService.ForSection("DriverFilter.Classes")("Ieeedevices.Support.Message")}, + {"AVC", LocalizationService.ForSection("DriverFilter.Classes")("Ieeedevices.Support.Label")}, + {"SBP2", LocalizationService.ForSection("DriverFilter.Classes")("SBP2.Message")}, + {"1394", LocalizationService.ForSection("DriverFilter.Classes")("HostControllers.Message")}, + {"Image", LocalizationService.ForSection("DriverFilter.Classes")("Still.Image.Capture.Label")}, + {"Infrared", LocalizationService.ForSection("DriverFilter.Classes")("InfraredDevices.Message")}, + {"Keyboard", LocalizationService.ForSection("DriverFilter.Classes")("Keyboards.Message")}, + {"MediumChanger", LocalizationService.ForSection("DriverFilter.Classes")("ScsimediaChanger.Label")}, + {"MTD", LocalizationService.ForSection("DriverFilter.Classes")("Memory.Devices.Such.Label")}, + {"Modem", LocalizationService.ForSection("DriverFilter.Classes")("Modem.Devices.INF.Message")}, + {"Monitor", LocalizationService.ForSection("DriverFilter.Classes")("Display.Monitors.INF.Message")}, + {"Mouse", LocalizationService.ForSection("DriverFilter.Classes")("Mouse.Devices.Message")}, + {"MultiFunction", LocalizationService.ForSection("DriverFilter.Classes")("Combo.Cards.Such.Message")}, + {"Media", LocalizationService.ForSection("DriverFilter.Classes")("Audio.Dvdmultimedia.Message")}, + {"MultiPortSerial", LocalizationService.ForSection("DriverFilter.Classes")("MultiportSerial.Message")}, + {"Net", LocalizationService.ForSection("DriverFilter.Classes")("NetworkAdapter.Message")}, + {"NetClient", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Network.Message")}, + {"NetService", LocalizationService.ForSection("DriverFilter.Classes")("Network.Services.Such.Label")}, + {"NetTrans", LocalizationService.ForSection("DriverFilter.Classes")("NdisprotocolsCo.Message")}, + {"SecurityAccelerator", LocalizationService.ForSection("DriverFilter.Classes")("SecureDevices.Message")}, + {"PCMCIA", LocalizationService.ForSection("DriverFilter.Classes")("PcmciacardBus.Message")}, + {"Ports", LocalizationService.ForSection("DriverFilter.Classes")("Serial.Parallel.Port.Message")}, + {"Printer", LocalizationService.ForSection("DriverFilter.Classes")("Printers.Admin.Hit.Label")}, + {"PnpPrinters", LocalizationService.ForSection("DriverFilter.Classes")("Includes.SCSI.Message")}, + {"Processor", LocalizationService.ForSection("DriverFilter.Classes")("ProcessorTypes.Label")}, + {"SCSIAdapter", LocalizationService.ForSection("DriverFilter.Classes")("ScsihostBus.Message")}, + {"SecurityDevices", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Trusted.Message")}, + {"Sensor", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Sensor.Label")}, + {"SmartCardReader", LocalizationService.ForSection("DriverFilter.Classes")("Smart.Card.Readers.Label")}, + {"SoftwareComponent", LocalizationService.ForSection("DriverFilter.Classes")("Virtual.Child.Device.Message")}, + {"Storage", LocalizationService.ForSection("DriverFilter.Classes")("Storage.Disks.Label")}, + {"Volume", LocalizationService.ForSection("DriverFilter.Classes")("Includes.Storage.Message")}, + {"System", LocalizationService.ForSection("DriverFilter.Classes")("HalsSystem.Message")}, + {"TapeDrive", LocalizationService.ForSection("DriverFilter.Classes")("Tape.Drives.Including.Label")}, + {"USBDevice", LocalizationService.ForSection("DriverFilter.Classes")("Usbdevice.Includes.Message")}, + {"WCEUSBS", LocalizationService.ForSection("DriverFilter.Classes")("WindowsCeactive.Message")}, + {"WPD", LocalizationService.ForSection("DriverFilter.Classes")("Wpddevices.Label")} } Private ProvidedImageClassNames As New List(Of String) @@ -75,36 +75,12 @@ Public Class ExportDrivers Else DynaLog.LogMessage("Export target does not exist.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Please specify a target to export the drivers to and make sure that the specified target exists." - Case "ESN" - msg = "Especifique un destino al que exportar los controladores y asegúrese de que el destino especificado existe." - Case "FRA" - msg = "Veuillez spécifier une cible vers laquelle exporter les pilotes et assurez-vous que la cible spécifiée existe." - Case "PTB", "PTG" - msg = "Especifique um destino para o qual exportar os controladores e certifique-se de que o destino especificado existe." - Case "ITA" - msg = "Specificare una destinazione in cui esportare i driver e assicurarsi che la destinazione specificata esista" - End Select - Case 1 - msg = "Please specify a target to export the drivers to and make sure that the specified target exists." - Case 2 - msg = "Especifique un destino al que exportar los controladores y asegúrese de que el destino especificado existe." - Case 3 - msg = "Veuillez spécifier une cible vers laquelle exporter les pilotes et assurez-vous que la cible spécifiée existe." - Case 4 - msg = "Especifique um destino para o qual exportar os controladores e certifique-se de que o destino especificado existe." - Case 5 - msg = "Specificare una destinazione in cui esportare i driver e assicurarsi che la destinazione specificata esista" - End Select + msg = LocalizationService.ForSection("ExportDrivers.Validation")("Target.Required.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If If RadioButton2.Checked AndAlso ComboBox1.SelectedItem = "-----------------" Then - MessageBox.Show("This class name is not valid.", ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Stop) + MessageBox.Show(LocalizationService.ForSection("ImageOps.Drivers.Export")("Class.Name.Message"), ImageTaskHeader1.ItemText, MessageBoxButtons.OK, MessageBoxIcon.Stop) Exit Sub End If ProgressPanel.drvExportAllDrvs = RadioButton1.Checked @@ -124,91 +100,13 @@ Public Class ExportDrivers End Sub Private Sub ExportDrivers_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Export drivers" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Export target:" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - FolderBrowserDialog1.Description = "Please specify the path where the drivers will be exported to:" - Case "ESN" - Text = "Exportar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Destino de exportación:" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Especifique la ruta a la que los controladores serán exportados:" - Case "FRA" - Text = "Exporter les pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Cible d'exportation :" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - FolderBrowserDialog1.Description = "Veuillez indiquer le chemin vers lequel les pilotes seront exportés :" - Case "PTB", "PTG" - Text = "Controladores de exportação" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Exportar destino:" - Button1.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Especifique o caminho para onde os controladores serão exportados:" - Case "ITA" - Text = "Esportazione di driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Destinazione di esportazione:" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - FolderBrowserDialog1.Description = "Specificare il percorso in cui verranno esportati i driver:" - End Select - Case 1 - Text = "Export drivers" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Export target:" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - FolderBrowserDialog1.Description = "Please specify the path where the drivers will be exported to:" - Case 2 - Text = "Exportar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Destino de exportación:" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Especifique la ruta a la que los controladores serán exportados:" - Case 3 - Text = "Exporter les pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Cible d'exportation :" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - FolderBrowserDialog1.Description = "Veuillez indiquer le chemin vers lequel les pilotes seront exportés :" - Case 4 - Text = "Controladores de exportação" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Exportar destino:" - Button1.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Especifique o caminho para onde os controladores serão exportados:" - Case 5 - Text = "Esportazione di driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Destinazione di esportazione:" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - FolderBrowserDialog1.Description = "Specificare il percorso in cui verranno esportati i driver:" - End Select + Text = LocalizationService.ForSection("ExportDrivers")("Title.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ExportDrivers").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ExportDrivers")("ExportTarget.Label") + Button1.Text = LocalizationService.ForSection("ExportDrivers")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("ExportDrivers")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ExportDrivers")("Cancel.Button") + FolderBrowserDialog1.Description = LocalizationService.ForSection("ExportDrivers")("DriversPath.Description") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/Drivers/ImportDrivers.Designer.vb b/Panels/Img_Ops/Drivers/ImportDrivers.Designer.vb index 5acc77cd9..d058683f6 100644 --- a/Panels/Img_Ops/Drivers/ImportDrivers.Designer.vb +++ b/Panels/Img_Ops/Drivers/ImportDrivers.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImportDrivers Inherits System.Windows.Forms.Form @@ -84,7 +84,7 @@ Partial Class ImportDrivers Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Ok.Button") ' 'Cancel_Button ' @@ -95,7 +95,7 @@ Partial Class ImportDrivers Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Cancel.Button") ' 'Label2 ' @@ -106,7 +106,7 @@ Partial Class ImportDrivers Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 28) Me.Label2.TabIndex = 7 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Process.Third.Message") ' 'Label3 ' @@ -114,12 +114,12 @@ Partial Class ImportDrivers Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(124, 13) Me.Label3.TabIndex = 6 - Me.Label3.Text = "Import source:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImportDrivers")("ImportSource.Label") ' 'ComboBox1 ' Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Windows image", "Online installation", "Offline installation"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.ImportDrivers")("Windows.Item"), LocalizationService.ForSection("Designer.ImportDrivers")("Online.Install.Item"), LocalizationService.ForSection("Designer.ImportDrivers")("Offline.Install.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(144, 89) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(468, 21) @@ -159,7 +159,7 @@ Partial Class ImportDrivers Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(556, 13) Me.Label10.TabIndex = 4 - Me.Label10.Text = "" + Me.Label10.Text = LocalizationService.ForSection("Designer.ImportDrivers")("ImgFile.Label") Me.Label10.Visible = False ' 'Label9 @@ -169,7 +169,7 @@ Partial Class ImportDrivers Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(58, 13) Me.Label9.TabIndex = 4 - Me.Label9.Text = "Image file:" + Me.Label9.Text = LocalizationService.ForSection("Designer.ImportDrivers")("ImageFile.Label") ' 'Label6 ' @@ -178,7 +178,7 @@ Partial Class ImportDrivers Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(257, 13) Me.Label6.TabIndex = 3 - Me.Label6.Text = "You can't use the import target as the import source" + Me.Label6.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Tuse.Target.Label") Me.Label6.Visible = False ' 'Button1 @@ -188,7 +188,7 @@ Partial Class ImportDrivers Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Pick..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Pick.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -205,7 +205,7 @@ Partial Class ImportDrivers Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(192, 13) Me.Label5.TabIndex = 0 - Me.Label5.Text = "Windows image to import drivers from:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Windows.Label") ' 'OfflineInstPanel ' @@ -228,7 +228,7 @@ Partial Class ImportDrivers Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(257, 13) Me.Label8.TabIndex = 5 - Me.Label8.Text = "You can't use the import target as the import source" + Me.Label8.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Tuse.Target.Label") Me.Label8.Visible = False ' 'ListView1 @@ -248,42 +248,42 @@ Partial Class ImportDrivers ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Drive letter" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ImportDrivers")("DriveLetter.Column") Me.ColumnHeader1.Width = 68 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Drive label" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.ImportDrivers")("DriveLabel.Column") Me.ColumnHeader2.Width = 128 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Drive type" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.ImportDrivers")("DriveType.Column") Me.ColumnHeader3.Width = 70 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Total size" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.ImportDrivers")("TotalSize.Column") Me.ColumnHeader4.Width = 94 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Available free space" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Available.Free.Space.Column") Me.ColumnHeader5.Width = 110 ' 'ColumnHeader6 ' - Me.ColumnHeader6.Text = "Drive format" + Me.ColumnHeader6.Text = LocalizationService.ForSection("Designer.ImportDrivers")("DriveFormat.Column") Me.ColumnHeader6.Width = 77 ' 'ColumnHeader7 ' - Me.ColumnHeader7.Text = "Contains Windows?" + Me.ColumnHeader7.Text = LocalizationService.ForSection("Designer.ImportDrivers")("ContainsWindows.Column") Me.ColumnHeader7.Width = 109 ' 'ColumnHeader8 ' - Me.ColumnHeader8.Text = "Windows version" + Me.ColumnHeader8.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Windows.Column") Me.ColumnHeader8.Width = 104 ' 'Button2 @@ -294,7 +294,7 @@ Partial Class ImportDrivers Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 3 - Me.Button2.Text = "Refresh" + Me.Button2.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Refresh.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -313,7 +313,7 @@ Partial Class ImportDrivers Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(204, 13) Me.Label7.TabIndex = 1 - Me.Label7.Text = "Offline installation to import drivers from:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Offline.Drivers.Label") ' 'DefaultPanel ' @@ -331,7 +331,7 @@ Partial Class ImportDrivers Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(596, 278) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Choose a source listed above to configure its settings." + Me.Label4.Text = LocalizationService.ForSection("Designer.ImportDrivers")("Source.Listed.Choose.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'ImageTaskHeader1 @@ -368,7 +368,7 @@ Partial Class ImportDrivers Me.Name = "ImportDrivers" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Import drivers" + Me.Text = LocalizationService.ForSection("Designer.ImportDrivers")("ImportDrivers.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ImportSourceContainer.ResumeLayout(False) Me.WinImagePanel.ResumeLayout(False) diff --git a/Panels/Img_Ops/Drivers/ImportDrivers.resx b/Panels/Img_Ops/Drivers/ImportDrivers.resx index a8ce21cee..7905453d9 100644 --- a/Panels/Img_Ops/Drivers/ImportDrivers.resx +++ b/Panels/Img_Ops/Drivers/ImportDrivers.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,7 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Img_Ops/Drivers/ImportDrivers.vb b/Panels/Img_Ops/Drivers/ImportDrivers.vb index 47338e601..1eda4124a 100644 --- a/Panels/Img_Ops/Drivers/ImportDrivers.vb +++ b/Panels/Img_Ops/Drivers/ImportDrivers.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports DISMTools.Utilities Imports Microsoft.Dism @@ -8,7 +8,7 @@ Public Class ImportDrivers Dim DIList As New List(Of DriveInfo) Dim ImportSourceInt As Integer = -1 - Dim ImportSources() As String = New String(2) {"Windows image", "Online installation", "Offline installation"} + Dim ImportSources() As String = New String(2) {"", "", ""} Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click DynaLog.LogMessage("Disposing of progress panel if not disposed of previously...") @@ -121,271 +121,31 @@ Public Class ImportDrivers End If ComboBox1.Items.Clear() ComboBox1.SelectedText = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Import drivers" - ImageTaskHeader1.ItemText = Text - Label2.Text = "This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image" - Label3.Text = "Import source:" - Label4.Text = If(ImportSourceInt = 1, "This source doesn't have any additional settings available.", "Choose a source listed above to configure its settings.") - Label5.Text = "Windows image to import drivers from:" - Label6.Text = "You can't use the import target as the import source" - Label7.Text = "Offline installation to import drivers from:" - Label8.Text = "You can't use the import target as the import source" - Label9.Text = "Image file:" - Button1.Text = "Pick..." - Button2.Text = "Refresh" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Drive letter" - ListView1.Columns(1).Text = "Drive label" - ListView1.Columns(2).Text = "Drive type" - ListView1.Columns(3).Text = "Total size" - ListView1.Columns(4).Text = "Available free space" - ListView1.Columns(5).Text = "Drive format" - ListView1.Columns(6).Text = "Contains Windows?" - ListView1.Columns(7).Text = "Windows version" - ImportSources(0) = "Windows image" - ImportSources(1) = "Online installation" - ImportSources(2) = "Offline installation" - Case "ESN" - Text = "Importar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Este proceso importará todos los controladores de terceros del origen que especifique a esta imagen o instalación. Esto asegura que la imagen de destino tenga la misma compatibilidad de hardware de la imagen de origen" - Label3.Text = "Origen de importación:" - Label4.Text = If(ImportSourceInt = 1, "Este origen no tiene opciones adicionales disponibles.", "Escoja un origen mostrado arriba para configurar sus opciones.") - Label5.Text = "Imagen de Windows de la que importar controladores:" - Label6.Text = "No puede utilizar el destino de importación como el origen de importación" - Label7.Text = "Instalación fuera de línea de la que importar controladores:" - Label8.Text = "No puede utilizar el destino de importación como el origen de importación" - Label9.Text = "Archivo de imagen:" - Button1.Text = "Escoger..." - Button2.Text = "Actualizar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Letra de disco" - ListView1.Columns(1).Text = "Etiqueta de disco" - ListView1.Columns(2).Text = "Tipo de disco" - ListView1.Columns(3).Text = "Tamaño total" - ListView1.Columns(4).Text = "Espacio libre" - ListView1.Columns(5).Text = "Formato del disco" - ListView1.Columns(6).Text = "¿Contiene Windows?" - ListView1.Columns(7).Text = "Versión de Windows" - ImportSources(0) = "Imagen de Windows" - ImportSources(1) = "Instalación en línea" - ImportSources(2) = "Instalación fuera de línea" - Case "FRA" - Text = "Importer des pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ce processus importera tous les pilotes tiers de la source que vous spécifiez dans cette image ou installation. Cela garantit que l'image cible aura la même compatibilité matérielle que l'image source." - Label3.Text = "Source d'importation :" - Label4.Text = If(ImportSourceInt = 1, "Cette source ne dispose pas de paramètres supplémentaires.", "Choisissez une source dans la liste ci-dessus pour configurer ses paramètres.") - Label5.Text = "Image Windows à partir de laquelle les pilotes sont importés :" - Label6.Text = "Vous ne pouvez pas utiliser la cible d'importation comme source d'importation." - Label7.Text = "Installation hors ligne à partir de laquelle les pilotes sont importés :" - Label8.Text = "Vous ne pouvez pas utiliser la cible d'importation comme source d'importation." - Label9.Text = "Fichier de l'image :" - Button1.Text = "Choisir..." - Button2.Text = "Actualiser" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Lettre de disque" - ListView1.Columns(1).Text = "Étiquette de disque" - ListView1.Columns(2).Text = "Type de disque" - ListView1.Columns(3).Text = "Taille totale" - ListView1.Columns(4).Text = "Espace libre disponible" - ListView1.Columns(5).Text = "Format de disque" - ListView1.Columns(6).Text = "Contient Windows ?" - ListView1.Columns(7).Text = "Version Windows" - ImportSources(0) = "Image de Windows" - ImportSources(1) = "Installation en ligne" - ImportSources(2) = "Installation hors ligne" - Case "PTB", "PTG" - Text = "Importar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Este processo irá importar todos os controladores de terceiros da fonte que especificar para esta imagem ou instalação. Isto assegura que a imagem de destino terá a mesma compatibilidade de hardware da imagem de origem" - Label3.Text = "Importar fonte:" - Label4.Text = If(ImportSourceInt = 1, "Esta fonte não tem quaisquer configurações adicionais disponíveis.", "Escolha uma fonte listada acima para configurar as suas definições.") - Label5.Text = "Imagem do Windows a partir da qual importar controladores:" - Label6.Text = "Não é possível utilizar o destino de importação como fonte de importação" - Label7.Text = "Instalação offline para importar controladores de:" - Label8.Text = "Não é possível utilizar o destino de importação como fonte de importação" - Label9.Text = "Ficheiro de imagem:" - Button1.Text = "Escolher..." - Button2.Text = "Atualizar" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Letra da unidade" - ListView1.Columns(1).Text = "Label da unidade" - ListView1.Columns(2).Text = "Tipo de unidade" - ListView1.Columns(3).Text = "Tamanho total" - ListView1.Columns(4).Text = "Espaço livre disponível" - ListView1.Columns(5).Text = "Formato da unidade" - ListView1.Columns(6).Text = "Contém Windows?" - ListView1.Columns(7).Text = "Versão do Windows" - ImportSources(0) = "Imagem do Windows" - ImportSources(1) = "Instalação online" - ImportSources(2) = "Instalação offline" - Case "ITA" - Text = "Importare i driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Questo processo importerà tutti i driver di terze parti dell'origine specificata in questa immagine o installazione. Questo assicura che l'immagine di destinazione abbia la stessa compatibilità hardware dell'immagine di origine" - Label3.Text = "Importazione dell'origine:" - Label4.Text = If(ImportSourceInt = 1, "Questa sorgente non ha impostazioni aggiuntive disponibili.", "Scegliere una sorgente elencata sopra per configurarne le impostazioni.") - Label5.Text = "Immagine di Windows da cui importare i driver:" - Label6.Text = "Non è possibile utilizzare la destinazione di importazione come origine di importazione" - Label7.Text = "Installazione offline da cui importare i driver:" - Label8.Text = "Non è possibile utilizzare il target di importazione come sorgente di importazione" - Label9.Text = "File immagine:" - Button1.Text = "Scegliere..." - Button2.Text = "Aggiorna" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Lettera unità" - ListView1.Columns(1).Text = "Etichetta dell'unità" - ListView1.Columns(2).Text = "Tipo di unità" - ListView1.Columns(3).Text = "Dimensione totale" - ListView1.Columns(4).Text = "Spazio libero disponibile" - ListView1.Columns(5).Text = "Formato unità" - ListView1.Columns(6).Text = "Contiene Windows?" - ListView1.Columns(7).Text = "Versione di Windows" - ImportSources(0) = "Immagine di Windows" - ImportSources(1) = "Installazione attiva" - ImportSources(2) = "Installazione offline" - End Select - Case 1 - Text = "Import drivers" - ImageTaskHeader1.ItemText = Text - Label2.Text = "This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image" - Label3.Text = "Import source:" - Label4.Text = If(ImportSourceInt = 1, "This source doesn't have any additional settings available.", "Choose a source listed above to configure its settings.") - Label5.Text = "Windows image to import drivers from:" - Label6.Text = "You can't use the import target as the import source" - Label7.Text = "Offline installation to import drivers from:" - Label8.Text = "You can't use the import target as the import source" - Label9.Text = "Image file:" - Button1.Text = "Pick..." - Button2.Text = "Refresh" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Drive letter" - ListView1.Columns(1).Text = "Drive label" - ListView1.Columns(2).Text = "Drive type" - ListView1.Columns(3).Text = "Total size" - ListView1.Columns(4).Text = "Available free space" - ListView1.Columns(5).Text = "Drive format" - ListView1.Columns(6).Text = "Contains Windows?" - ListView1.Columns(7).Text = "Windows version" - ImportSources(0) = "Windows image" - ImportSources(1) = "Online installation" - ImportSources(2) = "Offline installation" - Case 2 - Text = "Importar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Este proceso importará todos los controladores de terceros del origen que especifique a esta imagen o instalación. Esto asegura que la imagen de destino tenga la misma compatibilidad de hardware de la imagen de origen" - Label3.Text = "Origen de importación:" - Label4.Text = If(ImportSourceInt = 1, "Este origen no tiene opciones adicionales disponibles.", "Escoja un origen mostrado arriba para configurar sus opciones.") - Label5.Text = "Imagen de Windows de la que importar controladores:" - Label6.Text = "No puede utilizar el destino de importación como el origen de importación" - Label7.Text = "Instalación fuera de línea de la que importar controladores:" - Label8.Text = "No puede utilizar el destino de importación como el origen de importación" - Label9.Text = "Archivo de imagen:" - Button1.Text = "Escoger..." - Button2.Text = "Actualizar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Letra de disco" - ListView1.Columns(1).Text = "Etiqueta de disco" - ListView1.Columns(2).Text = "Tipo de disco" - ListView1.Columns(3).Text = "Tamaño total" - ListView1.Columns(4).Text = "Espacio libre" - ListView1.Columns(5).Text = "Formato del disco" - ListView1.Columns(6).Text = "¿Contiene Windows?" - ListView1.Columns(7).Text = "Versión de Windows" - ImportSources(0) = "Imagen de Windows" - ImportSources(1) = "Instalación en línea" - ImportSources(2) = "Instalación fuera de línea" - Case 3 - Text = "Importer des pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ce processus importera tous les pilotes tiers de la source que vous spécifiez dans cette image ou installation. Cela garantit que l'image cible aura la même compatibilité matérielle que l'image source." - Label3.Text = "Source d'importation :" - Label4.Text = If(ImportSourceInt = 1, "Cette source ne dispose pas de paramètres supplémentaires.", "Choisissez une source dans la liste ci-dessus pour configurer ses paramètres.") - Label5.Text = "Image Windows à partir de laquelle les pilotes sont importés :" - Label6.Text = "Vous ne pouvez pas utiliser la cible d'importation comme source d'importation." - Label7.Text = "Installation hors ligne à partir de laquelle les pilotes sont importés :" - Label8.Text = "Vous ne pouvez pas utiliser la cible d'importation comme source d'importation." - Label9.Text = "Fichier de l'image :" - Button1.Text = "Choisir..." - Button2.Text = "Actualiser" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Lettre de disque" - ListView1.Columns(1).Text = "Étiquette de disque" - ListView1.Columns(2).Text = "Type de disque" - ListView1.Columns(3).Text = "Taille totale" - ListView1.Columns(4).Text = "Espace libre disponible" - ListView1.Columns(5).Text = "Format de disque" - ListView1.Columns(6).Text = "Contient Windows ?" - ListView1.Columns(7).Text = "Version Windows" - ImportSources(0) = "Image de Windows" - ImportSources(1) = "Installation en ligne" - ImportSources(2) = "Installation hors ligne" - Case 4 - Text = "Importar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Este processo irá importar todos os controladores de terceiros da fonte que especificar para esta imagem ou instalação. Isto assegura que a imagem de destino terá a mesma compatibilidade de hardware da imagem de origem" - Label3.Text = "Importar fonte:" - Label4.Text = If(ImportSourceInt = 1, "Esta fonte não tem quaisquer configurações adicionais disponíveis.", "Escolha uma fonte listada acima para configurar as suas definições.") - Label5.Text = "Imagem do Windows a partir da qual importar controladores:" - Label6.Text = "Não é possível utilizar o destino de importação como fonte de importação" - Label7.Text = "Instalação offline para importar controladores de:" - Label8.Text = "Não é possível utilizar o destino de importação como fonte de importação" - Label9.Text = "Ficheiro de imagem:" - Button1.Text = "Escolher..." - Button2.Text = "Atualizar" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Letra da unidade" - ListView1.Columns(1).Text = "Label da unidade" - ListView1.Columns(2).Text = "Tipo de unidade" - ListView1.Columns(3).Text = "Tamanho total" - ListView1.Columns(4).Text = "Espaço livre disponível" - ListView1.Columns(5).Text = "Formato da unidade" - ListView1.Columns(6).Text = "Contém Windows?" - ListView1.Columns(7).Text = "Versão do Windows" - ImportSources(0) = "Imagem do Windows" - ImportSources(1) = "Instalação online" - ImportSources(2) = "Instalação offline" - Case 5 - Text = "Importare i driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Questo processo importerà tutti i driver di terze parti dell'origine specificata in questa immagine o installazione. Questo assicura che l'immagine di destinazione abbia la stessa compatibilità hardware dell'immagine di origine" - Label3.Text = "Importazione dell'origine:" - Label4.Text = If(ImportSourceInt = 1, "Questa sorgente non ha impostazioni aggiuntive disponibili.", "Scegliere una sorgente elencata sopra per configurarne le impostazioni.") - Label5.Text = "Immagine di Windows da cui importare i driver:" - Label6.Text = "Non è possibile utilizzare la destinazione di importazione come origine di importazione" - Label7.Text = "Installazione offline da cui importare i driver:" - Label8.Text = "Non è possibile utilizzare il target di importazione come sorgente di importazione" - Label9.Text = "File immagine:" - Button1.Text = "Scegliere..." - Button2.Text = "Aggiorna" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Lettera unità" - ListView1.Columns(1).Text = "Etichetta dell'unità" - ListView1.Columns(2).Text = "Tipo di unità" - ListView1.Columns(3).Text = "Dimensione totale" - ListView1.Columns(4).Text = "Spazio libero disponibile" - ListView1.Columns(5).Text = "Formato unità" - ListView1.Columns(6).Text = "Contiene Windows?" - ListView1.Columns(7).Text = "Versione di Windows" - ImportSources(0) = "Immagine di Windows" - ImportSources(1) = "Installazione attiva" - ImportSources(2) = "Installazione offline" - End Select + Text = LocalizationService.ForSection("ImportDrivers")("Title.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("ImportDrivers")("Process.Third.Message") + Label3.Text = LocalizationService.ForSection("ImportDrivers")("ImportSource.Label") + Label4.Text = If(ImportSourceInt = 1, LocalizationService.ForSection("ImportDrivers")("Source.Doesn.Tany.Label"), LocalizationService.ForSection("ImportDrivers")("Source.Listed.Choose.Label")) + Label5.Text = LocalizationService.ForSection("ImportDrivers")("Windows.Label") + Label6.Text = LocalizationService.ForSection("ImportDrivers")("Tuse.Target.Label") + Label7.Text = LocalizationService.ForSection("ImportDrivers")("Offline.Drivers.Label") + Label8.Text = LocalizationService.ForSection("ImportDrivers")("Tuse.Target.Label") + Label9.Text = LocalizationService.ForSection("ImportDrivers")("ImageFile.Label") + Button1.Text = LocalizationService.ForSection("ImportDrivers")("Pick.Button") + Button2.Text = LocalizationService.ForSection("ImportDrivers")("Refresh.Button") + OK_Button.Text = LocalizationService.ForSection("ImportDrivers")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImportDrivers")("Cancel.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("ImportDrivers")("DriveLetter.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("ImportDrivers")("DriveLabel.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("ImportDrivers")("DriveType.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("ImportDrivers")("TotalSize.Column") + ListView1.Columns(4).Text = LocalizationService.ForSection("ImportDrivers")("Available.Free.Space.Column") + ListView1.Columns(5).Text = LocalizationService.ForSection("ImportDrivers")("DriveFormat.Column") + ListView1.Columns(6).Text = LocalizationService.ForSection("ImportDrivers")("ContainsWindows.Column") + ListView1.Columns(7).Text = LocalizationService.ForSection("ImportDrivers")("Windows.Column") + ImportSources(0) = LocalizationService.ForSection("ImportDrivers")("Windows.Item") + ImportSources(1) = LocalizationService.ForSection("ImportDrivers")("Online.Install.Item") + ImportSources(2) = LocalizationService.ForSection("ImportDrivers")("Offline.Install.Item") ComboBox1.Items.AddRange(ImportSources) If ImportSourceInt >= 0 Then ComboBox1.SelectedIndex = ImportSourceInt ImageTaskHeader1.SetColors() @@ -449,31 +209,7 @@ Public Class ImportDrivers End Select ImportSourceInt = ComboBox1.SelectedIndex End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = If(ImportSourceInt = 1, "This source doesn't have any additional settings available.", "Choose a source listed above to configure its settings.") - Case "ESN" - Label4.Text = If(ImportSourceInt = 1, "Este origen no tiene opciones adicionales disponibles.", "Escoja un origen mostrado arriba para configurar sus opciones.") - Case "FRA" - Label4.Text = If(ImportSourceInt = 1, "Cette source ne dispose pas de paramètres supplémentaires.", "Choisissez une source dans la liste ci-dessus pour configurer ses paramètres.") - Case "PTB", "PTG" - Label4.Text = If(ImportSourceInt = 1, "Esta origem não tem quaisquer configurações adicionais disponíveis.", "Escolha uma origem listada acima para configurar as suas configurações.") - Case "ITA" - Label4.Text = If(ImportSourceInt = 1, "Questa sorgente non ha impostazioni aggiuntive disponibili", "Scegliere una sorgente elencata sopra per configurarne le impostazioni") - End Select - Case 1 - Label4.Text = If(ImportSourceInt = 1, "This source doesn't have any additional settings available.", "Choose a source listed above to configure its settings.") - Case 2 - Label4.Text = If(ImportSourceInt = 1, "Este origen no tiene opciones adicionales disponibles.", "Escoja un origen mostrado arriba para configurar sus opciones.") - Case 3 - Label4.Text = If(ImportSourceInt = 1, "Cette source ne dispose pas de paramètres supplémentaires.", "Choisissez une source dans la liste ci-dessus pour configurer ses paramètres.") - Case 4 - Label4.Text = If(ImportSourceInt = 1, "Esta origem não tem quaisquer configurações adicionais disponíveis.", "Escolha uma origem listada acima para configurar as suas configurações.") - Case 5 - Label4.Text = If(ImportSourceInt = 1, "Questa sorgente non ha impostazioni aggiuntive disponibili", "Scegliere una sorgente elencata sopra per configurarne le impostazioni") - End Select + Label4.Text = If(ImportSourceInt = 1, LocalizationService.ForSection("ImportDrivers")("Source.Doesn.Tany.Label"), LocalizationService.ForSection("ImportDrivers")("Source.Listed.Choose.Label")) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click diff --git a/Panels/Img_Ops/Drivers/RemDrivers.Designer.vb b/Panels/Img_Ops/Drivers/RemDrivers.Designer.vb index bf61034ab..1f03569d1 100644 --- a/Panels/Img_Ops/Drivers/RemDrivers.Designer.vb +++ b/Panels/Img_Ops/Drivers/RemDrivers.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class RemDrivers Inherits System.Windows.Forms.Form @@ -64,7 +64,7 @@ Partial Class RemDrivers Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.RemDrivers")("Ok.Button") ' 'Cancel_Button ' @@ -75,7 +75,7 @@ Partial Class RemDrivers Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.RemDrivers")("Cancel.Button") ' 'ListView1 ' @@ -91,42 +91,42 @@ Partial Class RemDrivers ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Published name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.RemDrivers")("PublishedName.Column") Me.ColumnHeader1.Width = 89 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Original file name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.RemDrivers")("Original.File.Name.Column") Me.ColumnHeader2.Width = 160 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Provider name" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.RemDrivers")("ProviderName.Column") Me.ColumnHeader3.Width = 153 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Class name" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.RemDrivers")("ClassName.Column") Me.ColumnHeader4.Width = 86 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Part of the Windows distribution?" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.RemDrivers")("Part.Windows.Column") Me.ColumnHeader5.Width = 176 ' 'ColumnHeader6 ' - Me.ColumnHeader6.Text = "Is boot-critical?" + Me.ColumnHeader6.Text = LocalizationService.ForSection("Designer.RemDrivers")("BootCritical.Column") Me.ColumnHeader6.Width = 96 ' 'ColumnHeader7 ' - Me.ColumnHeader7.Text = "Version" + Me.ColumnHeader7.Text = LocalizationService.ForSection("Designer.RemDrivers")("Version.Column") Me.ColumnHeader7.Width = 71 ' 'ColumnHeader8 ' - Me.ColumnHeader8.Text = "Date" + Me.ColumnHeader8.Text = LocalizationService.ForSection("Designer.RemDrivers")("Date.Column") Me.ColumnHeader8.Width = 67 ' 'Label2 @@ -136,7 +136,7 @@ Partial Class RemDrivers Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(301, 13) Me.Label2.TabIndex = 9 - Me.Label2.Text = "Specify the driver packages you wish to remove and click OK:" + Me.Label2.Text = LocalizationService.ForSection("Designer.RemDrivers")("DriverPackages.Wish.Label") ' 'CheckBox1 ' @@ -147,7 +147,7 @@ Partial Class RemDrivers Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(142, 17) Me.CheckBox1.TabIndex = 10 - Me.CheckBox1.Text = "Hide boot-critical drivers" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.RemDrivers")("Hide.Boot.Critical.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -159,7 +159,7 @@ Partial Class RemDrivers Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(240, 17) Me.CheckBox2.TabIndex = 10 - Me.CheckBox2.Text = "Hide drivers part of the Windows distribution" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.RemDrivers")("Hide.Drivers.Part.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'ImageTaskHeader1 @@ -196,7 +196,7 @@ Partial Class RemDrivers Me.Name = "RemDrivers" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Remove drivers" + Me.Text = LocalizationService.ForSection("Designer.RemDrivers")("RemoveDrivers.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/Drivers/RemDrivers.vb b/Panels/Img_Ops/Drivers/RemDrivers.vb index 4c2c0296a..682a3f35e 100644 --- a/Panels/Img_Ops/Drivers/RemDrivers.vb +++ b/Panels/Img_Ops/Drivers/RemDrivers.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Imports System.IO Imports Microsoft.Dism @@ -23,102 +23,18 @@ Public Class RemDrivers drvPkgs = drvPkgList.ToArray() ' Detect if there are boot-critical drivers checked For x = 0 To ListView1.CheckedItems.Count - 1 - If ListView1.CheckedItems(x).SubItems(5).Text = "Yes" Or ListView1.CheckedItems(x).SubItems(5).Text = "Sí" Or ListView1.CheckedItems(x).SubItems(5).Text = "Oui" Or ListView1.CheckedItems(x).SubItems(5).Text = "Sim" Or ListView1.CheckedItems(x).SubItems(5).Text = "Sì" Then + If ListView1.CheckedItems(x).SubItems(5).Text = LocalizationService.ForSection("RemDrivers.Validation")("Yes.Button") Then DynaLog.LogMessage("Some checked drivers are critical for the boot process. Removing these could result in an unbootable system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - If MsgBox("You have selected driver packages that are boot-critical. Proceeding with the removal of such packages may leave the target image unbootable." & CrLf & CrLf & "Do you want to continue?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case "ESN" - If MsgBox("Ha seleccionado paquetes de controladores que son críticos para el arranque. Continuar con la eliminación de dichos paquetes podría dejar la imagen de destino sin poder arrancar." & CrLf & CrLf & "¿Desea continuar?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case "FRA" - If MsgBox("Vous avez sélectionné des paquets de pilotes critiques pour le démarrage. En procédant à la suppression de ces paquets, vous risquez de rendre l'image cible non amorçable." & CrLf & CrLf & "Voulez-vous continuer ?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case "PTB", "PTG" - If MsgBox("Seleccionou pacotes de controladores que são críticos para o arranque. Continuar com a remoção de tais pacotes pode deixar a imagem de destino não inicializável." & CrLf & CrLf & "Deseja continuar?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case "ITA" - If MsgBox("Sono stati selezionati pacchetti di driver critici per l'avvio. La rimozione di tali pacchetti potrebbe rendere l'immagine di destinazione non avviabile" & CrLf & CrLf & "Si desidera continuare?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - End Select - Case 1 - If MsgBox("You have selected driver packages that are boot-critical. Proceeding with the removal of such packages may leave the target image unbootable." & CrLf & CrLf & "Do you want to continue?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case 2 - If MsgBox("Ha seleccionado paquetes de controladores que son críticos para el arranque. Continuar con la eliminación de dichos paquetes podría dejar la imagen de destino sin poder arrancar." & CrLf & CrLf & "¿Desea continuar?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case 3 - If MsgBox("Vous avez sélectionné des paquets de pilotes critiques pour le démarrage. En procédant à la suppression de ces paquets, vous risquez de rendre l'image cible non amorçable." & CrLf & CrLf & "Voulez-vous continuer ?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case 4 - If MsgBox("Seleccionou pacotes de controladores que são críticos para o arranque. Continuar com a remoção de tais pacotes pode deixar a imagem de destino não inicializável." & CrLf & CrLf & "Deseja continuar?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case 5 - If MsgBox("Sono stati selezionati pacchetti di driver critici per l'avvio. La rimozione di tali pacchetti potrebbe rendere l'immagine di destinazione non avviabile" & CrLf & CrLf & "Si desidera continuare?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - End Select + If MsgBox(LocalizationService.ForSection("RemDrivers.Validation")("Selected.Boot.Message") & CrLf & CrLf & LocalizationService.ForSection("RemDrivers.Validation")("WantContinue.Message"), vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then + Exit Sub + End If Exit For End If - If ListView1.CheckedItems(x).SubItems(4).Text = "Yes" Or ListView1.CheckedItems(x).SubItems(4).Text = "Sí" Or ListView1.CheckedItems(x).SubItems(4).Text = "Oui" Or ListView1.CheckedItems(x).SubItems(4).Text = "Sim" Or ListView1.CheckedItems(x).SubItems(4).Text = "Sì" Then + If ListView1.CheckedItems(x).SubItems(4).Text = LocalizationService.ForSection("RemDrivers.Validation")("CheckedItems.Button") Then DynaLog.LogMessage("Some checked drivers are part of the Windows distribution. Removing these could hinder the overall experience.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - If MsgBox("You have selected driver packages that are part of the Windows distribution. Proceeding may leave certain parts of Windows that depend on these drivers inaccessible." & CrLf & CrLf & "Do you want to continue?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case "ESN" - If MsgBox("Ha seleccionado paquetes de controladores que son parte de la distribución de Windows. Continuar podría dejar algunas partes de Windows que dependan de estos contoladores inaccesibles." & CrLf & CrLf & "¿Desea continuar?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case "FRA" - If MsgBox("Vous avez sélectionné des paquets de pilotes qui font partie de la distribution de Windows. La poursuite de l'opération peut rendre inaccessibles certaines parties de Windows qui dépendent de ces pilotes." & CrLf & CrLf & "Voulez-vous continuer ?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case "PTB", "PTG" - If MsgBox("Seleccionou pacotes de controladores que fazem parte da distribuição do Windows. Continuar pode deixar inacessíveis certas partes do Windows que dependem destes controladores." & CrLf & CrLf & "Deseja continuar?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case "ITA" - If MsgBox("Sono stati selezionati pacchetti di driver che fanno parte della distribuzione di Windows. Procedere potrebbe rendere inaccessibili alcune parti di Windows che dipendono da questi driver." & CrLf & CrLf & "Si desidera continuare?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - End Select - Case 1 - If MsgBox("You have selected driver packages that are part of the Windows distribution. Proceeding may leave certain parts of Windows that depend on these drivers inaccessible." & CrLf & CrLf & "Do you want to continue?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case 2 - If MsgBox("Ha seleccionado paquetes de controladores que son parte de la distribución de Windows. Continuar podría dejar algunas partes de Windows que dependan de estos contoladores inaccesibles." & CrLf & CrLf & "¿Desea continuar?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case 3 - If MsgBox("Vous avez sélectionné des paquets de pilotes qui font partie de la distribution de Windows. La poursuite de l'opération peut rendre inaccessibles certaines parties de Windows qui dépendent de ces pilotes." & CrLf & CrLf & "Voulez-vous continuer ?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case 4 - If MsgBox("Seleccionou pacotes de controladores que fazem parte da distribuição do Windows. Continuar pode deixar inacessíveis certas partes do Windows que dependem destes controladores." & CrLf & CrLf & "Deseja continuar?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - Case 5 - If MsgBox("Sono stati selezionati pacchetti di driver che fanno parte della distribuzione di Windows. Procedere potrebbe rendere inaccessibili alcune parti di Windows che dipendono da questi driver." & CrLf & CrLf & "Si desidera continuare?", vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then - Exit Sub - End If - End Select + If MsgBox(LocalizationService.ForSection("RemDrivers.Validation")("Selected.Part.Message") & CrLf & CrLf & LocalizationService.ForSection("RemDrivers.Validation")("ContinueQuestion.Message"), vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then + Exit Sub + End If Exit For End If Next @@ -128,31 +44,7 @@ Public Class RemDrivers ProgressPanel.drvRemovalLastPkg = ListView1.CheckedItems(drvPkgCount - 1).SubItems(0).Text Else DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify the driver packages you wish to remove and try again", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Especifique los paquetes de controladores que desea eliminar e inténtelo de nuevo", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Veuillez spécifier les paquets de pilotes que vous souhaitez supprimer et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Especifique os pacotes de controladores que pretende remover e tente novamente", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Specificare i pacchetti di driver da rimuovere e riprovare", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("Please specify the driver packages you wish to remove and try again", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Especifique los paquetes de controladores que desea eliminar e inténtelo de nuevo", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Veuillez spécifier les paquets de pilotes que vous souhaitez supprimer et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Especifique os pacotes de controladores que pretende remover e tente novamente", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Specificare i pacchetti di driver da rimuovere e riprovare", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("RemDrivers.Validation")("Packages.Required.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.drvRemovalCount = drvPkgCount @@ -189,7 +81,7 @@ Public Class RemDrivers Path.GetFileName(driver.DriverOriginalFileName), driver.DriverProviderName, driver.DriverClassName, - driver.DriverInboxToString(MainForm.Language), + driver.DriverInboxToString(), "Unknown", driver.DriverVersion.ToString(), driver.DriverDate})).ToArray()) @@ -217,171 +109,21 @@ Public Class RemDrivers If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Remove drivers" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specify the driver packages you wish to remove and click OK:" - CheckBox1.Text = "Hide boot-critical drivers" - CheckBox2.Text = "Hide drivers part of the Windows distribution" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Published name" - ListView1.Columns(1).Text = "Original file name" - ListView1.Columns(2).Text = "Provider name" - ListView1.Columns(3).Text = "Class name" - ListView1.Columns(4).Text = "Part of the Windows distribution?" - ListView1.Columns(5).Text = "Is boot-critical?" - ListView1.Columns(6).Text = "Version" - ListView1.Columns(7).Text = "Date" - Case "ESN" - Text = "Eliminar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique los paquetes de controladores que desea eliminar y haga clic en Aceptar:" - CheckBox1.Text = "Ocultar controladores críticos para el arranque" - CheckBox2.Text = "Ocultar controladores que son parte de la distribución de Windows" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nombre publicado" - ListView1.Columns(1).Text = "Nombre original del archivo" - ListView1.Columns(2).Text = "Nombre del proveedor" - ListView1.Columns(3).Text = "Nombre de clase" - ListView1.Columns(4).Text = "¿Parte de la distribución de Windows?" - ListView1.Columns(5).Text = "¿Es crítico para el arranque?" - ListView1.Columns(6).Text = "Versión" - ListView1.Columns(7).Text = "Fecha" - Case "FRA" - Text = "Supprimer les pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Indiquez les paquets de pilotes que vous souhaitez supprimer et cliquez sur OK :" - CheckBox1.Text = "Cacher les pilotes critiques pour le démarrage" - CheckBox2.Text = "Cacher les pilotes qui font partie de la distribution de Windows" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Nom publié" - ListView1.Columns(1).Text = "Nom du fichier original" - ListView1.Columns(2).Text = "Nom du prestataire" - ListView1.Columns(3).Text = "Nom de la classe" - ListView1.Columns(4).Text = "Fait-il partie de la distribution Windows ?" - ListView1.Columns(5).Text = "Est-il critique pour le démarrage ?" - ListView1.Columns(6).Text = "Version" - ListView1.Columns(7).Text = "Date" - Case "PTB", "PTG" - Text = "Remover controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique os pacotes de controladores que pretende remover e clique em OK:" - CheckBox1.Text = "Ocultar controladores críticos para o arranque" - CheckBox2.Text = "Ocultar controladores que fazem parte da distribuição do Windows" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nome publicado" - ListView1.Columns(1).Text = "Nome do ficheiro original" - ListView1.Columns(2).Text = "Nome do fornecedor" - ListView1.Columns(3).Text = "Nome da classe" - ListView1.Columns(4).Text = "Parte da distribuição do Windows?" - ListView1.Columns(5).Text = "É crítico para o arranque?" - ListView1.Columns(6).Text = "Versão" - ListView1.Columns(7).Text = "Data" - Case "ITA" - Text = "Rimuovere i conducenti" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare i pacchetti di driver che si desidera rimuovere e fare clic su OK:" - CheckBox1.Text = "Nascondere i driver critici per l'avvio" - CheckBox2.Text = "Nascondi i driver che fanno parte della distribuzione di Windows" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Nome pubblicato" - ListView1.Columns(1).Text = "Nome del file originale" - ListView1.Columns(2).Text = "Nome provider" - ListView1.Columns(3).Text = "Nome della classe" - ListView1.Columns(4).Text = "Parte della distribuzione di Windows?" - ListView1.Columns(5).Text = "È critico per l'avvio?" - ListView1.Columns(6).Text = "Versione" - ListView1.Columns(7).Text = "Data" - End Select - Case 1 - Text = "Remove drivers" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specify the driver packages you wish to remove and click OK:" - CheckBox1.Text = "Hide boot-critical drivers" - CheckBox2.Text = "Hide drivers part of the Windows distribution" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Published name" - ListView1.Columns(1).Text = "Original file name" - ListView1.Columns(2).Text = "Provider name" - ListView1.Columns(3).Text = "Class name" - ListView1.Columns(4).Text = "Part of the Windows distribution?" - ListView1.Columns(5).Text = "Is boot-critical?" - ListView1.Columns(6).Text = "Version" - ListView1.Columns(7).Text = "Date" - Case 2 - Text = "Eliminar controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique los paquetes de controladores que desea eliminar y haga clic en Aceptar:" - CheckBox1.Text = "Ocultar controladores críticos para el arranque" - CheckBox2.Text = "Ocultar controladores que son parte de la distribución de Windows" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nombre publicado" - ListView1.Columns(1).Text = "Nombre original del archivo" - ListView1.Columns(2).Text = "Nombre del proveedor" - ListView1.Columns(3).Text = "Nombre de clase" - ListView1.Columns(4).Text = "¿Parte de la distribución de Windows?" - ListView1.Columns(5).Text = "¿Es crítico para el arranque?" - ListView1.Columns(6).Text = "Versión" - ListView1.Columns(7).Text = "Fecha" - Case 3 - Text = "Supprimer les pilotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Indiquez les paquets de pilotes que vous souhaitez supprimer et cliquez sur OK :" - CheckBox1.Text = "Cacher les pilotes critiques pour le démarrage" - CheckBox2.Text = "Cacher les pilotes qui font partie de la distribution de Windows" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Nom publié" - ListView1.Columns(1).Text = "Nom du fichier original" - ListView1.Columns(2).Text = "Nom du prestataire" - ListView1.Columns(3).Text = "Nom de la classe" - ListView1.Columns(4).Text = "Fait-il partie de la distribution Windows ?" - ListView1.Columns(5).Text = "Est-il critique pour le démarrage ?" - ListView1.Columns(6).Text = "Version" - ListView1.Columns(7).Text = "Date" - Case 4 - Text = "Remover controladores" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique os pacotes de controladores que pretende remover e clique em OK:" - CheckBox1.Text = "Ocultar controladores críticos para o arranque" - CheckBox2.Text = "Ocultar controladores que fazem parte da distribuição do Windows" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nome publicado" - ListView1.Columns(1).Text = "Nome do ficheiro original" - ListView1.Columns(2).Text = "Nome do fornecedor" - ListView1.Columns(3).Text = "Nome da classe" - ListView1.Columns(4).Text = "Parte da distribuição do Windows?" - ListView1.Columns(5).Text = "É crítico para o arranque?" - ListView1.Columns(6).Text = "Versão" - ListView1.Columns(7).Text = "Data" - Case 5 - Text = "Rimuovere i conducenti" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare i pacchetti di driver che si desidera rimuovere e fare clic su OK:" - CheckBox1.Text = "Nascondere i driver critici per l'avvio" - CheckBox2.Text = "Nascondi i driver che fanno parte della distribuzione di Windows" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Nome pubblicato" - ListView1.Columns(1).Text = "Nome del file originale" - ListView1.Columns(2).Text = "Nome provider" - ListView1.Columns(3).Text = "Nome della classe" - ListView1.Columns(4).Text = "Parte della distribuzione di Windows?" - ListView1.Columns(5).Text = "È critico per l'avvio?" - ListView1.Columns(6).Text = "Versione" - ListView1.Columns(7).Text = "Data" - End Select + Text = LocalizationService.ForSection("RemDrivers")("RemoveDrivers.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("RemDrivers").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("RemDrivers")("DriverPackages.Wish.Label") + CheckBox1.Text = LocalizationService.ForSection("RemDrivers")("Hide.Boot.Critical.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("RemDrivers")("Hide.Drivers.Part.CheckBox") + OK_Button.Text = LocalizationService.ForSection("RemDrivers")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("RemDrivers")("Cancel.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("RemDrivers")("PublishedName.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("RemDrivers")("Original.File.Name.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("RemDrivers")("ProviderName.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("RemDrivers")("ClassName.Column") + ListView1.Columns(4).Text = LocalizationService.ForSection("RemDrivers")("Part.Windows.Column") + ListView1.Columns(5).Text = LocalizationService.ForSection("RemDrivers")("BootCritical.Column") + ListView1.Columns(6).Text = LocalizationService.ForSection("RemDrivers")("Version.Column") + ListView1.Columns(7).Text = LocalizationService.ForSection("RemDrivers")("Date.Column") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -407,31 +149,7 @@ Public Class RemDrivers DynaLog.LogMessage("- " & If(CheckBox2.Checked, "Drivers part of the Windows distribution will be shown", "Drivers part of the Windows distribution will not be shown")) ListView1.Items.Clear() ProgressPanel.OperationNum = 994 - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting installed driver packages..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo paquetes de controladores instalados..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des paquets de pilotes installés en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter pacotes de controladores instalados..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Ottenere i pacchetti dei driver installati..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting installed driver packages..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo paquetes de controladores instalados..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des paquets de pilotes installés en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter pacotes de controladores instalados..." - Case 5 - PleaseWaitDialog.Label2.Text = "Ottenere i pacchetti dei driver installati..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("RemDrivers")("Loading.DriverPackages.Label") If Not MainForm.areBackgroundProcessesDone Then PleaseWaitDialog.ShowDialog(Me) Exit Sub diff --git a/Panels/Img_Ops/Editions/SetImageEdition.Designer.vb b/Panels/Img_Ops/Editions/SetImageEdition.Designer.vb index b1042038a..3f0511f67 100644 --- a/Panels/Img_Ops/Editions/SetImageEdition.Designer.vb +++ b/Panels/Img_Ops/Editions/SetImageEdition.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SetImageEdition Inherits System.Windows.Forms.Form @@ -64,7 +64,7 @@ Partial Class SetImageEdition Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImageEdition")("Ok.Button") ' 'Cancel_Button ' @@ -75,7 +75,7 @@ Partial Class SetImageEdition Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImageEdition")("Cancel.Button") ' 'Label1 ' @@ -84,7 +84,7 @@ Partial Class SetImageEdition Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(147, 13) Me.Label1.TabIndex = 2 - Me.Label1.Text = "Target edition to upgrade to:" + Me.Label1.Text = LocalizationService.ForSection("Designer.ImageEdition")("Target.Upgrade.Label") ' 'ComboBox1 ' @@ -105,7 +105,7 @@ Partial Class SetImageEdition Me.GroupBox1.Size = New System.Drawing.Size(599, 152) Me.GroupBox1.TabIndex = 4 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Active server installation options" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImageEdition")("ServerOptions.Group") ' 'TextBox2 ' @@ -133,7 +133,7 @@ Partial Class SetImageEdition Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(102, 23) Me.Button1.TabIndex = 1 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImageEdition")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -150,7 +150,7 @@ Partial Class SetImageEdition Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(571, 17) Me.RadioButton2.TabIndex = 0 - Me.RadioButton2.Text = "Accept the End-User License Agreement (EULA) and use the following product key:" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.ImageEdition")("AcceptEULA.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -162,7 +162,7 @@ Partial Class SetImageEdition Me.RadioButton1.Size = New System.Drawing.Size(571, 17) Me.RadioButton1.TabIndex = 0 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Copy the End-User License Agreement (EULA) to the following location:" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.ImageEdition")("Copy.EndUser.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'ImageTaskHeader1 @@ -203,7 +203,7 @@ Partial Class SetImageEdition Me.Name = "SetImageEdition" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Set image edition" + Me.Text = LocalizationService.ForSection("Designer.ImageEdition")("Set.Image.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/Editions/SetImageEdition.vb b/Panels/Img_Ops/Editions/SetImageEdition.vb index 8dc0a3df8..134e77d1c 100644 --- a/Panels/Img_Ops/Editions/SetImageEdition.vb +++ b/Panels/Img_Ops/Editions/SetImageEdition.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports DISMTools.Elements Imports System.IO Imports Microsoft.Dism @@ -16,14 +16,14 @@ Public Class SetImageEdition ProgressPanel.imgEditionAcceptEula = RadioButton2.Checked If RadioButton1.Checked Then If (TextBox1.Text = "" Or Not Directory.Exists(TextBox1.Text)) Then - MsgBox("Either no directory has been specified or it does not exist.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("ImageOps.Editions.Set")("DirectoryMissing.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.imgEditionEulaDestination = TextBox1.Text Else Dim productKey As ProductKey = ProductKeyValidator.ValidateProductKey(TextBox2.Text) If Not productKey.Valid Then - MsgBox("The product key has been typed incorrectly", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("ImageOps.Editions.Set")("ProductKey.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.imgEditionEditionKey = productKey.Key @@ -65,31 +65,7 @@ Public Class SetImageEdition Else ' This image has been upgraded to its highest edition DynaLog.LogMessage("There are no target editions. This image is already rocking the best edition") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "This image cannot be upgraded to higher editions because it is in its highest edition" - Case "ESN" - msg = "Esta imagen no puede ser actualizada a ediciones superiores porque ya tiene la edición más avanzada" - Case "FRA" - msg = "Cette image ne peut pas être mise à niveau vers des éditions supérieures car elle se trouve dans son édition la plus élevée" - Case "PTB", "PTG" - msg = "Esta imagem não pode ser actualizada para edições superiores porque está na sua edição mais elevada" - Case "ITA" - msg = "Questa immagine non può essere aggiornata a edizioni superiori perché si trova nell'edizione più alta" - End Select - Case 1 - msg = "This image cannot be upgraded to higher editions because it is in its highest edition" - Case 2 - msg = "Esta imagen no puede ser actualizada a ediciones superiores porque ya tiene la edición más avanzada" - Case 3 - msg = "Cette image ne peut pas être mise à niveau vers des éditions supérieures car elle se trouve dans son édition la plus élevée" - Case 4 - msg = "Esta imagem não pode ser actualizada para edições superiores porque está na sua edição mais elevada" - Case 5 - msg = "Questa immagine non può essere aggiornata a edizioni superiori perché si trova nell'edizione più alta" - End Select + msg = LocalizationService.ForSection("ImageEdition.Initialize")("Image.Cannot.Message") MsgBox(msg, vbOKOnly + vbInformation, Text) End If End Using @@ -97,31 +73,7 @@ Public Class SetImageEdition DynaLog.LogMessage("Could not grab edition targets. Error message: " & ex.Message) If MainForm.CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) Then DynaLog.LogMessage("Image edition is WindowsPE. This is a Windows PE image.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Windows PE images cannot be upgraded to higher editions." - Case "ESN" - msg = "Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores." - Case "FRA" - msg = "Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures." - Case "PTB", "PTG" - msg = "As imagens do Windows PE não podem ser actualizadas para edições superiores." - Case "ITA" - msg = "Le immagini di Windows PE non possono essere aggiornate a edizioni superiori." - End Select - Case 1 - msg = "Windows PE images cannot be upgraded to higher editions." - Case 2 - msg = "Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores." - Case 3 - msg = "Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures." - Case 4 - msg = "As imagens do Windows PE não podem ser actualizadas para edições superiores." - Case 5 - msg = "Le immagini di Windows PE non possono essere aggiornate a edizioni superiori." - End Select + msg = LocalizationService.ForSection("ImageEdition.Initialize")("Windows.Message") Else msg = ex.ToString() End If @@ -149,111 +101,15 @@ Public Class SetImageEdition If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Set image edition" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Target edition to upgrade to:" - GroupBox1.Text = "Active server installation options" - RadioButton1.Text = "Copy the End-User License Agreement (EULA) to the following location:" - RadioButton2.Text = "Accept the End-User License Agreement (EULA) and use the following product key:" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Establecer edición de la imagen" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Edición a la que actualizar:" - GroupBox1.Text = "Opciones para instalaciones de servidores" - RadioButton1.Text = "Copiar el Contrato de Licencia de Usuario Final (CLUF) a la siguiente ubicación:" - RadioButton2.Text = "Aceptar el Contrato de Licencia de Usuario Final (CLUF) y utilizar la siguiente clave de producto:" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Définir l'édition de l'image" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Édition cible pour la mise à niveau :" - GroupBox1.Text = "Options d'installation active du serveur" - RadioButton1.Text = "Copier le Contrat de Licence Utilisateur Final (CLUF) à l'emplacement suivant :" - RadioButton2.Text = "Accepter le Contrat de Licence Utilisateur Final (CLUF) et utiliser la clé de produit suivante :" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Definir edição da imagem" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Edição de destino para atualizar:" - GroupBox1.Text = "Opções de instalação ativa do servidor" - RadioButton1.Text = "Copiar o Contrato de Licença de Usuário Final (EULA) para o seguinte local:" - RadioButton2.Text = "Aceitar o Contrato de Licença de Usuário Final (EULA) e usar a seguinte chave de produto:" - Button1.Text = "Procurar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Imposta edizione immagine" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Edizione di destinazione per l'aggiornamento:" - GroupBox1.Text = "Opzioni di installazione attiva del server" - RadioButton1.Text = "Copia il Contratto di Licenza con l'Utente Finale (CLUF) nella seguente posizione:" - RadioButton2.Text = "Accetta il Contratto di Licenza con l'Utente Finale (CLUF) e utilizza la seguente chiave prodotto:" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select - Case 1 - Text = "Set image edition" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Target edition to upgrade to:" - GroupBox1.Text = "Active server installation options" - RadioButton1.Text = "Copy the End-User License Agreement (EULA) to the following location:" - RadioButton2.Text = "Accept the End-User License Agreement (EULA) and use the following product key:" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Establecer edición de la imagen" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Edición a la que actualizar:" - GroupBox1.Text = "Opciones para instalaciones de servidores" - RadioButton1.Text = "Copiar el Contrato de Licencia de Usuario Final (CLUF) a la siguiente ubicación:" - RadioButton2.Text = "Aceptar el Contrato de Licencia de Usuario Final (CLUF) y utilizar la siguiente clave de producto:" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Définir l'édition de l'image" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Édition cible pour la mise à niveau :" - GroupBox1.Text = "Options d'installation active du serveur" - RadioButton1.Text = "Copier le Contrat de Licence Utilisateur Final (CLUF) à l'emplacement suivant :" - RadioButton2.Text = "Accepter le Contrat de Licence Utilisateur Final (CLUF) et utiliser la clé de produit suivante :" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Definir edição da imagem" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Edição de destino para atualizar:" - GroupBox1.Text = "Opções de instalação ativa do servidor" - RadioButton1.Text = "Copiar o Contrato de Licença de Usuário Final (EULA) para o seguinte local:" - RadioButton2.Text = "Aceitar o Contrato de Licença de Usuário Final (EULA) e usar a seguinte chave de produto:" - Button1.Text = "Procurar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Imposta edizione immagine" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Edizione di destinazione per l'aggiornamento:" - GroupBox1.Text = "Opzioni di installazione attiva del server" - RadioButton1.Text = "Copia il Contratto di Licenza con l'Utente Finale (CLUF) nella seguente posizione:" - RadioButton2.Text = "Accetta il Contratto di Licenza con l'Utente Finale (CLUF) e utilizza la seguente chiave prodotto:" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select + Text = LocalizationService.ForSection("ImageEdition")("Title.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ImageEdition").Format("Image.Task.Header.Label", Text) + Label1.Text = LocalizationService.ForSection("ImageEdition")("Target.Upgrade.Label") + GroupBox1.Text = LocalizationService.ForSection("ImageEdition")("ServerOptions.Group") + RadioButton1.Text = LocalizationService.ForSection("ImageEdition")("Copy.EndUser.RadioButton") + RadioButton2.Text = LocalizationService.ForSection("ImageEdition")("AcceptEULA.RadioButton") + Button1.Text = LocalizationService.ForSection("ImageEdition")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("ImageEdition")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImageEdition")("Cancel.Button") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/Editions/SetProductKey.Designer.vb b/Panels/Img_Ops/Editions/SetProductKey.Designer.vb index 7fca28fea..06ce5e9e4 100644 --- a/Panels/Img_Ops/Editions/SetProductKey.Designer.vb +++ b/Panels/Img_Ops/Editions/SetProductKey.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SetImageKey Inherits System.Windows.Forms.Form @@ -56,7 +56,7 @@ Partial Class SetImageKey Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.SetProductKey")("Ok.Button") ' 'Cancel_Button ' @@ -67,7 +67,7 @@ Partial Class SetImageKey Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.SetProductKey")("Cancel.Button") ' 'ImageTaskHeader1 ' @@ -91,8 +91,7 @@ Partial Class SetImageKey Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(435, 13) Me.Label1.TabIndex = 2 - Me.Label1.Text = "Type the product key that you want to set to your Windows image, including the da" & _ - "shes:" + Me.Label1.Text = LocalizationService.ForSection("Designer.SetProductKey")("Type.ProductKey.Label") ' 'TextBox1 ' @@ -110,7 +109,7 @@ Partial Class SetImageKey Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(146, 23) Me.Button1.TabIndex = 4 - Me.Button1.Text = "Validate key" + Me.Button1.Text = LocalizationService.ForSection("Designer.SetProductKey")("ValidateKey.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label2 @@ -122,8 +121,7 @@ Partial Class SetImageKey Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 43) Me.Label2.TabIndex = 2 - Me.Label2.Text = "If you want to check if your product key is valid for the Windows image, click Va" & _ - "lidate key. This will also check the syntax of your key." + Me.Label2.Text = LocalizationService.ForSection("Designer.SetProductKey")("Check.ProductKey.Message") ' 'SetImageKey ' @@ -145,7 +143,7 @@ Partial Class SetImageKey Me.Name = "SetImageKey" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Set product key" + Me.Text = LocalizationService.ForSection("Designer.SetProductKey")("SetProductKey.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/Editions/SetProductKey.vb b/Panels/Img_Ops/Editions/SetProductKey.vb index 59ad9543b..0b508e171 100644 --- a/Panels/Img_Ops/Editions/SetProductKey.vb +++ b/Panels/Img_Ops/Editions/SetProductKey.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports DISMTools.Elements Imports Microsoft.Dism @@ -11,7 +11,7 @@ Public Class SetImageKey Dim key As ProductKey = ProductKeyValidator.ValidateProductKey(TextBox1.Text) If Not key.Valid Then DynaLog.LogMessage("Syntactically, the product key is bad.") - MsgBox("The product key has not been typed correctly.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("SetImageKey.Messages")("ProductKey.Has.Label"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.OperationNum = 72 @@ -33,7 +33,7 @@ Public Class SetImageKey Dim key As ProductKey = ProductKeyValidator.ValidateProductKey(TextBox1.Text) If Not key.Valid Then DynaLog.LogMessage("Syntactically, the product key is bad.") - MsgBox("The product key has not been typed correctly.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("SetImageKey.Messages")("ProductKey.Has.Label"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) Exit Sub End If DynaLog.LogMessage("Syntactically, the product key is good. Passing to stage 2...") @@ -48,14 +48,14 @@ Public Class SetImageKey End Using If validKey Then DynaLog.LogMessage("The product key can be applied to this Windows image.") - MsgBox("The product key is valid for this Windows image.", vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("SetImageKey.Messages")("ProductKey.Windows.Label"), vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) Else DynaLog.LogMessage("The product key cannot be applied to this Windows image.") - MsgBox("The product key has been typed correctly, but is not valid for this Windows image.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("SetImageKey.Messages")("ProductKey.Valid.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) End If Catch ex As Exception DynaLog.LogMessage("Could not validate product key. Error message: " & ex.Message) - MsgBox("The product key has been typed correctly, but we could not check if it's valid for this Windows image.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("SetImageKey.Validation")("ProductKey.Valid.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) Finally Try DismApi.Shutdown() @@ -69,31 +69,7 @@ Public Class SetImageKey Dim msg As String = "" If MainForm.CurrentImage.ImageEditionId.Equals("WindowsPE", StringComparison.OrdinalIgnoreCase) Then DynaLog.LogMessage("Image edition is WindowsPE. This is a Windows PE image.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Windows PE images cannot be upgraded to higher editions." - Case "ESN" - msg = "Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores." - Case "FRA" - msg = "Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures." - Case "PTB", "PTG" - msg = "As imagens do Windows PE não podem ser actualizadas para edições superiores." - Case "ITA" - msg = "Le immagini di Windows PE non possono essere aggiornate a edizioni superiori." - End Select - Case 1 - msg = "Windows PE images cannot be upgraded to higher editions." - Case 2 - msg = "Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores." - Case 3 - msg = "Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures." - Case 4 - msg = "As imagens do Windows PE não podem ser actualizadas para edições superiores." - Case 5 - msg = "Le immagini di Windows PE non possono essere aggiornate a edizioni superiori." - End Select + msg = LocalizationService.ForSection("SetImageKey.Initialize")("Windows.Message") MsgBox(msg, vbOKOnly + vbInformation, Text) Return False End If @@ -104,91 +80,13 @@ Public Class SetImageKey If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Set product key" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Type the product key that you want to set to your Windows image, including the dashes:" - Label2.Text = "If you want to check if your product key is valid for the Windows image, click Validate key. This will also check the syntax of your key." - Button1.Text = "Validate key" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Establecer clave de producto" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Escriba la clave de producto que quiere establecer en la imagen de Windows, incluyendo los guiones:" - Label2.Text = "Si desea comprobar si la clave de producto es válida para la imagen de Windows, haga clic en Validar clave. Esto también comprobará la sintaxis de la clave." - Button1.Text = "Validar clave" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Définir la clé de produit" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Tapez la clé de produit que vous souhaitez définir pour votre image Windows, y compris les tirets :" - Label2.Text = "Si vous souhaitez vérifier si votre clé de produit est valide pour l'image Windows, cliquez sur Valider la clé. Cela vérifiera également la syntaxe de votre clé." - Button1.Text = "Valider la clé" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Definir chave do produto" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Digite a chave do produto que você deseja definir para a imagem do Windows, incluindo os traços:" - Label2.Text = "Se você deseja verificar se a chave do produto é válida para a imagem do Windows, clique em Validar chave. Isso também verificará a sintaxe da chave." - Button1.Text = "Validar chave" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Imposta chiave prodotto" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Digita la chiave prodotto che desideri impostare per l'immagine di Windows, inclusi i trattini:" - Label2.Text = "Se desideri verificare se la chiave prodotto è valida per l'immagine di Windows, fai clic su Convalida chiave. Questo controllerà anche la sintassi della chiave." - Button1.Text = "Convalida chiave" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select - Case 1 - Text = "Set product key" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Type the product key that you want to set to your Windows image, including the dashes:" - Label2.Text = "If you want to check if your product key is valid for the Windows image, click Validate key. This will also check the syntax of your key." - Button1.Text = "Validate key" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Establecer clave de producto" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Escriba la clave de producto que quiere establecer en la imagen de Windows, incluyendo los guiones:" - Label2.Text = "Si desea comprobar si la clave de producto es válida para la imagen de Windows, haga clic en Validar clave. Esto también comprobará la sintaxis de la clave." - Button1.Text = "Validar clave" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Définir la clé de produit" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Tapez la clé de produit que vous souhaitez définir pour votre image Windows, y compris les tirets :" - Label2.Text = "Si vous souhaitez vérifier si votre clé de produit est valide pour l'image Windows, cliquez sur Valider la clé. Cela vérifiera également la syntaxe de votre clé." - Button1.Text = "Valider la clé" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Definir chave do produto" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Digite a chave do produto que você deseja definir para a imagem do Windows, incluindo os traços:" - Label2.Text = "Se você deseja verificar se a chave do produto é válida para a imagem do Windows, clique em Validar chave. Isso também verificará a sintaxe da chave." - Button1.Text = "Validar chave" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Imposta chiave prodotto" - ImageTaskHeader1.ItemText = Text - Label1.Text = "Digita la chiave prodotto che desideri impostare per l'immagine di Windows, inclusi i trattini:" - Label2.Text = "Se desideri verificare se la chiave prodotto è valida per l'immagine di Windows, fai clic su Convalida chiave. Questo controllerà anche la sintassi della chiave." - Button1.Text = "Convalida chiave" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - End Select + Text = LocalizationService.ForSection("SetImageKey")("SetProductKey.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("SetImageKey").Format("Image.Task.Header.Label", Text) + Label1.Text = LocalizationService.ForSection("SetImageKey")("Type.ProductKey.Label") + Label2.Text = LocalizationService.ForSection("SetImageKey")("Check.ProductKey.Message") + Button1.Text = LocalizationService.ForSection("SetImageKey")("ValidateKey.Button") + OK_Button.Text = LocalizationService.ForSection("SetImageKey")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("SetImageKey")("Cancel.Button") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/EnvironmentVariables/EnvVarManagementForm.Designer.vb b/Panels/Img_Ops/EnvironmentVariables/EnvVarManagementForm.Designer.vb index db89d0700..5ecdedede 100644 --- a/Panels/Img_Ops/EnvironmentVariables/EnvVarManagementForm.Designer.vb +++ b/Panels/Img_Ops/EnvironmentVariables/EnvVarManagementForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class EnvVarManagementForm Inherits System.Windows.Forms.Form @@ -96,7 +96,7 @@ Partial Class EnvVarManagementForm Me.SaveAllChangesBtn.Name = "SaveAllChangesBtn" Me.SaveAllChangesBtn.Size = New System.Drawing.Size(137, 23) Me.SaveAllChangesBtn.TabIndex = 0 - Me.SaveAllChangesBtn.Text = "Save all changes" + Me.SaveAllChangesBtn.Text = LocalizationService.ForSection("Designer.EnvVars")("Save.Changes.Label") Me.SaveAllChangesBtn.UseVisualStyleBackColor = True ' 'HeaderContainerPanel @@ -117,8 +117,7 @@ Partial Class EnvVarManagementForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(1240, 42) Me.Label1.TabIndex = 2 - Me.Label1.Text = "This tool lets you view and manage the environment variables of this target image" & _ - ". Click the Save button to save any changes made to the environment variables." + Me.Label1.Text = LocalizationService.ForSection("Designer.EnvVars")("Intro.Message") ' 'EnvVarContainerSplitPanel ' @@ -159,7 +158,7 @@ Partial Class EnvVarManagementForm Me.SysEnvVarGB.Size = New System.Drawing.Size(734, 260) Me.SysEnvVarGB.TabIndex = 0 Me.SysEnvVarGB.TabStop = False - Me.SysEnvVarGB.Text = "Environment variables for the target system" + Me.SysEnvVarGB.Text = LocalizationService.ForSection("Designer.EnvVars")("TargetSystem.Label") ' 'SysEnvVarPanel ' @@ -186,12 +185,12 @@ Partial Class EnvVarManagementForm ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Name" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.EnvVars")("Name.Column") Me.ColumnHeader3.Width = 221 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Value" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.EnvVars")("Value.Column") Me.ColumnHeader4.Width = 476 ' 'SysEnvVarActionPanel @@ -213,7 +212,7 @@ Partial Class EnvVarManagementForm Me.RemoveMachineVarButton.Name = "RemoveMachineVarButton" Me.RemoveMachineVarButton.Size = New System.Drawing.Size(161, 23) Me.RemoveMachineVarButton.TabIndex = 0 - Me.RemoveMachineVarButton.Text = "Remove machine variable" + Me.RemoveMachineVarButton.Text = LocalizationService.ForSection("Designer.EnvVars")("Remove.Machine.Label") Me.RemoveMachineVarButton.UseVisualStyleBackColor = True ' 'AddMachineVarButton @@ -224,7 +223,7 @@ Partial Class EnvVarManagementForm Me.AddMachineVarButton.Name = "AddMachineVarButton" Me.AddMachineVarButton.Size = New System.Drawing.Size(161, 23) Me.AddMachineVarButton.TabIndex = 0 - Me.AddMachineVarButton.Text = "Add machine variable..." + Me.AddMachineVarButton.Text = LocalizationService.ForSection("Designer.EnvVars")("Add.Machine.Variable.Button") Me.AddMachineVarButton.UseVisualStyleBackColor = True ' 'UserEnvVarGB @@ -237,7 +236,7 @@ Partial Class EnvVarManagementForm Me.UserEnvVarGB.Size = New System.Drawing.Size(734, 260) Me.UserEnvVarGB.TabIndex = 0 Me.UserEnvVarGB.TabStop = False - Me.UserEnvVarGB.Text = "Environment variables for default user profiles" + Me.UserEnvVarGB.Text = LocalizationService.ForSection("Designer.EnvVars")("DefaultUser.Label") ' 'UserEnvVarPanel ' @@ -264,12 +263,12 @@ Partial Class EnvVarManagementForm ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.EnvVars")("Name.Column") Me.ColumnHeader1.Width = 221 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Value" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.EnvVars")("Value.Column") Me.ColumnHeader2.Width = 476 ' 'UserEnvVarActionPanel @@ -291,7 +290,7 @@ Partial Class EnvVarManagementForm Me.RemoveUserVarBtn.Name = "RemoveUserVarBtn" Me.RemoveUserVarBtn.Size = New System.Drawing.Size(161, 23) Me.RemoveUserVarBtn.TabIndex = 0 - Me.RemoveUserVarBtn.Text = "Remove user variable" + Me.RemoveUserVarBtn.Text = LocalizationService.ForSection("Designer.EnvVars")("Remove.User.Variable.Label") Me.RemoveUserVarBtn.UseVisualStyleBackColor = True ' 'AddUserVarButton @@ -302,7 +301,7 @@ Partial Class EnvVarManagementForm Me.AddUserVarButton.Name = "AddUserVarButton" Me.AddUserVarButton.Size = New System.Drawing.Size(161, 23) Me.AddUserVarButton.TabIndex = 0 - Me.AddUserVarButton.Text = "Add user variable..." + Me.AddUserVarButton.Text = LocalizationService.ForSection("Designer.EnvVars")("Add.User.Variable.Button") Me.AddUserVarButton.UseVisualStyleBackColor = True ' 'EnvVarDetailsPanel @@ -334,7 +333,7 @@ Partial Class EnvVarManagementForm Me.SaveVarBtn.Name = "SaveVarBtn" Me.SaveVarBtn.Size = New System.Drawing.Size(99, 23) Me.SaveVarBtn.TabIndex = 5 - Me.SaveVarBtn.Text = "Save Variable" + Me.SaveVarBtn.Text = LocalizationService.ForSection("Designer.EnvVars")("SaveVariable.Label") Me.SaveVarBtn.UseVisualStyleBackColor = True ' 'TextBox2 @@ -376,7 +375,7 @@ Partial Class EnvVarManagementForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(40, 13) Me.Label4.TabIndex = 2 - Me.Label4.Text = "Scope:" + Me.Label4.Text = LocalizationService.ForSection("Designer.EnvVars")("Scope.Label") ' 'Label7 ' @@ -388,8 +387,7 @@ Partial Class EnvVarManagementForm Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(452, 36) Me.Label7.TabIndex = 2 - Me.Label7.Text = "This variable is hierarchical. Values added to the system variable will be either" & _ - " prepended to or replaced by the user variable when the user profile is loaded." + Me.Label7.Text = LocalizationService.ForSection("Designer.EnvVars")("Hierarchical.Values.Message") Me.Label7.Visible = False ' 'Label6 @@ -399,7 +397,7 @@ Partial Class EnvVarManagementForm Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(345, 13) Me.Label6.TabIndex = 2 - Me.Label6.Text = "* Environment variables contained within this value are not expanded." + Me.Label6.Text = LocalizationService.ForSection("Designer.EnvVars")("Variables.Location.Label") ' 'Label5 ' @@ -408,7 +406,7 @@ Partial Class EnvVarManagementForm Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(37, 13) Me.Label5.TabIndex = 2 - Me.Label5.Text = "Value:" + Me.Label5.Text = LocalizationService.ForSection("Designer.EnvVars")("Value.Label") ' 'Label3 ' @@ -417,7 +415,7 @@ Partial Class EnvVarManagementForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(38, 13) Me.Label3.TabIndex = 2 - Me.Label3.Text = "Name:" + Me.Label3.Text = LocalizationService.ForSection("Designer.EnvVars")("Name.Label") ' 'Label2 ' @@ -427,7 +425,7 @@ Partial Class EnvVarManagementForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(256, 19) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Environment Variable Information:" + Me.Label2.Text = LocalizationService.ForSection("Designer.EnvVars")("VariableInfo.Label") ' 'PictureBox1 ' @@ -467,7 +465,7 @@ Partial Class EnvVarManagementForm Me.CopyToUserScopeBtn.Name = "CopyToUserScopeBtn" Me.CopyToUserScopeBtn.Size = New System.Drawing.Size(219, 23) Me.CopyToUserScopeBtn.TabIndex = 7 - Me.CopyToUserScopeBtn.Text = "Copy to default user scope" + Me.CopyToUserScopeBtn.Text = LocalizationService.ForSection("Designer.EnvVars")("Copy.Default.User.Label") Me.CopyToUserScopeBtn.UseVisualStyleBackColor = True ' 'CopyToMachineScopeBtn @@ -478,7 +476,7 @@ Partial Class EnvVarManagementForm Me.CopyToMachineScopeBtn.Name = "CopyToMachineScopeBtn" Me.CopyToMachineScopeBtn.Size = New System.Drawing.Size(218, 23) Me.CopyToMachineScopeBtn.TabIndex = 5 - Me.CopyToMachineScopeBtn.Text = "Copy to machine scope" + Me.CopyToMachineScopeBtn.Text = LocalizationService.ForSection("Designer.EnvVars")("Copy.Machine.Scope.Label") Me.CopyToMachineScopeBtn.UseVisualStyleBackColor = True ' 'MoveToMachineScopeBtn @@ -489,7 +487,7 @@ Partial Class EnvVarManagementForm Me.MoveToMachineScopeBtn.Name = "MoveToMachineScopeBtn" Me.MoveToMachineScopeBtn.Size = New System.Drawing.Size(218, 23) Me.MoveToMachineScopeBtn.TabIndex = 4 - Me.MoveToMachineScopeBtn.Text = "Move to machine scope" + Me.MoveToMachineScopeBtn.Text = LocalizationService.ForSection("Designer.EnvVars")("Move.Machine.Scope.Label") Me.MoveToMachineScopeBtn.UseVisualStyleBackColor = True ' 'MoveToUserScopeBtn @@ -500,7 +498,7 @@ Partial Class EnvVarManagementForm Me.MoveToUserScopeBtn.Name = "MoveToUserScopeBtn" Me.MoveToUserScopeBtn.Size = New System.Drawing.Size(219, 23) Me.MoveToUserScopeBtn.TabIndex = 4 - Me.MoveToUserScopeBtn.Text = "Move to default user scope" + Me.MoveToUserScopeBtn.Text = LocalizationService.ForSection("Designer.EnvVars")("Move.Default.User.Label") Me.MoveToUserScopeBtn.UseVisualStyleBackColor = True ' 'EnvVarManagementForm @@ -516,7 +514,7 @@ Partial Class EnvVarManagementForm Me.MinimumSize = New System.Drawing.Size(1280, 720) Me.Name = "EnvVarManagementForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "System Environment Variable Management" + Me.Text = LocalizationService.ForSection("Designer.EnvVars")("SystemVariables.Label") Me.ButtonContainerPanel.ResumeLayout(False) Me.HeaderContainerPanel.ResumeLayout(False) Me.EnvVarContainerSplitPanel.Panel1.ResumeLayout(False) diff --git a/Panels/Img_Ops/EnvironmentVariables/EnvVarManagementForm.vb b/Panels/Img_Ops/EnvironmentVariables/EnvVarManagementForm.vb index 42e199304..bf2c8a400 100644 --- a/Panels/Img_Ops/EnvironmentVariables/EnvVarManagementForm.vb +++ b/Panels/Img_Ops/EnvironmentVariables/EnvVarManagementForm.vb @@ -1,4 +1,4 @@ -Imports Microsoft.Win32 +Imports Microsoft.Win32 Public Class EnvVarManagementForm @@ -11,7 +11,7 @@ Public Class EnvVarManagementForm variableName As String = "" If VariableScope = EnvironmentVariable.EnvironmentVariableScope.Machine Then TextBox1.Text = machineEnvVars(Index).Name - TextBox2.Text = "Machine" + TextBox2.Text = LocalizationService.ForSection("EnvVars.Info")("Machine.Field") TextBox3.Text = machineEnvVars(Index).Value MoveToMachineScopeBtn.Enabled = False @@ -22,7 +22,7 @@ Public Class EnvVarManagementForm currentEnvVarIndex = New Tuple(Of EnvironmentVariable.EnvironmentVariableScope, Integer)(EnvironmentVariable.EnvironmentVariableScope.Machine, Index) Else TextBox1.Text = userEnvVars(Index).Name - TextBox2.Text = "User" + TextBox2.Text = LocalizationService.ForSection("EnvVars.Info")("User.Field") TextBox3.Text = userEnvVars(Index).Value currentEnvVarIndex = New Tuple(Of EnvironmentVariable.EnvironmentVariableScope, Integer)(EnvironmentVariable.EnvironmentVariableScope.User, Index) @@ -47,11 +47,11 @@ Public Class EnvVarManagementForm If CleanData Then envVarList = EnvironmentVariableHelper.GetEnvironmentVariableList(MainForm.MountDir) For Each envVar In envVarList.Where(Function(variable) variable.Scope = EnvironmentVariable.EnvironmentVariableScope.Machine) - SysEnvVarLV.Items.Add(New ListViewItem(New String() {String.Format("{0}{1}", envVar.Name, If(envVar.NoLongerExists, " (will be removed)", "")), envVar.Value})) + SysEnvVarLV.Items.Add(New ListViewItem(New String() {String.Format("{0}{1}", envVar.Name, If(envVar.NoLongerExists, LocalizationService.ForSection("EnvVars.Management")("Removed.Label"), "")), envVar.Value})) Next For Each envVar In envVarList.Where(Function(variable) variable.Scope = EnvironmentVariable.EnvironmentVariableScope.User) - UserEnvVarLV.Items.Add(New ListViewItem(New String() {String.Format("{0}{1}", envVar.Name, If(envVar.NoLongerExists, " (will be removed)", "")), envVar.Value})) + UserEnvVarLV.Items.Add(New ListViewItem(New String() {String.Format("{0}{1}", envVar.Name, If(envVar.NoLongerExists, LocalizationService.ForSection("EnvVars.Management")("Removed.Label"), "")), envVar.Value})) Next End Sub @@ -103,11 +103,9 @@ Public Class EnvVarManagementForm Private Sub SaveAllChangesBtn_Click(sender As Object, e As EventArgs) Handles SaveAllChangesBtn.Click Cursor = Cursors.WaitCursor If EnvironmentVariableHelper.SaveEnvironmentVariables(MainForm.MountDir, envVarList) Then - MsgBox("Environment variable information has been successfully saved to the registry of the target image." & vbCrLf & vbCrLf & - "A backup of the previous variable configuration has been saved to your desktop should you need it in case modifications do not go as planned." & vbCrLf & vbCrLf & - "Simply load the target image's SYSTEM hive and import this registry file.", vbOKOnly + vbInformation) + MsgBox(LocalizationService.ForSection("EnvVars.Management")("InfoLoaded.Message"), vbOKOnly + vbInformation) Else - MsgBox("Environment variable information could not be saved to the registry of the target image.", vbOKOnly + vbExclamation) + MsgBox(LocalizationService.ForSection("EnvVars.Management")("InfoSaved.Message"), vbOKOnly + vbExclamation) End If Cursor = Cursors.Arrow EnvVarDetailsPanel.Enabled = False @@ -253,4 +251,4 @@ Public Class EnvVarManagementForm RemoveEnvironmentVariable() ReloadEnvironmentVariableInformation() End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Img_Ops/FFU/ApplicationDriveSpecifier.Designer.vb b/Panels/Img_Ops/FFU/ApplicationDriveSpecifier.Designer.vb index c5a115a60..3fad71dba 100644 --- a/Panels/Img_Ops/FFU/ApplicationDriveSpecifier.Designer.vb +++ b/Panels/Img_Ops/FFU/ApplicationDriveSpecifier.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ApplicationDriveSpecifier Inherits System.Windows.Forms.Form @@ -60,7 +60,7 @@ Partial Class ApplicationDriveSpecifier Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.AppDrive")("Ok.Button") ' 'Cancel_Button ' @@ -71,7 +71,7 @@ Partial Class ApplicationDriveSpecifier Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.AppDrive")("Cancel.Button") ' 'RichTextBox1 ' @@ -109,7 +109,7 @@ Partial Class ApplicationDriveSpecifier Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(219, 13) Me.Label2.TabIndex = 2 - Me.Label2.Text = "Destination disk ID (\\.\PHYSICALDRIVE(n)):" + Me.Label2.Text = LocalizationService.ForSection("Designer.AppDrive")("Destination.Disk.Id.Label") ' 'Button2 ' @@ -118,7 +118,7 @@ Partial Class ApplicationDriveSpecifier Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 4 - Me.Button2.Text = "Refresh" + Me.Button2.Text = LocalizationService.ForSection("Designer.AppDrive")("Refresh.Button") Me.Button2.UseVisualStyleBackColor = True ' 'ListView1 @@ -138,22 +138,22 @@ Partial Class ApplicationDriveSpecifier ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Device ID" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.AppDrive")("DeviceID.Column") Me.ColumnHeader1.Width = 246 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Model" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.AppDrive")("Model.Column") Me.ColumnHeader2.Width = 347 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Partitions" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.AppDrive")("Partitions.Column") Me.ColumnHeader3.Width = 127 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Size" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.AppDrive")("Size.Column") Me.ColumnHeader4.Width = 179 ' 'ApplicationDriveSpecifier @@ -176,7 +176,7 @@ Partial Class ApplicationDriveSpecifier Me.Name = "ApplicationDriveSpecifier" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Specify target disk..." + Me.Text = LocalizationService.ForSection("Designer.AppDrive")("Target.Disk.Button") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/FFU/ApplicationDriveSpecifier.vb b/Panels/Img_Ops/FFU/ApplicationDriveSpecifier.vb index 38a9f230d..651e32963 100644 --- a/Panels/Img_Ops/FFU/ApplicationDriveSpecifier.vb +++ b/Panels/Img_Ops/FFU/ApplicationDriveSpecifier.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Text.Encoding @@ -26,115 +26,19 @@ Public Class ApplicationDriveSpecifier Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT DeviceID, Model, Partitions, Size FROM Win32_DiskDrive") Dim dskResults As ManagementObjectCollection = searcher.Get() DynaLog.LogMessage("Management object searcher returned " & dskResults.Count & " result(s)") - ListView1.Items.AddRange(dskResults.Cast(Of ManagementObject)().OrderBy(Function(result) result("DeviceID")).Select(Function(result) New ListViewItem(New String() {result("DeviceID"), result("Model"), result("Partitions"), result("Size") & " bytes (~" & Converters.BytesToReadableSize(result("Size")) & ")"})).ToArray()) + ListView1.Items.AddRange(dskResults.Cast(Of ManagementObject)().OrderBy(Function(result) result("DeviceID")).Select(Function(result) New ListViewItem(New String() {result("DeviceID"), result("Model"), result("Partitions"), result("Size") & LocalizationService.ForSection("AppDrive")("Bytes.Label") & Converters.BytesToReadableSize(result("Size")) & ")"})).ToArray()) End Sub Private Sub ApplicationDriveSpecifier_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Specify target disk..." - Label2.Text = "Destination disk ID (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Refresh" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Device ID" - ListView1.Columns(1).Text = "Model" - ListView1.Columns(2).Text = "Partitions" - ListView1.Columns(3).Text = "Size" - Case "ESN" - Text = "Especificar disco de destino..." - Label2.Text = "ID de disco (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Actualizar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "ID de dispositivo" - ListView1.Columns(1).Text = "Modelo" - ListView1.Columns(2).Text = "Particiones" - ListView1.Columns(3).Text = "Tamaño" - Case "FRA" - Text = "Spécifier le disque cible..." - Label2.Text = "ID de disque de destination (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Rafraîchir" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "ID de l'appareil" - ListView1.Columns(1).Text = "Modèle" - ListView1.Columns(2).Text = "Partitions" - ListView1.Columns(3).Text = "Taille" - Case "PTB", "PTG" - Text = "Especificar o disco de destino..." - Label2.Text = "ID do disco de destino (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Atualizar" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "ID do dispositivo" - ListView1.Columns(1).Text = "Modelo" - ListView1.Columns(2).Text = "Partições" - ListView1.Columns(3).Text = "Tamanho" - Case "ITA" - Text = "Specificare il disco di destinazione..." - Label2.Text = "ID disco di destinazione (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Aggiorna" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - ListView1.Columns(0).Text = "ID dispositivo" - ListView1.Columns(1).Text = "Modello" - ListView1.Columns(2).Text = "Partizioni" - ListView1.Columns(3).Text = "Dimensione" - End Select - Case 1 - Text = "Specify target disk..." - Label2.Text = "Destination disk ID (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Refresh" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Device ID" - ListView1.Columns(1).Text = "Model" - ListView1.Columns(2).Text = "Partitions" - ListView1.Columns(3).Text = "Size" - Case 2 - Text = "Especificar disco de destino..." - Label2.Text = "ID de disco (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Actualizar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "ID de dispositivo" - ListView1.Columns(1).Text = "Modelo" - ListView1.Columns(2).Text = "Particiones" - ListView1.Columns(3).Text = "Tamaño" - Case 3 - Text = "Spécifier le disque cible..." - Label2.Text = "ID de disque de destination (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Rafraîchir" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "ID de l'appareil" - ListView1.Columns(1).Text = "Modèle" - ListView1.Columns(2).Text = "Partitions" - ListView1.Columns(3).Text = "Taille" - Case 4 - Text = "Especificar o disco de destino..." - Label2.Text = "ID do disco de destino (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Atualizar" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "ID do dispositivo" - ListView1.Columns(1).Text = "Modelo" - ListView1.Columns(2).Text = "Partições" - ListView1.Columns(3).Text = "Tamanho" - Case 5 - Text = "Specificare il disco di destinazione..." - Label2.Text = "ID disco di destinazione (\\.\PHYSICALDRIVE(n)):" - Button2.Text = "Aggiorna" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - ListView1.Columns(0).Text = "ID dispositivo" - ListView1.Columns(1).Text = "Modello" - ListView1.Columns(2).Text = "Partizioni" - ListView1.Columns(3).Text = "Dimensione" - End Select + Text = LocalizationService.ForSection("AppDrive")("Target.Disk.Button") + Label2.Text = LocalizationService.ForSection("AppDrive")("Destination.Disk.Id.Label") + Button2.Text = LocalizationService.ForSection("AppDrive")("Refresh.Button") + OK_Button.Text = LocalizationService.ForSection("AppDrive")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("AppDrive")("Cancel.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("AppDrive")("DeviceID.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("AppDrive")("Model.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("AppDrive")("Partitions.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("AppDrive")("Size.Column") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor TextBox1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Img_Ops/FFU/FfuApply.Designer.vb b/Panels/Img_Ops/FFU/FfuApply.Designer.vb index 5dbdd72a0..ebff9433d 100644 --- a/Panels/Img_Ops/FFU/FfuApply.Designer.vb +++ b/Panels/Img_Ops/FFU/FfuApply.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class FfuApply Inherits System.Windows.Forms.Form @@ -83,7 +83,7 @@ Partial Class FfuApply Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.FFUApply")("Ok.Button") ' 'Cancel_Button ' @@ -94,7 +94,7 @@ Partial Class FfuApply Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.FFUApply")("Cancel.Button") ' 'GroupBox1 ' @@ -108,7 +108,7 @@ Partial Class FfuApply Me.GroupBox1.Size = New System.Drawing.Size(659, 81) Me.GroupBox1.TabIndex = 7 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Source" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.FFUApply")("Source.Group") ' 'Button1 ' @@ -117,7 +117,7 @@ Partial Class FfuApply Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.FFUApply")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'UseMountedImgBtn @@ -127,7 +127,7 @@ Partial Class FfuApply Me.UseMountedImgBtn.Name = "UseMountedImgBtn" Me.UseMountedImgBtn.Size = New System.Drawing.Size(114, 23) Me.UseMountedImgBtn.TabIndex = 2 - Me.UseMountedImgBtn.Text = "Use mounted image" + Me.UseMountedImgBtn.Text = LocalizationService.ForSection("Designer.FFUApply")("Mounted.Image.Label") Me.UseMountedImgBtn.UseVisualStyleBackColor = True ' 'TextBox1 @@ -144,7 +144,7 @@ Partial Class FfuApply Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(92, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Source image file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.FFUApply")("SourceImageFile.Label") ' 'GroupBox4 ' @@ -154,7 +154,7 @@ Partial Class FfuApply Me.GroupBox4.Size = New System.Drawing.Size(319, 339) Me.GroupBox4.TabIndex = 8 Me.GroupBox4.TabStop = False - Me.GroupBox4.Text = "SFU file pattern" + Me.GroupBox4.Text = LocalizationService.ForSection("Designer.FFUApply")("SfufilePattern.Group") ' 'SFUFilePanelContainer ' @@ -201,7 +201,7 @@ Partial Class FfuApply ' Me.ToolStripStatusLabel1.Name = "ToolStripStatusLabel1" Me.ToolStripStatusLabel1.Size = New System.Drawing.Size(120, 17) - Me.ToolStripStatusLabel1.Text = "ToolStripStatusLabel1" + Me.ToolStripStatusLabel1.Text = LocalizationService.ForSection("Designer.FFUApply")("Status.InitialLabel") ' 'Panel1 ' @@ -229,7 +229,7 @@ Partial Class FfuApply Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(145, 23) Me.Button5.TabIndex = 2 - Me.Button5.Text = "Scan pattern" + Me.Button5.Text = LocalizationService.ForSection("Designer.FFUApply")("ScanPattern.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button4 @@ -239,7 +239,7 @@ Partial Class FfuApply Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(145, 23) Me.Button4.TabIndex = 2 - Me.Button4.Text = "Use name of the image" + Me.Button4.Text = LocalizationService.ForSection("Designer.FFUApply")("Name.Image.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Label4 @@ -249,7 +249,7 @@ Partial Class FfuApply Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(87, 13) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Namimg pattern:" + Me.Label4.Text = LocalizationService.ForSection("Designer.FFUApply")("NamingPattern.Label") ' 'GroupBox3 ' @@ -263,7 +263,7 @@ Partial Class FfuApply Me.GroupBox3.Size = New System.Drawing.Size(659, 252) Me.GroupBox3.TabIndex = 9 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Destination" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.FFUApply")("Destination.Group") ' 'RichTextBox1 ' @@ -287,7 +287,7 @@ Partial Class FfuApply Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(71, 13) Me.Label1.TabIndex = 4 - Me.Label1.Text = "Drive Details:" + Me.Label1.Text = LocalizationService.ForSection("Designer.FFUApply")("DriveDetails.Label") ' 'Label5 ' @@ -296,7 +296,7 @@ Partial Class FfuApply Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(92, 13) Me.Label5.TabIndex = 4 - Me.Label5.Text = "Destination drive:" + Me.Label5.Text = LocalizationService.ForSection("Designer.FFUApply")("DestinationDrive.Label") ' 'Button2 ' @@ -305,7 +305,7 @@ Partial Class FfuApply Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "Specify..." + Me.Button2.Text = LocalizationService.ForSection("Designer.FFUApply")("Specify.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -317,8 +317,8 @@ Partial Class FfuApply ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Full Flash Utility files|*.ffu|Split FFU files|*.sfu" - Me.OpenFileDialog1.Title = "Please specify the source image to apply" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.FFUApply")("Full.Flash.Utility.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.FFUApply")("Source.Image.Required.Title") ' 'ImageTaskHeader1 ' @@ -341,7 +341,7 @@ Partial Class FfuApply Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(120, 17) Me.CheckBox4.TabIndex = 10 - Me.CheckBox4.Text = "Reference SFU files" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.FFUApply")("Reference.Sfufiles.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'FfuApply @@ -363,7 +363,7 @@ Partial Class FfuApply Me.Name = "FfuApply" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Apply a FFU file" + Me.Text = LocalizationService.ForSection("Designer.FFUApply")("File.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/FFU/FfuApply.vb b/Panels/Img_Ops/FFU/FfuApply.vb index 48a36b664..5becd9328 100644 --- a/Panels/Img_Ops/FFU/FfuApply.vb +++ b/Panels/Img_Ops/FFU/FfuApply.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports System.Management Imports DISMTools.Utilities @@ -10,31 +10,7 @@ Public Class FfuApply If Not ProgressPanel.IsDisposed Then ProgressPanel.Dispose() If TextBox1.Text = "" Or Not File.Exists(TextBox1.Text) Then DynaLog.LogMessage("Either no image file has been specified or it does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The specified image file is not valid. Please specify a valid image and try again.", vbOKOnly + vbCritical, Label1.Text) - Case "ESN" - MsgBox("El archivo de imagen especificado no es válido. Especifique una imagen válida e inténtelo de nuevo.", vbOKOnly + vbCritical, Label1.Text) - Case "FRA" - MsgBox("Le fichier image spécifié n'est pas valide. Veuillez spécifier une image valide et réessayer.", vbOKOnly + vbCritical, Label1.Text) - Case "PTB", "PTG" - MsgBox("O ficheiro de imagem especificado não é válido. Especifique uma imagem válida e tente novamente.", vbOKOnly + vbCritical, Label1.Text) - Case "ITA" - MsgBox("Il file immagine specificato non è valido. Specificare un'immagine valida e riprovare.", vbOKOnly + vbCritical, Label1.Text) - End Select - Case 1 - MsgBox("The specified image file is not valid. Please specify a valid image and try again.", vbOKOnly + vbCritical, Label1.Text) - Case 2 - MsgBox("El archivo de imagen especificado no es válido. Especifique una imagen válida e inténtelo de nuevo.", vbOKOnly + vbCritical, Label1.Text) - Case 3 - MsgBox("Le fichier image spécifié n'est pas valide. Veuillez spécifier une image valide et réessayer.", vbOKOnly + vbCritical, Label1.Text) - Case 4 - MsgBox("O ficheiro de imagem especificado não é válido. Especifique uma imagem válida e tente novamente.", vbOKOnly + vbCritical, Label1.Text) - Case 5 - MsgBox("Il file immagine specificato non è valido. Specificare un'immagine valida e riprovare.", vbOKOnly + vbCritical, Label1.Text) - End Select + MsgBox(LocalizationService.ForSection("FfuApply.Validation")("ImageFile.Message"), vbOKOnly + vbCritical, Label1.Text) Exit Sub End If ProgressPanel.FFUApplicationSourceImg = TextBox1.Text @@ -46,7 +22,7 @@ Public Class FfuApply End If ' TODO until we find a way to grab the manifest of the unmounted FFU, simply ask. - MsgBox("Make sure that the destination disk is as large or larger than the specified FFU file when mounted. If the destination disk is larger than the FFU's expanded partitions, please extend partitions to their full extent.", vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("FFU.Apply.Messages")("Destination.Disk.Message"), vbOKOnly + vbInformation, ImageTaskHeader1.ItemText) Me.DialogResult = System.Windows.Forms.DialogResult.OK ProgressPanel.OperationNum = 2 @@ -88,41 +64,8 @@ Public Class FfuApply ListBox1.Items.Clear() If TextBox1.Text = "" Or PatternName = "" Then DynaLog.LogMessage("Either no source image file has been specified or no pattern has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a source FFU file. This will let you use the SFU files for later image application", vbOKOnly + vbCritical, "Apply an image") - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SFU files" - Case "ESN" - MsgBox("Especifique el arhivo FFU de origen. Esto le permitirá usar los archivos SFU para la aplicación posterior de la imagen", vbOKOnly + vbCritical, "Aplicar una imagen") - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SFU" - Case "FRA" - MsgBox("Veuillez indiquer un fichier FFU original. Cela vous permettra d'utiliser les fichiers SFU pour une application d'image ultérieure.", vbOKOnly + vbCritical, "Appliquer une image") - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SFU" - Case "PTB", "PTG" - MsgBox("Especifique um ficheiro FFU de origem. Isto permitir-lhe-á utilizar os ficheiros SFU para uma aplicação de imagem posterior", vbOKOnly + vbCritical, "Aplicar uma imagem") - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SFU" - Case "ITA" - MsgBox("Specificare un file FFU di origine. In questo modo sarà possibile utilizzare i file SFU per una successiva applicazione di immagini", vbOKOnly + vbCritical, "Applica un'immagine") - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SFU" - End Select - Case 1 - MsgBox("Please specify a source FFU file. This will let you use the SFU files for later image application", vbOKOnly + vbCritical, "Apply an image") - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SFU files" - Case 2 - MsgBox("Especifique el arhivo FFU de origen. Esto le permitirá usar los archivos SFU para la aplicación posterior de la imagen", vbOKOnly + vbCritical, "Aplicar una imagen") - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SFU" - Case 3 - MsgBox("Veuillez indiquer un fichier FFU original. Cela vous permettra d'utiliser les fichiers SFU pour une application d'image ultérieure.", vbOKOnly + vbCritical, "Appliquer une image") - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SFU" - Case 4 - MsgBox("Especifique um ficheiro FFU de origem. Isto permitir-lhe-á utilizar os ficheiros SFU para uma aplicação de imagem posterior", vbOKOnly + vbCritical, "Aplicar uma imagem") - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SFU" - Case 5 - MsgBox("Specificare un file FFU di origine. In questo modo sarà possibile utilizzare i file SFU per una successiva applicazione di immagini", vbOKOnly + vbCritical, "Applica un'immagine") - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SFU" - End Select + MsgBox(LocalizationService.ForSection("FfuApply.ScanSFUPattern")("Source.File.Required.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("FfuApply.ScanSFUPattern")("ApplyImage.Message")) + ToolStripStatusLabel1.Text = LocalizationService.ForSection("FfuApply.ScanSFUPattern").Format("Naming.Returns.Item", ListBox1.Items.Count) Beep() Exit Sub End If @@ -133,31 +76,7 @@ Public Class FfuApply End If Next DynaLog.LogMessage("Pattern search results: " & ListBox1.Items.Count) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SFU files" - Case "ESN" - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SFU" - Case "FRA" - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SFU" - Case "PTB", "PTG" - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SFU" - Case "ITA" - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SFU" - End Select - Case 1 - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SFU files" - Case 2 - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SFU" - Case 3 - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SFU" - Case 4 - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SFU" - Case 5 - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SFU" - End Select + ToolStripStatusLabel1.Text = LocalizationService.ForSection("FfuApply.ScanSFUPattern").Format("Naming.Returns.Label", ListBox1.Items.Count) If ListBox1.Items.Count <= 0 Then Beep() End Sub @@ -185,31 +104,7 @@ Public Class FfuApply TextBox2.ForeColor = ForeColor TextBox4.ForeColor = ForeColor ListBox1.ForeColor = ForeColor - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ToolStripStatusLabel1.Text = "Please specify the naming pattern of the SFU files" - Case "ESN" - ToolStripStatusLabel1.Text = "Especifique la nomenclatura del patrón de los archivos SFU" - Case "FRA" - ToolStripStatusLabel1.Text = "Veuillez spécifier le modèle de dénomination des fichiers SFU" - Case "PTB", "PTG" - ToolStripStatusLabel1.Text = "Especifique o padrão de nomenclatura dos ficheiros SFU" - Case "ITA" - ToolStripStatusLabel1.Text = "Specificare il modello di denominazione dei file SFU" - End Select - Case 1 - ToolStripStatusLabel1.Text = "Please specify the naming pattern of the SFU files" - Case 2 - ToolStripStatusLabel1.Text = "Especifique la nomenclatura del patrón de los archivos SFU" - Case 3 - ToolStripStatusLabel1.Text = "Veuillez spécifier le modèle de dénomination des fichiers SFU" - Case 4 - ToolStripStatusLabel1.Text = "Especifique o padrão de nomenclatura dos ficheiros SFU" - Case 5 - ToolStripStatusLabel1.Text = "Specificare il modello di denominazione dei file SFU" - End Select + ToolStripStatusLabel1.Text = LocalizationService.ForSection("FfuApply")("NamingPattern.Required.Label") If MainForm.SourceImg = "N/A" Or Not File.Exists(MainForm.SourceImg) Or MainForm.OnlineManagement Or MainForm.OfflineManagement Then UseMountedImgBtn.Enabled = False Else diff --git a/Panels/Img_Ops/FFU/FfuCapture.Designer.vb b/Panels/Img_Ops/FFU/FfuCapture.Designer.vb index 9facb6055..0615cc5a8 100644 --- a/Panels/Img_Ops/FFU/FfuCapture.Designer.vb +++ b/Panels/Img_Ops/FFU/FfuCapture.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class FfuCapture Inherits System.Windows.Forms.Form @@ -74,7 +74,7 @@ Partial Class FfuCapture Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.FFUCapture")("Ok.Button") ' 'Cancel_Button ' @@ -85,7 +85,7 @@ Partial Class FfuCapture Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.FFUCapture")("Cancel.Button") ' 'ImageTaskHeader1 ' @@ -113,7 +113,7 @@ Partial Class FfuCapture Me.GroupBox3.Size = New System.Drawing.Size(760, 176) Me.GroupBox3.TabIndex = 10 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Source" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.FFUCapture")("Source.Group") ' 'RichTextBox1 ' @@ -137,7 +137,7 @@ Partial Class FfuCapture Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(71, 13) Me.Label1.TabIndex = 4 - Me.Label1.Text = "Drive Details:" + Me.Label1.Text = LocalizationService.ForSection("Designer.FFUCapture")("DriveDetails.Label") ' 'Label5 ' @@ -146,7 +146,7 @@ Partial Class FfuCapture Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(71, 13) Me.Label5.TabIndex = 4 - Me.Label5.Text = "Source drive:" + Me.Label5.Text = LocalizationService.ForSection("Designer.FFUCapture")("SourceDrive.Label") ' 'Button2 ' @@ -156,7 +156,7 @@ Partial Class FfuCapture Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "Specify..." + Me.Button2.Text = LocalizationService.ForSection("Designer.FFUCapture")("Specify.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -178,7 +178,7 @@ Partial Class FfuCapture Me.GroupBox1.Size = New System.Drawing.Size(760, 64) Me.GroupBox1.TabIndex = 11 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Destination" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.FFUCapture")("Destination.Group") ' 'Button1 ' @@ -188,7 +188,7 @@ Partial Class FfuCapture Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 10 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.FFUCapture")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -207,7 +207,7 @@ Partial Class FfuCapture Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(119, 13) Me.Label2.TabIndex = 8 - Me.Label2.Text = "Destination image file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.FFUCapture")("Destination.ImageFile.Label") ' 'GroupBox2 ' @@ -223,7 +223,7 @@ Partial Class FfuCapture Me.GroupBox2.Size = New System.Drawing.Size(760, 148) Me.GroupBox2.TabIndex = 12 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.FFUCapture")("Options.Group") ' 'Label8 ' @@ -234,19 +234,19 @@ Partial Class FfuCapture Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(552, 13) Me.Label8.TabIndex = 13 - Me.Label8.Text = "(Description goes here)" + Me.Label8.Text = LocalizationService.ForSection("Designer.FFUCapture")("Description.Goes.Label") ' 'ComboBox1 ' Me.ComboBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"none", "default"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.FFUCapture")("None.Item"), LocalizationService.ForSection("Designer.FFUCapture")("Default.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(199, 79) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(552, 21) Me.ComboBox1.TabIndex = 12 - Me.ComboBox1.Text = "default" + Me.ComboBox1.Text = LocalizationService.ForSection("Designer.FFUCapture")("Default.Item") ' 'TextBox4 ' @@ -264,7 +264,7 @@ Partial Class FfuCapture Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(183, 13) Me.Label7.TabIndex = 8 - Me.Label7.Text = "Destination image compression type:" + Me.Label7.Text = LocalizationService.ForSection("Designer.FFUCapture")("CompressionType.Label") ' 'Label4 ' @@ -273,7 +273,7 @@ Partial Class FfuCapture Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(151, 13) Me.Label4.TabIndex = 8 - Me.Label4.Text = "Destination image description:" + Me.Label4.Text = LocalizationService.ForSection("Designer.FFUCapture")("Dest.Image.Description.Label") ' 'TextBox3 ' @@ -291,11 +291,11 @@ Partial Class FfuCapture Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(131, 13) Me.Label3.TabIndex = 5 - Me.Label3.Text = "Destination image name:" + Me.Label3.Text = LocalizationService.ForSection("Designer.FFUCapture")("Destination.Image.Name.Label") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "Full Flash Utility files|*.ffu" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.FFUCapture")("Full.Flash.Utility.Filter") ' 'FfuCapture ' @@ -316,7 +316,7 @@ Partial Class FfuCapture Me.Name = "FfuCapture" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Capture a FFU file" + Me.Text = LocalizationService.ForSection("Designer.FFUCapture")("File.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox3.ResumeLayout(False) Me.GroupBox3.PerformLayout() diff --git a/Panels/Img_Ops/FFU/FfuCapture.vb b/Panels/Img_Ops/FFU/FfuCapture.vb index 3a06be394..2d90ab05f 100644 --- a/Panels/Img_Ops/FFU/FfuCapture.vb +++ b/Panels/Img_Ops/FFU/FfuCapture.vb @@ -1,8 +1,8 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class FfuCapture - Dim CompressionTypeStrings() As String = New String(1) {"No compression will be applied for FFU files. Choose this option if you want to split the resulting file.", "Default compression will be applied for FFU files."} + Dim CompressionTypeStrings() As String = New String(1) {"", ""} Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click DynaLog.LogMessage("Disposing of progress panel if not disposed of previously...") @@ -11,24 +11,22 @@ Public Class FfuCapture DynaLog.LogMessage("Checking fields...") If Not WMIDiskHelper.DriveIdExists(TextBox2.Text) Then DynaLog.LogMessage("A device with the provided ID does not exist.") - MsgBox("The specified source drive does not exist.", vbOKOnly + vbCritical, Label1.Text) + MsgBox(LocalizationService.ForSection("FFU.Capture.Messages")("Source.Drive.Exist.Label"), vbOKOnly + vbCritical, Label1.Text) Exit Sub End If If Not IsAnyPartitionSysprepped(TextBox2.Text) Then - If MsgBox(String.Format("The source drive that you are capturing may not have been previously prepared by Sysprep. " & - "It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}" & - "Do you want to continue?", Environment.NewLine), + If MsgBox(LocalizationService.ForSection("FFU.Capture.Messages").Format("Source.Drive.Message", Environment.NewLine), vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then Exit Sub End If If TextBox1.Text = "" Then - MsgBox("Please provide a destination path for the FFU file.", vbOKOnly + vbCritical, Label1.Text) + MsgBox(LocalizationService.ForSection("FFU.Capture.Messages")("Provide.Dest.Path.Label"), vbOKOnly + vbCritical, Label1.Text) Exit Sub End If If TextBox3.Text = "" Then - MsgBox("Please provide a name for the destination FFU file.", vbOKOnly + vbCritical, Label1.Text) + MsgBox(LocalizationService.ForSection("FFU.Capture.Messages")("Provide.Name.Dest.Label"), vbOKOnly + vbCritical, Label1.Text) Exit Sub End If @@ -84,6 +82,8 @@ Public Class FfuCapture Private Sub FfuCapture_Load(sender As Object, e As EventArgs) Handles MyBase.Load + CompressionTypeStrings(0) = LocalizationService.ForSection("FfuCapture")("No.Compression.None.Message") + CompressionTypeStrings(1) = LocalizationService.ForSection("FfuCapture")("Default.Compression.Item") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -148,9 +148,9 @@ Public Class FfuCapture End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged - If ComboBox1.SelectedItem = "none" Then + If ComboBox1.SelectedIndex = 0 Then Label8.Text = CompressionTypeStrings(0) - ElseIf ComboBox1.SelectedItem = "default" Then + ElseIf ComboBox1.SelectedIndex = 1 Then Label8.Text = CompressionTypeStrings(1) End If End Sub diff --git a/Panels/Img_Ops/FFU/FfuInfoDialog.Designer.vb b/Panels/Img_Ops/FFU/FfuInfoDialog.Designer.vb index 136e10f8f..8aafc14f0 100644 --- a/Panels/Img_Ops/FFU/FfuInfoDialog.Designer.vb +++ b/Panels/Img_Ops/FFU/FfuInfoDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class FfuInfoDialog Inherits System.Windows.Forms.Form @@ -81,7 +81,7 @@ Partial Class FfuInfoDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Ok.Button") ' 'Cancel_Button ' @@ -92,7 +92,7 @@ Partial Class FfuInfoDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Cancel.Button") ' 'TabControl1 ' @@ -124,7 +124,7 @@ Partial Class FfuInfoDialog Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) Me.TabPage1.Size = New System.Drawing.Size(463, 355) Me.TabPage1.TabIndex = 0 - Me.TabPage1.Text = "FFU Header" + Me.TabPage1.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Ffuheader.Tab") Me.TabPage1.UseVisualStyleBackColor = True ' 'Label10 @@ -136,7 +136,7 @@ Partial Class FfuInfoDialog Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(262, 13) Me.Label10.TabIndex = 2 - Me.Label10.Text = " " + Me.Label10.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Value.Label") ' 'Label8 ' @@ -147,7 +147,7 @@ Partial Class FfuInfoDialog Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(262, 13) Me.Label8.TabIndex = 2 - Me.Label8.Text = " " + Me.Label8.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Value.Label") ' 'Label6 ' @@ -158,7 +158,7 @@ Partial Class FfuInfoDialog Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(262, 13) Me.Label6.TabIndex = 2 - Me.Label6.Text = " " + Me.Label6.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Value.Label") ' 'Label4 ' @@ -169,7 +169,7 @@ Partial Class FfuInfoDialog Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(262, 13) Me.Label4.TabIndex = 2 - Me.Label4.Text = " " + Me.Label4.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Value.Label") ' 'Label9 ' @@ -178,7 +178,7 @@ Partial Class FfuInfoDialog Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(99, 13) Me.Label9.TabIndex = 2 - Me.Label9.Text = "Compression Type:" + Me.Label9.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("CompressionType.Label") ' 'Label7 ' @@ -187,7 +187,7 @@ Partial Class FfuInfoDialog Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(68, 13) Me.Label7.TabIndex = 2 - Me.Label7.Text = "FFU Version:" + Me.Label7.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Ffuversion.Label") ' 'Label5 ' @@ -196,7 +196,7 @@ Partial Class FfuInfoDialog Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(96, 13) Me.Label5.TabIndex = 2 - Me.Label5.Text = "Physical Disk Path:" + Me.Label5.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Physical.Disk.Path.Label") ' 'Label3 ' @@ -205,7 +205,7 @@ Partial Class FfuInfoDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(121, 13) Me.Label3.TabIndex = 2 - Me.Label3.Text = "VHD Storage Device ID:" + Me.Label3.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Vhdstorage.Device.ID.Label") ' 'TextBox2 ' @@ -232,7 +232,7 @@ Partial Class FfuInfoDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(90, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Mounted VHD ID:" + Me.Label2.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("MountedVHDID.Label") ' 'Label1 ' @@ -241,7 +241,7 @@ Partial Class FfuInfoDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(101, 13) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Mounted VHD path:" + Me.Label1.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("MountedVhdpath.Label") ' 'TabPage2 ' @@ -255,7 +255,7 @@ Partial Class FfuInfoDialog Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) Me.TabPage2.Size = New System.Drawing.Size(463, 355) Me.TabPage2.TabIndex = 1 - Me.TabPage2.Text = "Mounted VHD" + Me.TabPage2.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("MountedVHD.Tab") Me.TabPage2.UseVisualStyleBackColor = True ' 'Panel2 @@ -318,7 +318,7 @@ Partial Class FfuInfoDialog Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(203, 13) Me.Label12.TabIndex = 1 - Me.Label12.Text = "Information about the selected partition:" + Me.Label12.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Selected.Partition.Label") ' 'Label11 ' @@ -329,8 +329,7 @@ Partial Class FfuInfoDialog Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(440, 30) Me.Label11.TabIndex = 1 - Me.Label11.Text = "This mounted FFU file contains the following partitions. To show details of a spe" & _ - "cific partition, select it from the list below:" + Me.Label11.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Mounted.FFU.Message") ' 'TabPage3 ' @@ -339,7 +338,7 @@ Partial Class FfuInfoDialog Me.TabPage3.Name = "TabPage3" Me.TabPage3.Size = New System.Drawing.Size(463, 355) Me.TabPage3.TabIndex = 2 - Me.TabPage3.Text = "Manifest" + Me.TabPage3.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Manifest.Tab") Me.TabPage3.UseVisualStyleBackColor = True ' 'RichTextBox2 @@ -371,7 +370,7 @@ Partial Class FfuInfoDialog Me.Name = "FfuInfoDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Full Flash Utility (FFU) Information" + Me.Text = LocalizationService.ForSection("Designer.FFUInfoDialog")("Full.Flash.Utility.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.TabControl1.ResumeLayout(False) Me.TabPage1.ResumeLayout(False) diff --git a/Panels/Img_Ops/FFU/FfuOptimize.Designer.vb b/Panels/Img_Ops/FFU/FfuOptimize.Designer.vb index 0a485c8bd..f3a82e760 100644 --- a/Panels/Img_Ops/FFU/FfuOptimize.Designer.vb +++ b/Panels/Img_Ops/FFU/FfuOptimize.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class FfuOptimize Inherits System.Windows.Forms.Form @@ -62,7 +62,7 @@ Partial Class FfuOptimize Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.FFUOptimize")("Ok.Button") ' 'Cancel_Button ' @@ -73,7 +73,7 @@ Partial Class FfuOptimize Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.FFUOptimize")("Cancel.Button") ' 'ImageTaskHeader1 ' @@ -96,7 +96,7 @@ Partial Class FfuOptimize Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 26 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.FFUOptimize")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -113,7 +113,7 @@ Partial Class FfuOptimize Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(113, 13) Me.Label1.TabIndex = 23 - Me.Label1.Text = "Image file to optimize:" + Me.Label1.Text = LocalizationService.ForSection("Designer.FFUOptimize")("ImageFile.Label") ' 'CheckBox1 ' @@ -122,7 +122,7 @@ Partial Class FfuOptimize Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(386, 17) Me.CheckBox1.TabIndex = 27 - Me.CheckBox1.Text = "Optimize a partition other than the default partition in the specified FFU file" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.FFUOptimize")("Default.Partition.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Panel1 @@ -142,7 +142,7 @@ Partial Class FfuOptimize Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(90, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Partition number:" + Me.Label2.Text = LocalizationService.ForSection("Designer.FFUOptimize")("PartitionNumber.Label") ' 'NumericUpDown1 ' @@ -156,8 +156,8 @@ Partial Class FfuOptimize ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Full Flash Utility files|*.ffu|Split FFU files|*.sfu" - Me.OpenFileDialog1.Title = "Please specify the source image to apply" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.FFUOptimize")("Full.Flash.Utility.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.FFUOptimize")("OpenFile.Title") ' 'FfuOptimize ' @@ -180,7 +180,7 @@ Partial Class FfuOptimize Me.Name = "FfuOptimize" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Optimize FFU images" + Me.Text = LocalizationService.ForSection("Designer.FFUOptimize")("Ffuimages.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Panel1.ResumeLayout(False) Me.Panel1.PerformLayout() diff --git a/Panels/Img_Ops/FFU/FfuOptimize.vb b/Panels/Img_Ops/FFU/FfuOptimize.vb index 93cdde4be..5c2764f6f 100644 --- a/Panels/Img_Ops/FFU/FfuOptimize.vb +++ b/Panels/Img_Ops/FFU/FfuOptimize.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class FfuOptimize @@ -8,7 +8,7 @@ Public Class FfuOptimize If TextBox1.Text = "" OrElse Not File.Exists(TextBox1.Text) Then DynaLog.LogMessage("The source image file has not been specified or it does not exist in the file system.") - MsgBox("Please specify the path of the image you want to optimize and try again. Also, make sure that that path exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("FFU.Optimize.Messages")("Path.Image.Required.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If diff --git a/Panels/Img_Ops/FFU/FfuSplit.Designer.vb b/Panels/Img_Ops/FFU/FfuSplit.Designer.vb index 8a5a0463d..c1ce0cfb5 100644 --- a/Panels/Img_Ops/FFU/FfuSplit.Designer.vb +++ b/Panels/Img_Ops/FFU/FfuSplit.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class FfuSplit Inherits System.Windows.Forms.Form @@ -65,7 +65,7 @@ Partial Class FfuSplit Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.FFUSplit")("Ok.Button") ' 'Cancel_Button ' @@ -76,7 +76,7 @@ Partial Class FfuSplit Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.FFUSplit")("Cancel.Button") ' 'ImageTaskHeader1 ' @@ -99,7 +99,7 @@ Partial Class FfuSplit Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(129, 17) Me.CheckBox1.TabIndex = 29 - Me.CheckBox1.Text = "Check image integrity" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.FFUSplit")("Integrity.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'NumericUpDown1 @@ -119,7 +119,7 @@ Partial Class FfuSplit Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 26 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.FFUSplit")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -129,7 +129,7 @@ Partial Class FfuSplit Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 27 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.FFUSplit")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label5 @@ -141,8 +141,7 @@ Partial Class FfuSplit Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(603, 34) Me.Label5.TabIndex = 22 - Me.Label5.Text = "Do note that, to accommodate a large file in the image, a split image file may be" & _ - " larger than the specified value" + Me.Label5.Text = LocalizationService.ForSection("Designer.FFUSplit")("LargeFile.Note.Message") ' 'Label4 ' @@ -151,7 +150,7 @@ Partial Class FfuSplit Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(183, 13) Me.Label4.TabIndex = 23 - Me.Label4.Text = "Maximum size of split images (in MB):" + Me.Label4.Text = LocalizationService.ForSection("Designer.FFUSplit")("Maximum.Size.Images.Label") ' 'Label3 ' @@ -160,7 +159,7 @@ Partial Class FfuSplit Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(225, 13) Me.Label3.TabIndex = 24 - Me.Label3.Text = "Name and path of the destination split image:" + Me.Label3.Text = LocalizationService.ForSection("Designer.FFUSplit")("Name.Path.Destination.Label") ' 'TextBox2 ' @@ -176,7 +175,7 @@ Partial Class FfuSplit Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(110, 13) Me.Label2.TabIndex = 25 - Me.Label2.Text = "Source image to split:" + Me.Label2.Text = LocalizationService.ForSection("Designer.FFUSplit")("Source.Image.Label") ' 'TextBox1 ' @@ -187,13 +186,13 @@ Partial Class FfuSplit ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "SFU files|*.sfu" - Me.SaveFileDialog1.Title = "Specify the target location of the split images:" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.FFUSplit")("Sfufiles.Filter") + Me.SaveFileDialog1.Title = LocalizationService.ForSection("Designer.FFUSplit")("Target.Location.Title") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Full Flash Utility files|*.ffu" - Me.OpenFileDialog1.Title = "Specify the source WIM file to split:" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.FFUSplit")("Full.Flash.Utility.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.FFUSplit")("Source.WIM.File.Title") ' 'FfuSplit ' @@ -221,7 +220,7 @@ Partial Class FfuSplit Me.Name = "FfuSplit" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Split FFU images" + Me.Text = LocalizationService.ForSection("Designer.FFUSplit")("SplitFfuimages.Label") Me.TableLayoutPanel1.ResumeLayout(False) CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/FFU/FfuSplit.vb b/Panels/Img_Ops/FFU/FfuSplit.vb index 20958b265..b0f4d02f8 100644 --- a/Panels/Img_Ops/FFU/FfuSplit.vb +++ b/Panels/Img_Ops/FFU/FfuSplit.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Public Class FfuSplit @@ -15,61 +15,13 @@ Public Class FfuSplit ProgressPanel.SFUSplitTargetFile = TextBox2.Text Else DynaLog.LogMessage("Either no target file has been specified or its directory does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a name and path for the target SFU file and try again. Also, make sure that the target path exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Especifique un nombre y un directorio para el archivo SFU de destino e inténtelo de nuevo. Asegúrese también de que el directorio de destino exista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Veuillez indiquer un nom et un chemin pour le fichier SFU cible et réessayez. Assurez-vous également que le chemin d'accès à la cible existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Especifique um nome e uma localização para o ficheiro SFU de destino e tente novamente. Além disso, certifique-se de que o caminho de destino existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Specificare un nome e un percorso per il file SFU di destinazione e riprovare. Assicurarsi inoltre che il percorso di destinazione esista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("Please specify a name and path for the target SFU file and try again. Also, make sure that the target path exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Especifique un nombre y un directorio para el archivo SFU de destino e inténtelo de nuevo. Asegúrese también de que el directorio de destino exista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Veuillez indiquer un nom et un chemin pour le fichier SFU cible et réessayez. Assurez-vous également que le chemin d'accès à la cible existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Especifique um nome e uma localização para o ficheiro SFU de destino e tente novamente. Além disso, certifique-se de que o caminho de destino existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Specificare un nome e un percorso per il file SFU di destinazione e riprovare. Assicurarsi inoltre che il percorso di destinazione esista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("FfuSplit.Validation")("Name.Required.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.SFUSplitCheckIntegrity = CheckBox1.Checked Else DynaLog.LogMessage("Either no source FFU file has been specified or it does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a source FFU file and try again. Also, make sure that it exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Especifique un archivo FFU de origen e inténtelo de nuevo. Asegúrese también de que el archivo exista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Veuillez indiquer un fichier FFU source et réessayer. Assurez-vous également qu'il existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Especifique um ficheiro FFU de origem e tente novamente. Além disso, certifique-se de que ele existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Specificare un file FFU di origine e riprovare. Assicurarsi inoltre che esista", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("Please specify a source FFU file and try again. Also, make sure that it exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Especifique un archivo FFU de origen e inténtelo de nuevo. Asegúrese también de que el archivo exista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Veuillez indiquer un fichier FFU source et réessayer. Assurez-vous également qu'il existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Especifique um ficheiro FFU de origem e tente novamente. Além disso, certifique-se de que ele existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Specificare un file FFU di origine e riprovare. Assicurarsi inoltre che esista", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("FfuSplit.Validation")("Source.File.Required.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.OperationNum = 19 @@ -85,151 +37,19 @@ Public Class FfuSplit End Sub Private Sub FfuSplit_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Split FFU images" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image to split:" - Label3.Text = "Name and path of the destination split image:" - Label4.Text = "Maximum size of split images (in MB):" - Label5.Text = "Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - CheckBox1.Text = "Check image integrity" - OpenFileDialog1.Title = "Specify the source FFU file to split:" - SaveFileDialog1.Title = "Specify the target location of the split images:" - Case "ESN" - Text = "Dividir imágenes FFU" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen de origen a dividir:" - Label3.Text = "Nombre y ruta de la imagen dividida de destino:" - Label4.Text = "Tamaño máximo de imágenes divididas (en MB):" - Label5.Text = "Para acomodar un archivo grande de la imagen, una imagen dividida puede ocupar más tamaño del especificado" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Comprobar integridad de la imagen" - OpenFileDialog1.Title = "Especifique el archivo FFU de origen a dividir:" - SaveFileDialog1.Title = "Especifique la ubicación de destino de las imágenes divididas:" - Case "FRA" - Text = "Diviser les images FFU" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image source à diviser :" - Label3.Text = "Nom et chemin de l'image divisée de destination :" - Label4.Text = "Taille maximale des images fractionnées (en Mo) :" - Label5.Text = "Notez que, pour tenir compte d'un fichier volumineux dans l'image, un fichier d'image divisé peut être plus grand que la valeur spécifiée." - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - OpenFileDialog1.Title = "Spécifiez le fichier FFU source à diviser :" - SaveFileDialog1.Title = "Spécifiez l'emplacement cible des images divisées :" - Case "PTB", "PTG" - Text = "Dividir imagens FFU" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagem de origem a dividir:" - Label3.Text = "Nome e caminho da imagem dividida de destino:" - Label4.Text = "Tamanho máximo das imagens divididas (em MB):" - Label5.Text = "Tenha em atenção que, para acomodar um ficheiro grande na imagem, um ficheiro de imagem dividida pode ser maior do que o valor especificado" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Verificar a integridade da imagem" - OpenFileDialog1.Title = "Especificar o ficheiro FFU de origem a dividir:" - SaveFileDialog1.Title = "Especificar a localização de destino das imagens divididas:" - Case "ITA" - Text = "Dividere le immagini FFU" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Immagine sorgente da dividere:" - Label3.Text = "Nome e percorso dell'immagine di destinazione da dividere:" - Label4.Text = "Dimensione massima delle immagini divise (in MB):" - Label5.Text = "Tenere presente che, per ospitare un file di grandi dimensioni nell'immagine, un file di immagine divisa può essere più grande del valore specificato" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - CheckBox1.Text = "Controlla l'integrità dell'immagine" - OpenFileDialog1.Title = "Specificare il file FFU di origine da dividere:" - SaveFileDialog1.Title = "Specificare la posizione di destinazione delle immagini divise:" - End Select - Case 1 - Text = "Split FFU images" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image to split:" - Label3.Text = "Name and path of the destination split image:" - Label4.Text = "Maximum size of split images (in MB):" - Label5.Text = "Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - CheckBox1.Text = "Check image integrity" - OpenFileDialog1.Title = "Specify the source FFU file to split:" - SaveFileDialog1.Title = "Specify the target location of the split images:" - Case 2 - Text = "Dividir imágenes FFU" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen de origen a dividir:" - Label3.Text = "Nombre y ruta de la imagen dividida de destino:" - Label4.Text = "Tamaño máximo de imágenes divididas (en MB):" - Label5.Text = "Para acomodar un archivo grande de la imagen, una imagen dividida puede ocupar más tamaño del especificado" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Comprobar integridad de la imagen" - OpenFileDialog1.Title = "Especifique el archivo FFU de origen a dividir:" - SaveFileDialog1.Title = "Especifique la ubicación de destino de las imágenes divididas:" - Case 3 - Text = "Diviser les images FFU" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image source à diviser :" - Label3.Text = "Nom et chemin de l'image divisée de destination :" - Label4.Text = "Taille maximale des images fractionnées (en Mo) :" - Label5.Text = "Notez que, pour tenir compte d'un fichier volumineux dans l'image, un fichier d'image divisé peut être plus grand que la valeur spécifiée." - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - OpenFileDialog1.Title = "Spécifiez le fichier FFU source à diviser :" - SaveFileDialog1.Title = "Spécifiez l'emplacement cible des images divisées :" - Case 4 - Text = "Dividir imagens FFU" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagem de origem a dividir:" - Label3.Text = "Nome e caminho da imagem dividida de destino:" - Label4.Text = "Tamanho máximo das imagens divididas (em MB):" - Label5.Text = "Tenha em atenção que, para acomodar um ficheiro grande na imagem, um ficheiro de imagem dividida pode ser maior do que o valor especificado" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Verificar a integridade da imagem" - OpenFileDialog1.Title = "Especificar o ficheiro FFU de origem a dividir:" - SaveFileDialog1.Title = "Especificar a localização de destino das imagens divididas:" - Case 5 - Text = "Dividere le immagini FFU" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Immagine sorgente da dividere:" - Label3.Text = "Nome e percorso dell'immagine di destinazione da dividere:" - Label4.Text = "Dimensione massima delle immagini divise (in MB):" - Label5.Text = "Tenere presente che, per ospitare un file di grandi dimensioni nell'immagine, un file di immagine divisa può essere più grande del valore specificato" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - CheckBox1.Text = "Controlla l'integrità dell'immagine" - OpenFileDialog1.Title = "Specificare il file FFU di origine da dividere:" - SaveFileDialog1.Title = "Specificare la posizione di destinazione delle immagini divise:" - End Select + Text = LocalizationService.ForSection("FfuSplit")("SplitFfuimages.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("FfuSplit").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("FfuSplit")("Source.Image.Label") + Label3.Text = LocalizationService.ForSection("FfuSplit")("Name.Path.Destination.Label") + Label4.Text = LocalizationService.ForSection("FfuSplit")("Maximum.Size.Images.Label") + Label5.Text = LocalizationService.ForSection("FfuSplit")("LargeFile.Note.Message") + Button1.Text = LocalizationService.ForSection("FfuSplit")("Browse.Button") + Button2.Text = LocalizationService.ForSection("FfuSplit")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("FfuSplit")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("FfuSplit")("Cancel.Button") + CheckBox1.Text = LocalizationService.ForSection("FfuSplit")("Integrity.CheckBox") + OpenFileDialog1.Title = LocalizationService.ForSection("FfuSplit")("Source.File.Title") + SaveFileDialog1.Title = LocalizationService.ForSection("FfuSplit")("Target.Location.Title") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/Features/DisableFeat.Designer.vb b/Panels/Img_Ops/Features/DisableFeat.Designer.vb index 2a077cf88..19389a9b5 100644 --- a/Panels/Img_Ops/Features/DisableFeat.Designer.vb +++ b/Panels/Img_Ops/Features/DisableFeat.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class DisableFeat Inherits System.Windows.Forms.Form @@ -64,7 +64,7 @@ Partial Class DisableFeat Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.DisableFeat")("Ok.Button") ' 'Cancel_Button ' @@ -75,7 +75,7 @@ Partial Class DisableFeat Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.DisableFeat")("Cancel.Button") ' 'GroupBox2 ' @@ -89,7 +89,7 @@ Partial Class DisableFeat Me.GroupBox2.Size = New System.Drawing.Size(760, 116) Me.GroupBox2.TabIndex = 16 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.DisableFeat")("Options.Group") ' 'Button1 ' @@ -99,7 +99,7 @@ Partial Class DisableFeat Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 6 - Me.Button1.Text = "Lookup..." + Me.Button1.Text = LocalizationService.ForSection("Designer.DisableFeat")("Lookup.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -118,7 +118,7 @@ Partial Class DisableFeat Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(80, 13) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Package name:" + Me.Label3.Text = LocalizationService.ForSection("Designer.DisableFeat")("PackageName.Label") ' 'CheckBox2 ' @@ -127,7 +127,7 @@ Partial Class DisableFeat Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(234, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Remove feature without removing manifest" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.DisableFeat")("Remove.Feature.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -137,7 +137,7 @@ Partial Class DisableFeat Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(229, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Specify parent package name for features" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.DisableFeat")("ParentPackage.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'GroupBox1 @@ -148,7 +148,7 @@ Partial Class DisableFeat Me.GroupBox1.Size = New System.Drawing.Size(760, 338) Me.GroupBox1.TabIndex = 17 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Features" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.DisableFeat")("Features.Group") ' 'ListView1 ' @@ -163,12 +163,12 @@ Partial Class DisableFeat ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Feature name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.DisableFeat")("FeatureName.Column") Me.ColumnHeader1.Width = 372 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "State" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.DisableFeat")("State.Column") Me.ColumnHeader2.Width = 339 ' 'ImageTaskHeader1 @@ -203,7 +203,7 @@ Partial Class DisableFeat Me.Name = "DisableFeat" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Disable features" + Me.Text = LocalizationService.ForSection("Designer.DisableFeat")("DisableFeatures.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox2.ResumeLayout(False) Me.GroupBox2.PerformLayout() diff --git a/Panels/Img_Ops/Features/DisableFeat.vb b/Panels/Img_Ops/Features/DisableFeat.vb index 72d7b7214..bb2d07926 100644 --- a/Panels/Img_Ops/Features/DisableFeat.vb +++ b/Panels/Img_Ops/Features/DisableFeat.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Dism Imports DISMTools.Utilities @@ -17,31 +17,7 @@ Public Class DisableFeat DynaLog.LogMessage("Detecting features to disable...") If ListView1.CheckedItems.Count <= 0 Then DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MessageBox.Show(MainForm, "Please select features to disable, and try again.", "No features selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ESN" - MessageBox.Show(MainForm, "Seleccione las características a deshabilitar, e inténtelo de nuevo", "No hay características seleccionadas", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "FRA" - MessageBox.Show(MainForm, "Veuillez sélectionner les caractéristiques à désactiver et réessayer.", "Aucune caractéristique sélectionée", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "PTB", "PTG" - MessageBox.Show(MainForm, "Por favor, seleccione as características a desativar e tente novamente.", "Nenhuma caraterística selecionada", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ITA" - MessageBox.Show(MainForm, "Selezionare le caratteristiche da disabilitare e riprovare", "Nessuna caratteristica selezionata", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select - Case 1 - MessageBox.Show(MainForm, "Please select features to disable, and try again.", "No features selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 2 - MessageBox.Show(MainForm, "Seleccione las características a deshabilitar, e inténtelo de nuevo", "No hay características seleccionadas", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 3 - MessageBox.Show(MainForm, "Veuillez sélectionner les caractéristiques à désactiver et réessayer.", "Aucune caractéristique sélectionée", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 4 - MessageBox.Show(MainForm, "Por favor, seleccione as características a desativar e tente novamente.", "Nenhuma caraterística selecionada", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 5 - MessageBox.Show(MainForm, "Selezionare le caratteristiche da disabilitare e riprovare", "Nessuna caratteristica selezionata", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select + MessageBox.Show(MainForm, LocalizationService.ForSection("DisableFeat.Validation")("Features.Message"), LocalizationService.ForSection("DisableFeat.Validation")("FeaturesSelected.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub Else Try @@ -101,141 +77,18 @@ Public Class DisableFeat If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Disable features" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Package name:" - GroupBox1.Text = "Features" - GroupBox2.Text = "Options" - Button1.Text = "Lookup..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Feature name" - ListView1.Columns(1).Text = "State" - CheckBox1.Text = "Specify parent package name for features" - CheckBox2.Text = "Remove feature without removing manifest" - Case "ESN" - Text = "Deshabilitar características" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Paquete:" - GroupBox1.Text = "Características" - GroupBox2.Text = "Opciones" - Button1.Text = "Consultar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nombre de característica" - ListView1.Columns(1).Text = "Estado" - CheckBox1.Text = "Especificar nombre de paquete principal para las características" - CheckBox2.Text = "Eliminar característica sin eliminar manifiesto" - Case "FRA" - Text = "Désactiver des caractéristiques" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nom du paquet :" - GroupBox1.Text = "Caractéristiques" - GroupBox2.Text = "Paramètres" - Button1.Text = "Rechercher..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Nom de la caractéristique" - ListView1.Columns(1).Text = "État" - CheckBox1.Text = "Spécifier le nom du paquet parent pour les caractéristiques" - CheckBox2.Text = "Supprimer une caractéristique sans supprimer le manifeste" - Case "PTB", "PTG" - Text = "Desativar características" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nome do pacote:" - GroupBox1.Text = "Características" - GroupBox2.Text = "Opções" - Button1.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nome da caraterística" - ListView1.Columns(1).Text = "Estado" - CheckBox1.Text = "Especificar o nome do pacote principal para as características" - CheckBox2.Text = "Remover caraterística sem remover manifesto" - Case "ITA" - Text = "Disabilita caratteristiche" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nome pacchetto:" - GroupBox1.Text = "Caratteristiche" - GroupBox2.Text = "Opzioni" - Button1.Text = "Ricerca..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Nome caratteristica" - ListView1.Columns(1).Text = "Stato" - CheckBox1.Text = "Specificare il nome del pacchetto padre per le caratteristiche" - CheckBox2.Text = "Rimuovi la caratteristica senza rimuovere il manifesto" - End Select - Case 1 - Text = "Disable features" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Package name:" - GroupBox1.Text = "Features" - GroupBox2.Text = "Options" - Button1.Text = "Lookup..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - ListView1.Columns(0).Text = "Feature name" - ListView1.Columns(1).Text = "State" - CheckBox1.Text = "Specify parent package name for features" - CheckBox2.Text = "Remove feature without removing manifest" - Case 2 - Text = "Deshabilitar características" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Paquete:" - GroupBox1.Text = "Características" - GroupBox2.Text = "Opciones" - Button1.Text = "Consultar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nombre de característica" - ListView1.Columns(1).Text = "Estado" - CheckBox1.Text = "Especificar nombre de paquete principal para las características" - CheckBox2.Text = "Eliminar característica sin eliminar manifiesto" - Case 3 - Text = "Désactiver des caractéristiques" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nom du paquet :" - GroupBox1.Text = "Caractéristiques" - GroupBox2.Text = "Paramètres" - Button1.Text = "Rechercher..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - ListView1.Columns(0).Text = "Nom de la caractéristique" - ListView1.Columns(1).Text = "État" - CheckBox1.Text = "Spécifier le nom du paquet parent pour les caractéristiques" - CheckBox2.Text = "Supprimer une caractéristique sans supprimer le manifeste" - Case 4 - Text = "Desativar características" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nome do pacote:" - GroupBox1.Text = "Características" - GroupBox2.Text = "Opções" - Button1.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - ListView1.Columns(0).Text = "Nome da caraterística" - ListView1.Columns(1).Text = "Estado" - CheckBox1.Text = "Especificar o nome do pacote principal para as características" - CheckBox2.Text = "Remover caraterística sem remover manifesto" - Case 5 - Text = "Disabilita caratteristiche" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nome pacchetto:" - GroupBox1.Text = "Caratteristiche" - GroupBox2.Text = "Opzioni" - Button1.Text = "Ricerca..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - ListView1.Columns(0).Text = "Nome caratteristica" - ListView1.Columns(1).Text = "Stato" - CheckBox1.Text = "Specificare il nome del pacchetto padre per le caratteristiche" - CheckBox2.Text = "Rimuovi la caratteristica senza rimuovere il manifesto" - End Select + Text = LocalizationService.ForSection("DisableFeat")("DisableFeatures.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("DisableFeat").Format("Image.Task.Header.Label", Text) + Label3.Text = LocalizationService.ForSection("DisableFeat")("PackageName.Label") + GroupBox1.Text = LocalizationService.ForSection("DisableFeat")("Features.Group") + GroupBox2.Text = LocalizationService.ForSection("DisableFeat")("Options.Group") + Button1.Text = LocalizationService.ForSection("DisableFeat")("Lookup.Button") + OK_Button.Text = LocalizationService.ForSection("DisableFeat")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("DisableFeat")("Cancel.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("DisableFeat")("FeatureName.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("DisableFeat")("State.Column") + CheckBox1.Text = LocalizationService.ForSection("DisableFeat")("ParentPackage.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("DisableFeat")("Remove.Feature.CheckBox") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/Features/EnableFeat.Designer.vb b/Panels/Img_Ops/Features/EnableFeat.Designer.vb index c94d3bfdd..393376004 100644 --- a/Panels/Img_Ops/Features/EnableFeat.Designer.vb +++ b/Panels/Img_Ops/Features/EnableFeat.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class EnableFeat Inherits System.Windows.Forms.Form @@ -77,7 +77,7 @@ Partial Class EnableFeat Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.EnableFeat")("Ok.Button") ' 'Cancel_Button ' @@ -88,7 +88,7 @@ Partial Class EnableFeat Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.EnableFeat")("Cancel.Button") ' 'GroupBox1 ' @@ -98,7 +98,7 @@ Partial Class EnableFeat Me.GroupBox1.Size = New System.Drawing.Size(760, 242) Me.GroupBox1.TabIndex = 5 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Features" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.EnableFeat")("Features.Group") ' 'ListView1 ' @@ -114,12 +114,12 @@ Partial Class EnableFeat ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Feature name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.EnableFeat")("FeatureName.Column") Me.ColumnHeader1.Width = 372 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "State" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.EnableFeat")("State.Column") Me.ColumnHeader2.Width = 339 ' 'GroupBox2 @@ -141,7 +141,7 @@ Partial Class EnableFeat Me.GroupBox2.Size = New System.Drawing.Size(760, 212) Me.GroupBox2.TabIndex = 5 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.EnableFeat")("Options.Group") ' 'Button3 ' @@ -151,7 +151,7 @@ Partial Class EnableFeat Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(175, 23) Me.Button3.TabIndex = 13 - Me.Button3.Text = "Detect from group policy" + Me.Button3.Text = LocalizationService.ForSection("Designer.EnableFeat")("Detect.Group.Policy.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Panel9 @@ -203,7 +203,7 @@ Partial Class EnableFeat Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 6 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.EnableFeat")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button1 @@ -214,7 +214,7 @@ Partial Class EnableFeat Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 6 - Me.Button1.Text = "Lookup..." + Me.Button1.Text = LocalizationService.ForSection("Designer.EnableFeat")("Lookup.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label4 @@ -225,7 +225,7 @@ Partial Class EnableFeat Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(84, 13) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Feature source:" + Me.Label4.Text = LocalizationService.ForSection("Designer.EnableFeat")("FeatureSource.Label") ' 'TextBox1 ' @@ -243,7 +243,7 @@ Partial Class EnableFeat Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(80, 13) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Package name:" + Me.Label3.Text = LocalizationService.ForSection("Designer.EnableFeat")("PackageName.Label") ' 'CheckBox5 ' @@ -252,7 +252,7 @@ Partial Class EnableFeat Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(206, 17) Me.CheckBox5.TabIndex = 0 - Me.CheckBox5.Text = "Commit image after enabling features" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.EnableFeat")("CommitImage.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'CheckBox4 @@ -265,7 +265,7 @@ Partial Class EnableFeat Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(232, 17) Me.CheckBox4.TabIndex = 0 - Me.CheckBox4.Text = "Contact Windows Update for online images" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.EnableFeat")("Contact.Win.Update.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -275,7 +275,7 @@ Partial Class EnableFeat Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(150, 17) Me.CheckBox3.TabIndex = 0 - Me.CheckBox3.Text = "Enable all parent features" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.EnableFeat")("ParentFeatures.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -285,7 +285,7 @@ Partial Class EnableFeat Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(135, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Specify feature source" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.EnableFeat")("Feature.Source.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -295,12 +295,12 @@ Partial Class EnableFeat Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(229, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Specify parent package name for features" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.EnableFeat")("ParentPackage.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Specify a folder which will act as the feature source:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.EnableFeat")("SourceFolder.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer Me.FolderBrowserDialog1.ShowNewFolderButton = False ' @@ -336,7 +336,7 @@ Partial Class EnableFeat Me.Name = "EnableFeat" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Enable features" + Me.Text = LocalizationService.ForSection("Designer.EnableFeat")("EnableFeatures.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox2.ResumeLayout(False) diff --git a/Panels/Img_Ops/Features/EnableFeat.vb b/Panels/Img_Ops/Features/EnableFeat.vb index f7706e2c6..0d3c9f923 100644 --- a/Panels/Img_Ops/Features/EnableFeat.vb +++ b/Panels/Img_Ops/Features/EnableFeat.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Dism @@ -20,31 +20,7 @@ Public Class EnableFeat DynaLog.LogMessage("Detecting features to enable...") If ListView1.CheckedItems.Count <= 0 Then DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MessageBox.Show(MainForm, "Please select features to enable, and try again.", "No features selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ESN" - MessageBox.Show(MainForm, "Seleccione las características a habilitar, e inténtelo de nuevo.", "No se ha seleccionado ninguna característica", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "FRA" - MessageBox.Show(MainForm, "Veuillez sélectionner les caractéristiques à activer et réessayer.", "Aucune caractéristique sélectionnée", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "PTB", "PTG" - MessageBox.Show(MainForm, "Por favor, seleccione as características a ativar e tente novamente.", "Nenhuma caraterística selecionada", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ITA" - MessageBox.Show(MainForm, "Selezionare le caratteristiche da abilitare e riprovare", "Nessuna funzione selezionata", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select - Case 1 - MessageBox.Show(MainForm, "Please select features to enable, and try again.", "No features selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 2 - MessageBox.Show(MainForm, "Seleccione las características a habilitar, e inténtelo de nuevo.", "No se ha seleccionado ninguna característica", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 3 - MessageBox.Show(MainForm, "Veuillez sélectionner les caractéristiques à activer et réessayer.", "Aucune caractéristique sélectionnée", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 4 - MessageBox.Show(MainForm, "Por favor, seleccione as características a ativar e tente novamente.", "Nenhuma caraterística selecionada", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 5 - MessageBox.Show(MainForm, "Selezionare le caratteristiche da abilitare e riprovare", "Nessuna funzione selezionata", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select + MessageBox.Show(MainForm, LocalizationService.ForSection("EnableFeat.Validation")("Features.Message"), LocalizationService.ForSection("EnableFeat.Validation")("FeaturesSelected.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub Else Try @@ -60,64 +36,13 @@ Public Class EnableFeat DynaLog.LogMessage("Getting states of features for any missing sources...") For x = 0 To featEnablementCount - 1 If MainForm.OnlineManagement And CheckBox4.Checked Then Exit For - If ListView1.CheckedItems(x).SubItems(1).Text = "Removed" Or ListView1.CheckedItems(x).SubItems(1).Text = "Eliminado" Or ListView1.CheckedItems(x).SubItems(1).Text = "Supprimée" Or ListView1.CheckedItems(x).SubItems(1).Text = "Removido" Or ListView1.CheckedItems(x).SubItems(1).Text = "Rimosso" Then + If ListView1.CheckedItems(x).SubItems(1).Text = LocalizationService.ForSection("Casters.Cast.DISM")("Removed.Label") Then If RichTextBox1.Text = "" Or Not Directory.Exists(RichTextBox1.Text) Then DynaLog.LogMessage("No source has been specified or it does not exist.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - If MsgBox("Some features in this image require specifying a source for them to be enabled. The specified source is not valid for this operation." & CrLf & CrLf & If(RichTextBox1.Text = "", "Please specify a valid source and try again.", "Please make sure the source exists in the file system and try again."), vbOKOnly + vbCritical, "Enable features") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - Case "ESN" - If MsgBox("Algunas características en esta imagen requieren especificar un origen para ser habilitadas. El origen especificado no es válido para esta operación" & CrLf & CrLf & If(RichTextBox1.Text = "", "Especifique un origen válido e inténtelo de nuevo.", "Asegúrese de que el origen exista en el sistema de archivos e inténtelo de nuevo."), vbOKOnly + vbCritical, "Habilitar características") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - Case "FRA" - If MsgBox("Certaines caractéristiques de cette image nécessitent la spécification d'une source pour être activées. La source spécifiée n'est pas valide pour cette opération." & CrLf & CrLf & If(RichTextBox1.Text = "", "Veuillez indiquer une source valide et réessayer.", "Assurez-vous que la source existe dans le système de fichiers et réessayez."), vbOKOnly + vbCritical, "Activer les caractéristiques") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - Case "PTB", "PTG" - If MsgBox("Algumas características desta imagem requerem a especificação de uma origem para serem activadas. A origem especificada não é válida para esta operação." & CrLf & CrLf & If(RichTextBox1.Text = "", "Especifique uma origem válida e tente novamente.", "Certifique-se de que a origem existe no sistema de ficheiros e tente novamente."), vbOKOnly + vbCritical, "Ativar características") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - Case "ITA" - If MsgBox("Alcune caratteristiche di questa immagine richiedono l'indicazione di un'origine per essere abilitate. L'origine specificata non è valida per questa operazione." & CrLf & CrLf & If(RichTextBox1.Text = "", "Specificare un'origine valida e riprovare.", "Assicurarsi che l'origine esista nel file system e riprovare"), vbOKOnly + vbCritical, "Abilitare le caratteristiche") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - End Select - Case 1 - If MsgBox("Some features in this image require specifying a source for them to be enabled. The specified source is not valid for this operation." & CrLf & CrLf & If(RichTextBox1.Text = "", "Please specify a valid source and try again.", "Please make sure the source exists in the file system and try again."), vbOKOnly + vbCritical, "Enable features") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - Case 2 - If MsgBox("Algunas características en esta imagen requieren especificar un origen para ser habilitadas. El origen especificado no es válido para esta operación" & CrLf & CrLf & If(RichTextBox1.Text = "", "Especifique un origen válido e inténtelo de nuevo.", "Asegúrese de que el origen exista en el sistema de archivos e inténtelo de nuevo."), vbOKOnly + vbCritical, "Habilitar características") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - Case 3 - If MsgBox("Certaines caractéristiques de cette image nécessitent la spécification d'une source pour être activées. La source spécifiée n'est pas valide pour cette opération." & CrLf & CrLf & If(RichTextBox1.Text = "", "Veuillez indiquer une source valide et réessayer.", "Assurez-vous que la source existe dans le système de fichiers et réessayez."), vbOKOnly + vbCritical, "Activer les caractéristiques") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - Case 4 - If MsgBox("Algumas características desta imagem requerem a especificação de uma origem para serem activadas. A origem especificada não é válida para esta operação." & CrLf & CrLf & If(RichTextBox1.Text = "", "Especifique uma origem válida e tente novamente.", "Certifique-se de que a origem existe no sistema de ficheiros e tente novamente."), vbOKOnly + vbCritical, "Ativar características") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - Case 5 - If MsgBox("Alcune caratteristiche di questa immagine richiedono l'indicazione di un'origine per essere abilitate. L'origine specificata non è valida per questa operazione." & CrLf & CrLf & If(RichTextBox1.Text = "", "Specificare un'origine valida e riprovare.", "Assicurarsi che l'origine esista nel file system e riprovare"), vbOKOnly + vbCritical, "Abilitare le caratteristiche") = MsgBoxResult.Ok Then - CheckBox2.Checked = True - Button2.PerformClick() - End If - End Select + If MsgBox(LocalizationService.ForSection("EnableFeat.Validation")("Features.Image.Message") & CrLf & CrLf & If(RichTextBox1.Text = "", LocalizationService.ForSection("EnableFeat.Validation")("Source.Required.Message"), LocalizationService.ForSection("EnableFeat.Validation")("Source.Message")), vbOKOnly + vbCritical, LocalizationService.ForSection("EnableFeat.Validation")("EnableFeatures.Message")) = MsgBoxResult.Ok Then + CheckBox2.Checked = True + Button2.PerformClick() + End If Else End If @@ -136,31 +61,7 @@ Public Class EnableFeat ProgressPanel.featisSourceSpecified = True If RichTextBox1.Text = "" Or Not Directory.Exists(RichTextBox1.Text) Then DynaLog.LogMessage("No source has been specified or it does not exist.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The specified source is not valid. Please specify a valid source and try again", vbOKOnly + vbCritical, "Enable features") - Case "ESN" - MsgBox("El origen especificado no es válido. Especifique uno válido e inténtelo de nuevo", vbOKOnly + vbCritical, "Habilitar características") - Case "FRA" - MsgBox("La source spécifiée n'est pas valide. Veuillez indiquer une source valide et réessayer", vbOKOnly + vbCritical, "Activer les caractéristiques") - Case "PTB", "PTG" - MsgBox("A origem especificada não é válida. Por favor, especifique uma origem válida e tente novamente", vbOKOnly + vbCritical, "Ativar características") - Case "ITA" - MsgBox("La fonte specificata non è valida. Specificare un'origine valida e riprovare", vbOKOnly + vbCritical, "Abilita funzioni") - End Select - Case 1 - MsgBox("The specified source is not valid. Please specify a valid source and try again", vbOKOnly + vbCritical, "Enable features") - Case 2 - MsgBox("El origen especificado no es válido. Especifique uno válido e inténtelo de nuevo", vbOKOnly + vbCritical, "Habilitar características") - Case 3 - MsgBox("La source spécifiée n'est pas valide. Veuillez indiquer une source valide et réessayer", vbOKOnly + vbCritical, "Activer les caractéristiques") - Case 4 - MsgBox("A origem especificada não é válida. Por favor, especifique uma origem válida e tente novamente", vbOKOnly + vbCritical, "Ativar características") - Case 5 - MsgBox("La fonte specificata non è valida. Specificare un'origine valida e riprovare", vbOKOnly + vbCritical, "Abilita funzioni") - End Select + MsgBox(LocalizationService.ForSection("EnableFeat.Validation")("Source.Message.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("EnableFeat.Validation")("EnableFeatures.Title")) Exit Sub Else ProgressPanel.featSource = RichTextBox1.Text @@ -222,211 +123,25 @@ Public Class EnableFeat If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Enable features" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Package name:" - Label4.Text = "Feature source:" - Button1.Text = "Lookup..." - Button2.Text = "Browse..." - Button3.Text = "Detect from group policy" - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - GroupBox1.Text = "Features" - GroupBox2.Text = "Options" - CheckBox1.Text = "Specify parent package name for features" - CheckBox2.Text = "Specify feature source" - CheckBox3.Text = "Enable all parent features" - CheckBox4.Text = "Contact Windows Update for online images" - CheckBox5.Text = "Commit image after enabling features" - ListView1.Columns(0).Text = "Feature name" - ListView1.Columns(1).Text = "State" - FolderBrowserDialog1.Description = "Specify a folder which will act as the feature source:" - Case "ESN" - Text = "Habilitar característica" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Paquete:" - Label4.Text = "Origen:" - Button1.Text = "Consultar" - Button2.Text = "Examinar..." - Button3.Text = "Detectar políticas de grupo" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - GroupBox1.Text = "Características" - GroupBox2.Text = "Opciones" - CheckBox1.Text = "Especificar nombre de paquete principal para características" - CheckBox2.Text = "Especificar origen de características" - CheckBox3.Text = "Habilitar todas las características principales" - CheckBox4.Text = "Contactar Windows Update para instalaciones activas" - CheckBox5.Text = "Guardar imagen tras habilitar características" - ListView1.Columns(0).Text = "Nombre de característica" - ListView1.Columns(1).Text = "Estado" - FolderBrowserDialog1.Description = "Especifique una carpeta que actuará como origen de las características:" - Case "FRA" - Text = "Activer les caractéristiques" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nom du paquet :" - Label4.Text = "Source de la caractéristique :" - Button1.Text = "Rechercher..." - Button2.Text = "Parcourir..." - Button3.Text = "Détecter à partir des politiques de groupe" - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - GroupBox1.Text = "Caractéristiques" - GroupBox2.Text = "Paramètres" - CheckBox1.Text = "Spécifier le nom du paquet parent pour les caractéristiques" - CheckBox2.Text = "Spécifier la source des caractéristiques" - CheckBox3.Text = "Activer toutes les caractéristiques des parents" - CheckBox4.Text = "Contacter Windows Update sur les images en ligne" - CheckBox5.Text = "Sauvegarder l'image après l'activation des caractéristiques" - ListView1.Columns(0).Text = "Nom de la caractéristique" - ListView1.Columns(1).Text = "État" - FolderBrowserDialog1.Description = "Spécifiez un répertoire qui servira de source des caractéristiques :" - Case "PTB", "PTG" - Text = "Ativar características" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nome do pacote:" - Label4.Text = "Fonte da caraterística:" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - Button3.Text = "Detetar a partir da política de grupo" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - GroupBox1.Text = "Características" - GroupBox2.Text = "Opções" - CheckBox1.Text = "Especificar o nome do pacote principal para as características" - CheckBox2.Text = "Especificar a origem da caraterística" - CheckBox3.Text = "Ativar todas as características principais" - CheckBox4.Text = "Contactar o Windows Update para obter imagens online" - CheckBox5.Text = "Confirmar a imagem depois de ativar as funcionalidades" - ListView1.Columns(0).Text = "Nome da caraterística" - ListView1.Columns(1).Text = "Estado" - FolderBrowserDialog1.Description = "Especificar uma pasta que actuará como fonte da caraterística:" - Case "ITA" - Text = "Abilita funzionalità" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nome pacchetto:" - Label4.Text = "Origine caratteristiche:" - Button1.Text = "Cerca..." - Button2.Text = "Sfoglia..." - Button3.Text = "Rileva da criteri di gruppo" - Cancel_Button.Text = "Annulla" - OK_Button.Text = "OK" - GroupBox1.Text = "Caratteristiche" - GroupBox2.Text = "Opzioni" - CheckBox1.Text = "Specifica il nome del pacchetto padre per le funzioni" - CheckBox2.Text = "Specificare l'origine delle caratteristiche" - CheckBox3.Text = "Abilita tutte le funzioni genitore" - CheckBox4.Text = "Contatta Windows Update per le immagini online" - CheckBox5.Text = "Applica l'immagine dopo aver abilitato le funzioni" - ListView1.Columns(0).Text = "Nome della funzione" - ListView1.Columns(1).Text = "Stato" - FolderBrowserDialog1.Description = "Specificare una cartella che fungerà da origine delle caratteristiche:" - End Select - Case 1 - Text = "Enable features" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Package name:" - Label4.Text = "Feature source:" - Button1.Text = "Lookup..." - Button2.Text = "Browse..." - Button3.Text = "Detect from group policy" - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - GroupBox1.Text = "Features" - GroupBox2.Text = "Options" - CheckBox1.Text = "Specify parent package name for features" - CheckBox2.Text = "Specify feature source" - CheckBox3.Text = "Enable all parent features" - CheckBox4.Text = "Contact Windows Update for online images" - CheckBox5.Text = "Commit image after enabling features" - ListView1.Columns(0).Text = "Feature name" - ListView1.Columns(1).Text = "State" - FolderBrowserDialog1.Description = "Specify a folder which will act as the feature source:" - Case 2 - Text = "Habilitar característica" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Paquete:" - Label4.Text = "Origen:" - Button1.Text = "Consultar" - Button2.Text = "Examinar..." - Button3.Text = "Detectar políticas de grupo" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - GroupBox1.Text = "Características" - GroupBox2.Text = "Opciones" - CheckBox1.Text = "Especificar nombre de paquete principal para características" - CheckBox2.Text = "Especificar origen de características" - CheckBox3.Text = "Habilitar todas las características principales" - CheckBox4.Text = "Contactar Windows Update para instalaciones activas" - CheckBox5.Text = "Guardar imagen tras habilitar características" - ListView1.Columns(0).Text = "Nombre de característica" - ListView1.Columns(1).Text = "Estado" - FolderBrowserDialog1.Description = "Especifique una carpeta que actuará como origen de las características:" - Case 3 - Text = "Activer les caractéristiques" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nom du paquet :" - Label4.Text = "Source de la caractéristique :" - Button1.Text = "Rechercher..." - Button2.Text = "Parcourir..." - Button3.Text = "Détecter à partir des politiques de groupe" - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - GroupBox1.Text = "Caractéristiques" - GroupBox2.Text = "Paramètres" - CheckBox1.Text = "Spécifier le nom du paquet parent pour les caractéristiques" - CheckBox2.Text = "Spécifier la source des caractéristiques" - CheckBox3.Text = "Activer toutes les caractéristiques des parents" - CheckBox4.Text = "Contacter Windows Update sur les images en ligne" - CheckBox5.Text = "Sauvegarder l'image après l'activation des caractéristiques" - ListView1.Columns(0).Text = "Nom de la caractéristique" - ListView1.Columns(1).Text = "État" - FolderBrowserDialog1.Description = "Spécifiez un répertoire qui servira de source des caractéristiques :" - Case 4 - Text = "Ativar características" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nome do pacote:" - Label4.Text = "Fonte da caraterística:" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - Button3.Text = "Detetar a partir da política de grupo" - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - GroupBox1.Text = "Características" - GroupBox2.Text = "Opções" - CheckBox1.Text = "Especificar o nome do pacote principal para as características" - CheckBox2.Text = "Especificar a origem da caraterística" - CheckBox3.Text = "Ativar todas as características principais" - CheckBox4.Text = "Contactar o Windows Update para obter imagens online" - CheckBox5.Text = "Confirmar a imagem depois de ativar as funcionalidades" - ListView1.Columns(0).Text = "Nome da caraterística" - ListView1.Columns(1).Text = "Estado" - FolderBrowserDialog1.Description = "Especificar uma pasta que actuará como fonte da caraterística:" - Case 5 - Text = "Abilita funzionalità" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Nome pacchetto:" - Label4.Text = "Origine caratteristiche:" - Button1.Text = "Cerca..." - Button2.Text = "Sfoglia..." - Button3.Text = "Rileva da criteri di gruppo" - Cancel_Button.Text = "Annulla" - OK_Button.Text = "OK" - GroupBox1.Text = "Caratteristiche" - GroupBox2.Text = "Opzioni" - CheckBox1.Text = "Specifica il nome del pacchetto padre per le funzioni" - CheckBox2.Text = "Specificare l'origine delle caratteristiche" - CheckBox3.Text = "Abilita tutte le funzioni genitore" - CheckBox4.Text = "Contatta Windows Update per le immagini online" - CheckBox5.Text = "Applica l'immagine dopo aver abilitato le funzioni" - ListView1.Columns(0).Text = "Nome della funzione" - ListView1.Columns(1).Text = "Stato" - FolderBrowserDialog1.Description = "Specificare una cartella che fungerà da origine delle caratteristiche:" - End Select + Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("EnableFeatures.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("EnableFeat.EnableFeature").Format("Image.Task.Header.Label", Text) + Label3.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("PackageName.Label") + Label4.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("FeatureSource.Label") + Button1.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Lookup.Button") + Button2.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Browse.Button") + Button3.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Detect.Group.Policy.Button") + Cancel_Button.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Cancel.Button") + OK_Button.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Ok.Button") + GroupBox1.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Features.Group") + GroupBox2.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Options.Group") + CheckBox1.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("ParentPackage.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Source.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("ParentFeatures.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("Contact.Win.Update.CheckBox") + CheckBox5.Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("CommitImage.CheckBox") + ListView1.Columns(0).Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("FeatureName.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("EnableFeat.EnableFeature")("State.Column") + FolderBrowserDialog1.Description = LocalizationService.ForSection("EnableFeat.EnableFeature")("SourceFolder.Description") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/Features/PkgParentNames/PkgParentNameLookupDlg.Designer.vb b/Panels/Img_Ops/Features/PkgParentNames/PkgParentNameLookupDlg.Designer.vb index b7c76ecb5..9098eb29c 100644 --- a/Panels/Img_Ops/Features/PkgParentNames/PkgParentNameLookupDlg.Designer.vb +++ b/Panels/Img_Ops/Features/PkgParentNames/PkgParentNameLookupDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class PkgParentNameLookupDlg Inherits System.Windows.Forms.Form @@ -59,7 +59,7 @@ Partial Class PkgParentNameLookupDlg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.PkgNameLookup")("Ok.Button") ' 'Cancel_Button ' @@ -70,7 +70,7 @@ Partial Class PkgParentNameLookupDlg Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.PkgNameLookup")("Cancel.Button") ' 'Label1 ' @@ -79,7 +79,7 @@ Partial Class PkgParentNameLookupDlg Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(252, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Names of installed packages in the mounted image:" + Me.Label1.Text = LocalizationService.ForSection("Designer.PkgParentLookup")("Names.Installed.Label") ' 'ListBox1 ' @@ -98,7 +98,7 @@ Partial Class PkgParentNameLookupDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(129, 13) Me.Label2.TabIndex = 3 - Me.Label2.Text = "Name of parent package:" + Me.Label2.Text = LocalizationService.ForSection("Designer.PkgNameLookup")("ParentPackage.Label") ' 'TextBox1 ' @@ -129,7 +129,7 @@ Partial Class PkgParentNameLookupDlg Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(192, 13) Me.Label3.TabIndex = 5 - Me.Label3.Text = "Getting package names. Please wait..." + Me.Label3.Text = LocalizationService.ForSection("Designer.PkgNameLookup")("Get.Package.Names.Label") Me.Label3.Visible = False ' 'PkgParentNameLookupDlg @@ -152,7 +152,7 @@ Partial Class PkgParentNameLookupDlg Me.Name = "PkgParentNameLookupDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Installed package names" + Me.Text = LocalizationService.ForSection("Designer.PkgNameLookup")("Installed.Package.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/Features/PkgParentNames/PkgParentNameLookupDlg.vb b/Panels/Img_Ops/Features/PkgParentNames/PkgParentNameLookupDlg.vb index fc5077498..6e84f9392 100644 --- a/Panels/Img_Ops/Features/PkgParentNames/PkgParentNameLookupDlg.vb +++ b/Panels/Img_Ops/Features/PkgParentNames/PkgParentNameLookupDlg.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports System.Text.Encoding Imports Microsoft.VisualBasic.ControlChars @@ -14,59 +14,11 @@ Public Class PkgParentNameLookupDlg DynaLog.LogMessage("Name of selected parent package: " & Quote & TextBox1.Text & Quote) If TextBox1.Text = "" Then DynaLog.LogMessage("No package has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a package name, and try again.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Installed package names") - Case "ESN" - MsgBox("Especifique un nombre de paquete, e inténtelo de nuevo.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nombres de paquetes instalados") - Case "FRA" - MsgBox("Veuillez spécifier un nom de paquet et réessayer.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Noms des paquets installés") - Case "PTB", "PTG" - MsgBox("Especifique um nome de pacote e tente novamente.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nomes dos pacotes instalados") - Case "ITA" - MsgBox("Specificare il nome di un pacchetto e riprovare", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nomi dei pacchetti installati") - End Select - Case 1 - MsgBox("Please specify a package name, and try again.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Installed package names") - Case 2 - MsgBox("Especifique un nombre de paquete, e inténtelo de nuevo.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nombres de paquetes instalados") - Case 3 - MsgBox("Veuillez spécifier un nom de paquet et réessayer.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Noms des paquets installés") - Case 4 - MsgBox("Especifique um nome de pacote e tente novamente.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nomes dos pacotes instalados") - Case 5 - MsgBox("Specificare il nome di un pacchetto e riprovare", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nomi dei pacchetti installati") - End Select + MsgBox(LocalizationService.ForSection("PkgNameLookup.Validation")("Package.Required.Message"), MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, LocalizationService.ForSection("PkgNameLookup.Validation")("Installed.Package.Title")) Exit Sub ElseIf Not ListBox1.Items.Contains(TextBox1.Text) Then DynaLog.LogMessage("A bogus package has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The specified package name does not seem to be in the image. Please specify an available entry, and try again", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Installed package names") - Case "ESN" - MsgBox("El paquete especificado no parece estar en la imagen. Especifique una entrada disponible, e inténtelo de nuevo", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nombres de paquetes instalados") - Case "FRA" - MsgBox("Le nom du paquet spécifié ne semble pas figurer dans l'image. Veuillez spécifier une entrée disponible et réessayer", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Noms des paquets installés") - Case "PTB", "PTG" - MsgBox("O nome do pacote especificado não parece estar na imagem. Especifique uma entrada disponível e tente novamente", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nomes dos pacotes instalados") - Case "ITA" - MsgBox("Il nome del pacchetto specificato non sembra essere presente nell'immagine. Si prega di specificare una voce disponibile e di riprovare", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nomi di pacchetti installati") - End Select - Case 1 - MsgBox("The specified package name does not seem to be in the image. Please specify an available entry, and try again", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Installed package names") - Case 2 - MsgBox("El paquete especificado no parece estar en la imagen. Especifique una entrada disponible, e inténtelo de nuevo", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nombres de paquetes instalados") - Case 3 - MsgBox("Le nom du paquet spécifié ne semble pas figurer dans l'image. Veuillez spécifier une entrée disponible et réessayer", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Noms des paquets installés") - Case 4 - MsgBox("O nome do pacote especificado não parece estar na imagem. Especifique uma entrada disponível e tente novamente", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nomes dos pacotes instalados") - Case 5 - MsgBox("Il nome del pacchetto specificato non sembra essere presente nell'immagine. Si prega di specificare una voce disponibile e di riprovare", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Nomi di pacchetti installati") - End Select + MsgBox(LocalizationService.ForSection("PkgNameLookup.Validation")("Package.Seem.Message"), MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, LocalizationService.ForSection("PkgNameLookup.Validation")("Installed.Package.Title")) Exit Sub Else Select Case OriginatedFrom @@ -90,81 +42,12 @@ Public Class PkgParentNameLookupDlg End Sub Private Sub PkgParentNameLookupDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Installed package names" - Label1.Text = "Names of installed packages in the mounted image:" - Label2.Text = "Name of parent package:" - Label3.Text = "Getting package names. Please wait..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Nombres de paquetes instalados" - Label1.Text = "Nombres de paquetes instalados en la imagen montada:" - Label2.Text = "Paquete principal:" - Label3.Text = "Obteniendo nombres de paquetes. Espere..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Noms des paquets installés" - Label1.Text = "Noms des paquets installés dans l'image montée :" - Label2.Text = "Nom du paquet parent :" - Label3.Text = "Obtention des noms des paquets en cours. Veuillez patienter..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Nomes dos pacotes instalados" - Label1.Text = "Nomes dos pacotes instalados na imagem montada:" - Label2.Text = "Nome do pacote pai:" - Label3.Text = "A obter nomes de pacotes. Aguarde..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Nomi dei pacchetti installati" - Label1.Text = "Nomi dei pacchetti installati nell'immagine montata:" - Label2.Text = "Nome del pacchetto padre:" - Label3.Text = "Ottenere i nomi dei pacchetti. Attendere prego..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Text = "Installed package names" - Label1.Text = "Names of installed packages in the mounted image:" - Label2.Text = "Name of parent package:" - Label3.Text = "Getting package names. Please wait..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Nombres de paquetes instalados" - Label1.Text = "Nombres de paquetes instalados en la imagen montada:" - Label2.Text = "Paquete principal:" - Label3.Text = "Obteniendo nombres de paquetes. Espere..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Noms des paquets installés" - Label1.Text = "Noms des paquets installés dans l'image montée :" - Label2.Text = "Nom du paquet parent :" - Label3.Text = "Obtention des noms des paquets en cours. Veuillez patienter..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Nomes dos pacotes instalados" - Label1.Text = "Nomes dos pacotes instalados na imagem montada:" - Label2.Text = "Nome do pacote pai:" - Label3.Text = "A obter nomes de pacotes. Aguarde..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Nomi dei pacchetti installati" - Label1.Text = "Nomi dei pacchetti installati nell'immagine montata:" - Label2.Text = "Nome del pacchetto padre:" - Label3.Text = "Ottenere i nomi dei pacchetti. Attendere prego..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Text = LocalizationService.ForSection("Package.Parent")("Installed.Package.Label") + Label1.Text = LocalizationService.ForSection("Package.Parent")("Installed.Package.Names") + Label2.Text = LocalizationService.ForSection("Package.Parent")("Name.ParentPackage.Label") + Label3.Text = LocalizationService.ForSection("Package.Parent")("Get.Package.Names.Label") + OK_Button.Text = LocalizationService.ForSection("Package.Parent")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("Package.Parent")("Cancel.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor ListBox1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Img_Ops/ImageFilePickerDialog.Designer.vb b/Panels/Img_Ops/ImageFilePickerDialog.Designer.vb index 5e748d829..a459f32bb 100644 --- a/Panels/Img_Ops/ImageFilePickerDialog.Designer.vb +++ b/Panels/Img_Ops/ImageFilePickerDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImageFilePickerDialog Inherits System.Windows.Forms.Form @@ -54,7 +54,7 @@ Partial Class ImageFilePickerDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImageFilePicker")("Ok.Button") ' 'Cancel_Button ' @@ -65,7 +65,7 @@ Partial Class ImageFilePickerDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImageFilePicker")("Cancel.Button") ' 'Label1 ' @@ -74,8 +74,7 @@ Partial Class ImageFilePickerDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(410, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Pick the Windows image file that you want to mount from the list below and click " & _ - "OK:" + Me.Label1.Text = LocalizationService.ForSection("Designer.ImageFilePicker")("MountList.Prompt.Label") ' 'ListView1 ' @@ -92,7 +91,7 @@ Partial Class ImageFilePickerDialog ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Image File" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ImageFilePicker")("ImageFile.Column") Me.ColumnHeader1.Width = 420 ' 'ImageFilePickerDialog @@ -112,7 +111,7 @@ Partial Class ImageFilePickerDialog Me.Name = "ImageFilePickerDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Pick Windows image file" + Me.Text = LocalizationService.ForSection("Designer.ImageFilePicker")("Pick.Windows.ImageFile.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/ImgAppend.Designer.vb b/Panels/Img_Ops/ImgAppend.Designer.vb index 5c7be49ff..d6010798d 100644 --- a/Panels/Img_Ops/ImgAppend.Designer.vb +++ b/Panels/Img_Ops/ImgAppend.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgAppend Inherits System.Windows.Forms.Form @@ -81,7 +81,7 @@ Partial Class ImgAppend Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgAppend")("Ok.Button") ' 'Cancel_Button ' @@ -92,7 +92,7 @@ Partial Class ImgAppend Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgAppend")("Cancel.Button") ' 'GroupBox2 ' @@ -120,7 +120,7 @@ Partial Class ImgAppend Me.GroupBox2.Size = New System.Drawing.Size(984, 278) Me.GroupBox2.TabIndex = 7 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.ImgAppend")("Options.Group") ' 'Button5 ' @@ -131,7 +131,7 @@ Partial Class ImgAppend Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(75, 23) Me.Button5.TabIndex = 13 - Me.Button5.Text = "Create..." + Me.Button5.Text = LocalizationService.ForSection("Designer.ImgAppend")("Create.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Label2 @@ -142,7 +142,7 @@ Partial Class ImgAppend Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(135, 13) Me.Label2.TabIndex = 12 - Me.Label2.Text = "Path of configuration file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgAppend")("Path.Config.File.Label") ' 'Button4 ' @@ -151,7 +151,7 @@ Partial Class ImgAppend Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(156, 23) Me.Button4.TabIndex = 4 - Me.Button4.Text = "Grab from last image" + Me.Button4.Text = LocalizationService.ForSection("Designer.ImgAppend")("Grab.Last.Image.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Button3 @@ -162,7 +162,7 @@ Partial Class ImgAppend Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 4 - Me.Button3.Text = "Browse..." + Me.Button3.Text = LocalizationService.ForSection("Designer.ImgAppend")("Browse.Button") Me.Button3.UseVisualStyleBackColor = True ' 'CheckBox6 @@ -174,7 +174,7 @@ Partial Class ImgAppend Me.CheckBox6.Name = "CheckBox6" Me.CheckBox6.Size = New System.Drawing.Size(164, 17) Me.CheckBox6.TabIndex = 0 - Me.CheckBox6.Text = "Use the reparse point tag fix" + Me.CheckBox6.Text = LocalizationService.ForSection("Designer.ImgAppend")("Reparse.Point.Tag.CheckBox") Me.CheckBox6.UseVisualStyleBackColor = True ' 'CheckBox7 @@ -184,7 +184,7 @@ Partial Class ImgAppend Me.CheckBox7.Name = "CheckBox7" Me.CheckBox7.Size = New System.Drawing.Size(164, 17) Me.CheckBox7.TabIndex = 0 - Me.CheckBox7.Text = "Capture extended attributes" + Me.CheckBox7.Text = LocalizationService.ForSection("Designer.ImgAppend")("ExtendedAttributes.CheckBox") Me.CheckBox7.UseVisualStyleBackColor = True ' 'CheckBox5 @@ -194,7 +194,7 @@ Partial Class ImgAppend Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(121, 17) Me.CheckBox5.TabIndex = 0 - Me.CheckBox5.Text = "Check for file errors" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.ImgAppend")("Check.File.Errors.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'CheckBox4 @@ -204,7 +204,7 @@ Partial Class ImgAppend Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(128, 17) Me.CheckBox4.TabIndex = 0 - Me.CheckBox4.Text = "Verify image integrity" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.ImgAppend")("Verify.Image.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -214,7 +214,7 @@ Partial Class ImgAppend Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(219, 17) Me.CheckBox3.TabIndex = 0 - Me.CheckBox3.Text = "Make image bootable (Windows PE only)" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.ImgAppend")("Image.Bootable.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -224,7 +224,7 @@ Partial Class ImgAppend Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(199, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Append with WIMBoot configuration" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.ImgAppend")("WIM.Boot.Config.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'TextBox4 @@ -255,7 +255,7 @@ Partial Class ImgAppend Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(299, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Exclude certain files and directories for destination image" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImgAppend")("Exclude.Files.Dirs.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label5 @@ -265,7 +265,7 @@ Partial Class ImgAppend Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(156, 13) Me.Label5.TabIndex = 2 - Me.Label5.Text = "Destination image description:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ImgAppend")("Dest.Image.Description.Label") ' 'Label7 ' @@ -274,7 +274,7 @@ Partial Class ImgAppend Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(156, 13) Me.Label7.TabIndex = 2 - Me.Label7.Text = "Destination image name:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ImgAppend")("Destination.Image.Name.Label") ' 'Button2 ' @@ -284,7 +284,7 @@ Partial Class ImgAppend Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 4 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.ImgAppend")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -303,7 +303,7 @@ Partial Class ImgAppend Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(142, 13) Me.Label6.TabIndex = 2 - Me.Label6.Text = "Destination image file:" + Me.Label6.Text = LocalizationService.ForSection("Designer.ImgAppend")("Destination.ImageFile.Label") ' 'GroupBox1 ' @@ -320,7 +320,7 @@ Partial Class ImgAppend Me.GroupBox1.Size = New System.Drawing.Size(984, 88) Me.GroupBox1.TabIndex = 9 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Sources and destinations" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImgAppend")("Sources.Destinations.Group") ' 'Button1 ' @@ -330,7 +330,7 @@ Partial Class ImgAppend Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 4 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgAppend")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -349,7 +349,7 @@ Partial Class ImgAppend Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(142, 13) Me.Label3.TabIndex = 2 - Me.Label3.Text = "Source image directory:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImgAppend")("Source.Image.Dir.Label") ' 'FolderBrowserDialog1 ' @@ -357,13 +357,13 @@ Partial Class ImgAppend ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "WIM files|*.wim" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgAppend")("WIM.Files.Filter") Me.SaveFileDialog1.OverwritePrompt = False ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WimScript.ini|WimScript.ini" - Me.OpenFileDialog1.Title = "Specify a WimScript.ini configuration file" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgAppend")("WimscriptIniwim.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.ImgAppend")("Wimscript.Ini.Title") ' 'ImageTaskHeader1 ' @@ -397,7 +397,7 @@ Partial Class ImgAppend Me.Name = "ImgAppend" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Append to an image" + Me.Text = LocalizationService.ForSection("Designer.ImgAppend")("AppendImage.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox2.ResumeLayout(False) Me.GroupBox2.PerformLayout() diff --git a/Panels/Img_Ops/ImgAppend.vb b/Panels/Img_Ops/ImgAppend.vb index 945a62ddb..84c5d7251 100644 --- a/Panels/Img_Ops/ImgAppend.vb +++ b/Panels/Img_Ops/ImgAppend.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.Dism Imports Microsoft.VisualBasic.ControlChars @@ -12,31 +12,7 @@ Public Class ImgAppend DynaLog.LogMessage("Checking source image directory...") If TextBox1.Text = "" Or Not Directory.Exists(TextBox1.Text) Then DynaLog.LogMessage("Either no source directory has been specified or it does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Please specify a source image directory and try again." - Case "ESN" - msg = "Por favor, especifique un directorio de imagen de origen e inténtelo de nuevo." - Case "FRA" - msg = "Veuillez indiquer un répertoire d'images source et réessayer." - Case "PTB", "PTG" - msg = "Especifique um diretório de imagens de origem e tente novamente." - Case "ITA" - msg = "Specificare una directory di origine dell'immagine e riprovare." - End Select - Case 1 - msg = "Please specify a source image directory and try again." - Case 2 - msg = "Por favor, especifique un directorio de imagen de origen e inténtelo de nuevo." - Case 3 - msg = "Veuillez indiquer un répertoire d'images source et réessayer." - Case 4 - msg = "Especifique um diretório de imagens de origem e tente novamente." - Case 5 - msg = "Specificare una directory di origine dell'immagine e riprovare." - End Select + msg = LocalizationService.ForSection("ImgAppend.Validation")("SourceImage.Required.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub Else @@ -45,31 +21,7 @@ Public Class ImgAppend DynaLog.LogMessage("Checking destination image...") If TextBox2.Text = "" Or Not File.Exists(TextBox2.Text) Then DynaLog.LogMessage("Either no destination image has been specified or it does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Please specify a destination image file and try again." - Case "ESN" - msg = "Por favor, especifique un archivo de imagen de destino e inténtelo de nuevo." - Case "FRA" - msg = "Veuillez indiquer un fichier image de destination et réessayer." - Case "PTB", "PTG" - msg = "Especifique um ficheiro de imagem de destino e tente novamente." - Case "ITA" - msg = "Specificare un file immagine di destinazione e riprovare." - End Select - Case 1 - msg = "Please specify a destination image file and try again." - Case 2 - msg = "Por favor, especifique un archivo de imagen de destino e inténtelo de nuevo." - Case 3 - msg = "Veuillez indiquer un fichier image de destination et réessayer." - Case 4 - msg = "Especifique um ficheiro de imagem de destino e tente novamente." - Case 5 - msg = "Specificare un file immagine di destinazione e riprovare." - End Select + msg = LocalizationService.ForSection("ImgAppend.Validation")("ImageFile.Required.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub Else @@ -78,31 +30,7 @@ Public Class ImgAppend DynaLog.LogMessage("Checking name of image to append to destination...") If TextBox3.Text = "" Then DynaLog.LogMessage("No name has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Please specify a name for the destination image file and try again." - Case "ESN" - msg = "Por favor, especifique un nombre para el archivo de imagen de destino e inténtelo de nuevo." - Case "FRA" - msg = "Veuillez indiquer un nom pour le fichier image de destination et réessayer." - Case "PTB", "PTG" - msg = "Especifique um nome para o ficheiro de imagem de destino e tente novamente." - Case "ITA" - msg = "Specificare un nome per il file immagine di destinazione e riprovare." - End Select - Case 1 - msg = "Please specify a name for the destination image file and try again." - Case 2 - msg = "Por favor, especifique un nombre para el archivo de imagen de destino e inténtelo de nuevo." - Case 3 - msg = "Veuillez indiquer un nom pour le fichier image de destination et réessayer." - Case 4 - msg = "Especifique um nome para o ficheiro de imagem de destino e tente novamente." - Case 5 - msg = "Specificare un nome per il file immagine di destinazione e riprovare." - End Select + msg = LocalizationService.ForSection("ImgAppend.Validation")("NameDestination.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub Else @@ -117,31 +45,7 @@ Public Class ImgAppend Else DynaLog.LogMessage("Either no configuration list file has been specified or it does not exist in the file system.") DynaLog.LogMessage("We can continue without it, but that may not be what the user wants. Asking...") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Either no configuration list file has been specified or the configuration list file could not be detected in your file system. Would you like to continue without any configuration list file?" - Case "ESN" - msg = "Ningún archivo de lista de configuración fue especificado, o no se pudo detectar en su sistema de archivos. ¿Desea continuar sin un archivo de lista de configuración?" - Case "FRA" - msg = "Soit aucun fichier de liste de configuration n'a été spécifié, soit le fichier de liste de configuration n'a pas pu être détecté dans votre système de fichiers. Souhaitez-vous continuer sans fichier de liste de configuration ?" - Case "PTB", "PTG" - msg = "Ou não foi especificado nenhum ficheiro de lista de configuração ou o ficheiro de lista de configuração não foi detectado no seu sistema de ficheiros. Deseja continuar sem qualquer ficheiro de lista de configuração?" - Case "ITA" - msg = "Non è stato specificato alcun file dell'elenco di configurazione oppure non è stato possibile rilevare il file dell'elenco di configurazione nel file system. Si desidera continuare senza alcun file dell'elenco di configurazione?" - End Select - Case 1 - msg = "Either no configuration list file has been specified or the configuration list file could not be detected in your file system. Would you like to continue without any configuration list file?" - Case 2 - msg = "Ningún archivo de lista de configuración fue especificado, o no se pudo detectar en su sistema de archivos. ¿Desea continuar sin un archivo de lista de configuración?" - Case 3 - msg = "Soit aucun fichier de liste de configuration n'a été spécifié, soit le fichier de liste de configuration n'a pas pu être détecté dans votre système de fichiers. Souhaitez-vous continuer sans fichier de liste de configuration ?" - Case 4 - msg = "Ou não foi especificado nenhum ficheiro de lista de configuração ou o ficheiro de lista de configuração não foi detectado no seu sistema de ficheiros. Deseja continuar sem qualquer ficheiro de lista de configuração?" - Case 5 - msg = "Non è stato specificato alcun file dell'elenco di configurazione oppure non è stato possibile rilevare il file dell'elenco di configurazione nel file system. Si desidera continuare senza alcun file dell'elenco di configurazione?" - End Select + msg = LocalizationService.ForSection("ImgAppend.Validation")("Either.Config.List.Message") If MsgBox(msg, vbYesNo + vbCritical, ImageTaskHeader1.ItemText) = MsgBoxResult.Ok Then DynaLog.LogMessage("The user does not mind if we continue without the configuration list file.") ProgressPanel.AppendixWimScriptConfig = "" @@ -173,251 +77,29 @@ Public Class ImgAppend End Sub Private Sub ImgAppend_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Append to an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Path of configuration file:" - Label3.Text = "Source image directory:" - Label5.Text = "Destination image description:" - Label6.Text = "Destination image file:" - Label7.Text = "Destination image name:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Button3.Text = "Browse..." - Button4.Text = "Grab from last image" - Button5.Text = "Create..." - CheckBox1.Text = "Exclude certain files and directories for destination image" - CheckBox2.Text = "Append with WIMBoot configuration" - CheckBox3.Text = "Make image bootable (Windows PE only)" - CheckBox4.Text = "Verify image integrity" - CheckBox5.Text = "Check for file errors" - CheckBox6.Text = "Use the reparse point tag fix" - CheckBox7.Text = "Capture extended attributes" - GroupBox1.Text = "Sources and destinations" - GroupBox2.Text = "Options" - Case "ESN" - Text = "Anexar a una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ruta del archivo de configuración:" - Label3.Text = "Directorio de la imagen de origen:" - Label5.Text = "Descripción de la imagen de destino:" - Label6.Text = "Archivo de imagen de destino:" - Label7.Text = "Nombre de la imagen de destino:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Button3.Text = "Examinar..." - Button4.Text = "Coger de la última imagen" - Button5.Text = "Crear..." - CheckBox1.Text = "Excluir algunos archivos y directorios para la imagen de destino" - CheckBox2.Text = "Anexar con configuración WIMBoot" - CheckBox3.Text = "Hacer imagen arrancable (solo Windows PE)" - CheckBox4.Text = "Verificar integridad de imagen" - CheckBox5.Text = "Comprobar errores de archivos" - CheckBox6.Text = "Utilizar corrección de etiquetas de puntos de repetición de análisis" - CheckBox7.Text = "Capturar atributos extendidos" - GroupBox1.Text = "Orígenes y destinos" - GroupBox2.Text = "Opciones" - Case "FRA" - Text = "Ajouter à une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Chemin du fichier de configuration :" - Label3.Text = "Répertoire de l'image source :" - Label5.Text = "Description de l'image de destination :" - Label6.Text = "Fichier de l'image de destination :" - Label7.Text = "Nom de l'image de destination :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Button3.Text = "Parcourir..." - Button4.Text = "Dernière image" - Button5.Text = "Créer..." - CheckBox1.Text = "Exclure certains fichiers et répertoires pour l'image de destination" - CheckBox2.Text = "Ajouter la configuration WIMBoot" - CheckBox3.Text = "Rendre l'image amorçable (Windows PE uniquement)" - CheckBox4.Text = "Vérifier l'intégrité de l'image" - CheckBox5.Text = "Rechercher les erreurs de fichiers" - CheckBox6.Text = "Utiliser la correction de la balise reparse" - CheckBox7.Text = "Capturer les attributs étendus" - GroupBox1.Text = "Sources et destinations" - GroupBox2.Text = "Paramètres" - Case "PTB", "PTG" - Text = "Anexar a uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Localização do ficheiro de configuração:" - Label3.Text = "Diretório da imagem de origem:" - Label5.Text = "Descrição da imagem de destino:" - Label6.Text = "Ficheiro de imagem de destino:" - Label7.Text = "Nome da imagem de destino:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Navegar..." - Button2.Text = "Procurar..." - Button3.Text = "Procurar..." - Button4.Text = "Última imagem" - Button5.Text = "Criar..." - CheckBox1.Text = "Excluir determinados ficheiros e directórios para a imagem de destino" - CheckBox2.Text = "Anexar com a configuração WIMBoot" - CheckBox3.Text = "Tornar a imagem de arranque (apenas Windows PE)" - CheckBox4.Text = "Verificar a integridade da imagem" - CheckBox5.Text = "Verificar se existem erros nos ficheiros" - CheckBox6.Text = "Utilizar a correção da etiqueta de ponto de reparação" - CheckBox7.Text = "Capturar atributos alargados" - GroupBox1.Text = "Origens e destinos" - GroupBox2.Text = "Opções" - Case "ITA" - Text = "Aggiungi a un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Percorso del file di configurazione:" - Label3.Text = "Cartella dell'immagine di origine:" - Label5.Text = "Descrizione immagine di destinazione:" - Label6.Text = "File immagine di destinazione:" - Label7.Text = "Nome immagine di destinazione:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Button3.Text = "Sfogliare..." - Button4.Text = "Ultima immagine" - Button5.Text = "Crea..." - CheckBox1.Text = "Escludi determinati file e cartelle per l'immagine di destinazione" - CheckBox2.Text = "Aggiungi con la configurazione WIMBoot" - CheckBox3.Text = "Rendi l'immagine avviabile (solo Windows PE)" - CheckBox4.Text = "Verifica l'integrità dell'immagine" - CheckBox5.Text = "Controlla gli errori dei file" - CheckBox6.Text = "Utilizza la correzione del tag del punto di reparse" - CheckBox7.Text = "Cattura attributi estesi" - GroupBox1.Text = "Sorgenti e destinazioni" - GroupBox2.Text = "Opzioni" - End Select - Case 1 - Text = "Append to an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Path of configuration file:" - Label3.Text = "Source image directory:" - Label5.Text = "Destination image description:" - Label6.Text = "Destination image file:" - Label7.Text = "Destination image name:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Button3.Text = "Browse..." - Button4.Text = "Grab from last image" - Button5.Text = "Create..." - CheckBox1.Text = "Exclude certain files and directories for destination image" - CheckBox2.Text = "Append with WIMBoot configuration" - CheckBox3.Text = "Make image bootable (Windows PE only)" - CheckBox4.Text = "Verify image integrity" - CheckBox5.Text = "Check for file errors" - CheckBox6.Text = "Use the reparse point tag fix" - CheckBox7.Text = "Capture extended attributes" - GroupBox1.Text = "Sources and destinations" - GroupBox2.Text = "Options" - Case 2 - Text = "Anexar a una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ruta del archivo de configuración:" - Label3.Text = "Directorio de la imagen de origen:" - Label5.Text = "Descripción de la imagen de destino:" - Label6.Text = "Archivo de imagen de destino:" - Label7.Text = "Nombre de la imagen de destino:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Button3.Text = "Examinar..." - Button4.Text = "Coger de la última imagen" - Button5.Text = "Crear..." - CheckBox1.Text = "Excluir algunos archivos y directorios para la imagen de destino" - CheckBox2.Text = "Anexar con configuración WIMBoot" - CheckBox3.Text = "Hacer imagen arrancable (solo Windows PE)" - CheckBox4.Text = "Verificar integridad de imagen" - CheckBox5.Text = "Comprobar errores de archivos" - CheckBox6.Text = "Utilizar corrección de etiquetas de puntos de repetición de análisis" - CheckBox7.Text = "Capturar atributos extendidos" - GroupBox1.Text = "Orígenes y destinos" - GroupBox2.Text = "Opciones" - Case 3 - Text = "Ajouter à une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Chemin du fichier de configuration :" - Label3.Text = "Répertoire de l'image source :" - Label5.Text = "Description de l'image de destination :" - Label6.Text = "Fichier de l'image de destination :" - Label7.Text = "Nom de l'image de destination :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Button3.Text = "Parcourir..." - Button4.Text = "Dernière image" - Button5.Text = "Créer..." - CheckBox1.Text = "Exclure certains fichiers et répertoires pour l'image de destination" - CheckBox2.Text = "Ajouter la configuration WIMBoot" - CheckBox3.Text = "Rendre l'image amorçable (Windows PE uniquement)" - CheckBox4.Text = "Vérifier l'intégrité de l'image" - CheckBox5.Text = "Rechercher les erreurs de fichiers" - CheckBox6.Text = "Utiliser la correction de la balise reparse" - CheckBox7.Text = "Capturer les attributs étendus" - GroupBox1.Text = "Sources et destinations" - GroupBox2.Text = "Paramètres" - Case 4 - Text = "Anexar a uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Localização do ficheiro de configuração:" - Label3.Text = "Diretório da imagem de origem:" - Label5.Text = "Descrição da imagem de destino:" - Label6.Text = "Ficheiro de imagem de destino:" - Label7.Text = "Nome da imagem de destino:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Navegar..." - Button2.Text = "Procurar..." - Button3.Text = "Procurar..." - Button4.Text = "Última imagem" - Button5.Text = "Criar..." - CheckBox1.Text = "Excluir determinados ficheiros e directórios para a imagem de destino" - CheckBox2.Text = "Anexar com a configuração WIMBoot" - CheckBox3.Text = "Tornar a imagem de arranque (apenas Windows PE)" - CheckBox4.Text = "Verificar a integridade da imagem" - CheckBox5.Text = "Verificar se existem erros nos ficheiros" - CheckBox6.Text = "Utilizar a correção da etiqueta de ponto de reparação" - CheckBox7.Text = "Capturar atributos alargados" - GroupBox1.Text = "Origens e destinos" - GroupBox2.Text = "Opções" - Case 5 - Text = "Aggiungi a un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Percorso del file di configurazione:" - Label3.Text = "Cartella dell'immagine di origine:" - Label5.Text = "Descrizione immagine di destinazione:" - Label6.Text = "File immagine di destinazione:" - Label7.Text = "Nome immagine di destinazione:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Button3.Text = "Sfogliare..." - Button4.Text = "Ultima immagine" - Button5.Text = "Crea..." - CheckBox1.Text = "Escludi determinati file e cartelle per l'immagine di destinazione" - CheckBox2.Text = "Aggiungi con la configurazione WIMBoot" - CheckBox3.Text = "Rendi l'immagine avviabile (solo Windows PE)" - CheckBox4.Text = "Verifica l'integrità dell'immagine" - CheckBox5.Text = "Controlla gli errori dei file" - CheckBox6.Text = "Utilizza la correzione del tag del punto di reparse" - CheckBox7.Text = "Cattura attributi estesi" - GroupBox1.Text = "Sorgenti e destinazioni" - GroupBox2.Text = "Opzioni" - End Select + Text = LocalizationService.ForSection("ImgAppend")("AppendImage.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ImgAppend").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ImgAppend")("Path.Config.File.Label") + Label3.Text = LocalizationService.ForSection("ImgAppend")("Source.Image.Dir.Label") + Label5.Text = LocalizationService.ForSection("ImgAppend")("Dest.Image.Description.Label") + Label6.Text = LocalizationService.ForSection("ImgAppend")("Destination.ImageFile.Label") + Label7.Text = LocalizationService.ForSection("ImgAppend")("Destination.Image.Name.Label") + OK_Button.Text = LocalizationService.ForSection("ImgAppend")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImgAppend")("Cancel.Button") + Button1.Text = LocalizationService.ForSection("ImgAppend")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImgAppend")("Browse.Button") + Button3.Text = LocalizationService.ForSection("ImgAppend")("Browse.Button") + Button4.Text = LocalizationService.ForSection("ImgAppend")("Grab.Last.Image.Button") + Button5.Text = LocalizationService.ForSection("ImgAppend")("Create.Button") + CheckBox1.Text = LocalizationService.ForSection("ImgAppend")("Exclude.Files.Dirs.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("ImgAppend")("WIM.Boot.Config.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("ImgAppend")("Image.Bootable.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("ImgAppend")("Verify.Image.CheckBox") + CheckBox5.Text = LocalizationService.ForSection("ImgAppend")("Check.File.Errors.CheckBox") + CheckBox6.Text = LocalizationService.ForSection("ImgAppend")("Reparse.Point.Tag.CheckBox") + CheckBox7.Text = LocalizationService.ForSection("ImgAppend")("ExtendedAttributes.CheckBox") + GroupBox1.Text = LocalizationService.ForSection("ImgAppend")("Sources.Destinations.Group") + GroupBox2.Text = LocalizationService.ForSection("ImgAppend")("Options.Group") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -516,7 +198,7 @@ Public Class ImgAppend imageName = ImageInfoCollection.Last.ImageName Catch ex As Exception DynaLog.LogMessage("Could not get image file information. Error message: " & ex.Message) - MsgBox("Could not grab last image name. Error information:" & CrLf & CrLf & ex.ToString(), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("ImageOps.Append.Messages").Format("Grab.Last.Image.Label", ex.ToString()), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally Try DynaLog.LogMessage("Shutting down API...") @@ -539,31 +221,7 @@ Public Class ImgAppend Private Sub Button4_MouseHover(sender As Object, e As EventArgs) Handles Button4.MouseHover Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Grab the name of the last index of the target image" - Case "ESN" - msg = "Obtener el nombre del último índice de la imagen de destino" - Case "FRA" - msg = "Obtenir le nom du dernier index de l'image cible" - Case "PTB", "PTG" - msg = "Obter o nome do último índice da imagem de destino" - Case "ITA" - msg = "Ottenere il nome dell'ultimo indice dell'immagine di destinazione" - End Select - Case 1 - msg = "Grab the name of the last index of the target image" - Case 2 - msg = "Obtener el nombre del último índice de la imagen de destino" - Case 3 - msg = "Obtenir le nom du dernier index de l'image cible" - Case 4 - msg = "Obter o nome do último índice da imagem de destino" - Case 5 - msg = "Ottenere il nome dell'ultimo indice dell'immagine di destinazione" - End Select + msg = LocalizationService.ForSection("ImgAppend.Tooltip")("Grab.Name.Last.Message") WindowHelper.DisplayToolTip(sender, msg) End Sub End Class diff --git a/Panels/Img_Ops/ImgApply.Designer.vb b/Panels/Img_Ops/ImgApply.Designer.vb index cc8d51eb8..0a035c32b 100644 --- a/Panels/Img_Ops/ImgApply.Designer.vb +++ b/Panels/Img_Ops/ImgApply.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgApply Inherits System.Windows.Forms.Form @@ -93,7 +93,7 @@ Partial Class ImgApply Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgApply")("Ok.Button") ' 'Cancel_Button ' @@ -104,7 +104,7 @@ Partial Class ImgApply Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgApply")("Cancel.Button") ' 'GroupBox1 ' @@ -117,7 +117,7 @@ Partial Class ImgApply Me.GroupBox1.Size = New System.Drawing.Size(659, 64) Me.GroupBox1.TabIndex = 6 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Source" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImgApply")("Source.Group") ' 'Button1 ' @@ -126,7 +126,7 @@ Partial Class ImgApply Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgApply")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'UseMountedImgBtn @@ -136,7 +136,7 @@ Partial Class ImgApply Me.UseMountedImgBtn.Name = "UseMountedImgBtn" Me.UseMountedImgBtn.Size = New System.Drawing.Size(114, 23) Me.UseMountedImgBtn.TabIndex = 2 - Me.UseMountedImgBtn.Text = "Use mounted image" + Me.UseMountedImgBtn.Text = LocalizationService.ForSection("Designer.ImgApply")("Mounted.Image.Label") Me.UseMountedImgBtn.UseVisualStyleBackColor = True ' 'TextBox1 @@ -153,7 +153,7 @@ Partial Class ImgApply Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(92, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Source image file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgApply")("SourceImageFile.Label") ' 'GroupBox2 ' @@ -172,7 +172,7 @@ Partial Class ImgApply Me.GroupBox2.Size = New System.Drawing.Size(659, 201) Me.GroupBox2.TabIndex = 6 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.ImgApply")("Options.Group") ' 'ComboBox1 ' @@ -189,7 +189,7 @@ Partial Class ImgApply Me.CheckBox8.Name = "CheckBox8" Me.CheckBox8.Size = New System.Drawing.Size(152, 17) Me.CheckBox8.TabIndex = 0 - Me.CheckBox8.Text = "Apply extended attributes" + Me.CheckBox8.Text = LocalizationService.ForSection("Designer.ImgApply")("Extended.Attributes.CheckBox") Me.CheckBox8.UseVisualStyleBackColor = True ' 'CheckBox7 @@ -199,7 +199,7 @@ Partial Class ImgApply Me.CheckBox7.Name = "CheckBox7" Me.CheckBox7.Size = New System.Drawing.Size(167, 17) Me.CheckBox7.TabIndex = 0 - Me.CheckBox7.Text = "Apply image in compact mode" + Me.CheckBox7.Text = LocalizationService.ForSection("Designer.ImgApply")("Image.Compact.Mode.CheckBox") Me.CheckBox7.UseVisualStyleBackColor = True ' 'Label3 @@ -209,7 +209,7 @@ Partial Class ImgApply Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(70, 13) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Image index:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImgApply")("ImageIndex.Label") ' 'CheckBox6 ' @@ -218,7 +218,7 @@ Partial Class ImgApply Me.CheckBox6.Name = "CheckBox6" Me.CheckBox6.Size = New System.Drawing.Size(230, 17) Me.CheckBox6.TabIndex = 0 - Me.CheckBox6.Text = "Append image with WIMBoot configuration" + Me.CheckBox6.Text = LocalizationService.ForSection("Designer.ImgApply")("Append.Image.WIM.CheckBox") Me.CheckBox6.UseVisualStyleBackColor = True ' 'CheckBox5 @@ -229,7 +229,7 @@ Partial Class ImgApply Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(194, 17) Me.CheckBox5.TabIndex = 0 - Me.CheckBox5.Text = "Validate image for Trusted Desktop" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.ImgApply")("Validate.Image.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'CheckBox4 @@ -239,7 +239,7 @@ Partial Class ImgApply Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(125, 17) Me.CheckBox4.TabIndex = 0 - Me.CheckBox4.Text = "Reference SWM files" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.ImgApply")("Reference.Swmfiles.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -251,7 +251,7 @@ Partial Class ImgApply Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(273, 17) Me.CheckBox3.TabIndex = 0 - Me.CheckBox3.Text = "Use the reparse point tag fix" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.ImgApply")("Reparse.Point.Tag.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -261,7 +261,7 @@ Partial Class ImgApply Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(54, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Verify" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.ImgApply")("Verify.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -271,7 +271,7 @@ Partial Class ImgApply Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(129, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Check image integrity" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImgApply")("Integrity.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'GroupBox3 @@ -284,7 +284,7 @@ Partial Class ImgApply Me.GroupBox3.Size = New System.Drawing.Size(659, 62) Me.GroupBox3.TabIndex = 6 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Destination" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.ImgApply")("Destination.Group") ' 'Label5 ' @@ -293,7 +293,7 @@ Partial Class ImgApply Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(111, 13) Me.Label5.TabIndex = 4 - Me.Label5.Text = "Destination directory:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ImgApply")("Destination.Dir.Label") ' 'Button2 ' @@ -302,7 +302,7 @@ Partial Class ImgApply Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.ImgApply")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -314,8 +314,8 @@ Partial Class ImgApply ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WIM files|*.wim|SWM files|*.swm|ESD files|*.esd" - Me.OpenFileDialog1.Title = "Please specify the source image to apply" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgApply")("WIM.Files.Wimswm.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.ImgApply")("Source.Image.Required.Title") ' 'GroupBox4 ' @@ -325,7 +325,7 @@ Partial Class ImgApply Me.GroupBox4.Size = New System.Drawing.Size(319, 339) Me.GroupBox4.TabIndex = 6 Me.GroupBox4.TabStop = False - Me.GroupBox4.Text = "SWM file pattern" + Me.GroupBox4.Text = LocalizationService.ForSection("Designer.ImgApply")("SwmfilePattern.Group") ' 'SWMFilePanelContainer ' @@ -372,7 +372,7 @@ Partial Class ImgApply ' Me.ToolStripStatusLabel1.Name = "ToolStripStatusLabel1" Me.ToolStripStatusLabel1.Size = New System.Drawing.Size(120, 17) - Me.ToolStripStatusLabel1.Text = "ToolStripStatusLabel1" + Me.ToolStripStatusLabel1.Text = LocalizationService.ForSection("Designer.ImgApply")("Status.InitialLabel") ' 'Panel1 ' @@ -400,7 +400,7 @@ Partial Class ImgApply Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(145, 23) Me.Button5.TabIndex = 2 - Me.Button5.Text = "Scan pattern" + Me.Button5.Text = LocalizationService.ForSection("Designer.ImgApply")("ScanPattern.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button4 @@ -410,7 +410,7 @@ Partial Class ImgApply Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(145, 23) Me.Button4.TabIndex = 2 - Me.Button4.Text = "Use name of the image" + Me.Button4.Text = LocalizationService.ForSection("Designer.ImgApply")("Name.Image.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Label4 @@ -420,11 +420,11 @@ Partial Class ImgApply Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(87, 13) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Namimg pattern:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ImgApply")("NamingPattern.Label") ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Please specify the destination directory to apply the image to:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.ImgApply")("DestinationDir.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'ImageTaskHeader1 @@ -461,7 +461,7 @@ Partial Class ImgApply Me.Name = "ImgApply" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Apply an image" + Me.Text = LocalizationService.ForSection("Designer.ImgApply")("ApplyImage.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/ImgApply.vb b/Panels/Img_Ops/ImgApply.vb index 11d472768..ec7e9cbed 100644 --- a/Panels/Img_Ops/ImgApply.vb +++ b/Panels/Img_Ops/ImgApply.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Text.Encoding @@ -15,31 +15,7 @@ Public Class ImgApply If Not ProgressPanel.IsDisposed Then ProgressPanel.Dispose() If TextBox1.Text = "" Or Not File.Exists(TextBox1.Text) Then DynaLog.LogMessage("Either no image file has been specified or it does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The specified image file is not valid. Please specify a valid image and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("El archivo de imagen especificado no es válido. Especifique una imagen válida e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Le fichier image spécifié n'est pas valide. Veuillez spécifier une image valide et réessayer.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("O ficheiro de imagem especificado não é válido. Especifique uma imagem válida e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Il file immagine specificato non è valido. Specificare un'immagine valida e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("The specified image file is not valid. Please specify a valid image and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("El archivo de imagen especificado no es válido. Especifique una imagen válida e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Le fichier image spécifié n'est pas valide. Veuillez spécifier une image valide et réessayer.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("O ficheiro de imagem especificado não é válido. Especifique uma imagem válida e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Il file immagine specificato non è valido. Specificare un'immagine valida e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgApply.Validation")("ImageFile.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.ApplicationSourceImg = TextBox1.Text @@ -98,271 +74,31 @@ Public Class ImgApply End Sub Private Sub ImgApply_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Apply an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image file:" - Label3.Text = "Image index:" - Label4.Text = "Naming pattern:" - CheckBox1.Text = "Check image integrity" - CheckBox2.Text = "Verify" - CheckBox3.Text = "Use the reparse point tag fix" - CheckBox4.Text = "Reference SWM files" - CheckBox5.Text = "Validate image for Trusted Desktop" - CheckBox6.Text = "Append image with WIMBoot configuration" - CheckBox7.Text = "Apply image in compact mode" - CheckBox8.Text = "Apply extended attributes" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Button4.Text = "Use name of the image" - Button5.Text = "Scan pattern" - UseMountedImgBtn.Text = "Use mounted image" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Label5.Text = "Destination directory:" - GroupBox1.Text = "Source" - GroupBox2.Text = "Options" - GroupBox3.Text = "Destination" - GroupBox4.Text = "SWM file pattern" - Case "ESN" - Text = "Aplicar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen de origen:" - Label3.Text = "Índice:" - Label4.Text = "Nomenclatura:" - CheckBox1.Text = "Comprobar integridad de imagen" - CheckBox2.Text = "Verificar" - CheckBox3.Text = "Utilizar corrección de etiquetas de puntos de repetición de análisis" - CheckBox4.Text = "Hacer referencia a archivos SWM" - CheckBox5.Text = "Validar imagen de Trusted Desktop" - CheckBox6.Text = "Aplicar imagen con configuración WIMBoot" - CheckBox7.Text = "Aplicar imagen en modo compacto" - CheckBox8.Text = "Aplicar atributos extendidos" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Button4.Text = "Usar nombre de imagen" - Button5.Text = "Escanear patrón" - UseMountedImgBtn.Text = "Usar imagen montada" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Label5.Text = "Directorio de destino:" - GroupBox1.Text = "Origen" - GroupBox2.Text = "Opciones" - GroupBox3.Text = "Destino" - GroupBox4.Text = "Patrón de archivos SWM" - Case "FRA" - Text = "Appliquer une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier de l'image originale :" - Label3.Text = "Index de l'image:" - Label4.Text = "Modèle de dénomination :" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - CheckBox2.Text = "Verifier" - CheckBox3.Text = "Utiliser la correction de la balise reparse" - CheckBox4.Text = "Référence aux fichiers SWM" - CheckBox5.Text = "Valider l'image pour Trusted Desktop" - CheckBox6.Text = "Ajouter une image avec la configuration WIMBoot" - CheckBox7.Text = "Appliquer l'image en mode compact" - CheckBox8.Text = "Appliquer des attributs étendus" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Button4.Text = "Utiliser le nom de l'image" - Button5.Text = "Scanner le modèle" - UseMountedImgBtn.Text = "Utiliser une image montée" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Label5.Text = "Répertoire de destination :" - GroupBox1.Text = "Source" - GroupBox2.Text = "Paramètres" - GroupBox3.Text = "Destination" - GroupBox4.Text = "Modèle de fichier SWM" - Case "PTB", "PTG" - Text = "Aplicar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de origem:" - Label3.Text = "Índice da imagem:" - Label4.Text = "Padrão de nomenclatura:" - CheckBox1.Text = "Verificar integridade da imagem" - CheckBox2.Text = "Verificar" - CheckBox3.Text = "Utilizar a correção da etiqueta de ponto de reparação" - CheckBox4.Text = "Referenciar ficheiros SWM" - CheckBox5.Text = "Validar imagem para o Trusted Desktop" - CheckBox6.Text = "Anexar imagem com configuração WIMBoot" - CheckBox7.Text = "Aplicar imagem em modo compacto" - CheckBox8.Text = "Aplicar atributos alargados" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - Button4.Text = "Utilizar o nome da imagem" - Button5.Text = "Padrão de digitalização" - UseMountedImgBtn.Text = "Utilizar imagem montada" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Label5.Text = "Diretório de destino:" - GroupBox1.Text = "Origem" - GroupBox2.Text = "Opções" - GroupBox3.Text = "Destino" - GroupBox4.Text = "Padrão de ficheiro SWM" - Case "ITA" - Text = "Applica un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di origine:" - Label3.Text = "Indice immagine:" - Label4.Text = "Modello di denominazione:" - CheckBox1.Text = "Verifica l'integrità dell'immagine" - CheckBox2.Text = "Verifica" - CheckBox3.Text = "Utilizza il tag fix del punto di reparse" - CheckBox4.Text = "File SWM di riferimento" - CheckBox5.Text = "Convalida l'immagine per Trusted Desktop" - CheckBox6.Text = "Aggiungi all'immagine la configurazione WIMBoot" - CheckBox7.Text = "Applica l'immagine in modalità compatta" - CheckBox8.Text = "Applica gli attributi estesi" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Button4.Text = "Usa il nome dell'immagine" - Button5.Text = "Modello di scansione" - UseMountedImgBtn.Text = "Usa immagine montata" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - Label5.Text = "Directory di destinazione:" - GroupBox1.Text = "Origine" - GroupBox2.Text = "Opzioni" - GroupBox3.Text = "Destinazione" - GroupBox4.Text = "Schema di file SWM" - End Select - Case 1 - Text = "Apply an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image file:" - Label3.Text = "Image index:" - Label4.Text = "Naming pattern:" - CheckBox1.Text = "Check image integrity" - CheckBox2.Text = "Verify" - CheckBox3.Text = "Use the reparse point tag fix" - CheckBox4.Text = "Reference SWM files" - CheckBox5.Text = "Validate image for Trusted Desktop" - CheckBox6.Text = "Append image with WIMBoot configuration" - CheckBox7.Text = "Apply image in compact mode" - CheckBox8.Text = "Apply extended attributes" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Button4.Text = "Use name of the image" - Button5.Text = "Scan pattern" - UseMountedImgBtn.Text = "Use mounted image" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Label5.Text = "Destination directory:" - GroupBox1.Text = "Source" - GroupBox2.Text = "Options" - GroupBox3.Text = "Destination" - GroupBox4.Text = "SWM file pattern" - Case 2 - Text = "Aplicar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen de origen:" - Label3.Text = "Índice:" - Label4.Text = "Nomenclatura:" - CheckBox1.Text = "Comprobar integridad de imagen" - CheckBox2.Text = "Verificar" - CheckBox3.Text = "Utilizar corrección de etiquetas de puntos de repetición de análisis" - CheckBox4.Text = "Hacer referencia a archivos SWM" - CheckBox5.Text = "Validar imagen de Trusted Desktop" - CheckBox6.Text = "Aplicar imagen con configuración WIMBoot" - CheckBox7.Text = "Aplicar imagen en modo compacto" - CheckBox8.Text = "Aplicar atributos extendidos" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Button4.Text = "Usar nombre de imagen" - Button5.Text = "Escanear patrón" - UseMountedImgBtn.Text = "Usar imagen montada" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Label5.Text = "Directorio de destino:" - GroupBox1.Text = "Origen" - GroupBox2.Text = "Opciones" - GroupBox3.Text = "Destino" - GroupBox4.Text = "Patrón de archivos SWM" - Case 3 - Text = "Appliquer une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier de l'image originale :" - Label3.Text = "Index de l'image:" - Label4.Text = "Modèle de dénomination :" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - CheckBox2.Text = "Verifier" - CheckBox3.Text = "Utiliser la correction de la balise reparse" - CheckBox4.Text = "Référence aux fichiers SWM" - CheckBox5.Text = "Valider l'image pour Trusted Desktop" - CheckBox6.Text = "Ajouter une image avec la configuration WIMBoot" - CheckBox7.Text = "Appliquer l'image en mode compact" - CheckBox8.Text = "Appliquer des attributs étendus" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Button4.Text = "Utiliser le nom de l'image" - Button5.Text = "Scanner le modèle" - UseMountedImgBtn.Text = "Utiliser une image montée" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Label5.Text = "Répertoire de destination :" - GroupBox1.Text = "Source" - GroupBox2.Text = "Paramètres" - GroupBox3.Text = "Destination" - GroupBox4.Text = "Modèle de fichier SWM" - Case 4 - Text = "Aplicar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de origem:" - Label3.Text = "Índice da imagem:" - Label4.Text = "Padrão de nomenclatura:" - CheckBox1.Text = "Verificar integridade da imagem" - CheckBox2.Text = "Verificar" - CheckBox3.Text = "Utilizar a correção da etiqueta de ponto de reparação" - CheckBox4.Text = "Referenciar ficheiros SWM" - CheckBox5.Text = "Validar imagem para o Trusted Desktop" - CheckBox6.Text = "Anexar imagem com configuração WIMBoot" - CheckBox7.Text = "Aplicar imagem em modo compacto" - CheckBox8.Text = "Aplicar atributos alargados" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - Button4.Text = "Utilizar o nome da imagem" - Button5.Text = "Padrão de digitalização" - UseMountedImgBtn.Text = "Utilizar imagem montada" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Label5.Text = "Diretório de destino:" - GroupBox1.Text = "Origem" - GroupBox2.Text = "Opções" - GroupBox3.Text = "Destino" - GroupBox4.Text = "Padrão de ficheiro SWM" - Case 5 - Text = "Applica un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di origine:" - Label3.Text = "Indice immagine:" - Label4.Text = "Modello di denominazione:" - CheckBox1.Text = "Verifica l'integrità dell'immagine" - CheckBox2.Text = "Verifica" - CheckBox3.Text = "Utilizza il tag fix del punto di reparse" - CheckBox4.Text = "File SWM di riferimento" - CheckBox5.Text = "Convalida l'immagine per Trusted Desktop" - CheckBox6.Text = "Aggiungi all'immagine la configurazione WIMBoot" - CheckBox7.Text = "Applica l'immagine in modalità compatta" - CheckBox8.Text = "Applica gli attributi estesi" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Button4.Text = "Usa il nome dell'immagine" - Button5.Text = "Modello di scansione" - UseMountedImgBtn.Text = "Usa immagine montata" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - Label5.Text = "Directory di destinazione:" - GroupBox1.Text = "Origine" - GroupBox2.Text = "Opzioni" - GroupBox3.Text = "Destinazione" - GroupBox4.Text = "Schema di file SWM" - End Select + Text = LocalizationService.ForSection("ImgApply")("ApplyImage.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ImgApply").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ImgApply")("SourceImageFile.Label") + Label3.Text = LocalizationService.ForSection("ImgApply")("ImageIndex.Label") + Label4.Text = LocalizationService.ForSection("ImgApply")("NamingPattern.Label") + CheckBox1.Text = LocalizationService.ForSection("ImgApply")("Integrity.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("ImgApply")("Verify.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("ImgApply")("Reparse.Point.Tag.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("ImgApply")("Reference.Swmfiles.CheckBox") + CheckBox5.Text = LocalizationService.ForSection("ImgApply")("Validate.Image.CheckBox") + CheckBox6.Text = LocalizationService.ForSection("ImgApply")("Append.Image.WIM.CheckBox") + CheckBox7.Text = LocalizationService.ForSection("ImgApply")("Image.Compact.Mode.CheckBox") + CheckBox8.Text = LocalizationService.ForSection("ImgApply")("Extended.Attributes.CheckBox") + Button1.Text = LocalizationService.ForSection("ImgApply")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImgApply")("Browse.Button") + Button4.Text = LocalizationService.ForSection("ImgApply")("Name.Image.Button") + Button5.Text = LocalizationService.ForSection("ImgApply")("ScanPattern.Button") + UseMountedImgBtn.Text = LocalizationService.ForSection("ImgApply")("Mounted.Image.Label") + OK_Button.Text = LocalizationService.ForSection("ImgApply")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImgApply")("Cancel.Button") + Label5.Text = LocalizationService.ForSection("ImgApply")("Destination.Dir.Label") + GroupBox1.Text = LocalizationService.ForSection("ImgApply")("Source.Group") + GroupBox2.Text = LocalizationService.ForSection("ImgApply")("Options.Group") + GroupBox3.Text = LocalizationService.ForSection("ImgApply")("Destination.Group") + GroupBox4.Text = LocalizationService.ForSection("ImgApply")("SwmfilePattern.Group") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -381,31 +117,7 @@ Public Class ImgApply TextBox2.ForeColor = ForeColor TextBox4.ForeColor = ForeColor ListBox1.ForeColor = ForeColor - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ToolStripStatusLabel1.Text = "Please specify the naming pattern of the SWM files" - Case "ESN" - ToolStripStatusLabel1.Text = "Especifique la nomenclatura del patrón de los archivos SWM" - Case "FRA" - ToolStripStatusLabel1.Text = "Veuillez spécifier le modèle de dénomination des fichiers SWM" - Case "PTB", "PTG" - ToolStripStatusLabel1.Text = "Especifique o padrão de nomenclatura dos ficheiros SWM" - Case "ITA" - ToolStripStatusLabel1.Text = "Specificare il modello di denominazione dei file SWM" - End Select - Case 1 - ToolStripStatusLabel1.Text = "Please specify the naming pattern of the SWM files" - Case 2 - ToolStripStatusLabel1.Text = "Especifique la nomenclatura del patrón de los archivos SWM" - Case 3 - ToolStripStatusLabel1.Text = "Veuillez spécifier le modèle de dénomination des fichiers SWM" - Case 4 - ToolStripStatusLabel1.Text = "Especifique o padrão de nomenclatura dos ficheiros SWM" - Case 5 - ToolStripStatusLabel1.Text = "Specificare il modello di denominazione dei file SWM" - End Select + ToolStripStatusLabel1.Text = LocalizationService.ForSection("ImgApply")("NamingPattern.Required.Label") If MainForm.SourceImg = "N/A" Or Not File.Exists(MainForm.SourceImg) Or MainForm.OnlineManagement Or MainForm.OfflineManagement Then UseMountedImgBtn.Enabled = False Else @@ -457,31 +169,7 @@ Public Class ImgApply Catch ex As Exception DynaLog.LogMessage("Could not get image file information. Error message: " & ex.Message) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ESN" - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "FRA" - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "PTB", "PTG" - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ITA" - msg = "Impossibile raccogliere informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select - Case 1 - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 2 - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 3 - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 4 - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 5 - msg = "Impossibile raccogliere informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select + msg = LocalizationService.ForSection("ImgApply.GetIndexes").Format("Gather.ImageFile.Message", ex.ToString(), ex.Message, Hex(ex.HResult)) MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally Try @@ -525,41 +213,8 @@ Public Class ImgApply ListBox1.Items.Clear() If TextBox1.Text = "" Or PatternName = "" Then DynaLog.LogMessage("Either no source image file has been specified or no pattern has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a source WIM file. This will let you use the SWM files for later image application", vbOKOnly + vbCritical, "Apply an image") - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SWM files" - Case "ESN" - MsgBox("Especifique el arhivo WIM de origen. Esto le permitirá usar los archivos SWM para la aplicación posterior de la imagen", vbOKOnly + vbCritical, "Aplicar una imagen") - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SWM" - Case "FRA" - MsgBox("Veuillez indiquer un fichier WIM original. Cela vous permettra d'utiliser les fichiers SWM pour une application d'image ultérieure.", vbOKOnly + vbCritical, "Appliquer une image") - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SWM" - Case "PTB", "PTG" - MsgBox("Especifique um ficheiro WIM de origem. Isto permitir-lhe-á utilizar os ficheiros SWM para uma aplicação de imagem posterior", vbOKOnly + vbCritical, "Aplicar uma imagem") - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SWM" - Case "ITA" - MsgBox("Specificare un file WIM di origine. In questo modo sarà possibile utilizzare i file SWM per una successiva applicazione di immagini", vbOKOnly + vbCritical, "Applica un'immagine") - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SWM" - End Select - Case 1 - MsgBox("Please specify a source WIM file. This will let you use the SWM files for later image application", vbOKOnly + vbCritical, "Apply an image") - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SWM files" - Case 2 - MsgBox("Especifique el arhivo WIM de origen. Esto le permitirá usar los archivos SWM para la aplicación posterior de la imagen", vbOKOnly + vbCritical, "Aplicar una imagen") - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SWM" - Case 3 - MsgBox("Veuillez indiquer un fichier WIM original. Cela vous permettra d'utiliser les fichiers SWM pour une application d'image ultérieure.", vbOKOnly + vbCritical, "Appliquer une image") - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SWM" - Case 4 - MsgBox("Especifique um ficheiro WIM de origem. Isto permitir-lhe-á utilizar os ficheiros SWM para uma aplicação de imagem posterior", vbOKOnly + vbCritical, "Aplicar uma imagem") - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SWM" - Case 5 - MsgBox("Specificare un file WIM di origine. In questo modo sarà possibile utilizzare i file SWM per una successiva applicazione di immagini", vbOKOnly + vbCritical, "Applica un'immagine") - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SWM" - End Select + MsgBox(LocalizationService.ForSection("ImgApply.ScanSwmPattern")("Source.WIM.Required.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("ImgApply.ScanSwmPattern")("ApplyImage.Message")) + ToolStripStatusLabel1.Text = LocalizationService.ForSection("ImgApply.ScanSwmPattern").Format("Naming.Returns.Item", ListBox1.Items.Count) Beep() Exit Sub End If @@ -570,31 +225,7 @@ Public Class ImgApply End If Next DynaLog.LogMessage("Pattern search results: " & ListBox1.Items.Count) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SWM files" - Case "ESN" - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SWM" - Case "FRA" - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SWM" - Case "PTB", "PTG" - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SWM" - Case "ITA" - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SWM" - End Select - Case 1 - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SWM files" - Case 2 - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SWM" - Case 3 - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SWM" - Case 4 - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SWM" - Case 5 - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SWM" - End Select + ToolStripStatusLabel1.Text = LocalizationService.ForSection("ImgApply.ScanSwmPattern").Format("Naming.Returns.Label", ListBox1.Items.Count) If ListBox1.Items.Count <= 0 Then Beep() End Sub diff --git a/Panels/Img_Ops/ImgCapture.Designer.vb b/Panels/Img_Ops/ImgCapture.Designer.vb index 9a0391aa5..9c056e49e 100644 --- a/Panels/Img_Ops/ImgCapture.Designer.vb +++ b/Panels/Img_Ops/ImgCapture.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgCapture Inherits System.Windows.Forms.Form @@ -85,7 +85,7 @@ Partial Class ImgCapture Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgCapture")("Ok.Button") ' 'Cancel_Button ' @@ -96,7 +96,7 @@ Partial Class ImgCapture Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgCapture")("Cancel.Button") ' 'GroupBox1 ' @@ -111,7 +111,7 @@ Partial Class ImgCapture Me.GroupBox1.Size = New System.Drawing.Size(984, 91) Me.GroupBox1.TabIndex = 7 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Sources and destinations" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImgCapture")("Sources.Destinations.Group") ' 'Button2 ' @@ -121,7 +121,7 @@ Partial Class ImgCapture Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 10 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.ImgCapture")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -140,7 +140,7 @@ Partial Class ImgCapture Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(119, 13) Me.Label2.TabIndex = 8 - Me.Label2.Text = "Destination image file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgCapture")("Destination.ImageFile.Label") ' 'Button1 ' @@ -150,7 +150,7 @@ Partial Class ImgCapture Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 7 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgCapture")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -169,7 +169,7 @@ Partial Class ImgCapture Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(127, 13) Me.Label3.TabIndex = 5 - Me.Label3.Text = "Source image directory:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImgCapture")("Source.Image.Dir.Label") ' 'GroupBox2 ' @@ -197,7 +197,7 @@ Partial Class ImgCapture Me.GroupBox2.Size = New System.Drawing.Size(984, 363) Me.GroupBox2.TabIndex = 7 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.ImgCapture")("Options.Group") ' 'Label8 ' @@ -208,19 +208,19 @@ Partial Class ImgCapture Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(776, 13) Me.Label8.TabIndex = 13 - Me.Label8.Text = "(Description goes here)" + Me.Label8.Text = LocalizationService.ForSection("Designer.ImgCapture")("Description.Goes.Label") ' 'ComboBox1 ' Me.ComboBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"none", "fast", "maximum"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.ImgCapture")("None.Item"), LocalizationService.ForSection("Designer.ImgCapture")("Fast.Item"), LocalizationService.ForSection("Designer.ImgCapture")("Maximum.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(199, 126) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(776, 21) Me.ComboBox1.TabIndex = 12 - Me.ComboBox1.Text = "fast" + Me.ComboBox1.Text = LocalizationService.ForSection("Designer.ImgCapture")("Fast.Item") ' 'Button5 ' @@ -231,7 +231,7 @@ Partial Class ImgCapture Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(75, 23) Me.Button5.TabIndex = 10 - Me.Button5.Text = "Create..." + Me.Button5.Text = LocalizationService.ForSection("Designer.ImgCapture")("Create.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button3 @@ -243,7 +243,7 @@ Partial Class ImgCapture Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 10 - Me.Button3.Text = "Browse..." + Me.Button3.Text = LocalizationService.ForSection("Designer.ImgCapture")("Browse.Button") Me.Button3.UseVisualStyleBackColor = True ' 'TextBox5 @@ -264,7 +264,7 @@ Partial Class ImgCapture Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(135, 13) Me.Label6.TabIndex = 11 - Me.Label6.Text = "Path of configuration file:" + Me.Label6.Text = LocalizationService.ForSection("Designer.ImgCapture")("Path.Config.File.Label") ' 'CheckBox5 ' @@ -275,7 +275,7 @@ Partial Class ImgCapture Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(164, 17) Me.CheckBox5.TabIndex = 10 - Me.CheckBox5.Text = "Use the reparse point tag fix" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.ImgCapture")("Reparse.Point.Tag.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'CheckBox8 @@ -285,7 +285,7 @@ Partial Class ImgCapture Me.CheckBox8.Name = "CheckBox8" Me.CheckBox8.Size = New System.Drawing.Size(205, 17) Me.CheckBox8.TabIndex = 10 - Me.CheckBox8.Text = "Mount destination image for later use" + Me.CheckBox8.Text = LocalizationService.ForSection("Designer.ImgCapture")("Mount.Dest.Image.CheckBox") Me.CheckBox8.UseVisualStyleBackColor = True ' 'CheckBox7 @@ -295,7 +295,7 @@ Partial Class ImgCapture Me.CheckBox7.Name = "CheckBox7" Me.CheckBox7.Size = New System.Drawing.Size(164, 17) Me.CheckBox7.TabIndex = 10 - Me.CheckBox7.Text = "Capture extended attributes" + Me.CheckBox7.Text = LocalizationService.ForSection("Designer.ImgCapture")("Extended.Attributes.CheckBox") Me.CheckBox7.UseVisualStyleBackColor = True ' 'CheckBox6 @@ -305,7 +305,7 @@ Partial Class ImgCapture Me.CheckBox6.Name = "CheckBox6" Me.CheckBox6.Size = New System.Drawing.Size(199, 17) Me.CheckBox6.TabIndex = 10 - Me.CheckBox6.Text = "Append with WIMBoot configuration" + Me.CheckBox6.Text = LocalizationService.ForSection("Designer.ImgCapture")("Append.WIM.Boot.CheckBox") Me.CheckBox6.UseVisualStyleBackColor = True ' 'CheckBox4 @@ -315,7 +315,7 @@ Partial Class ImgCapture Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(121, 17) Me.CheckBox4.TabIndex = 10 - Me.CheckBox4.Text = "Check for file errors" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.ImgCapture")("Check.File.Errors.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -325,7 +325,7 @@ Partial Class ImgCapture Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(128, 17) Me.CheckBox3.TabIndex = 10 - Me.CheckBox3.Text = "Verify image integrity" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.ImgCapture")("Verify.Image.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -335,7 +335,7 @@ Partial Class ImgCapture Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(219, 17) Me.CheckBox2.TabIndex = 10 - Me.CheckBox2.Text = "Make image bootable (Windows PE only)" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.ImgCapture")("Image.Bootable.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -345,7 +345,7 @@ Partial Class ImgCapture Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(299, 17) Me.CheckBox1.TabIndex = 10 - Me.CheckBox1.Text = "Exclude certain files and directories for destination image" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImgCapture")("Exclude.Files.Dirs.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'TextBox4 @@ -364,7 +364,7 @@ Partial Class ImgCapture Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(183, 13) Me.Label7.TabIndex = 8 - Me.Label7.Text = "Destination image compression type:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ImgCapture")("CompressionType.Label") ' 'Label4 ' @@ -373,7 +373,7 @@ Partial Class ImgCapture Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(151, 13) Me.Label4.TabIndex = 8 - Me.Label4.Text = "Destination image description:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ImgCapture")("Dest.Image.Description.Label") ' 'TextBox3 ' @@ -391,16 +391,16 @@ Partial Class ImgCapture Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(131, 13) Me.Label5.TabIndex = 5 - Me.Label5.Text = "Destination image name:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ImgCapture")("Destination.Image.Name.Label") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "WIM files|*.wim" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgCapture")("WIM.Files.Filter") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WimScript.ini|WimScript.ini" - Me.OpenFileDialog1.Title = "Specify a WimScript.ini configuration file" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgCapture")("WimscriptIniwim.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.ImgCapture")("Wimscript.Ini.Title") ' 'ImageTaskHeader1 ' @@ -434,7 +434,7 @@ Partial Class ImgCapture Me.Name = "ImgCapture" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Capture an image" + Me.Text = LocalizationService.ForSection("Designer.ImgCapture")("CaptureImage.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/ImgCapture.vb b/Panels/Img_Ops/ImgCapture.vb index f0922e406..35d9e8886 100644 --- a/Panels/Img_Ops/ImgCapture.vb +++ b/Panels/Img_Ops/ImgCapture.vb @@ -1,25 +1,23 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Public Class ImgCapture - Dim CompressionTypeStrings() As String = New String(2) {"No compression will be applied to the destination image.", "Fast compression will be applied. This is the default option.", "Maximum compression will be applied. This will take the most time, but will result in a smaller image."} + Dim CompressionTypeStrings() As String = New String(2) {"", "", ""} Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click DynaLog.LogMessage("Disposing of progress panel if not disposed of previously...") If Not ProgressPanel.IsDisposed Then ProgressPanel.Dispose() If TextBox1.Text = "" OrElse Not Directory.Exists(TextBox1.Text) Then - MsgBox("Please provide a source directory or drive to capture.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("ImageOps.Capture.Messages")("Provide.Source.Dir.Label"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If Dim sysprepTag As String = String.Format("{0}\Windows\system32\sysprep\sysprep_succeeded.tag", TextBox1.Text) If Not File.Exists(sysprepTag) Then - If MsgBox(String.Format("The source directory or drive that you are capturing may not have been previously prepared by Sysprep. " & - "It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}" & - "Do you want to continue?", Environment.NewLine), + If MsgBox(LocalizationService.ForSection("ImageOps.Capture.Messages").Format("SourcePrepWarning.Message", Environment.NewLine), vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then Exit Sub End If @@ -100,291 +98,33 @@ Public Class ImgCapture End Sub Private Sub ImgCapture_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Capture an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Destination image file:" - Label3.Text = "Source image directory:" - Label4.Text = "Destination image description:" - Label5.Text = "Destination image name:" - Label6.Text = "Path of configuration file:" - Label7.Text = "Destination image compression type:" - GroupBox1.Text = "Sources and destinations" - GroupBox2.Text = "Options" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Button3.Text = "Browse..." - Button5.Text = "Create..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - CheckBox1.Text = "Exclude certain files and directories for destination image" - CheckBox2.Text = "Make image bootable (Windows PE only)" - CheckBox3.Text = "Verify image integrity" - CheckBox4.Text = "Check for file errors" - CheckBox5.Text = "Use the reparse point tag fix" - CheckBox6.Text = "Append with WIMBoot configuration" - CheckBox7.Text = "Capture extended attributes" - CheckBox8.Text = "Mount destination image for later use" - CompressionTypeStrings(0) = "No compression will be applied to the destination image." - CompressionTypeStrings(1) = "Fast compression will be applied. This is the default option." - CompressionTypeStrings(2) = "Maximum compression will be applied. This will take the most time, but will result in a smaller image." - Case "ESN" - Text = "Capturar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de imagen de destino:" - Label3.Text = "Directorio de imagen de origen:" - Label4.Text = "Descripción de la imagen de destino:" - Label5.Text = "Nombre de la imagen de destino:" - Label6.Text = "Ubicación de archivo de configuración:" - Label7.Text = "Tipo de compresión de imagen de destino:" - GroupBox1.Text = "Orígenes y destinos" - GroupBox2.Text = "Opciones" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Button3.Text = "Examinar..." - Button5.Text = "Crear..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Excluir algunos archivos y directorios para la imagen de destino" - CheckBox2.Text = "Hacer imagen arrancable (solo Windows PE)" - CheckBox3.Text = "Verificar integridad de imagen" - CheckBox4.Text = "Comprobar errores de archivos" - CheckBox5.Text = "Utilizar corrección de etiquetas de puntos de repetición de análisis" - CheckBox6.Text = "Anexar con configuración WIMBoot" - CheckBox7.Text = "Capturar atributos extendidos" - CheckBox8.Text = "Montar imagen de destino para posterior uso" - CompressionTypeStrings(0) = "No se aplicará compresión a la imagen de destino." - CompressionTypeStrings(1) = "Se aplicará compresión rápida. Esta es la opción predeterminada." - CompressionTypeStrings(2) = "Se aplicará compresión máxima. Esto tardará más tiempo, pero resultará en una imagen más pequeña." - Case "FRA" - Text = "Capturer une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier de l'image de destination :" - Label3.Text = "Répertoire de l'image source :" - Label4.Text = "Description de l'image de destination :" - Label5.Text = "Nom de l'image de destination :" - Label6.Text = "Emplacement du fichier de configuration :" - Label7.Text = "Type de compression de l'image de destination :" - GroupBox1.Text = "Sources et destinations" - GroupBox2.Text = "Paramètres" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Button3.Text = "Parcourir..." - Button5.Text = "Créer..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - CheckBox1.Text = "Exclure certains fichiers et répertoires pour l'image de destination" - CheckBox2.Text = "Rendre l'image amorçable (Windows PE uniquement)" - CheckBox3.Text = "Vérifier l'intégrité de l'image" - CheckBox4.Text = "Vérifier les erreurs de fichiers" - CheckBox5.Text = "Utiliser la correction de la balise reparse" - CheckBox6.Text = "Ajouter la configuration WIMBoot" - CheckBox7.Text = "Capturer les attributs étendus" - CheckBox8.Text = "Monter l'image de destination pour une utilisation ultérieure" - CompressionTypeStrings(0) = "Aucune compression ne sera appliquée à l'image de destination." - CompressionTypeStrings(1) = "Une compression rapide sera appliquée. Il s'agit du paramètre par défaut." - CompressionTypeStrings(2) = "La compression maximale sera appliquée. C'est ce qui prendra le plus de temps, mais l'image sera plus petite." - Case "PTB", "PTG" - Text = "Capturar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de destino:" - Label3.Text = "Diretório da imagem de origem:" - Label4.Text = "Descrição da imagem de destino:" - Label5.Text = "Nome da imagem de destino:" - Label6.Text = "Localização do ficheiro de configuração:" - Label7.Text = "Tipo de compressão da imagem de destino:" - GroupBox1.Text = "Origens e destinos" - GroupBox2.Text = "Opções" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - Button3.Text = "Navegar..." - Button5.Text = "Criar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Excluir determinados ficheiros e directórios para a imagem de destino" - CheckBox2.Text = "Tornar a imagem inicializável (somente Windows PE)" - CheckBox3.Text = "Verificar a integridade da imagem" - CheckBox4.Text = "Verificar se existem erros nos ficheiros" - CheckBox5.Text = "Utilizar a correção da etiqueta de ponto de reparação" - CheckBox6.Text = "Anexar com a configuração WIMBoot" - CheckBox7.Text = "Capturar atributos estendidos" - CheckBox8.Text = "Montar a imagem de destino para utilização posterior" - CompressionTypeStrings(0) = "Não será aplicada qualquer compressão à imagem de destino." - CompressionTypeStrings(1) = "Será aplicada uma compressão rápida. Esta é a opção predefinida." - CompressionTypeStrings(2) = "Será aplicada a compressão máxima. Esta opção demora mais tempo, mas resulta numa imagem mais pequena." - Case "ITA" - Text = "Cattura un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di destinazione:" - Label3.Text = " Cartella dell'immagine di origine:" - Label4.Text = "Descrizione immagine di destinazione:" - Label5.Text = "Nome immagine di destinazione:" - Label6.Text = "Percorso del file di configurazione:" - Label7.Text = "Tipo di compressione dell'immagine di destinazione:" - GroupBox1.Text = "Sorgenti e destinazioni" - GroupBox2.Text = "Opzioni" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Button3.Text = "Sfoglia..." - Button5.Text = "Crea..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - CheckBox1.Text = "Escludi determinati file e directory per l'immagine di destinazione" - CheckBox2.Text = "Rendi l'immagine avviabile (solo Windows PE)" - CheckBox3.Text = "Verifica l'integrità dell'immagine" - CheckBox4.Text = "Controlla gli errori dei file" - CheckBox5.Text = "Utilizzare la correzione del tag del punto di reparse" - CheckBox6.Text = "Aggiungi con la configurazione WIMBoot" - CheckBox7.Text = "Cattura gli attributi estesi" - CheckBox8.Text = "Monta l'immagine di destinazione per un uso successivo" - CompressionTypeStrings(0) = "All'immagine di destinazione non verrà applicata alcuna compressione" - CompressionTypeStrings(1) = "Verrà applicata la compressione veloce. È l'opzione predefinita" - CompressionTypeStrings(2) = "Verrà applicata la compressione massima. Questa opzione richiede più tempo, ma produce un'immagine più piccola." - End Select - Case 1 - Text = "Capture an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Destination image file:" - Label3.Text = "Source image directory:" - Label4.Text = "Destination image description:" - Label5.Text = "Destination image name:" - Label6.Text = "Path of configuration file:" - Label7.Text = "Destination image compression type:" - GroupBox1.Text = "Sources and destinations" - GroupBox2.Text = "Options" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Button3.Text = "Browse..." - Button5.Text = "Create..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - CheckBox1.Text = "Exclude certain files and directories for destination image" - CheckBox2.Text = "Make image bootable (Windows PE only)" - CheckBox3.Text = "Verify image integrity" - CheckBox4.Text = "Check for file errors" - CheckBox5.Text = "Use the reparse point tag fix" - CheckBox6.Text = "Append with WIMBoot configuration" - CheckBox7.Text = "Capture extended attributes" - CheckBox8.Text = "Mount destination image for later use" - CompressionTypeStrings(0) = "No compression will be applied to the destination image." - CompressionTypeStrings(1) = "Fast compression will be applied. This is the default option." - CompressionTypeStrings(2) = "Maximum compression will be applied. This will take the most time, but will result in a smaller image." - Case 2 - Text = "Capturar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de imagen de destino:" - Label3.Text = "Directorio de imagen de origen:" - Label4.Text = "Descripción de la imagen de destino:" - Label5.Text = "Nombre de la imagen de destino:" - Label6.Text = "Ubicación de archivo de configuración:" - Label7.Text = "Tipo de compresión de imagen de destino:" - GroupBox1.Text = "Orígenes y destinos" - GroupBox2.Text = "Opciones" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Button3.Text = "Examinar..." - Button5.Text = "Crear..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Excluir algunos archivos y directorios para la imagen de destino" - CheckBox2.Text = "Hacer imagen arrancable (solo Windows PE)" - CheckBox3.Text = "Verificar integridad de imagen" - CheckBox4.Text = "Comprobar errores de archivos" - CheckBox5.Text = "Utilizar corrección de etiquetas de puntos de repetición de análisis" - CheckBox6.Text = "Anexar con configuración WIMBoot" - CheckBox7.Text = "Capturar atributos extendidos" - CheckBox8.Text = "Montar imagen de destino para posterior uso" - CompressionTypeStrings(0) = "No se aplicará compresión a la imagen de destino." - CompressionTypeStrings(1) = "Se aplicará compresión rápida. Esta es la opción predeterminada." - CompressionTypeStrings(2) = "Se aplicará compresión máxima. Esto tardará más tiempo, pero resultará en una imagen más pequeña." - Case 3 - Text = "Capturer une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier de l'image de destination :" - Label3.Text = "Répertoire de l'image source :" - Label4.Text = "Description de l'image de destination :" - Label5.Text = "Nom de l'image de destination :" - Label6.Text = "Emplacement du fichier de configuration :" - Label7.Text = "Type de compression de l'image de destination :" - GroupBox1.Text = "Sources et destinations" - GroupBox2.Text = "Paramètres" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Button3.Text = "Parcourir..." - Button5.Text = "Créer..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - CheckBox1.Text = "Exclure certains fichiers et répertoires pour l'image de destination" - CheckBox2.Text = "Rendre l'image amorçable (Windows PE uniquement)" - CheckBox3.Text = "Vérifier l'intégrité de l'image" - CheckBox4.Text = "Vérifier les erreurs de fichiers" - CheckBox5.Text = "Utiliser la correction de la balise reparse" - CheckBox6.Text = "Ajouter la configuration WIMBoot" - CheckBox7.Text = "Capturer les attributs étendus" - CheckBox8.Text = "Monter l'image de destination pour une utilisation ultérieure" - CompressionTypeStrings(0) = "Aucune compression ne sera appliquée à l'image de destination." - CompressionTypeStrings(1) = "Une compression rapide sera appliquée. Il s'agit du paramètre par défaut." - CompressionTypeStrings(2) = "La compression maximale sera appliquée. C'est ce qui prendra le plus de temps, mais l'image sera plus petite." - Case 4 - Text = "Capturar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de destino:" - Label3.Text = "Diretório da imagem de origem:" - Label4.Text = "Descrição da imagem de destino:" - Label5.Text = "Nome da imagem de destino:" - Label6.Text = "Localização do ficheiro de configuração:" - Label7.Text = "Tipo de compressão da imagem de destino:" - GroupBox1.Text = "Origens e destinos" - GroupBox2.Text = "Opções" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - Button3.Text = "Navegar..." - Button5.Text = "Criar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Excluir determinados ficheiros e directórios para a imagem de destino" - CheckBox2.Text = "Tornar a imagem inicializável (somente Windows PE)" - CheckBox3.Text = "Verificar a integridade da imagem" - CheckBox4.Text = "Verificar se existem erros nos ficheiros" - CheckBox5.Text = "Utilizar a correção da etiqueta de ponto de reparação" - CheckBox6.Text = "Anexar com a configuração WIMBoot" - CheckBox7.Text = "Capturar atributos estendidos" - CheckBox8.Text = "Montar a imagem de destino para utilização posterior" - CompressionTypeStrings(0) = "Não será aplicada qualquer compressão à imagem de destino." - CompressionTypeStrings(1) = "Será aplicada uma compressão rápida. Esta é a opção predefinida." - CompressionTypeStrings(2) = "Será aplicada a compressão máxima. Esta opção demora mais tempo, mas resulta numa imagem mais pequena." - Case 5 - Text = "Cattura un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di destinazione:" - Label3.Text = " Cartella dell'immagine di origine:" - Label4.Text = "Descrizione immagine di destinazione:" - Label5.Text = "Nome immagine di destinazione:" - Label6.Text = "Percorso del file di configurazione:" - Label7.Text = "Tipo di compressione dell'immagine di destinazione:" - GroupBox1.Text = "Sorgenti e destinazioni" - GroupBox2.Text = "Opzioni" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Button3.Text = "Sfoglia..." - Button5.Text = "Crea..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - CheckBox1.Text = "Escludi determinati file e directory per l'immagine di destinazione" - CheckBox2.Text = "Rendi l'immagine avviabile (solo Windows PE)" - CheckBox3.Text = "Verifica l'integrità dell'immagine" - CheckBox4.Text = "Controlla gli errori dei file" - CheckBox5.Text = "Utilizzare la correzione del tag del punto di reparse" - CheckBox6.Text = "Aggiungi con la configurazione WIMBoot" - CheckBox7.Text = "Cattura gli attributi estesi" - CheckBox8.Text = "Monta l'immagine di destinazione per un uso successivo" - CompressionTypeStrings(0) = "All'immagine di destinazione non verrà applicata alcuna compressione" - CompressionTypeStrings(1) = "Verrà applicata la compressione veloce. È l'opzione predefinita" - CompressionTypeStrings(2) = "Verrà applicata la compressione massima. Questa opzione richiede più tempo, ma produce un'immagine più piccola." - End Select + Text = LocalizationService.ForSection("ImgCapture")("CaptureImage.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("ImgCapture")("Destination.ImageFile.Label") + Label3.Text = LocalizationService.ForSection("ImgCapture")("Source.Image.Dir.Label") + Label4.Text = LocalizationService.ForSection("ImgCapture")("Dest.Image.Description.Label") + Label5.Text = LocalizationService.ForSection("ImgCapture")("Destination.Image.Name.Label") + Label6.Text = LocalizationService.ForSection("ImgCapture")("Path.Config.File.Label") + Label7.Text = LocalizationService.ForSection("ImgCapture")("CompressionType.Label") + GroupBox1.Text = LocalizationService.ForSection("ImgCapture")("Sources.Destinations.Group") + GroupBox2.Text = LocalizationService.ForSection("ImgCapture")("Options.Group") + Button1.Text = LocalizationService.ForSection("ImgCapture")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImgCapture")("Browse.Button") + Button3.Text = LocalizationService.ForSection("ImgCapture")("Browse.Button") + Button5.Text = LocalizationService.ForSection("ImgCapture")("Create.Button") + OK_Button.Text = LocalizationService.ForSection("ImgCapture")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImgCapture")("Cancel.Button") + CheckBox1.Text = LocalizationService.ForSection("ImgCapture")("Exclude.Files.Dirs.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("ImgCapture")("Image.Bootable.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("ImgCapture")("Verify.Image.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("ImgCapture")("Check.File.Errors.CheckBox") + CheckBox5.Text = LocalizationService.ForSection("ImgCapture")("Reparse.Point.Tag.CheckBox") + CheckBox6.Text = LocalizationService.ForSection("ImgCapture")("Append.WIM.Boot.CheckBox") + CheckBox7.Text = LocalizationService.ForSection("ImgCapture")("Extended.Attributes.CheckBox") + CheckBox8.Text = LocalizationService.ForSection("ImgCapture")("Mount.Dest.Image.CheckBox") + CompressionTypeStrings(0) = LocalizationService.ForSection("ImgCapture")("No.Compression.None.Item") + CompressionTypeStrings(1) = LocalizationService.ForSection("ImgCapture")("Fast.Compression.Item") + CompressionTypeStrings(2) = LocalizationService.ForSection("ImgCapture")("MaxCompression.Message") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -504,11 +244,11 @@ Public Class ImgCapture End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged - If ComboBox1.SelectedItem = "none" Then + If ComboBox1.SelectedIndex = 0 Then Label8.Text = CompressionTypeStrings(0) - ElseIf ComboBox1.SelectedItem = "fast" Then + ElseIf ComboBox1.SelectedIndex = 1 Then Label8.Text = CompressionTypeStrings(1) - ElseIf ComboBox1.SelectedItem = "maximum" Then + ElseIf ComboBox1.SelectedIndex = 2 Then Label8.Text = CompressionTypeStrings(2) End If End Sub diff --git a/Panels/Img_Ops/ImgExport.Designer.vb b/Panels/Img_Ops/ImgExport.Designer.vb index f3e8073b5..1c8824853 100644 --- a/Panels/Img_Ops/ImgExport.Designer.vb +++ b/Panels/Img_Ops/ImgExport.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgExport Inherits System.Windows.Forms.Form @@ -106,7 +106,7 @@ Partial Class ImgExport Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgExport")("Ok.Button") ' 'Cancel_Button ' @@ -117,7 +117,7 @@ Partial Class ImgExport Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgExport")("Cancel.Button") ' 'GroupBox1 ' @@ -132,7 +132,7 @@ Partial Class ImgExport Me.GroupBox1.Size = New System.Drawing.Size(984, 91) Me.GroupBox1.TabIndex = 8 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Sources and destinations" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImgExport")("Sources.Destinations.Group") ' 'Button2 ' @@ -142,7 +142,7 @@ Partial Class ImgExport Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 10 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.ImgExport")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -161,7 +161,7 @@ Partial Class ImgExport Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(119, 13) Me.Label2.TabIndex = 8 - Me.Label2.Text = "Destination image file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgExport")("Destination.ImageFile.Label") ' 'Button1 ' @@ -171,7 +171,7 @@ Partial Class ImgExport Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 7 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgExport")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -190,7 +190,7 @@ Partial Class ImgExport Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(119, 13) Me.Label3.TabIndex = 5 - Me.Label3.Text = "Source image file:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImgExport")("SourceImageFile.Label") ' 'GroupBox2 ' @@ -200,7 +200,7 @@ Partial Class ImgExport Me.GroupBox2.Size = New System.Drawing.Size(984, 362) Me.GroupBox2.TabIndex = 9 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.ImgExport")("Options.Group") ' 'TableLayoutPanel2 ' @@ -252,7 +252,7 @@ Partial Class ImgExport Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(432, 17) Me.CheckBox1.TabIndex = 3 - Me.CheckBox1.Text = "Reference SWM files" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImgExport")("Reference.Swmfiles.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'SWMFilePanel @@ -290,7 +290,7 @@ Partial Class ImgExport ' Me.ToolStripStatusLabel1.Name = "ToolStripStatusLabel1" Me.ToolStripStatusLabel1.Size = New System.Drawing.Size(120, 17) - Me.ToolStripStatusLabel1.Text = "ToolStripStatusLabel1" + Me.ToolStripStatusLabel1.Text = LocalizationService.ForSection("Designer.ImgExport")("Status.InitialLabel") ' 'Panel2 ' @@ -320,7 +320,7 @@ Partial Class ImgExport Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(196, 23) Me.Button5.TabIndex = 2 - Me.Button5.Text = "Scan pattern" + Me.Button5.Text = LocalizationService.ForSection("Designer.ImgExport")("ScanPattern.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button4 @@ -330,7 +330,7 @@ Partial Class ImgExport Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(196, 23) Me.Button4.TabIndex = 2 - Me.Button4.Text = "Use name of the image" + Me.Button4.Text = LocalizationService.ForSection("Designer.ImgExport")("Name.Image.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Label4 @@ -340,7 +340,7 @@ Partial Class ImgExport Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(87, 13) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Namimg pattern:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ImgExport")("NamingPattern.Label") ' 'Panel4 ' @@ -366,7 +366,7 @@ Partial Class ImgExport Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(432, 17) Me.CheckBox2.TabIndex = 4 - Me.CheckBox2.Text = "Specify a custom name for the destination image" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.ImgExport")("CustomName.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'Panel5 @@ -388,19 +388,19 @@ Partial Class ImgExport Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(419, 61) Me.Label8.TabIndex = 16 - Me.Label8.Text = "(Description goes here)" + Me.Label8.Text = LocalizationService.ForSection("Designer.ImgExport")("Description.Goes.Label") ' 'ComboBox1 ' Me.ComboBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"none", "fast", "maximum", "recovery"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.ImgExport")("None.Item"), LocalizationService.ForSection("Designer.ImgExport")("Fast.Item"), LocalizationService.ForSection("Designer.ImgExport")("Maximum.Item"), LocalizationService.ForSection("Designer.ImgExport")("Recovery.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(28, 34) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(416, 21) Me.ComboBox1.TabIndex = 15 - Me.ComboBox1.Text = "fast" + Me.ComboBox1.Text = LocalizationService.ForSection("Designer.ImgExport")("Fast.Item") ' 'Label5 ' @@ -409,7 +409,7 @@ Partial Class ImgExport Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(432, 13) Me.Label5.TabIndex = 14 - Me.Label5.Text = "Destination image compression type:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ImgExport")("CompressionType.Label") ' 'CheckBox3 ' @@ -418,7 +418,7 @@ Partial Class ImgExport Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(432, 17) Me.CheckBox3.TabIndex = 4 - Me.CheckBox3.Text = "Make image bootable (Windows PE only)" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.ImgExport")("Image.Bootable.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox4 @@ -428,7 +428,7 @@ Partial Class ImgExport Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(432, 17) Me.CheckBox4.TabIndex = 4 - Me.CheckBox4.Text = "Append image with WIMBoot configuration" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.ImgExport")("Append.Image.WIM.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'CheckBox5 @@ -438,7 +438,7 @@ Partial Class ImgExport Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(432, 17) Me.CheckBox5.TabIndex = 4 - Me.CheckBox5.Text = "Check integrity before exporting image" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.ImgExport")("CheckIntegrity.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'Label6 @@ -476,22 +476,22 @@ Partial Class ImgExport ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Index" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ImgExport")("Index.Column") Me.ColumnHeader1.Width = 44 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.ImgExport")("ImageName.Column") Me.ColumnHeader2.Width = 256 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Image description" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.ImgExport")("ImageDescription.Column") Me.ColumnHeader3.Width = 256 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Image version" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.ImgExport")("ImageVersion.Column") Me.ColumnHeader4.Width = 128 ' 'NumericUpDown1 @@ -510,16 +510,16 @@ Partial Class ImgExport Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(104, 13) Me.Label7.TabIndex = 7 - Me.Label7.Text = "Source image index:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ImgExport")("Source.Image.Index.Label") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "WIM files|*.wim|ESD files|*.esd" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgExport")("WIM.Files.Wimesd.Filter") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WIM files|*.wim|SWM files|*.swm" - Me.OpenFileDialog1.Title = "Specify a source image file to export" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgExport")("WIM.Files.Wimswm.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.ImgExport")("Source.ImageFile.Title") ' 'ImageTaskHeader1 ' @@ -553,7 +553,7 @@ Partial Class ImgExport Me.Name = "ImgExport" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Export an image" + Me.Text = LocalizationService.ForSection("Designer.ImgExport")("ExportImage.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/ImgExport.vb b/Panels/Img_Ops/ImgExport.vb index b84d19792..79ad19a81 100644 --- a/Panels/Img_Ops/ImgExport.vb +++ b/Panels/Img_Ops/ImgExport.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Dism Imports System.IO Imports System.Threading @@ -6,7 +6,7 @@ Imports Microsoft.VisualBasic.ControlChars Public Class ImgExport - Dim CompressionTypeStrings() As String = New String(3) {"No compression will be applied to the destination image.", "Fast compression will be applied. This is the default option.", "Maximum compression will be applied. This will take the most time, but will result in a smaller image.", "The compression level for push-button reset images will be applied. This requires exporting the image as an ESD file."} + Dim CompressionTypeStrings() As String = New String(3) {"", "", "", ""} Dim originalFileFilters As String = "WIM files|*.wim|ESD files|*.esd" Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click @@ -26,31 +26,7 @@ Public Class ImgExport Else DynaLog.LogMessage("Either no source image has been specified or it does not exist in the file system.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Please specify a source image file to export and try again" - Case "ESN" - msg = "Por favor, especifique un archivo de imagen de origen e inténtelo de nuevo" - Case "FRA" - msg = "Veuillez indiquer un fichier d'image source à exporter et réessayez." - Case "PTB", "PTG" - msg = "Especifique um ficheiro de imagem de origem para exportar e tente novamente" - Case "ITA" - msg = "Specificare un file immagine di origine da esportare e riprovare." - End Select - Case 1 - msg = "Please specify a source image file to export and try again" - Case 2 - msg = "Por favor, especifique un archivo de imagen de origen e inténtelo de nuevo" - Case 3 - msg = "Veuillez indiquer un fichier d'image source à exporter et réessayez." - Case 4 - msg = "Especifique um ficheiro de imagem de origem para exportar e tente novamente" - Case 5 - msg = "Specificare un file immagine di origine da esportare e riprovare." - End Select + msg = LocalizationService.ForSection("ImgExport.Validation")("SourceImageFile.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If @@ -60,31 +36,7 @@ Public Class ImgExport Else DynaLog.LogMessage("A destination image has not been specified.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Please specify a destination image file and try again" - Case "ESN" - msg = "Por favor, especifique un archivo de imagen de destino e intente de nuevo" - Case "FRA" - msg = "Veuillez spécifier un fichier d'image de destination et réessayer" - Case "PTB", "PTG" - msg = "Especifique um ficheiro de imagem de destino e tente novamente" - Case "ITA" - msg = "Specificare un file immagine di destinazione e riprovare" - End Select - Case 1 - msg = "Please specify a destination image file and try again" - Case 2 - msg = "Por favor, especifique un archivo de imagen de destino e intente de nuevo" - Case 3 - msg = "Veuillez spécifier un fichier d'image de destination et réessayer" - Case 4 - msg = "Especifique um ficheiro de imagem de destino e tente novamente" - Case 5 - msg = "Specificare un file immagine di destinazione e riprovare" - End Select + msg = LocalizationService.ForSection("ImgExport.Validation")("ImageFile.Required.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If @@ -127,311 +79,35 @@ Public Class ImgExport End Sub Private Sub ImgExport_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Export an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Destination image file:" - Label3.Text = "Source image file:" - Label4.Text = "Naming pattern:" - Label5.Text = "Destination image compression type:" - Label7.Text = "Source image index:" - CheckBox1.Text = "Reference SWM files" - CheckBox2.Text = "Specify a custom name for the destination image" - CheckBox3.Text = "Make image bootable (Windows PE only)" - CheckBox4.Text = "Append image with WIMBoot configuration" - CheckBox5.Text = "Check integrity before exporting image" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Button4.Text = "Use name of the image" - Button5.Text = "Scan pattern" - GroupBox1.Text = "Sources and destinations" - GroupBox2.Text = "Options" - OpenFileDialog1.Title = "Specify a source image file to export" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView1.Columns(2).Text = "Image description" - ListView1.Columns(3).Text = "Image version" - CompressionTypeStrings(0) = "No compression will be applied to the destination image." - CompressionTypeStrings(1) = "Fast compression will be applied. This is the default option." - CompressionTypeStrings(2) = "Maximum compression will be applied. This will take the most time, but will result in a smaller image." - CompressionTypeStrings(3) = "The compression level for push-button reset images will be applied. This requires exporting the image as an ESD file." - Case "ESN" - Text = "Exportar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de imagen de destino:" - Label3.Text = "Archivo de imagen de origen:" - Label4.Text = "Patrón de nomenclatura:" - Label5.Text = "Tipo de compresión de la imagen de destino:" - Label7.Text = "Índice de imagen de origen:" - CheckBox1.Text = "Hacer referencia a archivos SWM" - CheckBox2.Text = "Especificar un nombre personalizado para la imagen de destino" - CheckBox3.Text = "Hacer imagen arrancable (solo Windows PE)" - CheckBox4.Text = "Exportar la imagen con configuración WIMBoot" - CheckBox5.Text = "Comprobar integridad antes de exportar la imagen" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Button4.Text = "Usar nombre de imagen" - Button5.Text = "Escanear patrón" - GroupBox1.Text = "Orígenes y destinos" - GroupBox2.Text = "Opciones" - OpenFileDialog1.Title = "Especifique un archivo de imagen de origen a exportar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView1.Columns(2).Text = "Descripción de imagen" - ListView1.Columns(3).Text = "Versión de imagen" - CompressionTypeStrings(0) = "No se aplicará compresión a la imagen de destino." - CompressionTypeStrings(1) = "Se aplicará compresión rápida. Esta es la opción predeterminada." - CompressionTypeStrings(2) = "Se aplicará compresión máxima. Esto tardará más tiempo, pero resultará en una imagen más pequeña." - CompressionTypeStrings(3) = "Se aplicará el nivel de compresión de imágenes de restablecimiento por botón. Esto requiere exportar la imagen como un archivo ESD." - Case "FRA" - Text = "Exporter une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier d'image de destination :" - Label3.Text = "Fichier d'image source :" - Label4.Text = "Modèle de dénomination :" - Label5.Text = "Type de compression de l'image de destination :" - Label7.Text = "Index de l'image source :" - CheckBox1.Text = "Référence aux fichiers SWM" - CheckBox2.Text = "Spécifier un nom personnalisé pour l'image de destination" - CheckBox3.Text = "Rendre l'image démarrable (Windows PE uniquement)" - CheckBox4.Text = "Ajouter la configuration WIMBoot à l'image" - CheckBox5.Text = "Vérifier l'intégrité avant d'exporter l'image" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Button4.Text = "Utiliser le nom de l'image" - Button5.Text = "Scanner modèle" - GroupBox1.Text = "Sources et destinations" - GroupBox2.Text = "Paramètres" - OpenFileDialog1.Title = "Spécifier un fichier image source à exporter" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView1.Columns(2).Text = "Description de l'image" - ListView1.Columns(3).Text = "Version de l'image" - CompressionTypeStrings(0) = "Aucune compression ne sera appliquée à l'image de destination." - CompressionTypeStrings(1) = "Une compression rapide sera appliquée. C'est l'option par défaut." - CompressionTypeStrings(2) = "Une compression maximale sera appliquée. Cette option prend le plus de temps, mais permet d'obtenir une image plus petite." - CompressionTypeStrings(3) = "Le niveau de compression des images réinitialisées par bouton-poussoir sera appliqué. Cela nécessite l'exportation de l'image en tant que fichier ESD." - Case "PTB", "PTG" - Text = "Exportar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de destino:" - Label3.Text = "Ficheiro de imagem de origem:" - Label4.Text = "Padrão de nomenclatura:" - Label5.Text = "Tipo de compressão da imagem de destino:" - Label7.Text = "Índice da imagem de origem:" - CheckBox1.Text = "Ficheiros SWM de referência" - CheckBox2.Text = "Especificar um nome personalizado para a imagem de destino" - CheckBox3.Text = "Tornar a imagem de arranque (só para Windows PE)" - CheckBox4.Text = "Anexar imagem com a configuração WIMBoot" - CheckBox5.Text = "Verificar a integridade antes de exportar a imagem" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Procurar..." - Button2.Text = "Procurar..." - Button4.Text = "Utilizar nome da imagem" - Button5.Text = "Examinar padrão" - GroupBox1.Text = "Origens e destinos" - GroupBox2.Text = "Configurações" - OpenFileDialog1.Title = "Especificar um ficheiro de imagem de origem para exportar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView1.Columns(2).Text = "Descrição da imagem" - ListView1.Columns(3).Text = "Versão da imagem" - CompressionTypeStrings(0) = "Não será aplicada qualquer compressão à imagem de destino." - CompressionTypeStrings(1) = "Será aplicada uma compressão rápida. Esta é a opção predefinida." - CompressionTypeStrings(2) = "Será aplicada a compressão máxima. Esta opção demora mais tempo, mas resulta numa imagem mais pequena." - CompressionTypeStrings(3) = "Será aplicado o nível de compressão para imagens reiniciadas por botão de pressão. Para tal, é necessário exportar a imagem como um ficheiro ESD." - Case "ITA" - Text = "Esportazione di un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di destinazione:" - Label3.Text = "File immagine di origine:" - Label4.Text = "Modello di denominazione:" - Label5.Text = "Tipo di compressione dell'immagine di destinazione:" - Label7.Text = "Indice immagine sorgente:" - CheckBox1.Text = "File SWM di riferimento" - CheckBox2.Text = "Specificare un nome personalizzato per l'immagine di destinazione" - CheckBox3.Text = "Rendi l'immagine avviabile (solo Windows PE)" - CheckBox4.Text = "Aggiungi all'immagine la configurazione WIMBoot" - CheckBox5.Text = "Controlla l'integrità prima di esportare l'immagine" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Button4.Text = "Usa il nome dell'immagine" - Button5.Text = "Scansiona modello" - GroupBox1.Text = "Sorgenti e destinazioni" - GroupBox2.Text = "Opzioni" - OpenFileDialog1.Title = "Specificare un file immagine di origine da esportare" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView1.Columns(2).Text = "Descrizione dell'immagine" - ListView1.Columns(3).Text = "Versione immagine" - CompressionTypeStrings(0) = "All'immagine di destinazione non verrà applicata alcuna compressione" - CompressionTypeStrings(1) = "Verrà applicata la compressione veloce. È l'opzione predefinita" - CompressionTypeStrings(2) = "Verrà applicata la compressione massima. Questa opzione richiede più tempo, ma produce un'immagine più piccola" - CompressionTypeStrings(3) = "Verrà applicato il livello di compressione per le immagini con reset a pulsante. Ciò richiede l'esportazione dell'immagine come file ESD" - End Select - Case 1 - Text = "Export an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Destination image file:" - Label3.Text = "Source image file:" - Label4.Text = "Naming pattern:" - Label5.Text = "Destination image compression type:" - Label7.Text = "Source image index:" - CheckBox1.Text = "Reference SWM files" - CheckBox2.Text = "Specify a custom name for the destination image" - CheckBox3.Text = "Make image bootable (Windows PE only)" - CheckBox4.Text = "Append image with WIMBoot configuration" - CheckBox5.Text = "Check integrity before exporting image" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Button4.Text = "Use name of the image" - Button5.Text = "Scan pattern" - GroupBox1.Text = "Sources and destinations" - GroupBox2.Text = "Options" - OpenFileDialog1.Title = "Specify a source image file to export" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView1.Columns(2).Text = "Image description" - ListView1.Columns(3).Text = "Image version" - CompressionTypeStrings(0) = "No compression will be applied to the destination image." - CompressionTypeStrings(1) = "Fast compression will be applied. This is the default option." - CompressionTypeStrings(2) = "Maximum compression will be applied. This will take the most time, but will result in a smaller image." - CompressionTypeStrings(3) = "The compression level for push-button reset images will be applied. This requires exporting the image as an ESD file." - Case 2 - Text = "Exportar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de imagen de destino:" - Label3.Text = "Archivo de imagen de origen:" - Label4.Text = "Patrón de nomenclatura:" - Label5.Text = "Tipo de compresión de la imagen de destino:" - Label7.Text = "Índice de imagen de origen:" - CheckBox1.Text = "Hacer referencia a archivos SWM" - CheckBox2.Text = "Especificar un nombre personalizado para la imagen de destino" - CheckBox3.Text = "Hacer imagen arrancable (solo Windows PE)" - CheckBox4.Text = "Exportar la imagen con configuración WIMBoot" - CheckBox5.Text = "Comprobar integridad antes de exportar la imagen" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Button4.Text = "Usar nombre de imagen" - Button5.Text = "Escanear patrón" - GroupBox1.Text = "Orígenes y destinos" - GroupBox2.Text = "Opciones" - OpenFileDialog1.Title = "Especifique un archivo de imagen de origen a exportar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView1.Columns(2).Text = "Descripción de imagen" - ListView1.Columns(3).Text = "Versión de imagen" - CompressionTypeStrings(0) = "No se aplicará compresión a la imagen de destino." - CompressionTypeStrings(1) = "Se aplicará compresión rápida. Esta es la opción predeterminada." - CompressionTypeStrings(2) = "Se aplicará compresión máxima. Esto tardará más tiempo, pero resultará en una imagen más pequeña." - CompressionTypeStrings(3) = "Se aplicará el nivel de compresión de imágenes de restablecimiento por botón. Esto requiere exportar la imagen como un archivo ESD." - Case 3 - Text = "Exporter une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier d'image de destination :" - Label3.Text = "Fichier d'image source :" - Label4.Text = "Modèle de dénomination :" - Label5.Text = "Type de compression de l'image de destination :" - Label7.Text = "Index de l'image source :" - CheckBox1.Text = "Référence aux fichiers SWM" - CheckBox2.Text = "Spécifier un nom personnalisé pour l'image de destination" - CheckBox3.Text = "Rendre l'image démarrable (Windows PE uniquement)" - CheckBox4.Text = "Ajouter la configuration WIMBoot à l'image" - CheckBox5.Text = "Vérifier l'intégrité avant d'exporter l'image" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Button4.Text = "Utiliser le nom de l'image" - Button5.Text = "Scanner modèle" - GroupBox1.Text = "Sources et destinations" - GroupBox2.Text = "Paramètres" - OpenFileDialog1.Title = "Spécifier un fichier image source à exporter" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView1.Columns(2).Text = "Description de l'image" - ListView1.Columns(3).Text = "Version de l'image" - CompressionTypeStrings(0) = "Aucune compression ne sera appliquée à l'image de destination." - CompressionTypeStrings(1) = "Une compression rapide sera appliquée. C'est l'option par défaut." - CompressionTypeStrings(2) = "Une compression maximale sera appliquée. Cette option prend le plus de temps, mais permet d'obtenir une image plus petite." - CompressionTypeStrings(3) = "Le niveau de compression des images réinitialisées par bouton-poussoir sera appliqué. Cela nécessite l'exportation de l'image en tant que fichier ESD." - Case 4 - Text = "Exportar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de imagem de destino:" - Label3.Text = "Ficheiro de imagem de origem:" - Label4.Text = "Padrão de nomenclatura:" - Label5.Text = "Tipo de compressão da imagem de destino:" - Label7.Text = "Índice da imagem de origem:" - CheckBox1.Text = "Ficheiros SWM de referência" - CheckBox2.Text = "Especificar um nome personalizado para a imagem de destino" - CheckBox3.Text = "Tornar a imagem de arranque (só para Windows PE)" - CheckBox4.Text = "Anexar imagem com a configuração WIMBoot" - CheckBox5.Text = "Verificar a integridade antes de exportar a imagem" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Procurar..." - Button2.Text = "Procurar..." - Button4.Text = "Utilizar nome da imagem" - Button5.Text = "Examinar padrão" - GroupBox1.Text = "Origens e destinos" - GroupBox2.Text = "Configurações" - OpenFileDialog1.Title = "Especificar um ficheiro de imagem de origem para exportar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView1.Columns(2).Text = "Descrição da imagem" - ListView1.Columns(3).Text = "Versão da imagem" - CompressionTypeStrings(0) = "Não será aplicada qualquer compressão à imagem de destino." - CompressionTypeStrings(1) = "Será aplicada uma compressão rápida. Esta é a opção predefinida." - CompressionTypeStrings(2) = "Será aplicada a compressão máxima. Esta opção demora mais tempo, mas resulta numa imagem mais pequena." - CompressionTypeStrings(3) = "Será aplicado o nível de compressão para imagens reiniciadas por botão de pressão. Para tal, é necessário exportar a imagem como um ficheiro ESD." - Case 5 - Text = "Esportazione di un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File immagine di destinazione:" - Label3.Text = "File immagine di origine:" - Label4.Text = "Modello di denominazione:" - Label5.Text = "Tipo di compressione dell'immagine di destinazione:" - Label7.Text = "Indice immagine sorgente:" - CheckBox1.Text = "File SWM di riferimento" - CheckBox2.Text = "Specificare un nome personalizzato per l'immagine di destinazione" - CheckBox3.Text = "Rendi l'immagine avviabile (solo Windows PE)" - CheckBox4.Text = "Aggiungi all'immagine la configurazione WIMBoot" - CheckBox5.Text = "Controlla l'integrità prima di esportare l'immagine" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Button4.Text = "Usa il nome dell'immagine" - Button5.Text = "Scansiona modello" - GroupBox1.Text = "Sorgenti e destinazioni" - GroupBox2.Text = "Opzioni" - OpenFileDialog1.Title = "Specificare un file immagine di origine da esportare" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView1.Columns(2).Text = "Descrizione dell'immagine" - ListView1.Columns(3).Text = "Versione immagine" - CompressionTypeStrings(0) = "All'immagine di destinazione non verrà applicata alcuna compressione" - CompressionTypeStrings(1) = "Verrà applicata la compressione veloce. È l'opzione predefinita" - CompressionTypeStrings(2) = "Verrà applicata la compressione massima. Questa opzione richiede più tempo, ma produce un'immagine più piccola" - CompressionTypeStrings(3) = "Verrà applicato il livello di compressione per le immagini con reset a pulsante. Ciò richiede l'esportazione dell'immagine come file ESD" - End Select + Text = LocalizationService.ForSection("ImgExport")("ExportImage.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("ImgExport")("Destination.ImageFile.Label") + Label3.Text = LocalizationService.ForSection("ImgExport")("SourceImageFile.Label") + Label4.Text = LocalizationService.ForSection("ImgExport")("NamingPattern.Label") + Label5.Text = LocalizationService.ForSection("ImgExport")("CompressionType.Label") + Label7.Text = LocalizationService.ForSection("ImgExport")("Source.Image.Index.Label") + CheckBox1.Text = LocalizationService.ForSection("ImgExport")("Reference.Swmfiles.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("ImgExport")("CustomName.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("ImgExport")("Image.Bootable.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("ImgExport")("Append.Image.WIM.CheckBox") + CheckBox5.Text = LocalizationService.ForSection("ImgExport")("CheckIntegrity.CheckBox") + OK_Button.Text = LocalizationService.ForSection("ImgExport")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImgExport")("Cancel.Button") + Button1.Text = LocalizationService.ForSection("ImgExport")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImgExport")("Browse.Button") + Button4.Text = LocalizationService.ForSection("ImgExport")("Name.Image.Button") + Button5.Text = LocalizationService.ForSection("ImgExport")("ScanPattern.Button") + GroupBox1.Text = LocalizationService.ForSection("ImgExport")("Sources.Destinations.Group") + GroupBox2.Text = LocalizationService.ForSection("ImgExport")("Options.Group") + OpenFileDialog1.Title = LocalizationService.ForSection("ImgExport")("Source.ImageFile.Title") + ListView1.Columns(0).Text = LocalizationService.ForSection("ImgExport")("Index.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("ImgExport")("ImageName.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("ImgExport")("ImageDescription.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("ImgExport")("ImageVersion.Column") + CompressionTypeStrings(0) = LocalizationService.ForSection("ImgExport")("No.Compression.None.Item") + CompressionTypeStrings(1) = LocalizationService.ForSection("ImgExport")("Fast.Compression.Item") + CompressionTypeStrings(2) = LocalizationService.ForSection("ImgExport")("MaxCompression.Message") + CompressionTypeStrings(3) = LocalizationService.ForSection("ImgExport")("Compression.Level.Message") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -454,31 +130,7 @@ Public Class ImgExport NumericUpDown1.ForeColor = ForeColor ListView1.ForeColor = ForeColor ListBox1.ForeColor = ForeColor - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ToolStripStatusLabel1.Text = "Please specify the naming pattern of the SWM files" - Case "ESN" - ToolStripStatusLabel1.Text = "Especifique la nomenclatura del patrón de los archivos SWM" - Case "FRA" - ToolStripStatusLabel1.Text = "Veuillez spécifier le modèle de dénomination des fichiers SWM" - Case "PTB", "PTG" - ToolStripStatusLabel1.Text = "Especifique o padrão de nomenclatura dos ficheiros SWM" - Case "ITA" - ToolStripStatusLabel1.Text = "Specificare il modello di denominazione dei file SWM" - End Select - Case 1 - ToolStripStatusLabel1.Text = "Please specify the naming pattern of the SWM files" - Case 2 - ToolStripStatusLabel1.Text = "Especifique la nomenclatura del patrón de los archivos SWM" - Case 3 - ToolStripStatusLabel1.Text = "Veuillez spécifier le modèle de dénomination des fichiers SWM" - Case 4 - ToolStripStatusLabel1.Text = "Especifique o padrão de nomenclatura dos ficheiros SWM" - Case 5 - ToolStripStatusLabel1.Text = "Specificare il modello di denominazione dei file SWM" - End Select + ToolStripStatusLabel1.Text = LocalizationService.ForSection("ImgExport")("NamingPattern.Required.Label") Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) WindowHelper.ToggleDarkTitleBar(handle, CurrentTheme.IsDark) ThemeHelper.UpdateLinkLabelColors(Me, Color.DodgerBlue, CurrentTheme.AccentColors(0)) @@ -528,7 +180,7 @@ Public Class ImgExport Next Catch ex As Exception DynaLog.LogMessage("Could not get image file information. Error message: " & ex.Message) - MsgBox("Could not get index information for this image file", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("ImageOps.Export.Messages")("Get.Index.Image.Label"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally Try DynaLog.LogMessage("Shutting down API...") @@ -554,16 +206,16 @@ Public Class ImgExport Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged SaveFileDialog1.Filter = originalFileFilters - If ComboBox1.SelectedItem = "none" Then + If ComboBox1.SelectedIndex = 0 Then Label8.Text = CompressionTypeStrings(0) - ElseIf ComboBox1.SelectedItem = "fast" Then + ElseIf ComboBox1.SelectedIndex = 1 Then Label8.Text = CompressionTypeStrings(1) - ElseIf ComboBox1.SelectedItem = "maximum" Then + ElseIf ComboBox1.SelectedIndex = 2 Then Label8.Text = CompressionTypeStrings(2) - ElseIf ComboBox1.SelectedItem = "recovery" Then + ElseIf ComboBox1.SelectedIndex = 3 Then Label8.Text = CompressionTypeStrings(3) ' If recovery is specified, the target image must be an ESD file - SaveFileDialog1.Filter = "ESD files|*.esd" + SaveFileDialog1.Filter = LocalizationService.ForSection("Panels.ImageOps.ExportImage")("Esdfiles.Filter") If TextBox2.Text <> "" Then ' Switch the extension of the target image file TextBox2.Text = TextBox2.Text.Replace(Path.GetExtension(TextBox2.Text), ".esd").Trim() @@ -590,41 +242,8 @@ Public Class ImgExport ListBox1.Items.Clear() If TextBox1.Text = "" Or PatternName = "" Then DynaLog.LogMessage("Either no source image file has been specified or no pattern has been specified.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a source WIM file. This will let you use the SWM files for later image application", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SWM files" - Case "ESN" - MsgBox("Especifique el arhivo WIM de origen. Esto le permitirá usar los archivos SWM para la aplicación posterior de la imagen", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SWM" - Case "FRA" - MsgBox("Veuillez indiquer un fichier WIM original. Cela vous permettra d'utiliser les fichiers SWM pour une application d'image ultérieure.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SWM" - Case "PTB", "PTG" - MsgBox("Especifique um ficheiro WIM de origem. Isto permitir-lhe-á utilizar os ficheiros SWM para uma aplicação de imagem posterior", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SWM" - Case "ITA" - MsgBox("Specificare un file WIM di origine. In questo modo sarà possibile utilizzare i file SWM per una successiva applicazione di immagini", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SWM" - End Select - Case 1 - MsgBox("Please specify a source WIM file. This will let you use the SWM files for later image application", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SWM files" - Case 2 - MsgBox("Especifique el arhivo WIM de origen. Esto le permitirá usar los archivos SWM para la aplicación posterior de la imagen", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SWM" - Case 3 - MsgBox("Veuillez indiquer un fichier WIM original. Cela vous permettra d'utiliser les fichiers SWM pour une application d'image ultérieure.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SWM" - Case 4 - MsgBox("Especifique um ficheiro WIM de origem. Isto permitir-lhe-á utilizar os ficheiros SWM para uma aplicação de imagem posterior", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SWM" - Case 5 - MsgBox("Specificare un file WIM di origine. In questo modo sarà possibile utilizzare i file SWM per una successiva applicazione di immagini", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SWM" - End Select + MsgBox(LocalizationService.ForSection("ImgExport.ScanSwmPattern")("Source.WIM.Required.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + ToolStripStatusLabel1.Text = LocalizationService.ForSection("ImgExport.ScanSwmPattern").Format("Naming.Returns.Item", ListBox1.Items.Count) Beep() Exit Sub End If @@ -635,31 +254,7 @@ Public Class ImgExport End If Next DynaLog.LogMessage("Pattern search results: " & ListBox1.Items.Count) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SWM files" - Case "ESN" - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SWM" - Case "FRA" - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SWM" - Case "PTB", "PTG" - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SWM" - Case "ITA" - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SWM" - End Select - Case 1 - ToolStripStatusLabel1.Text = "This naming pattern returns " & ListBox1.Items.Count & " SWM files" - Case 2 - ToolStripStatusLabel1.Text = "Esta nomenclatura de patrón devuelve " & ListBox1.Items.Count & " archivos SWM" - Case 3 - ToolStripStatusLabel1.Text = "Ce modèle de dénomination renvoie " & ListBox1.Items.Count & " fichiers SWM" - Case 4 - ToolStripStatusLabel1.Text = "Este padrão de nomenclatura devolve " & ListBox1.Items.Count & " ficheiros SWM" - Case 5 - ToolStripStatusLabel1.Text = "Questo modello di denominazione restituisce " & ListBox1.Items.Count & " file SWM" - End Select + ToolStripStatusLabel1.Text = LocalizationService.ForSection("ImgExport.ScanSwmPattern").Format("Naming.Returns.Label", ListBox1.Items.Count) If ListBox1.Items.Count <= 0 Then Beep() End Sub End Class diff --git a/Panels/Img_Ops/ImgIndexDelete.Designer.vb b/Panels/Img_Ops/ImgIndexDelete.Designer.vb index 85da77de4..b0bb6fb9f 100644 --- a/Panels/Img_Ops/ImgIndexDelete.Designer.vb +++ b/Panels/Img_Ops/ImgIndexDelete.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgIndexDelete Inherits System.Windows.Forms.Form @@ -68,7 +68,7 @@ Partial Class ImgIndexDelete Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Ok.Button") ' 'Cancel_Button ' @@ -79,7 +79,7 @@ Partial Class ImgIndexDelete Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Cancel.Button") ' 'Label2 ' @@ -88,7 +88,7 @@ Partial Class ImgIndexDelete Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(75, 13) Me.Label2.TabIndex = 7 - Me.Label2.Text = "Source image:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("SourceImage.Label") ' 'TextBox1 ' @@ -104,7 +104,7 @@ Partial Class ImgIndexDelete Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 9 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Button2 @@ -114,7 +114,7 @@ Partial Class ImgIndexDelete Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(132, 23) Me.Button2.TabIndex = 9 - Me.Button2.Text = "Use mounted image" + Me.Button2.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Mounted.Image.Button") Me.Button2.UseVisualStyleBackColor = True ' 'GroupBox1 @@ -128,7 +128,7 @@ Partial Class ImgIndexDelete Me.GroupBox1.Size = New System.Drawing.Size(680, 232) Me.GroupBox1.TabIndex = 10 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Volume images" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("VolumeImages.Group") ' 'ListView2 ' @@ -144,12 +144,12 @@ Partial Class ImgIndexDelete ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Index" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Index.Column") Me.ColumnHeader3.Width = 41 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Image name" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("ImageName.Column") Me.ColumnHeader4.Width = 254 ' 'ListView1 @@ -167,12 +167,12 @@ Partial Class ImgIndexDelete ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Index" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Index.Column") Me.ColumnHeader1.Width = 41 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("ImageName.Column") Me.ColumnHeader2.Width = 254 ' 'Label4 @@ -182,7 +182,7 @@ Partial Class ImgIndexDelete Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(230, 13) Me.Label4.TabIndex = 7 - Me.Label4.Text = "Getting indexes from the image. Please wait..." + Me.Label4.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Get.Indexes.Image.Label") Me.Label4.Visible = False ' 'Label3 @@ -192,8 +192,7 @@ Partial Class ImgIndexDelete Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(532, 13) Me.Label3.TabIndex = 7 - Me.Label3.Text = "Please mark the volume images to delete on the left. The image will then have the" & _ - " indexes shown on the right" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Mark.VolumeImages.Message") ' 'CheckBox1 ' @@ -202,13 +201,13 @@ Partial Class ImgIndexDelete Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(129, 17) Me.CheckBox1.TabIndex = 11 - Me.CheckBox1.Text = "Check image integrity" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Integrity.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WIM files|*.wim" - Me.OpenFileDialog1.Title = "Specify the source image to remove volume images from" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ImageIndexDelete")("WIM.Files.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.ImageIndexDelete")("Source.Image.Remove.Title") ' 'ImageTaskHeader1 ' @@ -246,7 +245,7 @@ Partial Class ImgIndexDelete Me.Name = "ImgIndexDelete" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Remove a volume image" + Me.Text = LocalizationService.ForSection("Designer.ImageIndexDelete")("Remove.Volume.Image.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/ImgIndexDelete.vb b/Panels/Img_Ops/ImgIndexDelete.vb index f96627fcc..841086dee 100644 --- a/Panels/Img_Ops/ImgIndexDelete.vb +++ b/Panels/Img_Ops/ImgIndexDelete.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports System.Text.Encoding Imports Microsoft.VisualBasic.ControlChars @@ -22,31 +22,7 @@ Public Class ImgIndexDelete DynaLog.LogMessage("Detecting indexes that are marked for removal...") If ListView1.CheckedItems.Count <= 0 Then DynaLog.LogMessage("No indexes have been marked for removal.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please select volume images to remove from this image, and try again.", vbOKOnly + vbCritical, "Remove a volume image") - Case "ESN" - MsgBox("Seleccione imágenes de volumen para eliminar de esta imagen, e inténtelo de nuevo.", vbOKOnly + vbCritical, "Eliminar una imagen de volumen") - Case "FRA" - MsgBox("Veuillez sélectionner les images de volume à supprimer de cette image et réessayer.", vbOKOnly + vbCritical, "Supprimer une image de volume") - Case "PTB", "PTG" - MsgBox("Seleccione as imagens de volume a remover desta imagem e tente novamente.", vbOKOnly + vbCritical, "Remover uma imagem de volume") - Case "ITA" - MsgBox("Selezionare le immagini del volume da rimuovere da questa immagine e riprovare", vbOKOnly + vbCritical, "Rimuovere un'immagine del volume") - End Select - Case 1 - MsgBox("Please select volume images to remove from this image, and try again.", vbOKOnly + vbCritical, "Remove a volume image") - Case 2 - MsgBox("Seleccione imágenes de volumen para eliminar de esta imagen, e inténtelo de nuevo.", vbOKOnly + vbCritical, "Eliminar una imagen de volumen") - Case 3 - MsgBox("Veuillez sélectionner les images de volume à supprimer de cette image et réessayer.", vbOKOnly + vbCritical, "Supprimer une image de volume") - Case 4 - MsgBox("Seleccione as imagens de volume a remover desta imagem e tente novamente.", vbOKOnly + vbCritical, "Remover uma imagem de volume") - Case 5 - MsgBox("Selezionare le immagini del volume da rimuovere da questa immagine e riprovare", vbOKOnly + vbCritical, "Rimuovere un'immagine del volume") - End Select + MsgBox(LocalizationService.ForSection("ImageIndexDelete.Validation")("SelectImages.Message"), vbOKOnly + vbCritical, LocalizationService.ForSection("ImageIndexDelete.Validation")("Remove.Volume.Image.Title")) Exit Sub End If ProgressPanel.imgIndexDeletionSourceImg = TextBox1.Text @@ -55,31 +31,7 @@ Public Class ImgIndexDelete If MainForm.MountedImageList.Select(Function(image) image.ImageFile).Contains(TextBox1.Text) Then DynaLog.LogMessage("The image selected for index removal is mounted and needs to be unmounted before proceeding with this task.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The program has detected that this image is mounted. In order to remove volume images from a file, it needs to be unmounted. You can remount it later, if you want." & CrLf & CrLf & "Do note that this will unmount the image without saving changes. Make sure all your changes have been saved before proceeding." & CrLf & CrLf & "Do you want to unmount this image?" - Case "ESN" - msg = "El programa ha detectado que esta imagen está montada. Para eliminar imágenes de volumen de este archivo, debe ser desmontado. Puede remontarlo más tarde, si lo desea." & CrLf & CrLf & "Dese cuenta de que esto desmontará la imagen descartando los cambios. Asegúrese de que todos sus cambios hayan sido guardados antes de proceder." & CrLf & CrLf & "¿Desea desmontar esta imagen?" - Case "FRA" - msg = "Le programme a détecté que cette image est montée. Pour supprimer les images de volume d'un fichier, celui-ci doit être démonté. Vous pourrez la remonter plus tard, si vous le souhaitez." & CrLf & CrLf & "Notez que cette opération démontera l'image sans enregistrer les modifications. Assurez-vous que toutes vos modifications ont été enregistrées avant de continuer." & CrLf & CrLf & "Voulez-vous démonter cette image ?" - Case "PTB", "PTG" - msg = "O programa detectou que esta imagem está montada. Para remover imagens de volume de um ficheiro, este tem de ser desmontado. Pode voltar a montá-la mais tarde, se quiser." & CrLf & CrLf & "Tenha em atenção que isto irá desmontar a imagem sem guardar as alterações. Certifique-se de que todas as suas alterações foram guardadas antes de continuar." & CrLf & CrLf & "Deseja desmontar esta imagem?" - Case "ITA" - msg = "Il programma ha rilevato che questa immagine è montata. Per rimuovere le immagini di volume da un file, è necessario smontarlo. È possibile rimontarla in seguito, se si desidera." & CrLf & CrLf & "Si noti che questa operazione smonterà l'immagine senza salvare le modifiche. Assicurarsi che tutte le modifiche siano state salvate prima di procedere." & CrLf & CrLf & "Si desidera smontare questa immagine?" - End Select - Case 1 - msg = "The program has detected that this image is mounted. In order to remove volume images from a file, it needs to be unmounted. You can remount it later, if you want." & CrLf & CrLf & "Do note that this will unmount the image without saving changes. Make sure all your changes have been saved before proceeding." & CrLf & CrLf & "Do you want to unmount this image?" - Case 2 - msg = "El programa ha detectado que esta imagen está montada. Para eliminar imágenes de volumen de este archivo, debe ser desmontado. Puede remontarlo más tarde, si lo desea." & CrLf & CrLf & "Dese cuenta de que esto desmontará la imagen descartando los cambios. Asegúrese de que todos sus cambios hayan sido guardados antes de proceder." & CrLf & CrLf & "¿Desea desmontar esta imagen?" - Case 3 - msg = "Le programme a détecté que cette image est montée. Pour supprimer les images de volume d'un fichier, celui-ci doit être démonté. Vous pourrez la remonter plus tard, si vous le souhaitez." & CrLf & CrLf & "Notez que cette opération démontera l'image sans enregistrer les modifications. Assurez-vous que toutes vos modifications ont été enregistrées avant de continuer." & CrLf & CrLf & "Voulez-vous démonter cette image ?" - Case 4 - msg = "O programa detectou que esta imagem está montada. Para remover imagens de volume de um ficheiro, este tem de ser desmontado. Pode voltar a montá-la mais tarde, se quiser." & CrLf & CrLf & "Tenha em atenção que isto irá desmontar a imagem sem guardar as alterações. Certifique-se de que todas as suas alterações foram guardadas antes de continuar." & CrLf & CrLf & "Deseja desmontar esta imagem?" - Case 5 - msg = "Il programma ha rilevato che questa immagine è montata. Per rimuovere le immagini di volume da un file, è necessario smontarlo. È possibile rimontarla in seguito, se si desidera." & CrLf & CrLf & "Si noti che questa operazione smonterà l'immagine senza salvare le modifiche. Assicurarsi che tutte le modifiche siano state salvate prima di procedere." & CrLf & CrLf & "Si desidera smontare questa immagine?" - End Select + msg = LocalizationService.ForSection("ImageIndexDelete.Validation")("ImageMounted.Message") If MsgBox(msg, vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.Yes Then Dim mountedImage As WindowsImage = MainForm.MountedImageList.FirstOrDefault(Function(image) image.ImageFile = TextBox1.Text) If mountedImage IsNot Nothing Then @@ -139,171 +91,21 @@ Public Class ImgIndexDelete If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Remove a volume image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image:" - Label3.Text = "Please mark the volume images to delete on the left. The image will then have the indexes shown on the right" - Label4.Text = "Getting indexes from the image. Please wait..." - Button1.Text = "Browse..." - Button2.Text = "Use mounted image" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - CheckBox1.Text = "Check image integrity" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView2.Columns(0).Text = "Index" - ListView2.Columns(1).Text = "Image name" - GroupBox1.Text = "Volume images" - Case "ESN" - Text = "Eliminar una imagen de volumen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen:" - Label3.Text = "Marque las imágenes de volumen a eliminar en la parte izquierda. La imagen tendrá luego los índices mostrados en la parte derecha" - Label4.Text = "Obteniendo índices de la imagen. Espere..." - Button1.Text = "Examinar..." - Button2.Text = "Usar imagen montada" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Comprobar integridad de imagen" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView2.Columns(0).Text = "Índice" - ListView2.Columns(1).Text = "Nombre de imagen" - GroupBox1.Text = "Imágenes de volumen" - Case "FRA" - Text = "Supprimer une image de volume" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image source :" - Label3.Text = "Veuillez marquer les images de volume à supprimer sur la gauche. L'image aura alors les index affichés à droite." - Label4.Text = "Obtention des index de l'image en cours. Veuillez patienter..." - Button1.Text = "Parcourir..." - Button2.Text = "Utiliser l'image montée" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView2.Columns(0).Text = "Index de l'image" - ListView2.Columns(1).Text = "Nom de l'image" - GroupBox1.Text = "Images de volume" - Case "PTB", "PTG" - Text = "Remover uma imagem de volume" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagem de origem:" - Label3.Text = "Marque as imagens de volume a eliminar à esquerda. A imagem ficará então com os índices apresentados à direita" - Label4.Text = "A obter os índices da imagem. Aguarde..." - Button1.Text = "Navegar..." - Button2.Text = "Utilizar imagem montada" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Verificar a integridade da imagem" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView2.Columns(0).Text = "Índice" - ListView2.Columns(1).Text = "Nome da imagem" - GroupBox1.Text = "Imagens de volume" - Case "ITA" - Text = "Rimuovere l'immagine di un volume" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Immagine sorgente:" - Label3.Text = "Contrassegnare le immagini del volume da eliminare a sinistra. L'immagine avrà poi gli indici mostrati a destra" - Label4.Text = "Ottenere gli indici dall'immagine. Attendere..." - Button1.Text = "Sfogliare..." - Button2.Text = "Utilizza l'immagine montata" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - CheckBox1.Text = "Verifica l'integrità dell'immagine" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView2.Columns(0).Text = "Indice" - ListView2.Columns(1).Text = "Nome dell'immagine" - GroupBox1.Text = "Immagini volume" - End Select - Case 1 - Text = "Remove a volume image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image:" - Label3.Text = "Please mark the volume images to delete on the left. The image will then have the indexes shown on the right" - Label4.Text = "Getting indexes from the image. Please wait..." - Button1.Text = "Browse..." - Button2.Text = "Use mounted image" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - CheckBox1.Text = "Check image integrity" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView2.Columns(0).Text = "Index" - ListView2.Columns(1).Text = "Image name" - GroupBox1.Text = "Volume images" - Case 2 - Text = "Eliminar una imagen de volumen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen:" - Label3.Text = "Marque las imágenes de volumen a eliminar en la parte izquierda. La imagen tendrá luego los índices mostrados en la parte derecha" - Label4.Text = "Obteniendo índices de la imagen. Espere..." - Button1.Text = "Examinar..." - Button2.Text = "Usar imagen montada" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Comprobar integridad de imagen" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView2.Columns(0).Text = "Índice" - ListView2.Columns(1).Text = "Nombre de imagen" - GroupBox1.Text = "Imágenes de volumen" - Case 3 - Text = "Supprimer une image de volume" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image source :" - Label3.Text = "Veuillez marquer les images de volume à supprimer sur la gauche. L'image aura alors les index affichés à droite." - Label4.Text = "Obtention des index de l'image en cours. Veuillez patienter..." - Button1.Text = "Parcourir..." - Button2.Text = "Utiliser l'image montée" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView2.Columns(0).Text = "Index de l'image" - ListView2.Columns(1).Text = "Nom de l'image" - GroupBox1.Text = "Images de volume" - Case 4 - Text = "Remover uma imagem de volume" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagem de origem:" - Label3.Text = "Marque as imagens de volume a eliminar à esquerda. A imagem ficará então com os índices apresentados à direita" - Label4.Text = "A obter os índices da imagem. Aguarde..." - Button1.Text = "Navegar..." - Button2.Text = "Utilizar imagem montada" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Verificar a integridade da imagem" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView2.Columns(0).Text = "Índice" - ListView2.Columns(1).Text = "Nome da imagem" - GroupBox1.Text = "Imagens de volume" - Case 5 - Text = "Rimuovere l'immagine di un volume" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Immagine sorgente:" - Label3.Text = "Contrassegnare le immagini del volume da eliminare a sinistra. L'immagine avrà poi gli indici mostrati a destra" - Label4.Text = "Ottenere gli indici dall'immagine. Attendere..." - Button1.Text = "Sfogliare..." - Button2.Text = "Utilizza l'immagine montata" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - CheckBox1.Text = "Verifica l'integrità dell'immagine" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView2.Columns(0).Text = "Indice" - ListView2.Columns(1).Text = "Nome dell'immagine" - GroupBox1.Text = "Immagini volume" - End Select + Text = LocalizationService.ForSection("ImageIndexDelete")("Remove.Volume.Image.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ImageIndexDelete").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ImageIndexDelete")("SourceImage.Label") + Label3.Text = LocalizationService.ForSection("ImageIndexDelete")("Mark.VolumeImages.Message") + Label4.Text = LocalizationService.ForSection("ImageIndexDelete")("Get.Indexes.Image.Label") + Button1.Text = LocalizationService.ForSection("ImageIndexDelete")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImageIndexDelete")("Mounted.Image.Button") + OK_Button.Text = LocalizationService.ForSection("ImageIndexDelete")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImageIndexDelete")("Cancel.Button") + CheckBox1.Text = LocalizationService.ForSection("ImageIndexDelete")("Integrity.CheckBox") + ListView1.Columns(0).Text = LocalizationService.ForSection("ImageIndexDelete")("Index.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("ImageIndexDelete")("ImageName.Column") + ListView2.Columns(0).Text = LocalizationService.ForSection("ImageIndexDelete")("Columns0.Column") + ListView2.Columns(1).Text = LocalizationService.ForSection("ImageIndexDelete")("Columns1.Column") + GroupBox1.Text = LocalizationService.ForSection("ImageIndexDelete")("VolumeImages.Group") If MainForm.SourceImg = "N/A" Or Not File.Exists(MainForm.SourceImg) Or MainForm.OnlineManagement Or MainForm.OfflineManagement Then Button2.Enabled = False Else Button2.Enabled = True ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor @@ -360,31 +162,7 @@ Public Class ImgIndexDelete End Try End Try If infoCollection.Count <= 1 Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This image only contains 1 index. You can't remove volume images from this file", vbOKOnly + vbExclamation, "Remove a volume image") - Case "ESN" - MsgBox("Esta imagen solo contiene 1 índice. No puede eliminar imágenes de volumen de este archivo", vbOKOnly + vbExclamation, "Eliminar una imagen de volumen") - Case "FRA" - MsgBox("Cette image ne contient qu'un seul index. Vous ne pouvez pas supprimer les images de volume de ce fichier.", vbOKOnly + vbExclamation, "Supprimer une image de volume") - Case "PTB", "PTG" - MsgBox("Esta imagem contém apenas 1 índice. Não é possível remover imagens de volume deste ficheiro", vbOKOnly + vbExclamation, "Remover uma imagem de volume") - Case "ITA" - MsgBox("Questa immagine contiene solo 1 indice. Non è possibile rimuovere le immagini del volume da questo file", vbOKOnly + vbExclamation, "Rimuovere un'immagine del volume") - End Select - Case 1 - MsgBox("This image only contains 1 index. You can't remove volume images from this file", vbOKOnly + vbExclamation, "Remove a volume image") - Case 2 - MsgBox("Esta imagen solo contiene 1 índice. No puede eliminar imágenes de volumen de este archivo", vbOKOnly + vbExclamation, "Eliminar una imagen de volumen") - Case 3 - MsgBox("Cette image ne contient qu'un seul index. Vous ne pouvez pas supprimer les images de volume de ce fichier.", vbOKOnly + vbExclamation, "Supprimer une image de volume") - Case 4 - MsgBox("Esta imagem contém apenas 1 índice. Não é possível remover imagens de volume deste ficheiro", vbOKOnly + vbExclamation, "Remover uma imagem de volume") - Case 5 - MsgBox("Questa immagine contiene solo 1 indice. Non è possibile rimuovere le immagini del volume da questo file", vbOKOnly + vbExclamation, "Rimuovere un'immagine del volume") - End Select + MsgBox(LocalizationService.ForSection("ImageIndexDelete.IndexInfo")("Image.Only.Contains.Message"), vbOKOnly + vbExclamation, LocalizationService.ForSection("ImageIndexDelete.IndexInfo")("Remove.Volume.Image.Title")) Label4.Visible = False OK_Button.Enabled = False Exit Sub diff --git a/Panels/Img_Ops/ImgMount.Designer.vb b/Panels/Img_Ops/ImgMount.Designer.vb index ae183175e..cd938ec61 100644 --- a/Panels/Img_Ops/ImgMount.Designer.vb +++ b/Panels/Img_Ops/ImgMount.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgMount Inherits System.Windows.Forms.Form @@ -83,7 +83,7 @@ Partial Class ImgMount Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgMount")("Ok.Button") ' 'Cancel_Button ' @@ -94,7 +94,7 @@ Partial Class ImgMount Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgMount")("Cancel.Button") ' 'Label2 ' @@ -103,7 +103,7 @@ Partial Class ImgMount Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(228, 13) Me.Label2.TabIndex = 2 - Me.Label2.Text = "Please specify the options to mount an image:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgMount")("Options.Required.Label") ' 'GroupBox1 ' @@ -117,7 +117,7 @@ Partial Class ImgMount Me.GroupBox1.Size = New System.Drawing.Size(760, 89) Me.GroupBox1.TabIndex = 3 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Source" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImgMount")("Source.Group") ' 'Label4 ' @@ -128,8 +128,7 @@ Partial Class ImgMount Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(657, 13) Me.Label4.TabIndex = 5 - Me.Label4.Text = "NOTE: if you want to mount an ESD file, you need to convert it to a WIM file firs" & _ - "t" + Me.Label4.Text = LocalizationService.ForSection("Designer.ImgMount")("Notewant.ESD.Label") Me.Label4.Visible = False ' 'Button3 @@ -139,7 +138,7 @@ Partial Class ImgMount Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 4 - Me.Button3.Text = "Convert" + Me.Button3.Text = LocalizationService.ForSection("Designer.ImgMount")("Convert.Button") Me.Button3.UseVisualStyleBackColor = True Me.Button3.Visible = False ' @@ -150,7 +149,7 @@ Partial Class ImgMount Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 4 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgMount")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -168,7 +167,7 @@ Partial Class ImgMount Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(131, 13) Me.Label3.TabIndex = 2 - Me.Label3.Text = "Image file*:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImgMount")("ImageFile.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'GroupBox2 @@ -181,7 +180,7 @@ Partial Class ImgMount Me.GroupBox2.Size = New System.Drawing.Size(760, 60) Me.GroupBox2.TabIndex = 3 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Destination" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.ImgMount")("Destination.Group") ' 'Button2 ' @@ -190,7 +189,7 @@ Partial Class ImgMount Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 4 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.ImgMount")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TextBox2 @@ -208,7 +207,7 @@ Partial Class ImgMount Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(131, 13) Me.Label6.TabIndex = 2 - Me.Label6.Text = "Mount directory*:" + Me.Label6.Text = LocalizationService.ForSection("Designer.ImgMount")("MountDirectory.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'GroupBox3 @@ -224,7 +223,7 @@ Partial Class ImgMount Me.GroupBox3.Size = New System.Drawing.Size(760, 156) Me.GroupBox3.TabIndex = 3 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Options" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.ImgMount")("Options.Group") ' 'ListView1 ' @@ -240,22 +239,22 @@ Partial Class ImgMount ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Index" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ImgMount")("Index.Column") Me.ColumnHeader1.Width = 44 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.ImgMount")("ImageName.Column") Me.ColumnHeader2.Width = 256 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Image description" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.ImgMount")("ImageDescription.Column") Me.ColumnHeader3.Width = 256 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Image version" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.ImgMount")("ImageVersion.Column") Me.ColumnHeader4.Width = 128 ' 'NumericUpDown1 @@ -274,7 +273,7 @@ Partial Class ImgMount Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(129, 17) Me.CheckBox4.TabIndex = 0 - Me.CheckBox4.Text = "Check image integrity" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.ImgMount")("Integrity.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -284,7 +283,7 @@ Partial Class ImgMount Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(128, 17) Me.CheckBox3.TabIndex = 0 - Me.CheckBox3.Text = "Optimize mount times" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.ImgMount")("Optimize.Times.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -294,7 +293,7 @@ Partial Class ImgMount Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(185, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Mount with read only permissions" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImgMount")("Mount.Read.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label7 @@ -305,7 +304,7 @@ Partial Class ImgMount Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(131, 13) Me.Label7.TabIndex = 2 - Me.Label7.Text = "Index*:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ImgMount")("Index.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label11 @@ -315,12 +314,11 @@ Partial Class ImgMount Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(179, 13) Me.Label11.TabIndex = 2 - Me.Label11.Text = "The fields that end in * are required" + Me.Label11.Text = LocalizationService.ForSection("Designer.ImgMount")("Fields.End.Required.Label") ' 'FileSpecDialog ' - Me.FileSpecDialog.Filter = "WIM files|*.wim|ESD files|*.esd|SWM files|*.swm|VHD(X) files|*.vhd;*.vhdx|ISO fil" & _ - "es|*.iso|Full Flash Utility files|*.ffu" + Me.FileSpecDialog.Filter = LocalizationService.ForSection("Designer.ImgMount")("FileSpec.Filter") ' 'IsoExtractorBW ' @@ -361,7 +359,7 @@ Partial Class ImgMount Me.Name = "ImgMount" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Mount an image" + Me.Text = LocalizationService.ForSection("Designer.ImgMount")("MountImage.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/ImgMount.vb b/Panels/Img_Ops/ImgMount.vb index bd6ec3d1f..7be0d99f6 100644 --- a/Panels/Img_Ops/ImgMount.vb +++ b/Panels/Img_Ops/ImgMount.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports System.Windows.Forms Imports System.Text.Encoding Imports Microsoft.VisualBasic.ControlChars @@ -29,31 +29,7 @@ Public Class ImgMount Directory.CreateDirectory(TextBox2.Text) Catch ex As Exception DynaLog.LogMessage("Could not create the mount directory. Error message: " & ex.Message) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Could not create mount directory. Reason: " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Mount an image") - Case "ESN" - MsgBox("No se pudo crear el directorio de montaje. Razón: " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Montar una imagen") - Case "FRA" - MsgBox("Impossible de créer un répertoire de montage. Raison : " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Monter une image") - Case "PTB", "PTG" - MsgBox("Não foi possível criar o diretório de montagem. Motivo: " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Montar uma imagem") - Case "ITA" - MsgBox("Impossibile creare una cartella di montaggio. Motivo: " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Monta un'immagine") - End Select - Case 1 - MsgBox("Could not create mount directory. Reason: " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Mount an image") - Case 2 - MsgBox("No se pudo crear el directorio de montaje. Razón: " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Montar una imagen") - Case 3 - MsgBox("Impossible de créer un répertoire de montage. Raison : " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Monter une image") - Case 4 - MsgBox("Não foi possível criar o diretório de montagem. Motivo: " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Montar uma imagem") - Case 5 - MsgBox("Impossibile creare una cartella di montaggio. Motivo: " & ex.ToString() & "; " & ex.Message, MsgBoxStyle.OkOnly + vbCritical, "Monta un'immagine") - End Select + MsgBox(LocalizationService.ForSection("ImgMount.Validation").Format("Create.Dir.Reason.Message", ex.ToString(), ex.Message), MsgBoxStyle.OkOnly + vbCritical, LocalizationService.ForSection("ImgMount.Validation")("MountImage.Title")) Exit Sub End Try ElseIf MountOpDirCreationDialog.DialogResult = Windows.Forms.DialogResult.No Then @@ -98,301 +74,34 @@ Public Class ImgMount End Sub Private Sub ImgMount_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Mount an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please specify the options to mount an image:" - Label3.Text = "Image file*:" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "You need to convert this file to a WIM file in order to mount it" - Button3.Text = "Convert" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "You need to merge the SWM files to a WIM file in order to mount it" - Button3.Text = "Merge" - End If - Label6.Text = "Mount directory*:" - Label7.Text = "Index*:" - Label11.Text = "The fields that end in * are required" - GroupBox1.Text = "Source" - GroupBox2.Text = "Destination" - GroupBox3.Text = "Options" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView1.Columns(2).Text = "Image description" - ListView1.Columns(3).Text = "Image version" - CheckBox1.Text = "Mount with read only permissions" - CheckBox3.Text = "Optimize mount times" - CheckBox4.Text = "Check image integrity" - Case "ESN" - Text = "Montar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique las opciones para montar una imagen:" - Label3.Text = "Archivo de imagen*:" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Necesita convertir este archivo a un archivo WIM para montarlo" - Button3.Text = "Convertir" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Necesita combinar los archivos SWM a un archivo WIM para montarlo" - Button3.Text = "Combinar" - End If - Label6.Text = "Directorio de montaje*:" - Label7.Text = "Índice*:" - Label11.Text = "Los campos que terminen en * son necesarios" - GroupBox1.Text = "Origen" - GroupBox2.Text = "Destino" - GroupBox3.Text = "Opciones" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView1.Columns(2).Text = "Descripción de la imagen" - ListView1.Columns(3).Text = "Versión de la imagen" - CheckBox1.Text = "Montar con permisos de solo lectura" - CheckBox3.Text = "Optimizar tiempos de montaje" - CheckBox4.Text = "Comprobar integridad de la imagen" - Case "FRA" - Text = "Monter une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez spécifier les options pour monter une image :" - Label3.Text = "Fichier de l'image* :" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Vous devez convertir cette image en fichier WIM pour pouvoir la monter." - Button3.Text = "Convertir" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter." - Button3.Text = "Fusionner" - End If - Label6.Text = "Répertoire de montage* :" - Label7.Text = "Index* :" - Label11.Text = "Les champs se terminant par * sont obligatoires" - GroupBox1.Text = "Source" - GroupBox2.Text = "Destination" - GroupBox3.Text = "Paramètres" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView1.Columns(2).Text = "Description de l'image" - ListView1.Columns(3).Text = "Version de l'image" - CheckBox1.Text = "Montage avec des droits d'accès de lecture seulement" - CheckBox3.Text = "Optimiser les temps de montage" - CheckBox4.Text = "Vérifier l'intégrité de l'image" - Case "PTB", "PTG" - Text = "Montar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por favor, especifique as opções para montar uma imagem:" - Label3.Text = "Ficheiro de imagem*:" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Tem de converter este ficheiro num ficheiro WIM para o poder montar" - Button3.Text = "Converter" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar" - Button3.Text = "Combinar" - End If - Label6.Text = "Montar diretório*:" - Label7.Text = "Índice*:" - Label11.Text = "Os campos que terminam em * são obrigatórios" - GroupBox1.Text = "Fonte" - GroupBox2.Text = "Destino" - GroupBox3.Text = "Opções" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView1.Columns(2).Text = "Descrição da imagem" - ListView1.Columns(3).Text = "Versão da imagem" - CheckBox1.Text = "Montar com permissões apenas de leitura" - CheckBox3.Text = "Otimizar tempos de montagem" - CheckBox4.Text = "Verificar a integridade da imagem" - Case "ITA" - Text = "Montare un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare le opzioni per montare un'immagine:" - Label3.Text = "File immagine*:" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "È necessario convertire questo file in un file WIM per poterlo montare" - Button3.Text = "Convertire" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "È necessario unire i file SWM a un file WIM per poterlo montare" - Button3.Text = "Unisci" - End If - Label6.Text = "Montare la directory*:" - Label7.Text = "Indice*:" - Label11.Text = "I campi che terminano con * sono obbligatori" - GroupBox1.Text = "Sorgente" - GroupBox2.Text = "Destinazione" - GroupBox3.Text = "Opzioni" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView1.Columns(2).Text = "Descrizione dell'immagine" - ListView1.Columns(3).Text = "Versione dell'immagine" - CheckBox1.Text = "Montare con permessi di sola lettura" - CheckBox3.Text = "Ottimizza tempi di montaggio" - CheckBox4.Text = "Controlla l'integrità dell'immagine" - End Select - Case 1 - Text = "Mount an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please specify the options to mount an image:" - Label3.Text = "Image file*:" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "You need to convert this file to a WIM file in order to mount it" - Button3.Text = "Convert" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "You need to merge the SWM files to a WIM file in order to mount it" - Button3.Text = "Merge" - End If - Label6.Text = "Mount directory*:" - Label7.Text = "Index*:" - Label11.Text = "The fields that end in * are required" - GroupBox1.Text = "Source" - GroupBox2.Text = "Destination" - GroupBox3.Text = "Options" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView1.Columns(2).Text = "Image description" - ListView1.Columns(3).Text = "Image version" - CheckBox1.Text = "Mount with read only permissions" - CheckBox3.Text = "Optimize mount times" - CheckBox4.Text = "Check image integrity" - Case 2 - Text = "Montar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique las opciones para montar una imagen:" - Label3.Text = "Archivo de imagen*:" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Necesita convertir este archivo a un archivo WIM para montarlo" - Button3.Text = "Convertir" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Necesita combinar los archivos SWM a un archivo WIM para montarlo" - Button3.Text = "Combinar" - End If - Label6.Text = "Directorio de montaje*:" - Label7.Text = "Índice*:" - Label11.Text = "Los campos que terminen en * son necesarios" - GroupBox1.Text = "Origen" - GroupBox2.Text = "Destino" - GroupBox3.Text = "Opciones" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView1.Columns(2).Text = "Descripción de la imagen" - ListView1.Columns(3).Text = "Versión de la imagen" - CheckBox1.Text = "Montar con permisos de solo lectura" - CheckBox3.Text = "Optimizar tiempos de montaje" - CheckBox4.Text = "Comprobar integridad de la imagen" - Case 3 - Text = "Monter une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez spécifier les options pour monter une image :" - Label3.Text = "Fichier de l'image* :" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Vous devez convertir cette image en fichier WIM pour pouvoir la monter." - Button3.Text = "Convertir" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter." - Button3.Text = "Fusionner" - End If - Label6.Text = "Répertoire de montage* :" - Label7.Text = "Index* :" - Label11.Text = "Les champs se terminant par * sont obligatoires" - GroupBox1.Text = "Source" - GroupBox2.Text = "Destination" - GroupBox3.Text = "Paramètres" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView1.Columns(2).Text = "Description de l'image" - ListView1.Columns(3).Text = "Version de l'image" - CheckBox1.Text = "Montage avec des droits d'accès de lecture seulement" - CheckBox3.Text = "Optimiser les temps de montage" - CheckBox4.Text = "Vérifier l'intégrité de l'image" - Case 4 - Text = "Montar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por favor, especifique as opções para montar uma imagem:" - Label3.Text = "Ficheiro de imagem*:" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "Tem de converter este ficheiro num ficheiro WIM para o poder montar" - Button3.Text = "Converter" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar" - Button3.Text = "Combinar" - End If - Label6.Text = "Montar diretório*:" - Label7.Text = "Índice*:" - Label11.Text = "Os campos que terminam em * são obrigatórios" - GroupBox1.Text = "Fonte" - GroupBox2.Text = "Destino" - GroupBox3.Text = "Opções" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView1.Columns(2).Text = "Descrição da imagem" - ListView1.Columns(3).Text = "Versão da imagem" - CheckBox1.Text = "Montar com permissões apenas de leitura" - CheckBox3.Text = "Otimizar tempos de montagem" - CheckBox4.Text = "Verificar a integridade da imagem" - Case 5 - Text = "Montare un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare le opzioni per montare un'immagine:" - Label3.Text = "File immagine*:" - If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "È necessario convertire questo file in un file WIM per poterlo montare" - Button3.Text = "Convertire" - ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then - Label4.Text = "È necessario unire i file SWM a un file WIM per poterlo montare" - Button3.Text = "Unisci" - End If - Label6.Text = "Montare la directory*:" - Label7.Text = "Indice*:" - Label11.Text = "I campi che terminano con * sono obbligatori" - GroupBox1.Text = "Sorgente" - GroupBox2.Text = "Destinazione" - GroupBox3.Text = "Opzioni" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView1.Columns(2).Text = "Descrizione dell'immagine" - ListView1.Columns(3).Text = "Versione dell'immagine" - CheckBox1.Text = "Montare con permessi di sola lettura" - CheckBox3.Text = "Ottimizza tempi di montaggio" - CheckBox4.Text = "Controlla l'integrità dell'immagine" - End Select + Text = LocalizationService.ForSection("ImgMount")("MountImage.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("ImgMount")("Options.Required.Label") + Label3.Text = LocalizationService.ForSection("ImgMount")("ImageFile.Label") + If Path.GetExtension(TextBox1.Text).EndsWith(LocalizationService.ForSection("ImgMount")("ESD.Label"), StringComparison.OrdinalIgnoreCase) Then + Label4.Text = LocalizationService.ForSection("ImgMount")("Convert.File.WIM.Label") + Button3.Text = LocalizationService.ForSection("ImgMount")("Convert.Button") + ElseIf Path.GetExtension(TextBox1.Text).EndsWith(LocalizationService.ForSection("ImgMount")("SWM.Label"), StringComparison.OrdinalIgnoreCase) Then + Label4.Text = LocalizationService.ForSection("ImgMount")("Merge.Swmfiles.Item") + Button3.Text = LocalizationService.ForSection("ImgMount")("Merge.Item") + End If + Label6.Text = LocalizationService.ForSection("ImgMount")("MountDirectory.Label") + Label7.Text = LocalizationService.ForSection("ImgMount")("Index.Label") + Label11.Text = LocalizationService.ForSection("ImgMount")("Fields.End.Required.Label") + GroupBox1.Text = LocalizationService.ForSection("ImgMount")("Source.Group") + GroupBox2.Text = LocalizationService.ForSection("ImgMount")("Destination.Group") + GroupBox3.Text = LocalizationService.ForSection("ImgMount")("Options.Group") + Button1.Text = LocalizationService.ForSection("ImgMount")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImgMount")("Browse.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImgMount")("Cancel.Button") + OK_Button.Text = LocalizationService.ForSection("ImgMount")("Ok.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("ImgMount")("Index.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("ImgMount")("ImageName.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("ImgMount")("ImageDescription.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("ImgMount")("ImageVersion.Column") + CheckBox1.Text = LocalizationService.ForSection("ImgMount")("Mount.Read.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("ImgMount")("Optimize.Times.CheckBox") + CheckBox4.Text = LocalizationService.ForSection("ImgMount")("Integrity.CheckBox") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -409,7 +118,7 @@ Public Class ImgMount ListView1.ForeColor = ForeColor DismVerChecker = FileVersionInfo.GetVersionInfo(MainForm.DismExe) If DismVerChecker.ProductMajorPart = 6 And DismVerChecker.ProductMinorPart = 1 Then - FileSpecDialog.Filter = "WIM files|*.wim" + FileSpecDialog.Filter = LocalizationService.ForSection("Panels.ImageOps.MountImage")("WIM.Files.Filter") End If Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) WindowHelper.ToggleDarkTitleBar(handle, CurrentTheme.IsDark) @@ -449,41 +158,8 @@ Public Class ImgMount If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then Button3.Visible = True Label4.Visible = True - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "You need to convert this file to a WIM file in order to mount it" - Button3.Text = "Convert" - Case "ESN" - Label4.Text = "Necesita convertir este archivo a un archivo WIM para montarlo" - Button3.Text = "Convertir" - Case "FRA" - Label4.Text = "Vous devez convertir cette image en fichier WIM pour pouvoir la monter." - Button3.Text = "Convertir" - Case "PTB", "PTG" - Label4.Text = "Tem de converter este ficheiro num ficheiro WIM para o poder montar" - Button3.Text = "Converter" - Case "ITA" - Label4.Text = "È necessario convertire questo file in un file WIM per poterlo montare" - Button3.Text = "Convertire" - End Select - Case 1 - Label4.Text = "You need to convert this file to a WIM file in order to mount it" - Button3.Text = "Convert" - Case 2 - Label4.Text = "Necesita convertir este archivo a un archivo WIM para montarlo" - Button3.Text = "Convertir" - Case 3 - Label4.Text = "Vous devez convertir cette image en fichier WIM pour pouvoir la monter." - Button3.Text = "Convertir" - Case 4 - Label4.Text = "Tem de converter este ficheiro num ficheiro WIM para o poder montar" - Button3.Text = "Converter" - Case 5 - Label4.Text = "È necessario convertire questo file in un file WIM per poterlo montare" - Button3.Text = "Convertire" - End Select + Label4.Text = LocalizationService.ForSection("ImgMount")("Convert.File.WIM.Label") + Button3.Text = LocalizationService.ForSection("ImgMount.Actions")("Convert.Button") IsReqField1Valid = False ImgWim2Esd.TextBox1.Text = TextBox1.Text ImgWim2Esd.TextBox2.Text = TextBox1.Text.Replace(Path.GetExtension(TextBox1.Text), ".wim").Trim() @@ -495,70 +171,13 @@ Public Class ImgMount Button3.Visible = False Label4.Visible = False ElseIf ImgWim2Esd.DialogResult = Windows.Forms.DialogResult.Cancel Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("You need to convert this image to a WIM file in order to mount it", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Debe convertir esta imagen a un archivo WIM para poder montarla", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Vous devez convertir cette image en fichier WIM pour pouvoir la monter.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Tem de converter este ficheiro num ficheiro WIM para o poder montar", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Per montare l'immagine è necessario convertirla in un file WIM", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("You need to convert this image to a WIM file in order to mount it", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Debe convertir esta imagen a un archivo WIM para poder montarla", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Vous devez convertir cette image en fichier WIM pour pouvoir la monter.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Tem de converter este ficheiro num ficheiro WIM para o poder montar", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Per montare l'immagine è necessario convertirla in un file WIM", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgMount.Actions")("Convert.Image.WIM.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) End If ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then Button3.Visible = True Label4.Visible = True - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "You need to merge the SWM files to a WIM file in order to mount it" - Button3.Text = "Merge" - Case "ESN" - Label4.Text = "Necesita combinar los archivos SWM a un archivo WIM para montarlo" - Button3.Text = "Combinar" - Case "FRA" - Label4.Text = "Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter." - Button3.Text = "Fusionner" - Case "PTB", "PTG" - Label4.Text = "É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar" - Button3.Text = "Combinar" - Case "ITA" - Label4.Text = "È necessario unire i file SWM in un file WIM per poterlo montare" - Button3.Text = "Unisci" - End Select - Case 1 - Label4.Text = "You need to merge the SWM files to a WIM file in order to mount it" - Button3.Text = "Merge" - Case 2 - Label4.Text = "Necesita combinar los archivos SWM a un archivo WIM para montarlo" - Button3.Text = "Combinar" - Case 3 - Label4.Text = "Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter." - Button3.Text = "Fusionner" - Case 4 - Label4.Text = "É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar" - Button3.Text = "Combinar" - Case 5 - Label4.Text = "È necessario unire i file SWM in un file WIM per poterlo montare" - Button3.Text = "Unisci" - End Select + Label4.Text = LocalizationService.ForSection("ImgMount")("Merge.Swmfiles.Item") + Button3.Text = LocalizationService.ForSection("ImgMount")("Merge.Item") IsReqField1Valid = False ImgSwmToWim.TextBox1.Text = TextBox1.Text ImgSwmToWim.TextBox2.Text = TextBox1.Text.Replace(Path.GetExtension(TextBox1.Text), ".wim").Trim() @@ -570,31 +189,7 @@ Public Class ImgMount Button3.Visible = False Label4.Visible = False ElseIf ImgSwmToWim.DialogResult = Windows.Forms.DialogResult.Cancel Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("You need to merge the SWM files to a WIM file in order to mount it", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Necesita combinar los archivos SWM a un archivo WIM para montarlo", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("È necessario unire i file SWM in un file WIM per poterlo montare", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("You need to merge the SWM files to a WIM file in order to mount it", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Necesita combinar los archivos SWM a un archivo WIM para montarlo", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("È necessario unire i file SWM in un file WIM per poterlo montare", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgMount.Actions")("Merge.Swmfiles.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) End If ElseIf Path.GetExtension(TextBox1.Text).EndsWith(".iso", StringComparison.OrdinalIgnoreCase) Then DynaLog.LogMessage("Performing extraction of this ISO file...") @@ -645,31 +240,7 @@ Public Class ImgMount Catch ex As Exception DynaLog.LogMessage("Could not get image file information. Error message: " & ex.Message) Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ESN" - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "FRA" - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "PTB", "PTG" - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case "ITA" - msg = "Impossibile raccogliere informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select - Case 1 - msg = "Could not gather information of this image file. Reason:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 2 - msg = "No pudimos obtener información de este archivo de imagen. Razón:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 3 - msg = "Impossible de recueillir des informations sur ce fichier de l'image. Raison :" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 4 - msg = "Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - Case 5 - msg = "Impossibile raccogliere informazioni sull'immagine. Motivo:" & CrLf & CrLf & ex.ToString() & " - " & ex.Message & " (HRESULT " & Hex(ex.HResult) & ")" - End Select + msg = LocalizationService.ForSection("ImgMount.GetIndexes").Format("Gather.ImageFile.Message", ex.ToString(), ex.Message, Hex(ex.HResult)) MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally Try @@ -733,31 +304,7 @@ Public Class ImgMount If TextBox1.Text <> "" And File.Exists(TextBox1.Text) And MainForm.MountedImageList.Select(Function(image) image.ImageFile).Contains(TextBox1.Text) Then DynaLog.LogMessage("The Windows image is already mounted.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "This image is already mounted, and cannot be mounted again. If you want to mount it to the directory you wanted, unmount the image from its original mount directory (saving the changes if you want) and open this dialog afterwards" - Case "ESN" - msg = "Esta imagen ya está montada, y no puede ser montada de nuevo. Si desea montarla al directorio que deseó, desmonte la imagen de su directorio de montaje original (guardando los cambios si lo prefiere) y abra este diálogo después" - Case "FRA" - msg = "Cette image est déjà montée et ne peut pas l'être à nouveau. Si vous souhaitez la monter dans le répertoire souhaité, démontez l'image de son répertoire de montage d'origine (en sauvegardant les modifications si vous le souhaitez) et ouvrez ensuite cette fenêtre de dialogue." - Case "PTB", "PTG" - msg = "Esta imagem já está montada e não pode ser montada novamente. Se pretender montá-la no diretório pretendido, desmonte a imagem do seu diretório de montagem original (guardando as alterações, se pretender) e abra depois esta caixa de diálogo" - Case "ITA" - msg = "Questa immagine è già montata e non può essere montata di nuovo. Se si desidera montarla nella directory desiderata, smontare l'immagine dalla directory di montaggio originale (salvando le modifiche, se si vuole) e aprire successivamente questa finestra di dialogo" - End Select - Case 1 - msg = "This image is already mounted, and cannot be mounted again. If you want to mount it to the directory you wanted, unmount the image from its original mount directory (saving the changes if you want) and open this dialog afterwards" - Case 2 - msg = "Esta imagen ya está montada, y no puede ser montada de nuevo. Si desea montarla al directorio que deseó, desmonte la imagen de su directorio de montaje original (guardando los cambios si lo prefiere) y abra este diálogo después" - Case 3 - msg = "Cette image est déjà montée et ne peut pas l'être à nouveau. Si vous souhaitez la monter dans le répertoire souhaité, démontez l'image de son répertoire de montage d'origine (en sauvegardant les modifications si vous le souhaitez) et ouvrez ensuite cette fenêtre de dialogue." - Case 4 - msg = "Esta imagem já está montada e não pode ser montada novamente. Se pretender montá-la no diretório pretendido, desmonte a imagem do seu diretório de montagem original (guardando as alterações, se pretender) e abra depois esta caixa de diálogo" - Case 5 - msg = "Questa immagine è già montata e non può essere montata di nuovo. Se si desidera montarla nella directory desiderata, smontare l'immagine dalla directory di montaggio originale (salvando le modifiche, se si vuole) e aprire successivamente questa finestra di dialogo" - End Select + msg = LocalizationService.ForSection("ImgMount")("Image.Already.Message") MsgBox(msg, vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) End If End Sub @@ -790,31 +337,7 @@ Public Class ImgMount Label4.Visible = False ElseIf ImgWim2Esd.DialogResult = Windows.Forms.DialogResult.Cancel Then DynaLog.LogMessage("No conversion has been made.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("You need to convert this image to a WIM file in order to mount it", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Debe convertir esta imagen a un archivo WIM para poder montarla", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Vous devez convertir cette image en fichier WIM pour pouvoir la monter.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Tem de converter este ficheiro num ficheiro WIM para o poder montar", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Per montare l'immagine è necessario convertirla in un file WIM", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("You need to convert this image to a WIM file in order to mount it", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Debe convertir esta imagen a un archivo WIM para poder montarla", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Vous devez convertir cette image en fichier WIM pour pouvoir la monter.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Tem de converter este ficheiro num ficheiro WIM para o poder montar", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Per montare l'immagine è necessario convertirla in un file WIM", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgMount.Actions")("Convert.Image.WIM.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) End If ElseIf Path.GetExtension(TextBox1.Text).EndsWith("swm", StringComparison.OrdinalIgnoreCase) Then DynaLog.LogMessage("Beginning merger of SWM files...") @@ -831,31 +354,7 @@ Public Class ImgMount Label4.Visible = False ElseIf ImgSwmToWim.DialogResult = Windows.Forms.DialogResult.Cancel Then DynaLog.LogMessage("No merger has been made.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("You need to merge the SWM files to a WIM file in order to mount it", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Necesita combinar los archivos SWM a un archivo WIM para montarlo", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("È necessario unire i file SWM in un file WIM per poterlo montare", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("You need to merge the SWM files to a WIM file in order to mount it", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Necesita combinar los archivos SWM a un archivo WIM para montarlo", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter.", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("È necessario unire i file SWM in un file WIM per poterlo montare", vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgMount.Actions")("Swm.Merge.Required.Message"), vbOKOnly + vbExclamation, ImageTaskHeader1.ItemText) End If Else Button3.Visible = False @@ -910,7 +409,7 @@ Public Class ImgMount If ImageFilePickerDialog.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then TextBox1.Text = ImageFilePickerDialog.SelectedImageFilePath Else - MessageBox.Show("The copied installation image will be selected automatically for you, if found...", "Extraction succeeded", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("ImageOps.Mount.Messages")("Copied.Image.Message"), LocalizationService.ForSection("ImageOps.Mount.Messages")("Extraction.Succeeded.Label"), MessageBoxButtons.OK, MessageBoxIcon.Information) Dim installImagePath_WIM As String = Path.Combine(projPath, "IsoFileContents", "install.wim") Dim installImagePath_ESD As String = Path.Combine(projPath, "IsoFileContents", "install.esd") @@ -919,7 +418,7 @@ Public Class ImgMount End If Else ' Then we've failed - MessageBox.Show("The Windows images in the specified ISO file were not copied to your local disk. Copy any WIM or ESD files from the sources folder of your ISO file.", "Extraction succeeded", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("ImageOps.Mount.Messages")("Windows.Message"), LocalizationService.ForSection("ImageOps.Mount.Messages")("Extraction.Succeeded.Message"), MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub diff --git a/Panels/Img_Ops/ImgOptimize.Designer.vb b/Panels/Img_Ops/ImgOptimize.Designer.vb index eebfbaa82..05ceff899 100644 --- a/Panels/Img_Ops/ImgOptimize.Designer.vb +++ b/Panels/Img_Ops/ImgOptimize.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgOptimize Inherits System.Windows.Forms.Form @@ -62,7 +62,7 @@ Partial Class ImgOptimize Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgOptimize")("Ok.Button") ' 'Cancel_Button ' @@ -73,7 +73,7 @@ Partial Class ImgOptimize Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgOptimize")("Cancel.Button") ' 'ImageTaskHeader1 ' @@ -96,7 +96,7 @@ Partial Class ImgOptimize Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(177, 13) Me.Label1.TabIndex = 20 - Me.Label1.Text = "Path of mounted image to optimize:" + Me.Label1.Text = LocalizationService.ForSection("Designer.ImgOptimize")("Path.Mounted.Image.Label") ' 'TextBox1 ' @@ -112,7 +112,7 @@ Partial Class ImgOptimize Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 22 - Me.Button1.Text = "Pick..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgOptimize")("Pick.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Button2 @@ -122,7 +122,7 @@ Partial Class ImgOptimize Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(126, 23) Me.Button2.TabIndex = 22 - Me.Button2.Text = "Use mounted image" + Me.Button2.Text = LocalizationService.ForSection("Designer.ImgOptimize")("Mounted.Image.Button") Me.Button2.UseVisualStyleBackColor = True ' 'GroupBox1 @@ -135,7 +135,7 @@ Partial Class ImgOptimize Me.GroupBox1.Size = New System.Drawing.Size(596, 134) Me.GroupBox1.TabIndex = 23 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Image optimization mode" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImgOptimize")("Image.Optimization.Mode") ' 'RadioButton1 ' @@ -146,7 +146,7 @@ Partial Class ImgOptimize Me.RadioButton1.Size = New System.Drawing.Size(368, 17) Me.RadioButton1.TabIndex = 0 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Reduce online configuration time that the target OS spends during boot" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.ImgOptimize")("Reduce.Online.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'Label2 @@ -156,8 +156,7 @@ Partial Class ImgOptimize Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(453, 13) Me.Label2.TabIndex = 1 - Me.Label2.Text = "You may need to optimize the image again if you perform servicing operations afte" & _ - "r this task." + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgOptimize")("Image.Again.Label") ' 'RadioButton2 ' @@ -166,8 +165,7 @@ Partial Class ImgOptimize Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(426, 17) Me.RadioButton2.TabIndex = 0 - Me.RadioButton2.Text = "Configure an offline image for installation on a WIMBoot system (Windows 8.1 only" & _ - ")" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.ImgOptimize")("OfflineImage.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'ImgOptimize @@ -191,7 +189,7 @@ Partial Class ImgOptimize Me.Name = "ImgOptimize" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Optimize images" + Me.Text = LocalizationService.ForSection("Designer.ImgOptimize")("OptimizeImages.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/ImgOptimize.vb b/Panels/Img_Ops/ImgOptimize.vb index 775370bfd..00aa5e6f4 100644 --- a/Panels/Img_Ops/ImgOptimize.vb +++ b/Panels/Img_Ops/ImgOptimize.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class ImgOptimize @@ -8,7 +8,7 @@ Public Class ImgOptimize If TextBox1.Text = "" OrElse Not Directory.Exists(TextBox1.Text) Then DynaLog.LogMessage("The source mount directory has not been specified or it does not exist in the file system.") - MsgBox("Please specify the mount directory of the image you want to optimize and try again. Also, make sure that that path exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("ImageOps.Optimize.Messages")("Mount.Dir.Required.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If diff --git a/Panels/Img_Ops/ImgSplit.Designer.vb b/Panels/Img_Ops/ImgSplit.Designer.vb index f7a62250e..19cddc10d 100644 --- a/Panels/Img_Ops/ImgSplit.Designer.vb +++ b/Panels/Img_Ops/ImgSplit.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgSplit Inherits System.Windows.Forms.Form @@ -65,7 +65,7 @@ Partial Class ImgSplit Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgSplit")("Ok.Button") ' 'Cancel_Button ' @@ -76,17 +76,17 @@ Partial Class ImgSplit Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgSplit")("Cancel.Button") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "SWM files|*.swm" - Me.SaveFileDialog1.Title = "Specify the target location of the split images:" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgSplit")("Swmfiles.Filter") + Me.SaveFileDialog1.Title = LocalizationService.ForSection("Designer.ImgSplit")("SaveFile.Title") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "WIM files|*.wim" - Me.OpenFileDialog1.Title = "Specify the source WIM file to split:" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ImgSplit")("WIM.Files.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.ImgSplit")("Source.WIM.File.Title") ' 'TextBox1 ' @@ -102,7 +102,7 @@ Partial Class ImgSplit Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(110, 13) Me.Label2.TabIndex = 14 - Me.Label2.Text = "Source image to split:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgSplit")("Source.Image.Label") ' 'Button1 ' @@ -111,7 +111,7 @@ Partial Class ImgSplit Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 15 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgSplit")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox2 @@ -128,7 +128,7 @@ Partial Class ImgSplit Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(225, 13) Me.Label3.TabIndex = 14 - Me.Label3.Text = "Name and path of the destination split image:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImgSplit")("Name.Path.Destination.Label") ' 'Button2 ' @@ -137,7 +137,7 @@ Partial Class ImgSplit Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 15 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.ImgSplit")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label4 @@ -147,7 +147,7 @@ Partial Class ImgSplit Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(183, 13) Me.Label4.TabIndex = 14 - Me.Label4.Text = "Maximum size of split images (in MB):" + Me.Label4.Text = LocalizationService.ForSection("Designer.ImgSplit")("Maximum.Size.Images.Label") ' 'NumericUpDown1 ' @@ -168,8 +168,7 @@ Partial Class ImgSplit Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(603, 34) Me.Label5.TabIndex = 14 - Me.Label5.Text = "Do note that, to accommodate a large file in the image, a split image file may be" & _ - " larger than the specified value" + Me.Label5.Text = LocalizationService.ForSection("Designer.ImgSplit")("LargeFile.Note.Message") ' 'CheckBox1 ' @@ -178,7 +177,7 @@ Partial Class ImgSplit Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(129, 17) Me.CheckBox1.TabIndex = 17 - Me.CheckBox1.Text = "Check image integrity" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImgSplit")("Integrity.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'ImageTaskHeader1 @@ -221,7 +220,7 @@ Partial Class ImgSplit Me.Name = "ImgSplit" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Split images" + Me.Text = LocalizationService.ForSection("Designer.ImgSplit")("SplitImages.Label") Me.TableLayoutPanel1.ResumeLayout(False) CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/ImgSplit.vb b/Panels/Img_Ops/ImgSplit.vb index b5bcd3f9f..376fbb097 100644 --- a/Panels/Img_Ops/ImgSplit.vb +++ b/Panels/Img_Ops/ImgSplit.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -16,61 +16,13 @@ Public Class ImgSplit ProgressPanel.SWMSplitTargetFile = TextBox2.Text Else DynaLog.LogMessage("Either no target file has been specified or its directory does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a name and path for the target SWM file and try again. Also, make sure that the target path exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Especifique un nombre y un directorio para el archivo SWM de destino e inténtelo de nuevo. Asegúrese también de que el directorio de destino exista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Veuillez indiquer un nom et un chemin pour le fichier SWM cible et réessayez. Assurez-vous également que le chemin d'accès à la cible existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Especifique um nome e uma localização para o ficheiro SWM de destino e tente novamente. Além disso, certifique-se de que o caminho de destino existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Specificare un nome e un percorso per il file SWM di destinazione e riprovare. Assicurarsi inoltre che il percorso di destinazione esista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("Please specify a name and path for the target SWM file and try again. Also, make sure that the target path exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Especifique un nombre y un directorio para el archivo SWM de destino e inténtelo de nuevo. Asegúrese también de que el directorio de destino exista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Veuillez indiquer un nom et un chemin pour le fichier SWM cible et réessayez. Assurez-vous également que le chemin d'accès à la cible existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Especifique um nome e uma localização para o ficheiro SWM de destino e tente novamente. Além disso, certifique-se de que o caminho de destino existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Specificare un nome e un percorso per il file SWM di destinazione e riprovare. Assicurarsi inoltre che il percorso di destinazione esista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgSplit.Validation")("Name.Required.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.SWMSplitCheckIntegrity = CheckBox1.Checked Else DynaLog.LogMessage("Either no source WIM file has been specified or it does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("Please specify a source WIM file and try again. Also, make sure that it exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("Especifique un archivo WIM de origen e inténtelo de nuevo. Asegúrese también de que el archivo exista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Veuillez indiquer un fichier WIM source et réessayer. Assurez-vous également qu'il existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Especifique um ficheiro WIM de origem e tente novamente. Além disso, certifique-se de que ele existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Specificare un file WIM di origine e riprovare. Assicurarsi inoltre che esista", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("Please specify a source WIM file and try again. Also, make sure that it exists.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("Especifique un archivo WIM de origen e inténtelo de nuevo. Asegúrese también de que el archivo exista.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Veuillez indiquer un fichier WIM source et réessayer. Assurez-vous également qu'il existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Especifique um ficheiro WIM de origem e tente novamente. Além disso, certifique-se de que ele existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Specificare un file WIM di origine e riprovare. Assicurarsi inoltre che esista", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgSplit.Validation")("Source.WIM.Required.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.OperationNum = 20 @@ -86,151 +38,19 @@ Public Class ImgSplit End Sub Private Sub ImgSplit_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Split images" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image to split:" - Label3.Text = "Name and path of the destination split image:" - Label4.Text = "Maximum size of split images (in MB):" - Label5.Text = "Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - CheckBox1.Text = "Check image integrity" - OpenFileDialog1.Title = "Specify the source WIM file to split:" - SaveFileDialog1.Title = "Specify the target location of the split images:" - Case "ESN" - Text = "Dividir imágenes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen de origen a dividir:" - Label3.Text = "Nombre y ruta de la imagen dividida de destino:" - Label4.Text = "Tamaño máximo de imágenes divididas (en MB):" - Label5.Text = "Para acomodar un archivo grande de la imagen, una imagen dividida puede ocupar más tamaño del especificado" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Comprobar integridad de la imagen" - OpenFileDialog1.Title = "Especifique el archivo WIM de origen a dividir:" - SaveFileDialog1.Title = "Especifique la ubicación de destino de las imágenes divididas:" - Case "FRA" - Text = "Diviser les images" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image source à diviser :" - Label3.Text = "Nom et chemin de l'image divisée de destination :" - Label4.Text = "Taille maximale des images fractionnées (en Mo) :" - Label5.Text = "Notez que, pour tenir compte d'un fichier volumineux dans l'image, un fichier d'image divisé peut être plus grand que la valeur spécifiée." - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - OpenFileDialog1.Title = "Spécifiez le fichier WIM source à diviser :" - SaveFileDialog1.Title = "Spécifiez l'emplacement cible des images divisées :" - Case "PTB", "PTG" - Text = "Dividir imagens" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagem de origem a dividir:" - Label3.Text = "Nome e caminho da imagem dividida de destino:" - Label4.Text = "Tamanho máximo das imagens divididas (em MB):" - Label5.Text = "Tenha em atenção que, para acomodar um ficheiro grande na imagem, um ficheiro de imagem dividida pode ser maior do que o valor especificado" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Verificar a integridade da imagem" - OpenFileDialog1.Title = "Especificar o ficheiro WIM de origem a dividir:" - SaveFileDialog1.Title = "Especificar a localização de destino das imagens divididas:" - Case "ITA" - Text = "Dividere le immagini" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Immagine sorgente da dividere:" - Label3.Text = "Nome e percorso dell'immagine di destinazione da dividere:" - Label4.Text = "Dimensione massima delle immagini divise (in MB):" - Label5.Text = "Tenere presente che, per ospitare un file di grandi dimensioni nell'immagine, un file di immagine divisa può essere più grande del valore specificato" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - CheckBox1.Text = "Controlla l'integrità dell'immagine" - OpenFileDialog1.Title = "Specificare il file WIM di origine da dividere:" - SaveFileDialog1.Title = "Specificare la posizione di destinazione delle immagini divise:" - End Select - Case 1 - Text = "Split images" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source image to split:" - Label3.Text = "Name and path of the destination split image:" - Label4.Text = "Maximum size of split images (in MB):" - Label5.Text = "Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - CheckBox1.Text = "Check image integrity" - OpenFileDialog1.Title = "Specify the source WIM file to split:" - SaveFileDialog1.Title = "Specify the target location of the split images:" - Case 2 - Text = "Dividir imágenes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen de origen a dividir:" - Label3.Text = "Nombre y ruta de la imagen dividida de destino:" - Label4.Text = "Tamaño máximo de imágenes divididas (en MB):" - Label5.Text = "Para acomodar un archivo grande de la imagen, una imagen dividida puede ocupar más tamaño del especificado" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Comprobar integridad de la imagen" - OpenFileDialog1.Title = "Especifique el archivo WIM de origen a dividir:" - SaveFileDialog1.Title = "Especifique la ubicación de destino de las imágenes divididas:" - Case 3 - Text = "Diviser les images" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image source à diviser :" - Label3.Text = "Nom et chemin de l'image divisée de destination :" - Label4.Text = "Taille maximale des images fractionnées (en Mo) :" - Label5.Text = "Notez que, pour tenir compte d'un fichier volumineux dans l'image, un fichier d'image divisé peut être plus grand que la valeur spécifiée." - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - OpenFileDialog1.Title = "Spécifiez le fichier WIM source à diviser :" - SaveFileDialog1.Title = "Spécifiez l'emplacement cible des images divisées :" - Case 4 - Text = "Dividir imagens" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagem de origem a dividir:" - Label3.Text = "Nome e caminho da imagem dividida de destino:" - Label4.Text = "Tamanho máximo das imagens divididas (em MB):" - Label5.Text = "Tenha em atenção que, para acomodar um ficheiro grande na imagem, um ficheiro de imagem dividida pode ser maior do que o valor especificado" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - CheckBox1.Text = "Verificar a integridade da imagem" - OpenFileDialog1.Title = "Especificar o ficheiro WIM de origem a dividir:" - SaveFileDialog1.Title = "Especificar a localização de destino das imagens divididas:" - Case 5 - Text = "Dividere le immagini" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Immagine sorgente da dividere:" - Label3.Text = "Nome e percorso dell'immagine di destinazione da dividere:" - Label4.Text = "Dimensione massima delle immagini divise (in MB):" - Label5.Text = "Tenere presente che, per ospitare un file di grandi dimensioni nell'immagine, un file di immagine divisa può essere più grande del valore specificato" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annulla" - CheckBox1.Text = "Controlla l'integrità dell'immagine" - OpenFileDialog1.Title = "Specificare il file WIM di origine da dividere:" - SaveFileDialog1.Title = "Specificare la posizione di destinazione delle immagini divise:" - End Select + Text = LocalizationService.ForSection("ImgSplit")("SplitImages.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ImgSplit").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ImgSplit")("Source.Image.Label") + Label3.Text = LocalizationService.ForSection("ImgSplit")("Name.Path.Destination.Label") + Label4.Text = LocalizationService.ForSection("ImgSplit")("Maximum.Size.Images.Label") + Label5.Text = LocalizationService.ForSection("ImgSplit")("LargeFile.Note.Message") + Button1.Text = LocalizationService.ForSection("ImgSplit")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ImgSplit")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("ImgSplit")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImgSplit")("Cancel.Button") + CheckBox1.Text = LocalizationService.ForSection("ImgSplit")("Integrity.CheckBox") + OpenFileDialog1.Title = LocalizationService.ForSection("ImgSplit")("Source.WIM.File.Title") + SaveFileDialog1.Title = LocalizationService.ForSection("ImgSplit")("Target.Location.Title") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/ImgUMount.Designer.vb b/Panels/Img_Ops/ImgUMount.Designer.vb index 66f0f64ab..656a2f7e7 100644 --- a/Panels/Img_Ops/ImgUMount.Designer.vb +++ b/Panels/Img_Ops/ImgUMount.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgUMount Inherits System.Windows.Forms.Form @@ -68,7 +68,7 @@ Partial Class ImgUMount Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImgUmount")("Ok.Button") ' 'Cancel_Button ' @@ -79,7 +79,7 @@ Partial Class ImgUMount Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImgUmount")("Cancel.Button") ' 'Label2 ' @@ -88,7 +88,7 @@ Partial Class ImgUMount Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(245, 13) Me.Label2.TabIndex = 3 - Me.Label2.Text = "Please specify the options to unmount this image:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImgUmount")("Options.Required.Label") ' 'GroupBox1 ' @@ -103,7 +103,7 @@ Partial Class ImgUMount Me.GroupBox1.Size = New System.Drawing.Size(600, 125) Me.GroupBox1.TabIndex = 4 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Mount directory" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImgUmount")("MountDirectory.Group") ' 'Button1 ' @@ -113,7 +113,7 @@ Partial Class ImgUMount Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 7 - Me.Button1.Text = "Pick..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ImgUmount")("Pick.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -134,7 +134,7 @@ Partial Class ImgUMount Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(117, 13) Me.Label4.TabIndex = 5 - Me.Label4.Text = "Mount directory:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ImgUmount")("MountDirectory.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'RadioButton2 @@ -145,7 +145,7 @@ Partial Class ImgUMount Me.RadioButton2.Size = New System.Drawing.Size(150, 17) Me.RadioButton2.TabIndex = 4 Me.RadioButton2.TabStop = True - Me.RadioButton2.Text = "is located somewhere else" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.ImgUmount")("LocatedSomewhere.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -156,7 +156,7 @@ Partial Class ImgUMount Me.RadioButton1.Size = New System.Drawing.Size(134, 17) Me.RadioButton1.TabIndex = 4 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "is loaded in the project" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.ImgUmount")("LoadedProject.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'Label3 @@ -166,7 +166,7 @@ Partial Class ImgUMount Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(108, 13) Me.Label3.TabIndex = 3 - Me.Label3.Text = "The mount directory:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImgUmount")("Mount.Dir.Label") ' 'GroupBox2 ' @@ -179,17 +179,17 @@ Partial Class ImgUMount Me.GroupBox2.Size = New System.Drawing.Size(600, 179) Me.GroupBox2.TabIndex = 4 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Additional options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.ImgUmount")("Additional.Options.Group") ' 'ComboBox1 ' Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"Save changes and unmount", "Discard changes and unmount"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.ImgUmount")("Save.Changes.Unmount.Item"), LocalizationService.ForSection("Designer.ImgUmount")("Discard.Changes.Unmount.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(169, 34) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(403, 21) Me.ComboBox1.TabIndex = 4 - Me.ComboBox1.Text = "Save changes and unmount" + Me.ComboBox1.Text = LocalizationService.ForSection("Designer.ImgUmount")("Save.Changes.Unmount.Item") ' 'CheckBox2 ' @@ -198,7 +198,7 @@ Partial Class ImgUMount Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(189, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Append changes to another index" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.ImgUmount")("Append.Changes.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -208,7 +208,7 @@ Partial Class ImgUMount Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(129, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Check image integrity" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ImgUmount")("Integrity.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label7 @@ -220,12 +220,12 @@ Partial Class ImgUMount Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(144, 13) Me.Label7.TabIndex = 3 - Me.Label7.Text = "Unmount operation:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ImgUmount")("UnmountOperation.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Please specify a mount directory:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.ImgUmount")("MountDir.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'ImageTaskHeader1 @@ -261,7 +261,7 @@ Partial Class ImgUMount Me.Name = "ImgUMount" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Unmount an image" + Me.Text = LocalizationService.ForSection("Designer.ImgUmount")("UnmountImage.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/ImgUMount.vb b/Panels/Img_Ops/ImgUMount.vb index 89b83f4b0..00d93a174 100644 --- a/Panels/Img_Ops/ImgUMount.vb +++ b/Panels/Img_Ops/ImgUMount.vb @@ -1,11 +1,11 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Dism Public Class ImgUMount - Dim UMountOperations() As String = New String(1) {"Save changes and unmount", "Discard changes and unmount"} + Dim UMountOperations() As String = New String(1) {"", ""} Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click DynaLog.LogMessage("Disposing of progress panel if not disposed of previously...") @@ -29,60 +29,12 @@ Public Class ImgUMount ProgressPanel.RandomMountDir = TextBox1.Text Else DynaLog.LogMessage("No image is mounted there. This is not a valid mount directory.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The specified directory isn't a valid mount directory.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("El directorio especificado no es un directorio de montaje válido.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Le répertoire spécifié n'est pas un répertoire de montage valide.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("O diretório especificado não é um diretório de montagem válido.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("La directory specificata non è una directory di montaggio valida.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("The specified directory isn't a valid mount directory.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("El directorio especificado no es un directorio de montaje válido.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Le répertoire spécifié n'est pas un répertoire de montage valide.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("O diretório especificado não é um diretório de montagem válido.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("La directory specificata non è una directory di montaggio valida.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgUMount.Validation")("Dir.Invalid.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If Else DynaLog.LogMessage("The provided mount directory does not exist.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The mount directory doesn't exist.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("El directorio de montaje no existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Le répertoire de montage n'existe pas.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("O diretório de montagem não existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("La directory di montaggio non esiste", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("The mount directory doesn't exist.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("El directorio de montaje no existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Le répertoire de montage n'existe pas.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("O diretório de montagem não existe.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("La directory di montaggio non esiste", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ImgUMount.Validation")("Dir.Missing.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If End If @@ -119,201 +71,24 @@ Public Class ImgUMount Private Sub ImgUMount_Load(sender As Object, e As EventArgs) Handles MyBase.Load ComboBox1.SelectedText = "" ComboBox1.Items.Clear() - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Unmount an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please specify the options to unmount this image:" - Label3.Text = "The mount directory:" - Label4.Text = "Mount directory:" - Label7.Text = "Unmount operation:" - CheckBox1.Text = "Check image integrity" - CheckBox2.Text = "Append changes to another index" - Button1.Text = "Pick..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - FolderBrowserDialog1.Description = "Please specify a mount directory:" - RadioButton1.Text = "is loaded in the project" - RadioButton2.Text = "is located somewhere else" - UMountOperations(0) = "Save changes and unmount" - UMountOperations(1) = "Discard changes and unmount" - GroupBox1.Text = "Mount directory" - GroupBox2.Text = "Additional options" - Case "ESN" - Text = "Desmontar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique las opciones para desmontar esta imagen:" - Label3.Text = "El directorio de montaje:" - Label4.Text = "Directorio de montaje:" - Label7.Text = "Operación de desmontaje:" - CheckBox1.Text = "Comprobar integridad de la imagen" - CheckBox2.Text = "Anexar los cambios en otro índice" - Button1.Text = "Escoger..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Especifique un directorio de montaje:" - RadioButton1.Text = "está cargado en el proyecto" - RadioButton2.Text = "se ubica en otro lugar" - UMountOperations(0) = "Guardar cambios y desmontar" - UMountOperations(1) = "Descartar cambios y desmontar" - GroupBox1.Text = "Directorio de montaje" - GroupBox2.Text = "Opciones adicionales" - Case "FRA" - Text = "Démonter une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez spécifier les options pour démonter cette image :" - Label3.Text = "Le répertoire de montage :" - Label4.Text = "Répertoire de montage :" - Label7.Text = "Opération de démontage :" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - CheckBox2.Text = "Ajouter des modifications à un autre index" - Button1.Text = "Choisir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - FolderBrowserDialog1.Description = "Veuillez indiquer un répertoire de montage :" - RadioButton1.Text = "est chargé dans le projet" - RadioButton2.Text = "est situé ailleurs" - UMountOperations(0) = "Sauvegarder les modifications et démonter" - UMountOperations(1) = "Annuler les modifications et démonter" - GroupBox1.Text = "Répertoire de montage" - GroupBox2.Text = "Paramètres supplémentaires" - Case "PTB", "PTG" - Text = "Desmontar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por favor, especifique as opções para desmontar esta imagem:" - Label3.Text = "O diretório de montagem:" - Label4.Text = "Diretório de montagem:" - Label7.Text = "Operação de desmontagem:" - CheckBox1.Text = "Verificar a integridade da imagem" - CheckBox2.Text = "Anexar alterações a outro índice" - Button1.Text = "Escolher..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Por favor, especifique um diretório de montagem:" - RadioButton1.Text = "está carregado no projeto" - RadioButton2.Text = "está localizado noutro local" - UMountOperations(0) = "Guardar alterações e desmontar" - UMountOperations(1) = "Descartar alterações e desmontar" - GroupBox1.Text = "Diretório de montagem" - GroupBox2.Text = "Opções adicionais" - Case "ITA" - Text = "Smontare un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare le opzioni per smontare questa immagine:" - Label3.Text = "La directory di montaggio:" - Label4.Text = "Directory di montaggio:" - Label7.Text = "Operazione di smontaggio:" - CheckBox1.Text = "Controlla l'integrità dell'immagine" - CheckBox2.Text = "Applica le modifiche a un altro indice" - Button1.Text = "Scegli..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - FolderBrowserDialog1.Description = "Specificare una directory di montaggio:" - RadioButton1.Text = "è caricata nel progetto" - RadioButton2.Text = "si trova da qualche altra parte" - UMountOperations(0) = "Salvare le modifiche e smontare" - UMountOperations(1) = "Scartare le modifiche e smontare" - GroupBox1.Text = "Montare la directory" - GroupBox2.Text = "Opzioni aggiuntive" - End Select - Case 1 - Text = "Unmount an image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please specify the options to unmount this image:" - Label3.Text = "The mount directory:" - Label4.Text = "Mount directory:" - Label7.Text = "Unmount operation:" - CheckBox1.Text = "Check image integrity" - CheckBox2.Text = "Append changes to another index" - Button1.Text = "Pick..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - FolderBrowserDialog1.Description = "Please specify a mount directory:" - RadioButton1.Text = "is loaded in the project" - RadioButton2.Text = "is located somewhere else" - UMountOperations(0) = "Save changes and unmount" - UMountOperations(1) = "Discard changes and unmount" - GroupBox1.Text = "Mount directory" - GroupBox2.Text = "Additional options" - Case 2 - Text = "Desmontar una imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique las opciones para desmontar esta imagen:" - Label3.Text = "El directorio de montaje:" - Label4.Text = "Directorio de montaje:" - Label7.Text = "Operación de desmontaje:" - CheckBox1.Text = "Comprobar integridad de la imagen" - CheckBox2.Text = "Anexar los cambios en otro índice" - Button1.Text = "Escoger..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Especifique un directorio de montaje:" - RadioButton1.Text = "está cargado en el proyecto" - RadioButton2.Text = "se ubica en otro lugar" - UMountOperations(0) = "Guardar cambios y desmontar" - UMountOperations(1) = "Descartar cambios y desmontar" - GroupBox1.Text = "Directorio de montaje" - GroupBox2.Text = "Opciones adicionales" - Case 3 - Text = "Démonter une image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez spécifier les options pour démonter cette image :" - Label3.Text = "Le répertoire de montage :" - Label4.Text = "Répertoire de montage :" - Label7.Text = "Opération de démontage :" - CheckBox1.Text = "Vérifier l'intégrité de l'image" - CheckBox2.Text = "Ajouter des modifications à un autre index" - Button1.Text = "Choisir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - FolderBrowserDialog1.Description = "Veuillez indiquer un répertoire de montage :" - RadioButton1.Text = "est chargé dans le projet" - RadioButton2.Text = "est situé ailleurs" - UMountOperations(0) = "Sauvegarder les modifications et démonter" - UMountOperations(1) = "Annuler les modifications et démonter" - GroupBox1.Text = "Répertoire de montage" - GroupBox2.Text = "Paramètres supplémentaires" - Case 4 - Text = "Desmontar uma imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por favor, especifique as opções para desmontar esta imagem:" - Label3.Text = "O diretório de montagem:" - Label4.Text = "Diretório de montagem:" - Label7.Text = "Operação de desmontagem:" - CheckBox1.Text = "Verificar a integridade da imagem" - CheckBox2.Text = "Anexar alterações a outro índice" - Button1.Text = "Escolher..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - FolderBrowserDialog1.Description = "Por favor, especifique um diretório de montagem:" - RadioButton1.Text = "está carregado no projeto" - RadioButton2.Text = "está localizado noutro local" - UMountOperations(0) = "Guardar alterações e desmontar" - UMountOperations(1) = "Descartar alterações e desmontar" - GroupBox1.Text = "Diretório de montagem" - GroupBox2.Text = "Opções adicionais" - Case 5 - Text = "Smontare un'immagine" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare le opzioni per smontare questa immagine:" - Label3.Text = "La directory di montaggio:" - Label4.Text = "Directory di montaggio:" - Label7.Text = "Operazione di smontaggio:" - CheckBox1.Text = "Controlla l'integrità dell'immagine" - CheckBox2.Text = "Applica le modifiche a un altro indice" - Button1.Text = "Scegli..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - FolderBrowserDialog1.Description = "Specificare una directory di montaggio:" - RadioButton1.Text = "è caricata nel progetto" - RadioButton2.Text = "si trova da qualche altra parte" - UMountOperations(0) = "Salvare le modifiche e smontare" - UMountOperations(1) = "Scartare le modifiche e smontare" - GroupBox1.Text = "Montare la directory" - GroupBox2.Text = "Opzioni aggiuntive" - End Select + Text = LocalizationService.ForSection("ImgUMount")("UnmountImage.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("ImgUMount")("Options.Required.Label") + Label3.Text = LocalizationService.ForSection("ImgUMount")("Dir.Label") + Label4.Text = LocalizationService.ForSection("ImgUMount")("MountDirectory.Label") + Label7.Text = LocalizationService.ForSection("ImgUMount")("UnmountOperation.Label") + CheckBox1.Text = LocalizationService.ForSection("ImgUMount")("Integrity.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("ImgUMount")("Append.Changes.CheckBox") + Button1.Text = LocalizationService.ForSection("ImgUMount")("Pick.Button") + OK_Button.Text = LocalizationService.ForSection("ImgUMount")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImgUMount")("Cancel.Button") + FolderBrowserDialog1.Description = LocalizationService.ForSection("ImgUMount")("Dir.Required.Description") + RadioButton1.Text = LocalizationService.ForSection("ImgUMount")("LoadedProject.RadioButton") + RadioButton2.Text = LocalizationService.ForSection("ImgUMount")("LocatedSomewhere.RadioButton") + UMountOperations(0) = LocalizationService.ForSection("ImgUMount")("Save.Changes.Unmount.Item") + UMountOperations(1) = LocalizationService.ForSection("ImgUMount")("Discard.Changes.Unmount.Item") + GroupBox1.Text = LocalizationService.ForSection("ImgUMount")("MountDirectory.Group") + GroupBox2.Text = LocalizationService.ForSection("ImgUMount")("Additional.Options.Group") ComboBox1.Items.AddRange(UMountOperations) ComboBox1.SelectedIndex = 0 ImageTaskHeader1.SetColors() diff --git a/Panels/Img_Ops/Langs/SetLayeredDriver.Designer.vb b/Panels/Img_Ops/Langs/SetLayeredDriver.Designer.vb index dc5a67380..835e6e607 100644 --- a/Panels/Img_Ops/Langs/SetLayeredDriver.Designer.vb +++ b/Panels/Img_Ops/Langs/SetLayeredDriver.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SetLayeredDriverDialog Inherits System.Windows.Forms.Form @@ -61,7 +61,7 @@ Partial Class SetLayeredDriverDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.SetLayeredDriver")("Ok.Button") ' 'Cancel_Button ' @@ -72,7 +72,7 @@ Partial Class SetLayeredDriverDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.SetLayeredDriver")("Cancel.Button") ' 'Label2 ' @@ -83,7 +83,7 @@ Partial Class SetLayeredDriverDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(600, 32) Me.Label2.TabIndex = 9 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.SetLayeredDriver")("Intro.Message") ' 'Label3 ' @@ -93,7 +93,7 @@ Partial Class SetLayeredDriverDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(144, 38) Me.Label3.TabIndex = 10 - Me.Label3.Text = "Current keyboard layered driver:" + Me.Label3.Text = LocalizationService.ForSection("Designer.SetLayeredDriver")("CurrentDriver.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label4 @@ -112,7 +112,7 @@ Partial Class SetLayeredDriverDialog Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(196, 13) Me.Label5.TabIndex = 12 - Me.Label5.Text = "New keyboard layered driver:" + Me.Label5.Text = LocalizationService.ForSection("Designer.SetLayeredDriver")("NewDriver.Label") ' 'ComboBox1 ' @@ -130,7 +130,7 @@ Partial Class SetLayeredDriverDialog Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(448, 13) Me.Label6.TabIndex = 12 - Me.Label6.Text = "This driver has already been set" + Me.Label6.Text = LocalizationService.ForSection("Designer.SetLayeredDriver")("Driver.Already.Label") Me.Label6.Visible = False ' 'TableLayoutPanel2 @@ -182,7 +182,7 @@ Partial Class SetLayeredDriverDialog Me.Name = "SetLayeredDriverDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Set keyboard layered driver" + Me.Text = LocalizationService.ForSection("Designer.SetLayeredDriver")("Title") Me.TableLayoutPanel1.ResumeLayout(False) Me.TableLayoutPanel2.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/Langs/SetLayeredDriver.resx b/Panels/Img_Ops/Langs/SetLayeredDriver.resx index 1ccc139a6..7905453d9 100644 --- a/Panels/Img_Ops/Langs/SetLayeredDriver.resx +++ b/Panels/Img_Ops/Langs/SetLayeredDriver.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,7 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Img_Ops/Langs/SetLayeredDriver.vb b/Panels/Img_Ops/Langs/SetLayeredDriver.vb index b4e37aafc..e79831947 100644 --- a/Panels/Img_Ops/Langs/SetLayeredDriver.vb +++ b/Panels/Img_Ops/Langs/SetLayeredDriver.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports DISMTools.Elements Public Class SetLayeredDriverDialog @@ -26,101 +26,14 @@ Public Class SetLayeredDriverDialog ' Set to default value CurrentKeyboardDriver = KeyboardDrivers.LayeredKeyboardDriver.Unknown ' Color modes/language stuff go here - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Set keyboard layered driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK" - Label3.Text = "Current keyboard layered driver:" - Label5.Text = "New keyboard layered driver:" - Label6.Text = "This driver has already been set" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Establecer controlador de teclado superpuesto" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Esta acción le permitirá establecer un controlador de teclado superpuesto para teclados japoneses y coreanos, debido a que algunos usuarios poseen teclados con teclas adicionales. Simplemente especifique el nuevo controlador superpuesto de la lista y haga clic en Aceptar" - Label3.Text = "Controlador de teclado superpuesto actual:" - Label5.Text = "Nuevo controlador de teclado superpuesto:" - Label6.Text = "Este controlador ya se ha establecido" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Définir le pilote du clavier en couches" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Cette action vous permet de définir un pilote de clavier superposé pour les claviers japonais et coréens, car certains utilisateurs ont des claviers avec des touches supplémentaires. Il vous suffit de spécifier le nouveau pilote de clavier dans la liste ci-dessous et de cliquer sur OK" - Label3.Text = "Pilote de clavier actuel :" - Label5.Text = "Nouveau pilote de clavier superposé :" - Label6.Text = "Ce pilote a déjà été défini" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Configurar controlador de teclado em camadas" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Esta ação permite-lhe configurar um controlador de teclado em camadas para teclados japoneses e coreanos, uma vez que alguns utilizadores têm teclados com teclas adicionais. Basta especificar o novo controlador da lista abaixo e clicar em OK" - Label3.Text = "Controlador atual do teclado em camadas:" - Label5.Text = "Novo controlador de teclado em camadas:" - Label6.Text = "Este controlador já foi configurado" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Imposta driver a strati per tastiera" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Questa azione consente di impostare un driver a strati per le tastiere giapponesi e coreane, poiché alcuni utenti dispongono di tastiere con tasti aggiuntivi. È sufficiente specificare il nuovo driver stratificato dall'elenco sottostante e fare clic su OK" - Label3.Text = "Driver a strati per la tastiera attuale:" - Label5.Text = "Nuovo driver a strati per tastiera:" - Label6.Text = "Questo driver è già stato impostato" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Text = "Set keyboard layered driver" - ImageTaskHeader1.ItemText = Text - Label2.Text = "This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK" - Label3.Text = "Current keyboard layered driver:" - Label5.Text = "New keyboard layered driver:" - Label6.Text = "This driver has already been set" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Establecer controlador de teclado superpuesto" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Esta acción le permitirá establecer un controlador de teclado superpuesto para teclados japoneses y coreanos, debido a que algunos usuarios poseen teclados con teclas adicionales. Simplemente especifique el nuevo controlador superpuesto de la lista y haga clic en Aceptar" - Label3.Text = "Controlador de teclado superpuesto actual:" - Label5.Text = "Nuevo controlador de teclado superpuesto:" - Label6.Text = "Este controlador ya se ha establecido" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Définir le pilote du clavier en couches" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Cette action vous permet de définir un pilote de clavier superposé pour les claviers japonais et coréens, car certains utilisateurs ont des claviers avec des touches supplémentaires. Il vous suffit de spécifier le nouveau pilote de clavier dans la liste ci-dessous et de cliquer sur OK" - Label3.Text = "Pilote de clavier actuel :" - Label5.Text = "Nouveau pilote de clavier superposé :" - Label6.Text = "Ce pilote a déjà été défini" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Configurar controlador de teclado em camadas" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Esta ação permite-lhe configurar um controlador de teclado em camadas para teclados japoneses e coreanos, uma vez que alguns utilizadores têm teclados com teclas adicionais. Basta especificar o novo controlador da lista abaixo e clicar em OK" - Label3.Text = "Controlador atual do teclado em camadas:" - Label5.Text = "Novo controlador de teclado em camadas:" - Label6.Text = "Este controlador já foi configurado" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Imposta driver a strati per tastiera" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Questa azione consente di impostare un driver a strati per le tastiere giapponesi e coreane, poiché alcuni utenti dispongono di tastiere con tasti aggiuntivi. È sufficiente specificare il nuovo driver stratificato dall'elenco sottostante e fare clic su OK" - Label3.Text = "Driver a strati per la tastiera attuale:" - Label5.Text = "Nuovo driver a strati per tastiera:" - Label6.Text = "Questo driver è già stato impostato" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Text = LocalizationService.ForSection("LayeredDriver.Set")("Title") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("LayeredDriver.Set").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("LayeredDriver.Set")("Intro.Message") + Label3.Text = LocalizationService.ForSection("LayeredDriver.Set")("CurrentDriver.Label") + Label5.Text = LocalizationService.ForSection("LayeredDriver.Set")("NewDriver.Label") + Label6.Text = LocalizationService.ForSection("LayeredDriver.Set")("Driver.Already.Label") + OK_Button.Text = LocalizationService.ForSection("LayeredDriver.Set")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("LayeredDriver.Set")("Cancel.Button") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -136,25 +49,25 @@ Public Class SetLayeredDriverDialog CurrentKeyboardDriver = KeyboardDrivers.GetKeyboardDriver(MainForm.MountDir, MainForm.OnlineManagement) Select Case CurrentKeyboardDriver Case KeyboardDrivers.LayeredKeyboardDriver.Unknown - Label4.Text = "Unknown/Not installed" + Label4.Text = LocalizationService.ForSection("SetLayeredDriver")("UnknownInstalled.Label") ComboBox1.SelectedIndex = 0 Case KeyboardDrivers.LayeredKeyboardDriver.PCATKey - Label4.Text = "PC/AT Enhanced Keyboard (101/102-Key)" + Label4.Text = LocalizationService.ForSection("SetLayeredDriver")("PC.Enhanced.Label") ComboBox1.SelectedIndex = 1 Case KeyboardDrivers.LayeredKeyboardDriver.K_PCATKeyT1 - Label4.Text = "Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 1)" + Label4.Text = LocalizationService.ForSection("SetLayeredDriver.KoreanPC")("Keyboard101.Type1.Label") ComboBox1.SelectedIndex = 0 Case KeyboardDrivers.LayeredKeyboardDriver.K_PCATKeyT2 - Label4.Text = "Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 2)" + Label4.Text = LocalizationService.ForSection("SetLayeredDriver")("DriverKorean.Label") ComboBox1.SelectedIndex = 0 Case KeyboardDrivers.LayeredKeyboardDriver.K_PCATKeyT3 - Label4.Text = "Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 3)" + Label4.Text = LocalizationService.ForSection("SetLayeredDriver.KoreanPC")("Keyboard101.Type3.Label") ComboBox1.SelectedIndex = 0 Case KeyboardDrivers.LayeredKeyboardDriver.K_103106Key - Label4.Text = "Korean Keyboard (103/106 Key)" + Label4.Text = LocalizationService.ForSection("SetLayeredDriver")("Korean.Keyboard.Key.Item") ComboBox1.SelectedIndex = 0 Case KeyboardDrivers.LayeredKeyboardDriver.J_106109Key - Label4.Text = "Japanese Keyboard (106/109 Key)" + Label4.Text = LocalizationService.ForSection("SetLayeredDriver")("Japanese.Keyboard.Key.Item") ComboBox1.SelectedIndex = 0 End Select ' Do checks at startup diff --git a/Panels/Img_Ops/Merger/ImgSwmToWim.Designer.vb b/Panels/Img_Ops/Merger/ImgSwmToWim.Designer.vb index 8f5a334b8..f2e3d5253 100644 --- a/Panels/Img_Ops/Merger/ImgSwmToWim.Designer.vb +++ b/Panels/Img_Ops/Merger/ImgSwmToWim.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgSwmToWim Inherits System.Windows.Forms.Form @@ -76,7 +76,7 @@ Partial Class ImgSwmToWim Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.Img.SWM")("Ok.Button") ' 'Cancel_Button ' @@ -87,17 +87,17 @@ Partial Class ImgSwmToWim Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.Img.SWM")("Cancel.Button") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Split WIM files|*.swm" - Me.OpenFileDialog1.Title = "Specify the source SWM file to merge" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.Img.SWM")("Split.WIM.Files.Filter") + Me.OpenFileDialog1.Title = LocalizationService.ForSection("Designer.Img.SWM")("Source.Swmfile.Title") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "WIM files|*.wim" - Me.SaveFileDialog1.Title = "Specify the destination WIM file to merge the source SWM files to" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.Img.SWM")("WIM.Files.Filter") + Me.SaveFileDialog1.Title = LocalizationService.ForSection("Designer.Img.SWM")("Dest.WIM.File.Title") ' 'Label2 ' @@ -106,7 +106,7 @@ Partial Class ImgSwmToWim Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(88, 13) Me.Label2.TabIndex = 4 - Me.Label2.Text = "Source SWM file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.Img.SWM")("SourceSwmfile.Label") ' 'TextBox1 ' @@ -125,7 +125,7 @@ Partial Class ImgSwmToWim Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 6 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.Img.SWM")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label4 @@ -135,7 +135,7 @@ Partial Class ImgSwmToWim Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(107, 13) Me.Label4.TabIndex = 4 - Me.Label4.Text = "Destination WIM file:" + Me.Label4.Text = LocalizationService.ForSection("Designer.Img.SWM")("Destination.WIM.File.Label") ' 'TextBox2 ' @@ -154,7 +154,7 @@ Partial Class ImgSwmToWim Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 6 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.Img.SWM")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label3 @@ -165,8 +165,7 @@ Partial Class ImgSwmToWim Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(727, 47) Me.Label3.TabIndex = 4 - Me.Label3.Text = "NOTE: when specifying the SWM file, choose the first file. DISMTools will take ca" & _ - "re of additional SWM files stored in that directory." + Me.Label3.Text = LocalizationService.ForSection("Designer.Img.SWM")("Notewhen.Specifying.Message") ' 'LinkLabel1 ' @@ -179,7 +178,7 @@ Partial Class ImgSwmToWim Me.LinkLabel1.Size = New System.Drawing.Size(94, 13) Me.LinkLabel1.TabIndex = 7 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Learn how to do it" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.Img.SWM")("LearnHow.Link") ' 'GroupBox1 ' @@ -194,7 +193,7 @@ Partial Class ImgSwmToWim Me.GroupBox1.Size = New System.Drawing.Size(760, 126) Me.GroupBox1.TabIndex = 8 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Source" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.Img.SWM")("Source.Group") ' 'GroupBox2 ' @@ -208,7 +207,7 @@ Partial Class ImgSwmToWim Me.GroupBox2.Size = New System.Drawing.Size(760, 230) Me.GroupBox2.TabIndex = 9 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.Img.SWM")("Options.Group") ' 'ListView1 ' @@ -224,22 +223,22 @@ Partial Class ImgSwmToWim ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Index" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.Img.SWM")("Index.Column") Me.ColumnHeader1.Width = 44 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Image name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.Img.SWM")("ImageName.Column") Me.ColumnHeader2.Width = 256 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Image description" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.Img.SWM")("ImageDescription.Column") Me.ColumnHeader3.Width = 256 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Image version" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.Img.SWM")("ImageVersion.Column") Me.ColumnHeader4.Width = 128 ' 'NumericUpDown1 @@ -258,7 +257,7 @@ Partial Class ImgSwmToWim Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(39, 13) Me.Label5.TabIndex = 5 - Me.Label5.Text = "Index:" + Me.Label5.Text = LocalizationService.ForSection("Designer.Img.SWM")("Index.Label") ' 'GroupBox3 ' @@ -272,7 +271,7 @@ Partial Class ImgSwmToWim Me.GroupBox3.Size = New System.Drawing.Size(760, 92) Me.GroupBox3.TabIndex = 10 Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Destination" + Me.GroupBox3.Text = LocalizationService.ForSection("Designer.Img.SWM")("Destination.Group") ' 'ImageTaskHeader1 ' @@ -308,7 +307,7 @@ Partial Class ImgSwmToWim Me.Name = "ImgSwmToWim" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Merge SWM files" + Me.Text = LocalizationService.ForSection("Designer.Img.SWM")("MergeSwmfiles.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/Merger/ImgSwmToWim.vb b/Panels/Img_Ops/Merger/ImgSwmToWim.vb index 68bf3d61f..d51118ec2 100644 --- a/Panels/Img_Ops/Merger/ImgSwmToWim.vb +++ b/Panels/Img_Ops/Merger/ImgSwmToWim.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.Dism Imports System.Threading @@ -41,191 +41,23 @@ Public Class ImgSwmToWim End Sub Private Sub ImgSwmToWim_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Merge SWM files" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source SWM file:" - Label3.Text = "NOTE: when specifying the SWM file, choose the first file. DISMTools will take care of additional SWM files stored in that directory." - Label4.Text = "Destination WIM file:" - Label5.Text = "Index:" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - LinkLabel1.Text = "Learn how to do it" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView1.Columns(2).Text = "Image description" - ListView1.Columns(3).Text = "Image version" - OpenFileDialog1.Title = "Specify the source SWM file to merge" - SaveFileDialog1.Title = "Specify the destination WIM file to merge the source SWM files to" - Case "ESN" - Text = "Combinar archivos SWM" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo SWM de origen:" - Label3.Text = "NOTA: al especificar el archivo SWM, escoja el primer archivo. DISMTools se encargará de los archivos SWM adicionales en ese directorio." - Label4.Text = "Archivo WIM de destino:" - Label5.Text = "Índice:" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - LinkLabel1.Text = "Aprenda cómo hacerlo" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView1.Columns(2).Text = "Descripción de imagen" - ListView1.Columns(3).Text = "Versión de imagen" - OpenFileDialog1.Title = "Especifique el archivo SWM de origen a combinar" - SaveFileDialog1.Title = "Especifique el archivo WIM de destino al que combinar los archivos SWM" - Case "FRA" - Text = "Fusionner des fichiers SWM" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier SWM source :" - Label3.Text = "NOTE : lorsque vous spécifiez le fichier SWM, choisissez le premier fichier. DISMTools s'occupera des fichiers SWM supplémentaires stockés dans ce répertoire." - Label4.Text = "Fichier WIM de destination :" - Label5.Text = "Index :" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - LinkLabel1.Text = "Apprendre à le faire" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView1.Columns(2).Text = "Description de l'image" - ListView1.Columns(3).Text = "Version de l'image" - OpenFileDialog1.Title = "Spécifier le fichier SWM source à fusionner" - SaveFileDialog1.Title = "Spécifier le fichier WIM de destination dans lequel fusionner les fichiers SWM sources" - Case "PTB", "PTG" - Text = "Combinar ficheiros SWM" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro SWM de origem:" - Label3.Text = "NOTA: ao especificar o arquivo SWM, escolha o primeiro arquivo. DISMTools cuidará dos arquivos SWM adicionais armazenados nesse diretório." - Label4.Text = "Ficheiro WIM de destino:" - Label5.Text = "Índice:" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - LinkLabel1.Text = "Saiba como o fazer" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView1.Columns(2).Text = "Descrição da imagem" - ListView1.Columns(3).Text = "Versão da imagem" - OpenFileDialog1.Title = "Especificar o ficheiro SWM de origem a combinar" - SaveFileDialog1.Title = "Especificar o ficheiro WIM de destino para combinar os ficheiros SWM de origem" - Case "ITA" - Text = "Unire i file SWM" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File SWM di origine:" - Label3.Text = "NOTA: quando si specifica il file SWM, scegliere il primo file. DISMTools si occuperà dei file SWM aggiuntivi memorizzati in quella directory." - Label4.Text = "File WIM di destinazione:" - Label5.Text = "Indice:" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - LinkLabel1.Text = "Impara come si fa" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView1.Columns(2).Text = "Descrizione dell'immagine" - ListView1.Columns(3).Text = "Versione dell'immagine" - OpenFileDialog1.Title = "Specificare il file SWM di origine da unire" - SaveFileDialog1.Title = "Specificare il file WIM di destinazione in cui unire i file SWM di origine" - End Select - Case 1 - Text = "Merge SWM files" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source SWM file:" - Label3.Text = "NOTE: when specifying the SWM file, choose the first file. DISMTools will take care of additional SWM files stored in that directory." - Label4.Text = "Destination WIM file:" - Label5.Text = "Index:" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - LinkLabel1.Text = "Learn how to do it" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Image name" - ListView1.Columns(2).Text = "Image description" - ListView1.Columns(3).Text = "Image version" - OpenFileDialog1.Title = "Specify the source SWM file to merge" - SaveFileDialog1.Title = "Specify the destination WIM file to merge the source SWM files to" - Case 2 - Text = "Combinar archivos SWM" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo SWM de origen:" - Label3.Text = "NOTA: al especificar el archivo SWM, escoja el primer archivo. DISMTools se encargará de los archivos SWM adicionales en ese directorio." - Label4.Text = "Archivo WIM de destino:" - Label5.Text = "Índice:" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - LinkLabel1.Text = "Aprenda cómo hacerlo" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nombre de imagen" - ListView1.Columns(2).Text = "Descripción de imagen" - ListView1.Columns(3).Text = "Versión de imagen" - OpenFileDialog1.Title = "Especifique el archivo SWM de origen a combinar" - SaveFileDialog1.Title = "Especifique el archivo WIM de destino al que combinar los archivos SWM" - Case 3 - Text = "Fusionner des fichiers SWM" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier SWM source :" - Label3.Text = "NOTE : lorsque vous spécifiez le fichier SWM, choisissez le premier fichier. DISMTools s'occupera des fichiers SWM supplémentaires stockés dans ce répertoire." - Label4.Text = "Fichier WIM de destination :" - Label5.Text = "Index :" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - LinkLabel1.Text = "Apprendre à le faire" - ListView1.Columns(0).Text = "Index" - ListView1.Columns(1).Text = "Nom de l'image" - ListView1.Columns(2).Text = "Description de l'image" - ListView1.Columns(3).Text = "Version de l'image" - OpenFileDialog1.Title = "Spécifier le fichier SWM source à fusionner" - SaveFileDialog1.Title = "Spécifier le fichier WIM de destination dans lequel fusionner les fichiers SWM sources" - Case 4 - Text = "Combinar ficheiros SWM" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro SWM de origem:" - Label3.Text = "NOTA: ao especificar o arquivo SWM, escolha o primeiro arquivo. DISMTools cuidará dos arquivos SWM adicionais armazenados nesse diretório." - Label4.Text = "Ficheiro WIM de destino:" - Label5.Text = "Índice:" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - LinkLabel1.Text = "Saiba como o fazer" - ListView1.Columns(0).Text = "Índice" - ListView1.Columns(1).Text = "Nome da imagem" - ListView1.Columns(2).Text = "Descrição da imagem" - ListView1.Columns(3).Text = "Versão da imagem" - OpenFileDialog1.Title = "Especificar o ficheiro SWM de origem a combinar" - SaveFileDialog1.Title = "Especificar o ficheiro WIM de destino para combinar os ficheiros SWM de origem" - Case 5 - Text = "Unire i file SWM" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File SWM di origine:" - Label3.Text = "NOTA: quando si specifica il file SWM, scegliere il primo file. DISMTools si occuperà dei file SWM aggiuntivi memorizzati in quella directory." - Label4.Text = "File WIM di destinazione:" - Label5.Text = "Indice:" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - LinkLabel1.Text = "Impara come si fa" - ListView1.Columns(0).Text = "Indice" - ListView1.Columns(1).Text = "Nome dell'immagine" - ListView1.Columns(2).Text = "Descrizione dell'immagine" - ListView1.Columns(3).Text = "Versione dell'immagine" - OpenFileDialog1.Title = "Specificare il file SWM di origine da unire" - SaveFileDialog1.Title = "Specificare il file WIM di destinazione in cui unire i file SWM di origine" - End Select + Text = LocalizationService.ForSection("Img.Swm")("MergeSwmfiles.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("Img.Swm").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("Img.Swm")("SourceSwmfile.Label") + Label3.Text = LocalizationService.ForSection("Img.Swm")("Notewhen.Specifying.Message") + Label4.Text = LocalizationService.ForSection("Img.Swm")("Destination.WIM.File.Label") + Label5.Text = LocalizationService.ForSection("Img.Swm")("Index.Label") + Button1.Text = LocalizationService.ForSection("Img.Swm")("Browse.Button") + Button2.Text = LocalizationService.ForSection("Img.Swm")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("Img.Swm")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("Img.Swm")("Cancel.Button") + LinkLabel1.Text = LocalizationService.ForSection("Img.Swm")("LearnHow.Link") + ListView1.Columns(0).Text = LocalizationService.ForSection("Img.Swm")("Index.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("Img.Swm")("ImageName.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("Img.Swm")("ImageDescription.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("Img.Swm")("ImageVersion.Column") + OpenFileDialog1.Title = LocalizationService.ForSection("Img.Swm")("Source.Swmfile.Title") + SaveFileDialog1.Title = LocalizationService.ForSection("Img.Swm")("Dest.WIM.File.Title") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -271,7 +103,7 @@ Public Class ImgSwmToWim ListView1.Items.AddRange(imgInfoCollection.Select(Function(imgInfo) New ListViewItem(New String() {imgInfo.ImageIndex, imgInfo.ImageName, imgInfo.ImageDescription, imgInfo.ProductVersion.ToString()})).ToArray()) Catch ex As Exception DynaLog.LogMessage("Could not get image file information. Error message: " & ex.Message) - MsgBox("Could not get index information for this image file", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(LocalizationService.ForSection("ImageConversion.SwmToWim")("Get.Index.Image.Label"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Finally DynaLog.LogMessage("Shutting down API...") Try diff --git a/Panels/Img_Ops/MountedImgMgr.Designer.vb b/Panels/Img_Ops/MountedImgMgr.Designer.vb index 74f843978..afb0f4c13 100644 --- a/Panels/Img_Ops/MountedImgMgr.Designer.vb +++ b/Panels/Img_Ops/MountedImgMgr.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MountedImgMgr Inherits System.Windows.Forms.Form @@ -51,7 +51,7 @@ Partial Class MountedImgMgr Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(1239, 29) Me.Label1.TabIndex = 0 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Overview.Images.Message") ' 'TableLayoutPanel1 ' @@ -86,26 +86,26 @@ Partial Class MountedImgMgr ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Image file" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("ImageFile.Column") Me.ColumnHeader1.Width = 480 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Index" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Index.Column") Me.ColumnHeader2.Width = 72 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Mount directory" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("MountDirectory.Column") Me.ColumnHeader3.Width = 420 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Status" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Status.Column") ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Read/write permissions?" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Read.Write.Column") Me.ColumnHeader5.Width = 147 ' 'ActionsTLP @@ -143,7 +143,7 @@ Partial Class MountedImgMgr Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(191, 23) Me.Button6.TabIndex = 7 - Me.Button6.Text = "Load into project" + Me.Button6.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("LoadProject.Button") Me.Button6.UseVisualStyleBackColor = True ' 'Button7 @@ -156,7 +156,7 @@ Partial Class MountedImgMgr Me.Button7.Name = "Button7" Me.Button7.Size = New System.Drawing.Size(42, 23) Me.Button7.TabIndex = 6 - Me.Button7.Text = "..." + Me.Button7.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Value.Button") Me.Button7.TextAlign = System.Drawing.ContentAlignment.TopCenter Me.Button7.UseVisualStyleBackColor = True ' @@ -169,7 +169,7 @@ Partial Class MountedImgMgr Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(191, 23) Me.Button4.TabIndex = 5 - Me.Button4.Text = "Open mount directory" + Me.Button4.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Open.Mount.Dir.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Button3 @@ -182,7 +182,7 @@ Partial Class MountedImgMgr Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(191, 23) Me.Button3.TabIndex = 3 - Me.Button3.Text = "Enable write permissions" + Me.Button3.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Enable.Write.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button2 @@ -195,7 +195,7 @@ Partial Class MountedImgMgr Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(191, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "Reload servicing" + Me.Button2.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("ReloadServicing.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Button5 @@ -208,7 +208,7 @@ Partial Class MountedImgMgr Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(191, 23) Me.Button5.TabIndex = 1 - Me.Button5.Text = "Remove volume images..." + Me.Button5.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Remove.VolumeImages.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button1 @@ -221,7 +221,7 @@ Partial Class MountedImgMgr Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(191, 23) Me.Button1.TabIndex = 0 - Me.Button1.Text = "Unmount image" + Me.Button1.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("UnmountImage.Button") Me.Button1.UseVisualStyleBackColor = True ' 'MountedImgMgr @@ -237,7 +237,7 @@ Partial Class MountedImgMgr Me.MinimumSize = New System.Drawing.Size(800, 600) Me.Name = "MountedImgMgr" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Mounted image manager" + Me.Text = LocalizationService.ForSection("Designer.MountedImgMgr")("Image.Manager.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ActionsTLP.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/MountedImgMgr.resx b/Panels/Img_Ops/MountedImgMgr.resx index 721373ef9..2bdcc9104 100644 --- a/Panels/Img_Ops/MountedImgMgr.resx +++ b/Panels/Img_Ops/MountedImgMgr.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project: - diff --git a/Panels/Img_Ops/MountedImgMgr.vb b/Panels/Img_Ops/MountedImgMgr.vb index 55d0f33a1..608902552 100644 --- a/Panels/Img_Ops/MountedImgMgr.vb +++ b/Panels/Img_Ops/MountedImgMgr.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports System.Threading Imports Microsoft.Dism @@ -7,151 +7,19 @@ Public Class MountedImgMgr Public ignoreRepeats As Boolean = False Private Sub MountedImgMgr_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Mounted image manager" - Label1.Text = "Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project:" - ListView1.Columns(0).Text = "Image file" - ListView1.Columns(1).Text = "Index" - ListView1.Columns(2).Text = "Mount directory" - ListView1.Columns(3).Text = "Status" - ListView1.Columns(4).Text = "Read/write permissions?" - Button1.Text = "Unmount image" - Button2.Text = "Reload servicing" - Button3.Text = "Enable write permissions" - Button4.Text = "Open mount directory" - Button5.Text = "Remove volume images..." - Button6.Text = "Load into project" - Case "ESN" - Text = "Administrador de imágenes montadas" - Label1.Text = "Este es un resumen de las imágenes que se han montado en este sistema. Puede consultar información sobre ellas, y realizar algunas tareas básicas. En cambio, si desea realizar todas las operaciones posibles con este programa, necesita cargar el directorio de montaje en un proyecto:" - ListView1.Columns(0).Text = "Archivo de imagen" - ListView1.Columns(1).Text = "Índice" - ListView1.Columns(2).Text = "Directorio de montaje" - ListView1.Columns(3).Text = "Estado" - ListView1.Columns(4).Text = "¿Permisos de lectura y escritura?" - Button1.Text = "Desmontar imagen" - Button2.Text = "Recargar servicio" - Button3.Text = "Habilitar escritura" - Button4.Text = "Abrir directorio de montaje" - Button5.Text = "Eliminar imágenes de volumen..." - Button6.Text = "Cargar en proyecto" - Case "FRA" - Text = "Gestionnaire des images montées" - Label1.Text = "Voici une vue d'ensemble des images qui ont été montées sur ce système. Vous pouvez rechercher des informations à leur sujet et effectuer quelques tâches de base. Cependant, pour effectuer des actions sur les images avec ce programme, vous devez charger le répertoire de montage dans un projet :" - ListView1.Columns(0).Text = "Fichier image" - ListView1.Columns(1).Text = "Index" - ListView1.Columns(2).Text = "Répertoire de montage" - ListView1.Columns(3).Text = "État" - ListView1.Columns(4).Text = "Droits de lecture/écriture ?" - Button1.Text = "Démonter l'image" - Button2.Text = "Recharger le service" - Button3.Text = "Activer les droits d'écriture" - Button4.Text = "Ouvrir le répertoire de montage" - Button5.Text = "Supprimer les images de volume..." - Button6.Text = "Charger dans le projet" - Case "PTB", "PTG" - Text = "Gestor de imagens montadas" - Label1.Text = "Aqui está uma visão geral das imagens que foram montadas neste sistema. Pode procurar informação sobre elas e executar algumas tarefas básicas. No entanto, para executar totalmente as acções de imagem com este programa, é necessário carregar o diretório de montagem para um projeto:" - ListView1.Columns(0).Text = "Ficheiro de imagem" - ListView1.Columns(1).Text = "Índice" - ListView1.Columns(2).Text = "Diretório de montagem" - ListView1.Columns(3).Text = "Estado" - ListView1.Columns(4).Text = "Permissões de leitura/escrita?" - Button1.Text = "Desmontar imagem" - Button2.Text = "Recarregar a manutenção" - Button3.Text = "Ativar permissões de escrita" - Button4.Text = "Abrir diretório de montagem" - Button5.Text = "Remover imagens de volume..." - Button6.Text = "Carregar no projeto" - Case "ITA" - Text = "Gestione di immagini montate" - Label1.Text = "Questa è una panoramica delle immagini che sono state montate su questo sistema. È possibile cercare informazioni su di esse ed eseguire alcune operazioni elementari. Per eseguire completamente le azioni sulle immagini con questo programma, tuttavia, è necessario caricare la directory di montaggio in un progetto:" - ListView1.Columns(0).Text = "File immagine" - ListView1.Columns(1).Text = "Indice" - ListView1.Columns(2).Text = "Directory di montaggio" - ListView1.Columns(3).Text = "Stato" - ListView1.Columns(4).Text = "Permessi di lettura/scrittura?" - Button1.Text = "Smontare l'immagine" - Button2.Text = "Ricaricare l'assistenza" - Button3.Text = "Abilitare i permessi di scrittura" - Button4.Text = "Aprire la directory di montaggio" - Button5.Text = "Rimuovere le immagini del volume..." - Button6.Text = "Carica nel progetto" - End Select - Case 1 - Text = "Mounted image manager" - Label1.Text = "Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project:" - ListView1.Columns(0).Text = "Image file" - ListView1.Columns(1).Text = "Index" - ListView1.Columns(2).Text = "Mount directory" - ListView1.Columns(3).Text = "Status" - ListView1.Columns(4).Text = "Read/write permissions?" - Button1.Text = "Unmount image" - Button2.Text = "Reload servicing" - Button3.Text = "Enable write permissions" - Button4.Text = "Open mount directory" - Button5.Text = "Remove volume images..." - Button6.Text = "Load into project" - Case 2 - Text = "Administrador de imágenes montadas" - Label1.Text = "Este es un resumen de las imágenes que se han montado en este sistema. Puede consultar información sobre ellas, y realizar algunas tareas básicas. En cambio, si desea realizar todas las operaciones posibles con este programa, necesita cargar el directorio de montaje en un proyecto:" - ListView1.Columns(0).Text = "Archivo de imagen" - ListView1.Columns(1).Text = "Índice" - ListView1.Columns(2).Text = "Directorio de montaje" - ListView1.Columns(4).Text = "¿Permisos de lectura y escritura?" - ListView1.Columns(5).Text = "Versión" - Button1.Text = "Desmontar imagen" - Button2.Text = "Recargar servicio" - Button3.Text = "Habilitar escritura" - Button4.Text = "Abrir directorio de montaje" - Button5.Text = "Eliminar imágenes de volumen..." - Button6.Text = "Cargar en proyecto" - Case 3 - Text = "Gestionnaire des images montées" - Label1.Text = "Voici une vue d'ensemble des images qui ont été montées sur ce système. Vous pouvez rechercher des informations à leur sujet et effectuer quelques tâches de base. Cependant, pour effectuer des actions sur les images avec ce programme, vous devez charger le répertoire de montage dans un projet :" - ListView1.Columns(0).Text = "Fichier image" - ListView1.Columns(1).Text = "Index" - ListView1.Columns(2).Text = "Répertoire de montage" - ListView1.Columns(3).Text = "État" - ListView1.Columns(4).Text = "Droits de lecture/écriture ?" - Button1.Text = "Démonter l'image" - Button2.Text = "Recharger le service" - Button3.Text = "Activer les droits d'écriture" - Button4.Text = "Ouvrir le répertoire de montage" - Button5.Text = "Supprimer les images de volume..." - Button6.Text = "Charger dans le projet" - Case 4 - Text = "Gestor de imagens montadas" - Label1.Text = "Aqui está uma visão geral das imagens que foram montadas neste sistema. Pode procurar informação sobre elas e executar algumas tarefas básicas. No entanto, para executar totalmente as acções de imagem com este programa, é necessário carregar o diretório de montagem para um projeto:" - ListView1.Columns(0).Text = "Ficheiro de imagem" - ListView1.Columns(1).Text = "Índice" - ListView1.Columns(2).Text = "Diretório de montagem" - ListView1.Columns(3).Text = "Estado" - ListView1.Columns(4).Text = "Permissões de leitura/escrita?" - Button1.Text = "Desmontar imagem" - Button2.Text = "Recarregar a manutenção" - Button3.Text = "Ativar permissões de escrita" - Button4.Text = "Abrir diretório de montagem" - Button5.Text = "Remover imagens de volume..." - Button6.Text = "Carregar no projeto" - Case 5 - Text = "Gestione di immagini montate" - Label1.Text = "Questa è una panoramica delle immagini che sono state montate su questo sistema. È possibile cercare informazioni su di esse ed eseguire alcune operazioni elementari. Per eseguire completamente le azioni sulle immagini con questo programma, tuttavia, è necessario caricare la directory di montaggio in un progetto:" - ListView1.Columns(0).Text = "File immagine" - ListView1.Columns(1).Text = "Indice" - ListView1.Columns(2).Text = "Directory di montaggio" - ListView1.Columns(3).Text = "Stato" - ListView1.Columns(4).Text = "Permessi di lettura/scrittura?" - Button1.Text = "Smontare l'immagine" - Button2.Text = "Ricaricare l'assistenza" - Button3.Text = "Abilitare i permessi di scrittura" - Button4.Text = "Aprire la directory di montaggio" - Button5.Text = "Rimuovere le immagini del volume..." - Button6.Text = "Carica nel progetto" - End Select + Text = LocalizationService.ForSection("MountedImgMgr")("Image.Manager.Item") + Label1.Text = LocalizationService.ForSection("MountedImgMgr")("Overview.Images.Message") + ListView1.Columns(0).Text = LocalizationService.ForSection("MountedImgMgr")("ImageFile.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("MountedImgMgr")("Index.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("MountedImgMgr")("MountDirectory.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("MountedImgMgr")("Status.Column") + ListView1.Columns(4).Text = LocalizationService.ForSection("MountedImgMgr")("Read.Write.Column") + Button1.Text = LocalizationService.ForSection("MountedImgMgr")("UnmountImage.Button") + Button2.Text = LocalizationService.ForSection("MountedImgMgr")("ReloadServicing.Button") + Button3.Text = LocalizationService.ForSection("MountedImgMgr")("Enable.Write.Button") + Button4.Text = LocalizationService.ForSection("MountedImgMgr")("Open.Mount.Dir.Button") + Button5.Text = LocalizationService.ForSection("MountedImgMgr")("Remove.VolumeImages.Button") + Button6.Text = LocalizationService.ForSection("MountedImgMgr")("LoadProject.Button") CheckForIllegalCrossThreadCalls = False BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -183,57 +51,9 @@ Public Class MountedImgMgr Button2.Enabled = True Select Case markedImage.ImageMountStatus Case DismMountStatus.NeedsRemount - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Button2.Text = "Reload servicing" - Case "ESN" - Button2.Text = "Recargar servicio" - Case "FRA" - Button2.Text = "Recharger le service" - Case "PTB", "PTG" - Button2.Text = "Recarregar o serviço" - Case "ITA" - Button2.Text = "Ricarica servizio" - End Select - Case 1 - Button2.Text = "Reload servicing" - Case 2 - Button2.Text = "Recargar servicio" - Case 3 - Button2.Text = "Recharger le service" - Case 4 - Button2.Text = "Recarregar o serviço" - Case 5 - Button2.Text = "Ricarica servizio" - End Select + Button2.Text = LocalizationService.ForSection("MountedImgMgr")("ReloadServicing.Button") Case DismMountStatus.Invalid - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Button2.Text = "Repair component store" - Case "ESN" - Button2.Text = "Reparar almacén de componentes" - Case "FRA" - Button2.Text = "Réparer le stock de composants" - Case "PTB", "PTG" - Button2.Text = "Reparação do armazém de componentes" - Case "ITA" - Button2.Text = "Ripara il magazzino dei componenti" - End Select - Case 1 - Button2.Text = "Repair component store" - Case 2 - Button2.Text = "Reparar almacén de componentes" - Case 3 - Button2.Text = "Réparer le stock de composants" - Case 4 - Button2.Text = "Reparação do armazém de componentes" - Case 5 - Button2.Text = "Ripara il magazzino dei componenti" - End Select + Button2.Text = LocalizationService.ForSection("MountedImgMgr")("Repair.Component.Store.Item") End Select Else Button2.Enabled = False @@ -298,7 +118,7 @@ Public Class MountedImgMgr MainForm.MountDir = ListView1.FocusedItem.SubItems(2).Text MainForm.ImgIndex = ListView1.FocusedItem.SubItems(1).Text MainForm.SourceImg = ListView1.FocusedItem.SubItems(0).Text - IIf(ListView1.FocusedItem.SubItems(4).Text = "Yes", MainForm.isReadOnly = False, MainForm.isReadOnly = True) + IIf(ListView1.FocusedItem.SubItems(4).Text = LocalizationService.ForSection("MountedImgMgr")("Yes.Button"), MainForm.isReadOnly = False, MainForm.isReadOnly = True) MainForm.UpdateProjProperties(True, If(MainForm.isReadOnly, True, False)) MainForm.SaveDTProj() End If @@ -378,7 +198,7 @@ Public Class MountedImgMgr Try ListView1.Items.Clear() For Each MountedImage In MainForm.MountedImageList - ListView1.Items.Add(New ListViewItem(New String() {MountedImage.ImageFile, MountedImage.ImageIndex, MountedImage.ImageMountDirectory, MountedImage.MountStatusToString(MainForm.Language), MountedImage.MountModeToString(MainForm.Language)})) + ListView1.Items.Add(New ListViewItem(New String() {MountedImage.ImageFile, MountedImage.ImageIndex, MountedImage.ImageMountDirectory, MountedImage.MountStatusToString(), MountedImage.MountModeToString()})) Next ignoreRepeats = True Catch ex As Exception @@ -406,4 +226,4 @@ Public Class MountedImgMgr DynaLog.LogMessage("Showing special tasks...") MainForm.ImgSpecialToolsCMS.Show(sender, New Point(8, Button7.Height * 0.75)) End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.Designer.vb b/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.Designer.vb index 4a4d20765..8338a9df0 100644 --- a/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.Designer.vb +++ b/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class OSNoRollbackErrorDlg Inherits System.Windows.Forms.Form @@ -63,7 +63,7 @@ Partial Class OSNoRollbackErrorDlg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.NoRollbackError")("Ok.Button") ' 'Label2 ' @@ -72,7 +72,7 @@ Partial Class OSNoRollbackErrorDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 52) Me.Label2.TabIndex = 14 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.NoRollbackError")("Old.Versions.None.Message") ' 'Label1 ' @@ -82,7 +82,7 @@ Partial Class OSNoRollbackErrorDlg Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 13 - Me.Label1.Text = "You can't roll back to an older version" + Me.Label1.Text = LocalizationService.ForSection("Designer.NoRollbackError")("Troll.Back.Older.Label") ' 'OSNoRollbackErrorDlg ' @@ -101,7 +101,7 @@ Partial Class OSNoRollbackErrorDlg Me.Name = "OSNoRollbackErrorDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.NoRollbackError")("DISMTools.Label") Me.Panel1.ResumeLayout(False) Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.resx b/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.resx index 7ef1059ff..7905453d9 100644 --- a/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.resx +++ b/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,7 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything. - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.vb b/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.vb index 7392a8c5b..cee0ad5df 100644 --- a/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.vb +++ b/Panels/Img_Ops/OSUninst/OSNoRollbackErrorDlg.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class OSNoRollbackErrorDlg @@ -13,51 +13,9 @@ Public Class OSNoRollbackErrorDlg End Sub Private Sub OSNoRollbackErrorDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "You can't roll back to an older version" - Label2.Text = "No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything." - OK_Button.Text = "OK" - Case "ESN" - Label1.Text = "No puede revertir a una versión anterior" - Label2.Text = "No se detectaron versiones anteriores porque sus archivos no se encontraron. Podría haber tenido esta versión por más tiempo de lo que le permite el margen de desinstalación, o podría haber eliminado los archivos de la versión anterior (para liberar espacio). No tiene que hacer nada." - OK_Button.Text = "Aceptar" - Case "FRA" - Label1.Text = "Vous ne pouvez pas revenir à une version antérieure" - Label2.Text = "Aucune ancienne version n'a été détectée, car ses fichiers n'ont pas été trouvés. Il se peut que vous possédiez cette version depuis plus longtemps que la fenêtre de désinstallation ne vous le permet, ou que vous ayez supprimé les fichiers de l'ancienne version (pour économiser de l'espace). Vous n'avez rien à faire." - OK_Button.Text = "OK" - Case "PTB", "PTG" - Label1.Text = "Não é possível retroceder para uma versão anterior" - Label2.Text = "Não foram detectadas versões antigas, porque os seus ficheiros não foram encontrados. Poderá ter esta versão há mais tempo do que a janela de desinstalação lhe permite, ou poderá ter eliminado os ficheiros da versão antiga (para poupar espaço). Não precisa de fazer nada" - OK_Button.Text = "OK" - Case "ITA" - Label1.Text = "Non è possibile tornare a una versione precedente" - Label2.Text = "Non è stata rilevata alcuna vecchia versione, perché i suoi file non sono stati trovati. È possibile che si disponga di questa versione da un tempo superiore a quello consentito dalla finestra di disinstallazione, oppure che siano stati cancellati i file della vecchia versione (per risparmiare spazio). Non è necessario fare nulla" - OK_Button.Text = "OK" - End Select - Case 1 - Label1.Text = "You can't roll back to an older version" - Label2.Text = "No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything." - OK_Button.Text = "OK" - Case 2 - Label1.Text = "No puede revertir a una versión anterior" - Label2.Text = "No se detectaron versiones anteriores porque sus archivos no se encontraron. Podría haber tenido esta versión por más tiempo de lo que le permite el margen de desinstalación, o podría haber eliminado los archivos de la versión anterior (para liberar espacio). No tiene que hacer nada." - OK_Button.Text = "Aceptar" - Case 3 - Label1.Text = "Vous ne pouvez pas revenir à une version antérieure" - Label2.Text = "Aucune ancienne version n'a été détectée, car ses fichiers n'ont pas été trouvés. Il se peut que vous possédiez cette version depuis plus longtemps que la fenêtre de désinstallation ne vous le permet, ou que vous ayez supprimé les fichiers de l'ancienne version (pour économiser de l'espace). Vous n'avez rien à faire." - OK_Button.Text = "OK" - Case 4 - Label1.Text = "Não é possível retroceder para uma versão anterior" - Label2.Text = "Não foram detectadas versões antigas, porque os seus ficheiros não foram encontrados. Poderá ter esta versão há mais tempo do que a janela de desinstalação lhe permite, ou poderá ter eliminado os ficheiros da versão antiga (para poupar espaço). Não precisa de fazer nada" - OK_Button.Text = "OK" - Case 5 - Label1.Text = "Non è possibile tornare a una versione precedente" - Label2.Text = "Non è stata rilevata alcuna vecchia versione, perché i suoi file non sono stati trovati. È possibile che si disponga di questa versione da un tempo superiore a quello consentito dalla finestra di disinstallazione, oppure che siano stati cancellati i file della vecchia versione (per risparmiare spazio). Non è necessario fare nulla" - OK_Button.Text = "OK" - End Select + Label1.Text = LocalizationService.ForSection("OS.No")("Troll.Back.Older.Label") + Label2.Text = LocalizationService.ForSection("OS.No")("Old.Versions.None.Message") + OK_Button.Text = LocalizationService.ForSection("OS.No")("Ok.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Img_Ops/OSUninst/SetOSUninstWindow.Designer.vb b/Panels/Img_Ops/OSUninst/SetOSUninstWindow.Designer.vb index d35025cc0..c91fc3456 100644 --- a/Panels/Img_Ops/OSUninst/SetOSUninstWindow.Designer.vb +++ b/Panels/Img_Ops/OSUninst/SetOSUninstWindow.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SetOSUninstWindow Inherits System.Windows.Forms.Form @@ -57,7 +57,7 @@ Partial Class SetOSUninstWindow Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.OSRollback")("Ok.Button") ' 'Cancel_Button ' @@ -68,7 +68,7 @@ Partial Class SetOSUninstWindow Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.OSRollback")("Cancel.Button") ' 'Label2 ' @@ -78,7 +78,7 @@ Partial Class SetOSUninstWindow Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(600, 68) Me.Label2.TabIndex = 5 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.OSRollback")("Default.OS.Message") ' 'Label3 ' @@ -87,7 +87,7 @@ Partial Class SetOSUninstWindow Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(314, 13) Me.Label3.TabIndex = 6 - Me.Label3.Text = "Amount of days you have to revert to the old Windows version:" + Me.Label3.Text = LocalizationService.ForSection("Designer.OSRollback")("Amount.Days.Revert.Label") ' 'NumericUpDown1 ' @@ -132,7 +132,7 @@ Partial Class SetOSUninstWindow Me.Name = "SetOSUninstWindow" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Set operating system uninstall window" + Me.Text = LocalizationService.ForSection("Designer.OSRollback")("OSUninstall.Label") Me.TableLayoutPanel1.ResumeLayout(False) CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/OSUninst/SetOSUninstWindow.resx b/Panels/Img_Ops/OSUninst/SetOSUninstWindow.resx index 31354e7c6..7905453d9 100644 --- a/Panels/Img_Ops/OSUninst/SetOSUninstWindow.resx +++ b/Panels/Img_Ops/OSUninst/SetOSUninstWindow.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date. - -Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60. - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Img_Ops/OSUninst/SetOSUninstWindow.vb b/Panels/Img_Ops/OSUninst/SetOSUninstWindow.vb index 4eb2ded10..f487d1ca7 100644 --- a/Panels/Img_Ops/OSUninst/SetOSUninstWindow.vb +++ b/Panels/Img_Ops/OSUninst/SetOSUninstWindow.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Win32 Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -35,31 +35,7 @@ Public Class SetOSUninstWindow End If Else DynaLog.LogMessage("The active installation is not being managed right now.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("This action is only supported on online installations", vbOKOnly + vbCritical, Text) - Case "ESN" - MsgBox("Esta acción solo está soportada en instalaciones activas", vbOKOnly + vbCritical, Text) - Case "FRA" - MsgBox("Cette action est seulement prise en charge par les installations en ligne", vbOKOnly + vbCritical, Text) - Case "PTB", "PTG" - MsgBox("Esta ação só é suportada em instalações online", vbOKOnly + vbCritical, Text) - Case "ITA" - MsgBox("Questa azione è supportata solo su installazioni attive", vbOKOnly + vbCritical, Text) - End Select - Case 1 - MsgBox("This action is only supported on online installations", vbOKOnly + vbCritical, Text) - Case 2 - MsgBox("Esta acción solo está soportada en instalaciones activas", vbOKOnly + vbCritical, Text) - Case 3 - MsgBox("Cette action est seulement prise en charge par les installations en ligne", vbOKOnly + vbCritical, Text) - Case 4 - MsgBox("Esta ação só é suportada em instalações online", vbOKOnly + vbCritical, Text) - Case 5 - MsgBox("Questa azione è supportata solo su installazioni attive", vbOKOnly + vbCritical, Text) - End Select + MsgBox(LocalizationService.ForSection("RollbackWindow.Init")("OnlineOnly.Message"), vbOKOnly + vbCritical, Text) Return False End If Return True @@ -70,91 +46,12 @@ Public Class SetOSUninstWindow Close() Exit Sub End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Set operating system uninstall window" - ImageTaskHeader1.ItemText = Text - Label2.Text = "By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date." & CrLf & CrLf & _ - "Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60." - Label3.Text = "Amount of days you have to revert to the old Windows version:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Establecer margen de desinstalación del sistema operativo" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por defecto, y tras una actualización del sistema operativo, tiene 10 días para revertir a la versión anterior de Windows. Sin embargo, puede cambiar esta configuración si desea revertir al SO anterior más tarde." & CrLf & CrLf & _ - "Utilice el deslizador numérico para aumentar o reducir el número de días que tiene para revertir a la versión anterior de Windows. Debe estar entre 2 y 60." - Label3.Text = "Número de días que tiene para revertir a la versión anterior de Windows:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Définir la créneau de désinstallation du système d'exploitation" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Par défaut, et après une mise à jour du système d'exploitation, vous disposez de 10 jours pour revenir à la version précédente de Windows. Toutefois, vous pouvez modifier ce paramètre si vous souhaitez revenir à l'ancienne version du système d'exploitation à une date ultérieure." & CrLf & CrLf & _ - "Utilisez le curseur numérique pour augmenter ou diminuer le nombre de jours dont vous disposez pour revenir à l'ancienne version de Windows. Ce nombre doit être compris entre 2 et 60." - Label3.Text = "Nombre de jours nécessaires pour revenir à l'ancienne version de Windows :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Configurar janela de desinstalação do sistema operativo" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por predefinição, e após uma atualização do SO, tem 10 dias para reverter para a versão anterior do Windows. No entanto, pode alterar esta configuração se pretender reverter para a versão antiga do SO numa data posterior." & CrLf & CrLf & _ - "Utilize o cursor numérico para aumentar ou diminuir o número de dias que tem para reverter para a versão antiga do Windows. Tem de estar entre 2 e 60." - Label3.Text = "Quantidade de dias que tem para reverter para a versão antiga do Windows:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Impostare la finestra di disinstallazione del sistema operativo" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Per impostazione predefinita e dopo un aggiornamento del sistema operativo, si hanno 10 giorni per tornare alla versione precedente di Windows. Tuttavia, è possibile modificare questa impostazione se si desidera tornare alla vecchia versione del sistema operativo in un secondo momento." & CrLf & CrLf & _ - "Utilizzare il cursore numerico per aumentare o diminuire il numero di giorni a disposizione per tornare alla vecchia versione di Windows. Deve essere compreso tra 2 e 60." - Label3.Text = "Numero di giorni necessari per tornare alla vecchia versione di Windows:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Text = "Set operating system uninstall window" - ImageTaskHeader1.ItemText = Text - Label2.Text = "By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date." & CrLf & CrLf & _ - "Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60." - Label3.Text = "Amount of days you have to revert to the old Windows version:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Establecer margen de desinstalación del sistema operativo" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por defecto, y tras una actualización del sistema operativo, tiene 10 días para revertir a la versión anterior de Windows. Sin embargo, puede cambiar esta configuración si desea revertir al SO anterior más tarde." & CrLf & CrLf & _ - "Utilice el deslizador numérico para aumentar o reducir el número de días que tiene para revertir a la versión anterior de Windows. Debe estar entre 2 y 60." - Label3.Text = "Número de días que tiene para revertir a la versión anterior de Windows:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Définir la créneau de désinstallation du système d'exploitation" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Par défaut, et après une mise à jour du système d'exploitation, vous disposez de 10 jours pour revenir à la version précédente de Windows. Toutefois, vous pouvez modifier ce paramètre si vous souhaitez revenir à l'ancienne version du système d'exploitation à une date ultérieure." & CrLf & CrLf & _ - "Utilisez le curseur numérique pour augmenter ou diminuer le nombre de jours dont vous disposez pour revenir à l'ancienne version de Windows. Ce nombre doit être compris entre 2 et 60." - Label3.Text = "Nombre de jours nécessaires pour revenir à l'ancienne version de Windows :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Configurar janela de desinstalação do sistema operativo" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por predefinição, e após uma atualização do SO, tem 10 dias para reverter para a versão anterior do Windows. No entanto, pode alterar esta configuração se pretender reverter para a versão antiga do SO numa data posterior." & CrLf & CrLf & _ - "Utilize o cursor numérico para aumentar ou diminuir o número de dias que tem para reverter para a versão antiga do Windows. Tem de estar entre 2 e 60." - Label3.Text = "Quantidade de dias que tem para reverter para a versão antiga do Windows:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Impostare la finestra di disinstallazione del sistema operativo" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Per impostazione predefinita e dopo un aggiornamento del sistema operativo, si hanno 10 giorni per tornare alla versione precedente di Windows. Tuttavia, è possibile modificare questa impostazione se si desidera tornare alla vecchia versione del sistema operativo in un secondo momento." & CrLf & CrLf & _ - "Utilizzare il cursore numerico per aumentare o diminuire il numero di giorni a disposizione per tornare alla vecchia versione di Windows. Deve essere compreso tra 2 e 60." - Label3.Text = "Numero di giorni necessari per tornare alla vecchia versione di Windows:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Text = LocalizationService.ForSection("OSRollback")("OSUninstall.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("OSRollback").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("OSRollback")("Default.OS.Message") + Label3.Text = LocalizationService.ForSection("OSRollback")("Amount.Days.Revert.Label") + OK_Button.Text = LocalizationService.ForSection("OSRollback")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("OSRollback")("Cancel.Button") ' Get the uninstall window from the registry first Try DynaLog.LogMessage("Getting OS uninstall window...") @@ -162,7 +59,7 @@ Public Class SetOSUninstWindow uninstWindow = CInt(osUninstReg.GetValue("UninstallWindow").ToString()) osUninstReg.Close() Catch ex As Exception - MsgBox(ex.ToString() & " - " & ex.Message & "(HRESULT " & ex.HResult & ")", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) + MsgBox(ex.ToString() & " - " & ex.Message & String.Format(LocalizationService.ForSection("OSRollback.Messages")("Hresult.Label"), ex.HResult), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Close() End Try DynaLog.LogMessage("Uninstall window: " & uninstWindow) diff --git a/Panels/Img_Ops/OfflineInstDriveLister.Designer.vb b/Panels/Img_Ops/OfflineInstDriveLister.Designer.vb index a47dcea5e..e7834103b 100644 --- a/Panels/Img_Ops/OfflineInstDriveLister.Designer.vb +++ b/Panels/Img_Ops/OfflineInstDriveLister.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class OfflineInstDriveLister Inherits System.Windows.Forms.Form @@ -66,7 +66,7 @@ Partial Class OfflineInstDriveLister Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("Ok.Button") ' 'Cancel_Button ' @@ -77,7 +77,7 @@ Partial Class OfflineInstDriveLister Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("Cancel.Button") ' 'Button1 ' @@ -86,7 +86,7 @@ Partial Class OfflineInstDriveLister Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 1 - Me.Button1.Text = "Refresh" + Me.Button1.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("Refresh.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label1 @@ -98,7 +98,7 @@ Partial Class OfflineInstDriveLister Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(799, 28) Me.Label1.TabIndex = 2 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("Begin.Install.Message") ' 'ListView1 ' @@ -117,42 +117,42 @@ Partial Class OfflineInstDriveLister ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Drive letter" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("DriveLetter.Column") Me.ColumnHeader1.Width = 68 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Drive label" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("DriveLabel.Column") Me.ColumnHeader2.Width = 128 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Drive type" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("DriveType.Column") Me.ColumnHeader3.Width = 70 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Total size" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("TotalSize.Column") Me.ColumnHeader4.Width = 94 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Available free space" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("Available.Free.Space.Column") Me.ColumnHeader5.Width = 110 ' 'ColumnHeader6 ' - Me.ColumnHeader6.Text = "Drive format" + Me.ColumnHeader6.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("DriveFormat.Column") Me.ColumnHeader6.Width = 77 ' 'ColumnHeader7 ' - Me.ColumnHeader7.Text = "Contains Windows?" + Me.ColumnHeader7.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("ContainsWindows.Column") Me.ColumnHeader7.Width = 109 ' 'ColumnHeader8 ' - Me.ColumnHeader8.Text = "Windows version" + Me.ColumnHeader8.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("Windows.Column") Me.ColumnHeader8.Width = 104 ' 'Timer1 @@ -177,7 +177,7 @@ Partial Class OfflineInstDriveLister Me.Name = "OfflineInstDriveLister" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Choose a disk" + Me.Text = LocalizationService.ForSection("Designer.OfflineDriveList")("Disk.Choose.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Img_Ops/OfflineInstDriveLister.resx b/Panels/Img_Ops/OfflineInstDriveLister.resx index 94efe3952..8c39ea503 100644 --- a/Panels/Img_Ops/OfflineInstDriveLister.resx +++ b/Panels/Img_Ops/OfflineInstDriveLister.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - To begin performing offline installation management, please choose a disk shown in the list below. If additional disks that contain Windows installations have been added or removed, simply click the Refresh button. - 17, 17 diff --git a/Panels/Img_Ops/OfflineInstDriveLister.vb b/Panels/Img_Ops/OfflineInstDriveLister.vb index d2a42608e..e2cfff93a 100644 --- a/Panels/Img_Ops/OfflineInstDriveLister.vb +++ b/Panels/Img_Ops/OfflineInstDriveLister.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports DISMTools.Utilities @@ -23,151 +23,19 @@ Public Class OfflineInstDriveLister End Sub Private Sub OfflineInstDriveLister_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Choose a disk" - Label1.Text = "To begin performing offline installation management, please choose a disk shown in the list below. This list will be updated automatically every minute, or when you click the Refresh button." - ListView1.Columns(0).Text = "Drive letter" - ListView1.Columns(1).Text = "Drive label" - ListView1.Columns(2).Text = "Drive type" - ListView1.Columns(3).Text = "Total size" - ListView1.Columns(4).Text = "Available free space" - ListView1.Columns(5).Text = "Drive format" - ListView1.Columns(6).Text = "Contains Windows?" - ListView1.Columns(7).Text = "Windows version" - Button1.Text = "Refresh" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Elija un disco" - Label1.Text = "Para comenzar a realizar el mantenimiento de instalaciones fuera de línea, escoja un disco mostrado en la lista de abajo. Esta lista se actualizará automáticamente cada minuto, o cuando haga clic en el botón Actualizar." - ListView1.Columns(0).Text = "Letra de disco" - ListView1.Columns(1).Text = "Etiqueta de disco" - ListView1.Columns(2).Text = "Tipo de disco" - ListView1.Columns(3).Text = "Tamaño total" - ListView1.Columns(4).Text = "Espacio libre" - ListView1.Columns(5).Text = "Formato del disco" - ListView1.Columns(6).Text = "¿Contiene Windows?" - ListView1.Columns(7).Text = "Versión de Windows" - Button1.Text = "Actualizar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Choisir un disque" - Label1.Text = "Pour commencer la gestion de l'installation hors ligne, veuillez choisir un disque dans la liste ci-dessous. Cette liste sera mise à jour automatiquement toutes les minutes, ou lorsque vous cliquez sur le bouton Actualiser." - ListView1.Columns(0).Text = "Lettre de disque" - ListView1.Columns(1).Text = "Étiquette de disque" - ListView1.Columns(2).Text = "Type de disque" - ListView1.Columns(3).Text = "Taille totale" - ListView1.Columns(4).Text = "Espace libre disponible" - ListView1.Columns(5).Text = "Format de disque" - ListView1.Columns(6).Text = "Contient Windows ?" - ListView1.Columns(7).Text = "Version Windows" - Button1.Text = "Actualiser" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Escolha um disco" - Label1.Text = "Para começar a efetuar a gestão da instalação offline, escolha um disco apresentado na lista abaixo. Esta lista será actualizada automaticamente a cada minuto, ou quando clicar no botão Atualizar." - ListView1.Columns(0).Text = "Letra da unidade" - ListView1.Columns(1).Text = "Etiqueta da unidade" - ListView1.Columns(2).Text = "Tipo de unidade" - ListView1.Columns(3).Text = "Tamanho total" - ListView1.Columns(4).Text = "Espaço livre disponível" - ListView1.Columns(5).Text = "Formato da unidade" - ListView1.Columns(6).Text = "Contém Windows?" - ListView1.Columns(7).Text = "Versão do Windows" - Button1.Text = "Atualizar" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Scegliere un disco" - Label1.Text = "Per iniziare la gestione dell'installazione offline, scegliere un disco nell'elenco sottostante. Questo elenco verrà aggiornato automaticamente ogni minuto o quando si fa clic sul pulsante Aggiorna." - ListView1.Columns(0).Text = "Lettera unità" - ListView1.Columns(1).Text = "Etichetta unità" - ListView1.Columns(2).Text = "Tipo di unità" - ListView1.Columns(3).Text = "Dimensione totale" - ListView1.Columns(4).Text = "Spazio libero disponibile" - ListView1.Columns(5).Text = "Formato unità" - ListView1.Columns(6).Text = "Contiene Windows?" - ListView1.Columns(7).Text = "Versione di Windows" - Button1.Text = "Aggiorna" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Text = "Choose a disk" - Label1.Text = "To begin performing offline installation management, please choose a disk shown in the list below. This list will be updated automatically every minute, or when you click the Refresh button." - ListView1.Columns(0).Text = "Drive letter" - ListView1.Columns(1).Text = "Drive label" - ListView1.Columns(2).Text = "Drive type" - ListView1.Columns(3).Text = "Total size" - ListView1.Columns(4).Text = "Available free space" - ListView1.Columns(5).Text = "Drive format" - ListView1.Columns(6).Text = "Contains Windows?" - ListView1.Columns(7).Text = "Windows version" - Button1.Text = "Refresh" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Elija un disco" - Label1.Text = "Para comenzar a realizar el mantenimiento de instalaciones fuera de línea, escoja un disco mostrado en la lista de abajo. Esta lista se actualizará automáticamente cada minuto, o cuando haga clic en el botón Actualizar." - ListView1.Columns(0).Text = "Letra de disco" - ListView1.Columns(1).Text = "Etiqueta de disco" - ListView1.Columns(2).Text = "Tipo de disco" - ListView1.Columns(3).Text = "Tamaño total" - ListView1.Columns(4).Text = "Espacio libre" - ListView1.Columns(5).Text = "Formato del disco" - ListView1.Columns(6).Text = "¿Contiene Windows?" - ListView1.Columns(7).Text = "Versión de Windows" - Button1.Text = "Actualizar" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Choisir un disque" - Label1.Text = "Pour commencer la gestion de l'installation hors ligne, veuillez choisir un disque dans la liste ci-dessous. Cette liste sera mise à jour automatiquement toutes les minutes, ou lorsque vous cliquez sur le bouton Actualiser." - ListView1.Columns(0).Text = "Lettre de disque" - ListView1.Columns(1).Text = "Étiquette de disque" - ListView1.Columns(2).Text = "Type de disque" - ListView1.Columns(3).Text = "Taille totale" - ListView1.Columns(4).Text = "Espace libre disponible" - ListView1.Columns(5).Text = "Format de disque" - ListView1.Columns(6).Text = "Contient Windows ?" - ListView1.Columns(7).Text = "Version Windows" - Button1.Text = "Actualiser" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Escolha um disco" - Label1.Text = "Para começar a efetuar a gestão da instalação offline, escolha um disco apresentado na lista abaixo. Esta lista será actualizada automaticamente a cada minuto, ou quando clicar no botão Atualizar." - ListView1.Columns(0).Text = "Letra da unidade" - ListView1.Columns(1).Text = "Etiqueta da unidade" - ListView1.Columns(2).Text = "Tipo de unidade" - ListView1.Columns(3).Text = "Tamanho total" - ListView1.Columns(4).Text = "Espaço livre disponível" - ListView1.Columns(5).Text = "Formato da unidade" - ListView1.Columns(6).Text = "Contém Windows?" - ListView1.Columns(7).Text = "Versão do Windows" - Button1.Text = "Atualizar" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Scegliere un disco" - Label1.Text = "Per iniziare la gestione dell'installazione offline, scegliere un disco nell'elenco sottostante. Questo elenco verrà aggiornato automaticamente ogni minuto o quando si fa clic sul pulsante Aggiorna." - ListView1.Columns(0).Text = "Lettera unità" - ListView1.Columns(1).Text = "Etichetta unità" - ListView1.Columns(2).Text = "Tipo di unità" - ListView1.Columns(3).Text = "Dimensione totale" - ListView1.Columns(4).Text = "Spazio libero disponibile" - ListView1.Columns(5).Text = "Formato unità" - ListView1.Columns(6).Text = "Contiene Windows?" - ListView1.Columns(7).Text = "Versione di Windows" - Button1.Text = "Aggiorna" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Text = LocalizationService.ForSection("OfflineDriveList")("Disk.Choose.Label") + Label1.Text = LocalizationService.ForSection("OfflineDriveList")("Begin.Install.Message") + ListView1.Columns(0).Text = LocalizationService.ForSection("OfflineDriveList")("DriveLetter.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("OfflineDriveList")("DriveLabel.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("OfflineDriveList")("DriveType.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("OfflineDriveList")("TotalSize.Column") + ListView1.Columns(4).Text = LocalizationService.ForSection("OfflineDriveList")("Available.Free.Space.Column") + ListView1.Columns(5).Text = LocalizationService.ForSection("OfflineDriveList")("DriveFormat.Column") + ListView1.Columns(6).Text = LocalizationService.ForSection("OfflineDriveList")("ContainsWindows.Column") + ListView1.Columns(7).Text = LocalizationService.ForSection("OfflineDriveList")("Windows.Column") + Button1.Text = LocalizationService.ForSection("OfflineDriveList")("Refresh.Button") + OK_Button.Text = LocalizationService.ForSection("OfflineDriveList")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("OfflineDriveList")("Cancel.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor ListView1.BackColor = BackColor diff --git a/Panels/Img_Ops/Pkgs/AddPackage.Designer.vb b/Panels/Img_Ops/Pkgs/AddPackage.Designer.vb index 839e7886e..568e13803 100644 --- a/Panels/Img_Ops/Pkgs/AddPackage.Designer.vb +++ b/Panels/Img_Ops/Pkgs/AddPackage.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddPackageDlg Inherits System.Windows.Forms.Form @@ -76,7 +76,7 @@ Partial Class AddPackageDlg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.AddPackage")("Ok.Button") ' 'Cancel_Button ' @@ -87,7 +87,7 @@ Partial Class AddPackageDlg Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.AddPackage")("Cancel.Button") ' 'GroupBox1 ' @@ -105,7 +105,7 @@ Partial Class AddPackageDlg Me.GroupBox1.Size = New System.Drawing.Size(760, 349) Me.GroupBox1.TabIndex = 4 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Packages" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.AddPackage")("Packages.Group") ' 'Panel1 ' @@ -142,7 +142,7 @@ Partial Class AddPackageDlg Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(495, 32) Me.Label4.TabIndex = 8 - Me.Label4.Text = "This folder contains packages." + Me.Label4.Text = LocalizationService.ForSection("Designer.AddPackage")("Folder.Contains.Pkgnum.Label") ' 'TableLayoutPanel2 ' @@ -168,7 +168,7 @@ Partial Class AddPackageDlg Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(98, 23) Me.Button2.TabIndex = 0 - Me.Button2.Text = "Select all" + Me.Button2.Text = LocalizationService.ForSection("Designer.AddPackage")("SelectAll.Button") ' 'Button3 ' @@ -179,7 +179,7 @@ Partial Class AddPackageDlg Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(98, 23) Me.Button3.TabIndex = 1 - Me.Button3.Text = "Select none" + Me.Button3.Text = LocalizationService.ForSection("Designer.AddPackage")("SelectNone.Button") ' 'RadioButton2 ' @@ -188,7 +188,7 @@ Partial Class AddPackageDlg Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(177, 17) Me.RadioButton2.TabIndex = 6 - Me.RadioButton2.Text = "Choose which packages to add:" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.AddPackage")("Packages.Choose.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -200,7 +200,7 @@ Partial Class AddPackageDlg Me.RadioButton1.Size = New System.Drawing.Size(199, 17) Me.RadioButton1.TabIndex = 6 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Scan folder recursively for packages" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.AddPkg")("ScanRecursive.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'Button1 @@ -210,7 +210,7 @@ Partial Class AddPackageDlg Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 5 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.AddPackage")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -227,7 +227,7 @@ Partial Class AddPackageDlg Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(100, 13) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Package operation:" + Me.Label3.Text = LocalizationService.ForSection("Designer.AddPackage")("PackageOperation.Label") ' 'Label2 ' @@ -236,7 +236,7 @@ Partial Class AddPackageDlg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(86, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Package source:" + Me.Label2.Text = LocalizationService.ForSection("Designer.AddPackage")("PackageSource.Label") ' 'GroupBox2 ' @@ -248,7 +248,7 @@ Partial Class AddPackageDlg Me.GroupBox2.Size = New System.Drawing.Size(760, 105) Me.GroupBox2.TabIndex = 4 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.AddPackage")("Options.Group") ' 'CheckBox3 ' @@ -257,7 +257,7 @@ Partial Class AddPackageDlg Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(191, 17) Me.CheckBox3.TabIndex = 0 - Me.CheckBox3.Text = "Save image after adding packages" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.AddPackage")("Save.Image.Packages.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'CheckBox2 @@ -267,7 +267,7 @@ Partial Class AddPackageDlg Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(296, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Skip package installation if online operations are pending" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.AddPkg")("Skip.Online.Install.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -277,12 +277,12 @@ Partial Class AddPackageDlg Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(248, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Ignore applicability checks (not recommended)" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.AddPackage")("Ignore.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Specify the folder containing CAB or MSU packages:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.AddPackage")("CabFolder.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer Me.FolderBrowserDialog1.ShowNewFolderButton = False ' @@ -296,7 +296,7 @@ Partial Class AddPackageDlg Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(223, 23) Me.Button4.TabIndex = 5 - Me.Button4.Text = "Add update manifest..." + Me.Button4.Text = LocalizationService.ForSection("Designer.AddPackage")("Update.Manifest.Button") Me.Button4.UseVisualStyleBackColor = True ' 'ImageTaskHeader1 @@ -332,7 +332,7 @@ Partial Class AddPackageDlg Me.Name = "AddPackageDlg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add packages" + Me.Text = LocalizationService.ForSection("Designer.AddPackage")("AddPackages.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/Pkgs/AddPackage.vb b/Panels/Img_Ops/Pkgs/AddPackage.vb index cf6825616..f6c82876f 100644 --- a/Panels/Img_Ops/Pkgs/AddPackage.vb +++ b/Panels/Img_Ops/Pkgs/AddPackage.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -7,9 +7,6 @@ Public Class AddPackageDlg Public CheckedCount As Integer Public pkgCount As Integer Public pkgs(65535) As String ' This is hard-coded. If you have more than 65535 selected packages, the program will throw an exception - - Public Language As Integer - Dim Addition_MUMFile As String Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click @@ -53,35 +50,11 @@ Public Class AddPackageDlg DynaLog.LogMessage("A selective package addition operation will be started. Checking packages to add...") If CheckedListBox1.CheckedItems.Count <= 0 Then DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MessageBox.Show(MainForm, "Please select packages to add, and try again. You can also continue with letting DISM scan applicable packages", "No packages selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ESN" - MessageBox.Show(MainForm, "Seleccione paquetes a añadir, e inténtelo de nuevo. También puede continuar dejando que DISM escanee paquetes aplicables", "No hay paquetes seleccionados", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "FRA" - MessageBox.Show(MainForm, "Veuillez sélectionner les paquets à ajouter et réessayer. Vous pouvez également continuer à laisser DISM analyser les paquets applicables", "Aucun paquet sélectionné", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "PTB", "PTG" - MessageBox.Show(MainForm, "Por favor, seleccione os pacotes a adicionar e tente novamente. Também pode continuar a deixar o DISM verificar os pacotes aplicáveis", "Nenhum pacote selecionado", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ITA" - MessageBox.Show(MainForm, "Selezionare i pacchetti da aggiungere e riprovare. È anche possibile continuare a lasciare che DISM esegua la scansione dei pacchetti applicabili", "Nessun pacchetto selezionato", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select - Case 1 - MessageBox.Show(MainForm, "Please select packages to add, and try again. You can also continue with letting DISM scan applicable packages", "No packages selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 2 - MessageBox.Show(MainForm, "Seleccione paquetes a añadir, e inténtelo de nuevo. También puede continuar dejando que DISM escanee paquetes aplicables", "No hay paquetes seleccionados", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 3 - MessageBox.Show(MainForm, "Veuillez sélectionner les paquets à ajouter et réessayer. Vous pouvez également continuer à laisser DISM analyser les paquets applicables", "Aucun paquet sélectionné", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 4 - MessageBox.Show(MainForm, "Por favor, seleccione os pacotes a adicionar e tente novamente. Também pode continuar a deixar o DISM verificar os pacotes aplicáveis", "Nenhum pacote selecionado", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 5 - MessageBox.Show(MainForm, "Selezionare i pacchetti da aggiungere e riprovare. È anche possibile continuare a lasciare che DISM esegua la scansione dei pacchetti applicabili", "Nessun pacchetto selezionato", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select + MessageBox.Show(MainForm, LocalizationService.ForSection("AddPackage.Validation")("Packages.Message"), LocalizationService.ForSection("AddPackage.Validation")("PackagesSelected.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error) Else DynaLog.LogMessage("OS packages to add to the queue: " & pkgCount) If pkgCount > 65535 Then - MessageBox.Show(MainForm, "Right now, due to program limitations, you can select 65535 packages or less.", "Current program limitation", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(MainForm, LocalizationService.ForSection("Panels.Packages.Add")("CurrentLimit.Message"), LocalizationService.ForSection("Panels.Packages.Add")("CurrentLimit.Detail"), MessageBoxButtons.OK, MessageBoxIcon.Error) Else DynaLog.LogMessage("Adding AppX packages to queue...") Try @@ -140,31 +113,7 @@ Public Class AddPackageDlg DynaLog.LogMessage("Clearing existing items...") CheckedListBox1.Items.Clear() Cursor = Cursors.WaitCursor - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "Scanning directory for packages. Please wait..." - Case "ESN" - Label4.Text = "Escaneando directorio por paquetes. Espere..." - Case "FRA" - Label4.Text = "Recherche des paquets dans le répertoire en cours. Veuillez patienter..." - Case "PTB", "PTG" - Label4.Text = "A analisar o diretório em busca de pacotes. Aguarde..." - Case "ITA" - Label4.Text = "Scansione della directory per i pacchetti. Attendere..." - End Select - Case 1 - Label4.Text = "Scanning directory for packages. Please wait..." - Case 2 - Label4.Text = "Escaneando directorio por paquetes. Espere..." - Case 3 - Label4.Text = "Recherche des paquets dans le répertoire en cours. Veuillez patienter..." - Case 4 - Label4.Text = "A analisar o diretório em busca de pacotes. Aguarde..." - Case 5 - Label4.Text = "Scansione della directory per i pacchetti. Attendere..." - End Select + Label4.Text = LocalizationService.ForSection("AddPackage.GatherPackages")("Scanning.Dir.Label") Refresh() ' TODO: show CheckedListBox items without full path Try @@ -215,257 +164,36 @@ Public Class AddPackageDlg DynaLog.LogMessage("Items in list: " & CheckedListBox1.Items.Count) If CheckedListBox1.Items.Count = 0 Then DynaLog.LogMessage("This folder does not have any items") - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "This folder does not contain any packages. Please use a different source and try again" - Case "ESN" - Label4.Text = "Esta carpeta no contiene ningún paquete. Utilice un origen diferente e inténtelo de nuevo" - Case "FRA" - Label4.Text = "Ce répertoire ne contient aucun paquet. Veuillez utiliser une autre source et réessayer" - Case "PTB", "PTG" - Label4.Text = "Esta pasta não contém quaisquer pacotes. Utilize uma origem diferente e tente novamente" - Case "ITA" - Label4.Text = "Questa cartella non contiene pacchetti. Utilizzare un'altra origine e riprovare" - End Select - Case 1 - Label4.Text = "This folder does not contain any packages. Please use a different source and try again" - Case 2 - Label4.Text = "Esta carpeta no contiene ningún paquete. Utilice un origen diferente e inténtelo de nuevo" - Case 3 - Label4.Text = "Ce répertoire ne contient aucun paquet. Veuillez utiliser une autre source et réessayer" - Case 4 - Label4.Text = "Esta pasta não contém quaisquer pacotes. Utilize uma origem diferente e tente novamente" - Case 5 - Label4.Text = "Questa cartella non contiene pacchetti. Utilizzare un'altra origine e riprovare" - End Select + Label4.Text = LocalizationService.ForSection("AddPackage.CountItems")("Folder.Contain.Label") Beep() Else - Select Case Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "This folder contains " & CheckedListBox1.Items.Count & " package" & If(CheckedListBox1.Items.Count = 1, ".", "s.") - Case "ESN" - Label4.Text = "Esta carpeta contiene " & CheckedListBox1.Items.Count & " paquete" & If(CheckedListBox1.Items.Count = 1, ".", "s.") - Case "FRA" - Label4.Text = "Ce répertoire contient " & CheckedListBox1.Items.Count & " paquet" & If(CheckedListBox1.Items.Count = 1, ".", "s.") - Case "PTB", "PTG" - Label4.Text = "Esta pasta contém " & CheckedListBox1.Items.Count & " pacote" & If(CheckedListBox1.Items.Count = 1, ".", "s.") - Case "ITA" - Label4.Text = "Questa cartella contiene " & CheckedListBox1.Items.Count & " pacchett" & If(CheckedListBox1.Items.Count = 1, "o.", "i.") - End Select - Case 1 - Label4.Text = "This folder contains " & CheckedListBox1.Items.Count & " package" & If(CheckedListBox1.Items.Count = 1, ".", "s.") - Case 2 - Label4.Text = "Esta carpeta contiene " & CheckedListBox1.Items.Count & " paquete" & If(CheckedListBox1.Items.Count = 1, ".", "s.") - Case 3 - Label4.Text = "Ce répertoire contient " & CheckedListBox1.Items.Count & " paquet" & If(CheckedListBox1.Items.Count = 1, ".", "s.") - Case 4 - Label4.Text = "Esta pasta contém " & CheckedListBox1.Items.Count & " pacote" & If(CheckedListBox1.Items.Count = 1, ".", "s.") - Case 5 - Label4.Text = "Questa cartella contiene " & CheckedListBox1.Items.Count & " pacchett" & If(CheckedListBox1.Items.Count = 1, "o.", "i.") - End Select + If CheckedListBox1.Items.Count = 1 Then + Label4.Text = LocalizationService.ForSection("AddPackage.CountItems").Format("Folder.Contains.Label", CheckedListBox1.Items.Count) + Else + Label4.Text = LocalizationService.ForSection("AddPackage.CountItems").Format("Folder.Packages.Label", CheckedListBox1.Items.Count) + End If End If End Sub Private Sub AddPackageDlg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Add packages" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Package source:" - Label3.Text = "Package operation:" - Button1.Text = "Browse..." - Button2.Text = "Select all" - Button3.Text = "Select none" - Button4.Text = "Add update manifest..." - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - RadioButton1.Text = "Scan folder recursively for packages" - RadioButton2.Text = "Choose which packages to add:" - CheckBox1.Text = "Ignore applicability checks (not recommended)" - CheckBox2.Text = "Skip package installation if online operations are pending" - CheckBox3.Text = "Commit image after adding packages" - FolderBrowserDialog1.Description = "Specify the folder containing CAB or MSU packages:" - GroupBox1.Text = "Packages" - GroupBox2.Text = "Options" - Case "ESN" - Text = "Añadir paquetes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origen:" - Label3.Text = "Operación de paquetes:" - Button1.Text = "Examinar..." - Button2.Text = "Todos los paquetes" - Button3.Text = "Ningún paquete" - Button4.Text = "Añadir manifiesto de actualización..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - RadioButton1.Text = "Escanear carpeta de forma recursiva por paquetes" - RadioButton2.Text = "Elegir qué paquetes añadir:" - CheckBox1.Text = "Ignorar comprobaciones de aplicabilidad (no recomendado)" - CheckBox2.Text = "Omitir instalación de paquetes si operaciones en línea deben realizarse" - CheckBox3.Text = "Guardar imagen tras añadir paquetes" - FolderBrowserDialog1.Description = "Especifique la carpeta que contenga paquetes CAB o MSU:" - GroupBox1.Text = "Paquetes" - GroupBox2.Text = "Opciones" - Case "FRA" - Text = "Ajouter des paquets" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source des paquets :" - Label3.Text = "Opération d'ajout des paquets :" - Button1.Text = "Parcourir..." - Button2.Text = "Sélectionner tout" - Button3.Text = "Sélectionner aucun" - Button4.Text = "Ajouter un manifeste de mise à jour..." - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - RadioButton1.Text = "Analyse récursive du dossier à la recherche des paquets à ajouter" - RadioButton2.Text = "Choisissez les paquets à ajouter :" - CheckBox1.Text = "Ignorer les contrôles d'applicabilité (non recommandé)" - CheckBox2.Text = "Sauter l'installation des paquets si les opérations en ligne sont en cours" - CheckBox3.Text = "Sauvegarder l'image après l'ajout des paquets" - FolderBrowserDialog1.Description = "Indiquez le répertoire qui contient les paquets CAB ou MSU :" - GroupBox1.Text = "Paquets" - GroupBox2.Text = "Paramètres" - Case "PTB", "PTG" - Text = "Adicionar pacotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origem do pacote:" - Label3.Text = "Operação do pacote:" - Button1.Text = "Navegar..." - Button2.Text = "Selecionar tudo" - Button3.Text = "Não selecionar nenhum" - Button4.Text = "Adicionar manifesto de atualização..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - RadioButton1.Text = "Procurar pacotes na pasta de forma recursiva" - RadioButton2.Text = "Escolher quais os pacotes a adicionar:" - CheckBox1.Text = "Ignorar verificações de aplicabilidade (não recomendado)" - CheckBox2.Text = "Ignorar a instalação de pacotes se estiverem pendentes operações online" - CheckBox3.Text = "Confirmar imagem depois de adicionar pacotes" - FolderBrowserDialog1.Description = "Especificar a pasta que contém os pacotes CAB ou MSU:" - GroupBox1.Text = "Pacotes" - GroupBox2.Text = "Opções" - Case "ITA" - Text = "Aggiungi pacchetti" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origine pacchetto:" - Label3.Text = "Operazione pacchetto:" - Button1.Text = "Sfoglia..." - Button2.Text = "Seleziona tutto" - Button3.Text = "Seleziona nessuno" - Button4.Text = "Aggiungere il manifesto di aggiornamento..." - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - RadioButton1.Text = "Scansiona la cartella in modo ricorsivo per i pacchetti" - RadioButton2.Text = "Scegliere quali pacchetti aggiungere:" - CheckBox1.Text = "Ignorare i controlli di applicabilità (non consigliato)" - CheckBox2.Text = "Salta l'installazione del pacchetto se sono in corso operazioni online" - CheckBox3.Text = "Applica l'immagine dopo l'aggiunta dei pacchetti" - FolderBrowserDialog1.Description = "Specificare la cartella contenente i pacchetti CAB o MSU:" - GroupBox1.Text = "Pacchetti" - GroupBox2.Text = "Opzioni" - End Select - Case 1 - Text = "Add packages" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Package source:" - Label3.Text = "Package operation:" - Button1.Text = "Browse..." - Button2.Text = "Select all" - Button3.Text = "Select none" - Button4.Text = "Add update manifest..." - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - RadioButton1.Text = "Scan folder recursively for packages" - RadioButton2.Text = "Choose which packages to add:" - CheckBox1.Text = "Ignore applicability checks (not recommended)" - CheckBox2.Text = "Skip package installation if online operations are pending" - CheckBox3.Text = "Commit image after adding packages" - FolderBrowserDialog1.Description = "Specify the folder containing CAB or MSU packages:" - GroupBox1.Text = "Packages" - GroupBox2.Text = "Options" - Case 2 - Text = "Añadir paquetes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origen:" - Label3.Text = "Operación de paquetes:" - Button1.Text = "Examinar..." - Button2.Text = "Todos los paquetes" - Button3.Text = "Ningún paquete" - Button4.Text = "Añadir manifiesto de actualización..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - RadioButton1.Text = "Escanear carpeta de forma recursiva por paquetes" - RadioButton2.Text = "Elegir qué paquetes añadir:" - CheckBox1.Text = "Ignorar comprobaciones de aplicabilidad (no recomendado)" - CheckBox2.Text = "Omitir instalación de paquetes si operaciones en línea deben realizarse" - CheckBox3.Text = "Guardar imagen tras añadir paquetes" - FolderBrowserDialog1.Description = "Especifique la carpeta que contenga paquetes CAB o MSU:" - GroupBox1.Text = "Paquetes" - GroupBox2.Text = "Opciones" - Case 3 - Text = "Ajouter des paquets" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Source des paquets :" - Label3.Text = "Opération d'ajout des paquets :" - Button1.Text = "Parcourir..." - Button2.Text = "Sélectionner tout" - Button3.Text = "Sélectionner aucun" - Button4.Text = "Ajouter un manifeste de mise à jour..." - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - RadioButton1.Text = "Analyse récursive du dossier à la recherche des paquets à ajouter" - RadioButton2.Text = "Choisissez les paquets à ajouter :" - CheckBox1.Text = "Ignorer les contrôles d'applicabilité (non recommandé)" - CheckBox2.Text = "Sauter l'installation des paquets si les opérations en ligne sont en cours" - CheckBox3.Text = "Sauvegarder l'image après l'ajout des paquets" - FolderBrowserDialog1.Description = "Indiquez le répertoire qui contient les paquets CAB ou MSU :" - GroupBox1.Text = "Paquets" - GroupBox2.Text = "Paramètres" - Case 4 - Text = "Adicionar pacotes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origem do pacote:" - Label3.Text = "Operação do pacote:" - Button1.Text = "Navegar..." - Button2.Text = "Selecionar tudo" - Button3.Text = "Não selecionar nenhum" - Button4.Text = "Adicionar manifesto de atualização..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - RadioButton1.Text = "Procurar pacotes na pasta de forma recursiva" - RadioButton2.Text = "Escolher quais os pacotes a adicionar:" - CheckBox1.Text = "Ignorar verificações de aplicabilidade (não recomendado)" - CheckBox2.Text = "Ignorar a instalação de pacotes se estiverem pendentes operações online" - CheckBox3.Text = "Confirmar imagem depois de adicionar pacotes" - FolderBrowserDialog1.Description = "Especificar a pasta que contém os pacotes CAB ou MSU:" - GroupBox1.Text = "Pacotes" - GroupBox2.Text = "Opções" - Case 5 - Text = "Aggiungi pacchetti" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Origine pacchetto:" - Label3.Text = "Operazione pacchetto:" - Button1.Text = "Sfoglia..." - Button2.Text = "Seleziona tutto" - Button3.Text = "Seleziona nessuno" - Button4.Text = "Aggiungere il manifesto di aggiornamento..." - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - RadioButton1.Text = "Scansiona la cartella in modo ricorsivo per i pacchetti" - RadioButton2.Text = "Scegliere quali pacchetti aggiungere:" - CheckBox1.Text = "Ignorare i controlli di applicabilità (non consigliato)" - CheckBox2.Text = "Salta l'installazione del pacchetto se sono in corso operazioni online" - CheckBox3.Text = "Applica l'immagine dopo l'aggiunta dei pacchetti" - FolderBrowserDialog1.Description = "Specificare la cartella contenente i pacchetti CAB o MSU:" - GroupBox1.Text = "Pacchetti" - GroupBox2.Text = "Opzioni" - End Select + Text = LocalizationService.ForSection("AddPackage")("AddPackages.Label") + ImageTaskHeader1.ItemText = Text + Label2.Text = LocalizationService.ForSection("AddPackage")("PackageSource.Label") + Label3.Text = LocalizationService.ForSection("AddPackage")("PackageOperation.Label") + Button1.Text = LocalizationService.ForSection("AddPackage")("Browse.Button") + Button2.Text = LocalizationService.ForSection("AddPackage")("SelectAll.Button") + Button3.Text = LocalizationService.ForSection("AddPackage")("SelectNone.Button") + Button4.Text = LocalizationService.ForSection("AddPackage")("Update.Manifest.Button") + Cancel_Button.Text = LocalizationService.ForSection("AddPackage")("Cancel.Button") + OK_Button.Text = LocalizationService.ForSection("AddPackage")("Ok.Button") + RadioButton1.Text = LocalizationService.ForSection("AddPkg")("ScanRecursive.RadioButton") + RadioButton2.Text = LocalizationService.ForSection("AddPackage")("Packages.Choose.RadioButton") + CheckBox1.Text = LocalizationService.ForSection("AddPackage")("Ignore.CheckBox") + CheckBox2.Text = LocalizationService.ForSection("AddPkg")("Skip.Online.Install.CheckBox") + CheckBox3.Text = LocalizationService.ForSection("AddPackage")("CommitImage.CheckBox") + FolderBrowserDialog1.Description = LocalizationService.ForSection("AddPackage")("CabFolder.Description") + GroupBox1.Text = LocalizationService.ForSection("AddPackage")("Packages.Group") + GroupBox2.Text = LocalizationService.ForSection("AddPackage")("Options.Group") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -477,33 +205,8 @@ Public Class AddPackageDlg TextBox1.ForeColor = ForeColor Control.CheckForIllegalCrossThreadCalls = False If CheckedListBox1.Items.Count = 0 Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "Please specify a directory where CAB or MSU files are located." - Case "ESN" - Label4.Text = "Especifique el directorio donde se encuentran archivos CAB o MSU." - Case "FRA" - Label4.Text = "Veuillez indiquer un répertoire où se trouvent les fichiers CAB ou MSU." - Case "PTB", "PTG" - Label4.Text = "Especifique um diretório onde estão localizados os ficheiros CAB ou MSU." - Case "ITA" - Label4.Text = "Specificare una directory in cui si trovano i file CAB o MSU" - End Select - Case 1 - Label4.Text = "Please specify a directory where CAB or MSU files are located." - Case 2 - Label4.Text = "Especifique el directorio donde se encuentran archivos CAB o MSU." - Case 3 - Label4.Text = "Veuillez indiquer un répertoire où se trouvent les fichiers CAB ou MSU." - Case 4 - Label4.Text = "Especifique um diretório onde estão localizados os ficheiros CAB ou MSU." - Case 5 - Label4.Text = "Specificare una directory in cui si trovano i file CAB o MSU" - End Select + Label4.Text = LocalizationService.ForSection("AddPackage")("Dir.CAB.Required.Label") End If - Language = MainForm.Language CheckBox3.Enabled = If(MainForm.OnlineManagement Or MainForm.OfflineManagement, False, True) Dim handle As IntPtr = WindowHelper.GetWindowHandle(Me) WindowHelper.ToggleDarkTitleBar(handle, CurrentTheme.IsDark) diff --git a/Panels/Img_Ops/Pkgs/MUMAdditionDialog.Designer.vb b/Panels/Img_Ops/Pkgs/MUMAdditionDialog.Designer.vb index 1f09ea170..54f4cc544 100644 --- a/Panels/Img_Ops/Pkgs/MUMAdditionDialog.Designer.vb +++ b/Panels/Img_Ops/Pkgs/MUMAdditionDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MUMAdditionDialog Inherits System.Windows.Forms.Form @@ -57,7 +57,7 @@ Partial Class MUMAdditionDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.MUMAdd")("Ok.Button") ' 'Cancel_Button ' @@ -68,7 +68,7 @@ Partial Class MUMAdditionDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.MUMAdd")("Cancel.Button") ' 'Label1 ' @@ -79,7 +79,7 @@ Partial Class MUMAdditionDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 46) Me.Label1.TabIndex = 1 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.MUMAdd")("DialogHelp.Message") ' 'TextBox1 ' @@ -97,7 +97,7 @@ Partial Class MUMAdditionDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(160, 13) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Path of the manifest file to add:" + Me.Label2.Text = LocalizationService.ForSection("Designer.MUMAdd")("Path.Manifest.File.Label") ' 'Button1 ' @@ -106,12 +106,12 @@ Partial Class MUMAdditionDialog Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 3 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.MUMAdd")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Microsoft Update Manifest (MUM) files|update.mum" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.MUMAdd")("MUMFiles.Filter") ' 'MUMAdditionDialog ' @@ -132,7 +132,7 @@ Partial Class MUMAdditionDialog Me.Name = "MUMAdditionDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add update manifest" + Me.Text = LocalizationService.ForSection("Designer.MUMAdd")("Update.Manifest.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/Pkgs/MUMAdditionDialog.resx b/Panels/Img_Ops/Pkgs/MUMAdditionDialog.resx index 72f25cb4d..d81b82914 100644 --- a/Panels/Img_Ops/Pkgs/MUMAdditionDialog.resx +++ b/Panels/Img_Ops/Pkgs/MUMAdditionDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,11 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time. - -Do note that this is for advanced use only and may compromise the target Windows image. - 17, 17 diff --git a/Panels/Img_Ops/Pkgs/MUMAdditionDialog.vb b/Panels/Img_Ops/Pkgs/MUMAdditionDialog.vb index 152d905c4..faa4ff896 100644 --- a/Panels/Img_Ops/Pkgs/MUMAdditionDialog.vb +++ b/Panels/Img_Ops/Pkgs/MUMAdditionDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class MUMAdditionDialog @@ -16,91 +16,12 @@ Public Class MUMAdditionDialog End Sub Private Sub MUMAdditionDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Add update manifest" - Label1.Text = "This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time." & CrLf & CrLf & - "Do note that this is for advanced use only and may compromise the target Windows image." - Label2.Text = "Path of the manifest file to add:" - Button1.Text = "Browse..." - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - Case "ESN" - Text = "Añadir manifiesto de actualización" - Label1.Text = "Este diálogo le permite añadir un archivo de manifiesto de actualización de Microsoft (MUM) a la imagen de destino. Solo puede especificar uno a la vez." & CrLf & CrLf & - "Dese cuenta de que esto es solo para usos avanzados y que podría dañar la imagen de Windows de destino." - Label2.Text = "Ubicación del archivo de manifesto a añadir:" - Button1.Text = "Examinar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - Case "FRA" - Text = "Ajouter un manifeste de mise à jour" - Label1.Text = "Cette boîte de dialogue vous permet d'ajouter un fichier Microsoft Update Manifest (MUM) à l'image cible. Vous ne pouvez en spécifier qu'un seul à la fois." & CrLf & CrLf & - "Notez que cette opération est réservée à un usage avancé et qu'elle peut compromettre l'image Windows cible." - Label2.Text = "Chemin du fichier manifeste à ajouter :" - Button1.Text = "Parcourir..." - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - Case "PTB", "PTG" - Text = "Adicionar manifesto de atualização" - Label1.Text = "Esta caixa de diálogo permite-lhe adicionar um ficheiro Microsoft Update Manifest (MUM) à imagem de destino. Só pode especificar um de cada vez." & CrLf & CrLf & - "Tenha em atenção que isto é apenas para utilização avançada e pode comprometer a imagem de destino do Windows." - Label2.Text = "Caminho do ficheiro de manifesto a adicionar:" - Button1.Text = "Procurar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - Case "ITA" - Text = "Aggiungi manifesto di aggiornamento" - Label1.Text = "Questa finestra di dialogo consente di aggiungere un file Microsoft Update Manifest (MUM) all'immagine di destinazione. È possibile specificarne solo uno alla volta." & CrLf & CrLf & - "Si noti che questa operazione è riservata a un uso avanzato e può compromettere l'immagine di Windows di destinazione." - Label2.Text = "Percorso del file manifest da aggiungere:" - Button1.Text = "Sfoglia..." - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - End Select - Case 1 - Text = "Add update manifest" - Label1.Text = "This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time." & CrLf & CrLf & - "Do note that this is for advanced use only and may compromise the target Windows image." - Label2.Text = "Path of the manifest file to add:" - Button1.Text = "Browse..." - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - Case 2 - Text = "Añadir manifiesto de actualización" - Label1.Text = "Este diálogo le permite añadir un archivo de manifiesto de actualización de Microsoft (MUM) a la imagen de destino. Solo puede especificar uno a la vez." & CrLf & CrLf & - "Dese cuenta de que esto es solo para usos avanzados y que podría dañar la imagen de Windows de destino." - Label2.Text = "Ubicación del archivo de manifesto a añadir:" - Button1.Text = "Examinar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - Case 3 - Text = "Ajouter un manifeste de mise à jour" - Label1.Text = "Cette boîte de dialogue vous permet d'ajouter un fichier Microsoft Update Manifest (MUM) à l'image cible. Vous ne pouvez en spécifier qu'un seul à la fois." & CrLf & CrLf & - "Notez que cette opération est réservée à un usage avancé et qu'elle peut compromettre l'image Windows cible." - Label2.Text = "Chemin du fichier manifeste à ajouter :" - Button1.Text = "Parcourir..." - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - Case 4 - Text = "Adicionar manifesto de atualização" - Label1.Text = "Esta caixa de diálogo permite-lhe adicionar um ficheiro Microsoft Update Manifest (MUM) à imagem de destino. Só pode especificar um de cada vez." & CrLf & CrLf & - "Tenha em atenção que isto é apenas para utilização avançada e pode comprometer a imagem de destino do Windows." - Label2.Text = "Caminho do ficheiro de manifesto a adicionar:" - Button1.Text = "Procurar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - Case 5 - Text = "Aggiungi manifesto di aggiornamento" - Label1.Text = "Questa finestra di dialogo consente di aggiungere un file Microsoft Update Manifest (MUM) all'immagine di destinazione. È possibile specificarne solo uno alla volta." & CrLf & CrLf & - "Si noti che questa operazione è riservata a un uso avanzato e può compromettere l'immagine di Windows di destinazione." - Label2.Text = "Percorso del file manifest da aggiungere:" - Button1.Text = "Sfoglia..." - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - End Select + Text = LocalizationService.ForSection("MUMAdditionDialog")("Add.Update.Manifest.Label") + Label1.Text = LocalizationService.ForSection("MUMAdditionDialog")("DialogHelp.Message") & LocalizationService.ForSection("MUMAdditionDialog")("Note.Advanced.Only.Message") + Label2.Text = LocalizationService.ForSection("MUMAdditionDialog")("Path.Manifest.File.Label") + Button1.Text = LocalizationService.ForSection("MUMAdditionDialog")("Browse.Button") + Cancel_Button.Text = LocalizationService.ForSection("MUMAdditionDialog")("Cancel.Button") + OK_Button.Text = LocalizationService.ForSection("MUMAdditionDialog")("Ok.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor TextBox1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Img_Ops/Pkgs/RemPackage.Designer.vb b/Panels/Img_Ops/Pkgs/RemPackage.Designer.vb index 4c3ae24d0..8449c41a4 100644 --- a/Panels/Img_Ops/Pkgs/RemPackage.Designer.vb +++ b/Panels/Img_Ops/Pkgs/RemPackage.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class RemPackage Inherits System.Windows.Forms.Form @@ -67,7 +67,7 @@ Partial Class RemPackage Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.RemPackage")("Ok.Button") ' 'Cancel_Button ' @@ -78,7 +78,7 @@ Partial Class RemPackage Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.RemPackage")("Cancel.Button") ' 'GroupBox1 ' @@ -95,7 +95,7 @@ Partial Class RemPackage Me.GroupBox1.Size = New System.Drawing.Size(760, 460) Me.GroupBox1.TabIndex = 5 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Package removal" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.RemPackage")("PackageRemoval.Group") ' 'Panel2 ' @@ -146,7 +146,7 @@ Partial Class RemPackage Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 4 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.RemPackage")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -164,8 +164,7 @@ Partial Class RemPackage Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(684, 41) Me.Label4.TabIndex = 2 - Me.Label4.Text = "NOTE: the program may show packages that weren't added in the first place. Howeve" & _ - "r, if a package is not added, the program will skip it." + Me.Label4.Text = LocalizationService.ForSection("Designer.RemPackage")("Note.May.Message") ' 'Label3 ' @@ -175,7 +174,7 @@ Partial Class RemPackage Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(86, 13) Me.Label3.TabIndex = 2 - Me.Label3.Text = "Package source:" + Me.Label3.Text = LocalizationService.ForSection("Designer.RemPackage")("PackageSource.Label") ' 'RadioButton2 ' @@ -184,7 +183,7 @@ Partial Class RemPackage Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(129, 17) Me.RadioButton2.TabIndex = 0 - Me.RadioButton2.Text = "Specify package files:" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.RemPackage")("Package.Files.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -196,12 +195,12 @@ Partial Class RemPackage Me.RadioButton1.Size = New System.Drawing.Size(141, 17) Me.RadioButton1.TabIndex = 0 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Specify package names:" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.RemPackage")("Package.Names.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Please specify a package source:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.RemPackage")("PackageSource.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer Me.FolderBrowserDialog1.ShowNewFolderButton = False ' @@ -236,7 +235,7 @@ Partial Class RemPackage Me.Name = "RemPackage" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Remove packages" + Me.Text = LocalizationService.ForSection("Designer.RemPackage")("RemovePackages.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/Pkgs/RemPackage.vb b/Panels/Img_Ops/Pkgs/RemPackage.vb index 7e1958ccf..62f94ff1f 100644 --- a/Panels/Img_Ops/Pkgs/RemPackage.vb +++ b/Panels/Img_Ops/Pkgs/RemPackage.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Dism @@ -24,35 +24,11 @@ Public Class RemPackage ProgressPanel.pkgRemovalCount = pkgRemovalCount If CheckedListBox1.CheckedItems.Count <= 0 Then DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MessageBox.Show(MainForm, "Please select packages to remove, and try again.", "No packages selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ESN" - MessageBox.Show(MainForm, "Seleccione paquetes a eliminar, e inténtelo de nuevo.", "No se han seleccionado paquetes", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "FRA" - MessageBox.Show(MainForm, "Veuillez sélectionner les paquets à supprimer et réessayer.", "Aucun paquet sélectionné", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "PTB", "PTG" - MessageBox.Show(MainForm, "Por favor, seleccione os pacotes a remover e tente novamente.", "Nenhum pacote selecionado", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ITA" - MessageBox.Show(MainForm, "Selezionare i pacchetti da rimuovere e riprovare", "Nessun pacchetto selezionato", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select - Case 1 - MessageBox.Show(MainForm, "Please select packages to remove, and try again.", "No packages selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 2 - MessageBox.Show(MainForm, "Seleccione paquetes a eliminar, e inténtelo de nuevo.", "No se han seleccionado paquetes", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 3 - MessageBox.Show(MainForm, "Veuillez sélectionner les paquets à supprimer et réessayer.", "Aucun paquet sélectionné", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 4 - MessageBox.Show(MainForm, "Por favor, seleccione os pacotes a remover e tente novamente.", "Nenhum pacote selecionado", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 5 - MessageBox.Show(MainForm, "Selezionare i pacchetti da rimuovere e riprovare", "Nessun pacchetto selezionato", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select + MessageBox.Show(MainForm, LocalizationService.ForSection("RemPackage.Validation")("No.Packages.Selected.Message"), LocalizationService.ForSection("RemPackage.Validation")("Packages.Selected.None.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub Else If pkgRemovalCount > 65535 Then - MessageBox.Show(MainForm, "Right now, due to program limitations, you can select 65535 packages or less.", "Current program limitation", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(MainForm, LocalizationService.ForSection("Panels.Packages.Remove")("CurrentLimit.Message"), LocalizationService.ForSection("Panels.Packages.Remove")("CurrentLimit.Detail"), MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub Else Try @@ -75,35 +51,11 @@ Public Class RemPackage ProgressPanel.pkgRemovalCount = pkgRemovalCount If CheckedListBox2.CheckedItems.Count <= 0 Then DynaLog.LogMessage("No items have been added to the queue.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MessageBox.Show(MainForm, "Please select packages to remove, and try again.", "No packages selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ESN" - MessageBox.Show(MainForm, "Seleccione paquetes a eliminar, e inténtelo de nuevo.", "No se han seleccionado paquetes", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "FRA" - MessageBox.Show(MainForm, "Veuillez sélectionner les paquets à supprimer et réessayer.", "Aucun paquet sélectionné", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "PTB", "PTG" - MessageBox.Show(MainForm, "Por favor, seleccione os pacotes a remover e tente novamente.", "Nenhum pacote selecionado", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case "ITA" - MessageBox.Show(MainForm, "Selezionare i pacchetti da rimuovere e riprovare", "Nessun pacchetto selezionato", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select - Case 1 - MessageBox.Show(MainForm, "Please select packages to remove, and try again.", "No packages selected", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 2 - MessageBox.Show(MainForm, "Seleccione paquetes a eliminar, e inténtelo de nuevo.", "No se han seleccionado paquetes", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 3 - MessageBox.Show(MainForm, "Veuillez sélectionner les paquets à supprimer et réessayer.", "Aucun paquet sélectionné", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 4 - MessageBox.Show(MainForm, "Por favor, seleccione os pacotes a remover e tente novamente.", "Nenhum pacote selecionado", MessageBoxButtons.OK, MessageBoxIcon.Error) - Case 5 - MessageBox.Show(MainForm, "Selezionare i pacchetti da rimuovere e riprovare", "Nessun pacchetto selezionato", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Select + MessageBox.Show(MainForm, LocalizationService.ForSection("RemPackage.Validation")("No.Packages.Selected.Message"), LocalizationService.ForSection("RemPackage.Validation")("Packages.Selected.None.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub Else If pkgRemovalCount > 65535 Then - MessageBox.Show(MainForm, "Right now, due to program limitations, you can select 65535 packages or less.", "Current program limitation", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(MainForm, LocalizationService.ForSection("Panels.Packages.Remove")("CurrentLimit.SecondMessage"), LocalizationService.ForSection("Panels.Packages.Remove")("CurrentLimit.SecondDetail"), MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub Else Try @@ -153,131 +105,17 @@ Public Class RemPackage If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Remove packages" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Package source:" - Label4.Text = "NOTE: the program may show packages that weren't added in the first place. However, if a package is not added, the program will skip it." - GroupBox1.Text = "Package removal" - RadioButton1.Text = "Specify package names:" - RadioButton2.Text = "Specify package files:" - Button1.Text = "Browse..." - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - FolderBrowserDialog1.Description = "Please specify a package source:" - Case "ESN" - Text = "Eliminar paquetes" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Origen:" - Label4.Text = "NOTA: el programa podría mostrar paquetes que no se hayan añadido en primer lugar. Si un paquete no se ha añadido, el programa lo omitirá." - GroupBox1.Text = "Eliminación de paquetes" - RadioButton1.Text = "Especificar nombres de paquetes:" - RadioButton2.Text = "Especificar archivos de paquetes:" - Button1.Text = "Examinar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - FolderBrowserDialog1.Description = "Especifique un origen de paquetes:" - Case "FRA" - Text = "Supprimer les paquets" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Source du paquet :" - Label4.Text = "REMARQUE : le programme peut afficher des paquets qui n'ont pas été ajoutés en premier lieu. Toutefois, si un paquet n'est pas ajouté, le programme l'ignorera." - GroupBox1.Text = "Suppression des paquets" - RadioButton1.Text = "Spécifiez les noms des paquets :" - RadioButton2.Text = "Spécifier les fichiers des paquets :" - Button1.Text = "Parcourir..." - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - FolderBrowserDialog1.Description = "Veuillez indiquer la source des paquets :" - Case "PTB", "PTG" - Text = "Remover pacotes" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Origem dos pacotes:" - Label4.Text = "NOTA: o programa pode mostrar pacotes que não foram adicionados em primeiro lugar. No entanto, se um pacote não for adicionado, o programa irá ignorá-lo." - GroupBox1.Text = "Remoção de pacotes" - RadioButton1.Text = "Especificar os nomes dos pacotes:" - RadioButton2.Text = "Especificar ficheiros do pacote:" - Button1.Text = "Navegar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - FolderBrowserDialog1.Description = "Especifique uma origem de pacote:" - Case "ITA" - Text = "Rimuovi pacchetti" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Origine del pacchetto:" - Label4.Text = "NOTA: il programma può mostrare pacchetti che non sono stati aggiunti. Tuttavia, se un pacchetto non viene aggiunto, il programma lo salta." - GroupBox1.Text = "Rimozione del pacchetto" - RadioButton1.Text = "Specificare i nomi dei pacchetti:" - RadioButton2.Text = "Specificare i file del pacchetto:" - Button1.Text = "Sfoglia..." - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - FolderBrowserDialog1.Description = "Specificare l'origine del pacchetto:" - End Select - Case 1 - Text = "Remove packages" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Package source:" - Label4.Text = "NOTE: the program may show packages that weren't added in the first place. However, if a package is not added, the program will skip it." - GroupBox1.Text = "Package removal" - RadioButton1.Text = "Specify package names:" - RadioButton2.Text = "Specify package files:" - Button1.Text = "Browse..." - Cancel_Button.Text = "Cancel" - OK_Button.Text = "OK" - FolderBrowserDialog1.Description = "Please specify a package source:" - Case 2 - Text = "Eliminar paquetes" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Origen:" - Label4.Text = "NOTA: el programa podría mostrar paquetes que no se hayan añadido en primer lugar. Si un paquete no se ha añadido, el programa lo omitirá." - GroupBox1.Text = "Eliminación de paquetes" - RadioButton1.Text = "Especificar nombres de paquetes:" - RadioButton2.Text = "Especificar archivos de paquetes:" - Button1.Text = "Examinar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "Aceptar" - FolderBrowserDialog1.Description = "Especifique un origen de paquetes:" - Case 3 - Text = "Supprimer les paquets" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Source du paquet :" - Label4.Text = "REMARQUE : le programme peut afficher des paquets qui n'ont pas été ajoutés en premier lieu. Toutefois, si un paquet n'est pas ajouté, le programme l'ignorera." - GroupBox1.Text = "Suppression des paquets" - RadioButton1.Text = "Spécifiez les noms des paquets :" - RadioButton2.Text = "Spécifier les fichiers des paquets :" - Button1.Text = "Parcourir..." - Cancel_Button.Text = "Annuler" - OK_Button.Text = "OK" - FolderBrowserDialog1.Description = "Veuillez indiquer la source des paquets :" - Case 4 - Text = "Remover pacotes" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Origem dos pacotes:" - Label4.Text = "NOTA: o programa pode mostrar pacotes que não foram adicionados em primeiro lugar. No entanto, se um pacote não for adicionado, o programa irá ignorá-lo." - GroupBox1.Text = "Remoção de pacotes" - RadioButton1.Text = "Especificar os nomes dos pacotes:" - RadioButton2.Text = "Especificar ficheiros do pacote:" - Button1.Text = "Navegar..." - Cancel_Button.Text = "Cancelar" - OK_Button.Text = "OK" - FolderBrowserDialog1.Description = "Especifique uma origem de pacote:" - Case 5 - Text = "Rimuovi pacchetti" - ImageTaskHeader1.ItemText = Text - Label3.Text = "Origine del pacchetto:" - Label4.Text = "NOTA: il programma può mostrare pacchetti che non sono stati aggiunti. Tuttavia, se un pacchetto non viene aggiunto, il programma lo salta." - GroupBox1.Text = "Rimozione del pacchetto" - RadioButton1.Text = "Specificare i nomi dei pacchetti:" - RadioButton2.Text = "Specificare i file del pacchetto:" - Button1.Text = "Sfoglia..." - Cancel_Button.Text = "Annullare" - OK_Button.Text = "OK" - FolderBrowserDialog1.Description = "Specificare l'origine del pacchetto:" - End Select + Text = LocalizationService.ForSection("RemPackage")("RemovePackages.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("RemPackage").Format("Image.Task.Header.Label", Text) + Label3.Text = LocalizationService.ForSection("RemPackage")("PackageSource.Label") + Label4.Text = LocalizationService.ForSection("RemPackage")("Note.May.Message") + GroupBox1.Text = LocalizationService.ForSection("RemPackage")("PackageRemoval.Group") + RadioButton1.Text = LocalizationService.ForSection("RemPackage")("Package.Names.RadioButton") + RadioButton2.Text = LocalizationService.ForSection("RemPackage")("Package.Files.RadioButton") + Button1.Text = LocalizationService.ForSection("RemPackage")("Browse.Button") + Cancel_Button.Text = LocalizationService.ForSection("RemPackage")("Cancel.Button") + OK_Button.Text = LocalizationService.ForSection("RemPackage")("Ok.Button") + FolderBrowserDialog1.Description = LocalizationService.ForSection("RemPackage")("PackageSource.Description") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -341,31 +179,7 @@ Public Class RemPackage End Try If CheckedListBox2.Items.Count <= 0 Then DynaLog.LogMessage("There are no items in the selected folder.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("We couldn't scan the package source for CAB files. Please try again.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - Case "ESN" - MsgBox("No pudimos escanear el origen de paquetes por archivos CAB. Inténtelo de nuevo.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - Case "FRA" - MsgBox("Nous n'avons pas pu analyser la source du paquet pour les fichiers CAB. Veuillez réessayer.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - Case "PTB", "PTG" - MsgBox("Não foi possível procurar ficheiros CAB na fonte do pacote. Por favor, tente novamente.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - Case "ITA" - MsgBox("Non è stato possibile eseguire la scansione dell'origine del pacchetto per i file CAB. Riprovare.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - End Select - Case 1 - MsgBox("We couldn't scan the package source for CAB files. Please try again.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - Case 2 - MsgBox("No pudimos escanear el origen de paquetes por archivos CAB. Inténtelo de nuevo.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - Case 3 - MsgBox("Nous n'avons pas pu analyser la source du paquet pour les fichiers CAB. Veuillez réessayer.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - Case 4 - MsgBox("Não foi possível procurar ficheiros CAB na fonte do pacote. Por favor, tente novamente.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - Case 5 - MsgBox("Non è stato possibile eseguire la scansione dell'origine del pacchetto per i file CAB. Riprovare.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "DISMTools") - End Select + MsgBox(LocalizationService.ForSection("RemPackage")("Couldn.Tscan.Message"), MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, LocalizationService.ForSection("RemPackage")("DISMTools.Title")) End If End Sub End Class diff --git a/Panels/Img_Ops/ProvisioningPkgs/AddProvisioningPkg.Designer.vb b/Panels/Img_Ops/ProvisioningPkgs/AddProvisioningPkg.Designer.vb index 4176c2ca6..a0990aaf3 100644 --- a/Panels/Img_Ops/ProvisioningPkgs/AddProvisioningPkg.Designer.vb +++ b/Panels/Img_Ops/ProvisioningPkgs/AddProvisioningPkg.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddProvisioningPkg Inherits System.Windows.Forms.Form @@ -62,7 +62,7 @@ Partial Class AddProvisioningPkg Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ProvPackage")("Ok.Button") ' 'Cancel_Button ' @@ -73,7 +73,7 @@ Partial Class AddProvisioningPkg Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ProvPackage")("Cancel.Button") ' 'CheckBox1 ' @@ -83,7 +83,7 @@ Partial Class AddProvisioningPkg Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(277, 17) Me.CheckBox1.TabIndex = 9 - Me.CheckBox1.Text = "Commit image after adding this provisioning package" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ProvPackage")("CommitImage.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label2 @@ -93,7 +93,7 @@ Partial Class AddProvisioningPkg Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(76, 13) Me.Label2.TabIndex = 10 - Me.Label2.Text = "Package path:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ProvPackage")("PackagePath.Label") ' 'TextBox1 ' @@ -112,7 +112,7 @@ Partial Class AddProvisioningPkg Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 12 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ProvPackage")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label3 @@ -124,12 +124,11 @@ Partial Class AddProvisioningPkg Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(600, 46) Me.Label3.TabIndex = 13 - Me.Label3.Text = "This action can't be reverted. Once you add a provisioning package, you won't be " & _ - "able to remove it from your Windows image." + Me.Label3.Text = LocalizationService.ForSection("Designer.ProvPackage")("Action.Treverted.Add.Message") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Provisioning package|*.ppkg" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ProvPackage")("Package.Ppkg.Filter") ' 'Label4 ' @@ -138,7 +137,7 @@ Partial Class AddProvisioningPkg Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(73, 13) Me.Label4.TabIndex = 10 - Me.Label4.Text = "Catalog path:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ProvPackage")("CatalogPath.Label") ' 'TextBox2 ' @@ -157,12 +156,12 @@ Partial Class AddProvisioningPkg Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 12 - Me.Button2.Text = "Browse..." + Me.Button2.Text = LocalizationService.ForSection("Designer.ProvPackage")("Browse.Button") Me.Button2.UseVisualStyleBackColor = True ' 'OpenFileDialog2 ' - Me.OpenFileDialog2.Filter = "Catalog file|*.cat" + Me.OpenFileDialog2.Filter = LocalizationService.ForSection("Designer.ProvPackage")("Catalog.File.Cat.Filter") ' 'ImageTaskHeader1 ' @@ -202,7 +201,7 @@ Partial Class AddProvisioningPkg Me.Name = "AddProvisioningPkg" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add provisioning packages" + Me.Text = LocalizationService.ForSection("Designer.ProvPackage")("Add.Packages.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/ProvisioningPkgs/AddProvisioningPkg.vb b/Panels/Img_Ops/ProvisioningPkgs/AddProvisioningPkg.vb index 73aa0b781..5e86ff965 100644 --- a/Panels/Img_Ops/ProvisioningPkgs/AddProvisioningPkg.vb +++ b/Panels/Img_Ops/ProvisioningPkgs/AddProvisioningPkg.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -15,31 +15,7 @@ Public Class AddProvisioningPkg ProgressPanel.ppkgAdditionPackagePath = TextBox1.Text Else DynaLog.LogMessage("The provisioning package specified does not exist in the file system.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("The specified provisioning package does not exist. Make sure it exists in the file system and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("El paquete de aprovisionamiento especificado no existe. Asegúrese de que exista en el sistema de archivos e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Le paquet de provisionnement spécifié n'existe pas. Assurez-vous qu'il existe dans le système de fichiers et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("O pacote de provisionamento especificado não existe. Certifique-se de que existe no sistema de ficheiros e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Il pacchetto di provisioning specificato non esiste. Assicuratevi che esista nel file system e riprovate.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("The specified provisioning package does not exist. Make sure it exists in the file system and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("El paquete de aprovisionamiento especificado no existe. Asegúrese de que exista en el sistema de archivos e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Le paquet de provisionnement spécifié n'existe pas. Assurez-vous qu'il existe dans le système de fichiers et réessayez.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("O pacote de provisionamento especificado não existe. Certifique-se de que existe no sistema de ficheiros e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Il pacchetto di provisioning specificato non esiste. Assicuratevi che esista nel file system e riprovate.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ProvPackage.Validation")("PackageNotFound.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If DynaLog.LogMessage("Checking catalog path...") @@ -49,31 +25,7 @@ Public Class AddProvisioningPkg ElseIf TextBox2.Text <> "" And Not File.Exists(TextBox2.Text) Then DynaLog.LogMessage("Either no catalog path has been selected or it does not exist in the file system.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The catalog file specified doesn't exist. We won't use this file if you proceed." & CrLf & CrLf & "Do you want to continue?" - Case "ESN" - msg = "El archivo de catálogo especificado no existe. No usaremos este archivo si continúa." & CrLf & CrLf & "¿Desea continuar?" - Case "FRA" - msg = "Le fichier de catalogue spécifié n'existe pas. Nous n'utiliserons pas ce fichier si vous continuez." & CrLf & CrLf & "Voulez-vous continuer ?" - Case "PTB", "PTG" - msg = "O ficheiro de catálogo especificado não existe. Não utilizaremos este ficheiro se prosseguir." & CrLf & CrLf & "Deseja continuar?" - Case "ITA" - msg = "Il file di catalogo specificato non esiste. Non utilizzeremo questo file se si procede." & CrLf & CrLf & "Si desidera continuare?" - End Select - Case 1 - msg = "The catalog file specified doesn't exist. We won't use this file if you proceed." & CrLf & CrLf & "Do you want to continue?" - Case 2 - msg = "El archivo de catálogo especificado no existe. No usaremos este archivo si continúa." & CrLf & CrLf & "¿Desea continuar?" - Case 3 - msg = "Le fichier de catalogue spécifié n'existe pas. Nous n'utiliserons pas ce fichier si vous continuez." & CrLf & CrLf & "Voulez-vous continuer ?" - Case 4 - msg = "O ficheiro de catálogo especificado não existe. Não utilizaremos este ficheiro se prosseguir." & CrLf & CrLf & "Deseja continuar?" - Case 5 - msg = "Il file di catalogo specificato non esiste. Non utilizzeremo questo file se si procede." & CrLf & CrLf & "Si desidera continuare?" - End Select + msg = LocalizationService.ForSection("ProvPackage.Validation")("CatalogNotFound.Message") If MsgBox(msg, vbYesNo + vbExclamation, ImageTaskHeader1.ItemText) = MsgBoxResult.No Then Exit Sub End If @@ -81,31 +33,7 @@ Public Class AddProvisioningPkg ProgressPanel.ppkgAdditionCatalogPath = "" End If Else - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - MsgBox("No provisioning package has been specified. Please specify a provisioning package to add and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ESN" - MsgBox("No se ha especificado un paquete de aprovisionamiento. Especifique un paquete de aprovisionamiento a añadir e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "FRA" - MsgBox("Aucun paquet de provisionnement n'a été spécifié. Veuillez spécifier un paquet de provisionnement à ajouter et réessayer.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "PTB", "PTG" - MsgBox("Não foi especificado nenhum pacote de aprovisionamento. Especifique um pacote de provisionamento para adicionar e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case "ITA" - MsgBox("Non è stato specificato alcun pacchetto di provisioning. Specificare un pacchetto di provisioning da aggiungere e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select - Case 1 - MsgBox("No provisioning package has been specified. Please specify a provisioning package to add and try again.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 2 - MsgBox("No se ha especificado un paquete de aprovisionamiento. Especifique un paquete de aprovisionamiento a añadir e inténtelo de nuevo.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 3 - MsgBox("Aucun paquet de provisionnement n'a été spécifié. Veuillez spécifier un paquet de provisionnement à ajouter et réessayer.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 4 - MsgBox("Não foi especificado nenhum pacote de aprovisionamento. Especifique um pacote de provisionamento para adicionar e tente novamente.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - Case 5 - MsgBox("Non è stato specificato alcun pacchetto di provisioning. Specificare un pacchetto di provisioning da aggiungere e riprovare.", vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) - End Select + MsgBox(LocalizationService.ForSection("ProvPackage.Validation")("PackageRequired.Message"), vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If ProgressPanel.ppkgAdditionCommit = If(CheckBox1.Checked, True, False) @@ -158,121 +86,16 @@ Public Class AddProvisioningPkg End Sub Private Sub AddProvisioningPkg_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Add provisioning packages" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Package path:" - Label3.Text = "This action can't be reverted. Once you add a provisioning package, you won't be able to remove it from your Windows image." - Label4.Text = "Catalog path:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - CheckBox1.Text = "Commit image after adding this provisioning package" - Case "ESN" - Text = "Añadir paquete de aprovisionamiento" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ruta de paquete:" - Label3.Text = "Esta acción no puede ser revertida. Cuando añada un paquete de aprovisionamiento, no lo podrá eliminar de la imagen de Windows." - Label4.Text = "Ruta de catálogo:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - CheckBox1.Text = "Guardar imagen tras añadir este paquete de aprovisionamiento" - Case "FRA" - Text = "Ajouter des paquets de provisionnement" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Chemin du paquet :" - Label3.Text = "Cette action ne peut pas être annulée. Une fois que vous avez ajouté un package de provisionnement, vous ne pourrez plus le supprimer de votre image Windows." - Label4.Text = "Chemin du catalogue :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - CheckBox1.Text = "Enregistrer l'image après l'ajout de ce paquet de provisionnement" - Case "PTB", "PTG" - Text = "Adicionar pacotes de aprovisionamento" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Localização do pacote:" - Label3.Text = "Esta ação não pode ser revertida. Depois de adicionar um pacote de aprovisionamento, não o poderá remover da sua imagem do Windows." - Label4.Text = "Localização do catálogo:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - CheckBox1.Text = "Confirmar imagem após adicionar este pacote de provisionamento" - Case "ITA" - Text = "Aggiungi pacchetti di approvvigionamento" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Percorso del pacchetto:" - Label3.Text = "Questa azione non può essere annullata. Una volta aggiunto un pacchetto di approvvigionamento, non sarà più possibile rimuoverlo dall'immagine di Windows." - Label4.Text = "Percorso catalogo:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - CheckBox1.Text = "Applica l'immagine dopo aver aggiunto questo pacchetto di approvvigionamento" - End Select - Case 1 - Text = "Add provisioning packages" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Package path:" - Label3.Text = "This action can't be reverted. Once you add a provisioning package, you won't be able to remove it from your Windows image." - Label4.Text = "Catalog path:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Button1.Text = "Browse..." - Button2.Text = "Browse..." - CheckBox1.Text = "Commit image after adding this provisioning package" - Case 2 - Text = "Añadir paquete de aprovisionamiento" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ruta de paquete:" - Label3.Text = "Esta acción no puede ser revertida. Cuando añada un paquete de aprovisionamiento, no lo podrá eliminar de la imagen de Windows." - Label4.Text = "Ruta de catálogo:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Examinar..." - Button2.Text = "Examinar..." - CheckBox1.Text = "Guardar imagen tras añadir este paquete de aprovisionamiento" - Case 3 - Text = "Ajouter des paquets de provisionnement" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Chemin du paquet :" - Label3.Text = "Cette action ne peut pas être annulée. Une fois que vous avez ajouté un package de provisionnement, vous ne pourrez plus le supprimer de votre image Windows." - Label4.Text = "Chemin du catalogue :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Button1.Text = "Parcourir..." - Button2.Text = "Parcourir..." - CheckBox1.Text = "Enregistrer l'image après l'ajout de ce paquet de provisionnement" - Case 4 - Text = "Adicionar pacotes de aprovisionamento" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Localização do pacote:" - Label3.Text = "Esta ação não pode ser revertida. Depois de adicionar um pacote de aprovisionamento, não o poderá remover da sua imagem do Windows." - Label4.Text = "Localização do catálogo:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Button1.Text = "Navegar..." - Button2.Text = "Navegar..." - CheckBox1.Text = "Confirmar imagem após adicionar este pacote de provisionamento" - Case 5 - Text = "Aggiungi pacchetti di approvvigionamento" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Percorso del pacchetto:" - Label3.Text = "Questa azione non può essere annullata. Una volta aggiunto un pacchetto di approvvigionamento, non sarà più possibile rimuoverlo dall'immagine di Windows." - Label4.Text = "Percorso catalogo:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - Button1.Text = "Sfoglia..." - Button2.Text = "Sfoglia..." - CheckBox1.Text = "Applica l'immagine dopo aver aggiunto questo pacchetto di approvvigionamento" - End Select + Text = LocalizationService.ForSection("ProvPackage")("Add.Packages.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ProvPackage").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ProvPackage")("PackagePath.Label") + Label3.Text = LocalizationService.ForSection("ProvPackage")("Action.Treverted.Add.Message") + Label4.Text = LocalizationService.ForSection("ProvPackage")("CatalogPath.Label") + OK_Button.Text = LocalizationService.ForSection("ProvPackage")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ProvPackage")("Cancel.Button") + Button1.Text = LocalizationService.ForSection("ProvPackage")("Browse.Button") + Button2.Text = LocalizationService.ForSection("ProvPackage")("Browse.Button") + CheckBox1.Text = LocalizationService.ForSection("ProvPackage")("CommitImage.CheckBox") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/Registry/RegistryControlPanel.Designer.vb b/Panels/Img_Ops/Registry/RegistryControlPanel.Designer.vb index b51fa873c..ac0c01cfa 100644 --- a/Panels/Img_Ops/Registry/RegistryControlPanel.Designer.vb +++ b/Panels/Img_Ops/Registry/RegistryControlPanel.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class RegistryControlPanel Inherits System.Windows.Forms.Form @@ -63,7 +63,7 @@ Partial Class RegistryControlPanel Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(599, 42) Me.Label1.TabIndex = 0 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Tool.Lets.Load.Message") ' 'TableLayoutPanel1 ' @@ -104,7 +104,7 @@ Partial Class RegistryControlPanel Me.Button12.Name = "Button12" Me.Button12.Size = New System.Drawing.Size(102, 25) Me.Button12.TabIndex = 15 - Me.Button12.Text = "Load" + Me.Button12.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Load.Button") Me.Button12.UseVisualStyleBackColor = True ' 'Button11 @@ -116,7 +116,7 @@ Partial Class RegistryControlPanel Me.Button11.Name = "Button11" Me.Button11.Size = New System.Drawing.Size(102, 23) Me.Button11.TabIndex = 14 - Me.Button11.Text = "Load" + Me.Button11.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Load.Button") Me.Button11.UseVisualStyleBackColor = True ' 'Button10 @@ -128,7 +128,7 @@ Partial Class RegistryControlPanel Me.Button10.Name = "Button10" Me.Button10.Size = New System.Drawing.Size(102, 23) Me.Button10.TabIndex = 13 - Me.Button10.Text = "Load" + Me.Button10.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Load.Button") Me.Button10.UseVisualStyleBackColor = True ' 'Label5 @@ -139,7 +139,7 @@ Partial Class RegistryControlPanel Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(382, 31) Me.Label5.TabIndex = 9 - Me.Label5.Text = "NTUSER.DAT (Default User)" + Me.Label5.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Ntuserdatdefault.User.Label") Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button4 @@ -151,7 +151,7 @@ Partial Class RegistryControlPanel Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(98, 25) Me.Button4.TabIndex = 11 - Me.Button4.Text = "Open" + Me.Button4.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Open.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Label4 @@ -162,7 +162,7 @@ Partial Class RegistryControlPanel Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(382, 29) Me.Label4.TabIndex = 6 - Me.Label4.Text = "DEFAULT" + Me.Label4.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Default.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button3 @@ -174,7 +174,7 @@ Partial Class RegistryControlPanel Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(98, 23) Me.Button3.TabIndex = 8 - Me.Button3.Text = "Open" + Me.Button3.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Open.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Label3 @@ -185,7 +185,7 @@ Partial Class RegistryControlPanel Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(382, 29) Me.Label3.TabIndex = 3 - Me.Label3.Text = "SYSTEM" + Me.Label3.Text = LocalizationService.ForSection("Designer.RegistryPanel")("System.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button2 @@ -197,7 +197,7 @@ Partial Class RegistryControlPanel Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(98, 23) Me.Button2.TabIndex = 5 - Me.Button2.Text = "Open" + Me.Button2.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Open.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label2 @@ -208,7 +208,7 @@ Partial Class RegistryControlPanel Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(382, 29) Me.Label2.TabIndex = 0 - Me.Label2.Text = "SOFTWARE" + Me.Label2.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Software.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Button1 @@ -220,7 +220,7 @@ Partial Class RegistryControlPanel Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(98, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Open" + Me.Button1.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Open.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Button9 @@ -232,7 +232,7 @@ Partial Class RegistryControlPanel Me.Button9.Name = "Button9" Me.Button9.Size = New System.Drawing.Size(102, 23) Me.Button9.TabIndex = 12 - Me.Button9.Text = "Load" + Me.Button9.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Load.Button") Me.Button9.UseVisualStyleBackColor = True ' 'GroupBox1 @@ -249,7 +249,7 @@ Partial Class RegistryControlPanel Me.GroupBox1.Size = New System.Drawing.Size(599, 182) Me.GroupBox1.TabIndex = 2 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Load Custom Hive" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Load.Custom.Hive") ' 'TableLayoutPanel2 ' @@ -276,7 +276,7 @@ Partial Class RegistryControlPanel Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(183, 23) Me.Button6.TabIndex = 11 - Me.Button6.Text = "Unload" + Me.Button6.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Unload.Button") Me.Button6.UseVisualStyleBackColor = True ' 'Button7 @@ -288,7 +288,7 @@ Partial Class RegistryControlPanel Me.Button7.Name = "Button7" Me.Button7.Size = New System.Drawing.Size(182, 23) Me.Button7.TabIndex = 10 - Me.Button7.Text = "Open" + Me.Button7.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Open.Button") Me.Button7.UseVisualStyleBackColor = True ' 'Button8 @@ -299,7 +299,7 @@ Partial Class RegistryControlPanel Me.Button8.Name = "Button8" Me.Button8.Size = New System.Drawing.Size(182, 23) Me.Button8.TabIndex = 9 - Me.Button8.Text = "Load" + Me.Button8.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Load.Button") Me.Button8.UseVisualStyleBackColor = True ' 'Button5 @@ -309,7 +309,7 @@ Partial Class RegistryControlPanel Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(98, 23) Me.Button5.TabIndex = 2 - Me.Button5.Text = "Browse..." + Me.Button5.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Browse.Button") Me.Button5.UseVisualStyleBackColor = True ' 'TextBox2 @@ -336,7 +336,7 @@ Partial Class RegistryControlPanel Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(103, 13) Me.Label8.TabIndex = 0 - Me.Label8.Text = "Path in the registry:" + Me.Label8.Text = LocalizationService.ForSection("Designer.RegistryPanel")("PathRegistry.Label") ' 'Label7 ' @@ -347,7 +347,7 @@ Partial Class RegistryControlPanel Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(72, 13) Me.Label7.TabIndex = 0 - Me.Label7.Text = "Hive location:" + Me.Label7.Text = LocalizationService.ForSection("Designer.RegistryPanel")("HiveLocation.Label") ' 'Label6 ' @@ -358,7 +358,7 @@ Partial Class RegistryControlPanel Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(568, 31) Me.Label6.TabIndex = 0 - Me.Label6.Text = "If you want to load a different registry hive, specify its path and click Load:" + Me.Label6.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Load.Different.Label") ' 'OpenFileDialog1 ' @@ -378,7 +378,7 @@ Partial Class RegistryControlPanel Me.MinimumSize = New System.Drawing.Size(640, 420) Me.Name = "RegistryControlPanel" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Image registry hives" + Me.Text = LocalizationService.ForSection("Designer.RegistryPanel")("Image.Hives.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/Registry/RegistryControlPanel.resx b/Panels/Img_Ops/Registry/RegistryControlPanel.resx index 503e5665f..2245e3ef9 100644 --- a/Panels/Img_Ops/Registry/RegistryControlPanel.resx +++ b/Panels/Img_Ops/Registry/RegistryControlPanel.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here: - 17, 17 diff --git a/Panels/Img_Ops/Registry/RegistryControlPanel.vb b/Panels/Img_Ops/Registry/RegistryControlPanel.vb index e77332de2..a8ab2fdb0 100644 --- a/Panels/Img_Ops/Registry/RegistryControlPanel.vb +++ b/Panels/Img_Ops/Registry/RegistryControlPanel.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports Microsoft.Win32 Imports Microsoft.VisualBasic.ControlChars @@ -16,141 +16,17 @@ Public Class RegistryControlPanel Dim CustomHiveLoaded As Boolean Private Sub RegistryControlPanel_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Image registry hives" - LoadButtonText = "Load" - UnloadButtonText = "Unload" - OpenButtonText = "Open" - Label1.Text = "This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here:" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Default User)" - Label6.Text = "If you want to load a different registry hive, specify its path and click Load:" - Label7.Text = "Hive location:" - Label8.Text = "Path in the registry:" - Button5.Text = "Browse..." - GroupBox1.Text = "Load Custom Hive" - Case "ESN" - Text = "Subárboles del registro de la imagen" - LoadButtonText = "Cargar" - UnloadButtonText = "Descargar" - OpenButtonText = "Abrir" - Label1.Text = "Esta herramienta le permite cargar los subárboles del registro de la imagen que especifique aquí a su sistema local. Esto le permite modificar la configuración de la imagen de Windows. Cuando haya terminado de modificar un subárbol, lo puede descargar aquí:" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Usuario predeterminado)" - Label6.Text = "Si desea cargar un subárbol del registro distinto, especifique su ubicación y haga clic en Cargar:" - Label7.Text = "Ubicación del subárbol:" - Label8.Text = "Ubicación en el registro:" - Button5.Text = "Examinar..." - GroupBox1.Text = "Cargar subárbol personalizado" - Case "FRA" - Text = "Ruches du registre des images" - LoadButtonText = "Charger" - UnloadButtonText = "Décharger" - OpenButtonText = "Ouvrir" - Label1.Text = "Cet outil vous permet de charger les ruches de registre de l'image que vous spécifiez ici sur le système local. Vous pouvez ainsi modifier la configuration stockée dans l'image Windows. Une fois que vous avez fini de personnaliser une clé d'une ruche, vous pouvez également la décharger ici :" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Utilisateur par défaut)" - Label6.Text = "Si vous souhaitez charger un ruche de registres d'images différent, indiquez son chemin d'accès et cliquez sur Charger :" - Label7.Text = "Emplacement du répertoire de stockage :" - Label8.Text = "Chemin d'accès dans le registre :" - Button5.Text = "Parcourir..." - GroupBox1.Text = "Charger le ruche personnalisé" - Case "PTB", "PTG" - Text = "Colmeias do registo de imagens" - LoadButtonText = "Carregar" - UnloadButtonText = "Descarregar" - OpenButtonText = "Abrir" - Label1.Text = "Esta ferramenta permite-lhe carregar as colmeias do registo de imagem que especificar aqui para o sistema local. Isto permite-lhe efetuar modificações na configuração armazenada na imagem do Windows. Quando terminar de personalizar uma chave de uma colmeia, pode também descarregá-la aqui:" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Utilizador predefinido)" - Label6.Text = "Se pretender carregar uma colmeia de registo de imagem diferente, especifique o respetivo caminho e clique em Carregar:" - Label7.Text = "Localização da colmeia:" - Label8.Text = " Localização no registo:" - Button5.Text = "Procurar..." - GroupBox1.Text = "Carregar colmeia personalizada" - Case "ITA" - Text = "Alveari del registro delle immagini" - LoadButtonText = "Caricare" - UnloadButtonText = "Scarico" - OpenButtonText = "Apri" - Label1.Text = "Questo strumento consente di caricare sul sistema locale gli alveari del registro dell'immagine specificati qui. In questo modo è possibile modificare la configurazione memorizzata nell'immagine di Windows. Una volta terminata la personalizzazione di una chiave da un hive, è anche possibile scaricarla qui:" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Utente predefinito)" - Label6.Text = "Se si desidera caricare un altro hive del registro immagini, specificarne il percorso e fare clic su Caricare:" - Label7.Text = "Posizione dell'hive:" - Label8.Text = "Percorso nel registro di sistema:" - Button5.Text = "Sfoglia..." - GroupBox1.Text = "Carica l'alveare personalizzato" - End Select - Case 1 - Text = "Image registry hives" - LoadButtonText = "Load" - UnloadButtonText = "Unload" - OpenButtonText = "Open" - Label1.Text = "This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here:" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Default User)" - Label6.Text = "If you want to load a different registry hive, specify its path and click Load:" - Label7.Text = "Hive location:" - Label8.Text = "Path in the registry:" - Button5.Text = "Browse..." - GroupBox1.Text = "Load Custom Hive" - Case 2 - Text = "Subárboles del registro de la imagen" - LoadButtonText = "Cargar" - UnloadButtonText = "Descargar" - OpenButtonText = "Abrir" - Label1.Text = "Esta herramienta le permite cargar los subárboles del registro de la imagen que especifique aquí a su sistema local. Esto le permite modificar la configuración de la imagen de Windows. Cuando haya terminado de modificar un subárbol, lo puede descargar aquí:" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Usuario predeterminado)" - Label6.Text = "Si desea cargar un subárbol del registro distinto, especifique su ubicación y haga clic en Cargar:" - Label7.Text = "Ubicación del subárbol:" - Label8.Text = "Ubicación en el registro:" - Button5.Text = "Examinar..." - GroupBox1.Text = "Cargar subárbol personalizado" - Case 3 - Text = "Ruches du registre des images" - LoadButtonText = "Charger" - UnloadButtonText = "Décharger" - OpenButtonText = "Ouvrir" - Label1.Text = "Cet outil vous permet de charger les ruches de registre de l'image que vous spécifiez ici sur le système local. Vous pouvez ainsi modifier la configuration stockée dans l'image Windows. Une fois que vous avez fini de personnaliser une clé d'une ruche, vous pouvez également la décharger ici :" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Utilisateur par défaut)" - Label6.Text = "Si vous souhaitez charger un ruche de registres d'images différent, indiquez son chemin d'accès et cliquez sur Charger :" - Label7.Text = "Emplacement du répertoire de stockage :" - Label8.Text = "Chemin d'accès dans le registre :" - Button5.Text = "Parcourir..." - GroupBox1.Text = "Charger le ruche personnalisé" - Case 4 - Text = "Colmeias do registo de imagens" - LoadButtonText = "Carregar" - UnloadButtonText = "Descarregar" - OpenButtonText = "Abrir" - Label1.Text = "Esta ferramenta permite-lhe carregar as colmeias do registo de imagem que especificar aqui para o sistema local. Isto permite-lhe efetuar modificações na configuração armazenada na imagem do Windows. Quando terminar de personalizar uma chave de uma colmeia, pode também descarregá-la aqui:" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Utilizador predefinido)" - Label6.Text = "Se pretender carregar uma colmeia de registo de imagem diferente, especifique o respetivo caminho e clique em Carregar:" - Label7.Text = "Localização da colmeia:" - Label8.Text = " Localização no registo:" - Button5.Text = "Procurar..." - GroupBox1.Text = "Carregar colmeia personalizada" - Case 5 - Text = "Alveari del registro delle immagini" - LoadButtonText = "Caricare" - UnloadButtonText = "Scarico" - OpenButtonText = "Apri" - Label1.Text = "Questo strumento consente di caricare sul sistema locale gli alveari del registro dell'immagine specificati qui. In questo modo è possibile modificare la configurazione memorizzata nell'immagine di Windows. Una volta terminata la personalizzazione di una chiave da un hive, è anche possibile scaricarla qui:" - ' Labels 2-4 don't change - Label5.Text = "NTUSER.DAT (Utente predefinito)" - Label6.Text = "Se si desidera caricare un altro hive del registro immagini, specificarne il percorso e fare clic su Caricare:" - Label7.Text = "Posizione dell'hive:" - Label8.Text = "Percorso nel registro di sistema:" - Button5.Text = "Sfoglia..." - GroupBox1.Text = "Carica l'alveare personalizzato" - End Select + Text = LocalizationService.ForSection("RegistryPanel")("Image.Hives.Label") + LoadButtonText = LocalizationService.ForSection("RegistryPanel")("Load.Label") + UnloadButtonText = LocalizationService.ForSection("RegistryPanel")("Unload.Label") + OpenButtonText = LocalizationService.ForSection("RegistryPanel")("Open.Button") + Label1.Text = LocalizationService.ForSection("RegistryPanel")("Tool.Lets.Load.Message") + Label5.Text = LocalizationService.ForSection("RegistryPanel")("Ntuserdatdefault.User.Label") + Label6.Text = LocalizationService.ForSection("RegistryPanel")("Load.Different.Label") + Label7.Text = LocalizationService.ForSection("RegistryPanel")("HiveLocation.Label") + Label8.Text = LocalizationService.ForSection("RegistryPanel")("PathRegistry.Label") + Button5.Text = LocalizationService.ForSection("RegistryPanel")("Browse.Button") + GroupBox1.Text = LocalizationService.ForSection("RegistryPanel")("Load.Custom.Hive") Button1.Text = OpenButtonText Button2.Text = OpenButtonText Button3.Text = OpenButtonText @@ -303,31 +179,7 @@ Public Class RegistryControlPanel Private Sub RegistryControlPanel_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The registry hives need to be unloaded to close this window. Do you want to unload them now?" - Case "ESN" - msg = "Los subárboles del registro deben ser descargados para cerrar esta ventana. ¿Desea descargarlos ahora?" - Case "FRA" - msg = "Les ruches de registre doivent être déchargées pour fermer cette fenêtre. Voulez-vous les décharger maintenant ?" - Case "PTB", "PTG" - msg = "As colmeias do registo têm de ser descarregadas para fechar esta janela. Deseja descarregá-las agora?" - Case "ITA" - msg = "Gli alveari del registro devono essere scaricati per chiudere questa finestra. Volete scaricarli ora?" - End Select - Case 1 - msg = "The registry hives need to be unloaded to close this window. Do you want to unload them now?" - Case 2 - msg = "Los subárboles del registro deben ser descargados para cerrar esta ventana. ¿Desea descargarlos ahora?" - Case 3 - msg = "Les ruches de registre doivent être déchargées pour fermer cette fenêtre. Voulez-vous les décharger maintenant ?" - Case 4 - msg = "As colmeias do registo têm de ser descarregadas para fechar esta janela. Deseja descarregá-las agora?" - Case 5 - msg = "Gli alveari del registro devono essere scaricati per chiudere questa finestra. Volete scaricarli ora?" - End Select + msg = LocalizationService.ForSection("RegistryPanel.Close")("HivesNeedUnload.Message") If LoadedHives > 0 Or CustomHiveLoaded Then DynaLog.LogMessage("Registry hives were loaded and need to be unloaded before closing the control panel.") If MsgBox(msg, vbYesNo + vbQuestion, Text) = MsgBoxResult.Yes Then @@ -344,31 +196,7 @@ Public Class RegistryControlPanel If LoadedHives > 0 Or CustomHiveLoaded Then DynaLog.LogMessage("Some hives are still loaded.") ' Some hives could not be unloaded - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Some hives could not be unloaded. Please unload them before closing this window." - Case "ESN" - msg = "Algunos subárboles no pudieron ser descargados. Descárguelos antes de cerrar esta ventana." - Case "FRA" - msg = "Certaines ruches n'ont pas pu être déchargées. Veuillez les décharger avant de fermer cette fenêtre." - Case "PTB", "PTG" - msg = "Algumas colmeias não puderam ser descarregadas. Por favor, descarregue-as antes de fechar esta janela." - Case "ITA" - msg = "Non è stato possibile scaricare alcune arnie. Si prega di scaricarle prima di chiudere questa finestra." - End Select - Case 1 - msg = "Some hives could not be unloaded. Please unload them before closing this window." - Case 2 - msg = "Algunos subárboles no pudieron ser descargados. Descárguelos antes de cerrar esta ventana." - Case 3 - msg = "Certaines ruches n'ont pas pu être déchargées. Veuillez les décharger avant de fermer cette fenêtre." - Case 4 - msg = "Algumas colmeias não puderam ser descarregadas. Por favor, descarregue-as antes de fechar esta janela." - Case 5 - msg = "Non è stato possibile scaricare alcune arnie. Si prega di scaricarle prima di chiudere questa finestra." - End Select + msg = LocalizationService.ForSection("RegistryPanel.Close")("HivesNotUnloaded.Message") MsgBox(msg, vbOKOnly + vbCritical, Text) e.Cancel = True Exit Sub @@ -431,4 +259,4 @@ Public Class RegistryControlPanel CustomHiveLoaded = False End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.Designer.vb b/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.Designer.vb index ae58d3a42..5b7082414 100644 --- a/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.Designer.vb +++ b/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class RegisteredServiceHostGroupsDialog Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class RegisteredServiceHostGroupsDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ServiceGroups")("Ok.Button") ' 'Label1 ' @@ -69,7 +69,7 @@ Partial Class RegisteredServiceHostGroupsDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(679, 48) Me.Label1.TabIndex = 1 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.ServiceGroups")("Windows.Message") ' 'ServiceGroupDetailsLv ' @@ -86,12 +86,12 @@ Partial Class RegisteredServiceHostGroupsDialog ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Group Name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ServiceGroups")("GroupName.Column") Me.ColumnHeader1.Width = 274 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Services in group" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.ServiceGroups")("ServicesGroup.Column") Me.ColumnHeader2.Width = 233 ' 'ServiceDetailsLv @@ -110,17 +110,17 @@ Partial Class RegisteredServiceHostGroupsDialog ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Service Name" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.ServiceGroups")("ServiceName.Column") Me.ColumnHeader3.Width = 175 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Display Name" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.ServiceGroups")("DisplayName.Column") Me.ColumnHeader4.Width = 274 ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Type" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.ServiceGroups")("Type.Column") Me.ColumnHeader5.Width = 192 ' 'Label2 @@ -131,7 +131,7 @@ Partial Class RegisteredServiceHostGroupsDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(31, 13) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Total" + Me.Label2.Text = LocalizationService.ForSection("Designer.ServiceGroups")("Total.Label") ' 'RegisteredServiceHostGroupsDialog ' @@ -151,7 +151,7 @@ Partial Class RegisteredServiceHostGroupsDialog Me.Name = "RegisteredServiceHostGroupsDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Registered Service Host groups in image" + Me.Text = LocalizationService.ForSection("Designer.ServiceGroups")("Registered.Svc.Host.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.resx b/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.resx index 72e40f261..7905453d9 100644 --- a/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.resx +++ b/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,7 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - This Windows image contains the following registered groups for the system's service host. Note that the groups displayed here may not be the same as the groups defined by the services in the Service Control Manager (SCM). - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.vb b/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.vb index ce611be77..c54f1da0e 100644 --- a/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.vb +++ b/Panels/Img_Ops/Services/RegisteredServiceHostGroupsDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class RegisteredServiceHostGroupsDialog @@ -25,10 +25,10 @@ Public Class RegisteredServiceHostGroupsDialog ' Order group information based on service count GroupInformation = GroupInformation.OrderByDescending(Function(serviceGroup) serviceGroup.Services.Count).ThenBy(Function(serviceGroup) serviceGroup.Name).ToList() - ServiceGroupDetailsLv.Items.AddRange(GroupInformation.Select(Function(Group) New ListViewItem(New String() {Group.Name, String.Format("{0} service(s) in group", Group.Services.Count)})).ToArray()) + ServiceGroupDetailsLv.Items.AddRange(GroupInformation.Select(Function(Group) New ListViewItem(New String() {Group.Name, String.Format(LocalizationService.ForSection("ServiceGroups")("ServiceGroup.Label"), Group.Services.Count)})).ToArray()) Dim count As Integer = GroupInformation.Sum(Function(serviceGroup) serviceGroup.Services.Count) - Label2.Text = String.Format("{0} service(s) are registered in the service host.", count) + Label2.Text = String.Format(LocalizationService.ForSection("ServiceGroups")("RegisteredHost.Label"), count) ColumnHeader1.Width = WindowHelper.ScaleLogical(274) ColumnHeader2.Width = WindowHelper.ScaleLogical(233) diff --git a/Panels/Img_Ops/Services/ServiceManagementForm.Designer.vb b/Panels/Img_Ops/Services/ServiceManagementForm.Designer.vb index 63f346167..1e2e11b99 100644 --- a/Panels/Img_Ops/Services/ServiceManagementForm.Designer.vb +++ b/Panels/Img_Ops/Services/ServiceManagementForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ServiceManagementForm Inherits System.Windows.Forms.Form @@ -138,8 +138,7 @@ Partial Class ServiceManagementForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(1240, 42) Me.Label1.TabIndex = 1 - Me.Label1.Text = "This tool lets you view and manage the services of this target image. Click Save " & _ - "service changes to save any changes made to the Windows services." + Me.Label1.Text = LocalizationService.ForSection("Designer.Services")("Intro.Message") ' 'ListView1 ' @@ -159,27 +158,27 @@ Partial Class ServiceManagementForm ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Service Name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.Services")("ServiceName.Column") Me.ColumnHeader1.Width = 218 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Display Name" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.Services")("DisplayName.Column") Me.ColumnHeader2.Width = 279 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Description" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.Services")("Description.Column") Me.ColumnHeader3.Width = 237 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Start Type" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.Services")("StartType.Column") Me.ColumnHeader4.Width = 173 ' 'ColumnHeader12 ' - Me.ColumnHeader12.Text = "Type" + Me.ColumnHeader12.Text = LocalizationService.ForSection("Designer.Services")("Type.Column") Me.ColumnHeader12.Width = 195 ' 'TabControl1 @@ -221,7 +220,7 @@ Partial Class ServiceManagementForm Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) Me.TabPage1.Size = New System.Drawing.Size(1232, 239) Me.TabPage1.TabIndex = 0 - Me.TabPage1.Text = "Service Information" + Me.TabPage1.Text = LocalizationService.ForSection("Designer.Services")("ServiceInfo.Tab") Me.TabPage1.UseVisualStyleBackColor = True ' 'Panel3 @@ -261,7 +260,7 @@ Partial Class ServiceManagementForm Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(92, 17) Me.CheckBox1.TabIndex = 3 - Me.CheckBox1.Text = "Delayed Start" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.Services")("DelayedStart.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label4 @@ -271,7 +270,7 @@ Partial Class ServiceManagementForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(102, 13) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Service Description:" + Me.Label4.Text = LocalizationService.ForSection("Designer.Services")("Description.Label") ' 'TextBox14 ' @@ -291,7 +290,7 @@ Partial Class ServiceManagementForm Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(99, 13) Me.Label19.TabIndex = 1 - Me.Label19.Text = "User Service Flags:" + Me.Label19.Text = LocalizationService.ForSection("Designer.Services")("User.Flags.Label") ' 'TextBox7 ' @@ -309,7 +308,7 @@ Partial Class ServiceManagementForm Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(73, 13) Me.Label8.TabIndex = 1 - Me.Label8.Text = "Service Type:" + Me.Label8.Text = LocalizationService.ForSection("Designer.Services")("ServiceType.Label") ' 'Label7 ' @@ -318,7 +317,7 @@ Partial Class ServiceManagementForm Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(100, 13) Me.Label7.TabIndex = 1 - Me.Label7.Text = "Service Start Type:" + Me.Label7.Text = LocalizationService.ForSection("Designer.Services")("Start.Type.Label") ' 'TextBox5 ' @@ -338,7 +337,7 @@ Partial Class ServiceManagementForm Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(111, 13) Me.Label6.TabIndex = 1 - Me.Label6.Text = "Service Object Name:" + Me.Label6.Text = LocalizationService.ForSection("Designer.Services")("Object.Name.Label") ' 'TextBox4 ' @@ -358,7 +357,7 @@ Partial Class ServiceManagementForm Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(104, 13) Me.Label5.TabIndex = 1 - Me.Label5.Text = "Service Image Path:" + Me.Label5.Text = LocalizationService.ForSection("Designer.Services")("Image.Path.Label") ' 'TextBox2 ' @@ -378,7 +377,7 @@ Partial Class ServiceManagementForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(113, 13) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Service Display Name:" + Me.Label3.Text = LocalizationService.ForSection("Designer.Services")("Display.Name.Label") ' 'TextBox1 ' @@ -398,7 +397,7 @@ Partial Class ServiceManagementForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(76, 13) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Service Name:" + Me.Label2.Text = LocalizationService.ForSection("Designer.Services")("ServiceName.Label") ' 'PictureBox1 ' @@ -417,7 +416,7 @@ Partial Class ServiceManagementForm Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) Me.TabPage2.Size = New System.Drawing.Size(1232, 239) Me.TabPage2.TabIndex = 1 - Me.TabPage2.Text = "Required Privileges" + Me.TabPage2.Text = LocalizationService.ForSection("Designer.Services")("Required.Privileges.Tab") Me.TabPage2.UseVisualStyleBackColor = True ' 'ListView2 @@ -434,17 +433,17 @@ Partial Class ServiceManagementForm ' 'ColumnHeader5 ' - Me.ColumnHeader5.Text = "Privilege Name" + Me.ColumnHeader5.Text = LocalizationService.ForSection("Designer.Services")("PrivilegeName.Column") Me.ColumnHeader5.Width = 170 ' 'ColumnHeader6 ' - Me.ColumnHeader6.Text = "Privilege Display Name" + Me.ColumnHeader6.Text = LocalizationService.ForSection("Designer.Services")("PrivilegeName.Display.Column") Me.ColumnHeader6.Width = 177 ' 'ColumnHeader7 ' - Me.ColumnHeader7.Text = "Privilege Description" + Me.ColumnHeader7.Text = LocalizationService.ForSection("Designer.Services")("Privilege.Description.Column") Me.ColumnHeader7.Width = 592 ' 'TabPage3 @@ -456,7 +455,7 @@ Partial Class ServiceManagementForm Me.TabPage3.Name = "TabPage3" Me.TabPage3.Size = New System.Drawing.Size(1232, 239) Me.TabPage3.TabIndex = 2 - Me.TabPage3.Text = "Error Control" + Me.TabPage3.Text = LocalizationService.ForSection("Designer.Services")("ErrorControl.Tab") Me.TabPage3.UseVisualStyleBackColor = True ' 'Panel4 @@ -501,7 +500,7 @@ Partial Class ServiceManagementForm Me.GroupBox1.Size = New System.Drawing.Size(1170, 150) Me.GroupBox1.TabIndex = 5 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Failure Actions" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.Services")("FailureActions.Group") ' 'TextBox11 ' @@ -521,7 +520,7 @@ Partial Class ServiceManagementForm Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(92, 13) Me.Label12.TabIndex = 7 - Me.Label12.Text = "On Future Errors:" + Me.Label12.Text = LocalizationService.ForSection("Designer.Services")("FutureErrors.Label") ' 'TextBox10 ' @@ -541,7 +540,7 @@ Partial Class ServiceManagementForm Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(73, 13) Me.Label11.TabIndex = 5 - Me.Label11.Text = "On 2nd Error:" + Me.Label11.Text = LocalizationService.ForSection("Designer.Services")("NdError.Label") ' 'TextBox13 ' @@ -561,7 +560,7 @@ Partial Class ServiceManagementForm Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(216, 13) Me.Label14.TabIndex = 3 - Me.Label14.Text = "Restart Service after the following minutes:" + Me.Label14.Text = LocalizationService.ForSection("Designer.ServiceMgmt")("Restart.Minutes.Label") ' 'TextBox12 ' @@ -581,7 +580,7 @@ Partial Class ServiceManagementForm Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(229, 13) Me.Label13.TabIndex = 3 - Me.Label13.Text = "Reset Error Count after the following minutes:" + Me.Label13.Text = LocalizationService.ForSection("Designer.Services")("ResetErrorCount.Label") ' 'TextBox9 ' @@ -601,7 +600,7 @@ Partial Class ServiceManagementForm Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(70, 13) Me.Label10.TabIndex = 3 - Me.Label10.Text = "On 1st Error:" + Me.Label10.Text = LocalizationService.ForSection("Designer.Services")("StError.Label") ' 'Label9 ' @@ -610,7 +609,7 @@ Partial Class ServiceManagementForm Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(216, 13) Me.Label9.TabIndex = 3 - Me.Label9.Text = "On service error, what should Windows do?" + Me.Label9.Text = LocalizationService.ForSection("Designer.Services")("Error.Windows.Label") ' 'TabPage4 ' @@ -619,7 +618,7 @@ Partial Class ServiceManagementForm Me.TabPage4.Name = "TabPage4" Me.TabPage4.Size = New System.Drawing.Size(1232, 239) Me.TabPage4.TabIndex = 3 - Me.TabPage4.Text = "Service Dependencies" + Me.TabPage4.Text = LocalizationService.ForSection("Designer.Services")("Dependencies.Tab") Me.TabPage4.UseVisualStyleBackColor = True ' 'SplitContainer1 @@ -667,17 +666,17 @@ Partial Class ServiceManagementForm ' 'ColumnHeader8 ' - Me.ColumnHeader8.Text = "Service Name" + Me.ColumnHeader8.Text = LocalizationService.ForSection("Designer.Services")("ServiceName.Column") Me.ColumnHeader8.Width = 209 ' 'ColumnHeader9 ' - Me.ColumnHeader9.Text = "Display Name" + Me.ColumnHeader9.Text = LocalizationService.ForSection("Designer.Services")("DisplayName.Column") Me.ColumnHeader9.Width = 209 ' 'ColumnHeader10 ' - Me.ColumnHeader10.Text = "Type" + Me.ColumnHeader10.Text = LocalizationService.ForSection("Designer.Services")("Type.Column") Me.ColumnHeader10.Width = 120 ' 'Label17 @@ -687,7 +686,7 @@ Partial Class ServiceManagementForm Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(232, 13) Me.Label17.TabIndex = 0 - Me.Label17.Text = "This service depends on the following services:" + Me.Label17.Text = LocalizationService.ForSection("Designer.ServiceMgmt")("Dependencies.Label") ' 'Panel2 ' @@ -716,17 +715,17 @@ Partial Class ServiceManagementForm ' 'ColumnHeader11 ' - Me.ColumnHeader11.Text = "Service Name" + Me.ColumnHeader11.Text = LocalizationService.ForSection("Designer.Services")("ServiceName.Column") Me.ColumnHeader11.Width = 209 ' 'ColumnHeader13 ' - Me.ColumnHeader13.Text = "Display Name" + Me.ColumnHeader13.Text = LocalizationService.ForSection("Designer.Services")("DisplayName.Column") Me.ColumnHeader13.Width = 209 ' 'ColumnHeader14 ' - Me.ColumnHeader14.Text = "Type" + Me.ColumnHeader14.Text = LocalizationService.ForSection("Designer.Services")("Type.Column") Me.ColumnHeader14.Width = 120 ' 'Label18 @@ -736,7 +735,7 @@ Partial Class ServiceManagementForm Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(227, 13) Me.Label18.TabIndex = 0 - Me.Label18.Text = "The following services depend on this service:" + Me.Label18.Text = LocalizationService.ForSection("Designer.ServiceMgmt")("Dependent.Services.Label") ' 'TabPage5 ' @@ -749,7 +748,7 @@ Partial Class ServiceManagementForm Me.TabPage5.Padding = New System.Windows.Forms.Padding(3) Me.TabPage5.Size = New System.Drawing.Size(1232, 239) Me.TabPage5.TabIndex = 4 - Me.TabPage5.Text = "Service Groups" + Me.TabPage5.Text = LocalizationService.ForSection("Designer.Services")("ServiceGroups.Tab") Me.TabPage5.UseVisualStyleBackColor = True ' 'GetSvchostGroupsBtn @@ -760,7 +759,7 @@ Partial Class ServiceManagementForm Me.GetSvchostGroupsBtn.Name = "GetSvchostGroupsBtn" Me.GetSvchostGroupsBtn.Size = New System.Drawing.Size(265, 23) Me.GetSvchostGroupsBtn.TabIndex = 5 - Me.GetSvchostGroupsBtn.Text = "Get registered service host groups" + Me.GetSvchostGroupsBtn.Text = LocalizationService.ForSection("Designer.Services")("RegisteredHosts.Label") Me.GetSvchostGroupsBtn.UseVisualStyleBackColor = True ' 'GroupBox2 @@ -774,7 +773,7 @@ Partial Class ServiceManagementForm Me.GroupBox2.Size = New System.Drawing.Size(1193, 167) Me.GroupBox2.TabIndex = 4 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Services that belong to this group" + Me.GroupBox2.Text = LocalizationService.ForSection("Designer.Services")("Services.Belong.Group") ' 'ListView5 ' @@ -791,17 +790,17 @@ Partial Class ServiceManagementForm ' 'ColumnHeader15 ' - Me.ColumnHeader15.Text = "Service Name" + Me.ColumnHeader15.Text = LocalizationService.ForSection("Designer.Services")("ServiceName.Column") Me.ColumnHeader15.Width = 209 ' 'ColumnHeader16 ' - Me.ColumnHeader16.Text = "Display Name" + Me.ColumnHeader16.Text = LocalizationService.ForSection("Designer.Services")("DisplayName.Column") Me.ColumnHeader16.Width = 567 ' 'ColumnHeader17 ' - Me.ColumnHeader17.Text = "Type" + Me.ColumnHeader17.Text = LocalizationService.ForSection("Designer.Services")("Type.Column") Me.ColumnHeader17.Width = 311 ' 'TextBox6 @@ -822,7 +821,7 @@ Partial Class ServiceManagementForm Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(144, 13) Me.Label16.TabIndex = 0 - Me.Label16.Text = "This service is part of group:" + Me.Label16.Text = LocalizationService.ForSection("Designer.Services")("Part.Group.Label") ' 'SaveServiceInfoBtn ' @@ -832,7 +831,7 @@ Partial Class ServiceManagementForm Me.SaveServiceInfoBtn.Name = "SaveServiceInfoBtn" Me.SaveServiceInfoBtn.Size = New System.Drawing.Size(155, 23) Me.SaveServiceInfoBtn.TabIndex = 4 - Me.SaveServiceInfoBtn.Text = "Save service changes" + Me.SaveServiceInfoBtn.Text = LocalizationService.ForSection("Designer.Services")("Save.Changes.Label") Me.SaveServiceInfoBtn.UseVisualStyleBackColor = True ' 'ProgressLabel @@ -843,7 +842,7 @@ Partial Class ServiceManagementForm Me.ProgressLabel.Name = "ProgressLabel" Me.ProgressLabel.Size = New System.Drawing.Size(73, 13) Me.ProgressLabel.TabIndex = 5 - Me.ProgressLabel.Text = "Please wait..." + Me.ProgressLabel.Text = LocalizationService.ForSection("Designer.Services")("ProgressLabel.Label") Me.ProgressLabel.Visible = False ' 'Timer1 @@ -858,7 +857,7 @@ Partial Class ServiceManagementForm Me.ReloadServiceInformationBtn.Name = "ReloadServiceInformationBtn" Me.ReloadServiceInformationBtn.Size = New System.Drawing.Size(75, 23) Me.ReloadServiceInformationBtn.TabIndex = 6 - Me.ReloadServiceInformationBtn.Text = "Reload" + Me.ReloadServiceInformationBtn.Text = LocalizationService.ForSection("Designer.Services")("Reload.Label") Me.ReloadServiceInformationBtn.UseVisualStyleBackColor = True ' 'ServiceInfoContainerPanel @@ -891,7 +890,7 @@ Partial Class ServiceManagementForm Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(708, 90) Me.Label15.TabIndex = 0 - Me.Label15.Text = "No service has been selected. Select a service above to view details." + Me.Label15.Text = LocalizationService.ForSection("Designer.Services")("SelectService.Label") Me.Label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'SelectedServicePanel @@ -911,12 +910,12 @@ Partial Class ServiceManagementForm Me.ReportServiceInfoBtn.Name = "ReportServiceInfoBtn" Me.ReportServiceInfoBtn.Size = New System.Drawing.Size(191, 23) Me.ReportServiceInfoBtn.TabIndex = 8 - Me.ReportServiceInfoBtn.Text = "Save service information..." + Me.ReportServiceInfoBtn.Text = LocalizationService.ForSection("Designer.Services")("Save.Button") Me.ReportServiceInfoBtn.UseVisualStyleBackColor = True ' 'ServiceInfoSFD ' - Me.ServiceInfoSFD.Filter = "Markdown files|*.md" + Me.ServiceInfoSFD.Filter = LocalizationService.ForSection("Designer.Services")("MarkdownFiles.Filter") ' 'RestoreServiceBtn ' @@ -927,7 +926,7 @@ Partial Class ServiceManagementForm Me.RestoreServiceBtn.Name = "RestoreServiceBtn" Me.RestoreServiceBtn.Size = New System.Drawing.Size(156, 23) Me.RestoreServiceBtn.TabIndex = 8 - Me.RestoreServiceBtn.Text = "Restore service" + Me.RestoreServiceBtn.Text = LocalizationService.ForSection("Designer.Services")("RestoreService.Label") Me.RestoreServiceBtn.UseVisualStyleBackColor = True ' 'DeleteServiceBtn @@ -939,7 +938,7 @@ Partial Class ServiceManagementForm Me.DeleteServiceBtn.Name = "DeleteServiceBtn" Me.DeleteServiceBtn.Size = New System.Drawing.Size(156, 23) Me.DeleteServiceBtn.TabIndex = 8 - Me.DeleteServiceBtn.Text = "Delete service" + Me.DeleteServiceBtn.Text = LocalizationService.ForSection("Designer.Services")("DeleteService.Label") Me.DeleteServiceBtn.UseVisualStyleBackColor = True ' 'ServiceManagementForm @@ -962,7 +961,7 @@ Partial Class ServiceManagementForm Me.MinimumSize = New System.Drawing.Size(1024, 600) Me.Name = "ServiceManagementForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "System Service Management" + Me.Text = LocalizationService.ForSection("Designer.Services")("System.Label") Me.TabControl1.ResumeLayout(False) Me.TabPage1.ResumeLayout(False) Me.TabPage1.PerformLayout() diff --git a/Panels/Img_Ops/Services/ServiceManagementForm.vb b/Panels/Img_Ops/Services/ServiceManagementForm.vb index 3f5e9b72b..bf7ab1703 100644 --- a/Panels/Img_Ops/Services/ServiceManagementForm.vb +++ b/Panels/Img_Ops/Services/ServiceManagementForm.vb @@ -1,10 +1,10 @@ -Imports System.Threading.Tasks +Imports System.Threading.Tasks Public Class ServiceManagementForm Dim ServiceList As New List(Of WindowsService), ModifiedServiceList As New List(Of WindowsService) - Dim ServiceStartTypes() As String = New String() {"Boot Loader", "I/O System", "Automatic", "Manual", "Disabled"} + Dim ServiceStartTypes() As String Public Event ServiceSaveReported(current As Integer, count As Integer) @@ -14,7 +14,7 @@ Public Class ServiceManagementForm Private isModified As Boolean = False Private Sub OnServiceSaveReported(current As Integer, count As Integer) Handles Me.ServiceSaveReported - progressMessage = String.Format("Saving service information... ({0}/{1}, {2}%)", current, count, Math.Round((current / count) * 100, 0)) + progressMessage = LocalizationService.ForSection("ServiceManagement.Progress").Format("Saving.Label", current, count, Math.Round((current / count) * 100, 0)) End Sub Public Sub ReportServiceSave(current As Integer, count As Integer) @@ -44,14 +44,8 @@ Public Class ServiceManagementForm TextBox9.Text = selectedService.FailureActionToString(selectedService.FailureActions.FirstFailure) TextBox10.Text = selectedService.FailureActionToString(selectedService.FailureActions.SecondFailure) TextBox11.Text = selectedService.FailureActionToString(selectedService.FailureActions.SubsequentFailure) - TextBox12.Text = String.Format("{0} minute(s)", (selectedService.FailureActions.ResetDelayInSeconds / 60)) - TextBox13.Text = String.Format("{0} minute(s) ({1} seconds) after first failure, {2} minute(s) ({3} seconds) after second failure, {4} minute(s) ({5} seconds) after subsequent failures", - Math.Round((selectedService.FailureActions.FirstDelayInMillis / 60000), 2), - Math.Round((selectedService.FailureActions.FirstDelayInMillis / 1000), 2), - Math.Round((selectedService.FailureActions.SecondDelayInMillis / 60000), 2), - Math.Round((selectedService.FailureActions.SecondDelayInMillis / 1000), 2), - Math.Round((selectedService.FailureActions.SubsequentDelaysInMillis / 60000), 2), - Math.Round((selectedService.FailureActions.SubsequentDelaysInMillis / 1000), 2)) + TextBox12.Text = LocalizationService.ForSection("ServiceManagement.Display").Format("MinuteS.Label", (selectedService.FailureActions.ResetDelayInSeconds / 60)) + TextBox13.Text = LocalizationService.ForSection("Services.Display").Format("MinutesSeconds.Message", Math.Round((selectedService.FailureActions.FirstDelayInMillis / 60000), 2), Math.Round((selectedService.FailureActions.FirstDelayInMillis / 1000), 2), Math.Round((selectedService.FailureActions.SecondDelayInMillis / 60000), 2), Math.Round((selectedService.FailureActions.SecondDelayInMillis / 1000), 2), Math.Round((selectedService.FailureActions.SubsequentDelaysInMillis / 60000), 2), Math.Round((selectedService.FailureActions.SubsequentDelaysInMillis / 1000), 2)) CheckBox1.Checked = If(selectedService.StartType = WindowsService.ServiceStartType.Automatic, selectedService.DelayedStart, False) CheckBox1.Enabled = selectedService.StartType = WindowsService.ServiceStartType.Automatic @@ -62,12 +56,12 @@ Public Class ServiceManagementForm If {80, 96}.Contains(selectedService.Type) Then If selectedService.UserServiceFlags = Integer.MinValue Then - TextBox14.Text = "Undefined" + TextBox14.Text = LocalizationService.ForSection("ServiceManagement.Display")("Undefined.Label") Else TextBox14.Text = selectedService.UserServiceFlags End If Else - TextBox14.Text = "Not a per-user service" + TextBox14.Text = LocalizationService.ForSection("ServiceManagement.Display")("Per.User.Label") End If ListView2.Items.Clear() @@ -88,7 +82,7 @@ Public Class ServiceManagementForm ListView5.Items.AddRange(servicesInGroup.Select(Function(serviceInGroup) New ListViewItem(New String() {serviceInGroup.Name, serviceInGroup.DisplayName, serviceInGroup.TypeToString()})).ToArray()) ListView5.Visible = True Else - TextBox6.Text = "" + TextBox6.Text = LocalizationService.ForSection("ServiceManagement.Display")("Undefined.Group.Label") ListView5.Visible = False End If End Sub @@ -96,6 +90,11 @@ Public Class ServiceManagementForm Private Sub ServiceManagementForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load ListView1.Items.Clear() ComboBox1.Items.Clear() + ServiceStartTypes = New String() {LocalizationService.ForSection("ServiceManagement.StartTypes")("BootLoader.Label"), + LocalizationService.ForSection("ServiceManagement.StartTypes")("Iosystem.Label"), + LocalizationService.ForSection("ServiceManagement.StartTypes")("Automatic.Label"), + LocalizationService.ForSection("ServiceManagement.StartTypes")("Manual.Label"), + LocalizationService.ForSection("ServiceManagement.StartTypes")("Disabled.Label")} ComboBox1.Items.AddRange(ServiceStartTypes) BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor @@ -213,7 +212,7 @@ Public Class ServiceManagementForm If ForbiddenTypesForNonServices.Contains(ServiceList(selectedIndex).Type) AndAlso ForbiddenStartTypesForNonServices.Contains(ComboBox1.SelectedIndex) Then - If MsgBox("The selected start type is unsupported for services of this type. The selected service may not work correctly or at all if you continue with this start type." & vbCrLf & vbCrLf & "Do you want to reset this start type to its current value?", vbYesNo + vbExclamation) = MsgBoxResult.Yes Then + If MsgBox(LocalizationService.ForSection("Services.Messages")("StartType.Message"), vbYesNo + vbExclamation) = MsgBoxResult.Yes Then ComboBox1.SelectedIndex = ServiceList(selectedIndex).StartType Exit Sub End If @@ -252,11 +251,9 @@ Public Class ServiceManagementForm ReportServiceSave(current, count) End Sub) End Function) Then - MsgBox("System service information has been successfully saved to the registry of the target image." & vbCrLf & vbCrLf & - "A backup of the previous service configuration has been saved to your desktop should you need it in case service modifications do not go as planned." & vbCrLf & vbCrLf & - "Simply load the target image's SYSTEM hive and import this registry file.", vbOKOnly + vbInformation) + MsgBox(LocalizationService.ForSection("Services.Messages")("System.Done.Message"), vbOKOnly + vbInformation) Else - MsgBox("System service information could not be saved to the registry of the target image.", vbOKOnly + vbExclamation) + MsgBox(LocalizationService.ForSection("Services.Messages")("InfoSaved.Message"), vbOKOnly + vbExclamation) End If WindowHelper.EnableCloseCapability(Handle) Cursor = Cursors.Arrow @@ -278,7 +275,7 @@ Public Class ServiceManagementForm End If If isModified Then - If MsgBox("Some changes have been made. Closing this window will discard all your changes to Windows services. Do you want to discard these changes?", vbYesNo + vbQuestion) = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("Services.Messages")("UnsavedClose.Message"), vbYesNo + vbQuestion) = MsgBoxResult.No Then e.Cancel = True Beep() Exit Sub @@ -311,7 +308,7 @@ Public Class ServiceManagementForm If isBusy Then Exit Sub If isModified Then - If MsgBox("Some changes have been made. Reloading service information will discard all your changes to Windows services. Do you want to discard these changes?", vbYesNo + vbQuestion) = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("Services.Messages")("UnsavedReload.Message"), vbYesNo + vbQuestion) = MsgBoxResult.No Then Exit Sub End If End If @@ -352,8 +349,8 @@ Public Class ServiceManagementForm Private Sub DeleteServiceBtn_Click(sender As Object, e As EventArgs) Handles DeleteServiceBtn.Click If ListView1.SelectedItems.Count = 1 Then - If MessageBox.Show("Continuing with the removal of this service can cause the target system to become either unstable or unbootable. Do you want to continue?", - "Remove service", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.No Then Exit Sub + If MessageBox.Show(LocalizationService.ForSection("ServiceMgmt.Messages")("Continui.Removal.Svc.Message"), + LocalizationService.ForSection("Services.Messages")("RemoveService.Title"), MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.No Then Exit Sub Dim selectedIndex As Integer = ListView1.FocusedItem.Index @@ -369,9 +366,8 @@ Public Class ServiceManagementForm ModifiedServiceList.Add(newService) End If - MessageBox.Show("The service has been successfully scheduled for deletion. The removal of this service will take place when you save the changes. " & - "Should you ever need this service back, please import the service information backup that will be made during the save process.", - "Remove service", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("Services.Messages")("Scheduled.Deletion.Message"), + LocalizationService.ForSection("Services.Messages")("RemoveService.Title"), MessageBoxButtons.OK, MessageBoxIcon.Information) ' Force refresh of service information DisplayServiceInformation(ListView1.FocusedItem.Index) diff --git a/Panels/Img_Ops/Switch/ImgIndexSwitch.Designer.vb b/Panels/Img_Ops/Switch/ImgIndexSwitch.Designer.vb index 602474b39..eebeaa409 100644 --- a/Panels/Img_Ops/Switch/ImgIndexSwitch.Designer.vb +++ b/Panels/Img_Ops/Switch/ImgIndexSwitch.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgIndexSwitch Inherits System.Windows.Forms.Form @@ -64,7 +64,7 @@ Partial Class ImgIndexSwitch Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Ok.Button") ' 'Cancel_Button ' @@ -75,7 +75,7 @@ Partial Class ImgIndexSwitch Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Cancel.Button") ' 'GroupBox1 ' @@ -90,7 +90,7 @@ Partial Class ImgIndexSwitch Me.GroupBox1.Size = New System.Drawing.Size(535, 103) Me.GroupBox1.TabIndex = 5 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Indexes" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Indexes.Group") ' 'NumericUpDown1 ' @@ -109,7 +109,7 @@ Partial Class ImgIndexSwitch Me.RadioButton2.Size = New System.Drawing.Size(162, 17) Me.RadioButton2.TabIndex = 1 Me.RadioButton2.TabStop = True - Me.RadioButton2.Text = "Unmount discarding changes" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("DiscardChanges.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -120,7 +120,7 @@ Partial Class ImgIndexSwitch Me.RadioButton1.Size = New System.Drawing.Size(134, 17) Me.RadioButton1.TabIndex = 1 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Save changes to index" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Save.Changes.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'Label5 @@ -130,7 +130,7 @@ Partial Class ImgIndexSwitch Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(312, 13) Me.Label5.TabIndex = 0 - Me.Label5.Text = "" + Me.Label5.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Index.Label") ' 'Label4 ' @@ -139,7 +139,7 @@ Partial Class ImgIndexSwitch Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(140, 13) Me.Label4.TabIndex = 0 - Me.Label4.Text = "Destination index to mount:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Destination.Mount.Label") ' 'Label3 ' @@ -147,7 +147,7 @@ Partial Class ImgIndexSwitch Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(222, 38) Me.Label3.TabIndex = 0 - Me.Label3.Text = "When unmounting source index, what to do?" + Me.Label3.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Unmounting.Source.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label2 @@ -157,7 +157,7 @@ Partial Class ImgIndexSwitch Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(41, 13) Me.Label2.TabIndex = 6 - Me.Label2.Text = "Image:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Image.Label") ' 'TextBox1 ' @@ -174,7 +174,7 @@ Partial Class ImgIndexSwitch Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(186, 13) Me.Label6.TabIndex = 0 - Me.Label6.Text = "This index has already been mounted" + Me.Label6.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Already.Mounted.Label") Me.Label6.Visible = False ' 'ImageTaskHeader1 @@ -211,7 +211,7 @@ Partial Class ImgIndexSwitch Me.Name = "ImgIndexSwitch" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Switch image indexes" + Me.Text = LocalizationService.ForSection("Designer.ImageIndexSwitch")("Image.Indexes.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Img_Ops/Switch/ImgIndexSwitch.vb b/Panels/Img_Ops/Switch/ImgIndexSwitch.vb index 90e933394..6b0e5e097 100644 --- a/Panels/Img_Ops/Switch/ImgIndexSwitch.vb +++ b/Panels/Img_Ops/Switch/ImgIndexSwitch.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class ImgIndexSwitch Implements IImageTaskDialog @@ -43,31 +43,7 @@ Public Class ImgIndexSwitch DynaLog.LogMessage("Getting image indexes...") ProgressPanel.OperationNum = 995 PleaseWaitDialog.indexesSourceImg = MainForm.SourceImg - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - PleaseWaitDialog.Label2.Text = "Getting image indexes..." - Case "ESN" - PleaseWaitDialog.Label2.Text = "Obteniendo índices de la imagen..." - Case "FRA" - PleaseWaitDialog.Label2.Text = "Obtention des index de l'image en cours..." - Case "PTB", "PTG" - PleaseWaitDialog.Label2.Text = "Obter índices de imagem..." - Case "ITA" - PleaseWaitDialog.Label2.Text = "Ottenere gli indici delle immagini..." - End Select - Case 1 - PleaseWaitDialog.Label2.Text = "Getting image indexes..." - Case 2 - PleaseWaitDialog.Label2.Text = "Obteniendo índices de la imagen..." - Case 3 - PleaseWaitDialog.Label2.Text = "Obtention des index de l'image en cours..." - Case 4 - PleaseWaitDialog.Label2.Text = "Obter índices de imagem..." - Case 5 - PleaseWaitDialog.Label2.Text = "Ottenere gli indici delle immagini..." - End Select + PleaseWaitDialog.Label2.Text = LocalizationService.ForSection("ImageIndexSwitch.Initialize")("Getting.Image.Indexes.Label") PleaseWaitDialog.ShowDialog(Me) MainForm.StartMountedImageDetector() Return (PleaseWaitDialog.imgIndexes > 1) @@ -77,131 +53,17 @@ Public Class ImgIndexSwitch If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Switch image indexes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image:" - Label3.Text = "When unmounting source index, what to do?" - Label4.Text = "Destination index to mount:" - Label6.Text = "This index has already been mounted" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - GroupBox1.Text = "Indexes" - RadioButton1.Text = "Save changes to index" - RadioButton2.Text = "Unmount discarding changes" - Case "ESN" - Text = "Cambiar índices de imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen:" - Label3.Text = "Al desmontar índice de origen, ¿qué hacer?" - Label4.Text = "Índice de destino a montar:" - Label6.Text = "Este índice ya está montado" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Índice" - RadioButton1.Text = "Guardar cambios en el índice" - RadioButton2.Text = "Desmontar descartando cambios" - Case "FRA" - Text = "Changer d'index de l'image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image :" - Label3.Text = "Que faire lors du démonter l'index original ?" - Label4.Text = "Index de destination à monter :" - Label6.Text = "Cet index a déjà été monté" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - GroupBox1.Text = "Index" - RadioButton1.Text = "Sauvegarder les modifications dans l'index" - RadioButton2.Text = "Annuler les modifications et démonter" - Case "PTB", "PTG" - Text = "Mudar os índices de imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagem:" - Label3.Text = "Quando desmontar o índice de origem, o que fazer?" - Label4.Text = "Índice de destino para montar:" - Label6.Text = "Este índice já foi montado" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Índices" - RadioButton1.Text = "Guardar alterações no índice" - RadioButton2.Text = "Desmontar descartando as alterações" - Case "ITA" - Text = "Cambia gli indici delle immagini" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Immagine:" - Label3.Text = "Quando si smonta l'indice sorgente, cosa fare?" - Label4.Text = "Indice di destinazione da montare:" - Label6.Text = "Questo indice è già stato montato" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - GroupBox1.Text = "Indici" - RadioButton1.Text = "Salva le modifiche all'indice" - RadioButton2.Text = "Smonta scartando le modifiche" - End Select - Case 1 - Text = "Switch image indexes" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image:" - Label3.Text = "When unmounting source index, what to do?" - Label4.Text = "Destination index to mount:" - Label6.Text = "This index has already been mounted" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - GroupBox1.Text = "Indexes" - RadioButton1.Text = "Save changes to index" - RadioButton2.Text = "Unmount discarding changes" - Case 2 - Text = "Cambiar índices de imagen" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagen:" - Label3.Text = "Al desmontar índice de origen, ¿qué hacer?" - Label4.Text = "Índice de destino a montar:" - Label6.Text = "Este índice ya está montado" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Índice" - RadioButton1.Text = "Guardar cambios en el índice" - RadioButton2.Text = "Desmontar descartando cambios" - Case 3 - Text = "Changer d'index de l'image" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Image :" - Label3.Text = "Que faire lors du démonter l'index original ?" - Label4.Text = "Index de destination à monter :" - Label6.Text = "Cet index a déjà été monté" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - GroupBox1.Text = "Index" - RadioButton1.Text = "Sauvegarder les modifications dans l'index" - RadioButton2.Text = "Annuler les modifications et démonter" - Case 4 - Text = "Mudar os índices de imagem" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Imagem:" - Label3.Text = "Quando desmontar o índice de origem, o que fazer?" - Label4.Text = "Índice de destino para montar:" - Label6.Text = "Este índice já foi montado" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Índices" - RadioButton1.Text = "Guardar alterações no índice" - RadioButton2.Text = "Desmontar descartando as alterações" - Case 5 - Text = "Cambia gli indici delle immagini" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Immagine:" - Label3.Text = "Quando si smonta l'indice sorgente, cosa fare?" - Label4.Text = "Indice di destinazione da montare:" - Label6.Text = "Questo indice è già stato montato" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - GroupBox1.Text = "Indici" - RadioButton1.Text = "Salva le modifiche all'indice" - RadioButton2.Text = "Smonta scartando le modifiche" - End Select + Text = LocalizationService.ForSection("ImageIndexSwitch")("Image.Indexes.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ImageIndexSwitch").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ImageIndexSwitch")("Image.Label") + Label3.Text = LocalizationService.ForSection("ImageIndexSwitch")("Unmounting.Source.Label") + Label4.Text = LocalizationService.ForSection("ImageIndexSwitch")("Destination.Mount.Label") + Label6.Text = LocalizationService.ForSection("ImageIndexSwitch")("Already.Mounted.Label") + OK_Button.Text = LocalizationService.ForSection("ImageIndexSwitch")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImageIndexSwitch")("Cancel.Button") + GroupBox1.Text = LocalizationService.ForSection("ImageIndexSwitch")("Indexes.Group") + RadioButton1.Text = LocalizationService.ForSection("ImageIndexSwitch")("Save.Changes.RadioButton") + RadioButton2.Text = LocalizationService.ForSection("ImageIndexSwitch")("DiscardChanges.RadioButton") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/Switch/SingleImageIndexError.Designer.vb b/Panels/Img_Ops/Switch/SingleImageIndexError.Designer.vb index 65c9d8e51..6241d815e 100644 --- a/Panels/Img_Ops/Switch/SingleImageIndexError.Designer.vb +++ b/Panels/Img_Ops/Switch/SingleImageIndexError.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SingleImageIndexError Inherits System.Windows.Forms.Form @@ -66,8 +66,7 @@ Partial Class SingleImageIndexError Me.LinkLabel1.Size = New System.Drawing.Size(599, 42) Me.LinkLabel1.TabIndex = 12 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "To know more about the indexes of an image, or some of its specific properties, g" & _ - "o to ""Commands > Image management > Get image information"", or click here" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.SingleImageIndex")("Know.Indexes.Message") Me.LinkLabel1.UseCompatibleTextRendering = True ' 'Panel2 @@ -101,7 +100,7 @@ Partial Class SingleImageIndexError Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.SingleImageIndex")("Ok.Button") ' 'Label2 ' @@ -110,8 +109,7 @@ Partial Class SingleImageIndexError Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 56) Me.Label2.TabIndex = 11 - Me.Label2.Text = "You cannot switch to other indexes. If you want to save the image changes, you ca" & _ - "n do so using a new, separate index." + Me.Label2.Text = LocalizationService.ForSection("Designer.SingleImageIndex")("Cannot.Switch.Message") ' 'Label1 ' @@ -121,7 +119,7 @@ Partial Class SingleImageIndexError Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 10 - Me.Label1.Text = "This image seems to have only one index" + Me.Label1.Text = LocalizationService.ForSection("Designer.SingleImageIndex")("Image.Seems.Only.Label") ' 'SingleImageIndexError ' @@ -141,7 +139,7 @@ Partial Class SingleImageIndexError Me.Name = "SingleImageIndexError" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.SingleImageIndex")("DISMTools.Label") Me.Panel1.ResumeLayout(False) Me.Panel2.ResumeLayout(False) Me.TableLayoutPanel2.ResumeLayout(False) diff --git a/Panels/Img_Ops/Switch/SingleImageIndexError.vb b/Panels/Img_Ops/Switch/SingleImageIndexError.vb index 99c5cafe2..c496c4c46 100644 --- a/Panels/Img_Ops/Switch/SingleImageIndexError.vb +++ b/Panels/Img_Ops/Switch/SingleImageIndexError.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Imports System.Threading @@ -15,71 +15,11 @@ Public Class SingleImageIndexError End Sub Private Sub SingleImageIndexError_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "This image seems to have only one index" - Label2.Text = "You cannot switch to other indexes. If you want to save the image changes, you can do so using a new, separate index." - LinkLabel1.Text = "To know more about the indexes of an image, or some of its specific properties, go to " & Quote & "Commands > Image management > Get image information" & Quote & ", or click here" - LinkLabel1.LinkArea = New LinkArea(150, 4) - OK_Button.Text = "OK" - Case "ESN" - Label1.Text = "Esta imagen parece tener solo un índice" - Label2.Text = "No puede cambiar a otros índices. Si desea guardar los cambios de la imagen, puede hacerlo usando un índice nuevo." - LinkLabel1.Text = "Para saber más acerca de los índices de una imagen, o algunas de sus propiedades específicas, ve a " & Quote & "Comandos > Administración de la imagen > Obtener información de imagen" & Quote & ", o haga clic aquí" - LinkLabel1.LinkArea = New LinkArea(185, 4) - OK_Button.Text = "Aceptar" - Case "FRA" - Label1.Text = "Cette image semble n'avoir qu'un seul index" - Label2.Text = "Vous ne pouvez pas passer à d'autres index. Si vous souhaitez sauvegarder les modifications apportées à l'image, vous pouvez le faire en utilisant un nouvel index distinct." - LinkLabel1.Text = "Pour en savoir plus sur les index d'une image, ou sur certaines de ses propriétés spécifiques, allez dans " & Quote & "Commandes > Gestion des images > Obtenir des informations sur l'image" & Quote & ", ou cliquez ici" - LinkLabel1.LinkArea = New LinkArea(214, 3) - OK_Button.Text = "OK" - Case "PTB", "PTG" - Label1.Text = "Esta imagem parece ter apenas um índice" - Label2.Text = "Não é possível mudar para outros índices. Se quiser guardar as alterações da imagem, pode fazê-lo utilizando um índice novo e separado." - LinkLabel1.Text = "Para saber mais sobre os índices de uma imagem, ou sobre algumas das suas propriedades específicas, aceda a " & Quote & "Comandos > Gestão de imagens > Obter informações sobre a imagem" & Quote & ", ou clique aqui" - LinkLabel1.LinkArea = New LinkArea(185, 4) - OK_Button.Text = "OK" - Case "ITA" - Label1.Text = "Questa immagine sembra avere un solo indice" - Label2.Text = "Non è possibile passare ad altri indici. Se si desidera salvare le modifiche all'immagine, è possibile farlo utilizzando un nuovo indice separato" - LinkLabel1.Text = "Per saperne di più sugli indici di un'immagine o su alcune sue proprietà specifiche, andare su " & Quote & "Comandi > Gestione immagini > Ottieni informazioni sull'immagine" & Quote & ", oppure fare clic qui" - LinkLabel1.LinkArea = New LinkArea(176, 3) - OK_Button.Text = "OK" - End Select - Case 1 - Label1.Text = "This image seems to have only one index" - Label2.Text = "You cannot switch to other indexes. If you want to save the image changes, you can do so using a new, separate index." - LinkLabel1.Text = "To know more about the indexes of an image, or some of its specific properties, go to " & Quote & "Commands > Image management > Get image information" & Quote & ", or click here" - LinkLabel1.LinkArea = New LinkArea(150, 4) - OK_Button.Text = "OK" - Case 2 - Label1.Text = "Esta imagen parece tener solo un índice" - Label2.Text = "No puede cambiar a otros índices. Si desea guardar los cambios de la imagen, puede hacerlo usando un índice nuevo." - LinkLabel1.Text = "Para saber más acerca de los índices de una imagen, o algunas de sus propiedades específicas, ve a " & Quote & "Comandos > Administración de la imagen > Obtener información de imagen" & Quote & ", o haga clic aquí" - LinkLabel1.LinkArea = New LinkArea(185, 4) - OK_Button.Text = "Aceptar" - Case 3 - Label1.Text = "Cette image semble n'avoir qu'un seul index" - Label2.Text = "Vous ne pouvez pas passer à d'autres index. Si vous souhaitez sauvegarder les modifications apportées à l'image, vous pouvez le faire en utilisant un nouvel index distinct." - LinkLabel1.Text = "Pour en savoir plus sur les index d'une image, ou sur certaines de ses propriétés spécifiques, allez dans " & Quote & "Commandes > Gestion des images > Obtenir des informations sur l'image" & Quote & ", ou cliquez ici" - LinkLabel1.LinkArea = New LinkArea(214, 3) - OK_Button.Text = "OK" - Case 4 - Label1.Text = "Esta imagem parece ter apenas um índice" - Label2.Text = "Não é possível mudar para outros índices. Se quiser guardar as alterações da imagem, pode fazê-lo utilizando um índice novo e separado." - LinkLabel1.Text = "Para saber mais sobre os índices de uma imagem, ou sobre algumas das suas propriedades específicas, aceda a " & Quote & "Comandos > Gestão de imagens > Obter informações sobre a imagem" & Quote & ", ou clique aqui" - LinkLabel1.LinkArea = New LinkArea(185, 4) - OK_Button.Text = "OK" - Case 5 - Label1.Text = "Questa immagine sembra avere un solo indice" - Label2.Text = "Non è possibile passare ad altri indici. Se si desidera salvare le modifiche all'immagine, è possibile farlo utilizzando un nuovo indice separato" - LinkLabel1.Text = "Per saperne di più sugli indici di un'immagine o su alcune sue proprietà specifiche, andare su " & Quote & "Comandi > Gestione immagini > Ottieni informazioni sull'immagine" & Quote & ", oppure fare clic qui" - LinkLabel1.LinkArea = New LinkArea(176, 3) - OK_Button.Text = "OK" - End Select + Label1.Text = LocalizationService.ForSection("Single.Image")("Image.Seems.Only.Item") + Label2.Text = LocalizationService.ForSection("Single.Image")("Cannot.Switch.Index.Message") + LinkLabel1.Text = LocalizationService.ForSection("Single.Image")("Know.Indexes.Message") + LinkLabel1.LinkArea = LocalizationService.GetLinkArea(LinkLabel1.Text, LocalizationService.ForSection("Single.Image")("Here.LinkText")) + OK_Button.Text = LocalizationService.ForSection("Single.Image")("Ok.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Img_Ops/Unattend/ApplyUnattendFile.Designer.vb b/Panels/Img_Ops/Unattend/ApplyUnattendFile.Designer.vb index 17763176e..ef5f20dbf 100644 --- a/Panels/Img_Ops/Unattend/ApplyUnattendFile.Designer.vb +++ b/Panels/Img_Ops/Unattend/ApplyUnattendFile.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ApplyUnattendFile Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class ApplyUnattendFile Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ApplyUnattend")("Ok.Button") ' 'Cancel_Button ' @@ -69,7 +69,7 @@ Partial Class ApplyUnattendFile Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ApplyUnattend")("Cancel.Button") ' 'Button1 ' @@ -78,7 +78,7 @@ Partial Class ApplyUnattendFile Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 11 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.ApplyUnattend")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -95,11 +95,11 @@ Partial Class ApplyUnattendFile Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(64, 13) Me.Label2.TabIndex = 9 - Me.Label2.Text = "Answer file:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ApplyUnattend")("AnswerFile.Label") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Answer files|*.xml" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("Designer.ApplyUnattend")("Answer.Files.XML.Filter") ' 'ImageTaskHeader1 ' @@ -122,7 +122,7 @@ Partial Class ApplyUnattendFile Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(238, 17) Me.CheckBox1.TabIndex = 13 - Me.CheckBox1.Text = "Copy answer file to image Sysprep directory" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ApplyUnattend")("Copy.AnswerFile.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label1 @@ -132,8 +132,7 @@ Partial Class ApplyUnattendFile Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(565, 13) Me.Label1.TabIndex = 14 - Me.Label1.Text = "Leave this option unchecked if you specify an answer file that causes conflicts w" & _ - "ith Sysprep if you enter audit mode." + Me.Label1.Text = LocalizationService.ForSection("Designer.ApplyUnattend")("LeaveUnchecked.Message") ' 'ApplyUnattendFile ' @@ -156,7 +155,7 @@ Partial Class ApplyUnattendFile Me.Name = "ApplyUnattendFile" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Apply unattended answer file" + Me.Text = LocalizationService.ForSection("Designer.ApplyUnattend")("UnattendAnswer.File.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/Unattend/ApplyUnattendFile.vb b/Panels/Img_Ops/Unattend/ApplyUnattendFile.vb index 602cc233e..020e8d067 100644 --- a/Panels/Img_Ops/Unattend/ApplyUnattendFile.vb +++ b/Panels/Img_Ops/Unattend/ApplyUnattendFile.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars @@ -14,31 +14,7 @@ Public Class ApplyUnattendFile Else DynaLog.LogMessage("Either no unattended answer file has been specified or it does not exist in the file system.") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "Either no unattended answer file has been specified or the specified file does not exist. Please verify that it exists, and try again." - Case "ESN" - msg = "O ningún archivo de respuesta desatendida se ha especificado o el archivo especificado no existe. Verifique de que existe, e inténtelo de nuevo." - Case "FRA" - msg = "Soit aucun fichier de réponse sans surveillance n'a été spécifié, soit le fichier spécifié n'existe pas. Veuillez vérifier qu'il existe et réessayer." - Case "PTB", "PTG" - msg = "Ou não foi especificado nenhum ficheiro de resposta não assistida ou o ficheiro especificado não existe. Verifique se ele existe e tente novamente." - Case "ITA" - msg = "Non è stato specificato alcun file di risposta non presidiato oppure il file specificato non esiste. Verificare che esista e riprovare." - End Select - Case 1 - msg = "Either no unattended answer file has been specified or the specified file does not exist. Please verify that it exists, and try again." - Case 2 - msg = "O ningún archivo de respuesta desatendida se ha especificado o el archivo especificado no existe. Verifique de que existe, e inténtelo de nuevo." - Case 3 - msg = "Soit aucun fichier de réponse sans surveillance n'a été spécifié, soit le fichier spécifié n'existe pas. Veuillez vérifier qu'il existe et réessayer." - Case 4 - msg = "Ou não foi especificado nenhum ficheiro de resposta não assistida ou o ficheiro especificado não existe. Verifique se ele existe e tente novamente." - Case 5 - msg = "Non è stato specificato alcun file di risposta non presidiato oppure il file specificato non esiste. Verificare che esista e riprovare." - End Select + msg = LocalizationService.ForSection("ApplyUnattend.Validation")("AnswerFile.Choose.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If @@ -65,81 +41,12 @@ Public Class ApplyUnattendFile End Sub Private Sub ApplyUnattendFile_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Apply unattended answer file" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Answer file:" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Aplicar archivo de respuesta desatendida" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de respuesta:" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Appliquer le fichier de réponses sans surveillance" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier de réponse :" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Aplicar ficheiro de resposta não assistida" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de resposta:" - Button1.Text = "Procurar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Applicare il file di risposta non presidiato" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File di risposta:" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Text = "Apply unattended answer file" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Answer file:" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Aplicar archivo de respuesta desatendida" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Archivo de respuesta:" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Appliquer le fichier de réponses sans surveillance" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Fichier de réponse :" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Aplicar ficheiro de resposta não assistida" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Ficheiro de resposta:" - Button1.Text = "Procurar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Applicare il file di risposta non presidiato" - ImageTaskHeader1.ItemText = Text - Label2.Text = "File di risposta:" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Text = LocalizationService.ForSection("ApplyUnattend")("UnattendAnswer.File.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ApplyUnattend").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("ApplyUnattend")("AnswerFile.Label") + Button1.Text = LocalizationService.ForSection("ApplyUnattend")("Browse.Button") + OK_Button.Text = LocalizationService.ForSection("ApplyUnattend")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ApplyUnattend")("Cancel.Button") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/WinPE/SetScratchSpace.Designer.vb b/Panels/Img_Ops/WinPE/SetScratchSpace.Designer.vb index 1466399a1..9f49584e5 100644 --- a/Panels/Img_Ops/WinPE/SetScratchSpace.Designer.vb +++ b/Panels/Img_Ops/WinPE/SetScratchSpace.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SetPEScratchSpace Inherits System.Windows.Forms.Form @@ -57,7 +57,7 @@ Partial Class SetPEScratchSpace Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.Scratch")("Ok.Button") ' 'Cancel_Button ' @@ -68,7 +68,7 @@ Partial Class SetPEScratchSpace Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.Scratch")("Cancel.Button") ' 'Label3 ' @@ -77,7 +77,7 @@ Partial Class SetPEScratchSpace Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(128, 13) Me.Label3.TabIndex = 11 - Me.Label3.Text = "Scratch space:" + Me.Label3.Text = LocalizationService.ForSection("Designer.Scratch")("ScratchSpace.Label") ' 'Label2 ' @@ -88,9 +88,7 @@ Partial Class SetPEScratchSpace Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 28) Me.Label2.TabIndex = 10 - Me.Label2.Text = "The scratch space is the amount of writable space available on the Windows PE sys" & _ - "tem volume when its contents are copied to memory. Please specify a scratch spac" & _ - "e amount and click OK." + Me.Label2.Text = LocalizationService.ForSection("Designer.Scratch")("AmountWritable.Message") ' 'ComboBox1 ' @@ -108,7 +106,7 @@ Partial Class SetPEScratchSpace Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(21, 13) Me.Label4.TabIndex = 13 - Me.Label4.Text = "MB" + Me.Label4.Text = LocalizationService.ForSection("Designer.Scratch")("MB.Label") ' 'Label5 ' @@ -117,7 +115,7 @@ Partial Class SetPEScratchSpace Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(254, 13) Me.Label5.TabIndex = 14 - Me.Label5.Text = "An invalid scratch space amount has been detected" + Me.Label5.Text = LocalizationService.ForSection("Designer.Scratch")("ScratchSpace.Amount.Label") Me.Label5.Visible = False ' 'ImageTaskHeader1 @@ -155,7 +153,7 @@ Partial Class SetPEScratchSpace Me.Name = "SetPEScratchSpace" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Set Windows PE scratch space" + Me.Text = LocalizationService.ForSection("Designer.Scratch")("Set.Windows.Pescratch.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/WinPE/SetScratchSpace.vb b/Panels/Img_Ops/WinPE/SetScratchSpace.vb index fd0c5a66b..e96aff26d 100644 --- a/Panels/Img_Ops/WinPE/SetScratchSpace.vb +++ b/Panels/Img_Ops/WinPE/SetScratchSpace.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.Win32 Imports Microsoft.VisualBasic.ControlChars Imports System.IO @@ -60,81 +60,12 @@ Public Class SetPEScratchSpace If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Set Windows PE scratch space" - ImageTaskHeader1.ItemText = Text - Label2.Text = "The scratch space is the amount of writable space available on the Windows PE system volume when its contents are copied to memory. Please specify a scratch space amount and click OK." - Label3.Text = "Scratch space:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Establecer espacio temporal de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "El espacio temporal es la cantidad de espacio disponible que se puede escribir en el volumen del sistema de Windows PE cuando sus contenidos son copiados a la memoria. Especifique una cantidad de espacio temporal y haga clic en Aceptar." - Label3.Text = "Espacio temporal:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Configurer l'espace temporaire de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "L'espace temporaire est la quantité d'espace accessible en écriture disponible sur le volume du système Windows PE lorsque son contenu est copié dans la mémoire. Veuillez spécifier une quantité d'espace temporaire et cliquez sur OK." - Label3.Text = "Espace temporaire :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Configurar o espaço temporário do Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "O espaço de rascunho é a quantidade de espaço gravável disponível no volume do sistema Windows PE quando o seu conteúdo é copiado para a memória. Especifique uma quantidade de espaço de rascunho e clique em OK." - Label3.Text = "Espaço temporário:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Imposta spazio temporaneo Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Lo spazio temporaneo è la quantità di spazio scrivibile disponibile sul volume di sistema Windows PE quando il suo contenuto viene copiato in memoria. Specificare la quantità di spazio temporaneo e fare clic su OK" - Label3.Text = "Spazio temporaneo:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Text = "Set Windows PE scratch space" - ImageTaskHeader1.ItemText = Text - Label2.Text = "The scratch space is the amount of writable space available on the Windows PE system volume when its contents are copied to memory. Please specify a scratch space amount and click OK." - Label3.Text = "Scratch space:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Establecer espacio temporal de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "El espacio temporal es la cantidad de espacio disponible que se puede escribir en el volumen del sistema de Windows PE cuando sus contenidos son copiados a la memoria. Especifique una cantidad de espacio temporal y haga clic en Aceptar." - Label3.Text = "Espacio temporal:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Configurer l'espace temporaire de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "L'espace temporaire est la quantité d'espace accessible en écriture disponible sur le volume du système Windows PE lorsque son contenu est copié dans la mémoire. Veuillez spécifier une quantité d'espace temporaire et cliquez sur OK." - Label3.Text = "Espace temporaire :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Configurar o espaço temporário do Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "O espaço de rascunho é a quantidade de espaço gravável disponível no volume do sistema Windows PE quando o seu conteúdo é copiado para a memória. Especifique uma quantidade de espaço de rascunho e clique em OK." - Label3.Text = "Espaço temporário:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Imposta spazio temporaneo Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Lo spazio temporaneo è la quantità di spazio scrivibile disponibile sul volume di sistema Windows PE quando il suo contenuto viene copiato in memoria. Specificare la quantità di spazio temporaneo e fare clic su OK" - Label3.Text = "Spazio temporaneo:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Text = LocalizationService.ForSection("PE.Scratch")("Window.Title") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("PE.Scratch").Format("Header.Title", Text) + Label2.Text = LocalizationService.ForSection("PE.Scratch")("Description.Message") + Label3.Text = LocalizationService.ForSection("PE.Scratch")("Space.Label") + OK_Button.Text = LocalizationService.ForSection("PE.Scratch")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("PE.Scratch")("Cancel.Button") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Img_Ops/WinPE/SetTargetPath.Designer.vb b/Panels/Img_Ops/WinPE/SetTargetPath.Designer.vb index b3bc91c30..831fa8ae7 100644 --- a/Panels/Img_Ops/WinPE/SetTargetPath.Designer.vb +++ b/Panels/Img_Ops/WinPE/SetTargetPath.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SetPETargetPath Inherits System.Windows.Forms.Form @@ -55,7 +55,7 @@ Partial Class SetPETargetPath Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.SetTargetPath")("Ok.Button") ' 'Cancel_Button ' @@ -66,7 +66,7 @@ Partial Class SetPETargetPath Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.SetTargetPath")("Cancel.Button") ' 'Label2 ' @@ -77,8 +77,7 @@ Partial Class SetPETargetPath Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 28) Me.Label2.TabIndex = 8 - Me.Label2.Text = "The target path is a directory where the Windows PE files will be copied to in or" & _ - "der to boot to the environment. Please specify a target path and click OK." + Me.Label2.Text = LocalizationService.ForSection("Designer.SetTargetPath")("Target.Dir.Message") ' 'Label3 ' @@ -87,7 +86,7 @@ Partial Class SetPETargetPath Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(68, 13) Me.Label3.TabIndex = 9 - Me.Label3.Text = "Target path:" + Me.Label3.Text = LocalizationService.ForSection("Designer.SetTargetPath")("TargetPath.Label") ' 'TextBox1 ' @@ -129,7 +128,7 @@ Partial Class SetPETargetPath Me.Name = "SetPETargetPath" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Set Windows PE target path" + Me.Text = LocalizationService.ForSection("Designer.SetTargetPath")("Windows.Petarget.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Img_Ops/WinPE/SetTargetPath.vb b/Panels/Img_Ops/WinPE/SetTargetPath.vb index 4178c4885..2e069901a 100644 --- a/Panels/Img_Ops/WinPE/SetTargetPath.vb +++ b/Panels/Img_Ops/WinPE/SetTargetPath.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Imports Microsoft.Win32 Imports System.IO @@ -38,151 +38,31 @@ Public Class SetPETargetPath DynaLog.LogMessage("Checking specified target path...") If TextBox1.TextLength < 3 Or TextBox1.TextLength > 32 Then DynaLog.LogMessage("Target path is not long enough or is too long.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The target path must be at least 3 characters and no longer than 32 characters" - Case "ESN" - msg = "La ruta de destino debe tener al menos 3 caracteres y no más de 32" - Case "FRA" - msg = "Le chemin cible doit être composé d'au moins 3 caractères et d'au plus 32 caractères." - Case "PTB", "PTG" - msg = "O local de destino tem de ter pelo menos 3 caracteres e não mais de 32 caracteres" - Case "ITA" - msg = "Il percorso di destinazione deve essere di almeno 3 caratteri e non più lungo di 32 caratteri" - End Select - Case 1 - msg = "The target path must be at least 3 characters and no longer than 32 characters" - Case 2 - msg = "La ruta de destino debe tener al menos 3 caracteres y no más de 32" - Case 3 - msg = "Le chemin cible doit être composé d'au moins 3 caractères et d'au plus 32 caractères." - Case 4 - msg = "O local de destino tem de ter pelo menos 3 caracteres e não mais de 32 caracteres" - Case 5 - msg = "Il percorso di destinazione deve essere di almeno 3 caratteri e non più lungo di 32 caratteri" - End Select + msg = LocalizationService.ForSection("PETargetPath.Validation")("Target.Least.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If If TextBox1.Text.StartsWith("A", StringComparison.OrdinalIgnoreCase) Or TextBox1.Text.StartsWith("B", StringComparison.OrdinalIgnoreCase) Then DynaLog.LogMessage("Target path points to a drive commonly used by floppy disks.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The target path must start with any letter other than A or B" - Case "ESN" - msg = "La ruta de destino debe empezar con cualquier letra que no sea A o B" - Case "FRA" - msg = "Le chemin cible doit commencer par une lettre autre que A ou B." - Case "PTB", "PTG" - msg = "O local de destino deve começar com uma letra diferente de A ou B" - Case "ITA" - msg = "Il percorso di destinazione deve iniziare con una lettera diversa da A o B" - End Select - Case 1 - msg = "The target path must start with any letter other than A or B" - Case 2 - msg = "La ruta de destino debe empezar con cualquier letra que no sea A o B" - Case 3 - msg = "Le chemin cible doit commencer par une lettre autre que A ou B." - Case 4 - msg = "O local de destino deve começar com uma letra diferente de A ou B" - Case 5 - msg = "Il percorso di destinazione deve iniziare con una lettera diversa da A o B" - End Select + msg = LocalizationService.ForSection("PETargetPath.Validation")("Target.Start.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If If Not TextBox1.Text.Chars(1).Equals(":"c) Then DynaLog.LogMessage("The drive letter is ill-formed.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "A drive letter must be followed by :" - Case "ESN" - msg = "Una letra de disco debe estar seguida por :" - Case "FRA" - msg = "Une lettre de disque doit être suivie de :" - Case "PTB", "PTG" - msg = "Uma letra de unidade deve ser seguida de :" - Case "ITA" - msg = "Una lettera di unità deve essere seguita da :" - End Select - Case 1 - msg = "A drive letter must be followed by :" - Case 2 - msg = "Una letra de disco debe estar seguida por :" - Case 3 - msg = "Une lettre de disque doit être suivie de :" - Case 4 - msg = "Uma letra de unidade deve ser seguida de :" - Case 5 - msg = "Una lettera di unità deve essere seguita da :" - End Select + msg = LocalizationService.ForSection("PETargetPath.Validation")("DriveLetterFormat.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If If TextBox1.Text.Contains(".\") Or TextBox1.Text.Contains("..\") Then DynaLog.LogMessage("A relative path is being used.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The target path must be absolute, and must not contain relative elements" - Case "ESN" - msg = "La ruta de destino debe ser absoluta, y no debe contener elementos relativos" - Case "FRA" - msg = "Le chemin cible doit être absolu et ne doit pas contenir d'éléments relatifs." - Case "PTB", "PTG" - msg = "A localização de destino tem de ser absoluta e não pode conter elementos relativos" - Case "ITA" - msg = "Il percorso di destinazione deve essere assoluto e non deve contenere elementi relativi" - End Select - Case 1 - msg = "The target path must be absolute, and must not contain relative elements" - Case 2 - msg = "La ruta de destino debe ser absoluta, y no debe contener elementos relativos" - Case 3 - msg = "Le chemin cible doit être absolu et ne doit pas contenir d'éléments relatifs." - Case 4 - msg = "A localização de destino tem de ser absoluta e não pode conter elementos relativos" - Case 5 - msg = "Il percorso di destinazione deve essere assoluto e non deve contenere elementi relativi" - End Select + msg = LocalizationService.ForSection("PETargetPath.Validation")("AbsolutePath.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If If TextBox1.Text.Contains(" ") Or TextBox1.Text.Contains(Quote) Then DynaLog.LogMessage("The target path contains spaces or quotes.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The target path must not contain spaces or quotation marks" - Case "ESN" - msg = "La ruta de destino no debe contener espacios o comillas" - Case "FRA" - msg = "Le chemin cible ne doit pas contenir d'espaces ou de guillemets." - Case "PTB", "PTG" - msg = "A localização de destino não pode conter espaços ou aspas" - Case "ITA" - msg = "Il percorso di destinazione non deve contenere spazi o virgolette" - End Select - Case 1 - msg = "The target path must not contain spaces or quotation marks" - Case 2 - msg = "La ruta de destino no debe contener espacios o comillas" - Case 3 - msg = "Le chemin cible ne doit pas contenir d'espaces ou de guillemets." - Case 4 - msg = "A localização de destino não pode conter espaços ou aspas" - Case 5 - msg = "Il percorso di destinazione non deve contenere spazi o virgolette" - End Select + msg = LocalizationService.ForSection("PETargetPath.Validation")("Target.Contain.Message") MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End If @@ -213,81 +93,12 @@ Public Class SetPETargetPath If Not Initialize() Then Close() End If - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Set Windows PE target path" - ImageTaskHeader1.ItemText = Text - Label2.Text = "The target path is a directory where the Windows PE files will be copied to in order to boot to the environment. Please specify a target path and click OK." - Label3.Text = "Target path:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Text = "Establecer ruta de destino de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "La ruta de destino es una carpeta donde los archivos de Windows PE serán copiados para iniciar el entorno. Especifique una ruta de destino y haga clic en Aceptar." - Label3.Text = "Ruta de destino:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Text = "Configurer le chemin cible de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Le chemin cible est un répertoire dans lequel les fichiers Windows PE seront copiés afin de démarrer dans l'environnement. Veuillez indiquer un chemin cible et cliquer sur OK." - Label3.Text = "Chemin cible :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Text = "Configurar a localização de destino do Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "A localização de destino é um diretório para onde os ficheiros do Windows PE serão copiados para arrancar no ambiente. Especifique uma localização de destino e clique em OK." - Label3.Text = "Localização de destino:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Text = "Imposta il percorso di destinazione di Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Il percorso di destinazione è una directory in cui verranno copiati i file di Windows PE per l'avvio dell'ambiente. Specificare un percorso di destinazione e fare clic su OK" - Label3.Text = "Percorso di destinazione:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Text = "Set Windows PE target path" - ImageTaskHeader1.ItemText = Text - Label2.Text = "The target path is a directory where the Windows PE files will be copied to in order to boot to the environment. Please specify a target path and click OK." - Label3.Text = "Target path:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Text = "Establecer ruta de destino de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "La ruta de destino es una carpeta donde los archivos de Windows PE serán copiados para iniciar el entorno. Especifique una ruta de destino y haga clic en Aceptar." - Label3.Text = "Ruta de destino:" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Text = "Configurer le chemin cible de Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Le chemin cible est un répertoire dans lequel les fichiers Windows PE seront copiés afin de démarrer dans l'environnement. Veuillez indiquer un chemin cible et cliquer sur OK." - Label3.Text = "Chemin cible :" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Text = "Configurar a localização de destino do Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "A localização de destino é um diretório para onde os ficheiros do Windows PE serão copiados para arrancar no ambiente. Especifique uma localização de destino e clique em OK." - Label3.Text = "Localização de destino:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Text = "Imposta il percorso di destinazione di Windows PE" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Il percorso di destinazione è una directory in cui verranno copiati i file di Windows PE per l'avvio dell'ambiente. Specificare un percorso di destinazione e fare clic su OK" - Label3.Text = "Percorso di destinazione:" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Text = LocalizationService.ForSection("PETargetPath.Target")("Set.Windows.Petarget.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("PETargetPath.Target").Format("Image.Task.Header.Label", Text) + Label2.Text = LocalizationService.ForSection("PETargetPath.Target")("Target.Dir.Message") + Label3.Text = LocalizationService.ForSection("PETargetPath.Target")("TargetPath.Label") + OK_Button.Text = LocalizationService.ForSection("PETargetPath.Target")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("PETargetPath.Target")("Cancel.Button") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/MSEdge/AddEdgeBrowser.Designer.vb b/Panels/MSEdge/AddEdgeBrowser.Designer.vb index 95f083f72..fd2e5151e 100644 --- a/Panels/MSEdge/AddEdgeBrowser.Designer.vb +++ b/Panels/MSEdge/AddEdgeBrowser.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddEdgeBrowser Inherits System.Windows.Forms.Form @@ -55,7 +55,7 @@ Partial Class AddEdgeBrowser Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.AddEdgeBrowser")("Ok.Button") ' 'Cancel_Button ' @@ -65,7 +65,7 @@ Partial Class AddEdgeBrowser Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.AddEdgeBrowser")("Cancel.Button") ' 'Win10Title ' @@ -87,7 +87,7 @@ Partial Class AddEdgeBrowser Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(276, 30) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Add Microsoft Edge Browser" + Me.Label1.Text = LocalizationService.ForSection("Designer.AddEdgeBrowser")("Microsoft.Label") ' 'PictureBox1 ' @@ -116,7 +116,7 @@ Partial Class AddEdgeBrowser Me.Name = "AddEdgeBrowser" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add Microsoft Edge Browser" + Me.Text = LocalizationService.ForSection("Designer.AddEdgeBrowser")("Microsoft.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Win10Title.ResumeLayout(False) Me.Win10Title.PerformLayout() diff --git a/Panels/MSEdge/AddEdgeFull.Designer.vb b/Panels/MSEdge/AddEdgeFull.Designer.vb index 16f10c2f6..b5c81b330 100644 --- a/Panels/MSEdge/AddEdgeFull.Designer.vb +++ b/Panels/MSEdge/AddEdgeFull.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddEdgeFull Inherits System.Windows.Forms.Form @@ -56,7 +56,7 @@ Partial Class AddEdgeFull Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.AddEdgeFull")("Ok.Button") ' 'Cancel_Button ' @@ -66,7 +66,7 @@ Partial Class AddEdgeFull Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.AddEdgeFull")("Cancel.Button") ' 'Win10Title ' @@ -88,7 +88,7 @@ Partial Class AddEdgeFull Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(197, 30) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Add Microsoft Edge" + Me.Label1.Text = LocalizationService.ForSection("Designer.AddEdgeFull")("Microsoft.Label") ' 'PictureBox1 ' @@ -117,7 +117,7 @@ Partial Class AddEdgeFull Me.Name = "AddEdgeFull" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add Microsoft Edge" + Me.Text = LocalizationService.ForSection("Designer.AddEdgeFull")("Microsoft.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Win10Title.ResumeLayout(False) Me.Win10Title.PerformLayout() diff --git a/Panels/MSEdge/AddEdgeWebView.Designer.vb b/Panels/MSEdge/AddEdgeWebView.Designer.vb index 054f4d45e..41c6c45ef 100644 --- a/Panels/MSEdge/AddEdgeWebView.Designer.vb +++ b/Panels/MSEdge/AddEdgeWebView.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AddEdgeWebView Inherits System.Windows.Forms.Form @@ -55,7 +55,7 @@ Partial Class AddEdgeWebView Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.Add.Edge")("Ok.Button") ' 'Cancel_Button ' @@ -65,7 +65,7 @@ Partial Class AddEdgeWebView Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.Add.Edge")("Cancel.Button") ' 'Win10Title ' @@ -87,7 +87,7 @@ Partial Class AddEdgeWebView Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(289, 30) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Add Microsoft Edge WebView" + Me.Label1.Text = LocalizationService.ForSection("Designer.Add.Edge")("Microsoft.Web.Label") ' 'PictureBox1 ' @@ -116,7 +116,7 @@ Partial Class AddEdgeWebView Me.Name = "AddEdgeWebView" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Add Microsoft Edge WebView" + Me.Text = LocalizationService.ForSection("Designer.Add.Edge")("Microsoft.Web.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Win10Title.ResumeLayout(False) Me.Win10Title.PerformLayout() diff --git a/Panels/PopupDlgs/PopupMountedImagePicker.vb b/Panels/PopupDlgs/PopupMountedImagePicker.vb index 30d3e1a2e..e9568ea89 100644 --- a/Panels/PopupDlgs/PopupMountedImagePicker.vb +++ b/Panels/PopupDlgs/PopupMountedImagePicker.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.Dism @@ -142,91 +142,13 @@ Public Class PopupMountedImagePicker AddHandler MainForm.MountedImagesUpdated, mountedUpdatedHandler ' Translate - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - pmipForm.Text = "Pick image" - pmipOkButton.Text = "OK" - pmipCancelButton.Text = "Cancel" - pmipInstructionLabel.Text = "Pick an image from the list below:" - pmipMountedImageList.Columns(0).Text = "Image file" - pmipMountedImageList.Columns(1).Text = "Index" - pmipMountedImageList.Columns(2).Text = "Mount directory" - Case "ESN" - pmipForm.Text = "Escoger imagen" - pmipOkButton.Text = "Aceptar" - pmipCancelButton.Text = "Cancelar" - pmipInstructionLabel.Text = "Escoja una imagen de la lista de abajo:" - pmipMountedImageList.Columns(0).Text = "Archivo de imagen" - pmipMountedImageList.Columns(1).Text = "Índice" - pmipMountedImageList.Columns(2).Text = "Directorio de montaje" - Case "FRA" - pmipForm.Text = "Choisir l'image" - pmipOkButton.Text = "OK" - pmipCancelButton.Text = "Annuler" - pmipInstructionLabel.Text = "Choisissez une image dans la liste ci-dessous :" - pmipMountedImageList.Columns(0).Text = "Fichier de l'image" - pmipMountedImageList.Columns(1).Text = "Index" - pmipMountedImageList.Columns(2).Text = "Répertoire de montage" - Case "PTB", "PTG" - pmipForm.Text = "Escolher imagem" - pmipOkButton.Text = "OK" - pmipCancelButton.Text = "Cancelar" - pmipInstructionLabel.Text = "Escolher uma imagem da lista abaixo:" - pmipMountedImageList.Columns(0).Text = "Ficheiro de imagem" - pmipMountedImageList.Columns(1).Text = "Índice" - pmipMountedImageList.Columns(2).Text = "Diretório de montagem" - Case "ITA" - pmipForm.Text = "Scegli immagine" - pmipOkButton.Text = "OK" - pmipCancelButton.Text = "Annulla" - pmipInstructionLabel.Text = "Scegli un'immagine dall'elenco sottostante:" - pmipMountedImageList.Columns(0).Text = "File immagine" - pmipMountedImageList.Columns(1).Text = "Indice" - pmipMountedImageList.Columns(2).Text = "Directory di montaggio" - End Select - Case 1 - pmipForm.Text = "Pick image" - pmipOkButton.Text = "OK" - pmipCancelButton.Text = "Cancel" - pmipInstructionLabel.Text = "Pick an image from the list below:" - pmipMountedImageList.Columns(0).Text = "Image file" - pmipMountedImageList.Columns(1).Text = "Index" - pmipMountedImageList.Columns(2).Text = "Mount directory" - Case 2 - pmipForm.Text = "Escoger imagen" - pmipOkButton.Text = "Aceptar" - pmipCancelButton.Text = "Cancelar" - pmipInstructionLabel.Text = "Escoja una imagen de la lista de abajo:" - pmipMountedImageList.Columns(0).Text = "Archivo de imagen" - pmipMountedImageList.Columns(1).Text = "Índice" - pmipMountedImageList.Columns(2).Text = "Directorio de montaje" - Case 3 - pmipForm.Text = "Choisir l'image" - pmipOkButton.Text = "OK" - pmipCancelButton.Text = "Annuler" - pmipInstructionLabel.Text = "Choisissez une image dans la liste ci-dessous :" - pmipMountedImageList.Columns(0).Text = "Fichier de l'image" - pmipMountedImageList.Columns(1).Text = "Index" - pmipMountedImageList.Columns(2).Text = "Répertoire de montage" - Case 4 - pmipForm.Text = "Escolher imagem" - pmipOkButton.Text = "OK" - pmipCancelButton.Text = "Cancelar" - pmipInstructionLabel.Text = "Escolher uma imagem da lista abaixo:" - pmipMountedImageList.Columns(0).Text = "Ficheiro de imagem" - pmipMountedImageList.Columns(1).Text = "Índice" - pmipMountedImageList.Columns(2).Text = "Diretório de montagem" - Case 5 - pmipForm.Text = "Scegli immagine" - pmipOkButton.Text = "OK" - pmipCancelButton.Text = "Annulla" - pmipInstructionLabel.Text = "Scegli un'immagine dall'elenco sottostante:" - pmipMountedImageList.Columns(0).Text = "File immagine" - pmipMountedImageList.Columns(1).Text = "Indice" - pmipMountedImageList.Columns(2).Text = "Directory di montaggio" - End Select + pmipForm.Text = LocalizationService.ForSection("MountedImagePicker.Pick")("Title.Label") + pmipOkButton.Text = LocalizationService.ForSection("MountedImagePicker")("Ok.Button") + pmipCancelButton.Text = LocalizationService.ForSection("MountedImagePicker")("Cancel.Button") + pmipInstructionLabel.Text = LocalizationService.ForSection("MountedImagePicker.Pick")("Image.List.Label") + pmipMountedImageList.Columns(0).Text = LocalizationService.ForSection("MountedImagePicker.Pick")("ImageFile.Column") + pmipMountedImageList.Columns(1).Text = LocalizationService.ForSection("MountedImagePicker.Pick")("Index.Column") + pmipMountedImageList.Columns(2).Text = LocalizationService.ForSection("MountedImagePicker.Pick")("MountDirectory.Column") ' Initial population and show the dialog GetMountedImages() diff --git a/Panels/Prj_Ops/NewProj.Designer.vb b/Panels/Prj_Ops/NewProj.Designer.vb index 09fa15c13..2186046f9 100644 --- a/Panels/Prj_Ops/NewProj.Designer.vb +++ b/Panels/Prj_Ops/NewProj.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class NewProj Inherits System.Windows.Forms.Form @@ -63,7 +63,7 @@ Partial Class NewProj Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.NewProj")("Ok.Button") ' 'Cancel_Button ' @@ -74,7 +74,7 @@ Partial Class NewProj Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.NewProj")("Cancel.Button") ' 'Label2 ' @@ -83,7 +83,7 @@ Partial Class NewProj Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(252, 13) Me.Label2.TabIndex = 7 - Me.Label2.Text = "Please specify the options to create a new project:" + Me.Label2.Text = LocalizationService.ForSection("Designer.NewProj")("Options.Required.Label") ' 'GroupBox1 ' @@ -97,7 +97,7 @@ Partial Class NewProj Me.GroupBox1.Size = New System.Drawing.Size(710, 112) Me.GroupBox1.TabIndex = 8 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Project" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.NewProj")("Project.Group") ' 'Button1 ' @@ -106,7 +106,7 @@ Partial Class NewProj Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 9 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.NewProj")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'TextBox2 @@ -131,7 +131,7 @@ Partial Class NewProj Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(94, 13) Me.Label4.TabIndex = 7 - Me.Label4.Text = "Location*:" + Me.Label4.Text = LocalizationService.ForSection("Designer.NewProj")("Location.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label3 @@ -142,12 +142,12 @@ Partial Class NewProj Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(94, 13) Me.Label3.TabIndex = 7 - Me.Label3.Text = "Name*:" + Me.Label3.Text = LocalizationService.ForSection("Designer.NewProj")("Name.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'FolderBrowserDialog1 ' - Me.FolderBrowserDialog1.Description = "Please select a folder to store this project:" + Me.FolderBrowserDialog1.Description = LocalizationService.ForSection("Designer.NewProj")("Folder.Store.Description") Me.FolderBrowserDialog1.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'Label5 @@ -157,7 +157,7 @@ Partial Class NewProj Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(179, 13) Me.Label5.TabIndex = 7 - Me.Label5.Text = "The fields that end in * are required" + Me.Label5.Text = LocalizationService.ForSection("Designer.NewProj")("Fields.End.Required.Label") ' 'ImageTaskHeader1 ' @@ -192,7 +192,7 @@ Partial Class NewProj Me.Name = "NewProj" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Create a new project" + Me.Text = LocalizationService.ForSection("Designer.NewProj")("Create.Project.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() diff --git a/Panels/Prj_Ops/NewProj.vb b/Panels/Prj_Ops/NewProj.vb index 1edc4dc31..a82ca36d6 100644 --- a/Panels/Prj_Ops/NewProj.vb +++ b/Panels/Prj_Ops/NewProj.vb @@ -1,10 +1,12 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Text.RegularExpressions Public Class NewProj + Public SaveAsMode As Boolean + Dim IsReqField1Valid As Boolean Dim IsReqField2Valid As Boolean @@ -19,62 +21,14 @@ Public Class NewProj If Not Directory.Exists(TextBox2.Text) Then DynaLog.LogMessage("The project path does not exist. Asking user whether or not to create it...") Dim msg As String = "" - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "The directory: " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "does not exist. Do you want to create it?" - Case "ESN" - msg = "El directorio: " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "no existe. ¿Desea crearlo?" - Case "FRA" - msg = "Le répertoire : " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "n'existe pas. Voulez-vous le créer ?" - Case "PTB", "PTG" - msg = "O diretório: " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "Deseja criá-lo?" - Case "ITA" - msg = "La cartella: " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "non esiste. Si desidera crearla?" - End Select - Case 1 - msg = "The directory: " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "does not exist. Do you want to create it?" - Case 2 - msg = "El directorio: " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "no existe. ¿Desea crearlo?" - Case 3 - msg = "Le répertoire : " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "n'existe pas. Voulez-vous le créer ?" - Case 4 - msg = "O diretório: " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "Deseja criá-lo?" - Case 5 - msg = "La cartella: " & CrLf & Quote & TextBox2.Text & Quote & CrLf & "non esiste. Si desidera crearla?" - End Select + msg = LocalizationService.ForSection("NewProj.Validation").Format("Dir.Exist.Create.Message", TextBox2.Text) If MsgBox(msg, vbYesNo + vbQuestion, ImageTaskHeader1.ItemText) = MsgBoxResult.Yes Then DynaLog.LogMessage("The user has decided to create the folder. Attempting to create it...") Try Directory.CreateDirectory(TextBox2.Text) Catch ex As Exception DynaLog.LogMessage("Could not create the folder. Error message: " & ex.Message) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - msg = "We could not create the project directory for you due to: " & CrLf & ex.ToString() & "; " & ex.Message - Case "ESN" - msg = "No pudimos crear el directorio del proyecto porque: " & CrLf & ex.ToString() & "; " & ex.Message - Case "FRA" - msg = "Nous n'avons pas pu créer le répertoire du projet pour vous pour les raisons suivantes : " & CrLf & ex.ToString() & "; " & ex.Message - Case "PTB", "PTG" - msg = "Não foi possível criar o diretório do projeto para si devido a: " & CrLf & ex.ToString() & "; " & ex.Message - Case "ITA" - msg = "Non è stato possibile creare la cartella del progetto a causa di: " & CrLf & ex.ToString() & "; " & ex.Message - End Select - Case 1 - msg = "We could not create the project directory for you due to: " & CrLf & ex.ToString() & "; " & ex.Message - Case 2 - msg = "No pudimos crear el directorio del proyecto porque: " & CrLf & ex.ToString() & "; " & ex.Message - Case 3 - msg = "Nous n'avons pas pu créer le répertoire du projet pour vous pour les raisons suivantes : " & CrLf & ex.ToString() & "; " & ex.Message - Case 4 - msg = "Não foi possível criar o diretório do projeto para si devido a: " & CrLf & ex.ToString() & "; " & ex.Message - Case 5 - msg = "Non è stato possibile creare la cartella del progetto a causa di: " & CrLf & ex.ToString() & "; " & ex.Message - End Select + msg = LocalizationService.ForSection("NewProj.Validation").Format("Create.Project.Dir.Message", ex.ToString(), ex.Message) MsgBox(msg, vbOKOnly + vbCritical, ImageTaskHeader1.ItemText) Exit Sub End Try @@ -82,6 +36,11 @@ Public Class NewProj Exit Sub End If End If + If SaveAsMode Then + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Hide() + Exit Sub + End If ProgressPanel.OperationNum = 0 Me.DialogResult = System.Windows.Forms.DialogResult.OK If MainForm.isProjectLoaded Then @@ -108,131 +67,22 @@ Public Class NewProj End Sub Private Sub NewProj_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Create a new project" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please specify the options to create a new project:" - Label3.Text = "Name*:" - Label4.Text = "Location*:" - Label5.Text = "The fields that end in * are required" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - GroupBox1.Text = "Project" - FolderBrowserDialog1.Description = "Please select a folder to store this project:" - Case "ESN" - Text = "Crear un nuevo proyecto" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique las opciones para crear un nuevo proyecto:" - Label3.Text = "Nombre*:" - Label4.Text = "Ubicación*:" - Label5.Text = "Los campos que terminen en * son necesarios" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Proyecto" - FolderBrowserDialog1.Description = "Seleccione una carpeta donde almacenar este proyecto:" - Case "FRA" - Text = "Créer un nouveau projet" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez spécifier les options pour créer un nouveau projet :" - Label3.Text = "Nom* :" - Label4.Text = "Emplacement* :" - Label5.Text = "Les champs se terminant par * sont obligatoires" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - GroupBox1.Text = "Projet" - FolderBrowserDialog1.Description = "Veuillez sélectionner un dossier pour stocker ce projet :" - Case "PTB", "PTG" - Text = "Criar um novo projeto" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por favor, especifique as opções para criar um novo projeto:" - Label3.Text = "Nome*:" - Label4.Text = "Localização*:" - Label5.Text = "Os campos que terminam em * são obrigatórios" - Button1.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Projeto" - FolderBrowserDialog1.Description = "Por favor, seleccione uma pasta para armazenar este projeto:" - Case "ITA" - Text = "Crea un nuovo progetto" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare le opzioni per creare un nuovo progetto:" - Label3.Text = "Nome*:" - Label4.Text = "Ubicazione*:" - Label5.Text = "I campi che terminano con * sono obbligatori" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - GroupBox1.Text = "Progetto" - FolderBrowserDialog1.Description = "Selezionare una cartella per memorizzare questo progetto:" - End Select - Case 1 - Text = "Create a new project" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Please specify the options to create a new project:" - Label3.Text = "Name*:" - Label4.Text = "Location*:" - Label5.Text = "The fields that end in * are required" - Button1.Text = "Browse..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - GroupBox1.Text = "Project" - FolderBrowserDialog1.Description = "Please select a folder to store this project:" - Case 2 - Text = "Crear un nuevo proyecto" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Especifique las opciones para crear un nuevo proyecto:" - Label3.Text = "Nombre*:" - Label4.Text = "Ubicación*:" - Label5.Text = "Los campos que terminen en * son necesarios" - Button1.Text = "Examinar..." - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Proyecto" - FolderBrowserDialog1.Description = "Seleccione una carpeta donde almacenar este proyecto:" - Case 3 - Text = "Créer un nouveau projet" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Veuillez spécifier les options pour créer un nouveau projet :" - Label3.Text = "Nom* :" - Label4.Text = "Emplacement* :" - Label5.Text = "Les champs se terminant par * sont obligatoires" - Button1.Text = "Parcourir..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - GroupBox1.Text = "Projet" - FolderBrowserDialog1.Description = "Veuillez sélectionner un dossier pour stocker ce projet :" - Case 4 - Text = "Criar um novo projeto" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Por favor, especifique as opções para criar um novo projeto:" - Label3.Text = "Nome*:" - Label4.Text = "Localização*:" - Label5.Text = "Os campos que terminam em * são obrigatórios" - Button1.Text = "Navegar..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - GroupBox1.Text = "Projeto" - FolderBrowserDialog1.Description = "Por favor, seleccione uma pasta para armazenar este projeto:" - Case 5 - Text = "Crea un nuovo progetto" - ImageTaskHeader1.ItemText = Text - Label2.Text = "Specificare le opzioni per creare un nuovo progetto:" - Label3.Text = "Nome*:" - Label4.Text = "Ubicazione*:" - Label5.Text = "I campi che terminano con * sono obbligatori" - Button1.Text = "Sfoglia..." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - GroupBox1.Text = "Progetto" - FolderBrowserDialog1.Description = "Selezionare una cartella per memorizzare questo progetto:" - End Select + If SaveAsMode Then + Text = LocalizationService.ForSection("Main.Interface")("SaveProjectas.Button").Replace("&", "").TrimEnd("."c) + ImageTaskHeader1.ItemText = Text + Else + Text = LocalizationService.ForSection("NewProj")("Create.Project.Label") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("NewProj").Format("Image.Task.Header.Label", Text) + End If + Label2.Text = LocalizationService.ForSection("NewProj")("Options.Required.Label") + Label3.Text = LocalizationService.ForSection("NewProj")("Name.Label") + Label4.Text = LocalizationService.ForSection("NewProj")("Location.Label") + Label5.Text = LocalizationService.ForSection("NewProj")("Fields.End.Required.Label") + Button1.Text = LocalizationService.ForSection("NewProj")("Browse.Button") + OK_Button.Text = If(SaveAsMode, LocalizationService.ForSection("Main.SaveProjectAs")("Save.Button"), LocalizationService.ForSection("NewProj")("Ok.Button")) + Cancel_Button.Text = LocalizationService.ForSection("NewProj")("Cancel.Button") + GroupBox1.Text = LocalizationService.ForSection("NewProj")("Project.Group") + FolderBrowserDialog1.Description = LocalizationService.ForSection("NewProj")("Folder.Store.Description") ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor diff --git a/Panels/Prj_Ops/ProjProperties.Designer.vb b/Panels/Prj_Ops/ProjProperties.Designer.vb index 735aeecee..0ddfd1aa1 100644 --- a/Panels/Prj_Ops/ProjProperties.Designer.vb +++ b/Panels/Prj_Ops/ProjProperties.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ProjProperties Inherits System.Windows.Forms.Form @@ -134,7 +134,7 @@ Partial Class ProjProperties Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ProjProps")("Ok.Button") ' 'Cancel_Button ' @@ -145,7 +145,7 @@ Partial Class ProjProperties Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ProjProps")("Cancel.Button") ' 'Label8 ' @@ -157,7 +157,7 @@ Partial Class ProjProperties Me.Label8.Padding = New System.Windows.Forms.Padding(3) Me.Label8.Size = New System.Drawing.Size(186, 19) Me.Label8.TabIndex = 5 - Me.Label8.Text = "Project GUID:" + Me.Label8.Text = LocalizationService.ForSection("Designer.ProjProps")("ProjectGUID.Label") Me.Label8.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label7 @@ -170,7 +170,7 @@ Partial Class ProjProperties Me.Label7.Padding = New System.Windows.Forms.Padding(3) Me.Label7.Size = New System.Drawing.Size(186, 19) Me.Label7.TabIndex = 5 - Me.Label7.Text = "Creation date:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ProjProps")("CreationDate.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label6 @@ -183,7 +183,7 @@ Partial Class ProjProperties Me.Label6.Padding = New System.Windows.Forms.Padding(3) Me.Label6.Size = New System.Drawing.Size(186, 19) Me.Label6.TabIndex = 5 - Me.Label6.Text = "Location:" + Me.Label6.Text = LocalizationService.ForSection("Designer.ProjProps")("Location.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label12 @@ -196,7 +196,7 @@ Partial Class ProjProperties Me.Label12.Padding = New System.Windows.Forms.Padding(3) Me.Label12.Size = New System.Drawing.Size(784, 19) Me.Label12.TabIndex = 5 - Me.Label12.Text = "projGuid" + Me.Label12.Text = LocalizationService.ForSection("Designer.ProjProps")("ProjGuid.Label") ' 'Label11 ' @@ -208,7 +208,7 @@ Partial Class ProjProperties Me.Label11.Padding = New System.Windows.Forms.Padding(3) Me.Label11.Size = New System.Drawing.Size(784, 19) Me.Label11.TabIndex = 5 - Me.Label11.Text = "projTZData" + Me.Label11.Text = LocalizationService.ForSection("Designer.ProjProps")("ProjTzdata.Label") ' 'Label10 ' @@ -220,7 +220,7 @@ Partial Class ProjProperties Me.Label10.Padding = New System.Windows.Forms.Padding(3) Me.Label10.Size = New System.Drawing.Size(784, 19) Me.Label10.TabIndex = 5 - Me.Label10.Text = "projPath" + Me.Label10.Text = LocalizationService.ForSection("Designer.ProjProps")("ProjPath.Label") ' 'Label9 ' @@ -232,7 +232,7 @@ Partial Class ProjProperties Me.Label9.Padding = New System.Windows.Forms.Padding(3) Me.Label9.Size = New System.Drawing.Size(784, 19) Me.Label9.TabIndex = 5 - Me.Label9.Text = "projName" + Me.Label9.Text = LocalizationService.ForSection("Designer.ProjProps")("ProjName.Label") ' 'Label5 ' @@ -244,7 +244,7 @@ Partial Class ProjProperties Me.Label5.Padding = New System.Windows.Forms.Padding(3) Me.Label5.Size = New System.Drawing.Size(186, 19) Me.Label5.TabIndex = 5 - Me.Label5.Text = "Name:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ProjProps")("Name.Label") Me.Label5.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'LanguageList @@ -268,7 +268,7 @@ Partial Class ProjProperties Me.RemountImgBtn.Name = "RemountImgBtn" Me.RemountImgBtn.Size = New System.Drawing.Size(140, 24) Me.RemountImgBtn.TabIndex = 19 - Me.RemountImgBtn.Text = "Reload" + Me.RemountImgBtn.Text = LocalizationService.ForSection("Designer.ProjProps")("RemountImg.Label") Me.RemountImgBtn.UseVisualStyleBackColor = True Me.RemountImgBtn.Visible = False ' @@ -281,7 +281,7 @@ Partial Class ProjProperties Me.RecoverButton.Name = "RecoverButton" Me.RecoverButton.Size = New System.Drawing.Size(140, 24) Me.RecoverButton.TabIndex = 19 - Me.RecoverButton.Text = "Recover" + Me.RecoverButton.Text = LocalizationService.ForSection("Designer.ProjProps")("Recover.Label") Me.RecoverButton.UseVisualStyleBackColor = True Me.RecoverButton.Visible = False ' @@ -295,7 +295,7 @@ Partial Class ProjProperties Me.Label13.Padding = New System.Windows.Forms.Padding(4) Me.Label13.Size = New System.Drawing.Size(186, 21) Me.Label13.TabIndex = 6 - Me.Label13.Text = "Mount directory:" + Me.Label13.Text = LocalizationService.ForSection("Designer.ProjProps")("MountDirectory.Label") Me.Label13.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label58 @@ -308,7 +308,7 @@ Partial Class ProjProperties Me.Label58.Padding = New System.Windows.Forms.Padding(4) Me.Label58.Size = New System.Drawing.Size(132, 54) Me.Label58.TabIndex = 7 - Me.Label58.Text = "Installed languages:" + Me.Label58.Text = LocalizationService.ForSection("Designer.ProjProps")("Installed.Languages.Label") Me.Label58.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label60 @@ -320,7 +320,7 @@ Partial Class ProjProperties Me.Label60.Padding = New System.Windows.Forms.Padding(4) Me.Label60.Size = New System.Drawing.Size(132, 21) Me.Label60.TabIndex = 7 - Me.Label60.Text = "File format:" + Me.Label60.Text = LocalizationService.ForSection("Designer.ProjProps")("FileFormat.Label") Me.Label60.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label57 @@ -333,7 +333,7 @@ Partial Class ProjProperties Me.Label57.Padding = New System.Windows.Forms.Padding(4) Me.Label57.Size = New System.Drawing.Size(132, 21) Me.Label57.TabIndex = 7 - Me.Label57.Text = "Modification date:" + Me.Label57.Text = LocalizationService.ForSection("Designer.ProjProps")("ModificationDate.Label") Me.Label57.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label55 @@ -346,7 +346,7 @@ Partial Class ProjProperties Me.Label55.Padding = New System.Windows.Forms.Padding(4) Me.Label55.Size = New System.Drawing.Size(132, 21) Me.Label55.TabIndex = 7 - Me.Label55.Text = "Creation date:" + Me.Label55.Text = LocalizationService.ForSection("Designer.ProjProps")("CreationDate.Label") Me.Label55.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label53 @@ -359,7 +359,7 @@ Partial Class ProjProperties Me.Label53.Padding = New System.Windows.Forms.Padding(4) Me.Label53.Size = New System.Drawing.Size(132, 21) Me.Label53.TabIndex = 7 - Me.Label53.Text = "File count:" + Me.Label53.Text = LocalizationService.ForSection("Designer.ProjProps")("FileCount.Label") Me.Label53.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label51 @@ -372,7 +372,7 @@ Partial Class ProjProperties Me.Label51.Padding = New System.Windows.Forms.Padding(4) Me.Label51.Size = New System.Drawing.Size(132, 21) Me.Label51.TabIndex = 7 - Me.Label51.Text = "Directory count:" + Me.Label51.Text = LocalizationService.ForSection("Designer.ProjProps")("DirectoryCount.Label") Me.Label51.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label49 @@ -385,7 +385,7 @@ Partial Class ProjProperties Me.Label49.Padding = New System.Windows.Forms.Padding(4) Me.Label49.Size = New System.Drawing.Size(132, 21) Me.Label49.TabIndex = 7 - Me.Label49.Text = "System root directory:" + Me.Label49.Text = LocalizationService.ForSection("Designer.ProjProps")("System.Root.Dir.Label") Me.Label49.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label47 @@ -398,7 +398,7 @@ Partial Class ProjProperties Me.Label47.Padding = New System.Windows.Forms.Padding(4) Me.Label47.Size = New System.Drawing.Size(132, 21) Me.Label47.TabIndex = 7 - Me.Label47.Text = "Product suite:" + Me.Label47.Text = LocalizationService.ForSection("Designer.ProjProps")("ProductSuite.Label") Me.Label47.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label45 @@ -411,7 +411,7 @@ Partial Class ProjProperties Me.Label45.Padding = New System.Windows.Forms.Padding(4) Me.Label45.Size = New System.Drawing.Size(132, 21) Me.Label45.TabIndex = 7 - Me.Label45.Text = "Product type:" + Me.Label45.Text = LocalizationService.ForSection("Designer.ProjProps")("ProductType.Label") Me.Label45.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label43 @@ -424,7 +424,7 @@ Partial Class ProjProperties Me.Label43.Padding = New System.Windows.Forms.Padding(4) Me.Label43.Size = New System.Drawing.Size(132, 30) Me.Label43.TabIndex = 7 - Me.Label43.Text = "Edition:" + Me.Label43.Text = LocalizationService.ForSection("Designer.ProjProps")("Edition.Label") Me.Label43.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label41 @@ -437,7 +437,7 @@ Partial Class ProjProperties Me.Label41.Padding = New System.Windows.Forms.Padding(4) Me.Label41.Size = New System.Drawing.Size(132, 21) Me.Label41.TabIndex = 7 - Me.Label41.Text = "Service Pack level:" + Me.Label41.Text = LocalizationService.ForSection("Designer.ProjProps")("ServicePackLevel.Label") Me.Label41.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label39 @@ -450,7 +450,7 @@ Partial Class ProjProperties Me.Label39.Padding = New System.Windows.Forms.Padding(4) Me.Label39.Size = New System.Drawing.Size(132, 21) Me.Label39.TabIndex = 7 - Me.Label39.Text = "Service Pack build:" + Me.Label39.Text = LocalizationService.ForSection("Designer.ProjProps")("ServicePackBuild.Label") Me.Label39.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label37 @@ -463,7 +463,7 @@ Partial Class ProjProperties Me.Label37.Padding = New System.Windows.Forms.Padding(4) Me.Label37.Size = New System.Drawing.Size(132, 21) Me.Label37.TabIndex = 7 - Me.Label37.Text = "HAL:" + Me.Label37.Text = LocalizationService.ForSection("Designer.ProjProps")("HAL.Label") Me.Label37.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label35 @@ -476,7 +476,7 @@ Partial Class ProjProperties Me.Label35.Padding = New System.Windows.Forms.Padding(4) Me.Label35.Size = New System.Drawing.Size(186, 21) Me.Label35.TabIndex = 7 - Me.Label35.Text = "Architecture:" + Me.Label35.Text = LocalizationService.ForSection("Designer.ProjProps")("Architecture.Label") Me.Label35.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label33 @@ -489,7 +489,7 @@ Partial Class ProjProperties Me.Label33.Padding = New System.Windows.Forms.Padding(4) Me.Label33.Size = New System.Drawing.Size(186, 21) Me.Label33.TabIndex = 7 - Me.Label33.Text = "Supports WIMBoot?" + Me.Label33.Text = LocalizationService.ForSection("Designer.ProjProps")("Supports.WIM.Boot.Label") Me.Label33.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label22 @@ -502,7 +502,7 @@ Partial Class ProjProperties Me.Label22.Padding = New System.Windows.Forms.Padding(4) Me.Label22.Size = New System.Drawing.Size(186, 30) Me.Label22.TabIndex = 7 - Me.Label22.Text = "Image status:" + Me.Label22.Text = LocalizationService.ForSection("Designer.ProjProps")("ImageStatus.Label") Me.Label22.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label14 @@ -515,7 +515,7 @@ Partial Class ProjProperties Me.Label14.Padding = New System.Windows.Forms.Padding(4) Me.Label14.Size = New System.Drawing.Size(186, 21) Me.Label14.TabIndex = 7 - Me.Label14.Text = "Image index:" + Me.Label14.Text = LocalizationService.ForSection("Designer.ProjProps")("ImageIndex.Label") Me.Label14.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label31 @@ -528,7 +528,7 @@ Partial Class ProjProperties Me.Label31.Padding = New System.Windows.Forms.Padding(4) Me.Label31.Size = New System.Drawing.Size(186, 21) Me.Label31.TabIndex = 8 - Me.Label31.Text = "Size:" + Me.Label31.Text = LocalizationService.ForSection("Designer.ProjProps")("Size.Label") Me.Label31.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label29 @@ -541,7 +541,7 @@ Partial Class ProjProperties Me.Label29.Padding = New System.Windows.Forms.Padding(4) Me.Label29.Size = New System.Drawing.Size(186, 21) Me.Label29.TabIndex = 8 - Me.Label29.Text = "Description:" + Me.Label29.Text = LocalizationService.ForSection("Designer.ProjProps")("Description.Label") Me.Label29.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label27 @@ -554,7 +554,7 @@ Partial Class ProjProperties Me.Label27.Padding = New System.Windows.Forms.Padding(4) Me.Label27.Size = New System.Drawing.Size(186, 21) Me.Label27.TabIndex = 8 - Me.Label27.Text = "Name:" + Me.Label27.Text = LocalizationService.ForSection("Designer.ProjProps")("Name.Label") Me.Label27.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label25 @@ -567,7 +567,7 @@ Partial Class ProjProperties Me.Label25.Padding = New System.Windows.Forms.Padding(4) Me.Label25.Size = New System.Drawing.Size(186, 21) Me.Label25.TabIndex = 8 - Me.Label25.Text = "Version:" + Me.Label25.Text = LocalizationService.ForSection("Designer.ProjProps")("Version.Label") Me.Label25.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label15 @@ -580,7 +580,7 @@ Partial Class ProjProperties Me.Label15.Padding = New System.Windows.Forms.Padding(4) Me.Label15.Size = New System.Drawing.Size(186, 21) Me.Label15.TabIndex = 8 - Me.Label15.Text = "Image file:" + Me.Label15.Text = LocalizationService.ForSection("Designer.ProjProps")("ImageFile.Label") Me.Label15.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'imgFormat @@ -593,7 +593,7 @@ Partial Class ProjProperties Me.imgFormat.Padding = New System.Windows.Forms.Padding(4) Me.imgFormat.Size = New System.Drawing.Size(361, 21) Me.imgFormat.TabIndex = 10 - Me.imgFormat.Text = "imgFormat" + Me.imgFormat.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgFormat.Label") ' 'imgModification ' @@ -605,7 +605,7 @@ Partial Class ProjProperties Me.imgModification.Padding = New System.Windows.Forms.Padding(4) Me.imgModification.Size = New System.Drawing.Size(361, 21) Me.imgModification.TabIndex = 10 - Me.imgModification.Text = "imgModification" + Me.imgModification.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgModification.Label") ' 'imgCreation ' @@ -617,7 +617,7 @@ Partial Class ProjProperties Me.imgCreation.Padding = New System.Windows.Forms.Padding(4) Me.imgCreation.Size = New System.Drawing.Size(361, 21) Me.imgCreation.TabIndex = 10 - Me.imgCreation.Text = "imgCreation" + Me.imgCreation.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgCreation.Label") ' 'imgFiles ' @@ -629,7 +629,7 @@ Partial Class ProjProperties Me.imgFiles.Padding = New System.Windows.Forms.Padding(4) Me.imgFiles.Size = New System.Drawing.Size(361, 21) Me.imgFiles.TabIndex = 10 - Me.imgFiles.Text = "imgFiles" + Me.imgFiles.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgFiles.Label") ' 'imgDirs ' @@ -641,7 +641,7 @@ Partial Class ProjProperties Me.imgDirs.Padding = New System.Windows.Forms.Padding(4) Me.imgDirs.Size = New System.Drawing.Size(361, 21) Me.imgDirs.TabIndex = 10 - Me.imgDirs.Text = "imgDirs" + Me.imgDirs.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgDirs.Label") ' 'imgSysRoot ' @@ -653,7 +653,7 @@ Partial Class ProjProperties Me.imgSysRoot.Padding = New System.Windows.Forms.Padding(4) Me.imgSysRoot.Size = New System.Drawing.Size(361, 21) Me.imgSysRoot.TabIndex = 10 - Me.imgSysRoot.Text = "imgSysRoot" + Me.imgSysRoot.Text = LocalizationService.ForSection("Designer.ProjProps")("Img.Sys.Root.Label") ' 'imgPSuite ' @@ -665,7 +665,7 @@ Partial Class ProjProperties Me.imgPSuite.Padding = New System.Windows.Forms.Padding(4) Me.imgPSuite.Size = New System.Drawing.Size(361, 21) Me.imgPSuite.TabIndex = 10 - Me.imgPSuite.Text = "imgPSuite" + Me.imgPSuite.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgPsuite.Label") ' 'imgPType ' @@ -677,7 +677,7 @@ Partial Class ProjProperties Me.imgPType.Padding = New System.Windows.Forms.Padding(4) Me.imgPType.Size = New System.Drawing.Size(361, 21) Me.imgPType.TabIndex = 10 - Me.imgPType.Text = "imgPType" + Me.imgPType.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgPtype.Label") ' 'imgEdition ' @@ -689,7 +689,7 @@ Partial Class ProjProperties Me.imgEdition.Padding = New System.Windows.Forms.Padding(4) Me.imgEdition.Size = New System.Drawing.Size(361, 30) Me.imgEdition.TabIndex = 10 - Me.imgEdition.Text = "imgEdition" + Me.imgEdition.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgEdition.Label") Me.imgEdition.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'imgSPLvl @@ -702,7 +702,7 @@ Partial Class ProjProperties Me.imgSPLvl.Padding = New System.Windows.Forms.Padding(4) Me.imgSPLvl.Size = New System.Drawing.Size(361, 21) Me.imgSPLvl.TabIndex = 10 - Me.imgSPLvl.Text = "imgSPLvl" + Me.imgSPLvl.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgSplvl.Label") ' 'imgSPBuild ' @@ -714,7 +714,7 @@ Partial Class ProjProperties Me.imgSPBuild.Padding = New System.Windows.Forms.Padding(4) Me.imgSPBuild.Size = New System.Drawing.Size(361, 21) Me.imgSPBuild.TabIndex = 10 - Me.imgSPBuild.Text = "imgSPBuild" + Me.imgSPBuild.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgSpbuild.Label") ' 'imgHal ' @@ -726,7 +726,7 @@ Partial Class ProjProperties Me.imgHal.Padding = New System.Windows.Forms.Padding(4) Me.imgHal.Size = New System.Drawing.Size(361, 21) Me.imgHal.TabIndex = 10 - Me.imgHal.Text = "imgHal" + Me.imgHal.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgHal.Label") ' 'imgMountDir ' @@ -738,7 +738,7 @@ Partial Class ProjProperties Me.imgMountDir.Padding = New System.Windows.Forms.Padding(4) Me.imgMountDir.Size = New System.Drawing.Size(285, 21) Me.imgMountDir.TabIndex = 9 - Me.imgMountDir.Text = "imgMountDir" + Me.imgMountDir.Text = LocalizationService.ForSection("Designer.ProjProps")("Img.Mount.Dir.Label") ' 'imgArch ' @@ -750,7 +750,7 @@ Partial Class ProjProperties Me.imgArch.Padding = New System.Windows.Forms.Padding(4) Me.imgArch.Size = New System.Drawing.Size(285, 21) Me.imgArch.TabIndex = 10 - Me.imgArch.Text = "imgArch" + Me.imgArch.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgArch.Label") ' 'imgWimBootStatus ' @@ -762,7 +762,7 @@ Partial Class ProjProperties Me.imgWimBootStatus.Padding = New System.Windows.Forms.Padding(4) Me.imgWimBootStatus.Size = New System.Drawing.Size(285, 21) Me.imgWimBootStatus.TabIndex = 10 - Me.imgWimBootStatus.Text = "imgWimBootStatus" + Me.imgWimBootStatus.Text = LocalizationService.ForSection("Designer.ProjProps")("Img.WIM.Boot.Label") ' 'imgMountedStatus ' @@ -773,7 +773,7 @@ Partial Class ProjProperties Me.imgMountedStatus.Padding = New System.Windows.Forms.Padding(4) Me.imgMountedStatus.Size = New System.Drawing.Size(139, 30) Me.imgMountedStatus.TabIndex = 10 - Me.imgMountedStatus.Text = "imgMountedStatus" + Me.imgMountedStatus.Text = LocalizationService.ForSection("Designer.ProjProps")("Img.Mounted.Status.Label") Me.imgMountedStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'imgSize @@ -786,7 +786,7 @@ Partial Class ProjProperties Me.imgSize.Padding = New System.Windows.Forms.Padding(4) Me.imgSize.Size = New System.Drawing.Size(285, 21) Me.imgSize.TabIndex = 11 - Me.imgSize.Text = "imgSize" + Me.imgSize.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgSize.Label") ' 'imgMountedDesc ' @@ -798,7 +798,7 @@ Partial Class ProjProperties Me.imgMountedDesc.Padding = New System.Windows.Forms.Padding(4) Me.imgMountedDesc.Size = New System.Drawing.Size(285, 21) Me.imgMountedDesc.TabIndex = 11 - Me.imgMountedDesc.Text = "imgMountedDesc" + Me.imgMountedDesc.Text = LocalizationService.ForSection("Designer.ProjProps")("Img.Mounted.Desc.Label") Me.imgMountedDesc.UseMnemonic = False ' 'imgMountedName @@ -811,7 +811,7 @@ Partial Class ProjProperties Me.imgMountedName.Padding = New System.Windows.Forms.Padding(4) Me.imgMountedName.Size = New System.Drawing.Size(285, 21) Me.imgMountedName.TabIndex = 11 - Me.imgMountedName.Text = "imgMountedName" + Me.imgMountedName.Text = LocalizationService.ForSection("Designer.ProjProps")("Img.Mounted.Name.Label") Me.imgMountedName.UseMnemonic = False ' 'imgVersion @@ -824,7 +824,7 @@ Partial Class ProjProperties Me.imgVersion.Padding = New System.Windows.Forms.Padding(4) Me.imgVersion.Size = New System.Drawing.Size(285, 21) Me.imgVersion.TabIndex = 11 - Me.imgVersion.Text = "imgVersion" + Me.imgVersion.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgVersion.Label") ' 'imgIndex ' @@ -836,7 +836,7 @@ Partial Class ProjProperties Me.imgIndex.Padding = New System.Windows.Forms.Padding(4) Me.imgIndex.Size = New System.Drawing.Size(285, 21) Me.imgIndex.TabIndex = 10 - Me.imgIndex.Text = "imgIndex" + Me.imgIndex.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgIndex.Label") ' 'imgName ' @@ -848,7 +848,7 @@ Partial Class ProjProperties Me.imgName.Padding = New System.Windows.Forms.Padding(4) Me.imgName.Size = New System.Drawing.Size(285, 21) Me.imgName.TabIndex = 11 - Me.imgName.Text = "imgName" + Me.imgName.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgName.Label") ' 'Label4 ' @@ -858,7 +858,7 @@ Partial Class ProjProperties Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(261, 13) Me.Label4.TabIndex = 5 - Me.Label4.Text = "Getting project and image information. Please wait..." + Me.Label4.Text = LocalizationService.ForSection("Designer.ProjProps")("Getting.Project.Image.Label") ' 'Panel1 ' @@ -879,7 +879,7 @@ Partial Class ProjProperties Me.FfuInfoBtn.Name = "FfuInfoBtn" Me.FfuInfoBtn.Size = New System.Drawing.Size(174, 23) Me.FfuInfoBtn.TabIndex = 6 - Me.FfuInfoBtn.Text = "View FFU information" + Me.FfuInfoBtn.Text = LocalizationService.ForSection("Designer.ProjProps")("View.Ffuinformation.Label") Me.FfuInfoBtn.UseVisualStyleBackColor = True Me.FfuInfoBtn.Visible = False ' @@ -1018,7 +1018,7 @@ Partial Class ProjProperties Me.RWRemountBtn.Name = "RWRemountBtn" Me.RWRemountBtn.Size = New System.Drawing.Size(200, 23) Me.RWRemountBtn.TabIndex = 18 - Me.RWRemountBtn.Text = "Remount with write permissions" + Me.RWRemountBtn.Text = LocalizationService.ForSection("Designer.ProjProps")("Remount.Write.Label") Me.RWRemountBtn.UseVisualStyleBackColor = True Me.RWRemountBtn.Visible = False ' @@ -1032,7 +1032,7 @@ Partial Class ProjProperties Me.imgRW.Padding = New System.Windows.Forms.Padding(4) Me.imgRW.Size = New System.Drawing.Size(139, 29) Me.imgRW.TabIndex = 10 - Me.imgRW.Text = "imgRW" + Me.imgRW.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgRW.Label") ' 'Label62 ' @@ -1044,7 +1044,7 @@ Partial Class ProjProperties Me.Label62.Padding = New System.Windows.Forms.Padding(4) Me.Label62.Size = New System.Drawing.Size(132, 29) Me.Label62.TabIndex = 7 - Me.Label62.Text = "Image R/W permissions:" + Me.Label62.Text = LocalizationService.ForSection("Designer.ProjProps")("Image.Rwpermissions.Label") Me.Label62.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Panel2 @@ -1067,7 +1067,7 @@ Partial Class ProjProperties Me.Label2.Padding = New System.Windows.Forms.Padding(4) Me.Label2.Size = New System.Drawing.Size(132, 21) Me.Label2.TabIndex = 7 - Me.Label2.Text = "Installation type:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ProjProps")("InstallationType.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'imgInstType @@ -1080,7 +1080,7 @@ Partial Class ProjProperties Me.imgInstType.Padding = New System.Windows.Forms.Padding(4) Me.imgInstType.Size = New System.Drawing.Size(361, 21) Me.imgInstType.TabIndex = 10 - Me.imgInstType.Text = "imgInstType" + Me.imgInstType.Text = LocalizationService.ForSection("Designer.ProjProps")("Img.Inst.Type.Label") ' 'TableLayoutPanel2 ' @@ -1111,7 +1111,7 @@ Partial Class ProjProperties Me.Label20.Name = "Label20" Me.Label20.Size = New System.Drawing.Size(485, 13) Me.Label20.TabIndex = 15 - Me.Label20.Text = "Image present on project?" + Me.Label20.Text = LocalizationService.ForSection("Designer.ProjProps")("Image.Present.Project.Label") Me.Label20.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label19 @@ -1124,7 +1124,7 @@ Partial Class ProjProperties Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(485, 13) Me.Label19.TabIndex = 14 - Me.Label19.Text = "imgStatus" + Me.Label19.Text = LocalizationService.ForSection("Designer.ProjProps")("ImgStatus.Label") ' 'Panel3 ' @@ -1157,9 +1157,7 @@ Partial Class ProjProperties Me.LinkLabel2.Size = New System.Drawing.Size(919, 32) Me.LinkLabel2.TabIndex = 16 Me.LinkLabel2.TabStop = True - Me.LinkLabel2.Text = "Many properties cannot be seen because an image has not yet been mounted. Once yo" & _ - "u mount it, detailed information will be shown here. Click here to mount an imag" & _ - "e" + Me.LinkLabel2.Text = LocalizationService.ForSection("Designer.ProjProps")("Many.Cannot.Seen.Message") Me.LinkLabel2.UseCompatibleTextRendering = True ' 'ImageTaskHeader1 @@ -1194,7 +1192,7 @@ Partial Class ProjProperties Me.Name = "ProjProperties" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Properties" + Me.Text = LocalizationService.ForSection("Designer.ProjProps")("Props.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Panel1.ResumeLayout(False) Me.Panel1.PerformLayout() diff --git a/Panels/Prj_Ops/ProjProperties.vb b/Panels/Prj_Ops/ProjProperties.vb index 7d38e2532..2cc8f97c4 100644 --- a/Panels/Prj_Ops/ProjProperties.vb +++ b/Panels/Prj_Ops/ProjProperties.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Text.Encoding @@ -41,65 +41,19 @@ Public Class ProjProperties imgName.Text = MainForm.CurrentImage.ImageFile imgIndex.Text = MainForm.CurrentImage.ImageIndex imgMountDir.Text = MainForm.CurrentImage.ImageMountDirectory - imgMountedStatus.Text = MainForm.CurrentImage.MountStatusToString(MainForm.Language) + imgMountedStatus.Text = MainForm.CurrentImage.MountStatusToString() RecoverButton.Visible = MainForm.CurrentImage.ImageMountStatus = DismMountStatus.Invalid RemountImgBtn.Visible = MainForm.CurrentImage.ImageMountStatus = DismMountStatus.NeedsRemount imgVersion.Text = MainForm.CurrentImage.ImageVersion.ToString() DetectFeatureUpdate(MainForm.CurrentImage.ImageVersion) imgMountedName.Text = MainForm.CurrentImage.ImageName imgMountedDesc.Text = MainForm.CurrentImage.ImageDescription - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize) & ")" - Case "ESN" - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize) & ")" - Case "FRA" - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " octets (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize, True) & ")" - Case "PTB", "PTG" - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize) & ")" - Case "ITA" - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize) & ")" - End Select - Case 1 - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize) & ")" - Case 2 - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize) & ")" - Case 3 - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " octets (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize, True) & ")" - Case 4 - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize) & ")" - Case 5 - imgSize.Text = MainForm.CurrentImage.ImageSize.ToString("N0") & " bytes (~" & Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize) & ")" - End Select + Dim isFrenchSizeText As Boolean = LocalizationService.CurrentCultureCode.Equals("fr-FR", StringComparison.OrdinalIgnoreCase) + Dim readableImageSize As String = If(isFrenchSizeText, Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize, True), Converters.BytesToReadableSize(MainForm.CurrentImage.ImageSize)) + imgSize.Text = LocalizationService.ForSection("ProjProps").Format("Bytes.Item", MainForm.CurrentImage.ImageSize.ToString("N0"), readableImageSize) imgArch.Text = Casters.CastDismArchitecture(MainForm.CurrentImage.ImageArchitecture, True) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "Undefined by the image") - Case "ESN" - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "No definida por la imagen") - Case "FRA" - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "Non défini par l'image") - Case "PTB", "PTG" - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "Não definido pela imagem") - Case "ITA" - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "Non definito dall'immagine") - End Select - Case 1 - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "Undefined by the image") - Case 2 - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "No definida por la imagen") - Case 3 - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "Non défini par l'image") - Case 4 - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "Não definido pela imagem") - Case 5 - imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, "Non definito dall'immagine") - End Select + imgHal.Text = If(Not MainForm.CurrentImage.ImageHal = "", MainForm.CurrentImage.ImageHal, LocalizationService.ForSection("ProjectProps.Image")("UndefinedImage.Label")) imgSPBuild.Text = MainForm.CurrentImage.ImageVersion.Revision imgSPLvl.Text = MainForm.CurrentImage.ImageSpLevel imgEdition.Text = MainForm.CurrentImage.ImageEditionId @@ -109,58 +63,10 @@ Public Class ProjProperties imgSysRoot.Text = MainForm.CurrentImage.ImageSystemRoot DynaLog.LogMessage("Language count: " & MainForm.CurrentImage.ImageLanguages.Count) For Each language In MainForm.CurrentImage.ImageLanguages - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", default", "") & ")") - Case "ESN" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", predeterminado", "") & ")") - Case "FRA" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", défaut", "") & ")") - Case "PTB", "PTG" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", predefinido", "") & ")") - Case "ITA" - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", predefinito", "") & ")") - End Select - Case 1 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", default", "") & ")") - Case 2 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", predeterminado", "") & ")") - Case 3 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", défaut", "") & ")") - Case 4 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", predefinido", "") & ")") - Case 5 - LanguageList.Items.Add(language.Name & " (" & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, ", predefinito", "") & ")") - End Select + LanguageList.Items.Add(language.Name & LocalizationService.ForSection("ProjectProps.Image")("OpenParenthesis.Label") & language.DisplayName & If(MainForm.CurrentImage.ImageDefaultLanguage.Name = language.Name, LocalizationService.ForSection("ProjectProps.Image")("Default.Label"), "") & LocalizationService.ForSection("ProjectProps.Image")("CloseParenthesis.Label")) Next - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - imgFormat.Text = Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() & " file" - Case "ESN" - imgFormat.Text = "Archivo " & Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() - Case "FRA" - imgFormat.Text = "Fichier " & Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() - Case "PTB", "PTG" - imgFormat.Text = "Ficheiro " & Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() - Case "ITA" - imgFormat.Text = "File " & Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() - End Select - Case 1 - imgFormat.Text = Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() & " file" - Case 2 - imgFormat.Text = "Archivo " & Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() - Case 3 - imgFormat.Text = "Fichier " & Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() - Case 4 - imgFormat.Text = "Ficheiro " & Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() - Case 5 - imgFormat.Text = "File " & Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper() - End Select - imgRW.Text = MainForm.CurrentImage.MountModeToString(MainForm.Language) + imgFormat.Text = LocalizationService.ForSection("ProjectProps.Image").Format("File.Label", Path.GetExtension(MainForm.CurrentImage.ImageFile).Replace(".", "").Trim().ToUpper()) + imgRW.Text = MainForm.CurrentImage.MountModeToString() RWRemountBtn.Visible = MainForm.CurrentImage.ImageMountMode = DismMountMode.ReadOnly imgDirs.Text = MainForm.CurrentImage.ImageDirectoryCount imgFiles.Text = MainForm.CurrentImage.ImageFileCount @@ -212,396 +118,42 @@ Public Class ProjProperties End Sub Private Sub ProjProperties_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label4.Text = "Getting project and image information. Please wait..." - Label5.Text = "Name:" - Label6.Text = "Location:" - Label7.Text = "Creation date:" - Label8.Text = "Project GUID:" - Label13.Text = "Mount directory:" - Label14.Text = "Image index:" - Label15.Text = "Image file:" - Label20.Text = "Image present on project?" - Label22.Text = "Image status:" - Label25.Text = "Version:" - Label27.Text = "Name:" - Label29.Text = "Description:" - Label31.Text = "Size:" - Label33.Text = "Supports WIMBoot?" - Label35.Text = "Architecture:" - Label39.Text = "Service Pack build:" - Label41.Text = "Service Pack level:" - Label43.Text = "Edition:" - Label45.Text = "Product type:" - Label47.Text = "Product suite:" - Label49.Text = "System root directory:" - Label51.Text = "Directory count:" - Label53.Text = "File count:" - Label55.Text = "Creation date:" - Label57.Text = "Modification date:" - Label58.Text = "Installed languages:" - Label60.Text = "File format:" - Label62.Text = "Image R/W permissions:" - RecoverButton.Text = "Recover" - RemountImgBtn.Text = "Reload" - RWRemountBtn.Text = "Remount with write permissions" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - LinkLabel2.Text = "Many properties cannot be seen because an image has not yet been mounted. Once you mount it, detailed information will be shown here. Click here to mount an image" - Case "ESN" - Label4.Text = "Obteniendo información del proyecto y la imagen. Espere..." - Label5.Text = "Nombre:" - Label6.Text = "Ubicación:" - Label7.Text = "Fecha de creación:" - Label8.Text = "GUID del proyecto:" - Label13.Text = "Directorio de montaje:" - Label14.Text = "Índice de imagen:" - Label15.Text = "Archivo de imagen:" - Label20.Text = "¿La imagen está presente en el proyecto?" - Label22.Text = "Estado de imagen:" - Label25.Text = "Versión:" - Label27.Text = "Nombre:" - Label29.Text = "Descripción:" - Label31.Text = "Tamaño:" - Label33.Text = "¿Soporta WIMBoot?" - Label35.Text = "Arquitectura:" - Label39.Text = "Compilación de Service Pack:" - Label41.Text = "Nivel de Service Pack:" - Label43.Text = "Edición:" - Label45.Text = "Tipo de producto:" - Label47.Text = "Suite de producto:" - Label49.Text = "Directorio de raíz del sistema:" - Label51.Text = "Número de directorios:" - Label53.Text = "Número de archivos:" - Label55.Text = "Fecha de creación:" - Label57.Text = "Fecha de modificación:" - Label58.Text = "Idiomas instalados:" - Label60.Text = "Formato de archivo:" - Label62.Text = "Permisos de L/E de imagen:" - RecoverButton.Text = "Recuperar" - RemountImgBtn.Text = "Recargar" - RWRemountBtn.Text = "Recargar con permisos de escritura" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - LinkLabel2.Text = "Las propiedades no pueden ser obtenidas porque aún no se ha montado una imagen. Cuando lo haga, información detallada aparecerá aquí. Haga clic aquí para montar una imagen" - Case "FRA" - Label4.Text = "Obtention des informations sur les projets et les images en cours. Veuillez patienter..." - Label5.Text = "Nom :" - Label6.Text = "Lieu :" - Label7.Text = "Date de création :" - Label8.Text = "GUID du projet :" - Label13.Text = "Répertoire de montage :" - Label14.Text = "Index de l'image :" - Label15.Text = "Fichier de l'image :" - Label20.Text = "Image présente sur le projet ?" - Label22.Text = "État de l'image :" - Label25.Text = "Version :" - Label27.Text = "Nom :" - Label29.Text = "Description :" - Label31.Text = "Taille :" - Label33.Text = "Supporte WIMBoot ?" - Label35.Text = "Architecture :" - Label39.Text = "Compilation du Service Pack :" - Label41.Text = "Niveau du Service Pack :" - Label43.Text = "Édition :" - Label45.Text = "Type de produit :" - Label47.Text = "Suite du produit :" - Label49.Text = "Répertoire racine du système :" - Label51.Text = "Nombre de répertoires :" - Label53.Text = "Nombre de fichiers :" - Label55.Text = "Date de création :" - Label57.Text = "Date de modification :" - Label58.Text = "Langues installées :" - Label60.Text = "Format du fichier :" - Label62.Text = "Droits L/E de l'image :" - RecoverButton.Text = "Récupérer" - RemountImgBtn.Text = "Recharger" - RWRemountBtn.Text = "Remonter avec les droits d'écriture" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - LinkLabel2.Text = "De nombreuses propriétés ne sont pas visibles car l'image n'a pas encore été montée. Une fois l'image montée, des informations détaillées s'afficheront ici. Cliquez ici pour monter une image" - Case "PTB", "PTG" - Label4.Text = "Obter informações sobre o projeto e a imagem. Aguarde..." - Label5.Text = "Nome:" - Label6.Text = "Localização:" - Label7.Text = "Data de criação:" - Label8.Text = "GUID do projeto:" - Label13.Text = "Diretório de montagem:" - Label14.Text = "Índice da imagem:" - Label15.Text = "Ficheiro de imagem:" - Label20.Text = "Imagem presente no projeto?" - Label22.Text = "Estado da imagem:" - Label25.Text = "Versão:" - Label27.Text = "Nome:" - Label29.Text = "Descrição:" - Label31.Text = "Tamanho:" - Label33.Text = "Suporta WIMBoot?" - Label35.Text = "Arquitetura:" - Label39.Text = "Service Pack build:" - Label41.Text = "Nível do Service Pack:" - Label43.Text = "Edição:" - Label45.Text = "Tipo de produto:" - Label47.Text = "Conjunto de produtos:" - Label49.Text = "Diretório raiz do sistema:" - Label51.Text = "Contagem de directórios:" - Label53.Text = "Contagem de ficheiros:" - Label55.Text = "Data de criação:" - Label57.Text = "Data de modificação:" - Label58.Text = "Idiomas instalados:" - Label60.Text = "Formato do ficheiro:" - Label62.Text = "Permissões de imagem R/W:" - RecoverButton.Text = "Recuperar" - RemountImgBtn.Text = "Recarregar" - RWRemountBtn.Text = "Remontar com permissões de escrita" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - LinkLabel2.Text = "Muitas propriedades não podem ser vistas porque a imagem ainda não foi montada. Depois de a montar, serão mostradas aqui informações detalhadas. Clique aqui para montar uma imagem" - Case "ITA" - Label4.Text = "Ottenere informazioni sul progetto e sull'immagine. Attendere..." - Label5.Text = "Nome:" - Label6.Text = " Ubicazione:" - Label7.Text = "Data di creazione:" - Label8.Text = "GUID del progetto:" - Label13.Text = "Directory di montaggio:" - Label14.Text = "Indice immagine:" - Label15.Text = "File immagine:" - Label20.Text = "Immagine presente nel progetto?" - Label22.Text = "Stato immagine:" - Label25.Text = "Versione:" - Label27.Text = "Nome:" - Label29.Text = "Descrizione:" - Label31.Text = "Dimensione:" - Label33.Text = "Supporta WIMBoot?" - Label35.Text = "Architettura:" - Label39.Text = "Service Pack build:" - Label41.Text = "Livello del Service Pack:" - Label43.Text = "Edizione:" - Label45.Text = "Tipo di prodotto:" - Label47.Text = "Suite di prodotti:" - Label49.Text = " Cartella principale del sistema:" - Label51.Text = "Numero di cartelle:" - Label53.Text = "Numero di file:" - Label55.Text = "Data di creazione:" - Label57.Text = "Data di modifica:" - Label58.Text = "Lingue installate:" - Label60.Text = "Formato file:" - Label62.Text = "Autorizzazioni R/W immagine:" - RecoverButton.Text = "Recupera" - RemountImgBtn.Text = "Ricaricare" - RWRemountBtn.Text = "Rimonta con i permessi di scrittura" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - LinkLabel2.Text = "Molte proprietà non possono essere visualizzate perché l'immagine non è ancora stata montata. Una volta montata, le informazioni dettagliate saranno mostrate qui. Fare clic qui per montare un'immagine" - End Select - Case 1 - Label4.Text = "Getting project and image information. Please wait..." - Label5.Text = "Name:" - Label6.Text = "Location:" - Label7.Text = "Creation time and date:" - Label8.Text = "Project GUID:" - Label13.Text = "Mount directory:" - Label14.Text = "Image index:" - Label15.Text = "Image file:" - Label20.Text = "Image present on project?" - Label22.Text = "Image status:" - Label25.Text = "Version:" - Label27.Text = "Name:" - Label29.Text = "Description:" - Label31.Text = "Size:" - Label33.Text = "Supports WIMBoot?" - Label35.Text = "Architecture:" - Label39.Text = "Service Pack build:" - Label41.Text = "Service Pack level:" - Label43.Text = "Edition:" - Label45.Text = "Product type:" - Label47.Text = "Product suite:" - Label49.Text = "System root directory:" - Label51.Text = "Directory count:" - Label53.Text = "File count:" - Label55.Text = "Creation date:" - Label57.Text = "Modification date:" - Label58.Text = "Installed languages:" - Label60.Text = "File format:" - Label62.Text = "Image R/W permissions:" - RecoverButton.Text = "Recover" - RemountImgBtn.Text = "Reload" - RWRemountBtn.Text = "Remount with write permissions" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - LinkLabel2.Text = "Many properties cannot be seen because an image has not yet been mounted. Once you mount it, detailed information will be shown here. Click here to mount an image" - Case 2 - Label4.Text = "Obteniendo información del proyecto y la imagen. Espere..." - Label5.Text = "Nombre:" - Label6.Text = "Ubicación:" - Label7.Text = "Fecha de creación:" - Label8.Text = "GUID del proyecto:" - Label13.Text = "Directorio de montaje:" - Label14.Text = "Índice de imagen:" - Label15.Text = "Archivo de imagen:" - Label20.Text = "¿La imagen está presente en el proyecto?" - Label22.Text = "Estado de imagen:" - Label25.Text = "Versión:" - Label27.Text = "Nombre:" - Label29.Text = "Descripción:" - Label31.Text = "Tamaño:" - Label33.Text = "¿Soporta WIMBoot?" - Label35.Text = "Arquitectura:" - Label39.Text = "Compilación de Service Pack:" - Label41.Text = "Nivel de Service Pack:" - Label43.Text = "Edición:" - Label45.Text = "Tipo de producto:" - Label47.Text = "Suite de producto:" - Label49.Text = "Directorio de raíz del sistema:" - Label51.Text = "Número de directorios:" - Label53.Text = "Número de archivos:" - Label55.Text = "Fecha de creación:" - Label57.Text = "Fecha de modificación:" - Label58.Text = "Idiomas instalados:" - Label60.Text = "Formato de archivo:" - Label62.Text = "Permisos de L/E de imagen:" - RecoverButton.Text = "Recuperar" - RemountImgBtn.Text = "Recargar" - RWRemountBtn.Text = "Recargar con permisos de escritura" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - LinkLabel2.Text = "Las propiedades no pueden ser obtenidas porque aún no se ha montado una imagen. Cuando lo haga, información detallada aparecerá aquí. Haga clic aquí para montar una imagen" - Case 3 - Label4.Text = "Obtention des informations sur les projets et les images en cours. Veuillez patienter..." - Label5.Text = "Nom :" - Label6.Text = "Lieu :" - Label7.Text = "Date de création :" - Label8.Text = "GUID du projet :" - Label13.Text = "Répertoire de montage :" - Label14.Text = "Index de l'image :" - Label15.Text = "Fichier de l'image :" - Label20.Text = "Image présente sur le projet ?" - Label22.Text = "État de l'image :" - Label25.Text = "Version :" - Label27.Text = "Nom :" - Label29.Text = "Description :" - Label31.Text = "Taille :" - Label33.Text = "Supporte WIMBoot ?" - Label35.Text = "Architecture :" - Label39.Text = "Compilation du Service Pack :" - Label41.Text = "Niveau du Service Pack :" - Label43.Text = "Édition :" - Label45.Text = "Type de produit :" - Label47.Text = "Suite du produit :" - Label49.Text = "Répertoire racine du système :" - Label51.Text = "Nombre de répertoires :" - Label53.Text = "Nombre de fichiers :" - Label55.Text = "Date de création :" - Label57.Text = "Date de modification :" - Label58.Text = "Langues installées :" - Label60.Text = "Format du fichier :" - Label62.Text = "Droits L/E de l'image :" - RecoverButton.Text = "Récupérer" - RemountImgBtn.Text = "Recharger" - RWRemountBtn.Text = "Remonter avec les droits d'écriture" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - LinkLabel2.Text = "De nombreuses propriétés ne sont pas visibles car l'image n'a pas encore été montée. Une fois l'image montée, des informations détaillées s'afficheront ici. Cliquez ici pour monter une image" - Case 4 - Label4.Text = "Obter informações sobre o projeto e a imagem. Aguarde..." - Label5.Text = "Nome:" - Label6.Text = "Localização:" - Label7.Text = "Data de criação:" - Label8.Text = "GUID do projeto:" - Label13.Text = "Diretório de montagem:" - Label14.Text = "Índice da imagem:" - Label15.Text = "Ficheiro de imagem:" - Label20.Text = "Imagem presente no projeto?" - Label22.Text = "Estado da imagem:" - Label25.Text = "Versão:" - Label27.Text = "Nome:" - Label29.Text = "Descrição:" - Label31.Text = "Tamanho:" - Label33.Text = "Suporta WIMBoot?" - Label35.Text = "Arquitetura:" - Label39.Text = "Service Pack build:" - Label41.Text = "Nível do Service Pack:" - Label43.Text = "Edição:" - Label45.Text = "Tipo de produto:" - Label47.Text = "Conjunto de produtos:" - Label49.Text = "Diretório raiz do sistema:" - Label51.Text = "Contagem de directórios:" - Label53.Text = "Contagem de ficheiros:" - Label55.Text = "Data de criação:" - Label57.Text = "Data de modificação:" - Label58.Text = "Idiomas instalados:" - Label60.Text = "Formato do ficheiro:" - Label62.Text = "Permissões de imagem R/W:" - RecoverButton.Text = "Recuperar" - RemountImgBtn.Text = "Recarregar" - RWRemountBtn.Text = "Remontar com permissões de escrita" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - LinkLabel2.Text = "Muitas propriedades não podem ser vistas porque a imagem ainda não foi montada. Depois de a montar, serão mostradas aqui informações detalhadas. Clique aqui para montar uma imagem" - Case 5 - Label4.Text = "Ottenere informazioni sul progetto e sull'immagine. Attendere..." - Label5.Text = "Nome:" - Label6.Text = " Ubicazione:" - Label7.Text = "Data di creazione:" - Label8.Text = "GUID del progetto:" - Label13.Text = "Directory di montaggio:" - Label14.Text = "Indice immagine:" - Label15.Text = "File immagine:" - Label20.Text = "Immagine presente nel progetto?" - Label22.Text = "Stato immagine:" - Label25.Text = "Versione:" - Label27.Text = "Nome:" - Label29.Text = "Descrizione:" - Label31.Text = "Dimensione:" - Label33.Text = "Supporta WIMBoot?" - Label35.Text = "Architettura:" - Label39.Text = "Service Pack build:" - Label41.Text = "Livello del Service Pack:" - Label43.Text = "Edizione:" - Label45.Text = "Tipo di prodotto:" - Label47.Text = "Suite di prodotti:" - Label49.Text = " Cartella principale del sistema:" - Label51.Text = "Numero di cartelle:" - Label53.Text = "Numero di file:" - Label55.Text = "Data di creazione:" - Label57.Text = "Data di modifica:" - Label58.Text = "Lingue installate:" - Label60.Text = "Formato file:" - Label62.Text = "Autorizzazioni R/W immagine:" - RecoverButton.Text = "Recupera" - RemountImgBtn.Text = "Ricaricare" - RWRemountBtn.Text = "Rimonta con i permessi di scrittura" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - LinkLabel2.Text = "Molte proprietà non possono essere visualizzate perché l'immagine non è ancora stata montata. Una volta montata, le informazioni dettagliate saranno mostrate qui. Fare clic qui per montare un'immagine" - End Select - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - ImageTaskHeader1.ItemText = "Properties" - Case "ESN" - ImageTaskHeader1.ItemText = "Propiedades" - Case "FRA" - ImageTaskHeader1.ItemText = "Propriétés" - Case "PTB", "PTG" - ImageTaskHeader1.ItemText = "Propriedades" - Case "ITA" - ImageTaskHeader1.ItemText = "Proprietà" - End Select - Case 1 - ImageTaskHeader1.ItemText = "Properties" - Case 2 - ImageTaskHeader1.ItemText = "Propiedades" - Case 3 - ImageTaskHeader1.ItemText = "Propriétés" - Case 4 - ImageTaskHeader1.ItemText = "Propriedades" - Case 5 - ImageTaskHeader1.ItemText = "Proprietà" - End Select + Label4.Text = LocalizationService.ForSection("ProjProps")("Getting.Project.Image.Label") + Label5.Text = LocalizationService.ForSection("ProjProps")("Name.Label") + Label6.Text = LocalizationService.ForSection("ProjProps")("Location.Label") + Label7.Text = LocalizationService.ForSection("ProjProps")("Creation.Time.Date.Label") + Label8.Text = LocalizationService.ForSection("ProjProps")("ProjectGUID.Label") + Label13.Text = LocalizationService.ForSection("ProjProps")("MountDirectory.Label") + Label14.Text = LocalizationService.ForSection("ProjProps")("ImageIndex.Label") + Label15.Text = LocalizationService.ForSection("ProjProps")("ImageFile.Label") + Label20.Text = LocalizationService.ForSection("ProjProps")("Image.Present.Project.Label") + Label22.Text = LocalizationService.ForSection("ProjProps")("ImageStatus.Label") + Label25.Text = LocalizationService.ForSection("ProjProps")("Version.Label") + Label27.Text = LocalizationService.ForSection("ProjProps")("Name.Label") + Label29.Text = LocalizationService.ForSection("ProjProps")("Description.Label") + Label31.Text = LocalizationService.ForSection("ProjProps")("Size.Label") + Label33.Text = LocalizationService.ForSection("ProjProps")("Supports.WIM.Boot.Label") + Label35.Text = LocalizationService.ForSection("ProjProps")("Architecture.Label") + Label39.Text = LocalizationService.ForSection("ProjProps")("ServicePackBuild.Label") + Label41.Text = LocalizationService.ForSection("ProjProps")("ServicePackLevel.Label") + Label43.Text = LocalizationService.ForSection("ProjProps")("Edition.Label") + Label45.Text = LocalizationService.ForSection("ProjProps")("ProductType.Label") + Label47.Text = LocalizationService.ForSection("ProjProps")("ProductSuite.Label") + Label49.Text = LocalizationService.ForSection("ProjProps")("System.Root.Dir.Label") + Label51.Text = LocalizationService.ForSection("ProjProps")("DirectoryCount.Label") + Label53.Text = LocalizationService.ForSection("ProjProps")("FileCount.Label") + Label55.Text = LocalizationService.ForSection("ProjProps")("CreationDate.Label") + Label57.Text = LocalizationService.ForSection("ProjProps")("ModificationDate.Label") + Label58.Text = LocalizationService.ForSection("ProjProps")("Installed.Languages.Label") + Label60.Text = LocalizationService.ForSection("ProjProps")("FileFormat.Label") + Label62.Text = LocalizationService.ForSection("ProjProps")("Image.Rwpermissions.Label") + RecoverButton.Text = LocalizationService.ForSection("ProjProps")("Recover.Label") + RemountImgBtn.Text = LocalizationService.ForSection("ProjProps")("Reload.Label") + RWRemountBtn.Text = LocalizationService.ForSection("ProjProps")("Remount.Write.Label") + OK_Button.Text = LocalizationService.ForSection("ProjProps")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ProjProps")("Cancel.Button") + LinkLabel2.Text = LocalizationService.ForSection("ProjProps")("Many.Cannot.Seen.Message") + ImageTaskHeader1.ItemText = LocalizationService.ForSection("ProjProps")("Props.Label") ' Set program colors ImageTaskHeader1.SetColors() BackColor = CurrentTheme.SectionBackgroundColor @@ -648,31 +200,7 @@ Public Class ProjProperties End If If MainForm.IsImageMounted Then DynaLog.LogMessage("An image is mounted.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label19.Text = "Yes" - Case "ESN" - Label19.Text = "Sí" - Case "FRA" - Label19.Text = "Oui" - Case "PTB", "PTG" - Label19.Text = "Sim" - Case "ITA" - Label19.Text = "Sì" - End Select - Case 1 - Label19.Text = "Yes" - Case 2 - Label19.Text = "Sí" - Case 3 - Label19.Text = "Oui" - Case 4 - Label19.Text = "Sim" - Case 5 - Label19.Text = "Sì" - End Select + Label19.Text = LocalizationService.ForSection("ProjProps")("Yes.Button") DetectImageProperties() If imgMountedName.Text = "" Then DynaLog.LogMessage("Getting name and edition...") @@ -725,276 +253,30 @@ Public Class ProjProperties Panel3.Visible = False Else DynaLog.LogMessage("An image is not mounted.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label19.Text = "No" - Case "ESN" - Label19.Text = "No" - Case "FRA" - Label19.Text = "Non" - Case "PTB", "PTG" - Label19.Text = "Não" - Case "ITA" - Label19.Text = "No" - End Select - Case 1 - Label19.Text = "No" - Case 2 - Label19.Text = "No" - Case 3 - Label19.Text = "Non" - Case 4 - Label19.Text = "Não" - Case 5 - Label19.Text = "No" - End Select - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - imgMountDir.Text = "Not available" - imgIndex.Text = "Not available" - imgName.Text = "Not available" - imgMountedStatus.Text = "Not available" - imgVersion.Text = "Not available" - imgMountedName.Text = "Not available" - imgMountedDesc.Text = "Not available" - imgSize.Text = "Not available" - imgWimBootStatus.Text = "Not available" - imgArch.Text = "Not available" - imgHal.Text = "Not available" - imgSPBuild.Text = "Not available" - imgSPLvl.Text = "Not available" - imgEdition.Text = "Not available" - imgPType.Text = "Not available" - imgPSuite.Text = "Not available" - imgSysRoot.Text = "Not available" - imgDirs.Text = "Not available" - imgFiles.Text = "Not available" - imgCreation.Text = "Not available" - imgModification.Text = "Not available" - imgFormat.Text = "Not available" - imgRW.Text = "Not available" - Case "ESN" - imgMountDir.Text = "No disponible" - imgIndex.Text = "No disponible" - imgName.Text = "No disponible" - imgMountedStatus.Text = "No disponible" - imgVersion.Text = "No disponible" - imgMountedName.Text = "No disponible" - imgMountedDesc.Text = "No disponible" - imgSize.Text = "No disponible" - imgWimBootStatus.Text = "No disponible" - imgArch.Text = "No disponible" - imgHal.Text = "No disponible" - imgSPBuild.Text = "No disponible" - imgSPLvl.Text = "No disponible" - imgEdition.Text = "No disponible" - imgPType.Text = "No disponible" - imgPSuite.Text = "No disponible" - imgSysRoot.Text = "No disponible" - imgDirs.Text = "No disponible" - imgFiles.Text = "No disponible" - imgCreation.Text = "No disponible" - imgModification.Text = "No disponible" - imgFormat.Text = "No disponible" - imgRW.Text = "No disponible" - Case "FRA" - imgMountDir.Text = "Non disponible" - imgIndex.Text = "Non disponible" - imgName.Text = "Non disponible" - imgMountedStatus.Text = "Non disponible" - imgVersion.Text = "Non disponible" - imgMountedName.Text = "Non disponible" - imgMountedDesc.Text = "Non disponible" - imgSize.Text = "Non disponible" - imgWimBootStatus.Text = "Non disponible" - imgArch.Text = "Non disponible" - imgHal.Text = "Non disponible" - imgSPBuild.Text = "Non disponible" - imgSPLvl.Text = "Non disponible" - imgEdition.Text = "Non disponible" - imgPType.Text = "Non disponible" - imgPSuite.Text = "Non disponible" - imgSysRoot.Text = "Non disponible" - imgDirs.Text = "Non disponible" - imgFiles.Text = "Non disponible" - imgCreation.Text = "Non disponible" - imgModification.Text = "Non disponible" - imgFormat.Text = "Non disponible" - imgRW.Text = "Non disponible" - Case "PTB", "PTG" - imgMountDir.Text = "Não disponível" - imgIndex.Text = "Não disponível" - imgName.Text = "Não disponível" - imgMountedStatus.Text = "Não disponível" - imgVersion.Text = "Não disponível" - imgMountedName.Text = "Não disponível" - imgMountedDesc.Text = "Não disponível" - imgSize.Text = "Não disponível" - imgWimBootStatus.Text = "Não disponível" - imgArch.Text = "Não disponível" - imgHal.Text = "Não disponível" - imgSPBuild.Text = "Não disponível" - imgSPLvl.Text = "Não disponível" - imgEdition.Text = "Não disponível" - imgPType.Text = "Não disponível" - imgPSuite.Text = "Não disponível" - imgSysRoot.Text = "Não disponível" - imgDirs.Text = "Não disponível" - imgFiles.Text = "Não disponível" - imgCreation.Text = "Não disponível" - imgModification.Text = "Não disponível" - imgFormat.Text = "Não disponível" - imgRW.Text = "Não disponível" - Case "ITA" - imgMountDir.Text = "Non disponibile" - imgIndex.Text = "Non disponibile" - imgName.Text = "Non disponibile" - imgMountedStatus.Text = "Non disponibile" - imgVersion.Text = "Non disponibile" - imgMountedName.Text = "Non disponibile" - imgMountedDesc.Text = "Non disponibile" - imgSize.Text = "Non disponibile" - imgWimBootStatus.Text = "Non disponibile" - imgArch.Text = "Non disponibile" - imgHal.Text = "Non disponibile" - imgSPBuild.Text = "Non disponibile" - imgSPLvl.Text = "Non disponibile" - imgEdition.Text = "Non disponibile" - imgPType.Text = "Non disponibile" - imgPSuite.Text = "Non disponibile" - imgSysRoot.Text = "Non disponibile" - imgDirs.Text = "Non disponibile" - imgFiles.Text = "Non disponibile" - imgCreation.Text = "Non disponibile" - imgModification.Text = "Non disponibile" - imgFormat.Text = "Non disponibile" - imgRW.Text = "Non disponibile" - End Select - Case 1 - imgMountDir.Text = "Not available" - imgIndex.Text = "Not available" - imgName.Text = "Not available" - imgMountedStatus.Text = "Not available" - imgVersion.Text = "Not available" - imgMountedName.Text = "Not available" - imgMountedDesc.Text = "Not available" - imgSize.Text = "Not available" - imgWimBootStatus.Text = "Not available" - imgArch.Text = "Not available" - imgHal.Text = "Not available" - imgSPBuild.Text = "Not available" - imgSPLvl.Text = "Not available" - imgEdition.Text = "Not available" - imgPType.Text = "Not available" - imgPSuite.Text = "Not available" - imgSysRoot.Text = "Not available" - imgDirs.Text = "Not available" - imgFiles.Text = "Not available" - imgCreation.Text = "Not available" - imgModification.Text = "Not available" - imgFormat.Text = "Not available" - imgRW.Text = "Not available" - Case 2 - imgMountDir.Text = "No disponible" - imgIndex.Text = "No disponible" - imgName.Text = "No disponible" - imgMountedStatus.Text = "No disponible" - imgVersion.Text = "No disponible" - imgMountedName.Text = "No disponible" - imgMountedDesc.Text = "No disponible" - imgSize.Text = "No disponible" - imgWimBootStatus.Text = "No disponible" - imgArch.Text = "No disponible" - imgHal.Text = "No disponible" - imgSPBuild.Text = "No disponible" - imgSPLvl.Text = "No disponible" - imgEdition.Text = "No disponible" - imgPType.Text = "No disponible" - imgPSuite.Text = "No disponible" - imgSysRoot.Text = "No disponible" - imgDirs.Text = "No disponible" - imgFiles.Text = "No disponible" - imgCreation.Text = "No disponible" - imgModification.Text = "No disponible" - imgFormat.Text = "No disponible" - imgRW.Text = "No disponible" - Case 3 - imgMountDir.Text = "Non disponible" - imgIndex.Text = "Non disponible" - imgName.Text = "Non disponible" - imgMountedStatus.Text = "Non disponible" - imgVersion.Text = "Non disponible" - imgMountedName.Text = "Non disponible" - imgMountedDesc.Text = "Non disponible" - imgSize.Text = "Non disponible" - imgWimBootStatus.Text = "Non disponible" - imgArch.Text = "Non disponible" - imgHal.Text = "Non disponible" - imgSPBuild.Text = "Non disponible" - imgSPLvl.Text = "Non disponible" - imgEdition.Text = "Non disponible" - imgPType.Text = "Non disponible" - imgPSuite.Text = "Non disponible" - imgSysRoot.Text = "Non disponible" - imgDirs.Text = "Non disponible" - imgFiles.Text = "Non disponible" - imgCreation.Text = "Non disponible" - imgModification.Text = "Non disponible" - imgFormat.Text = "Non disponible" - imgRW.Text = "Non disponible" - Case 4 - imgMountDir.Text = "Não disponível" - imgIndex.Text = "Não disponível" - imgName.Text = "Não disponível" - imgMountedStatus.Text = "Não disponível" - imgVersion.Text = "Não disponível" - imgMountedName.Text = "Não disponível" - imgMountedDesc.Text = "Não disponível" - imgSize.Text = "Não disponível" - imgWimBootStatus.Text = "Não disponível" - imgArch.Text = "Não disponível" - imgHal.Text = "Não disponível" - imgSPBuild.Text = "Não disponível" - imgSPLvl.Text = "Não disponível" - imgEdition.Text = "Não disponível" - imgPType.Text = "Não disponível" - imgPSuite.Text = "Não disponível" - imgSysRoot.Text = "Não disponível" - imgDirs.Text = "Não disponível" - imgFiles.Text = "Não disponível" - imgCreation.Text = "Não disponível" - imgModification.Text = "Não disponível" - imgFormat.Text = "Não disponível" - imgRW.Text = "Não disponível" - Case 5 - imgMountDir.Text = "Non disponibile" - imgIndex.Text = "Non disponibile" - imgName.Text = "Non disponibile" - imgMountedStatus.Text = "Non disponibile" - imgVersion.Text = "Non disponibile" - imgMountedName.Text = "Non disponibile" - imgMountedDesc.Text = "Non disponibile" - imgSize.Text = "Non disponibile" - imgWimBootStatus.Text = "Non disponibile" - imgArch.Text = "Non disponibile" - imgHal.Text = "Non disponibile" - imgSPBuild.Text = "Non disponibile" - imgSPLvl.Text = "Non disponibile" - imgEdition.Text = "Non disponibile" - imgPType.Text = "Non disponibile" - imgPSuite.Text = "Non disponibile" - imgSysRoot.Text = "Non disponibile" - imgDirs.Text = "Non disponibile" - imgFiles.Text = "Non disponibile" - imgCreation.Text = "Non disponibile" - imgModification.Text = "Non disponibile" - imgFormat.Text = "Non disponibile" - imgRW.Text = "Non disponibile" - End Select + Label19.Text = LocalizationService.ForSection("ProjProps")("No.Button") + imgMountDir.Text = LocalizationService.ForSection("ProjProps")("ImgMount.Label") + imgIndex.Text = LocalizationService.ForSection("ProjProps")("ImgIndex.Label") + imgName.Text = LocalizationService.ForSection("ProjProps")("ImgName.Label") + imgMountedStatus.Text = LocalizationService.ForSection("ProjProps")("NotAvailable.Label") + imgVersion.Text = LocalizationService.ForSection("ProjProps")("ImgVersion.Label") + imgMountedName.Text = LocalizationService.ForSection("ProjProps")("NotAvailable.Label") + imgMountedDesc.Text = LocalizationService.ForSection("ProjProps")("ImgMounted.Label") + imgSize.Text = LocalizationService.ForSection("ProjProps")("ImgSize.Label") + imgWimBootStatus.Text = LocalizationService.ForSection("ProjProps")("ImgWIM.Label") + imgArch.Text = LocalizationService.ForSection("ProjProps")("NotAvailable.Label") + imgHal.Text = LocalizationService.ForSection("ProjProps")("ImgHal.Label") + imgSPBuild.Text = LocalizationService.ForSection("ProjProps")("ImgSP.Label") + imgSPLvl.Text = LocalizationService.ForSection("ProjProps")("NotAvailable.Label") + imgEdition.Text = LocalizationService.ForSection("ProjProps")("ImgEdition.Label") + imgPType.Text = LocalizationService.ForSection("ProjProps")("NotAvailable.Label") + imgPSuite.Text = LocalizationService.ForSection("ProjProps")("ImgP.Label") + imgSysRoot.Text = LocalizationService.ForSection("ProjProps")("ImgSys.Label") + imgDirs.Text = LocalizationService.ForSection("ProjProps")("ImgDirs.Label") + imgFiles.Text = LocalizationService.ForSection("ProjProps")("ImgFiles.Label") + imgCreation.Text = LocalizationService.ForSection("ProjProps")("ImgCreation.Label") + imgModification.Text = LocalizationService.ForSection("ProjProps")("ImgModification.Label") + imgFormat.Text = LocalizationService.ForSection("ProjProps")("ImgFormat.Label") + imgRW.Text = LocalizationService.ForSection("ProjProps")("ImgRW.Label") Panel3.Visible = True Label4.Visible = False End If @@ -1127,59 +409,11 @@ Public Class ProjProperties Exit Sub End Select DynaLog.LogMessage("Detected feature update: " & FeatUpd) - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - imgVersion.Text &= CrLf & "(feature update: " & FeatUpd & ")" - Case "ESN" - imgVersion.Text &= CrLf & "(act. de características: " & FeatUpd & ")" - Case "FRA" - imgVersion.Text &= CrLf & "(m-à-j des caractéristiques: " & FeatUpd & ")" - Case "PTB", "PTG" - imgVersion.Text &= " (atualização de funcionalidades: " & FeatUpd & ")" - Case "ITA" - imgVersion.Text &= " (aggiornamento della caratteristica: " & FeatUpd & ")" - End Select - Case 1 - imgVersion.Text &= CrLf & "(feature update: " & FeatUpd & ")" - Case 2 - imgVersion.Text &= CrLf & "(act. de características: " & FeatUpd & ")" - Case 3 - imgVersion.Text &= CrLf & "(m-à-j des caractéristiques: " & FeatUpd & ")" - Case 4 - imgVersion.Text &= " (atualização de funcionalidades: " & FeatUpd & ")" - Case 5 - imgVersion.Text &= " (aggiornamento della caratteristica: " & FeatUpd & ")" - End Select + imgVersion.Text &= LocalizationService.ForSection("ProjectProps.FeatureUpdate").Format("FeatureUpdate.Label", FeatUpd) End Sub Private Sub Label37_MouseHover(sender As Object, e As EventArgs) Handles Label37.MouseHover - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - WindowHelper.DisplayToolTip(sender, "Hardware Abstraction Layer") - Case "ESN" - WindowHelper.DisplayToolTip(sender, "Capa de abstracción de hardware") - Case "FRA" - WindowHelper.DisplayToolTip(sender, "Couche d'abstraction du matériel") - Case "PTB", "PTG" - WindowHelper.DisplayToolTip(sender, "Camada de abstração de hardware") - Case "ITA" - WindowHelper.DisplayToolTip(sender, "Livello di astrazione hardware") - End Select - Case 1 - WindowHelper.DisplayToolTip(sender, "Hardware Abstraction Layer") - Case 2 - WindowHelper.DisplayToolTip(sender, "Capa de abstracción de hardware") - Case 3 - WindowHelper.DisplayToolTip(sender, "Couche d'abstraction du matériel") - Case 4 - WindowHelper.DisplayToolTip(sender, "Camada de abstração de hardware") - Case 5 - WindowHelper.DisplayToolTip(sender, "Livello di astrazione hardware") - End Select + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("ProjProps.Tooltip")("Hardware.Abstraction.Label")) End Sub Private Sub FfuInfoBtn_Click(sender As Object, e As EventArgs) Handles FfuInfoBtn.Click diff --git a/Panels/Questions/ImgConversionSuccessDialog.Designer.vb b/Panels/Questions/ImgConversionSuccessDialog.Designer.vb index 37b6a41cb..cf8bd3bf0 100644 --- a/Panels/Questions/ImgConversionSuccessDialog.Designer.vb +++ b/Panels/Questions/ImgConversionSuccessDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgConversionSuccessDialog Inherits System.Windows.Forms.Form @@ -40,7 +40,7 @@ Partial Class ImgConversionSuccessDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 87) Me.Label2.TabIndex = 9 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.ImageConvert")("Converted.Message") ' 'Label1 ' @@ -50,7 +50,7 @@ Partial Class ImgConversionSuccessDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 8 - Me.Label1.Text = "The image has been successfully converted" + Me.Label1.Text = LocalizationService.ForSection("Designer.ImageConvert")("Converted.Label") ' 'Panel1 ' @@ -85,7 +85,7 @@ Partial Class ImgConversionSuccessDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Yes" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ImageConvert")("Yes.Button") ' 'Cancel_Button ' @@ -96,7 +96,7 @@ Partial Class ImgConversionSuccessDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "No" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ImageConvert")("No.Button") ' 'ImgConversionSuccessDialog ' @@ -115,7 +115,7 @@ Partial Class ImgConversionSuccessDialog Me.Name = "ImgConversionSuccessDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.ImageConvert")("AppName.Label") Me.Panel1.ResumeLayout(False) Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Questions/ImgConversionSuccessDialog.resx b/Panels/Questions/ImgConversionSuccessDialog.resx index 0db14e188..7905453d9 100644 --- a/Panels/Questions/ImgConversionSuccessDialog.resx +++ b/Panels/Questions/ImgConversionSuccessDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located. - -Do you want to open the directory where the target image is stored? - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Questions/ImgConversionSuccessDialog.vb b/Panels/Questions/ImgConversionSuccessDialog.vb index a663d35f2..e26badd47 100644 --- a/Panels/Questions/ImgConversionSuccessDialog.vb +++ b/Panels/Questions/ImgConversionSuccessDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class ImgConversionSuccessDialog @@ -14,61 +14,10 @@ Public Class ImgConversionSuccessDialog End Sub Private Sub ImgConversionSuccessDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "The image has been successfully converted" - Label2.Text = "The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located." & CrLf & CrLf & "Do you want to open the directory where the target image is stored?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case "ESN" - Label1.Text = "La imagen ha sido convertida satisfactoriamente" - Label2.Text = "La imagen especificada ha sido convertida satisfactoriamente al formato de destino. Por si lo desea, el Explorador de archivos puede ser abierto para ver dónde está ubicada la imagen." & CrLf & CrLf & "¿Desea abrir el directorio donde la imagen de destino está almacenada?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case "FRA" - Label1.Text = "L'image a été convertie avec succès" - Label2.Text = "L'image spécifiée a été convertie avec succès au format cible. Pour plus de commodité, l'explorateur de fichiers peut être ouvert pour vous permettre de voir où se trouve l'image cible." & CrLf & CrLf & "Voulez-vous ouvrir le répertoire dans lequel l'image cible est stockée ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case "PTB", "PTG" - Label1.Text = "A imagem foi convertida com êxito" - Label2.Text = "A imagem especificada foi convertida com sucesso para o formato de destino. Por conveniência, o Explorador de Ficheiros pode ser aberto para ver onde se encontra a imagem de destino." & CrLf & CrLf & "Pretende abrir o diretório onde a imagem de destino está armazenada?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case "ITA" - Label1.Text = "L'immagine è stata convertita con successo" - Label2.Text = "L'immagine specificata è stata convertita con successo nel formato di destinazione. Per comodità, è possibile aprire l'Esplora file per vedere dove si trova l'immagine di destinazione." & CrLf & CrLf & "Si desidera aprire la directory in cui è memorizzata l'immagine di destinazione?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select - Case 1 - Label1.Text = "The image has been successfully converted" - Label2.Text = "The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located." & CrLf & CrLf & "Do you want to open the directory where the target image is stored?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case 2 - Label1.Text = "La imagen ha sido convertida satisfactoriamente" - Label2.Text = "La imagen especificada ha sido convertida satisfactoriamente al formato de destino. Por si lo desea, el Explorador de archivos puede ser abierto para ver dónde está ubicada la imagen." & CrLf & CrLf & "¿Desea abrir el directorio donde la imagen de destino está almacenada?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case 3 - Label1.Text = "L'image a été convertie avec succès" - Label2.Text = "L'image spécifiée a été convertie avec succès au format cible. Pour plus de commodité, l'explorateur de fichiers peut être ouvert pour vous permettre de voir où se trouve l'image cible." & CrLf & CrLf & "Voulez-vous ouvrir le répertoire dans lequel l'image cible est stockée ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case 4 - Label1.Text = "A imagem foi convertida com êxito" - Label2.Text = "A imagem especificada foi convertida com sucesso para o formato de destino. Por conveniência, o Explorador de Ficheiros pode ser aberto para ver onde se encontra a imagem de destino." & CrLf & CrLf & "Pretende abrir o diretório onde a imagem de destino está armazenada?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case 5 - Label1.Text = "L'immagine è stata convertita con successo" - Label2.Text = "L'immagine specificata è stata convertita con successo nel formato di destinazione. Per comodità, è possibile aprire l'Esplora file per vedere dove si trova l'immagine di destinazione." & CrLf & CrLf & "Si desidera aprire la directory in cui è memorizzata l'immagine di destinazione?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select + Label1.Text = LocalizationService.ForSection("ImageConversion.Success")("Image.Done.Converted.Label") + Label2.Text = LocalizationService.ForSection("ImageConversion.Success")("ConversionDone.Message") + OK_Button.Text = LocalizationService.ForSection("ImageConversion.Success")("Yes.Button") + Cancel_Button.Text = LocalizationService.ForSection("ImageConversion.Success")("No.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Questions/ImgWinVistaIncompatibilityDialog.Designer.vb b/Panels/Questions/ImgWinVistaIncompatibilityDialog.Designer.vb index bc1b40bbb..41d86da1f 100644 --- a/Panels/Questions/ImgWinVistaIncompatibilityDialog.Designer.vb +++ b/Panels/Questions/ImgWinVistaIncompatibilityDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ImgWinVistaIncompatibilityDialog Inherits System.Windows.Forms.Form @@ -40,7 +40,7 @@ Partial Class ImgWinVistaIncompatibilityDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 130) Me.Label2.TabIndex = 12 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.VistaWarning")("Unsupported.Message") ' 'Label1 ' @@ -50,7 +50,7 @@ Partial Class ImgWinVistaIncompatibilityDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 11 - Me.Label1.Text = "The program can't service Windows Vista images" + Me.Label1.Text = LocalizationService.ForSection("Designer.VistaWarning")("Windows.Service.Message") ' 'Panel1 ' @@ -85,7 +85,7 @@ Partial Class ImgWinVistaIncompatibilityDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Yes" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.VistaWarning")("Yes.Button") ' 'Cancel_Button ' @@ -96,7 +96,7 @@ Partial Class ImgWinVistaIncompatibilityDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "No" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.VistaWarning")("No.Button") ' 'ImgWinVistaIncompatibilityDialog ' @@ -115,7 +115,7 @@ Partial Class ImgWinVistaIncompatibilityDialog Me.Name = "ImgWinVistaIncompatibilityDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.VistaWarning")("DISMTools.Label") Me.Panel1.ResumeLayout(False) Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Questions/ImgWinVistaIncompatibilityDialog.resx b/Panels/Questions/ImgWinVistaIncompatibilityDialog.resx index deef0f368..7905453d9 100644 --- a/Panels/Questions/ImgWinVistaIncompatibilityDialog.resx +++ b/Panels/Questions/ImgWinVistaIncompatibilityDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,11 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled. - -If you still want to service a Windows Vista image, refer to the "Compatibility with older Windows versions" topic in the Help documentation. - -Do you want to continue? - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Questions/ImgWinVistaIncompatibilityDialog.vb b/Panels/Questions/ImgWinVistaIncompatibilityDialog.vb index 012f7a047..ec4e44413 100644 --- a/Panels/Questions/ImgWinVistaIncompatibilityDialog.vb +++ b/Panels/Questions/ImgWinVistaIncompatibilityDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class ImgWinVistaIncompatibilityDialog @@ -14,61 +14,10 @@ Public Class ImgWinVistaIncompatibilityDialog End Sub Private Sub ImgWinVistaIncompatibilityDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "The program can't service Windows Vista images" - Label2.Text = "Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled." & CrLf & CrLf & "If you still want to service a Windows Vista image, refer to the " & Quote & "Compatibility with older Windows versions" & Quote & " topic in the Help documentation." & CrLf & CrLf & "Do you want to continue?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case "ESN" - Label1.Text = "El programa no puede ofrecer servicio a imágenes de Windows Vista" - Label2.Text = "Ni este programa ni DISM soportan ofrecer servicio a imágenes de Windows Vista. DISM puede ofrecer servicio a imágenes de Windows 7 o posterior. Aún puede montar imágenes de Windows Vista, pero todas las opciones serán deshabilitadas." & CrLf & CrLf & "Si todavía desea ofrecer servicio a una imagen de Windows Vista, véase el tópico " & Quote & "Compatibilidad con versiones antiguas de Windows" & Quote & " en la documentación de ayuda." & CrLf & CrLf & "¿Desea continuar?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case "FRA" - Label1.Text = "Le programme ne peut pas gérer les images de Windows Vista" - Label2.Text = "Ni ce programme ni DISM ne prennent en charge l'entretien des images Windows Vista. DISM est conçu pour gérer les images Windows 7 ou plus récentes. Vous pouvez toujours monter des images Windows Vista, mais toutes les options seront désactivées." & CrLf & CrLf & "Si vous souhaitez toujours entretenir une image Windows Vista, reportez-vous à la rubrique " & Quote & "Compatibilité avec les anciennes versions de Windows" & Quote & " dans la documentation d'aide." & CrLf & CrLf & "Voulez-vous continuer ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case "PTB", "PTG" - Label1.Text = "O programa não pode efetuar a manutenção de imagens do Windows Vista" - Label2.Text = "Nem este programa nem o DISM suportam a manutenção de imagens do Windows Vista. O DISM destina-se a servir imagens do Windows 7 ou mais recentes. Pode continuar a montar imagens do Windows Vista, mas todas as opções serão desactivadas." & CrLf & CrLf & "Se ainda pretender reparar uma imagem do Windows Vista, consulte o tópico " & Quote & "Compatibilidade com versões anteriores do Windows" & Quote & " na documentação da Ajuda." & CrLf & CrLf & "Pretende continuar?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case "ITA" - Label1.Text = "Il programma non è in grado di gestire le immagini di Windows Vista" - Label2.Text = "Né questo programma né DISM supportano la manutenzione delle immagini di Windows Vista. DISM è destinato a gestire immagini di Windows 7 o più recenti. È ancora possibile montare le immagini di Windows Vista, ma tutte le opzioni saranno disabilitate." & CrLf & CrLf & "Se si desidera comunque eseguire la manutenzione di un'immagine di Windows Vista, consultare l'argomento " & Quote & "Compatibilità con le versioni precedenti di Windows" & Quote & " nella documentazione della Guida in linea." & CrLf & CrLf & "Si desidera continuare?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select - Case 1 - Label1.Text = "The program can't service Windows Vista images" - Label2.Text = "Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled." & CrLf & CrLf & "If you still want to service a Windows Vista image, refer to the " & Quote & "Compatibility with older Windows versions" & Quote & " topic in the Help documentation." & CrLf & CrLf & "Do you want to continue?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case 2 - Label1.Text = "El programa no puede ofrecer servicio a imágenes de Windows Vista" - Label2.Text = "Ni este programa ni DISM soportan ofrecer servicio a imágenes de Windows Vista. DISM puede ofrecer servicio a imágenes de Windows 7 o posterior. Aún puede montar imágenes de Windows Vista, pero todas las opciones serán deshabilitadas." & CrLf & CrLf & "Si todavía desea ofrecer servicio a una imagen de Windows Vista, véase el tópico " & Quote & "Compatibilidad con versiones antiguas de Windows" & Quote & " en la documentación de ayuda." & CrLf & CrLf & "¿Desea continuar?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case 3 - Label1.Text = "Le programme ne peut pas gérer les images de Windows Vista" - Label2.Text = "Ni ce programme ni DISM ne prennent en charge l'entretien des images Windows Vista. DISM est conçu pour gérer les images Windows 7 ou plus récentes. Vous pouvez toujours monter des images Windows Vista, mais toutes les options seront désactivées." & CrLf & CrLf & "Si vous souhaitez toujours entretenir une image Windows Vista, reportez-vous à la rubrique " & Quote & "Compatibilité avec les anciennes versions de Windows" & Quote & " dans la documentation d'aide." & CrLf & CrLf & "Voulez-vous continuer ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case 4 - Label1.Text = "O programa não pode efetuar a manutenção de imagens do Windows Vista" - Label2.Text = "Nem este programa nem o DISM suportam a manutenção de imagens do Windows Vista. O DISM destina-se a servir imagens do Windows 7 ou mais recentes. Pode continuar a montar imagens do Windows Vista, mas todas as opções serão desactivadas." & CrLf & CrLf & "Se ainda pretender reparar uma imagem do Windows Vista, consulte o tópico " & Quote & "Compatibilidade com versões anteriores do Windows" & Quote & " na documentação da Ajuda." & CrLf & CrLf & "Pretende continuar?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case 5 - Label1.Text = "Il programma non è in grado di gestire le immagini di Windows Vista" - Label2.Text = "Né questo programma né DISM supportano la manutenzione delle immagini di Windows Vista. DISM è destinato a gestire immagini di Windows 7 o più recenti. È ancora possibile montare le immagini di Windows Vista, ma tutte le opzioni saranno disabilitate." & CrLf & CrLf & "Se si desidera comunque eseguire la manutenzione di un'immagine di Windows Vista, consultare l'argomento " & Quote & "Compatibilità con le versioni precedenti di Windows" & Quote & " nella documentazione della Guida in linea." & CrLf & CrLf & "Si desidera continuare?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select + Label1.Text = LocalizationService.ForSection("Img.Win")("Service.Windows.Message") + Label2.Text = LocalizationService.ForSection("Img.Win")("Unsupported.Message") + OK_Button.Text = LocalizationService.ForSection("Img.Win")("Yes.Button") + Cancel_Button.Text = LocalizationService.ForSection("Img.Win")("No.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Questions/MountOpDirCreationDialog.Designer.vb b/Panels/Questions/MountOpDirCreationDialog.Designer.vb index 20b1670f9..c4315cf07 100644 --- a/Panels/Questions/MountOpDirCreationDialog.Designer.vb +++ b/Panels/Questions/MountOpDirCreationDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MountOpDirCreationDialog Inherits System.Windows.Forms.Form @@ -39,7 +39,7 @@ Partial Class MountOpDirCreationDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 7 - Me.Label1.Text = "Do you want to create the mount directory?" + Me.Label1.Text = LocalizationService.ForSection("Designer.MountDirCreation")("Create.Label") ' 'Panel1 ' @@ -74,7 +74,7 @@ Partial Class MountOpDirCreationDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Yes" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.MountDirCreation")("Yes.Button") ' 'Cancel_Button ' @@ -85,7 +85,7 @@ Partial Class MountOpDirCreationDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "No" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.MountDirCreation")("No.Button") ' 'MountOpDirCreationDialog ' @@ -103,7 +103,7 @@ Partial Class MountOpDirCreationDialog Me.Name = "MountOpDirCreationDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Mount an image" + Me.Text = LocalizationService.ForSection("Designer.MountDirCreation")("MountImage.Label") Me.Panel1.ResumeLayout(False) Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Questions/MountOpDirCreationDialog.vb b/Panels/Questions/MountOpDirCreationDialog.vb index 91cc57c6b..4d8d2e06b 100644 --- a/Panels/Questions/MountOpDirCreationDialog.vb +++ b/Panels/Questions/MountOpDirCreationDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class MountOpDirCreationDialog @@ -14,51 +14,9 @@ Public Class MountOpDirCreationDialog Private Sub MountOpDirCreationDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load Text = ImgMount.ImageTaskHeader1.ItemText - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Do you want to create the mount directory?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case "ESN" - Label1.Text = "¿Desea crear el directorio de montaje?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case "FRA" - Label1.Text = "Voulez-vous créer le répertoire de montage ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case "PTB", "PTG" - Label1.Text = "Deseja criar o diretório de montagem?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case "ITA" - Label1.Text = "Vuoi creare la directory di montaggio?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select - Case 1 - Label1.Text = "Do you want to create the mount directory?" - OK_Button.Text = "Yes" - Cancel_Button.Text = "No" - Case 2 - Label1.Text = "¿Desea crear el directorio de montaje?" - OK_Button.Text = "Sí" - Cancel_Button.Text = "No" - Case 3 - Label1.Text = "Voulez-vous créer le répertoire de montage ?" - OK_Button.Text = "Oui" - Cancel_Button.Text = "Non" - Case 4 - Label1.Text = "Deseja criar o diretório de montagem?" - OK_Button.Text = "Sim" - Cancel_Button.Text = "Não" - Case 5 - Label1.Text = "Vuoi creare la directory di montaggio?" - OK_Button.Text = "Sì" - Cancel_Button.Text = "No" - End Select + Label1.Text = LocalizationService.ForSection("MountDirCreation")("Create.Label") + OK_Button.Text = LocalizationService.ForSection("MountDirCreation")("Yes.Button") + Cancel_Button.Text = LocalizationService.ForSection("MountDirCreation")("No.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Questions/OrphanedMountedImgDialog.Designer.vb b/Panels/Questions/OrphanedMountedImgDialog.Designer.vb index fa109971d..2c9521436 100644 --- a/Panels/Questions/OrphanedMountedImgDialog.Designer.vb +++ b/Panels/Questions/OrphanedMountedImgDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class OrphanedMountedImgDialog Inherits System.Windows.Forms.Form @@ -56,7 +56,7 @@ Partial Class OrphanedMountedImgDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.OrphanedMount")("Ok.Button") ' 'Cancel_Button ' @@ -67,7 +67,7 @@ Partial Class OrphanedMountedImgDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.OrphanedMount")("Cancel.Button") ' 'Label2 ' @@ -76,7 +76,7 @@ Partial Class OrphanedMountedImgDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 87) Me.Label2.TabIndex = 6 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.OrphanedMount")("Project.Has.Orphans.Message") ' 'Label1 ' @@ -86,7 +86,7 @@ Partial Class OrphanedMountedImgDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 5 - Me.Label1.Text = "This image needs a servicing session reload" + Me.Label1.Text = LocalizationService.ForSection("Designer.OrphanedMount")("Servicing.Session.Label") ' 'Panel1 ' @@ -116,7 +116,7 @@ Partial Class OrphanedMountedImgDialog Me.Name = "OrphanedMountedImgDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.OrphanedMount")("DISMTools.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Panel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Questions/OrphanedMountedImgDialog.resx b/Panels/Questions/OrphanedMountedImgDialog.resx index c613115ce..7905453d9 100644 --- a/Panels/Questions/OrphanedMountedImgDialog.resx +++ b/Panels/Questions/OrphanedMountedImgDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,10 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - The project that has been loaded contains an orphaned image (an image which needs to be remounted) -The image will be remounted when you click "OK". This should not affect your modifications to the image, and should also not take a long time. - -NOTE: if you click "Cancel", the project will be unloaded - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Questions/OrphanedMountedImgDialog.vb b/Panels/Questions/OrphanedMountedImgDialog.vb index cbe0dea31..fd6b00873 100644 --- a/Panels/Questions/OrphanedMountedImgDialog.vb +++ b/Panels/Questions/OrphanedMountedImgDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class OrphanedMountedImgDialog @@ -14,61 +14,10 @@ Public Class OrphanedMountedImgDialog End Sub Private Sub OrphanedMountedImgDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "This image needs a servicing session reload" - Label2.Text = "The project that has been loaded contains an orphaned image (an image which needs to be remounted)" & CrLf & "The image will be remounted when you click " & Quote & "OK" & Quote & ". This should not affect your modifications to the image, and should also not take a long time." & CrLf & CrLf & "NOTE: if you click " & Quote & "Cancel" & Quote & ", the project will be unloaded" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Label1.Text = "Esta imagen necesita una recarga de la sesión de servicio" - Label2.Text = "El proyecto que ha sido cargado contiene una imagen huérfana (una imagen que debe ser remontada)" & CrLf & "La imagen será remontada al hacer clic en " & Quote & "Aceptar" & Quote & ". Esto no debería afectar las modificaciones a la imagen, y no debería tardar mucho tiempo." & CrLf & CrLf & "NOTA: si hace clic en " & Quote & "Cancelar" & Quote & ", el proyecto será descargado" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Label1.Text = "Cette image nécessite un rechargement de la session de maintenance" - Label2.Text = "Le projet qui a été chargé contient une image orpheline (une image qui doit être remontée)" & CrLf & "L'image sera remontée lorsque vous cliquerez sur " & Quote & "OK" & Quote & ". Cela ne devrait pas affecter vos modifications de l'image et ne devrait pas prendre beaucoup de temps." & CrLf & CrLf & "NOTE: si vous cliquez sur " & Quote & "Annuler" & Quote & ", le projet sera déchargé." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Label1.Text = "Esta imagem precisa de ser recarregada numa sessão de manutenção" - Label2.Text = "O projeto que foi carregado contém uma imagem órfã (uma imagem que precisa de ser montada novamente)" & CrLf & "A imagem será montada novamente quando clicar em " & Quote & "OK" & Quote & ". Isto não deve afetar as suas modificações na imagem e também não deve demorar muito tempo." & CrLf & CrLf & "NOTA: se clicar em " & Quote & "Cancel" & Quote & ", o projeto será descarregado" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Label1.Text = "Questa immagine necessita di una sessione di assistenza per essere ricaricata" - Label2.Text = "Il progetto che è stato caricato contiene un'immagine orfana (un'immagine che deve essere rimontata)" & CrLf & "L'immagine verrà rimontata quando si fa clic su " & Quote & "OK" & Quote & ". Questa operazione non dovrebbe influire sulle modifiche apportate all'immagine e non dovrebbe richiedere molto tempo." & CrLf & CrLf & "NOTA: se si fa clic su " & Quote & "Cancel" & Quote & ", il progetto verrà scaricato" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Label1.Text = "This image needs a servicing session reload" - Label2.Text = "The project that has been loaded contains an orphaned image (an image which needs to be remounted)" & CrLf & "The image will be remounted when you click " & Quote & "OK" & Quote & ". This should not affect your modifications to the image, and should also not take a long time." & CrLf & CrLf & "NOTE: if you click " & Quote & "Cancel" & Quote & ", the project will be unloaded" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Label1.Text = "Esta imagen necesita una recarga de la sesión de servicio" - Label2.Text = "El proyecto que ha sido cargado contiene una imagen huérfana (una imagen que debe ser remontada)" & CrLf & "La imagen será remontada al hacer clic en " & Quote & "Aceptar" & Quote & ". Esto no debería afectar las modificaciones a la imagen, y no debería tardar mucho tiempo." & CrLf & CrLf & "NOTA: si hace clic en " & Quote & "Cancelar" & Quote & ", el proyecto será descargado" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Label1.Text = "Cette image nécessite un rechargement de la session de maintenance" - Label2.Text = "Le projet qui a été chargé contient une image orpheline (une image qui doit être remontée)" & CrLf & "L'image sera remontée lorsque vous cliquerez sur " & Quote & "OK" & Quote & ". Cela ne devrait pas affecter vos modifications de l'image et ne devrait pas prendre beaucoup de temps." & CrLf & CrLf & "NOTE: si vous cliquez sur " & Quote & "Annuler" & Quote & ", le projet sera déchargé." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Label1.Text = "Esta imagem precisa de ser recarregada numa sessão de manutenção" - Label2.Text = "O projeto que foi carregado contém uma imagem órfã (uma imagem que precisa de ser montada novamente)" & CrLf & "A imagem será montada novamente quando clicar em " & Quote & "OK" & Quote & ". Isto não deve afetar as suas modificações na imagem e também não deve demorar muito tempo." & CrLf & CrLf & "NOTA: se clicar em " & Quote & "Cancel" & Quote & ", o projeto será descarregado" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Label1.Text = "Questa immagine necessita di una sessione di assistenza per essere ricaricata" - Label2.Text = "Il progetto che è stato caricato contiene un'immagine orfana (un'immagine che deve essere rimontata)" & CrLf & "L'immagine verrà rimontata quando si fa clic su " & Quote & "OK" & Quote & ". Questa operazione non dovrebbe influire sulle modifiche apportate all'immagine e non dovrebbe richiedere molto tempo." & CrLf & CrLf & "NOTA: se si fa clic su " & Quote & "Cancel" & Quote & ", il progetto verrà scaricato" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Label1.Text = LocalizationService.ForSection("OrphanedMount")("Image.Servicing.Label") + Label2.Text = LocalizationService.ForSection("OrphanedMount")("Project.Has.Orphans.Message") + OK_Button.Text = LocalizationService.ForSection("OrphanedMount")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("OrphanedMount")("Cancel.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Questions/ReloadProjectQuestionDialog.Designer.vb b/Panels/Questions/ReloadProjectQuestionDialog.Designer.vb index 615f292bf..246e89492 100644 --- a/Panels/Questions/ReloadProjectQuestionDialog.Designer.vb +++ b/Panels/Questions/ReloadProjectQuestionDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ReloadProjectQuestionDialog Inherits System.Windows.Forms.Form @@ -66,7 +66,7 @@ Partial Class ReloadProjectQuestionDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ReloadProject")("Ok.Button") ' 'Cancel_Button ' @@ -77,7 +77,7 @@ Partial Class ReloadProjectQuestionDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ReloadProject")("Cancel.Button") ' 'Label2 ' @@ -86,7 +86,7 @@ Partial Class ReloadProjectQuestionDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(599, 87) Me.Label2.TabIndex = 8 - Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.Text = LocalizationService.ForSection("Designer.ReloadProject")("ImageUnavailable.Message") ' 'Label1 ' @@ -96,7 +96,7 @@ Partial Class ReloadProjectQuestionDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(600, 23) Me.Label1.TabIndex = 7 - Me.Label1.Text = "This image is no longer available" + Me.Label1.Text = LocalizationService.ForSection("Designer.ReloadProject")("ImageMissing.Label") ' 'ReloadProjectQuestionDialog ' @@ -115,7 +115,7 @@ Partial Class ReloadProjectQuestionDialog Me.Name = "ReloadProjectQuestionDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.ReloadProject")("DISMTools.Label") Me.Panel1.ResumeLayout(False) Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Questions/ReloadProjectQuestionDialog.resx b/Panels/Questions/ReloadProjectQuestionDialog.resx index 2765579ce..7905453d9 100644 --- a/Panels/Questions/ReloadProjectQuestionDialog.resx +++ b/Panels/Questions/ReloadProjectQuestionDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,9 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click "OK" to reload this project. - -NOTE: if you click "Cancel", the project will be unloaded - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Questions/ReloadProjectQuestionDialog.vb b/Panels/Questions/ReloadProjectQuestionDialog.vb index 22fb0380a..187aa320d 100644 --- a/Panels/Questions/ReloadProjectQuestionDialog.vb +++ b/Panels/Questions/ReloadProjectQuestionDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Imports Microsoft.VisualBasic.ControlChars Public Class ReloadProjectQuestionDialog @@ -14,61 +14,10 @@ Public Class ReloadProjectQuestionDialog End Sub Private Sub ReloadProjectQuestionDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "This image is no longer available" - Label2.Text = "The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click " & Quote & "OK" & Quote & " to reload this project." & CrLf & CrLf & "NOTE: if you click " & Quote & "Cancel" & Quote & ", the project will be unloaded" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case "ESN" - Label1.Text = "Esta imagen ya no está disponible" - Label2.Text = "La imagen que fue cargada en este proyecto ya no está disponible. Esto puede ocurrir si dicha imagen fue desmontada por un programa externo. Debido a esto, el proyecto debe ser recargado. Haga clic en " & Quote & "Aceptar" & Quote & " para recargar este proyecto." & CrLf & CrLf & "NOTA: si hace clic en " & Quote & "Cancelar" & Quote & ", el proyecto será descargado" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Label1.Text = "Cette image n'est plus disponible" - Label2.Text = "L'image qui a été chargée dans ce projet n'est plus disponible. Cela peut se produire si elle a été démontée par un programme externe. Pour cette raison, le projet doit être rechargé. Cliquez sur " & Quote & "OK" & Quote & " pour recharger ce projet." & CrLf & CrLf & "NOTE: si vous cliquez sur " & Quote & "Annuler" & Quote & ", le projet sera déchargé." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Label1.Text = "Esta imagem já não está disponível" - Label2.Text = "A imagem que foi carregada neste projeto já não está disponível. Isto pode acontecer se tiver sido desmontada por um programa externo. Por este motivo, o projeto tem de ser recarregado. Clique em " & Quote & "OK" & Quote & " para recarregar este projeto." & CrLf & CrLf & "NOTA: se clicar em " & Quote & "Cancelar" & Quote & ", o projeto será descarregado" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Label1.Text = "Questa immagine non è più disponibile" - Label2.Text = "L'immagine caricata in questo progetto non è più disponibile. Questo può accadere se è stata smontata da un programma esterno. Per questo motivo, il progetto deve essere ricaricato. Fare clic su " & Quote & "OK" & Quote & " per ricaricare il progetto." & CrLf & CrLf & "NOTA: se si fa clic su " & Quote & "Annulla" & Quote & ", il progetto verrà scaricato" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select - Case 1 - Label1.Text = "This image is no longer available" - Label2.Text = "The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click " & Quote & "OK" & Quote & " to reload this project." & CrLf & CrLf & "NOTE: if you click " & Quote & "Cancel" & Quote & ", the project will be unloaded" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancel" - Case 2 - Label1.Text = "Esta imagen ya no está disponible" - Label2.Text = "La imagen que fue cargada en este proyecto ya no está disponible. Esto puede ocurrir si dicha imagen fue desmontada por un programa externo. Debido a esto, el proyecto debe ser recargado. Haga clic en " & Quote & "Aceptar" & Quote & " para recargar este proyecto." & CrLf & CrLf & "NOTA: si hace clic en " & Quote & "Cancelar" & Quote & ", el proyecto será descargado" - OK_Button.Text = "Aceptar" - Cancel_Button.Text = "Cancelar" - Case 3 - Label1.Text = "Cette image n'est plus disponible" - Label2.Text = "L'image qui a été chargée dans ce projet n'est plus disponible. Cela peut se produire si elle a été démontée par un programme externe. Pour cette raison, le projet doit être rechargé. Cliquez sur " & Quote & "OK" & Quote & " pour recharger ce projet." & CrLf & CrLf & "NOTE: si vous cliquez sur " & Quote & "Annuler" & Quote & ", le projet sera déchargé." - OK_Button.Text = "OK" - Cancel_Button.Text = "Annuler" - Case 4 - Label1.Text = "Esta imagem já não está disponível" - Label2.Text = "A imagem que foi carregada neste projeto já não está disponível. Isto pode acontecer se tiver sido desmontada por um programa externo. Por este motivo, o projeto tem de ser recarregado. Clique em " & Quote & "OK" & Quote & " para recarregar este projeto." & CrLf & CrLf & "NOTA: se clicar em " & Quote & "Cancelar" & Quote & ", o projeto será descarregado" - OK_Button.Text = "OK" - Cancel_Button.Text = "Cancelar" - Case 5 - Label1.Text = "Questa immagine non è più disponibile" - Label2.Text = "L'immagine caricata in questo progetto non è più disponibile. Questo può accadere se è stata smontata da un programma esterno. Per questo motivo, il progetto deve essere ricaricato. Fare clic su " & Quote & "OK" & Quote & " per ricaricare il progetto." & CrLf & CrLf & "NOTA: se si fa clic su " & Quote & "Annulla" & Quote & ", il progetto verrà scaricato" - OK_Button.Text = "OK" - Cancel_Button.Text = "Annullare" - End Select + Label1.Text = LocalizationService.ForSection("ReloadProject")("ImageMissing.Label") + Label2.Text = LocalizationService.ForSection("ReloadProject")("ImageUnavailable.Message") + OK_Button.Text = LocalizationService.ForSection("ReloadProject")("Ok.Button") + Cancel_Button.Text = LocalizationService.ForSection("ReloadProject")("Cancel.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Questions/SaveProjectQuestionDialog.Designer.vb b/Panels/Questions/SaveProjectQuestionDialog.Designer.vb index 2196e5cba..7f7550a12 100644 --- a/Panels/Questions/SaveProjectQuestionDialog.Designer.vb +++ b/Panels/Questions/SaveProjectQuestionDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SaveProjectQuestionDialog Inherits System.Windows.Forms.Form @@ -58,7 +58,7 @@ Partial Class SaveProjectQuestionDialog Me.Yes_Button.Name = "Yes_Button" Me.Yes_Button.Size = New System.Drawing.Size(66, 23) Me.Yes_Button.TabIndex = 0 - Me.Yes_Button.Text = "Yes" + Me.Yes_Button.Text = LocalizationService.ForSection("Designer.SaveProject")("Yes.Button") ' 'No_Button ' @@ -69,7 +69,7 @@ Partial Class SaveProjectQuestionDialog Me.No_Button.Name = "No_Button" Me.No_Button.Size = New System.Drawing.Size(66, 23) Me.No_Button.TabIndex = 1 - Me.No_Button.Text = "No" + Me.No_Button.Text = LocalizationService.ForSection("Designer.SaveProject")("No.Button") ' 'Cancel_Button ' @@ -80,7 +80,7 @@ Partial Class SaveProjectQuestionDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(66, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.SaveProject")("Cancel.Button") ' 'Panel1 ' @@ -100,7 +100,7 @@ Partial Class SaveProjectQuestionDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(471, 23) Me.Label1.TabIndex = 2 - Me.Label1.Text = "Do you want to save the changes of this project?" + Me.Label1.Text = LocalizationService.ForSection("Designer.SaveProject")("SaveChanges.Label") ' 'Label2 ' @@ -109,8 +109,7 @@ Partial Class SaveProjectQuestionDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(471, 39) Me.Label2.TabIndex = 3 - Me.Label2.Text = "If you shut down or restart your system without unmounting the images, you will n" & _ - "eed to reload the servicing session." + Me.Label2.Text = LocalizationService.ForSection("Designer.SaveProject")("Shutdown.Message") ' 'SaveProjectQuestionDialog ' @@ -130,7 +129,7 @@ Partial Class SaveProjectQuestionDialog Me.Name = "SaveProjectQuestionDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.SaveProject")("AppName.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Panel1.ResumeLayout(False) Me.ResumeLayout(False) diff --git a/Panels/Questions/SaveProjectQuestionDialog.vb b/Panels/Questions/SaveProjectQuestionDialog.vb index 4689928ef..51ef1fad1 100644 --- a/Panels/Questions/SaveProjectQuestionDialog.vb +++ b/Panels/Questions/SaveProjectQuestionDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class SaveProjectQuestionDialog @@ -18,71 +18,11 @@ Public Class SaveProjectQuestionDialog End Sub Private Sub SaveProjectQuestionDialog_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Do you want to save the changes of this project?" - Label2.Text = "If you shut down or restart your system without unmounting the images, you will need to reload the servicing session." - Yes_Button.Text = "Yes" - No_Button.Text = "No" - Cancel_Button.Text = "Cancel" - Case "ESN" - Label1.Text = "¿Desea guardar los cambios de este proyecto?" - Label2.Text = "Si apaga o reinicia su sistema sin desmontar las imágenes, necesitará recargar la sesión de servicio." - Yes_Button.Text = "Sí" - No_Button.Text = "No" - Cancel_Button.Text = "Cancelar" - Case "FRA" - Label1.Text = "Souhaitez-vous sauvegarder les modifications apportées à ce projet ?" - Label2.Text = "Si vous arrêtez ou redémarrez votre système sans démonter les images, vous devrez recharger la session de maintenance." - Yes_Button.Text = "Oui" - No_Button.Text = "Non" - Cancel_Button.Text = "Annuler" - Case "PTB", "PTG" - Label1.Text = "Pretende guardar as alterações deste projeto?" - Label2.Text = "Se desligar ou reiniciar o sistema sem desmontar as imagens, terá de recarregar a sessão de manutenção." - Yes_Button.Text = "Sim" - No_Button.Text = "Não" - Cancel_Button.Text = "Cancelar" - Case "ITA" - Label1.Text = "Volete salvare le modifiche di questo progetto?" - Label2.Text = "Se si spegne o si riavvia il sistema senza smontare le immagini, sarà necessario ricaricare la sessione di assistenza" - Yes_Button.Text = "Sì" - No_Button.Text = "No" - Cancel_Button.Text = "Annulla" - End Select - Case 1 - Label1.Text = "Do you want to save the changes of this project?" - Label2.Text = "If you shut down or restart your system without unmounting the images, you will need to reload the servicing session." - Yes_Button.Text = "Yes" - No_Button.Text = "No" - Cancel_Button.Text = "Cancel" - Case 2 - Label1.Text = "¿Desea guardar los cambios de este proyecto?" - Label2.Text = "Si apaga o reinicia su sistema sin desmontar las imágenes, necesitará recargar la sesión de servicio." - Yes_Button.Text = "Sí" - No_Button.Text = "No" - Cancel_Button.Text = "Cancelar" - Case 3 - Label1.Text = "Souhaitez-vous sauvegarder les modifications apportées à ce projet ?" - Label2.Text = "Si vous arrêtez ou redémarrez votre système sans démonter les images, vous devrez recharger la session de maintenance." - Yes_Button.Text = "Oui" - No_Button.Text = "Non" - Cancel_Button.Text = "Annuler" - Case 4 - Label1.Text = "Pretende guardar as alterações deste projeto?" - Label2.Text = "Se desligar ou reiniciar o sistema sem desmontar as imagens, terá de recarregar a sessão de manutenção." - Yes_Button.Text = "Sim" - No_Button.Text = "Não" - Cancel_Button.Text = "Cancelar" - Case 5 - Label1.Text = "Volete salvare le modifiche di questo progetto?" - Label2.Text = "Se si spegne o si riavvia il sistema senza smontare le immagini, sarà necessario ricaricare la sessione di assistenza" - Yes_Button.Text = "Sì" - No_Button.Text = "No" - Cancel_Button.Text = "Annulla" - End Select + Label1.Text = LocalizationService.ForSection("SaveProject")("SaveChanges.Label") + Label2.Text = LocalizationService.ForSection("SaveProject")("ShutdownRestart.Message") + Yes_Button.Text = LocalizationService.ForSection("SaveProject")("Yes.Button") + No_Button.Text = LocalizationService.ForSection("SaveProject")("No.Button") + Cancel_Button.Text = LocalizationService.ForSection("SaveProject")("Cancel.Button") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor Panel1.BackColor = CurrentTheme.SectionBackgroundColor diff --git a/Panels/Startup/AutoReload/AutoReloadForm.Designer.vb b/Panels/Startup/AutoReload/AutoReloadForm.Designer.vb index 69f404aaf..6ae5f8348 100644 --- a/Panels/Startup/AutoReload/AutoReloadForm.Designer.vb +++ b/Panels/Startup/AutoReload/AutoReloadForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class AutoReloadForm Inherits System.Windows.Forms.Form @@ -57,8 +57,7 @@ Partial Class AutoReloadForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(577, 44) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Please wait while DISMTools reloads the servicing session of orphaned images. Thi" & _ - "s can take some time. Once complete, this dialog will close." + Me.Label1.Text = LocalizationService.ForSection("Designer.AutoReloadForm")("Wait.Message") ' 'GroupBox1 ' @@ -68,7 +67,7 @@ Partial Class AutoReloadForm Me.GroupBox1.Size = New System.Drawing.Size(600, 96) Me.GroupBox1.TabIndex = 1 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Image information" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.AutoReloadForm")("ImageInfo.Group") ' 'TableLayoutPanel1 ' @@ -103,7 +102,7 @@ Partial Class AutoReloadForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(173, 38) Me.Label4.TabIndex = 2 - Me.Label4.Text = "Image mount point:" + Me.Label4.Text = LocalizationService.ForSection("Designer.AutoReloadForm")("Image.Mount.Point.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'imgFile @@ -121,7 +120,7 @@ Partial Class AutoReloadForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(173, 38) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Image file:" + Me.Label3.Text = LocalizationService.ForSection("Designer.AutoReloadForm")("ImageFile.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label2 @@ -133,7 +132,7 @@ Partial Class AutoReloadForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(73, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Please wait..." + Me.Label2.Text = LocalizationService.ForSection("Designer.AutoReloadForm")("Wait.Label") ' 'ProgressBar1 ' @@ -162,7 +161,7 @@ Partial Class AutoReloadForm Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "AutoReloadForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "DISMTools" + Me.Text = LocalizationService.ForSection("Designer.AutoReloadForm")("DISMTools.Label") Me.TopMost = True CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.GroupBox1.ResumeLayout(False) diff --git a/Panels/Startup/AutoReload/AutoReloadForm.vb b/Panels/Startup/AutoReload/AutoReloadForm.vb index 169d5f060..5c7d0394a 100644 --- a/Panels/Startup/AutoReload/AutoReloadForm.vb +++ b/Panels/Startup/AutoReload/AutoReloadForm.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports Microsoft.Dism Imports System.Threading Imports Microsoft.VisualBasic.ControlChars @@ -45,18 +45,7 @@ Public Class AutoReloadForm For x = 0 To Array.LastIndexOf(MountDirs.ToArray(), MountDirs.ToArray().Last) fileMsg = ImgFiles(x) mntMsg = MountDirs(x) - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - message = "Reloading mounted image... (succeeded: " & SuccessfulReloads & ", failed: " & FailedReloads & ", skipped: " & SkippedReloads & ")" - Case "ESN" - message = "Recargando imagen montada... (satisfactorias: " & SuccessfulReloads & ", fallidas: " & FailedReloads & ", omitidas: " & SkippedReloads & ")" - Case "FRA" - message = "Rechargement de l'image montée en cours... (avec succès : " & SuccessfulReloads & ", échoué : " & FailedReloads & ", ignoré : " & SkippedReloads & ")" - Case "PTB", "PTG" - message = "Recarregando imagem montada... (bem-sucedido: " & SuccessfulReloads & ", falhou: " & FailedReloads & ", ignorado: " & SkippedReloads & ")" - Case "ITA" - message = "Ricarica dell'immagine montata... (riuscita: " & SuccessfulReloads & ", failed: " & FailedReloads & ", saltato: " & SkippedReloads & ")" - End Select + message = LocalizationService.ForSection("AutoReload.Bg").Format("ReloadSucceeded.Message", SuccessfulReloads, FailedReloads, SkippedReloads) BackgroundWorker1.ReportProgress((x / ImgCount) * 100) DynaLog.LogMessage("Checking mount status of image file " & Quote & fileMsg & Quote & "...") Try @@ -85,36 +74,14 @@ Public Class AutoReloadForm End Try End If DynaLog.LogMessage("This process has completed.") - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - message = "This process has completed" - Case "ESN" - message = "Este proceso ha completado" - Case "FRA" - message = "Ce processus s'est achevé" - Case "PTB", "PTG" - message = "Este processo foi concluído" - Case "ITA" - message = "Questo processo è stato completato" - End Select + message = LocalizationService.ForSection("AutoReload.Background")("ProcessCompleted.Message") BackgroundWorker1.ReportProgress(100) End Sub Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged Select Case e.ProgressPercentage Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label2.Text = "Preparing to reload images..." - Case "ESN" - Label2.Text = "Preparándonos para recargar imágenes..." - Case "FRA" - Label2.Text = "Préparation du rechargement des images en cours..." - Case "PTB", "PTG" - Label2.Text = "A preparar o recarregamento de imagens..." - Case "ITA" - Label2.Text = "Preparazione per ricaricare le immagini..." - End Select + Label2.Text = LocalizationService.ForSection("AutoReload.Progress")("Preparing.Images.Label") Case Else Label2.Text = message End Select @@ -149,33 +116,10 @@ Public Class AutoReloadForm Catch ex As Exception ' Continue End Try - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Label1.Text = "Please wait while DISMTools reloads the servicing session of orphaned images. This can take some time. Once complete, this dialog will close." - Label3.Text = "Image file:" - Label4.Text = "Image mount point:" - GroupBox1.Text = "Image information" - Case "ESN" - Label1.Text = "Espere mientras DISMTools recarga la sesión de servicio de las imágenes huérfanas. Esto puede llevar algo de tiempo. Una vez completado, este diálogo se cerrará." - Label3.Text = "Archivo de imagen:" - Label4.Text = "Punto de montaje de la imagen:" - GroupBox1.Text = "Información de la imagen" - Case "FRA" - Label1.Text = "Veuillez patienter pendant que DISMTools recharge la session d'entretien des images orphelines. Cela peut prendre un certain temps. Une fois terminé, cette boîte de dialogue se fermera." - Label3.Text = "Fichier image :" - Label4.Text = "Point de montage de l'image :" - GroupBox1.Text = "Informations sur l'image" - Case "PTB", "PTG" - Label1.Text = "Aguarde enquanto o DISMTools recarrega a sessão de manutenção de imagens órfãs. Isso pode levar algum tempo. Uma vez concluído, esta caixa de diálogo será fechada." - Label3.Text = "Ficheiro de imagem:" - Label4.Text = "Ponto de montagem da imagem:" - GroupBox1.Text = "Informações sobre a imagem" - Case "ITA" - Label1.Text = "Attendere mentre DISMTools ricarica la sessione di assistenza delle immagini orfane. Questa operazione può richiedere del tempo. Una volta completata, questa finestra di dialogo si chiuderà." - Label3.Text = "File immagine:" - Label4.Text = "Punto di montaggio dell'immagine:" - GroupBox1.Text = "Informazioni sull'immagine" - End Select + Label1.Text = LocalizationService.ForSection("AutoReload")("Wait.Message") + Label3.Text = LocalizationService.ForSection("AutoReload")("ImageFile.Label") + Label4.Text = LocalizationService.ForSection("AutoReload")("Image.Mount.Point.Label") + GroupBox1.Text = LocalizationService.ForSection("AutoReload")("ImageInfo.Group") TaskbarHelper.SetIndicatorState(0, Windows.Shell.TaskbarItemProgressState.Indeterminate, Handle) Thread.Sleep(2000) BackgroundWorker1.RunWorkerAsync() @@ -190,4 +134,4 @@ Public Class AutoReloadForm WindowState = FormWindowState.Normal End If End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/Startup/SplashScreen.Designer.vb b/Panels/Startup/SplashScreen.Designer.vb index 7bfd1a4ea..f637c2424 100644 --- a/Panels/Startup/SplashScreen.Designer.vb +++ b/Panels/Startup/SplashScreen.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SplashScreen Inherits System.Windows.Forms.Form @@ -69,7 +69,7 @@ Partial Class SplashScreen Me.VersionLabel.Name = "VersionLabel" Me.VersionLabel.Size = New System.Drawing.Size(560, 23) Me.VersionLabel.TabIndex = 1 - Me.VersionLabel.Text = "Version" + Me.VersionLabel.Text = LocalizationService.ForSection("Designer.SplashScreen")("VersionLabel.Label") Me.VersionLabel.TextAlign = System.Drawing.ContentAlignment.BottomRight Me.VersionLabel.Visible = False ' @@ -93,7 +93,7 @@ Partial Class SplashScreen Me.ShowIcon = False Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "DISMTools - Starting up..." + Me.Text = LocalizationService.ForSection("Designer.SplashScreen")("DISM.Tools.Starting.Button") Me.TopMost = True CType(Me.LogoPic, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PreviewFlag, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/Panels/Startup/SplashScreen.vb b/Panels/Startup/SplashScreen.vb index 953ac6d59..5178e16a4 100644 --- a/Panels/Startup/SplashScreen.vb +++ b/Panels/Startup/SplashScreen.vb @@ -6,7 +6,7 @@ Public Class SplashScreen Dim opacityFade As Single Private Sub SplashScreen_Load(sender As Object, e As EventArgs) Handles MyBase.Load - VersionLabel.Text = String.Format("Version {0}.{1}.{2}", + VersionLabel.Text = String.Format(LocalizationService.ForSection("SplashScreen")("Version.Label"), My.Application.Info.Version.ToString(), MainForm.dtBranch, RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm")) diff --git a/Panels/Unattend_Files/Addition/NewUnattendWiz.Designer.vb b/Panels/Unattend_Files/Addition/NewUnattendWiz.Designer.vb index 04c3813c8..be6e51ec3 100644 --- a/Panels/Unattend_Files/Addition/NewUnattendWiz.Designer.vb +++ b/Panels/Unattend_Files/Addition/NewUnattendWiz.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class NewUnattendWiz Inherits System.Windows.Forms.Form @@ -499,31 +499,31 @@ Partial Class NewUnattendWiz Me.StepsTreeView.Location = New System.Drawing.Point(6, 6) Me.StepsTreeView.Name = "StepsTreeView" TreeNode1.Name = "Nodo0" - TreeNode1.Text = "Welcome" + TreeNode1.Text = LocalizationService.ForSection("Designer.Unattend")("Welcome.Label") TreeNode2.Name = "Nodo1" - TreeNode2.Text = "Regional Configuration" + TreeNode2.Text = LocalizationService.ForSection("Designer.Unattend")("RegionalConfig.Label") TreeNode3.Name = "Nodo2" - TreeNode3.Text = "Basic System Configuration" + TreeNode3.Text = LocalizationService.ForSection("Designer.Unattend")("Basic.System.Config.Label") TreeNode4.Name = "Nodo3" - TreeNode4.Text = "Time Zone" + TreeNode4.Text = LocalizationService.ForSection("Designer.Unattend")("TreeNode.Label") TreeNode5.Name = "Nodo4" - TreeNode5.Text = "Disk Configuration" + TreeNode5.Text = LocalizationService.ForSection("Designer.Unattend")("DiskConfig.Label") TreeNode6.Name = "Nodo5" - TreeNode6.Text = "Product Key" + TreeNode6.Text = LocalizationService.ForSection("Designer.Unattend")("ProductKey.Label") TreeNode7.Name = "Nodo6" - TreeNode7.Text = "User Accounts" + TreeNode7.Text = LocalizationService.ForSection("Designer.Unattend")("UserAccounts.Label") TreeNode8.Name = "Nodo9" - TreeNode8.Text = "Virtual Machine Support" + TreeNode8.Text = LocalizationService.ForSection("Designer.Unattend")("VirtualMachine.Support.Label") TreeNode9.Name = "Nodo10" - TreeNode9.Text = "Wireless Networking" + TreeNode9.Text = LocalizationService.ForSection("Designer.Unattend")("Wireless.Networking.Label") TreeNode10.Name = "Nodo11" - TreeNode10.Text = "System Telemetry" + TreeNode10.Text = LocalizationService.ForSection("Designer.Unattend")("SystemTelemetry.Label") TreeNode11.Name = "Nodo12" - TreeNode11.Text = "Post-Installation Scripts" + TreeNode11.Text = LocalizationService.ForSection("Designer.Unattend")("PostInstall.Scripts.Label") TreeNode12.Name = "Nodo13" - TreeNode12.Text = "Component Settings" + TreeNode12.Text = LocalizationService.ForSection("Designer.Unattend")("Component.Settings.Label") TreeNode13.Name = "Nodo14" - TreeNode13.Text = "Finish" + TreeNode13.Text = LocalizationService.ForSection("Designer.Unattend")("Finish.Label") Me.StepsTreeView.Nodes.AddRange(New System.Windows.Forms.TreeNode() {TreeNode1, TreeNode2, TreeNode3, TreeNode4, TreeNode5, TreeNode6, TreeNode7, TreeNode8, TreeNode9, TreeNode10, TreeNode11, TreeNode12, TreeNode13}) Me.StepsTreeView.ShowLines = False Me.StepsTreeView.ShowPlusMinus = False @@ -549,7 +549,7 @@ Partial Class NewUnattendWiz Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(75, 15) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Editor mode" + Me.Label2.Text = LocalizationService.ForSection("Designer.Unattend")("EditorMode.Label") ' 'PictureBox2 ' @@ -581,7 +581,7 @@ Partial Class NewUnattendWiz Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(84, 15) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Express mode" + Me.Label1.Text = LocalizationService.ForSection("Designer.Unattend")("ExpressMode.Label") ' 'PictureBox1 ' @@ -660,7 +660,7 @@ Partial Class NewUnattendWiz Me.Label59.Name = "Label59" Me.Label59.Size = New System.Drawing.Size(320, 13) Me.Label59.TabIndex = 16 - Me.Label59.Text = "NOTE: you will return to this wizard after applying the answer file" + Me.Label59.Text = LocalizationService.ForSection("Designer.Unattend")("Notereturn.Applying.Label") ' 'LinkLabel7 ' @@ -672,7 +672,7 @@ Partial Class NewUnattendWiz Me.LinkLabel7.Size = New System.Drawing.Size(80, 13) Me.LinkLabel7.TabIndex = 15 Me.LinkLabel7.TabStop = True - Me.LinkLabel7.Text = "Edit answer file" + Me.LinkLabel7.Text = LocalizationService.ForSection("Designer.Unattend")("EditAnswerFile.Link") ' 'LinkLabel6 ' @@ -684,7 +684,7 @@ Partial Class NewUnattendWiz Me.LinkLabel6.Size = New System.Drawing.Size(218, 13) Me.LinkLabel6.TabIndex = 15 Me.LinkLabel6.TabStop = True - Me.LinkLabel6.Text = "Open with Windows System Image Manager" + Me.LinkLabel6.Text = LocalizationService.ForSection("Designer.Unattend")("Open.Windows.System.Link") ' 'LinkLabel4 ' @@ -696,7 +696,7 @@ Partial Class NewUnattendWiz Me.LinkLabel4.Size = New System.Drawing.Size(160, 13) Me.LinkLabel4.TabIndex = 15 Me.LinkLabel4.TabStop = True - Me.LinkLabel4.Text = "Apply unattended answer file..." + Me.LinkLabel4.Text = LocalizationService.ForSection("Designer.Unattend")("Apply.Unattended.Link") ' 'LinkLabel3 ' @@ -708,7 +708,7 @@ Partial Class NewUnattendWiz Me.LinkLabel3.Size = New System.Drawing.Size(141, 13) Me.LinkLabel3.TabIndex = 15 Me.LinkLabel3.TabStop = True - Me.LinkLabel3.Text = "Open the location of the file" + Me.LinkLabel3.Text = LocalizationService.ForSection("Designer.Unattend")("Open.Location.File.Link") ' 'LinkLabel2 ' @@ -720,7 +720,7 @@ Partial Class NewUnattendWiz Me.LinkLabel2.Size = New System.Drawing.Size(136, 13) Me.LinkLabel2.TabIndex = 15 Me.LinkLabel2.TabStop = True - Me.LinkLabel2.Text = "Create another answer file" + Me.LinkLabel2.Text = LocalizationService.ForSection("Designer.Unattend")("Create.Another.Link") ' 'Label58 ' @@ -729,8 +729,7 @@ Partial Class NewUnattendWiz Me.Label58.Name = "Label58" Me.Label58.Size = New System.Drawing.Size(516, 13) Me.Label58.TabIndex = 14 - Me.Label58.Text = "The unattended answer file has been created at the location you specified. What d" & _ - "o you want to do now?" + Me.Label58.Text = LocalizationService.ForSection("Designer.Unattend")("FileCreated.Message") ' 'FinishHeader ' @@ -740,7 +739,7 @@ Partial Class NewUnattendWiz Me.FinishHeader.Name = "FinishHeader" Me.FinishHeader.Size = New System.Drawing.Size(708, 51) Me.FinishHeader.TabIndex = 13 - Me.FinishHeader.Text = "Congratulations! You have finished" + Me.FinishHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Congratulations.Done.Label") ' 'UnattendProgressPanel ' @@ -770,7 +769,7 @@ Partial Class NewUnattendWiz Me.Label57.Name = "Label57" Me.Label57.Size = New System.Drawing.Size(183, 13) Me.Label57.TabIndex = 13 - Me.Label57.Text = "Please wait - this can take some time" + Me.Label57.Text = LocalizationService.ForSection("Designer.Unattend")("Wait.Take.Label") ' 'Label56 ' @@ -779,7 +778,7 @@ Partial Class NewUnattendWiz Me.Label56.Name = "Label56" Me.Label56.Size = New System.Drawing.Size(53, 13) Me.Label56.TabIndex = 13 - Me.Label56.Text = "Progress:" + Me.Label56.Text = LocalizationService.ForSection("Designer.Unattend")("Progress.Label") ' 'UnattendProgressHeader ' @@ -789,7 +788,7 @@ Partial Class NewUnattendWiz Me.UnattendProgressHeader.Name = "UnattendProgressHeader" Me.UnattendProgressHeader.Size = New System.Drawing.Size(708, 51) Me.UnattendProgressHeader.TabIndex = 12 - Me.UnattendProgressHeader.Text = "Please wait while your unattended answer file is being created..." + Me.UnattendProgressHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Wait.UnattendAnswer.Button") ' 'FinalReviewPanel ' @@ -812,8 +811,7 @@ Partial Class NewUnattendWiz Me.Label54.Name = "Label54" Me.Label54.Size = New System.Drawing.Size(904, 35) Me.Label54.TabIndex = 15 - Me.Label54.Text = "If something is not right, you will need to go back to that page in order to chan" & _ - "ge the setting. Do not worry: other settings will be kept intact" + Me.Label54.Text = LocalizationService.ForSection("Designer.Unattend")("Something.Right.Go.Message") ' 'CheckBox17 ' @@ -827,7 +825,7 @@ Partial Class NewUnattendWiz Me.CheckBox17.Name = "CheckBox17" Me.CheckBox17.Size = New System.Drawing.Size(70, 23) Me.CheckBox17.TabIndex = 14 - Me.CheckBox17.Text = "Word wrap" + Me.CheckBox17.Text = LocalizationService.ForSection("Designer.Unattend")("WordWrap.CheckBox") Me.CheckBox17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.CheckBox17.UseVisualStyleBackColor = True ' @@ -853,7 +851,7 @@ Partial Class NewUnattendWiz Me.FinalReviewHeader.Name = "FinalReviewHeader" Me.FinalReviewHeader.Size = New System.Drawing.Size(708, 51) Me.FinalReviewHeader.TabIndex = 12 - Me.FinalReviewHeader.Text = "Review your settings for the unattended answer file" + Me.FinalReviewHeader.Text = LocalizationService.ForSection("Designer.Unattend")("ReviewSettings.Label") ' 'ComponentPanel ' @@ -911,7 +909,7 @@ Partial Class NewUnattendWiz Me.Label65.Name = "Label65" Me.Label65.Size = New System.Drawing.Size(866, 44) Me.Label65.TabIndex = 1 - Me.Label65.Text = "Don't want to add custom components? Click Next to skip this step." + Me.Label65.Text = LocalizationService.ForSection("Designer.Unattend")("Don.Twant.Add.Label") Me.Label65.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label15 @@ -922,8 +920,7 @@ Partial Class NewUnattendWiz Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(866, 44) Me.Label15.TabIndex = 1 - Me.Label15.Text = "No custom components have been added yet. Click the plus symbol on the top of thi" & _ - "s section to add a new component." + Me.Label15.Text = LocalizationService.ForSection("Designer.Unattend")("No.Custom.None.Message") Me.Label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'LinkLabel5 @@ -937,7 +934,7 @@ Partial Class NewUnattendWiz Me.LinkLabel5.Size = New System.Drawing.Size(861, 27) Me.LinkLabel5.TabIndex = 15 Me.LinkLabel5.TabStop = True - Me.LinkLabel5.Text = "Learn more about custom components in Windows" + Me.LinkLabel5.Text = LocalizationService.ForSection("Designer.Unattend")("Learn.Custom.Link") Me.LinkLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'PictureBox4 @@ -1015,7 +1012,7 @@ Partial Class NewUnattendWiz Me.Label64.Name = "Label64" Me.Label64.Size = New System.Drawing.Size(47, 15) Me.Label64.TabIndex = 0 - Me.Label64.Text = "Pass:" + Me.Label64.Text = LocalizationService.ForSection("Designer.Unattend")("Pass.Label") ' 'Panel2 ' @@ -1044,7 +1041,7 @@ Partial Class NewUnattendWiz Me.Label61.Name = "Label61" Me.Label61.Size = New System.Drawing.Size(110, 15) Me.Label61.TabIndex = 0 - Me.Label61.Text = "Component:" + Me.Label61.Text = LocalizationService.ForSection("Designer.Unattend")("Component.Label") ' 'ComponentSwitcherPanel ' @@ -1134,7 +1131,7 @@ Partial Class NewUnattendWiz Me.Label60.Name = "Label60" Me.Label60.Size = New System.Drawing.Size(690, 15) Me.Label60.TabIndex = 0 - Me.Label60.Text = "Component {{current}} of {{count}}" + Me.Label60.Text = LocalizationService.ForSection("Designer.Unattend")("Component.Count.Label") Me.Label60.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.Label60.Visible = False ' @@ -1149,7 +1146,7 @@ Partial Class NewUnattendWiz Me.LinkLabel9.Size = New System.Drawing.Size(168, 13) Me.LinkLabel9.TabIndex = 15 Me.LinkLabel9.TabStop = True - Me.LinkLabel9.Text = "Learn more about this component" + Me.LinkLabel9.Text = LocalizationService.ForSection("Designer.Unattend")("Learn.Component.Link") Me.LinkLabel9.Visible = False ' 'Label52 @@ -1161,9 +1158,7 @@ Partial Class NewUnattendWiz Me.Label52.Name = "Label52" Me.Label52.Size = New System.Drawing.Size(912, 42) Me.Label52.TabIndex = 12 - Me.Label52.Text = "In this screen you can add additional components that you want to configure in yo" & _ - "ur unattended answer file. Add new components, specify their passes and their da" & _ - "ta, and click Next." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) + Me.Label52.Text = LocalizationService.ForSection("Designer.Unattend")("Screen.Add.Message") ' 'ComponentHeader ' @@ -1173,7 +1168,7 @@ Partial Class NewUnattendWiz Me.ComponentHeader.Name = "ComponentHeader" Me.ComponentHeader.Size = New System.Drawing.Size(708, 51) Me.ComponentHeader.TabIndex = 11 - Me.ComponentHeader.Text = "Configure additional components" + Me.ComponentHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Components.Label") ' 'PostInstallPanel ' @@ -1196,7 +1191,7 @@ Partial Class NewUnattendWiz Me.CheckBox22.Name = "CheckBox22" Me.CheckBox22.Size = New System.Drawing.Size(120, 17) Me.CheckBox22.TabIndex = 14 - Me.CheckBox22.Text = "Hide script windows" + Me.CheckBox22.Text = LocalizationService.ForSection("Designer.Unattend")("Hide.Script.Windows.CheckBox") Me.CheckBox22.UseVisualStyleBackColor = True ' 'CheckBox20 @@ -1207,7 +1202,7 @@ Partial Class NewUnattendWiz Me.CheckBox20.Name = "CheckBox20" Me.CheckBox20.Size = New System.Drawing.Size(270, 17) Me.CheckBox20.TabIndex = 13 - Me.CheckBox20.Text = "Restart Windows Explorer after running the scripts" + Me.CheckBox20.Text = LocalizationService.ForSection("Designer.Unattend")("RestartExplorer.CheckBox") Me.CheckBox20.UseVisualStyleBackColor = True ' 'ScriptEditorContainerPanel @@ -1275,7 +1270,7 @@ Partial Class NewUnattendWiz Me.Button20.Name = "Button20" Me.Button20.Size = New System.Drawing.Size(256, 23) Me.Button20.TabIndex = 3 - Me.Button20.Text = "Import a predefined Starter Script..." + Me.Button20.Text = LocalizationService.ForSection("Designer.Unattend")("Import.StarterScript.Button") Me.Button20.UseVisualStyleBackColor = True ' 'Button19 @@ -1286,7 +1281,7 @@ Partial Class NewUnattendWiz Me.Button19.Name = "Button19" Me.Button19.Size = New System.Drawing.Size(256, 23) Me.Button19.TabIndex = 3 - Me.Button19.Text = "Import a Starter Script in file system..." + Me.Button19.Text = LocalizationService.ForSection("Designer.Unattend")("ImportScript.Button") Me.Button19.UseVisualStyleBackColor = True ' 'ComboBox16 @@ -1306,7 +1301,7 @@ Partial Class NewUnattendWiz Me.Label67.Name = "Label67" Me.Label67.Size = New System.Drawing.Size(58, 13) Me.Label67.TabIndex = 1 - Me.Label67.Text = "Language:" + Me.Label67.Text = LocalizationService.ForSection("Designer.Unattend")("Language.Label") ' 'Button4 ' @@ -1316,7 +1311,7 @@ Partial Class NewUnattendWiz Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(110, 23) Me.Button4.TabIndex = 0 - Me.Button4.Text = "Open script..." + Me.Button4.Text = LocalizationService.ForSection("Designer.Unattend")("OpenScript.Button") Me.Button4.UseVisualStyleBackColor = True ' 'NoSpecifiedScriptsPanel @@ -1338,8 +1333,7 @@ Partial Class NewUnattendWiz Me.Label68.Name = "Label68" Me.Label68.Size = New System.Drawing.Size(665, 44) Me.Label68.TabIndex = 1 - Me.Label68.Text = "No scripts have been added to this stage yet. Click the plus symbol on the top of" & _ - " this section to add a new script." + Me.Label68.Text = LocalizationService.ForSection("Designer.Unattend")("Scripts.Have.None.Message") Me.Label68.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'PictureBox5 @@ -1452,7 +1446,7 @@ Partial Class NewUnattendWiz Me.Label66.Name = "Label66" Me.Label66.Size = New System.Drawing.Size(426, 15) Me.Label66.TabIndex = 0 - Me.Label66.Text = "Script {{current}} of {{count}}" + Me.Label66.Text = LocalizationService.ForSection("Designer.Unattend")("Script.Count.Label") Me.Label66.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'ScriptStagePanel @@ -1486,7 +1480,7 @@ Partial Class NewUnattendWiz Me.StageEditorDescriptionLabel.Padding = New System.Windows.Forms.Padding(8, 12, 0, 0) Me.StageEditorDescriptionLabel.Size = New System.Drawing.Size(226, 42) Me.StageEditorDescriptionLabel.TabIndex = 3 - Me.StageEditorDescriptionLabel.Text = "To configure a script to run at a specific stage, click the stage:" + Me.StageEditorDescriptionLabel.Text = LocalizationService.ForSection("Designer.Unattend")("ScriptRun.Description") ' 'StageLink1 ' @@ -1500,7 +1494,7 @@ Partial Class NewUnattendWiz Me.StageLink1.Size = New System.Drawing.Size(166, 27) Me.StageLink1.TabIndex = 0 Me.StageLink1.TabStop = True - Me.StageLink1.Text = "During system configuration" + Me.StageLink1.Text = LocalizationService.ForSection("Designer.Unattend")("System.Config.Link") ' 'StageLink2 ' @@ -1514,7 +1508,7 @@ Partial Class NewUnattendWiz Me.StageLink2.Size = New System.Drawing.Size(156, 27) Me.StageLink2.TabIndex = 1 Me.StageLink2.TabStop = True - Me.StageLink2.Text = "When the first user logs on" + Me.StageLink2.Text = LocalizationService.ForSection("Designer.Unattend")("First.User.Logs.Link") ' 'StageLink3 ' @@ -1528,7 +1522,7 @@ Partial Class NewUnattendWiz Me.StageLink3.Size = New System.Drawing.Size(232, 27) Me.StageLink3.TabIndex = 2 Me.StageLink3.TabStop = True - Me.StageLink3.Text = "Whenever a user logs on for the first time" + Me.StageLink3.Text = LocalizationService.ForSection("Designer.Unattend")("Whenever.User.Logs.Link") ' 'Label51 ' @@ -1539,7 +1533,7 @@ Partial Class NewUnattendWiz Me.Label51.Name = "Label51" Me.Label51.Size = New System.Drawing.Size(912, 69) Me.Label51.TabIndex = 11 - Me.Label51.Text = resources.GetString("Label51.Text") + Me.Label51.Text = LocalizationService.ForSection("Designer.Unattend")("ScriptScreenHelp.Message") ' 'PostInstallHeader ' @@ -1549,7 +1543,7 @@ Partial Class NewUnattendWiz Me.PostInstallHeader.Name = "PostInstallHeader" Me.PostInstallHeader.Size = New System.Drawing.Size(708, 51) Me.PostInstallHeader.TabIndex = 10 - Me.PostInstallHeader.Text = "What will be run after installation?" + Me.PostInstallHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Run.Install.Label") ' 'SystemTelemetryPanel ' @@ -1580,7 +1574,7 @@ Partial Class NewUnattendWiz Me.RadioButton27.Name = "RadioButton27" Me.RadioButton27.Size = New System.Drawing.Size(106, 17) Me.RadioButton27.TabIndex = 0 - Me.RadioButton27.Text = "Enable telemetry" + Me.RadioButton27.Text = LocalizationService.ForSection("Designer.Unattend")("EnableTelemetry.RadioButton") Me.RadioButton27.UseVisualStyleBackColor = True ' 'RadioButton26 @@ -1592,7 +1586,7 @@ Partial Class NewUnattendWiz Me.RadioButton26.Size = New System.Drawing.Size(108, 17) Me.RadioButton26.TabIndex = 0 Me.RadioButton26.TabStop = True - Me.RadioButton26.Text = "Disable telemetry" + Me.RadioButton26.Text = LocalizationService.ForSection("Designer.Unattend")("DisableTelemetry.RadioButton") Me.RadioButton26.UseVisualStyleBackColor = True ' 'CheckBox16 @@ -1603,7 +1597,7 @@ Partial Class NewUnattendWiz Me.CheckBox16.Name = "CheckBox16" Me.CheckBox16.Size = New System.Drawing.Size(276, 17) Me.CheckBox16.TabIndex = 12 - Me.CheckBox16.Text = "I want to configure these settings during installation" + Me.CheckBox16.Text = LocalizationService.ForSection("Designer.Unattend")("ConfigureSettings.CheckBox") Me.CheckBox16.UseVisualStyleBackColor = True ' 'SystemTelemetryHeader @@ -1614,7 +1608,7 @@ Partial Class NewUnattendWiz Me.SystemTelemetryHeader.Name = "SystemTelemetryHeader" Me.SystemTelemetryHeader.Size = New System.Drawing.Size(708, 51) Me.SystemTelemetryHeader.TabIndex = 10 - Me.SystemTelemetryHeader.Text = "Control and limit how much information is sent to Microsoft and third-parties" + Me.SystemTelemetryHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Control.Limit.Much.Message") ' 'NetworkConnectionPanel ' @@ -1656,7 +1650,7 @@ Partial Class NewUnattendWiz Me.RadioButton25.Size = New System.Drawing.Size(259, 17) Me.RadioButton25.TabIndex = 4 Me.RadioButton25.TabStop = True - Me.RadioButton25.Text = "Configure settings for the wireless network now:" + Me.RadioButton25.Text = LocalizationService.ForSection("Designer.Unattend")("WirelessSettings.RadioButton") Me.RadioButton25.UseVisualStyleBackColor = True ' 'WirelessNetworkSettingsPanel @@ -1686,14 +1680,14 @@ Partial Class NewUnattendWiz Me.LinkLabel8.Size = New System.Drawing.Size(206, 13) Me.LinkLabel8.TabIndex = 4 Me.LinkLabel8.TabStop = True - Me.LinkLabel8.Text = "Access router configuration to learn more" + Me.LinkLabel8.Text = LocalizationService.ForSection("Designer.Unattend")("Access.Router.Config.Link") ' 'ComboBox13 ' Me.ComboBox13.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox13.FormattingEnabled = True - Me.ComboBox13.Items.AddRange(New Object() {"Open (least secure)", "WPA2-PSK", "WPA3-SAE"}) + Me.ComboBox13.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Unattend")("Open.Least.Secure.Item"), LocalizationService.ForSection("Designer.Unattend")("Wpapsk.Item"), LocalizationService.ForSection("Designer.Unattend")("Wpasae.Item")}) Me.ComboBox13.Location = New System.Drawing.Point(277, 66) Me.ComboBox13.Name = "ComboBox13" Me.ComboBox13.Size = New System.Drawing.Size(489, 21) @@ -1727,7 +1721,7 @@ Partial Class NewUnattendWiz Me.CheckBox15.Name = "CheckBox15" Me.CheckBox15.Size = New System.Drawing.Size(685, 17) Me.CheckBox15.TabIndex = 1 - Me.CheckBox15.Text = "Connect even if not broadcasting" + Me.CheckBox15.Text = LocalizationService.ForSection("Designer.Unattend")("ConnectHidden.CheckBox") Me.CheckBox15.UseVisualStyleBackColor = True ' 'Label49 @@ -1737,7 +1731,7 @@ Partial Class NewUnattendWiz Me.Label49.Name = "Label49" Me.Label49.Size = New System.Drawing.Size(193, 13) Me.Label49.TabIndex = 0 - Me.Label49.Text = "Password:" + Me.Label49.Text = LocalizationService.ForSection("Designer.Unattend")("Password.Label") ' 'Label48 ' @@ -1746,7 +1740,7 @@ Partial Class NewUnattendWiz Me.Label48.Name = "Label48" Me.Label48.Size = New System.Drawing.Size(193, 13) Me.Label48.TabIndex = 0 - Me.Label48.Text = "Authentication technology:" + Me.Label48.Text = LocalizationService.ForSection("Designer.Unattend")("AuthTechnology.Label") ' 'Label50 ' @@ -1757,8 +1751,7 @@ Partial Class NewUnattendWiz Me.Label50.Name = "Label50" Me.Label50.Size = New System.Drawing.Size(489, 48) Me.Label50.TabIndex = 0 - Me.Label50.Text = "Please choose the technology that both the wireless router and your network adapt" & _ - "er support." + Me.Label50.Text = LocalizationService.ForSection("Designer.Unattend")("Technology.Both.Choose.Label") ' 'Label47 ' @@ -1767,7 +1760,7 @@ Partial Class NewUnattendWiz Me.Label47.Name = "Label47" Me.Label47.Size = New System.Drawing.Size(193, 13) Me.Label47.TabIndex = 0 - Me.Label47.Text = "SSID (Network Name):" + Me.Label47.Text = LocalizationService.ForSection("Designer.Unattend")("SsidnetworkName.Label") ' 'RadioButton30 ' @@ -1776,7 +1769,7 @@ Partial Class NewUnattendWiz Me.RadioButton30.Name = "RadioButton30" Me.RadioButton30.Size = New System.Drawing.Size(110, 17) Me.RadioButton30.TabIndex = 4 - Me.RadioButton30.Text = "Skip configuration" + Me.RadioButton30.Text = LocalizationService.ForSection("Designer.Unattend")("SkipConfig.RadioButton") Me.RadioButton30.UseVisualStyleBackColor = True ' 'Label55 @@ -1787,8 +1780,7 @@ Partial Class NewUnattendWiz Me.Label55.Name = "Label55" Me.Label55.Size = New System.Drawing.Size(436, 36) Me.Label55.TabIndex = 0 - Me.Label55.Text = "Choose this option if you either don't have a network adapter or plan to use Ethe" & _ - "rnet" + Me.Label55.Text = LocalizationService.ForSection("Designer.Unattend")("Option.Either.Choose.Label") ' 'Label53 ' @@ -1810,7 +1802,7 @@ Partial Class NewUnattendWiz Me.CheckBox14.Name = "CheckBox14" Me.CheckBox14.Size = New System.Drawing.Size(276, 17) Me.CheckBox14.TabIndex = 11 - Me.CheckBox14.Text = "I want to configure these settings during installation" + Me.CheckBox14.Text = LocalizationService.ForSection("Designer.Unattend")("ConfigureSettings.CheckBox") Me.CheckBox14.UseVisualStyleBackColor = True ' 'NetworkConnectionHeader @@ -1821,7 +1813,7 @@ Partial Class NewUnattendWiz Me.NetworkConnectionHeader.Name = "NetworkConnectionHeader" Me.NetworkConnectionHeader.Size = New System.Drawing.Size(708, 51) Me.NetworkConnectionHeader.TabIndex = 9 - Me.NetworkConnectionHeader.Text = "Configure wireless network settings and get connected online" + Me.NetworkConnectionHeader.Text = LocalizationService.ForSection("Designer.Unattend")("WirelessSettings.Label") ' 'VirtualMachinePanel ' @@ -1855,19 +1847,19 @@ Partial Class NewUnattendWiz Me.Label46.Name = "Label46" Me.Label46.Size = New System.Drawing.Size(345, 52) Me.Label46.TabIndex = 2 - Me.Label46.Text = resources.GetString("Label46.Text") + Me.Label46.Text = LocalizationService.ForSection("Designer.Unattend")("Guest.Additions.Message") ' 'ComboBox8 ' Me.ComboBox8.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.ComboBox8.FormattingEnabled = True - Me.ComboBox8.Items.AddRange(New Object() {"VirtualBox Guest Additions", "VMware Tools", "VirtIO Guest Tools", "Parallels Tools"}) + Me.ComboBox8.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Unattend")("Virtual.Box.Guest.Item"), LocalizationService.ForSection("Designer.Unattend")("VmwareTools.Item"), LocalizationService.ForSection("Designer.Unattend")("Virt.Ioguest.Tools.Item"), LocalizationService.ForSection("Designer.Unattend")("ParallelsTools.Item")}) Me.ComboBox8.Location = New System.Drawing.Point(162, 19) Me.ComboBox8.Name = "ComboBox8" Me.ComboBox8.Size = New System.Drawing.Size(695, 21) Me.ComboBox8.TabIndex = 1 - Me.ComboBox8.Text = "VirtIO Guest Tools" + Me.ComboBox8.Text = LocalizationService.ForSection("Designer.Unattend")("Virt.Ioguest.Tools.Item") ' 'Label45 ' @@ -1876,7 +1868,7 @@ Partial Class NewUnattendWiz Me.Label45.Name = "Label45" Me.Label45.Size = New System.Drawing.Size(124, 13) Me.Label45.TabIndex = 0 - Me.Label45.Text = "Virtual Machine Support:" + Me.Label45.Text = LocalizationService.ForSection("Designer.Unattend")("VirtualMachine.Label") ' 'RadioButton24 ' @@ -1887,7 +1879,7 @@ Partial Class NewUnattendWiz Me.RadioButton24.Size = New System.Drawing.Size(303, 17) Me.RadioButton24.TabIndex = 10 Me.RadioButton24.TabStop = True - Me.RadioButton24.Text = "No, I plan on using the target installation on a real system" + Me.RadioButton24.Text = LocalizationService.ForSection("Designer.Unattend")("Iplan.Target.RadioButton") Me.RadioButton24.UseVisualStyleBackColor = True ' 'RadioButton23 @@ -1897,7 +1889,7 @@ Partial Class NewUnattendWiz Me.RadioButton23.Name = "RadioButton23" Me.RadioButton23.Size = New System.Drawing.Size(318, 17) Me.RadioButton23.TabIndex = 10 - Me.RadioButton23.Text = "Yes, I want to use the target installation on a virtual machine" + Me.RadioButton23.Text = LocalizationService.ForSection("Designer.Unattend")("Iwant.Target.RadioButton") Me.RadioButton23.UseVisualStyleBackColor = True ' 'VirtualMachineHeader @@ -1908,7 +1900,7 @@ Partial Class NewUnattendWiz Me.VirtualMachineHeader.Name = "VirtualMachineHeader" Me.VirtualMachineHeader.Size = New System.Drawing.Size(708, 51) Me.VirtualMachineHeader.TabIndex = 9 - Me.VirtualMachineHeader.Text = "Do you want to add enhanced support from your virtual machine solution?" + Me.VirtualMachineHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Add.Enhanced.Support.Message") ' 'AccountLockoutPanel ' @@ -1930,8 +1922,7 @@ Partial Class NewUnattendWiz Me.Label44.Name = "Label44" Me.Label44.Size = New System.Drawing.Size(443, 13) Me.Label44.TabIndex = 13 - Me.Label44.Text = "Checking this option will make the target installation more vulnerable to brute-f" & _ - "orce attacks" + Me.Label44.Text = LocalizationService.ForSection("Designer.Unattend")("Checking.Option.Target.Label") ' 'EnabledAccountLockoutPanel ' @@ -1971,7 +1962,7 @@ Partial Class NewUnattendWiz Me.Label41.Name = "Label41" Me.Label41.Size = New System.Drawing.Size(227, 13) Me.Label41.TabIndex = 0 - Me.Label41.Text = "After the following amount of failed attempts:" + Me.Label41.Text = LocalizationService.ForSection("Designer.Unattend")("Amount.Failed.Attempts.Label") ' 'Label43 ' @@ -1981,7 +1972,7 @@ Partial Class NewUnattendWiz Me.Label43.Name = "Label43" Me.Label43.Size = New System.Drawing.Size(289, 13) Me.Label43.TabIndex = 0 - Me.Label43.Text = "After the following amount of minutes, unlock the account:" + Me.Label43.Text = LocalizationService.ForSection("Designer.Unattend")("UnlockMinutes.Label") ' 'NumericUpDown8 ' @@ -2000,7 +1991,7 @@ Partial Class NewUnattendWiz Me.Label40.Name = "Label40" Me.Label40.Size = New System.Drawing.Size(115, 13) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Lock out an account..." + Me.Label40.Text = LocalizationService.ForSection("Designer.Unattend")("Lock.Out.Account.Label") ' 'NumericUpDown6 ' @@ -2019,7 +2010,7 @@ Partial Class NewUnattendWiz Me.Label42.Name = "Label42" Me.Label42.Size = New System.Drawing.Size(207, 13) Me.Label42.TabIndex = 0 - Me.Label42.Text = "Within the following timeframe in minutes:" + Me.Label42.Text = LocalizationService.ForSection("Designer.Unattend")("TimeframeMinutes.Label") ' 'NumericUpDown7 ' @@ -2038,7 +2029,7 @@ Partial Class NewUnattendWiz Me.RadioButton22.Name = "RadioButton22" Me.RadioButton22.Size = New System.Drawing.Size(247, 17) Me.RadioButton22.TabIndex = 9 - Me.RadioButton22.Text = "Continue with custom Account Lockout policies" + Me.RadioButton22.Text = LocalizationService.ForSection("Designer.Unattend")("CustomLockout.RadioButton") Me.RadioButton22.UseVisualStyleBackColor = True ' 'RadioButton21 @@ -2050,7 +2041,7 @@ Partial Class NewUnattendWiz Me.RadioButton21.Size = New System.Drawing.Size(247, 17) Me.RadioButton21.TabIndex = 9 Me.RadioButton21.TabStop = True - Me.RadioButton21.Text = "Continue with default Account Lockout policies" + Me.RadioButton21.Text = LocalizationService.ForSection("Designer.Unattend")("DefaultLockout.RadioButton") Me.RadioButton21.UseVisualStyleBackColor = True ' 'CheckBox13 @@ -2061,7 +2052,7 @@ Partial Class NewUnattendWiz Me.CheckBox13.Name = "CheckBox13" Me.CheckBox13.Size = New System.Drawing.Size(90, 17) Me.CheckBox13.TabIndex = 11 - Me.CheckBox13.Text = "Disable policy" + Me.CheckBox13.Text = LocalizationService.ForSection("Designer.Unattend")("DisablePolicy.CheckBox") Me.CheckBox13.UseVisualStyleBackColor = True ' 'AccountLockdownHeader @@ -2072,7 +2063,7 @@ Partial Class NewUnattendWiz Me.AccountLockdownHeader.Name = "AccountLockdownHeader" Me.AccountLockdownHeader.Size = New System.Drawing.Size(708, 51) Me.AccountLockdownHeader.TabIndex = 8 - Me.AccountLockdownHeader.Text = "Configure Account Lockout policies for the target system" + Me.AccountLockdownHeader.Text = LocalizationService.ForSection("Designer.Unattend")("AccountLockout.Label") ' 'PWExpirationPanel ' @@ -2119,7 +2110,7 @@ Partial Class NewUnattendWiz Me.Label39.Name = "Label39" Me.Label39.Size = New System.Drawing.Size(30, 13) Me.Label39.TabIndex = 1 - Me.Label39.Text = "days" + Me.Label39.Text = LocalizationService.ForSection("Designer.Unattend")("Days.Label") ' 'NumericUpDown5 ' @@ -2139,7 +2130,7 @@ Partial Class NewUnattendWiz Me.RadioButton20.Name = "RadioButton20" Me.RadioButton20.Size = New System.Drawing.Size(316, 17) Me.RadioButton20.TabIndex = 0 - Me.RadioButton20.Text = "Passwords should expire after the following number of days:" + Me.RadioButton20.Text = LocalizationService.ForSection("Designer.Unattend")("ExpirePassword.RadioButton") Me.RadioButton20.UseVisualStyleBackColor = True ' 'RadioButton19 @@ -2151,7 +2142,7 @@ Partial Class NewUnattendWiz Me.RadioButton19.Size = New System.Drawing.Size(211, 17) Me.RadioButton19.TabIndex = 0 Me.RadioButton19.TabStop = True - Me.RadioButton19.Text = "Passwords should expire after 42 days" + Me.RadioButton19.Text = LocalizationService.ForSection("Designer.Unattend")("Expire42Days.RadioButton") Me.RadioButton19.UseVisualStyleBackColor = True ' 'RadioButton18 @@ -2161,7 +2152,7 @@ Partial Class NewUnattendWiz Me.RadioButton18.Name = "RadioButton18" Me.RadioButton18.Size = New System.Drawing.Size(431, 17) Me.RadioButton18.TabIndex = 8 - Me.RadioButton18.Text = "Passwords should expire after a certain amount of days (not recommended by NIST)" + Me.RadioButton18.Text = LocalizationService.ForSection("Designer.Unattend")("PasswordsExpire.RadioButton") Me.RadioButton18.UseVisualStyleBackColor = True ' 'RadioButton17 @@ -2173,7 +2164,7 @@ Partial Class NewUnattendWiz Me.RadioButton17.Size = New System.Drawing.Size(174, 17) Me.RadioButton17.TabIndex = 8 Me.RadioButton17.TabStop = True - Me.RadioButton17.Text = "Passwords should never expire" + Me.RadioButton17.Text = LocalizationService.ForSection("Designer.Unattend")("NeverExpire.RadioButton") Me.RadioButton17.UseVisualStyleBackColor = True ' 'PWExpirationHeader @@ -2184,7 +2175,7 @@ Partial Class NewUnattendWiz Me.PWExpirationHeader.Name = "PWExpirationHeader" Me.PWExpirationHeader.Size = New System.Drawing.Size(708, 51) Me.PWExpirationHeader.TabIndex = 7 - Me.PWExpirationHeader.Text = "Should passwords expire?" + Me.PWExpirationHeader.Text = LocalizationService.ForSection("Designer.Unattend")("PasswordsExpire.Label") ' 'UserAccountPanel ' @@ -2207,7 +2198,7 @@ Partial Class NewUnattendWiz Me.Label34.Name = "Label34" Me.Label34.Size = New System.Drawing.Size(286, 13) Me.Label34.TabIndex = 11 - Me.Label34.Text = "Uncheck this only if you want to set up local accounts now" + Me.Label34.Text = LocalizationService.ForSection("Designer.NewUnattend.LocalAccounts")("OnlyNow.Label") ' 'CheckBox6 ' @@ -2219,7 +2210,7 @@ Partial Class NewUnattendWiz Me.CheckBox6.Name = "CheckBox6" Me.CheckBox6.Size = New System.Drawing.Size(276, 17) Me.CheckBox6.TabIndex = 10 - Me.CheckBox6.Text = "I want to configure these settings during installation" + Me.CheckBox6.Text = LocalizationService.ForSection("Designer.Unattend")("ConfigureSettings.CheckBox") Me.CheckBox6.UseVisualStyleBackColor = True ' 'ManualAccountPanel @@ -2482,7 +2473,7 @@ Partial Class NewUnattendWiz Me.Label35.Name = "Label35" Me.Label35.Size = New System.Drawing.Size(158, 24) Me.Label35.TabIndex = 0 - Me.Label35.Text = "Account name:" + Me.Label35.Text = LocalizationService.ForSection("Designer.Unattend")("AccountName.Label") Me.Label35.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label38 @@ -2492,7 +2483,7 @@ Partial Class NewUnattendWiz Me.Label38.Name = "Label38" Me.Label38.Size = New System.Drawing.Size(158, 24) Me.Label38.TabIndex = 2 - Me.Label38.Text = "Account 1:" + Me.Label38.Text = LocalizationService.ForSection("Designer.Unattend")("Account.Label") Me.Label38.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'CheckBox8 @@ -2502,7 +2493,7 @@ Partial Class NewUnattendWiz Me.CheckBox8.Name = "CheckBox8" Me.CheckBox8.Size = New System.Drawing.Size(158, 18) Me.CheckBox8.TabIndex = 3 - Me.CheckBox8.Text = "Account 2:" + Me.CheckBox8.Text = LocalizationService.ForSection("Designer.Unattend")("Account.Option2.CheckBox") Me.CheckBox8.UseVisualStyleBackColor = True ' 'CheckBox9 @@ -2512,7 +2503,7 @@ Partial Class NewUnattendWiz Me.CheckBox9.Name = "CheckBox9" Me.CheckBox9.Size = New System.Drawing.Size(158, 18) Me.CheckBox9.TabIndex = 3 - Me.CheckBox9.Text = "Account 3:" + Me.CheckBox9.Text = LocalizationService.ForSection("Designer.Unattend")("Account.Option3.CheckBox") Me.CheckBox9.UseVisualStyleBackColor = True ' 'CheckBox10 @@ -2522,7 +2513,7 @@ Partial Class NewUnattendWiz Me.CheckBox10.Name = "CheckBox10" Me.CheckBox10.Size = New System.Drawing.Size(158, 18) Me.CheckBox10.TabIndex = 3 - Me.CheckBox10.Text = "Account 4:" + Me.CheckBox10.Text = LocalizationService.ForSection("Designer.Unattend")("Account.Option4.CheckBox") Me.CheckBox10.UseVisualStyleBackColor = True ' 'CheckBox11 @@ -2532,7 +2523,7 @@ Partial Class NewUnattendWiz Me.CheckBox11.Name = "CheckBox11" Me.CheckBox11.Size = New System.Drawing.Size(158, 20) Me.CheckBox11.TabIndex = 3 - Me.CheckBox11.Text = "Account 5:" + Me.CheckBox11.Text = LocalizationService.ForSection("Designer.Unattend")("Account.Option5.CheckBox") Me.CheckBox11.UseVisualStyleBackColor = True ' 'TextBox4 @@ -2553,7 +2544,7 @@ Partial Class NewUnattendWiz Me.UserListOverviewLabel.Name = "UserListOverviewLabel" Me.UserListOverviewLabel.Size = New System.Drawing.Size(158, 24) Me.UserListOverviewLabel.TabIndex = 25 - Me.UserListOverviewLabel.Text = "User accounts:" + Me.UserListOverviewLabel.Text = LocalizationService.ForSection("Designer.Unattend")("UserList.Label") Me.UserListOverviewLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComboBox12 @@ -2623,7 +2614,7 @@ Partial Class NewUnattendWiz Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(161, 24) Me.Label37.TabIndex = 1 - Me.Label37.Text = "Account group:" + Me.Label37.Text = LocalizationService.ForSection("Designer.Unattend")("AccountGroup.Label") Me.Label37.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label36 @@ -2634,7 +2625,7 @@ Partial Class NewUnattendWiz Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(158, 24) Me.Label36.TabIndex = 1 - Me.Label36.Text = "Account password:" + Me.Label36.Text = LocalizationService.ForSection("Designer.Unattend")("AccountPassword.Label") Me.Label36.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'TextBox6 @@ -2694,7 +2685,7 @@ Partial Class NewUnattendWiz Me.Label69.Name = "Label69" Me.Label69.Size = New System.Drawing.Size(158, 24) Me.Label69.TabIndex = 1 - Me.Label69.Text = "Account display name:" + Me.Label69.Text = LocalizationService.ForSection("Designer.Unattend")("Account.Display.Name.Label") Me.Label69.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'DisplayNamePanel1 @@ -2738,7 +2729,7 @@ Partial Class NewUnattendWiz Me.GroupBox1.Size = New System.Drawing.Size(829, 140) Me.GroupBox1.TabIndex = 4 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "First log on" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.Unattend")("FirstLog.Group") ' 'AutoLogonSettingsPanel ' @@ -2771,7 +2762,7 @@ Partial Class NewUnattendWiz Me.RadioButton16.Name = "RadioButton16" Me.RadioButton16.Size = New System.Drawing.Size(311, 17) Me.RadioButton16.TabIndex = 0 - Me.RadioButton16.Text = "Log on to the built-in administrator account, with password:" + Me.RadioButton16.Text = LocalizationService.ForSection("Designer.Unattend")("Log.Built.Admin.RadioButton") Me.RadioButton16.UseVisualStyleBackColor = True ' 'RadioButton15 @@ -2783,7 +2774,7 @@ Partial Class NewUnattendWiz Me.RadioButton15.Size = New System.Drawing.Size(258, 17) Me.RadioButton15.TabIndex = 0 Me.RadioButton15.TabStop = True - Me.RadioButton15.Text = "Log on to the first administrator account created" + Me.RadioButton15.Text = LocalizationService.ForSection("Designer.Unattend")("Log.First.Admin.RadioButton") Me.RadioButton15.UseVisualStyleBackColor = True ' 'CheckBox12 @@ -2793,7 +2784,7 @@ Partial Class NewUnattendWiz Me.CheckBox12.Name = "CheckBox12" Me.CheckBox12.Size = New System.Drawing.Size(260, 17) Me.CheckBox12.TabIndex = 0 - Me.CheckBox12.Text = "Log on automatically to an Administrator account" + Me.CheckBox12.Text = LocalizationService.ForSection("Designer.Unattend")("Auto.Login.Admin.CheckBox") Me.CheckBox12.UseVisualStyleBackColor = True ' 'CheckBox7 @@ -2805,7 +2796,7 @@ Partial Class NewUnattendWiz Me.CheckBox7.Name = "CheckBox7" Me.CheckBox7.Size = New System.Drawing.Size(181, 17) Me.CheckBox7.TabIndex = 3 - Me.CheckBox7.Text = "Obscure passwords with Base64" + Me.CheckBox7.Text = LocalizationService.ForSection("Designer.Unattend")("ObscurePasswords.CheckBox") Me.CheckBox7.UseVisualStyleBackColor = True ' 'CheckBox18 @@ -2815,7 +2806,7 @@ Partial Class NewUnattendWiz Me.CheckBox18.Name = "CheckBox18" Me.CheckBox18.Size = New System.Drawing.Size(219, 17) Me.CheckBox18.TabIndex = 5 - Me.CheckBox18.Text = "Ask for a Microsoft account interactively" + Me.CheckBox18.Text = LocalizationService.ForSection("Designer.Unattend")("Ask.Microsoft.CheckBox") Me.CheckBox18.UseVisualStyleBackColor = True ' 'FillerLabel2 @@ -2836,7 +2827,7 @@ Partial Class NewUnattendWiz Me.UserAccountHeader.Name = "UserAccountHeader" Me.UserAccountHeader.Size = New System.Drawing.Size(708, 51) Me.UserAccountHeader.TabIndex = 6 - Me.UserAccountHeader.Text = "Who will use the target installation?" + Me.UserAccountHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Target.Install.Label") ' 'ProductKeyPanel ' @@ -2856,7 +2847,7 @@ Partial Class NewUnattendWiz Me.CheckBox21.Name = "CheckBox21" Me.CheckBox21.Size = New System.Drawing.Size(285, 17) Me.CheckBox21.TabIndex = 10 - Me.CheckBox21.Text = "Get product key from firmware (modern systems only)" + Me.CheckBox21.Text = LocalizationService.ForSection("Designer.Unattend")("FirmwareProductKey.CheckBox") Me.CheckBox21.UseVisualStyleBackColor = True ' 'ManualProductKeyOptionsPanel @@ -2905,7 +2896,7 @@ Partial Class NewUnattendWiz Me.Label32.Name = "Label32" Me.Label32.Size = New System.Drawing.Size(277, 13) Me.Label32.TabIndex = 3 - Me.Label32.Text = "Please make sure that the product key you enter is valid" + Me.Label32.Text = LocalizationService.ForSection("Designer.Unattend")("Product.Label") ' 'Label31 ' @@ -2915,7 +2906,7 @@ Partial Class NewUnattendWiz Me.Label31.Name = "Label31" Me.Label31.Size = New System.Drawing.Size(421, 13) Me.Label31.TabIndex = 3 - Me.Label31.Text = "DISMTools cannot verify whether product keys can be valid for activation" + Me.Label31.Text = LocalizationService.ForSection("Designer.Unattend")("DISM.Tools.Cannot.Label") ' 'Label33 ' @@ -2926,7 +2917,7 @@ Partial Class NewUnattendWiz Me.Label33.Name = "Label33" Me.Label33.Size = New System.Drawing.Size(825, 13) Me.Label33.TabIndex = 0 - Me.Label33.Text = "(Type each character of the product key, including the dashes)" + Me.Label33.Text = LocalizationService.ForSection("Designer.Unattend")("Type.Each.Character.Label") ' 'Label30 ' @@ -2935,7 +2926,7 @@ Partial Class NewUnattendWiz Me.Label30.Name = "Label30" Me.Label30.Size = New System.Drawing.Size(161, 13) Me.Label30.TabIndex = 0 - Me.Label30.Text = "Product Key:" + Me.Label30.Text = LocalizationService.ForSection("Designer.Unattend")("ProductKey.Custom.Label") ' 'TextBox3 ' @@ -2971,7 +2962,7 @@ Partial Class NewUnattendWiz Me.Button21.Name = "Button21" Me.Button21.Size = New System.Drawing.Size(181, 23) Me.Button21.TabIndex = 5 - Me.Button21.Text = "Detect from image edition" + Me.Button21.Text = LocalizationService.ForSection("Designer.Unattend")("Detect.Image.Edition.Button") Me.Button21.UseVisualStyleBackColor = True ' 'Button5 @@ -2982,7 +2973,7 @@ Partial Class NewUnattendWiz Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(75, 23) Me.Button5.TabIndex = 4 - Me.Button5.Text = "Copy" + Me.Button5.Text = LocalizationService.ForSection("Designer.Unattend")("Copy.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Label29 @@ -2992,7 +2983,7 @@ Partial Class NewUnattendWiz Me.Label29.Name = "Label29" Me.Label29.Size = New System.Drawing.Size(353, 13) Me.Label29.TabIndex = 3 - Me.Label29.Text = "You should only use this generic key with the edition you want to deploy" + Me.Label29.Text = LocalizationService.ForSection("Designer.Unattend")("Only.Generic.Key.Label") ' 'TextBox2 ' @@ -3022,7 +3013,7 @@ Partial Class NewUnattendWiz Me.Label28.Name = "Label28" Me.Label28.Size = New System.Drawing.Size(228, 13) Me.Label28.TabIndex = 0 - Me.Label28.Text = "Product Key:" + Me.Label28.Text = LocalizationService.ForSection("Designer.Unattend")("ProductKey.Generic.Label") ' 'Label27 ' @@ -3031,7 +3022,7 @@ Partial Class NewUnattendWiz Me.Label27.Name = "Label27" Me.Label27.Size = New System.Drawing.Size(248, 13) Me.Label27.TabIndex = 0 - Me.Label27.Text = "Use the product key for this edition:" + Me.Label27.Text = LocalizationService.ForSection("Designer.Unattend")("ProductKey.Edition.Label") ' 'RadioButton14 ' @@ -3040,7 +3031,7 @@ Partial Class NewUnattendWiz Me.RadioButton14.Name = "RadioButton14" Me.RadioButton14.Size = New System.Drawing.Size(149, 17) Me.RadioButton14.TabIndex = 6 - Me.RadioButton14.Text = "Use a custom product key" + Me.RadioButton14.Text = LocalizationService.ForSection("Designer.Unattend")("CustomProductKey.RadioButton") Me.RadioButton14.UseVisualStyleBackColor = True ' 'RadioButton13 @@ -3052,7 +3043,7 @@ Partial Class NewUnattendWiz Me.RadioButton13.Size = New System.Drawing.Size(278, 17) Me.RadioButton13.TabIndex = 6 Me.RadioButton13.TabStop = True - Me.RadioButton13.Text = "Use a generic product key (no activation capabilities)" + Me.RadioButton13.Text = LocalizationService.ForSection("Designer.Unattend")("GenericKey.RadioButton") Me.RadioButton13.UseVisualStyleBackColor = True ' 'ProductKeyHeader @@ -3063,7 +3054,7 @@ Partial Class NewUnattendWiz Me.ProductKeyHeader.Name = "ProductKeyHeader" Me.ProductKeyHeader.Size = New System.Drawing.Size(708, 51) Me.ProductKeyHeader.TabIndex = 5 - Me.ProductKeyHeader.Text = "Type your product key for operating system installation" + Me.ProductKeyHeader.Text = LocalizationService.ForSection("Designer.Unattend")("ProductKey.Type.Label") ' 'DiskConfigurationPanel ' @@ -3121,7 +3112,7 @@ Partial Class NewUnattendWiz Me.Label23.Name = "Label23" Me.Label23.Size = New System.Drawing.Size(323, 13) Me.Label23.TabIndex = 0 - Me.Label23.Text = "Windows Recovery Environment partition size (in MB):" + Me.Label23.Text = LocalizationService.ForSection("Designer.Unattend")("RecoveryPartition.Label") ' 'CheckBox5 ' @@ -3132,7 +3123,7 @@ Partial Class NewUnattendWiz Me.CheckBox5.Name = "CheckBox5" Me.CheckBox5.Size = New System.Drawing.Size(176, 17) Me.CheckBox5.TabIndex = 2 - Me.CheckBox5.Text = "Install a Recovery Environment" + Me.CheckBox5.Text = LocalizationService.ForSection("Designer.Unattend")("InstallRecoveryEnv.CheckBox") Me.CheckBox5.UseVisualStyleBackColor = True ' 'PartTablePanel @@ -3178,7 +3169,7 @@ Partial Class NewUnattendWiz Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(247, 13) Me.Label22.TabIndex = 0 - Me.Label22.Text = "EFI System Partition (ESP) size (in MB):" + Me.Label22.Text = LocalizationService.ForSection("Designer.Unattend")("EFI.System.Label") ' 'RadioButton8 ' @@ -3187,7 +3178,7 @@ Partial Class NewUnattendWiz Me.RadioButton8.Name = "RadioButton8" Me.RadioButton8.Size = New System.Drawing.Size(46, 17) Me.RadioButton8.TabIndex = 0 - Me.RadioButton8.Text = "MBR" + Me.RadioButton8.Text = LocalizationService.ForSection("Designer.Unattend")("MBR.RadioButton") Me.RadioButton8.UseVisualStyleBackColor = True ' 'RadioButton7 @@ -3199,7 +3190,7 @@ Partial Class NewUnattendWiz Me.RadioButton7.Size = New System.Drawing.Size(44, 17) Me.RadioButton7.TabIndex = 0 Me.RadioButton7.TabStop = True - Me.RadioButton7.Text = "GPT" + Me.RadioButton7.Text = LocalizationService.ForSection("Designer.Unattend")("GPT.RadioButton") Me.RadioButton7.UseVisualStyleBackColor = True ' 'Label21 @@ -3209,7 +3200,7 @@ Partial Class NewUnattendWiz Me.Label21.Name = "Label21" Me.Label21.Size = New System.Drawing.Size(78, 13) Me.Label21.TabIndex = 0 - Me.Label21.Text = "Partition table:" + Me.Label21.Text = LocalizationService.ForSection("Designer.Unattend")("PartitionTable.Label") ' 'Label20 ' @@ -3220,7 +3211,7 @@ Partial Class NewUnattendWiz Me.Label20.Name = "Label20" Me.Label20.Size = New System.Drawing.Size(307, 13) Me.Label20.TabIndex = 7 - Me.Label20.Text = "Uncheck this only if you want to set up disk configuration now." + Me.Label20.Text = LocalizationService.ForSection("Designer.Unattend")("Skip.Disk.Config.Label") ' 'CheckBox4 ' @@ -3232,7 +3223,7 @@ Partial Class NewUnattendWiz Me.CheckBox4.Name = "CheckBox4" Me.CheckBox4.Size = New System.Drawing.Size(276, 17) Me.CheckBox4.TabIndex = 5 - Me.CheckBox4.Text = "I want to configure these settings during installation" + Me.CheckBox4.Text = LocalizationService.ForSection("Designer.Unattend")("ConfigureSettings.CheckBox") Me.CheckBox4.UseVisualStyleBackColor = True ' 'DiskConfigurationHeader @@ -3243,7 +3234,7 @@ Partial Class NewUnattendWiz Me.DiskConfigurationHeader.Name = "DiskConfigurationHeader" Me.DiskConfigurationHeader.Size = New System.Drawing.Size(708, 51) Me.DiskConfigurationHeader.TabIndex = 4 - Me.DiskConfigurationHeader.Text = "Configure the disk and partition layout of the target system" + Me.DiskConfigurationHeader.Text = LocalizationService.ForSection("Designer.Unattend")("DiskLayout.Label") ' 'TimeZonePanel ' @@ -3280,7 +3271,7 @@ Partial Class NewUnattendWiz Me.CurrentTimeSelTZ.Name = "CurrentTimeSelTZ" Me.CurrentTimeSelTZ.Size = New System.Drawing.Size(29, 13) Me.CurrentTimeSelTZ.TabIndex = 3 - Me.CurrentTimeSelTZ.Text = "Time" + Me.CurrentTimeSelTZ.Text = LocalizationService.ForSection("Designer.Unattend")("Time.Label") ' 'CurrentTimeUTC ' @@ -3289,7 +3280,7 @@ Partial Class NewUnattendWiz Me.CurrentTimeUTC.Name = "CurrentTimeUTC" Me.CurrentTimeUTC.Size = New System.Drawing.Size(29, 13) Me.CurrentTimeUTC.TabIndex = 3 - Me.CurrentTimeUTC.Text = "Time" + Me.CurrentTimeUTC.Text = LocalizationService.ForSection("Designer.Unattend")("CurrentTime.Label") ' 'Label19 ' @@ -3298,7 +3289,7 @@ Partial Class NewUnattendWiz Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(171, 13) Me.Label19.TabIndex = 2 - Me.Label19.Text = "Current time (selected time zone):" + Me.Label19.Text = LocalizationService.ForSection("Designer.Unattend")("Time.Selected.Zone.Label") ' 'Label18 ' @@ -3307,7 +3298,7 @@ Partial Class NewUnattendWiz Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(102, 13) Me.Label18.TabIndex = 2 - Me.Label18.Text = "Current time (UTC):" + Me.Label18.Text = LocalizationService.ForSection("Designer.Unattend")("Time.UTC.Label") ' 'ComboBox5 ' @@ -3326,7 +3317,7 @@ Partial Class NewUnattendWiz Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(59, 13) Me.Label17.TabIndex = 0 - Me.Label17.Text = "Time zone:" + Me.Label17.Text = LocalizationService.ForSection("Designer.Unattend")("TimeZone.Label") ' 'RadioButton4 ' @@ -3335,7 +3326,7 @@ Partial Class NewUnattendWiz Me.RadioButton4.Name = "RadioButton4" Me.RadioButton4.Size = New System.Drawing.Size(148, 17) Me.RadioButton4.TabIndex = 4 - Me.RadioButton4.Text = "Set a time zone manually:" + Me.RadioButton4.Text = LocalizationService.ForSection("Designer.Unattend")("Set.Time.Zone.RadioButton") Me.RadioButton4.UseVisualStyleBackColor = True ' 'RadioButton3 @@ -3347,8 +3338,7 @@ Partial Class NewUnattendWiz Me.RadioButton3.Size = New System.Drawing.Size(422, 17) Me.RadioButton3.TabIndex = 4 Me.RadioButton3.TabStop = True - Me.RadioButton3.Text = "Let Windows decide my time zone based on the regional configurations I set earlie" & _ - "r" + Me.RadioButton3.Text = LocalizationService.ForSection("Designer.Unattend")("Windows.Decide.RadioButton") Me.RadioButton3.UseVisualStyleBackColor = True ' 'TimeZoneHeader @@ -3359,7 +3349,7 @@ Partial Class NewUnattendWiz Me.TimeZoneHeader.Name = "TimeZoneHeader" Me.TimeZoneHeader.Size = New System.Drawing.Size(708, 51) Me.TimeZoneHeader.TabIndex = 3 - Me.TimeZoneHeader.Text = "Configure time zone settings" + Me.TimeZoneHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Configure.Time.Zone.Label") ' 'SysConfigPanel ' @@ -3385,7 +3375,7 @@ Partial Class NewUnattendWiz Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.CheckedListBox1.CheckOnClick = True Me.CheckedListBox1.FormattingEnabled = True - Me.CheckedListBox1.Items.AddRange(New Object() {"x86 (Desktop 32-Bit)", "x64 (Desktop 64-Bit)", "ARM64 (Windows on ARM)"}) + Me.CheckedListBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.Unattend")("DesktopX86.Item"), LocalizationService.ForSection("Designer.Unattend")("DesktopX64.Item"), LocalizationService.ForSection("Designer.Unattend")("Armwindows.Item")}) Me.CheckedListBox1.Location = New System.Drawing.Point(182, 82) Me.CheckedListBox1.Name = "CheckedListBox1" Me.CheckedListBox1.Size = New System.Drawing.Size(761, 68) @@ -3398,7 +3388,7 @@ Partial Class NewUnattendWiz Me.CheckBox19.Name = "CheckBox19" Me.CheckBox19.Size = New System.Drawing.Size(236, 17) Me.CheckBox19.TabIndex = 9 - Me.CheckBox19.Text = "Use a configuration set or distribution share" + Me.CheckBox19.Text = LocalizationService.ForSection("Designer.Unattend")("UseConfigSet.CheckBox") Me.CheckBox19.UseVisualStyleBackColor = True ' 'CheckBox3 @@ -3410,7 +3400,7 @@ Partial Class NewUnattendWiz Me.CheckBox3.Name = "CheckBox3" Me.CheckBox3.Size = New System.Drawing.Size(230, 17) Me.CheckBox3.TabIndex = 8 - Me.CheckBox3.Text = "Let Windows set a random computer name" + Me.CheckBox3.Text = LocalizationService.ForSection("Designer.Unattend")("Windows.Set.Random.CheckBox") Me.CheckBox3.UseVisualStyleBackColor = True ' 'Label62 @@ -3422,7 +3412,7 @@ Partial Class NewUnattendWiz Me.Label62.Name = "Label62" Me.Label62.Size = New System.Drawing.Size(872, 33) Me.Label62.TabIndex = 1 - Me.Label62.Text = resources.GetString("Label62.Text") + Me.Label62.Text = LocalizationService.ForSection("Designer.Unattend")("Config.Set.Message") ' 'ComputerNamePanel ' @@ -3467,7 +3457,7 @@ Partial Class NewUnattendWiz Me.RadioButton29.Name = "RadioButton29" Me.RadioButton29.Size = New System.Drawing.Size(301, 17) Me.RadioButton29.TabIndex = 5 - Me.RadioButton29.Text = "Have the following script configure the name (advanced):" + Me.RadioButton29.Text = LocalizationService.ForSection("Designer.Unattend")("Script.Sets.Name.RadioButton") Me.RadioButton29.UseVisualStyleBackColor = True ' 'RadioButton28 @@ -3479,7 +3469,7 @@ Partial Class NewUnattendWiz Me.RadioButton28.Size = New System.Drawing.Size(267, 17) Me.RadioButton28.TabIndex = 5 Me.RadioButton28.TabStop = True - Me.RadioButton28.Text = "Choose a computer name yourself (recommended)" + Me.RadioButton28.Text = LocalizationService.ForSection("Designer.Unattend")("ComputerName.RadioButton") Me.RadioButton28.UseVisualStyleBackColor = True ' 'ManualComputerNamePanel @@ -3503,7 +3493,7 @@ Partial Class NewUnattendWiz Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(152, 23) Me.Button3.TabIndex = 3 - Me.Button3.Text = "Get computer name" + Me.Button3.Text = LocalizationService.ForSection("Designer.Unattend")("Get.Computer.Name.Button") Me.Button3.UseVisualStyleBackColor = True ' 'TextBox1 @@ -3523,7 +3513,7 @@ Partial Class NewUnattendWiz Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(87, 13) Me.Label16.TabIndex = 1 - Me.Label16.Text = "Computer name:" + Me.Label16.Text = LocalizationService.ForSection("Designer.Unattend")("ComputerName.Label") ' 'Label63 ' @@ -3535,7 +3525,7 @@ Partial Class NewUnattendWiz Me.Label63.Name = "Label63" Me.Label63.Size = New System.Drawing.Size(551, 18) Me.Label63.TabIndex = 1 - Me.Label63.Text = "Please type a computer name" + Me.Label63.Text = LocalizationService.ForSection("Designer.Unattend")("Type.Computer.Name.Label") Me.Label63.Visible = False ' 'WinSVSettingsPanel @@ -3559,8 +3549,7 @@ Partial Class NewUnattendWiz Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(720, 31) Me.Label14.TabIndex = 1 - Me.Label14.Text = "Check this option only if the target system does not have any network capabilitie" & _ - "s. You can configure local users in the User Accounts section" + Me.Label14.Text = LocalizationService.ForSection("Designer.Unattend")("Check.Option.Only.Message") ' 'CheckBox2 ' @@ -3569,7 +3558,7 @@ Partial Class NewUnattendWiz Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(215, 17) Me.CheckBox2.TabIndex = 0 - Me.CheckBox2.Text = "Bypass Mandatory Network Connection" + Me.CheckBox2.Text = LocalizationService.ForSection("Designer.Unattend")("BypassNetwork.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'CheckBox1 @@ -3579,7 +3568,7 @@ Partial Class NewUnattendWiz Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(167, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "Bypass System Requirements" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.Unattend")("BypassRequirements.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label13 @@ -3589,7 +3578,7 @@ Partial Class NewUnattendWiz Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(110, 13) Me.Label13.TabIndex = 6 - Me.Label13.Text = "Windows 11 settings:" + Me.Label13.Text = LocalizationService.ForSection("Designer.Unattend")("Windows11.Label") ' 'Label12 ' @@ -3600,8 +3589,7 @@ Partial Class NewUnattendWiz Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(761, 32) Me.Label12.TabIndex = 5 - Me.Label12.Text = "Please select the system architecture that is supported by the target Windows ima" & _ - "ge to apply" + Me.Label12.Text = LocalizationService.ForSection("Designer.Unattend")("System.Architec.Label") ' 'Label11 ' @@ -3610,7 +3598,7 @@ Partial Class NewUnattendWiz Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(119, 13) Me.Label11.TabIndex = 3 - Me.Label11.Text = "Processor architecture:" + Me.Label11.Text = LocalizationService.ForSection("Designer.Unattend")("Processor.Architecture.Label") ' 'SysConfigHeader ' @@ -3620,7 +3608,7 @@ Partial Class NewUnattendWiz Me.SysConfigHeader.Name = "SysConfigHeader" Me.SysConfigHeader.Size = New System.Drawing.Size(708, 51) Me.SysConfigHeader.TabIndex = 2 - Me.SysConfigHeader.Text = "Configure basic system settings" + Me.SysConfigHeader.Text = LocalizationService.ForSection("Designer.Unattend")("BasicSettings.Label") ' 'RegionalSettingsPanel ' @@ -3643,7 +3631,7 @@ Partial Class NewUnattendWiz Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(636, 68) Me.Label10.TabIndex = 4 - Me.Label10.Text = "You will need to configure these settings during the setup process" + Me.Label10.Text = LocalizationService.ForSection("Designer.Unattend")("Configure.Settings.Label") ' 'RegionalSettings ' @@ -3691,7 +3679,7 @@ Partial Class NewUnattendWiz Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(225, 26) Me.Label6.TabIndex = 1 - Me.Label6.Text = "System language:" + Me.Label6.Text = LocalizationService.ForSection("Designer.Unattend")("SystemLanguage.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label7 @@ -3702,7 +3690,7 @@ Partial Class NewUnattendWiz Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(225, 26) Me.Label7.TabIndex = 1 - Me.Label7.Text = "System locale:" + Me.Label7.Text = LocalizationService.ForSection("Designer.Unattend")("SystemLocale.Label") Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'ComboBox4 @@ -3723,7 +3711,7 @@ Partial Class NewUnattendWiz Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(225, 29) Me.Label9.TabIndex = 1 - Me.Label9.Text = "Home location:" + Me.Label9.Text = LocalizationService.ForSection("Designer.Unattend")("HomeLocation.Label") Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'ComboBox3 @@ -3745,7 +3733,7 @@ Partial Class NewUnattendWiz Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(225, 26) Me.Label8.TabIndex = 1 - Me.Label8.Text = "Keyboard layout/IME:" + Me.Label8.Text = LocalizationService.ForSection("Designer.Unattend")("Keyboard.Layout.IME.Label") Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'ComboBox2 @@ -3778,7 +3766,7 @@ Partial Class NewUnattendWiz Me.Button22.Name = "Button22" Me.Button22.Size = New System.Drawing.Size(169, 23) Me.Button22.TabIndex = 2 - Me.Button22.Text = "Choose country from the EEA" + Me.Button22.Text = LocalizationService.ForSection("Designer.Unattend")("Country.EEA.Choose.Button") Me.Button22.UseVisualStyleBackColor = True ' 'Button1 @@ -3790,7 +3778,7 @@ Partial Class NewUnattendWiz Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(137, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Additional layouts" + Me.Button1.Text = LocalizationService.ForSection("Designer.Unattend")("Additional.Layouts.Button") Me.Button1.UseVisualStyleBackColor = True ' 'RadioButton2 @@ -3800,7 +3788,7 @@ Partial Class NewUnattendWiz Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(168, 17) Me.RadioButton2.TabIndex = 2 - Me.RadioButton2.Text = "Configure these settings later" + Me.RadioButton2.Text = LocalizationService.ForSection("Designer.Unattend")("ConfigureLater.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'RadioButton1 @@ -3812,7 +3800,7 @@ Partial Class NewUnattendWiz Me.RadioButton1.Size = New System.Drawing.Size(170, 17) Me.RadioButton1.TabIndex = 2 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "Configure these settings now:" + Me.RadioButton1.Text = LocalizationService.ForSection("Designer.Unattend")("SettingsNow.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'RegionalSettingsHeader @@ -3823,7 +3811,7 @@ Partial Class NewUnattendWiz Me.RegionalSettingsHeader.Name = "RegionalSettingsHeader" Me.RegionalSettingsHeader.Size = New System.Drawing.Size(708, 51) Me.RegionalSettingsHeader.TabIndex = 1 - Me.RegionalSettingsHeader.Text = "Configure your language, keyboard layout, and other regional settings" + Me.RegionalSettingsHeader.Text = LocalizationService.ForSection("Designer.Unattend")("LanguageKeyboard.Label") ' 'WelcomePanel ' @@ -3848,7 +3836,7 @@ Partial Class NewUnattendWiz Me.LinkLabel10.Size = New System.Drawing.Size(436, 13) Me.LinkLabel10.TabIndex = 4 Me.LinkLabel10.TabStop = True - Me.LinkLabel10.Text = "Copy Linux and macOS versions of the unattended answer file generator program..." + Me.LinkLabel10.Text = LocalizationService.ForSection("Designer.Unattend")("Copy.Linux.Mac.Link") ' 'LinkLabel1 ' @@ -3861,7 +3849,7 @@ Partial Class NewUnattendWiz Me.LinkLabel1.Size = New System.Drawing.Size(436, 13) Me.LinkLabel1.TabIndex = 2 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Answer file generator (online version)" + Me.LinkLabel1.Text = LocalizationService.ForSection("Designer.Unattend")("OnlineGenerator.Link") ' 'WelcomeHeader ' @@ -3871,7 +3859,7 @@ Partial Class NewUnattendWiz Me.WelcomeHeader.Name = "WelcomeHeader" Me.WelcomeHeader.Size = New System.Drawing.Size(708, 51) Me.WelcomeHeader.TabIndex = 14 - Me.WelcomeHeader.Text = "Welcome to the unattended answer file creation wizard" + Me.WelcomeHeader.Text = LocalizationService.ForSection("Designer.Unattend")("Welcome.Unattended.Label") ' 'WelcomeDesc ' @@ -3882,7 +3870,7 @@ Partial Class NewUnattendWiz Me.WelcomeDesc.Name = "WelcomeDesc" Me.WelcomeDesc.Size = New System.Drawing.Size(596, 188) Me.WelcomeDesc.TabIndex = 0 - Me.WelcomeDesc.Text = resources.GetString("WelcomeDesc.Text") + Me.WelcomeDesc.Text = LocalizationService.ForSection("Designer.Unattend")("CreationHelp.Message") ' 'Label5 ' @@ -3892,7 +3880,7 @@ Partial Class NewUnattendWiz Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(471, 115) Me.Label5.TabIndex = 0 - Me.Label5.Text = "Not available for now!" + Me.Label5.Text = LocalizationService.ForSection("Designer.Unattend")("AvailableNow.Label") Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.Label5.Visible = False ' @@ -3944,7 +3932,7 @@ Partial Class NewUnattendWiz Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton2.Name = "ToolStripButton2" Me.ToolStripButton2.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton2.Text = "New (overwrites existing content)" + Me.ToolStripButton2.Text = LocalizationService.ForSection("Designer.Unattend")("NewOverwrite.Label") ' 'ToolStripButton3 ' @@ -3955,7 +3943,7 @@ Partial Class NewUnattendWiz Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton3.Name = "ToolStripButton3" Me.ToolStripButton3.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton3.Text = "Open..." + Me.ToolStripButton3.Text = LocalizationService.ForSection("Designer.Unattend")("Open.Button") ' 'ToolStripButton4 ' @@ -3966,7 +3954,7 @@ Partial Class NewUnattendWiz Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton4.Name = "ToolStripButton4" Me.ToolStripButton4.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton4.Text = "Save as..." + Me.ToolStripButton4.Text = LocalizationService.ForSection("Designer.Unattend")("Save.Button") ' 'ToolStripSeparator4 ' @@ -4011,7 +3999,7 @@ Partial Class NewUnattendWiz Me.ToolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton5.Name = "ToolStripButton5" Me.ToolStripButton5.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton5.Text = "Word wrap" + Me.ToolStripButton5.Text = LocalizationService.ForSection("Designer.Unattend")("WordWrap.Label") ' 'ToolStripSeparator6 ' @@ -4031,7 +4019,7 @@ Partial Class NewUnattendWiz Me.ToolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton6.Name = "ToolStripButton6" Me.ToolStripButton6.Size = New System.Drawing.Size(23, 25) - Me.ToolStripButton6.Text = "Help" + Me.ToolStripButton6.Text = LocalizationService.ForSection("Designer.Unattend")("Help.Label") ' 'ToolStripButton1 ' @@ -4043,8 +4031,8 @@ Partial Class NewUnattendWiz Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton1.Name = "ToolStripButton1" Me.ToolStripButton1.Size = New System.Drawing.Size(24, 24) - Me.ToolStripButton1.Text = "Normalize spacing" - Me.ToolStripButton1.ToolTipText = "Makes the spacing consistent by replacing tabs with spaces" + Me.ToolStripButton1.Text = LocalizationService.ForSection("Designer.Unattend")("NormalizeSpacing.Label") + Me.ToolStripButton1.ToolTipText = LocalizationService.ForSection("Designer.Unattend")("NormalizeSpacing.Tooltip") ' 'HeaderPanel ' @@ -4066,8 +4054,7 @@ Partial Class NewUnattendWiz Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(928, 13) Me.Label4.TabIndex = 3 - Me.Label4.Text = "If you haven't created unattended answer files before, use this wizard to create " & _ - "one." + Me.Label4.Text = LocalizationService.ForSection("Designer.Unattend")("WizardHelp.Label") ' 'Label3 ' @@ -4077,7 +4064,7 @@ Partial Class NewUnattendWiz Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(141, 30) Me.Label3.TabIndex = 2 - Me.Label3.Text = "Express mode" + Me.Label3.Text = LocalizationService.ForSection("Designer.Unattend")("ExpressMode.Label") ' 'PictureBox3 ' @@ -4116,7 +4103,7 @@ Partial Class NewUnattendWiz Me.Button12.Name = "Button12" Me.Button12.Size = New System.Drawing.Size(174, 23) Me.Button12.TabIndex = 0 - Me.Button12.Text = "Join target device to domain..." + Me.Button12.Text = LocalizationService.ForSection("Designer.Unattend")("Join.Target.Device.Button") Me.Button12.UseVisualStyleBackColor = True ' 'TableLayoutPanel1 @@ -4147,7 +4134,7 @@ Partial Class NewUnattendWiz Me.Back_Button.Name = "Back_Button" Me.Back_Button.Size = New System.Drawing.Size(64, 23) Me.Back_Button.TabIndex = 0 - Me.Back_Button.Text = "Back" + Me.Back_Button.Text = LocalizationService.ForSection("Designer.Unattend")("BackButton.Button") ' 'Next_Button ' @@ -4159,7 +4146,7 @@ Partial Class NewUnattendWiz Me.Next_Button.Name = "Next_Button" Me.Next_Button.Size = New System.Drawing.Size(64, 23) Me.Next_Button.TabIndex = 1 - Me.Next_Button.Text = "Next" + Me.Next_Button.Text = LocalizationService.ForSection("Designer.Unattend")("NextButton.Button") ' 'Cancel_Button ' @@ -4170,7 +4157,7 @@ Partial Class NewUnattendWiz Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(64, 23) Me.Cancel_Button.TabIndex = 2 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.Unattend")("Cancel.Button") ' 'Help_Button ' @@ -4181,7 +4168,7 @@ Partial Class NewUnattendWiz Me.Help_Button.Name = "Help_Button" Me.Help_Button.Size = New System.Drawing.Size(64, 23) Me.Help_Button.TabIndex = 3 - Me.Help_Button.Text = "Help" + Me.Help_Button.Text = LocalizationService.ForSection("Designer.Unattend")("Help.Button") ' 'TimeZonePageTimer ' @@ -4193,7 +4180,7 @@ Partial Class NewUnattendWiz ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "Answer files|*.xml" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("Designer.Unattend")("Answer.Files.XML.Filter") ' 'UnattendGenBW ' @@ -4201,37 +4188,34 @@ Partial Class NewUnattendWiz 'UGNotify ' Me.UGNotify.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info - Me.UGNotify.BalloonTipText = "The self-contained version of UnattendGen has been successfully downloaded. DISMT" & _ - "ools will use this version from now on" - Me.UGNotify.BalloonTipTitle = "UnattendGen download complete" + Me.UGNotify.BalloonTipText = LocalizationService.ForSection("Designer.Unattend")("SelfContained.Message") + Me.UGNotify.BalloonTipTitle = LocalizationService.ForSection("Designer.Unattend")("Gen.Download.Complete.Title") Me.UGNotify.Icon = CType(resources.GetObject("UGNotify.Icon"), System.Drawing.Icon) Me.UGNotify.Text = "DISMTools" Me.UGNotify.Visible = True ' 'EditorModeOFD ' - Me.EditorModeOFD.Filter = "Answer files|*.xml" + Me.EditorModeOFD.Filter = LocalizationService.ForSection("Designer.Unattend")("EditorMode.Filter") ' 'EditorModeSFD ' - Me.EditorModeSFD.Filter = "Answer files|*.xml" + Me.EditorModeSFD.Filter = LocalizationService.ForSection("Designer.Unattend")("Answer.Files.XML.Filter") ' 'ScriptEditorOFD ' - Me.ScriptEditorOFD.Filter = "PowerShell scripts|*.ps1;*.psm1|Batch scripts|*.bat;*.cmd|Visual Basic Scripts|*." & _ - "vbs;*.vbe;*.wsf;*.wsc|JScript files|*.js;*.jse" - Me.ScriptEditorOFD.Title = "Open script" + Me.ScriptEditorOFD.Filter = LocalizationService.ForSection("Designer.Unattend")("Power.Shell.Scripts.Filter") + Me.ScriptEditorOFD.Title = LocalizationService.ForSection("Designer.Unattend")("OpenScript.Title") ' 'CPUnattendGenFBD ' - Me.CPUnattendGenFBD.Description = "Specify the path on which you want to store Linux and macOS versions of UnattendG" & _ - "en:" + Me.CPUnattendGenFBD.Description = LocalizationService.ForSection("Designer.Unattend")("Path.Description") Me.CPUnattendGenFBD.RootFolder = System.Environment.SpecialFolder.MyComputer ' 'OpenFileDialog2 ' - Me.OpenFileDialog2.Filter = "DISMTools Starter Scripts|*.dtss" - Me.OpenFileDialog2.Title = "Pick a Starter Script" + Me.OpenFileDialog2.Filter = LocalizationService.ForSection("Designer.Unattend")("DISM.Tools.Starter.Filter") + Me.OpenFileDialog2.Title = LocalizationService.ForSection("Designer.Unattend")("Pick.StarterScript.Title") ' 'NewUnattendWiz ' @@ -4249,7 +4233,7 @@ Partial Class NewUnattendWiz Me.MinimumSize = New System.Drawing.Size(1280, 720) Me.Name = "NewUnattendWiz" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Unattended answer file creation wizard" + Me.Text = LocalizationService.ForSection("Designer.Unattend")("CreationHelp.Label") Me.SidePanel.ResumeLayout(False) Me.ExpressModeSteps.ResumeLayout(False) Me.EditorPanelTrigger.ResumeLayout(False) diff --git a/Panels/Unattend_Files/Addition/NewUnattendWiz.resx b/Panels/Unattend_Files/Addition/NewUnattendWiz.resx index 5f5a791a9..dc702541f 100644 --- a/Panels/Unattend_Files/Addition/NewUnattendWiz.resx +++ b/Panels/Unattend_Files/Addition/NewUnattendWiz.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,30 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - In this screen you can configure scripts that will be run during a specific stage of Windows installation. Use the sections below to specify the code for the scripts. - -If you don't want to configure scripts, click Next. - - - - Use Guest Additions with Oracle VM VirtualBox -- Use VMware Tools with VMware hypervisors -- Use VirtIO Guest Tools with QEMU-based hypervisors -- Use Parallels Tools with Parallels hypervisors on Macintosh computers - - - Make sure that the configuration set or distribution share has been created before copying the resulting unattended answer file to an ISO file and installing the operating system. You can create configuration sets or distribution shares with the Windows System Image Manager (SIM) - - - The unattended answer file creation wizard lets you create unattended answer files using intuitive interfaces. This wizard is suitable for those people who have never created unattended answer files before or do not want to use a text editor. - -In this wizard, you will be able to configure regional settings, user accounts, wireless settings, virtual machine support, and more. If you need to add more functionality to your file after creating it, you can use the Editor mode, which you can access by clicking the button on the bottom left. - -Special thanks to Christoph Schneegans for making the library that makes this wizard possible. You can also use his generator website to configure more settings, like tweaks or Windows Defender Application Control rules. - - -To begin creating your answer file, click Next. - 17, 17 diff --git a/Panels/Unattend_Files/Addition/NewUnattendWiz.vb b/Panels/Unattend_Files/Addition/NewUnattendWiz.vb index 876d24c5d..3589c0b65 100644 --- a/Panels/Unattend_Files/Addition/NewUnattendWiz.vb +++ b/Panels/Unattend_Files/Addition/NewUnattendWiz.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports Microsoft.VisualBasic.ControlChars Imports System.Text.Encoding Imports System.Threading @@ -876,7 +876,7 @@ Public Class NewUnattendWiz If Not DotNetRuntimeSupported Then DynaLog.LogMessage("Detections have concluded with no recognized .NET Core-based installations. The included copy of UnattendGen cannot be used.") DynaLog.LogMessage("Asking user whether or not to download self-contained UnattendGen...") - If MsgBox("This wizard requires the .NET 10 Runtime to be installed to use the built-in version of the generator program. You can download it from:" & CrLf & CrLf & "dotnet.microsoft.com" & CrLf & CrLf & "If you don't want to download .NET, you can download the self-contained version of the generator program. Downloading it will take some time, depending on your network connection speed." & CrLf & CrLf & "Do you want to use the self-contained version?", vbYesNo + vbQuestion, ".NET Runtime missing") = Windows.Forms.DialogResult.Yes Then + If MsgBox(LocalizationService.ForSection("Unattend.Messages")("Requires.Netruntime.Message"), vbYesNo + vbQuestion, LocalizationService.ForSection("Unattend.Messages")("Netruntime.Missing.Title")) = Windows.Forms.DialogResult.Yes Then DynaLog.LogMessage("Proceeding to download self-contained UnattendGen...") ExpressPanelFooter.Enabled = False UnattendGenBW.RunWorkerAsync() @@ -1131,7 +1131,7 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Checking selected architectures...") If CheckedListBox1.CheckedItems.Count = 0 Then DynaLog.LogMessage("No architectures have been selected.") - MessageBox.Show("Please select an architecture and try again", "Validation error") + MessageBox.Show(LocalizationService.ForSection("Unattend.Validation")("Arch.Try.Label"), LocalizationService.ForSection("Unattend.Validation")("ValidationError.Title")) Return False End If If RadioButton28.Checked Then @@ -1140,7 +1140,7 @@ Public Class NewUnattendWiz Dim testerPC As ComputerName = ComputerNameValidator.ValidateComputerName(TextBox1.Text) If Not testerPC.Valid AndAlso testerPC.ErrorMessage <> "" Then DynaLog.LogMessage("This computer name is not valid. Look above for reasons why.") - MessageBox.Show(testerPC.ErrorMessage, "Computer name error") + MessageBox.Show(testerPC.ErrorMessage, LocalizationService.ForSection("Unattend.Validation")("Computer.Name.Error.Title")) Return False End If End If @@ -1148,7 +1148,7 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Checking if a computer name script has been specified...") If String.IsNullOrEmpty(PCNameScript) Then DynaLog.LogMessage("No script has been provided") - MessageBox.Show("No script has been passed for the computer name", "Computer name error") + MessageBox.Show(LocalizationService.ForSection("Unattend.Validation")("Script.Has.None.Label"), LocalizationService.ForSection("Unattend.Validation")("Computer.Name.Error.Title")) Return False End If End If @@ -1157,18 +1157,18 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Checking user-specified product key...") If TextBox3.Text = "" Then DynaLog.LogMessage("No product key has been specified.") - MessageBox.Show("Please type a product key and try again", "Product Key error") + MessageBox.Show(LocalizationService.ForSection("Unattend.Validation")("Type.ProductKey.Label"), LocalizationService.ForSection("Unattend.Validation")("ProductKeyError.Title")) Return False ElseIf TextBox3.Text <> "" And TextBox3.Text.Length <> 29 Then DynaLog.LogMessage("Not all characters of the product key have been typed. Expected length: 29; Current length: " & TextBox3.Text.Length) - MessageBox.Show("Please type all of the product key and try again", "Product Key error") + MessageBox.Show(LocalizationService.ForSection("Unattend.Validation")("Type.Product.Label"), LocalizationService.ForSection("Unattend.Validation")("ProductKeyError.Title")) Return False ElseIf TextBox3.Text <> "" And TextBox3.Text.Length = 29 Then DynaLog.LogMessage("Validating product key...") Dim pKey As ProductKey = ProductKeyValidator.ValidateProductKey(TextBox3.Text) If Not pKey.Valid Then DynaLog.LogMessage("Previously run regex match did not return results. This product key is bad.") - MessageBox.Show("The product key entered:" & CrLf & CrLf & TextBox3.Text & CrLf & CrLf & "is ill-formed. Please type it again", "Product Key error") + MessageBox.Show(LocalizationService.ForSection("Unattend.Validation").Format("ProductKey.Entered.Ill.Label", TextBox3.Text), LocalizationService.ForSection("Unattend.Validation")("ProductKeyError.Title")) Return False End If End If @@ -1178,7 +1178,7 @@ Public Class NewUnattendWiz Dim validationResults As UserValidationResults = UserValidator.ValidateUsers(UserAccountsList, PCName) If Not UserAccountsInteractive AndAlso Not MicrosoftAccountInteractive AndAlso Not validationResults.IsValid Then DynaLog.LogMessage("Validation has failed due to the reasons that appear above this line.") - MessageBox.Show("There is a problem with one or more of the users specified. Here are the reasons why:" & CrLf & CrLf & validationResults.ValidationErrorReason & CrLf & CrLf & "Try again after fixing the aforementioned problems", "User Accounts error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("Unattend.Validation").Format("Problem.One.Message", validationResults.ValidationErrorReason), LocalizationService.ForSection("Unattend.Validation")("User.Accounts.Error.Title"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Return False End If Dim invalidChars As Char() = {"/", "\", "[", "]", ":", ";", "|", "=", ",", "+", "*", "?", "<", ">", Quote, "%"} @@ -1198,7 +1198,7 @@ Public Class NewUnattendWiz If Not AtLeastOneAdmin Then DynaLog.LogMessage("No users have been detected as part of the Administrators group. All users are part of the Users group.") DynaLog.LogMessage("At least one user must be part of the Administrators group.") - MessageBox.Show("At least one account must be part of the Administrators user group. Please configure the user groups accordingly and try again", "User Accounts error") + MessageBox.Show(LocalizationService.ForSection("Unattend.Validation")("Least.One.Account.Message"), LocalizationService.ForSection("Unattend.Validation")("User.Accounts.Error.Title")) Return False End If End If @@ -1206,7 +1206,7 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Validating wireless settings if they have been specified...") If Not NetworkConfigInteractive AndAlso Not NetworkConfigManualSkip AndAlso Not WirelessValidator.ValidateWiFi(SelectedNetworkConfiguration) Then DynaLog.LogMessage("Wireless setting validation has failed.") - MessageBox.Show("There is a problem with the specified wireless settings. Make sure that you have specified a network name and try again", "Wireless Networks error") + MessageBox.Show(LocalizationService.ForSection("Unattend.Validation")("Problem.Wireless.Message"), LocalizationService.ForSection("Unattend.Validation")("WirelessError.Title")) Return False End If End Select @@ -1230,7 +1230,7 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Showing overview of settings...") TextBox13.Clear() ' Display settings in the following order: - TextBox13.Text = "Current configurations for the unattended answer file:" & CrLf + TextBox13.Text = LocalizationService.ForSection("UnattendWizard.Review")("Configs.UnattendAnswer.Label") & CrLf ' 1. -- REGIONAL CONFIGURATION TextBox13.AppendText("Regional settings: " & If(RegionalInteractive, "configured during setup" & CrLf, CrLf)) If Not RegionalInteractive Then @@ -1406,8 +1406,8 @@ Public Class NewUnattendWiz EditorPanelTrigger.ForeColor = If(CurrentTheme.IsDark, Color.LightGray, Color.Black) PictureBox2.Image = If(CurrentTheme.IsDark, My.Resources.editor_mode_select, My.Resources.editor_mode) PictureBox3.Image = My.Resources.express_mode_fc - Label3.Text = "Express mode" - Label4.Text = "If you haven't created unattended answer files before, use this wizard to create one" + Label3.Text = LocalizationService.ForSection("Unattend.Mode")("ExpressMode.Title") + Label4.Text = LocalizationService.ForSection("Unattend.Mode")("WizardHelp.Description") FooterContainer.Visible = True End Sub @@ -1455,8 +1455,8 @@ Public Class NewUnattendWiz EditorPanelTrigger.ForeColor = CurrentTheme.ForegroundColor PictureBox2.Image = My.Resources.editor_mode_select PictureBox3.Image = My.Resources.editor_mode_fc - Label3.Text = "Editor mode" - Label4.Text = "Create your unattended answer files from scratch and save them anywhere" + Label3.Text = LocalizationService.ForSection("Unattend.Mode")("EditorMode.Title") + Label4.Text = LocalizationService.ForSection("Unattend.Mode")("CreateUnattended.Description") FooterContainer.Visible = False End Sub @@ -1883,7 +1883,7 @@ Public Class NewUnattendWiz Private Sub UnattendGeneratorBW_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles UnattendGeneratorBW.DoWork DynaLog.LogMessage("Preparing file generation...") - ReportMessage("Preparing to generate file...", 0) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Preparing.Generate.Label"), 0) DynaLog.LogMessage("Checking save target...") DynaLog.LogMessage("Save target: " & Quote & SaveTarget & Quote) If SaveTarget = "" Then @@ -1891,7 +1891,7 @@ Public Class NewUnattendWiz e.Cancel = True Exit Sub End If - ReportMessage("Preparing to generate file...", 0) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Preparing.Generate.Label"), 0) Dim UnattendGen As New Process() ' Get most appropriate binary of UnattendGen DynaLog.LogMessage("Getting the most appropriate UnattendGen executable...") @@ -1932,7 +1932,7 @@ Public Class NewUnattendWiz End If Try ' Save settings to appropriate XML files - ReportMessage("Saving user settings...", 2) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 2) DynaLog.LogMessage("Saving regional settings...") Dim regSetContents As String = "" & CrLf & "" & CrLf & @@ -1944,7 +1944,7 @@ Public Class NewUnattendWiz "" File.WriteAllText(Path.Combine(UnattendGen.StartInfo.WorkingDirectory, "region.xml"), regSetContents, UTF8) UnattendGen.StartInfo.Arguments &= " --regionfile=" & Quote & Path.Combine(UnattendGen.StartInfo.WorkingDirectory, "region.xml") & Quote - ReportMessage("Saving user settings...", 4) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 4) DynaLog.LogMessage("Saving architecture settings...") ' Build architecture string for UnattendGen Dim Architectures As New List(Of String) @@ -1956,7 +1956,7 @@ Public Class NewUnattendWiz Next ArchitectureString = String.Join(",", Architectures.ToArray()) UnattendGen.StartInfo.Arguments &= " --architecture=" & ArchitectureString - ReportMessage("Saving user settings...", 6) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 6) DynaLog.LogMessage("Saving Windows 11 settings...") If Win11Config.LabConfig_BypassRequirements Then UnattendGen.StartInfo.Arguments &= " --LabConfig" @@ -1964,7 +1964,7 @@ Public Class NewUnattendWiz If Win11Config.OOBE_BypassNRO Then UnattendGen.StartInfo.Arguments &= " --BypassNRO" End If - ReportMessage("Saving user settings...", 8) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 8) DynaLog.LogMessage("Saving computer settings...") If RadioButton28.Checked Then If Not PCName.DefaultName Then @@ -1979,12 +1979,12 @@ Public Class NewUnattendWiz If UseConfigSet Then UnattendGen.StartInfo.Arguments &= " --ConfigSet" End If - ReportMessage("Saving user settings...", 10) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 10) DynaLog.LogMessage("Saving time zone settings...") If TimeOffsetInteractive Then UnattendGen.StartInfo.Arguments &= " --tzImplicit" End If - ReportMessage("Saving user settings...", 12) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 12) DynaLog.LogMessage("Saving disk configuration...") If DiskConfigurationInteractive Then DynaLog.LogMessage("Disks will be configured interactively.") @@ -1999,7 +1999,7 @@ Public Class NewUnattendWiz "" File.WriteAllText(Path.Combine(UnattendGen.StartInfo.WorkingDirectory, "unattPartSettings.xml"), diskZeroContents, UTF8) End If - ReportMessage("Saving user settings...", 14) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 14) DynaLog.LogMessage("Saving edition settings...") If FirmwareChosen Then DynaLog.LogMessage("The product key will be grabbed from firmware.") @@ -2017,7 +2017,7 @@ Public Class NewUnattendWiz UnattendGen.StartInfo.Arguments &= " --customkey=" & SelectedKey.Key End If If Not UserAccountsInteractive And Not MicrosoftAccountInteractive Then - ReportMessage("Saving user settings...", 16) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 16) DynaLog.LogMessage("Saving user accounts...") UnattendGen.StartInfo.Arguments &= " --customusers" Dim customUserContents As String = "" & CrLf & @@ -2051,15 +2051,15 @@ Public Class NewUnattendWiz End If ElseIf (Not UserAccountsInteractive) And MicrosoftAccountInteractive Then DynaLog.LogMessage("A Microsoft account is expected to be used in the target installation.") - ReportMessage("Saving user settings...", 16) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 16) UnattendGen.StartInfo.Arguments &= " --msa" End If If SelectedExpirationSettings.Mode = PasswordExpirationMode.NIST_Limited Then - ReportMessage("Saving user settings...", 18) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 18) DynaLog.LogMessage("Saving password expiration settings...") UnattendGen.StartInfo.Arguments &= " --pwExpire=" & If(SelectedExpirationSettings.WindowsDefault, 42, SelectedExpirationSettings.Days) End If - ReportMessage("Saving user settings...", 20) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 20) DynaLog.LogMessage("Saving Account Lockout settings...") If SelectedLockoutSettings.Enabled Then UnattendGen.StartInfo.Arguments &= " --lockout=yes" @@ -2080,7 +2080,7 @@ Public Class NewUnattendWiz UnattendGen.StartInfo.Arguments &= " --lockout=no" End If If VirtualMachineSupported Then - ReportMessage("Saving user settings...", 22) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 22) DynaLog.LogMessage("Saving VM provider settings...") Select Case SelectedVMSettings.Provider Case VMProvider.VirtualBox_GAs @@ -2094,7 +2094,7 @@ Public Class NewUnattendWiz End Select End If If Not NetworkConfigInteractive Then - ReportMessage("Saving user settings...", 24) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 24) DynaLog.LogMessage("Saving wireless settings...") If NetworkConfigManualSkip Then UnattendGen.StartInfo.Arguments &= " --wifi=no" @@ -2108,7 +2108,7 @@ Public Class NewUnattendWiz End If End If If Not SystemTelemetryInteractive Then - ReportMessage("Saving user settings...", 24.5) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 24.5) DynaLog.LogMessage("Saving system telemetry settings...") If SelectedTelemetrySettings.Enabled Then UnattendGen.StartInfo.Arguments &= " --telem=yes" @@ -2116,7 +2116,7 @@ Public Class NewUnattendWiz UnattendGen.StartInfo.Arguments &= " --telem=no" End If End If - ReportMessage("Saving user settings...", 24.625) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 24.625) DynaLog.LogMessage("Checking if scripts directory exists...") If Not Directory.Exists(Path.Combine(UnattendGen.StartInfo.WorkingDirectory, "Scripts")) Then DynaLog.LogMessage("Scripts directory does not exist. Attempting to create it...") @@ -2176,7 +2176,7 @@ Public Class NewUnattendWiz UnattendGen.StartInfo.Arguments &= " --hidewindows" End If If SystemComponentsEx.Count > 0 Then - ReportMessage("Saving user settings...", 24.75) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Saving.User.Settings.Label"), 24.75) DynaLog.LogMessage("Checking if components directory exists...") If Not Directory.Exists(Path.Combine(UnattendGen.StartInfo.WorkingDirectory, "Components")) Then DynaLog.LogMessage("Components directory does not exist. Attempting to create it...") @@ -2190,14 +2190,14 @@ Public Class NewUnattendWiz Next DynaLog.LogMessage("Components were saved.") End If - ReportMessage("Generating unattended answer file...", 25) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("GenerateAnswerFile.Label"), 25) DynaLog.LogMessage("Starting UnattendGen...") If Debugger.IsAttached Then UnattendGen.StartInfo.Arguments &= " --debug" UnattendGen.Start() UnattendGen.WaitForExit() DynaLog.LogMessage("UnattendGen finished with exit code " & Hex(UnattendGen.ExitCode)) - ReportMessage("Generating unattended answer file...", 50) - ReportMessage("Deleting temporary files...", 75) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("GenerateAnswerFile.Label"), 50) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Deleting.Temporary.Label"), 75) If File.Exists(Path.Combine(UnattendGen.StartInfo.WorkingDirectory, "diskpart.dp")) Then DynaLog.LogMessage("Deleting temporary DiskPart scripts...") File.Delete(Path.Combine(UnattendGen.StartInfo.WorkingDirectory, "diskpart.dp")) @@ -2209,14 +2209,14 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Deleting temporary scripts...") Directory.Delete(Path.Combine(UnattendGen.StartInfo.WorkingDirectory, "Scripts"), True) If UnattendGen.ExitCode <> 0 Then - MessageBox.Show("The unattended answer file generator could not generate the file. Here is the error code if you are interested:" & CrLf & CrLf & "Error code: " & Hex(UnattendGen.ExitCode)) + MessageBox.Show(LocalizationService.ForSection("Unattend.Messages").Format("GeneratorExit.Message", Hex(UnattendGen.ExitCode))) e.Cancel = True End If - ReportMessage("Generation has completed", 100) + ReportMessage(LocalizationService.ForSection("Unattend.Progress")("Generation.Completed.Label"), 100) Catch ex As Exception DynaLog.LogMessage("Could not generate the answer file. Error message: " & ex.Message) If UnattendGen.ExitCode <> 0 Then - MessageBox.Show("The unattended answer file generator could not generate the file. Here is the error code if you are interested:" & CrLf & CrLf & "Error: " & ex.Message) + MessageBox.Show(LocalizationService.ForSection("Unattend.Messages").Format("Generator.Message", ex.Message)) e.Cancel = True End If End Try @@ -2245,7 +2245,7 @@ Public Class NewUnattendWiz End Sub Private Sub LinkLabel2_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked - If MsgBox("Do you want to reuse the settings you've used in this answer file for the new one?", vbQuestion + vbYesNo, Text) = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("Unattend.Messages")("Reuse.Settings.Ve.Message"), vbQuestion + vbYesNo, Text) = MsgBoxResult.No Then ' Refresh the settings ReloadSettings() End If @@ -2264,7 +2264,7 @@ Public Class NewUnattendWiz ApplyUnattendFile.ShowDialog(MainForm) WindowState = FormWindowState.Normal Else - MsgBox("You need to load a project in order to apply this file.", vbOKOnly + vbExclamation, Text) + MsgBox(LocalizationService.ForSection("Unattend.Messages")("Load.Project.Order.Label"), vbOKOnly + vbExclamation, Text) Exit Sub End If End Sub @@ -2364,7 +2364,7 @@ Public Class NewUnattendWiz Private Sub UnattendGenBW_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles UnattendGenBW.RunWorkerCompleted If e.Error IsNot Nothing Then - MessageBox.Show("We couldn't prepare UnattendGen Self-Contained Setup. Reason:" & CrLf & e.Error.Message, "UnattendGen error", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("Unattend.Messages").Format("PrepareFailed.Label", e.Error.Message), LocalizationService.ForSection("NewUnattend.Validation")("Gen.Error.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error) If Directory.Exists(Path.Combine(Application.StartupPath, "Tools\UnattendGen\SelfContained")) Then Try Directory.Delete(Path.Combine(Application.StartupPath, "Tools\UnattendGen\SelfContained"), True) @@ -2395,7 +2395,7 @@ Public Class NewUnattendWiz Scintilla1.Text = File.ReadAllText(EditorModeOFD.FileName) Catch ex As Exception DynaLog.LogMessage("Could not load file. Error message: " & ex.Message) - MsgBox("Could not open file: " & ex.Message, vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("Unattend.Messages").Format("OpenFile.Label", ex.Message), vbOKOnly + vbCritical, Text) End Try End Sub @@ -2410,7 +2410,7 @@ Public Class NewUnattendWiz File.WriteAllText(EditorModeSFD.FileName, Scintilla1.Text, UTF8) Catch ex As Exception DynaLog.LogMessage("Could not save file. Error message: " & ex.Message) - MsgBox("Could not save file: " & ex.Message, vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("Unattend.Messages").Format("SaveFile.Label", ex.Message), vbOKOnly + vbCritical, Text) End Try End Sub @@ -2445,7 +2445,7 @@ Public Class NewUnattendWiz Scintilla1.Text = File.ReadAllText(SaveTarget) Catch ex As Exception DynaLog.LogMessage("Could not load file. Error message: " & ex.Message) - MsgBox("Could not open file: " & ex.Message, vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("Unattend.Messages").Format("OpenFile.Label", ex.Message), vbOKOnly + vbCritical, Text) Exit Sub End Try @@ -2460,8 +2460,8 @@ Public Class NewUnattendWiz EditorPanelTrigger.ForeColor = CurrentTheme.ForegroundColor PictureBox2.Image = My.Resources.editor_mode_select PictureBox3.Image = My.Resources.editor_mode_fc - Label3.Text = "Editor mode" - Label4.Text = "Create your unattended answer files from scratch and save them anywhere" + Label3.Text = LocalizationService.ForSection("Unattend.Mode")("EditorMode.Title") + Label4.Text = LocalizationService.ForSection("Unattend.Mode")("CreateUnattended.Description") FooterContainer.Visible = False End Sub @@ -2471,7 +2471,7 @@ Public Class NewUnattendWiz End Sub Private Sub Button3_MouseHover(sender As Object, e As EventArgs) Handles Button3.MouseHover - CNameTTip.Show("Uses the name of your computer as the computer name of the unattended answer file." & CrLf & "Only use this if the system you want to target is this one", sender) + CNameTTip.Show(LocalizationService.ForSection("Unattend.Tooltips")("Uses.Name.Computer.Message"), sender) End Sub Private Sub CheckBox19_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox19.CheckedChanged @@ -2657,10 +2657,10 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Copying key to clipboard...") My.Computer.Clipboard.SetText(TextBox2.Text) DynaLog.LogMessage("Key copied successfully.") - MsgBox("The product key was copied successfully to your clipboard.", vbOKOnly + vbInformation) + MsgBox(LocalizationService.ForSection("Unattend.Messages")("ProductKey.Copied.Done.Label"), vbOKOnly + vbInformation) Catch ex As Exception DynaLog.LogMessage("Could not copy key. Error message: " & ex.Message) - MsgBox("We could not copy the key to your clipboard. Error message: " & ex.Message, vbOKOnly + vbInformation) + MsgBox(LocalizationService.ForSection("Unattend.Messages").Format("Copy.Key.Clipboard.Label", ex.Message), vbOKOnly + vbInformation) End Try End Sub @@ -2747,7 +2747,7 @@ Public Class NewUnattendWiz Sub ShowReservedComponentStatusMessage(SelectedComponentIndex As Integer) If IsAReservedComponent(SystemComponentsEx(SelectedComponentIndex).Id, SystemComponentsEx(SelectedComponentIndex).Pass) Then - MessageBox.Show("This component is already reserved for proper OS installation. If you overwrite this component with your data, OS installation may not give you expected results.", "Component in use", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("Unattend.Messages")("Component.Already.Message"), LocalizationService.ForSection("Unattend.Messages")("ComponentUse.Title"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End If End Sub @@ -2874,7 +2874,7 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Could not copy this file. Error message: " & ex.Message) End Try Next - MsgBox("Cross-platform versions of UnattendGen are now copied to " & CPUnattendGenFBD.SelectedPath, vbOKOnly + vbInformation) + MsgBox(LocalizationService.ForSection("Unattend.Messages").Format("Cross.Platform.Label", CPUnattendGenFBD.SelectedPath), vbOKOnly + vbInformation) End If End Sub @@ -2987,7 +2987,7 @@ Public Class NewUnattendWiz DynaLog.LogMessage("Detemining contents of current Scintilla control...") If Scintilla3.Text <> "" Then DynaLog.LogMessage("Current Scintilla control is not empty. Asking before proceeding...") - If MsgBox("Importing this script will overwrite any existing data in the current post-installation script. It is best that you create a new entry before proceeding. Do you want to continue?", vbYesNo + vbQuestion) = MsgBoxResult.No Then + If MsgBox(LocalizationService.ForSection("Unattend.Messages")("ImportOverwrite.Message"), vbYesNo + vbQuestion) = MsgBoxResult.No Then DynaLog.LogMessage("User said no. Exiting...") Exit Sub End If @@ -3048,12 +3048,12 @@ Public Class NewUnattendWiz If EditionMapping.ContainsKey(MainForm.CurrentImage.ImageEditionId) Then ComboBox6.SelectedItem = EditionMapping(MainForm.CurrentImage.ImageEditionId) Else - MsgBox("There is no product key for the " & Quote & MainForm.CurrentImage.ImageEditionId & Quote & " edition.", vbOKOnly + vbInformation) + MsgBox(LocalizationService.ForSection("Unattend.Messages").Format("ProductKey.None.Label", MainForm.CurrentImage.ImageEditionId), vbOKOnly + vbInformation) End If End Sub Private Sub Button21_MouseHover(sender As Object, e As EventArgs) Handles Button21.MouseHover - CNameTTip.Show("Click here to attempt to grab the edition of the currently loaded image. This will help you use a suitable product key for said Windows image.", sender) + CNameTTip.Show(LocalizationService.ForSection("Unattend.Tooltips")("Attempt.Grab.Message"), sender) End Sub Private Sub Button22_Click(sender As Object, e As EventArgs) Handles Button22.Click @@ -3061,13 +3061,11 @@ Public Class NewUnattendWiz End Sub Private Sub Button22_MouseHover(sender As Object, e As EventArgs) Handles Button22.MouseHover - WindowHelper.DisplayToolTip(sender, "Choose this option to automatically configure the target location to one of the countries in the European Economic Area (EEA). This will let you" & CrLf & - "configure settings in the target system that you would not be able to when using a region outside the EEA. After Setup is complete, you can reconfigure" & CrLf & - "the region to your current location.") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("Unattend.Tooltips")("AutoChoose.Message")) End Sub Private Sub CheckBox23_MouseHover(sender As Object, e As EventArgs) Handles CheckBox27.MouseHover, CheckBox26.MouseHover, CheckBox25.MouseHover, CheckBox24.MouseHover, CheckBox23.MouseHover - WindowHelper.DisplayToolTip(sender, "Check this field to customize this user's display name") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("Unattend.Tooltips")("Check.Field.Customize.Label")) End Sub Private Sub CheckBox27_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox27.CheckedChanged @@ -3136,6 +3134,6 @@ Public Class NewUnattendWiz End Sub Private Sub Button23_MouseHover(sender As Object, e As EventArgs) Handles Button23.MouseHover - WindowHelper.DisplayToolTip(sender, "Rearrange post-installation scripts...") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("Unattend.Tooltips")("RearrangeScripts.Label")) End Sub End Class \ No newline at end of file diff --git a/Panels/Unattend_Files/Addition/SampleScriptBrowser.Designer.vb b/Panels/Unattend_Files/Addition/SampleScriptBrowser.Designer.vb index f0b8c4ea1..bce1018f6 100644 --- a/Panels/Unattend_Files/Addition/SampleScriptBrowser.Designer.vb +++ b/Panels/Unattend_Files/Addition/SampleScriptBrowser.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class SampleScriptBrowser Inherits System.Windows.Forms.Form @@ -90,7 +90,7 @@ Partial Class SampleScriptBrowser Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Ok.Button") ' 'Cancel_Button ' @@ -101,7 +101,7 @@ Partial Class SampleScriptBrowser Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Cancel.Button") ' 'ActionPanel ' @@ -121,7 +121,7 @@ Partial Class SampleScriptBrowser Me.CreateStarterScriptBtn.Name = "CreateStarterScriptBtn" Me.CreateStarterScriptBtn.Size = New System.Drawing.Size(205, 23) Me.CreateStarterScriptBtn.TabIndex = 1 - Me.CreateStarterScriptBtn.Text = "Create your own starter scripts..." + Me.CreateStarterScriptBtn.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Create.Starter.Button") Me.CreateStarterScriptBtn.UseVisualStyleBackColor = True ' 'ScriptListPanel @@ -148,7 +148,7 @@ Partial Class SampleScriptBrowser ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Name.Column") Me.ColumnHeader1.Width = 286 ' 'ScriptStageSelectionPanel @@ -164,7 +164,7 @@ Partial Class SampleScriptBrowser 'ComboBox1 ' Me.ComboBox1.FormattingEnabled = True - Me.ComboBox1.Items.AddRange(New Object() {"During System Configuration", "When the first user logs on", "Whenever a user logs on for the first time", "Scripts defined by the user"}) + Me.ComboBox1.Items.AddRange(New Object() {LocalizationService.ForSection("Designer.ScriptBrowser")("System.Config.Item"), LocalizationService.ForSection("Designer.ScriptBrowser")("First.User.Logs.Item"), LocalizationService.ForSection("Designer.ScriptBrowser")("Whenever.User.Logs.Item"), LocalizationService.ForSection("Designer.ScriptBrowser")("Scripts.Defined.User.Item")}) Me.ComboBox1.Location = New System.Drawing.Point(15, 36) Me.ComboBox1.Name = "ComboBox1" Me.ComboBox1.Size = New System.Drawing.Size(291, 21) @@ -177,7 +177,7 @@ Partial Class SampleScriptBrowser Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(153, 13) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Choose a stage or script type:" + Me.Label1.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Stage.Type.Choose.Label") ' 'ScriptDetailsContainerPanel ' @@ -213,7 +213,7 @@ Partial Class SampleScriptBrowser Me.EnterFSModeBtn.Name = "EnterFSModeBtn" Me.EnterFSModeBtn.Size = New System.Drawing.Size(107, 23) Me.EnterFSModeBtn.TabIndex = 7 - Me.EnterFSModeBtn.Text = "Enlarge preview" + Me.EnterFSModeBtn.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("EnlargePreview.Label") Me.EnterFSModeBtn.UseVisualStyleBackColor = True ' 'ExportScriptCodeBtn @@ -223,7 +223,7 @@ Partial Class SampleScriptBrowser Me.ExportScriptCodeBtn.Name = "ExportScriptCodeBtn" Me.ExportScriptCodeBtn.Size = New System.Drawing.Size(192, 23) Me.ExportScriptCodeBtn.TabIndex = 7 - Me.ExportScriptCodeBtn.Text = "Export script code to a file..." + Me.ExportScriptCodeBtn.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Export.Code.File.Button") Me.ExportScriptCodeBtn.UseVisualStyleBackColor = True ' 'RichTextBox1 @@ -246,8 +246,7 @@ Partial Class SampleScriptBrowser Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(399, 13) Me.Label7.TabIndex = 2 - Me.Label7.Text = "Click OK to insert this script. Existing script contents will be replaced by this" & _ - " script." + Me.Label7.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Okinsert.Label") ' 'Label6 ' @@ -256,7 +255,7 @@ Partial Class SampleScriptBrowser Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(66, 13) Me.Label6.TabIndex = 2 - Me.Label6.Text = "Script Code:" + Me.Label6.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("ScriptCode.Label") ' 'Label5 ' @@ -265,7 +264,7 @@ Partial Class SampleScriptBrowser Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(58, 13) Me.Label5.TabIndex = 2 - Me.Label5.Text = "Language:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Language.Label") ' 'Label4 ' @@ -276,7 +275,7 @@ Partial Class SampleScriptBrowser Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(588, 48) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Script Description" + Me.Label4.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Description.Label") ' 'Label3 ' @@ -287,7 +286,7 @@ Partial Class SampleScriptBrowser Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(661, 44) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Script Name" + Me.Label3.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("ScriptName.Label") ' 'ScriptDetailsNoSelectedPanel ' @@ -308,7 +307,7 @@ Partial Class SampleScriptBrowser Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(481, 96) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Select a script to view its information." + Me.Label2.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("View.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label8 @@ -320,12 +319,12 @@ Partial Class SampleScriptBrowser Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(656, 192) Me.Label8.TabIndex = 0 - Me.Label8.Text = resources.GetString("Label8.Text") + Me.Label8.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("StarterScripts.Help.Message") Me.Label8.TextAlign = System.Drawing.ContentAlignment.TopCenter ' 'ScriptCodeExporterSFD ' - Me.ScriptCodeExporterSFD.Title = "Export Script Code" + Me.ScriptCodeExporterSFD.Title = LocalizationService.ForSection("Designer.ScriptBrowser")("Export.Code.Title") ' 'SSETimer ' @@ -372,7 +371,7 @@ Partial Class SampleScriptBrowser Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(336, 13) Me.Label9.TabIndex = 9 - Me.Label9.Text = "To leave full screen mode, click the button on the right or press ESC." + Me.Label9.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("Leave.Full.Screen.Label") ' 'ExitFSModeBtn ' @@ -382,7 +381,7 @@ Partial Class SampleScriptBrowser Me.ExitFSModeBtn.Name = "ExitFSModeBtn" Me.ExitFSModeBtn.Size = New System.Drawing.Size(107, 23) Me.ExitFSModeBtn.TabIndex = 8 - Me.ExitFSModeBtn.Text = "Go back" + Me.ExitFSModeBtn.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("GoBack.Label") Me.ExitFSModeBtn.UseVisualStyleBackColor = True ' 'SampleScriptBrowser @@ -404,7 +403,7 @@ Partial Class SampleScriptBrowser Me.Name = "SampleScriptBrowser" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Load a predefined Starter Script" + Me.Text = LocalizationService.ForSection("Designer.ScriptBrowser")("LoadStarterScript.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ActionPanel.ResumeLayout(False) Me.ScriptListPanel.ResumeLayout(False) diff --git a/Panels/Unattend_Files/Addition/SampleScriptBrowser.resx b/Panels/Unattend_Files/Addition/SampleScriptBrowser.resx index e62413f7e..cd1279871 100644 --- a/Panels/Unattend_Files/Addition/SampleScriptBrowser.resx +++ b/Panels/Unattend_Files/Addition/SampleScriptBrowser.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,13 +59,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - These predefined starter scripts can help you get the most out of your Windows image when using this unattended answer file. These scripts have been curated and tested by the developers. - -To get started, select a starter script from the list on the left. - -If you have a starter script that isn't included in this set of scripts, you can load it from the file system instead. - 17, 17 diff --git a/Panels/Unattend_Files/Addition/SampleScriptBrowser.vb b/Panels/Unattend_Files/Addition/SampleScriptBrowser.vb index b5c114b99..6c6ac343a 100644 --- a/Panels/Unattend_Files/Addition/SampleScriptBrowser.vb +++ b/Panels/Unattend_Files/Addition/SampleScriptBrowser.vb @@ -16,7 +16,7 @@ Public Class SampleScriptBrowser Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click If OptionsCustomizable Then - MessageBox.Show("After this script is imported, please check its code for any options that you can set. That way you can customize its behavior.", Text, MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("Unattend.Scripts")("ImportDone.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Information) End If Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() @@ -156,7 +156,7 @@ Public Class SampleScriptBrowser If Not LoadAllStarterScripts() Then ' starter scripts could not be loaded. stop - MessageBox.Show("The starter scripts could not be loaded.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("Unattend.Scripts")("Loaded.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) DialogResult = Windows.Forms.DialogResult.Cancel Close() Exit Sub @@ -199,7 +199,7 @@ Public Class SampleScriptBrowser Label3.Text = script.Name Label4.Text = script.Description - Label5.Text = String.Format("Language: {0}", script.Language) + Label5.Text = LocalizationService.ForSection("Designer.ScriptBrowser").Format("Language.Value.Label", script.Language) RichTextBox1.Text = script.ScriptCode RichTextBox2.Text = script.ScriptCode @@ -226,9 +226,10 @@ Public Class SampleScriptBrowser End Sub Private Sub CreateStarterScriptBtn_Click(sender As Object, e As EventArgs) Handles CreateStarterScriptBtn.Click - If File.Exists(Path.Combine(Application.StartupPath, "tools", "StarterScriptEditor", "StarterScriptEditor.exe")) Then - Process.Start(Path.Combine(Application.StartupPath, "tools", "StarterScriptEditor", "StarterScriptEditor.exe"), - String.Format("/userdata={0}", ControlChars.Quote & Path.Combine(Application.StartupPath, "userdata", "starter_scripts") & ControlChars.Quote)) + Dim editorPath As String = Path.Combine(Application.StartupPath, "tools", "StarterScriptEditor", "StarterScriptEditor.exe") + If MainForm.TryLaunchExternalTool(editorPath, + CreateStarterScriptBtn.Text, + String.Format("/userdata={0} {1}", ControlChars.Quote & Path.Combine(Application.StartupPath, "userdata", "starter_scripts") & ControlChars.Quote, LocalizationService.GetLanguageCommandLineArgument())) Then TableLayoutPanel1.Enabled = False WindowHelper.DisableCloseCapability(Handle) SSETimer.Enabled = True @@ -241,14 +242,14 @@ Public Class SampleScriptBrowser If targetSS IsNot Nothing Then Select Case targetSS.Language.ToLower() Case "batch" - ScriptCodeExporterSFD.Filter = "Batch Scripts|*.bat;*.cmd" + ScriptCodeExporterSFD.Filter = LocalizationService.ForSection("Panels.Unattend.Scripts")("BatchScripts.Filter") Case "powershell" - ScriptCodeExporterSFD.Filter = "PowerShell Scripts|*.ps1" + ScriptCodeExporterSFD.Filter = LocalizationService.ForSection("Panels.Unattend.Scripts")("Power.Shell.Filter") Case Else - ScriptCodeExporterSFD.Filter = "All Files|*.*" + ScriptCodeExporterSFD.Filter = LocalizationService.ForSection("Panels.Unattend.Scripts")("AllFiles.Filter") End Select Else - ScriptCodeExporterSFD.Filter = "All Files|*.*" + ScriptCodeExporterSFD.Filter = LocalizationService.ForSection("Panels.Unattend.Scripts")("AllFiles.SecondFilter") End If ScriptCodeExporterSFD.ShowDialog(Me) End Sub @@ -282,12 +283,18 @@ Public Class SampleScriptBrowser ' Show all items in the combobox RemoveHandler ComboBox1.SelectedIndexChanged, AddressOf ComboBox1_SelectedIndexChanged ComboBox1.Items.Clear() - ComboBox1.Items.AddRange({"During System Configuration", "When the first user logs on", "Whenever a user logs on for the first time", "Scripts defined by the user"}) + Dim ScriptBrowserLocalizer = LocalizationService.ForSection("Designer.ScriptBrowser") + ComboBox1.Items.AddRange({ + ScriptBrowserLocalizer("System.Config.Item"), + ScriptBrowserLocalizer("First.User.Logs.Item"), + ScriptBrowserLocalizer("Whenever.User.Logs.Item"), + ScriptBrowserLocalizer("Scripts.Defined.User.Item") + }) If Not LoadAllStarterScripts() Then ' starter scripts could not be loaded. stop AddHandler ComboBox1.SelectedIndexChanged, AddressOf ComboBox1_SelectedIndexChanged - MessageBox.Show("The starter scripts could not be refreshed.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("Unattend.Scripts")("Refreshed.Message"), Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Exit Sub End If AddHandler ComboBox1.SelectedIndexChanged, AddressOf ComboBox1_SelectedIndexChanged diff --git a/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.Designer.vb b/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.Designer.vb index 4e7171afd..fe9492b8b 100644 --- a/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.Designer.vb +++ b/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ScriptReorderDialog Inherits System.Windows.Forms.Form @@ -79,7 +79,7 @@ Partial Class ScriptReorderDialog Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("Designer.ScriptReorder")("Ok.Button") ' 'Cancel_Button ' @@ -90,7 +90,7 @@ Partial Class ScriptReorderDialog Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("Designer.ScriptReorder")("Cancel.Button") ' 'Label1 ' @@ -101,7 +101,7 @@ Partial Class ScriptReorderDialog Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(981, 37) Me.Label1.TabIndex = 1 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("Designer.ScriptReorder")("Dialog.Alter.Order.Message") ' 'Panel1 ' @@ -172,7 +172,7 @@ Partial Class ScriptReorderDialog Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(66, 13) Me.Label3.TabIndex = 0 - Me.Label3.Text = "Script Code:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ScriptReorder")("ScriptCode.Label") ' 'Panel3 ' @@ -201,7 +201,7 @@ Partial Class ScriptReorderDialog ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Script #" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.ScriptReorder")("Script.Column") Me.ColumnHeader1.Width = 256 ' 'Panel6 @@ -272,7 +272,7 @@ Partial Class ScriptReorderDialog Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(69, 13) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Script Order:" + Me.Label2.Text = LocalizationService.ForSection("Designer.ScriptReorder")("ScriptOrder.Label") ' 'CheckBox1 ' @@ -284,7 +284,7 @@ Partial Class ScriptReorderDialog Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(72, 23) Me.CheckBox1.TabIndex = 1 - Me.CheckBox1.Text = "Word Wrap" + Me.CheckBox1.Text = LocalizationService.ForSection("Designer.ScriptReorder")("WordWrap.CheckBox") Me.CheckBox1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.CheckBox1.UseVisualStyleBackColor = True ' @@ -306,7 +306,7 @@ Partial Class ScriptReorderDialog Me.Name = "ScriptReorderDialog" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Reorder scripts for this stage" + Me.Text = LocalizationService.ForSection("Designer.ScriptReorder")("Scripts.Stage.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.Panel1.ResumeLayout(False) Me.Panel2.ResumeLayout(False) diff --git a/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.resx b/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.resx index a03294653..7905453d9 100644 --- a/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.resx +++ b/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,7 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Use this dialog to alter the order with which the scripts will be run. Click OK to save the changes. Items at the top of the list are the first scripts that will run, whilst those at the bottom of the list are the last that will run. - - \ No newline at end of file + \ No newline at end of file diff --git a/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.vb b/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.vb index 4219728fa..9ed1dbab4 100644 --- a/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.vb +++ b/Panels/Unattend_Files/Addition/ScriptManagement/ScriptReorderDialog.vb @@ -1,4 +1,4 @@ -Imports System.Windows.Forms +Imports System.Windows.Forms Public Class ScriptReorderDialog @@ -32,7 +32,7 @@ Public Class ScriptReorderDialog Private Sub ShowScriptSet() ListView1.Items.Clear() - ListView1.Items.AddRange(ScriptSet.Select(Function(script) New ListViewItem(New String() {String.Format("Script {0}", ScriptSet.IndexOf(script) + 1)})).ToArray()) + ListView1.Items.AddRange(ScriptSet.Select(Function(script) New ListViewItem(New String() {String.Format(LocalizationService.ForSection("ScriptReorder")("Script.Label"), ScriptSet.IndexOf(script) + 1)})).ToArray()) End Sub Private Sub MoveScript(SourceIndex As Integer, NewIndex As Integer) @@ -93,19 +93,19 @@ Public Class ScriptReorderDialog End Sub Private Sub MoveFirstBtn_MouseHover(sender As Object, e As EventArgs) Handles MoveFirstBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Move selected script to the top") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("ScriptReorder")("Move.Selected.Top.Label")) End Sub Private Sub MovePreviousBtn_MouseHover(sender As Object, e As EventArgs) Handles MovePreviousBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Move selected script to the previous position") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("ScriptReorder")("Move.Selected.Previous.Label")) End Sub Private Sub MoveNextBtn_MouseHover(sender As Object, e As EventArgs) Handles MoveNextBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Move selected script to the next position") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("ScriptReorder")("Move.Selected.Next.Label")) End Sub Private Sub MoveLastBtn_MouseHover(sender As Object, e As EventArgs) Handles MoveLastBtn.MouseHover - WindowHelper.DisplayToolTip(sender, "Move selected script to the bottom") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("ScriptReorder")("Move.Selected.Bottom.Label")) End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged diff --git a/Panels/Unattend_Files/Management/UnattendMgr.Designer.vb b/Panels/Unattend_Files/Management/UnattendMgr.Designer.vb index d20e7a159..a2f120cf7 100644 --- a/Panels/Unattend_Files/Management/UnattendMgr.Designer.vb +++ b/Panels/Unattend_Files/Management/UnattendMgr.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class UnattendMgr Inherits System.Windows.Forms.Form @@ -46,7 +46,7 @@ Partial Class UnattendMgr Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(119, 13) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Project path:" + Me.Label1.Text = LocalizationService.ForSection("Designer.UnattendMgr")("ProjectPath.Label") ' 'TextBox1 ' @@ -65,7 +65,7 @@ Partial Class UnattendMgr Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("Designer.UnattendMgr")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'ListView1 @@ -84,22 +84,22 @@ Partial Class UnattendMgr ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "File name" + Me.ColumnHeader1.Text = LocalizationService.ForSection("Designer.UnattendMgr")("FileName.Column") Me.ColumnHeader1.Width = 431 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Created" + Me.ColumnHeader2.Text = LocalizationService.ForSection("Designer.UnattendMgr")("Created.Column") Me.ColumnHeader2.Width = 168 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Last modified" + Me.ColumnHeader3.Text = LocalizationService.ForSection("Designer.UnattendMgr")("LastModified.Column") Me.ColumnHeader3.Width = 144 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Last accessed" + Me.ColumnHeader4.Text = LocalizationService.ForSection("Designer.UnattendMgr")("LastAccessed.Column") Me.ColumnHeader4.Width = 145 ' 'ActionsTLP @@ -130,7 +130,7 @@ Partial Class UnattendMgr Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(322, 23) Me.Button4.TabIndex = 3 - Me.Button4.Text = "Apply to image..." + Me.Button4.Text = LocalizationService.ForSection("Designer.UnattendMgr")("ApplyImage.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Button3 @@ -142,7 +142,7 @@ Partial Class UnattendMgr Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(322, 23) Me.Button3.TabIndex = 2 - Me.Button3.Text = "Open file location" + Me.Button3.Text = LocalizationService.ForSection("Designer.UnattendMgr")("Open.File.Location.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button2 @@ -154,7 +154,7 @@ Partial Class UnattendMgr Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(322, 23) Me.Button2.TabIndex = 0 - Me.Button2.Text = "Open file" + Me.Button2.Text = LocalizationService.ForSection("Designer.UnattendMgr")("OpenFile.Button") Me.Button2.UseVisualStyleBackColor = True ' 'FolderBrowserDialog1 @@ -176,7 +176,7 @@ Partial Class UnattendMgr Me.MinimumSize = New System.Drawing.Size(1024, 600) Me.Name = "UnattendMgr" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Unattended answer file manager" + Me.Text = LocalizationService.ForSection("Designer.UnattendMgr")("Unattended.AnswerFile.Label") Me.ActionsTLP.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Panels/Unattend_Files/Management/UnattendMgr.vb b/Panels/Unattend_Files/Management/UnattendMgr.vb index 8a12e7a63..ae6b086bb 100644 --- a/Panels/Unattend_Files/Management/UnattendMgr.vb +++ b/Panels/Unattend_Files/Management/UnattendMgr.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports Microsoft.VisualBasic.ControlChars Public Class UnattendMgr @@ -48,31 +48,7 @@ Public Class UnattendMgr End If Else DynaLog.LogMessage("The folder does not exist.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - errorMsg = "The folder path does not exist" - Case "ESN" - errorMsg = "La carpeta especificada no existe" - Case "FRA" - errorMsg = "Le chemin d'accès au dossier n'existe pas" - Case "PTB", "PTG" - errorMsg = "A localização da pasta não existe" - Case "ITA" - errorMsg = "Il percorso della cartella non esiste" - End Select - Case 1 - errorMsg = "The folder path does not exist" - Case 2 - errorMsg = "La carpeta especificada no existe" - Case 3 - errorMsg = "Le chemin d'accès au dossier n'existe pas" - Case 4 - errorMsg = "A localização da pasta não existe" - Case 5 - errorMsg = "Il percorso della cartella non esiste" - End Select + errorMsg = LocalizationService.ForSection("Unattend.Scan")("FolderMissing.Message") Throw New Exception(errorMsg) End If If UnattendFiles.Length > 0 Then @@ -82,31 +58,7 @@ Public Class UnattendMgr Next Else DynaLog.LogMessage("No unattended answer files have been detected.") - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - errorMsg = "Search concluded with no elements found" - Case "ESN" - errorMsg = "La búsqueda ha finalizado. No se han encontrado elementos" - Case "FRA" - errorMsg = "La recherche s'est terminée sans qu'aucun élément n'ait été trouvé" - Case "PTB", "PTG" - errorMsg = "Pesquisa concluída sem elementos encontrados" - Case "ITA" - errorMsg = "La ricerca si è conclusa con nessun elemento trovato" - End Select - Case 1 - errorMsg = "Search concluded with no elements found" - Case 2 - errorMsg = "La búsqueda ha finalizado. No se han encontrado elementos" - Case 3 - errorMsg = "La recherche s'est terminée sans qu'aucun élément n'ait été trouvé" - Case 4 - errorMsg = "Pesquisa concluída sem elementos encontrados" - Case 5 - errorMsg = "La ricerca si è conclusa con nessun elemento trovato" - End Select + errorMsg = LocalizationService.ForSection("Unattend.Scan")("ElementsFound.Message") Throw New Exception(errorMsg) End If Catch ex As Exception @@ -138,121 +90,16 @@ Public Class UnattendMgr End Sub Private Sub UnattendMgr_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Text = "Unattended answer file manager" - Label1.Text = "Project path:" - Button1.Text = "Browse..." - Button2.Text = "Open file" - Button3.Text = "Open file location" - Button4.Text = "Apply to image..." - ListView1.Columns(0).Text = "File name" - ListView1.Columns(1).Text = "Created" - ListView1.Columns(2).Text = "Last modified" - ListView1.Columns(3).Text = "Last accessed" - Case "ESN" - Text = "Administrador de archivos de respuesta desatendida" - Label1.Text = "Ubicación de proyecto:" - Button1.Text = "Examinar..." - Button2.Text = "Abrir archivo" - Button3.Text = "Abrir ubicación del archivo" - Button4.Text = "Aplicar a una imagen..." - ListView1.Columns(0).Text = "Nombre de archivo" - ListView1.Columns(1).Text = "Creado" - ListView1.Columns(2).Text = "Última modificación" - ListView1.Columns(3).Text = "Último acceso" - Case "FRA" - Text = "Gestionnaire de fichiers de réponse sans surveillance" - Label1.Text = "Chemin du projet :" - Button1.Text = "Parcourir..." - Button2.Text = "Ouvrir le fichier" - Button3.Text = "Ouvrir l'emplacement du fichier" - Button4.Text = "Appliquer à l'image..." - ListView1.Columns(0).Text = "Nom du fichier" - ListView1.Columns(1).Text = "Créé" - ListView1.Columns(2).Text = "Dernière modification" - ListView1.Columns(3).Text = "Dernier accès" - Case "PTB", "PTG" - Text = "Gestor de ficheiros de resposta não assistida" - Label1.Text = "Localização do projeto:" - Button1.Text = "Procurar..." - Button2.Text = "Abrir ficheiro" - Button3.Text = "Abrir localização do ficheiro" - Button4.Text = "Aplicar à imagem..." - ListView1.Columns(0).Text = "Nome do ficheiro" - ListView1.Columns(1).Text = "Criado" - ListView1.Columns(2).Text = "Última modificação" - ListView1.Columns(3).Text = "Último acesso" - Case "ITA" - Text = "Gestore file di risposta non presidiato" - Label1.Text = "Posizione del progetto:" - Button1.Text = "Sfoglia..." - Button2.Text = "Apri file" - Button3.Text = "Apri il percorso del file" - Button4.Text = "Applica all'immagine..." - ListView1.Columns(0).Text = "Nome del file" - ListView1.Columns(1).Text = "Creato" - ListView1.Columns(2).Text = "Ultima modifica" - ListView1.Columns(3).Text = "Ultimo accesso" - End Select - Case 1 - Text = "Unattended answer file manager" - Label1.Text = "Project path:" - Button1.Text = "Browse..." - Button2.Text = "Open file" - Button3.Text = "Open file location" - Button4.Text = "Apply to image..." - ListView1.Columns(0).Text = "File name" - ListView1.Columns(1).Text = "Created" - ListView1.Columns(2).Text = "Last modified" - ListView1.Columns(3).Text = "Last accessed" - Case 2 - Text = "Administrador de archivos de respuesta desatendida" - Label1.Text = "Ubicación de proyecto:" - Button1.Text = "Examinar..." - Button2.Text = "Abrir archivo" - Button3.Text = "Abrir ubicación del archivo" - Button4.Text = "Aplicar a una imagen..." - ListView1.Columns(0).Text = "Nombre de archivo" - ListView1.Columns(1).Text = "Creado" - ListView1.Columns(2).Text = "Última modificación" - ListView1.Columns(3).Text = "Último acceso" - Case 3 - Text = "Gestionnaire de fichiers de réponse sans surveillance" - Label1.Text = "Chemin du projet :" - Button1.Text = "Parcourir..." - Button2.Text = "Ouvrir le fichier" - Button3.Text = "Ouvrir l'emplacement du fichier" - Button4.Text = "Appliquer à l'image..." - ListView1.Columns(0).Text = "Nom du fichier" - ListView1.Columns(1).Text = "Créé" - ListView1.Columns(2).Text = "Dernière modification" - ListView1.Columns(3).Text = "Dernier accès" - Case 4 - Text = "Gestor de ficheiros de resposta não assistida" - Label1.Text = "Localização do projeto:" - Button1.Text = "Procurar..." - Button2.Text = "Abrir ficheiro" - Button3.Text = "Abrir localização do ficheiro" - Button4.Text = "Aplicar à imagem..." - ListView1.Columns(0).Text = "Nome do ficheiro" - ListView1.Columns(1).Text = "Criado" - ListView1.Columns(2).Text = "Última modificação" - ListView1.Columns(3).Text = "Último acesso" - Case 5 - Text = "Gestore file di risposta non presidiato" - Label1.Text = "Posizione del progetto:" - Button1.Text = "Sfoglia..." - Button2.Text = "Apri file" - Button3.Text = "Apri il percorso del file" - Button4.Text = "Applica all'immagine..." - ListView1.Columns(0).Text = "Nome del file" - ListView1.Columns(1).Text = "Creato" - ListView1.Columns(2).Text = "Ultima modifica" - ListView1.Columns(3).Text = "Ultimo accesso" - End Select + Text = LocalizationService.ForSection("UnattendMgr")("Unattended.AnswerFile.Label") + Label1.Text = LocalizationService.ForSection("UnattendMgr")("ProjectPath.Label") + Button1.Text = LocalizationService.ForSection("UnattendMgr")("Browse.Button") + Button2.Text = LocalizationService.ForSection("UnattendMgr")("OpenFile.Button") + Button3.Text = LocalizationService.ForSection("UnattendMgr")("Open.File.Location.Button") + Button4.Text = LocalizationService.ForSection("UnattendMgr")("ApplyImage.Button") + ListView1.Columns(0).Text = LocalizationService.ForSection("UnattendMgr")("FileName.Column") + ListView1.Columns(1).Text = LocalizationService.ForSection("UnattendMgr")("Created.Column") + ListView1.Columns(2).Text = LocalizationService.ForSection("UnattendMgr")("LastModified.Column") + ListView1.Columns(3).Text = LocalizationService.ForSection("UnattendMgr")("LastAccessed.Column") BackColor = CurrentTheme.SectionBackgroundColor ForeColor = CurrentTheme.ForegroundColor ListView1.BackColor = CurrentTheme.SectionBackgroundColor @@ -268,4 +115,4 @@ Public Class UnattendMgr ColumnHeader3.Width = WindowHelper.ScaleLogical(144) ColumnHeader4.Width = WindowHelper.ScaleLogical(144) End Sub -End Class \ No newline at end of file +End Class diff --git a/Panels/internal/ProjectValueLoadForm.Designer.vb b/Panels/internal/ProjectValueLoadForm.Designer.vb index 94495f344..b8e5bf54f 100644 --- a/Panels/internal/ProjectValueLoadForm.Designer.vb +++ b/Panels/internal/ProjectValueLoadForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class ProjectValueLoadForm Inherits System.Windows.Forms.Form @@ -114,7 +114,7 @@ Partial Class ProjectValueLoadForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(81, 13) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Old project file:" + Me.Label1.Text = LocalizationService.ForSection("Designer.ProjectValues")("Old.File.Label") ' 'RichTextBox1 ' @@ -137,7 +137,7 @@ Partial Class ProjectValueLoadForm Me.Exit_Button.Name = "Exit_Button" Me.Exit_Button.Size = New System.Drawing.Size(75, 23) Me.Exit_Button.TabIndex = 2 - Me.Exit_Button.Text = "Exit" + Me.Exit_Button.Text = LocalizationService.ForSection("Designer.ProjectValues")("ExitButton.Button") Me.Exit_Button.UseVisualStyleBackColor = True ' 'GroupBox1 @@ -225,7 +225,7 @@ Partial Class ProjectValueLoadForm Me.GroupBox1.Size = New System.Drawing.Size(852, 935) Me.GroupBox1.TabIndex = 3 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Independent values" + Me.GroupBox1.Text = LocalizationService.ForSection("Designer.ProjectValues")("Independent.Values.Group") ' 'Label25 ' @@ -234,7 +234,7 @@ Partial Class ProjectValueLoadForm Me.Label25.Name = "Label25" Me.Label25.Size = New System.Drawing.Size(64, 13) Me.Label25.TabIndex = 1 - Me.Label25.Text = "ImageLang:" + Me.Label25.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageLang.Label") ' 'Label26 ' @@ -243,7 +243,7 @@ Partial Class ProjectValueLoadForm Me.Label26.Name = "Label26" Me.Label26.Size = New System.Drawing.Size(92, 13) Me.Label26.TabIndex = 1 - Me.Label26.Text = "ImageReadWrite:" + Me.Label26.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Read.Write.Label") ' 'Label24 ' @@ -252,7 +252,7 @@ Partial Class ProjectValueLoadForm Me.Label24.Name = "Label24" Me.Label24.Size = New System.Drawing.Size(102, 13) Me.Label24.TabIndex = 1 - Me.Label24.Text = "ImageEpochModify:" + Me.Label24.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Epoch.Modify.Label") ' 'Label23 ' @@ -261,7 +261,7 @@ Partial Class ProjectValueLoadForm Me.Label23.Name = "Label23" Me.Label23.Size = New System.Drawing.Size(103, 13) Me.Label23.TabIndex = 1 - Me.Label23.Text = "ImageEpochCreate:" + Me.Label23.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Epoch.Create.Label") ' 'Label22 ' @@ -270,7 +270,7 @@ Partial Class ProjectValueLoadForm Me.Label22.Name = "Label22" Me.Label22.Size = New System.Drawing.Size(86, 13) Me.Label22.TabIndex = 1 - Me.Label22.Text = "ImageFileCount:" + Me.Label22.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageFileCount.Value") ' 'Label21 ' @@ -279,7 +279,7 @@ Partial Class ProjectValueLoadForm Me.Label21.Name = "Label21" Me.Label21.Size = New System.Drawing.Size(83, 13) Me.Label21.TabIndex = 1 - Me.Label21.Text = "ImageDirCount:" + Me.Label21.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Dir.Count.Label") ' 'Label20 ' @@ -288,7 +288,7 @@ Partial Class ProjectValueLoadForm Me.Label20.Name = "Label20" Me.Label20.Size = New System.Drawing.Size(81, 13) Me.Label20.TabIndex = 1 - Me.Label20.Text = "ImageSysRoot:" + Me.Label20.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Sys.Root.Label") ' 'Label19 ' @@ -297,7 +297,7 @@ Partial Class ProjectValueLoadForm Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(71, 13) Me.Label19.TabIndex = 1 - Me.Label19.Text = "ImagePSuite:" + Me.Label19.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImagePsuite.Label") ' 'Label18 ' @@ -306,7 +306,7 @@ Partial Class ProjectValueLoadForm Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(71, 13) Me.Label18.TabIndex = 1 - Me.Label18.Text = "ImagePType:" + Me.Label18.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImagePtype.Label") ' 'Label17 ' @@ -315,7 +315,7 @@ Partial Class ProjectValueLoadForm Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(73, 13) Me.Label17.TabIndex = 1 - Me.Label17.Text = "ImageEdition:" + Me.Label17.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageEdition.Value") ' 'Label16 ' @@ -324,7 +324,7 @@ Partial Class ProjectValueLoadForm Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(78, 13) Me.Label16.TabIndex = 1 - Me.Label16.Text = "ImageSPLevel:" + Me.Label16.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageSplevel.Label") ' 'Label15 ' @@ -333,7 +333,7 @@ Partial Class ProjectValueLoadForm Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(75, 13) Me.Label15.TabIndex = 1 - Me.Label15.Text = "ImageSPBuild:" + Me.Label15.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageSpbuild.Label") ' 'Label14 ' @@ -342,7 +342,7 @@ Partial Class ProjectValueLoadForm Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(56, 13) Me.Label14.TabIndex = 1 - Me.Label14.Text = "ImageHal:" + Me.Label14.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageHal.Label") ' 'Label13 ' @@ -351,7 +351,7 @@ Partial Class ProjectValueLoadForm Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(63, 13) Me.Label13.TabIndex = 1 - Me.Label13.Text = "ImageArch:" + Me.Label13.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageArch.Label") ' 'Label12 ' @@ -360,7 +360,7 @@ Partial Class ProjectValueLoadForm Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(85, 13) Me.Label12.TabIndex = 1 - Me.Label12.Text = "ImageWIMBoot:" + Me.Label12.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.WIM.Boot.Label") ' 'Label11 ' @@ -369,7 +369,7 @@ Partial Class ProjectValueLoadForm Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(94, 13) Me.Label11.TabIndex = 1 - Me.Label11.Text = "ImageDescription:" + Me.Label11.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageDescription.Label") ' 'Label10 ' @@ -378,7 +378,7 @@ Partial Class ProjectValueLoadForm Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(68, 13) Me.Label10.TabIndex = 1 - Me.Label10.Text = "ImageName:" + Me.Label10.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageName.Label") ' 'Label9 ' @@ -387,7 +387,7 @@ Partial Class ProjectValueLoadForm Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(76, 13) Me.Label9.TabIndex = 1 - Me.Label9.Text = "ImageVersion:" + Me.Label9.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageVersion.Label") ' 'Label8 ' @@ -396,7 +396,7 @@ Partial Class ProjectValueLoadForm Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(95, 13) Me.Label8.TabIndex = 1 - Me.Label8.Text = "ImageMountPoint:" + Me.Label8.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Mount.Point.Label") ' 'Label7 ' @@ -405,7 +405,7 @@ Partial Class ProjectValueLoadForm Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(69, 13) Me.Label7.TabIndex = 1 - Me.Label7.Text = "ImageIndex:" + Me.Label7.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageIndex.Label") ' 'Label6 ' @@ -414,7 +414,7 @@ Partial Class ProjectValueLoadForm Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(57, 13) Me.Label6.TabIndex = 1 - Me.Label6.Text = "ImageFile:" + Me.Label6.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageFile.Label") ' 'Label5 ' @@ -423,7 +423,7 @@ Partial Class ProjectValueLoadForm Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(103, 13) Me.Label5.TabIndex = 1 - Me.Label5.Text = "EpochCreationTime:" + Me.Label5.Text = LocalizationService.ForSection("Designer.ProjectValues")("Epoch.Creation.Time.Label") ' 'Label4 ' @@ -432,7 +432,7 @@ Partial Class ProjectValueLoadForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(51, 13) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Location:" + Me.Label4.Text = LocalizationService.ForSection("Designer.ProjectValues")("Location.Label") ' 'Label3 ' @@ -441,7 +441,7 @@ Partial Class ProjectValueLoadForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(38, 13) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Name:" + Me.Label3.Text = LocalizationService.ForSection("Designer.ProjectValues")("Name.Label") ' 'Label48 ' @@ -453,7 +453,7 @@ Partial Class ProjectValueLoadForm Me.Label48.Name = "Label48" Me.Label48.Size = New System.Drawing.Size(389, 56) Me.Label48.TabIndex = 0 - Me.Label48.Text = "Image file languages" + Me.Label48.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageFile.Languages.Label") ' 'Label47 ' @@ -465,7 +465,7 @@ Partial Class ProjectValueLoadForm Me.Label47.Name = "Label47" Me.Label47.Size = New System.Drawing.Size(389, 56) Me.Label47.TabIndex = 0 - Me.Label47.Text = "Image file creation and modification dates stored in Unix time (GMT+0)" + Me.Label47.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageFileDates.Label") ' 'Label49 ' @@ -477,7 +477,7 @@ Partial Class ProjectValueLoadForm Me.Label49.Name = "Label49" Me.Label49.Size = New System.Drawing.Size(389, 27) Me.Label49.TabIndex = 0 - Me.Label49.Text = "Verify if image has read-write permissions" + Me.Label49.Text = LocalizationService.ForSection("Designer.ProjectValues")("Verify.Image.Read.Label") ' 'Label46 ' @@ -489,7 +489,7 @@ Partial Class ProjectValueLoadForm Me.Label46.Name = "Label46" Me.Label46.Size = New System.Drawing.Size(389, 27) Me.Label46.TabIndex = 0 - Me.Label46.Text = "Image file count" + Me.Label46.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageFileCount.Label") ' 'Label45 ' @@ -501,7 +501,7 @@ Partial Class ProjectValueLoadForm Me.Label45.Name = "Label45" Me.Label45.Size = New System.Drawing.Size(389, 27) Me.Label45.TabIndex = 0 - Me.Label45.Text = "Image directory count" + Me.Label45.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Dir.Label.Label") ' 'Label44 ' @@ -513,7 +513,7 @@ Partial Class ProjectValueLoadForm Me.Label44.Name = "Label44" Me.Label44.Size = New System.Drawing.Size(389, 27) Me.Label44.TabIndex = 0 - Me.Label44.Text = "Image system root directory (\WINDOWS)" + Me.Label44.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.System.Root.Label") ' 'Label43 ' @@ -525,7 +525,7 @@ Partial Class ProjectValueLoadForm Me.Label43.Name = "Label43" Me.Label43.Size = New System.Drawing.Size(389, 27) Me.Label43.TabIndex = 0 - Me.Label43.Text = "Image product suite" + Me.Label43.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Product.Suite.Label") ' 'Label42 ' @@ -537,7 +537,7 @@ Partial Class ProjectValueLoadForm Me.Label42.Name = "Label42" Me.Label42.Size = New System.Drawing.Size(389, 27) Me.Label42.TabIndex = 0 - Me.Label42.Text = "Image product type" + Me.Label42.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Product.Type.Label") ' 'Label41 ' @@ -549,7 +549,7 @@ Partial Class ProjectValueLoadForm Me.Label41.Name = "Label41" Me.Label41.Size = New System.Drawing.Size(389, 27) Me.Label41.TabIndex = 0 - Me.Label41.Text = "Image edition" + Me.Label41.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageEdition.Label") ' 'Label40 ' @@ -561,7 +561,7 @@ Partial Class ProjectValueLoadForm Me.Label40.Name = "Label40" Me.Label40.Size = New System.Drawing.Size(389, 27) Me.Label40.TabIndex = 0 - Me.Label40.Text = "Image Service Pack level (SP1, SP2, SP3...)" + Me.Label40.Text = LocalizationService.ForSection("Designer.ProjectValues")("ServicePackLevel.Label") ' 'Label39 ' @@ -573,7 +573,7 @@ Partial Class ProjectValueLoadForm Me.Label39.Name = "Label39" Me.Label39.Size = New System.Drawing.Size(389, 27) Me.Label39.TabIndex = 0 - Me.Label39.Text = "Image Service Pack build" + Me.Label39.Text = LocalizationService.ForSection("Designer.ProjectValues")("ServicePackBuild.Label") ' 'Label38 ' @@ -585,7 +585,7 @@ Partial Class ProjectValueLoadForm Me.Label38.Name = "Label38" Me.Label38.Size = New System.Drawing.Size(389, 27) Me.Label38.TabIndex = 0 - Me.Label38.Text = "Image HAL (Hardware Abstraction Layer, hal.dll)" + Me.Label38.Text = LocalizationService.ForSection("Designer.ProjectValues")("HAL.Label") ' 'Label37 ' @@ -597,7 +597,7 @@ Partial Class ProjectValueLoadForm Me.Label37.Name = "Label37" Me.Label37.Size = New System.Drawing.Size(389, 27) Me.Label37.TabIndex = 0 - Me.Label37.Text = "Mounted image architecture (x86, amd64...)" + Me.Label37.Text = LocalizationService.ForSection("Designer.ProjectValues")("Mounted.Image.Arch.Label") ' 'Label36 ' @@ -609,7 +609,7 @@ Partial Class ProjectValueLoadForm Me.Label36.Name = "Label36" Me.Label36.Size = New System.Drawing.Size(389, 27) Me.Label36.TabIndex = 0 - Me.Label36.Text = "Verify if image supports WIMBoot (Win8.1 only)" + Me.Label36.Text = LocalizationService.ForSection("Designer.ProjectValues")("Verify.Image.Supports.Label") ' 'Label35 ' @@ -621,7 +621,7 @@ Partial Class ProjectValueLoadForm Me.Label35.Name = "Label35" Me.Label35.Size = New System.Drawing.Size(379, 27) Me.Label35.TabIndex = 0 - Me.Label35.Text = "Mounted image friendly description" + Me.Label35.Text = LocalizationService.ForSection("Designer.ProjectValues")("MountedDescription.Label") ' 'Label34 ' @@ -633,7 +633,7 @@ Partial Class ProjectValueLoadForm Me.Label34.Name = "Label34" Me.Label34.Size = New System.Drawing.Size(379, 27) Me.Label34.TabIndex = 0 - Me.Label34.Text = "Mounted image friendly name" + Me.Label34.Text = LocalizationService.ForSection("Designer.ProjectValues")("Mounted.Image.Friendly.Label") ' 'Label33 ' @@ -645,7 +645,7 @@ Partial Class ProjectValueLoadForm Me.Label33.Name = "Label33" Me.Label33.Size = New System.Drawing.Size(379, 27) Me.Label33.TabIndex = 0 - Me.Label33.Text = "Image version (grab version from ntoskrnl.exe)" + Me.Label33.Text = LocalizationService.ForSection("Designer.ProjectValues")("Image.Version.Grab.Label") ' 'Label32 ' @@ -657,7 +657,7 @@ Partial Class ProjectValueLoadForm Me.Label32.Name = "Label32" Me.Label32.Size = New System.Drawing.Size(379, 27) Me.Label32.TabIndex = 0 - Me.Label32.Text = "Image file mount point" + Me.Label32.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageFile.Mount.Point.Label") ' 'Label31 ' @@ -669,7 +669,7 @@ Partial Class ProjectValueLoadForm Me.Label31.Name = "Label31" Me.Label31.Size = New System.Drawing.Size(379, 27) Me.Label31.TabIndex = 0 - Me.Label31.Text = "Mounted image file index" + Me.Label31.Text = LocalizationService.ForSection("Designer.ProjectValues")("ImageFileIndex.Label") ' 'Label30 ' @@ -681,7 +681,7 @@ Partial Class ProjectValueLoadForm Me.Label30.Name = "Label30" Me.Label30.Size = New System.Drawing.Size(379, 27) Me.Label30.TabIndex = 0 - Me.Label30.Text = "Mounted image file name" + Me.Label30.Text = LocalizationService.ForSection("Designer.ProjectValues")("Mounted.ImageFile.Name.Label") ' 'Label29 ' @@ -693,7 +693,7 @@ Partial Class ProjectValueLoadForm Me.Label29.Name = "Label29" Me.Label29.Size = New System.Drawing.Size(379, 27) Me.Label29.TabIndex = 0 - Me.Label29.Text = "Project creation time in Unix time (GMT+0)" + Me.Label29.Text = LocalizationService.ForSection("Designer.ProjectValues")("Creation.Time.Unix.Label") ' 'Label28 ' @@ -705,7 +705,7 @@ Partial Class ProjectValueLoadForm Me.Label28.Name = "Label28" Me.Label28.Size = New System.Drawing.Size(379, 27) Me.Label28.TabIndex = 0 - Me.Label28.Text = "Project location" + Me.Label28.Text = LocalizationService.ForSection("Designer.ProjectValues")("ProjectLocation.Label") ' 'Label27 ' @@ -717,7 +717,7 @@ Partial Class ProjectValueLoadForm Me.Label27.Name = "Label27" Me.Label27.Size = New System.Drawing.Size(379, 27) Me.Label27.TabIndex = 0 - Me.Label27.Text = "Project name" + Me.Label27.Text = LocalizationService.ForSection("Designer.ProjectValues")("ProjectName.Label") ' 'Label2 ' @@ -726,8 +726,7 @@ Partial Class ProjectValueLoadForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(802, 34) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Get independent values by piping ""findstr"" to the ""type"" command. Also pass the """ & _ - "/b"" switch only to show matches on the beginning." + Me.Label2.Text = LocalizationService.ForSection("Designer.ProjectValues")("Independent.Values.Message") ' 'RichTextBox24 ' @@ -1033,7 +1032,7 @@ Partial Class ProjectValueLoadForm Me.Label50.Name = "Label50" Me.Label50.Size = New System.Drawing.Size(86, 13) Me.Label50.TabIndex = 0 - Me.Label50.Text = "New project file:" + Me.Label50.Text = LocalizationService.ForSection("Designer.ProjectValues")("New.File.Label") ' 'RichTextBox26 ' @@ -1056,7 +1055,7 @@ Partial Class ProjectValueLoadForm Me.Continue_Button.Name = "Continue_Button" Me.Continue_Button.Size = New System.Drawing.Size(75, 23) Me.Continue_Button.TabIndex = 2 - Me.Continue_Button.Text = "Continue" + Me.Continue_Button.Text = LocalizationService.ForSection("Designer.ProjectValues")("ContinueButton.Button") Me.Continue_Button.UseVisualStyleBackColor = True ' 'ProjectValueLoadForm @@ -1076,7 +1075,7 @@ Partial Class ProjectValueLoadForm Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.Name = "ProjectValueLoadForm" - Me.Text = "Project values" + Me.Text = LocalizationService.ForSection("Designer.ProjectValues")("ProjectValues.Label") Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() Me.ResumeLayout(False) diff --git a/README.md b/README.md index d589a4e53..834ef4d0d 100644 --- a/README.md +++ b/README.md @@ -307,3 +307,26 @@ Be sure to [follow our official subreddit](https://reddit.com/r/DISMTools) for r ## Contribute to the help system We want your help to build a great help system for DISMTools. If you want to contribute to it, you can read more [here](https://github.com/CodingWonders/dt_help). + +## Installer localization layout + +Installer translations are edited in `Installer\Languages`. Each installer language has one `.isl` file there. The bundled Inno Setup compiler files are stored separately in `Installer\Compiler`. The `Default.isl` file inside `Installer\Compiler` is a compiler runtime dependency, not the place where DISMTools installer translations should be edited. + +## Application localization layout + +Application localization files are stored in the root `language` folder. The program reads all `*.ini` files from that folder and builds the language selector from the files it finds there. + +Each language file should include metadata like this: + +```ini +[LanguageFileInformation] +LanguageAuthor=Translator name +LanguageCode=de-DE +LanguageName=Deutsch +``` + +To add a new application language, copy an existing INI file into `language`, update the metadata, and translate the values. The file name is not used as the language identifier. `LanguageCode` and `LanguageName` inside the file are the source of truth. Section names and key names should stay in English. Only the values after `=` should be translated. + +The application uses only the string setting `LanguageCode`. English, `en-US`, is the default language when no saved value exists. The initial setup wizard and the normal settings window both save `LanguageCode`, and the application reads it on the next launch. The main application and its utilities compile the same shared `Utilities\Language\LocalizationService.vb` source file, so there is only one localization implementation. + +When the PE Helper creates a Windows installation ISO, it exports one minimal language file for `autorun.exe`. That file contains only the exact localization keys used by the PE Helper interface. The complete DISMTools language file is not copied into the ISO. HotInstall keeps its own language resources and receives the current `LanguageCode` when it is launched. If HotInstall does not provide that translation, it uses English. diff --git a/Tools/DT_ThemeDesigner/ApplicationEvents.vb b/Tools/DT_ThemeDesigner/ApplicationEvents.vb index ced0f5f39..1be369393 100644 --- a/Tools/DT_ThemeDesigner/ApplicationEvents.vb +++ b/Tools/DT_ThemeDesigner/ApplicationEvents.vb @@ -2,17 +2,21 @@ Imports Microsoft.VisualBasic.ControlChars Namespace My - ' Los siguientes eventos estn disponibles para MyApplication: + ' Los siguientes eventos estn disponibles para MyApplication: ' - ' Inicio: se desencadena cuando se inicia la aplicacin, antes de que se cree el formulario de inicio. - ' Apagado: generado despus de cerrar todos los formularios de la aplicacin. Este evento no se genera si la aplicacin termina de forma anmala. - ' UnhandledException: generado si la aplicacin detecta una excepcin no controlada. - ' StartupNextInstance: se desencadena cuando se inicia una aplicacin de instancia nica y la aplicacin ya est activa. - ' NetworkAvailabilityChanged: se desencadena cuando la conexin de red est conectada o desconectada. + ' Inicio: se desencadena cuando se inicia la aplicacin, antes de que se cree el formulario de inicio. + ' Apagado: generado despus de cerrar todos los formularios de la aplicacin. Este evento no se genera si la aplicacin termina de forma anmala. + ' UnhandledException: generado si la aplicacin detecta una excepcin no controlada. + ' StartupNextInstance: se desencadena cuando se inicia una aplicacin de instancia nica y la aplicacin ya est activa. + ' NetworkAvailabilityChanged: se desencadena cuando la conexin de red est conectada o desconectada. Partial Friend Class MyApplication + Private Sub MyApplication_Startup(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup + LocalizationService.Initialize() + End Sub + Public Sub CatchEmAll(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles MyBase.UnhandledException - MsgBox("An internal error has occurred: " & CrLf & CrLf & e.Exception.ToString() & CrLf & CrLf & "Report this issue to the developers.", vbOKOnly + vbCritical, "Unhandled Error") + MsgBox(LocalizationService.ForSection("ThemeDesigner.Errors").Format("InternalError.Message", e.Exception.ToString()), vbOKOnly + vbCritical, LocalizationService.ForSection("ThemeDesigner.Errors")("UnhandledError.Message")) End Sub End Class diff --git a/Tools/DT_ThemeDesigner/DT_ThemeDesigner.vbproj b/Tools/DT_ThemeDesigner/DT_ThemeDesigner.vbproj index 93bb999ee..9acfa1553 100644 --- a/Tools/DT_ThemeDesigner/DT_ThemeDesigner.vbproj +++ b/Tools/DT_ThemeDesigner/DT_ThemeDesigner.vbproj @@ -77,6 +77,9 @@ + + Utilities\LocalizationService.vb + diff --git a/Tools/DT_ThemeDesigner/MainForm.Designer.vb b/Tools/DT_ThemeDesigner/MainForm.Designer.vb index 5c567379b..27bff0140 100644 --- a/Tools/DT_ThemeDesigner/MainForm.Designer.vb +++ b/Tools/DT_ThemeDesigner/MainForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MainForm Inherits System.Windows.Forms.Form @@ -129,7 +129,7 @@ Partial Class MainForm Me.GroupBox1.Size = New System.Drawing.Size(606, 154) Me.GroupBox1.TabIndex = 2 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Theme Colors" + Me.GroupBox1.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("ThemeColors.Group") ' 'Label17 ' @@ -138,7 +138,7 @@ Partial Class MainForm Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(35, 13) Me.Label17.TabIndex = 9 - Me.Label17.Text = "4" + Me.Label17.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("OptionFour.Label") Me.Label17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label16 @@ -148,7 +148,7 @@ Partial Class MainForm Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(35, 13) Me.Label16.TabIndex = 8 - Me.Label16.Text = "3" + Me.Label16.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("OptionThree.Label") Me.Label16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label15 @@ -158,7 +158,7 @@ Partial Class MainForm Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(35, 13) Me.Label15.TabIndex = 7 - Me.Label15.Text = "2" + Me.Label15.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("OptionTwo.Label") Me.Label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label14 @@ -168,7 +168,7 @@ Partial Class MainForm Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(35, 13) Me.Label14.TabIndex = 6 - Me.Label14.Text = "1" + Me.Label14.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("OptionOne.Label") Me.Label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label13 @@ -255,7 +255,7 @@ Partial Class MainForm Me.Button7.Name = "Button7" Me.Button7.Size = New System.Drawing.Size(75, 23) Me.Button7.TabIndex = 3 - Me.Button7.Text = "Change..." + Me.Button7.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Change.Button") Me.Button7.UseVisualStyleBackColor = True ' 'Button6 @@ -265,7 +265,7 @@ Partial Class MainForm Me.Button6.Name = "Button6" Me.Button6.Size = New System.Drawing.Size(75, 23) Me.Button6.TabIndex = 3 - Me.Button6.Text = "Change..." + Me.Button6.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Change.Button") Me.Button6.UseVisualStyleBackColor = True ' 'Button5 @@ -275,7 +275,7 @@ Partial Class MainForm Me.Button5.Name = "Button5" Me.Button5.Size = New System.Drawing.Size(75, 23) Me.Button5.TabIndex = 3 - Me.Button5.Text = "Change..." + Me.Button5.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Change.Button") Me.Button5.UseVisualStyleBackColor = True ' 'Button4 @@ -285,7 +285,7 @@ Partial Class MainForm Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(75, 23) Me.Button4.TabIndex = 3 - Me.Button4.Text = "Change..." + Me.Button4.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Change.Button") Me.Button4.UseVisualStyleBackColor = True ' 'Button2 @@ -295,7 +295,7 @@ Partial Class MainForm Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "Change..." + Me.Button2.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Change.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label3 @@ -305,7 +305,7 @@ Partial Class MainForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(184, 13) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Background Color for Inner Sections:" + Me.Label3.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Bg.Color.Inner.Label") ' 'Button3 ' @@ -314,7 +314,7 @@ Partial Class MainForm Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 2 - Me.Button3.Text = "Change..." + Me.Button3.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Change.Button") Me.Button3.UseVisualStyleBackColor = True ' 'Button1 @@ -324,7 +324,7 @@ Partial Class MainForm Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Change..." + Me.Button1.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Change.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label4 @@ -334,7 +334,7 @@ Partial Class MainForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(95, 13) Me.Label4.TabIndex = 1 - Me.Label4.Text = "Foreground Color:" + Me.Label4.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("ForegroundColor.Label") ' 'Label5 ' @@ -344,7 +344,7 @@ Partial Class MainForm Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(257, 13) Me.Label5.TabIndex = 1 - Me.Label5.Text = "(Inactive colors are calculated by the theme engine)" + Me.Label5.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Inactive.Colors.Label") ' 'Label6 ' @@ -353,7 +353,7 @@ Partial Class MainForm Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(77, 13) Me.Label6.TabIndex = 1 - Me.Label6.Text = "Accent Colors:" + Me.Label6.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("AccentColors.Label") ' 'Label2 ' @@ -362,7 +362,7 @@ Partial Class MainForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(95, 13) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Background Color:" + Me.Label2.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("BackgroundColor.Label") ' 'CheckBox1 ' @@ -371,7 +371,7 @@ Partial Class MainForm Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(217, 17) Me.CheckBox1.TabIndex = 0 - Me.CheckBox1.Text = "DISMTools should use dark mode glyphs" + Me.CheckBox1.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("DISM.Tools.Dark.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'TextBox1 @@ -390,7 +390,7 @@ Partial Class MainForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(73, 13) Me.Label1.TabIndex = 0 - Me.Label1.Text = "Theme Name:" + Me.Label1.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("ThemeName.Label") ' 'ColorDialog1 ' @@ -418,7 +418,7 @@ Partial Class MainForm Me.Label20.Name = "Label20" Me.Label20.Size = New System.Drawing.Size(606, 25) Me.Label20.TabIndex = 3 - Me.Label20.Text = "See your changes live on the preview section below:" + Me.Label20.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("See.Changes.Live.Label") Me.Label20.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'ToolStrip1 @@ -438,7 +438,7 @@ Partial Class MainForm Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton1.Name = "ToolStripButton1" Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton1.Text = "New Theme" + Me.ToolStripButton1.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("NewTheme.Label") ' 'ToolStripButton2 ' @@ -447,7 +447,7 @@ Partial Class MainForm Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton2.Name = "ToolStripButton2" Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton2.Text = "Open Theme File..." + Me.ToolStripButton2.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Open.Theme.File.Button") ' 'ToolStripButton3 ' @@ -456,7 +456,7 @@ Partial Class MainForm Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton3.Name = "ToolStripButton3" Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton3.Text = "Save theme file..." + Me.ToolStripButton3.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Save.Theme.File.Button") ' 'ToolStripButton4 ' @@ -466,7 +466,7 @@ Partial Class MainForm Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton4.Name = "ToolStripButton4" Me.ToolStripButton4.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton4.Text = "About..." + Me.ToolStripButton4.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("About.Button") ' 'ThemePreviewPanel ' @@ -543,7 +543,7 @@ Partial Class MainForm Me.AccentedLabel4.Name = "AccentedLabel4" Me.AccentedLabel4.Size = New System.Drawing.Size(32, 32) Me.AccentedLabel4.TabIndex = 6 - Me.AccentedLabel4.Text = "4" + Me.AccentedLabel4.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Value.Option4.Label") Me.AccentedLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'AccentedLabel3 @@ -556,7 +556,7 @@ Partial Class MainForm Me.AccentedLabel3.Name = "AccentedLabel3" Me.AccentedLabel3.Size = New System.Drawing.Size(32, 32) Me.AccentedLabel3.TabIndex = 5 - Me.AccentedLabel3.Text = "3" + Me.AccentedLabel3.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Value.Option3.Label") Me.AccentedLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'AccentedLabel2 @@ -569,7 +569,7 @@ Partial Class MainForm Me.AccentedLabel2.Name = "AccentedLabel2" Me.AccentedLabel2.Size = New System.Drawing.Size(32, 32) Me.AccentedLabel2.TabIndex = 4 - Me.AccentedLabel2.Text = "2" + Me.AccentedLabel2.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Value.Option2.Label") Me.AccentedLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'TextBox2 @@ -581,7 +581,7 @@ Partial Class MainForm Me.TextBox2.ReadOnly = True Me.TextBox2.Size = New System.Drawing.Size(610, 62) Me.TextBox2.TabIndex = 3 - Me.TextBox2.Text = resources.GetString("TextBox2.Text") + Me.TextBox2.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Heuristic.Reasoning.Message") ' 'InactiveLabel ' @@ -592,7 +592,7 @@ Partial Class MainForm Me.InactiveLabel.Name = "InactiveLabel" Me.InactiveLabel.Size = New System.Drawing.Size(113, 13) Me.InactiveLabel.TabIndex = 2 - Me.InactiveLabel.Text = "INACTIVE CONTROL" + Me.InactiveLabel.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Inactivecontrol.Label") ' 'ActiveLabel ' @@ -603,7 +603,7 @@ Partial Class MainForm Me.ActiveLabel.Name = "ActiveLabel" Me.ActiveLabel.Size = New System.Drawing.Size(101, 13) Me.ActiveLabel.TabIndex = 2 - Me.ActiveLabel.Text = "ACTIVE CONTROL" + Me.ActiveLabel.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Activecontrol.Label") ' 'TestSection ' @@ -624,7 +624,7 @@ Partial Class MainForm Me.Label18.Name = "Label18" Me.Label18.Size = New System.Drawing.Size(610, 29) Me.Label18.TabIndex = 0 - Me.Label18.Text = "Label in Inner Section" + Me.Label18.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Label.Inner.Section.Label") Me.Label18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'AccentedLabel1 @@ -637,7 +637,7 @@ Partial Class MainForm Me.AccentedLabel1.Name = "AccentedLabel1" Me.AccentedLabel1.Size = New System.Drawing.Size(32, 32) Me.AccentedLabel1.TabIndex = 0 - Me.AccentedLabel1.Text = "1" + Me.AccentedLabel1.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Value.Option1.Label") Me.AccentedLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label19 @@ -647,15 +647,15 @@ Partial Class MainForm Me.Label19.Name = "Label19" Me.Label19.Size = New System.Drawing.Size(75, 13) Me.Label19.TabIndex = 0 - Me.Label19.Text = "Test Control 1" + Me.Label19.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("TestControl.Label") ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Theme Files|*.ini" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Theme.Files.Ini.Filter") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "Theme Files|*.ini" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("SaveFile.Filter") ' 'Panel1 ' @@ -676,25 +676,25 @@ Partial Class MainForm Me.ColorModeTSDDB.ImageTransparentColor = System.Drawing.Color.Magenta Me.ColorModeTSDDB.Name = "ColorModeTSDDB" Me.ColorModeTSDDB.Size = New System.Drawing.Size(29, 22) - Me.ColorModeTSDDB.Text = "Change Color Mode..." + Me.ColorModeTSDDB.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Change.Color.Mode.Button") ' 'LightCM_TSMI ' Me.LightCM_TSMI.Name = "LightCM_TSMI" Me.LightCM_TSMI.Size = New System.Drawing.Size(152, 22) - Me.LightCM_TSMI.Text = "Light" + Me.LightCM_TSMI.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Light.Label") ' 'DarkCM_TSMI ' Me.DarkCM_TSMI.Name = "DarkCM_TSMI" Me.DarkCM_TSMI.Size = New System.Drawing.Size(152, 22) - Me.DarkCM_TSMI.Text = "Dark" + Me.DarkCM_TSMI.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Dark.Label") ' 'SystemCM_TSMI ' Me.SystemCM_TSMI.Name = "SystemCM_TSMI" Me.SystemCM_TSMI.Size = New System.Drawing.Size(152, 22) - Me.SystemCM_TSMI.Text = "System" + Me.SystemCM_TSMI.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("System.Label") ' 'ToolStripSeparator1 ' @@ -709,7 +709,7 @@ Partial Class MainForm Me.ToolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton5.Name = "ToolStripButton5" Me.ToolStripButton5.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton5.Text = "Enable write access..." + Me.ToolStripButton5.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("Enable.Write.Access.Button") ' 'MainForm ' @@ -726,7 +726,7 @@ Partial Class MainForm Me.MinimumSize = New System.Drawing.Size(640, 320) Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "DISMTools Theme Designer" + Me.Text = LocalizationService.ForSection("ThemeDesigner.Designer.Main")("DISM.Tools.Theme.Label") Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() Me.ThemeParameterPanel.ResumeLayout(False) diff --git a/Tools/DT_ThemeDesigner/MainForm.resx b/Tools/DT_ThemeDesigner/MainForm.resx index 362927c9e..d8454d825 100644 --- a/Tools/DT_ThemeDesigner/MainForm.resx +++ b/Tools/DT_ThemeDesigner/MainForm.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -123,9 +65,6 @@ 131, 17 - - Heuristic reasoning is reasoning not regarded as final and strict but as provisional and plausible only, whose purpose is to discover the solution of the present problem. We are often obliged to use heuristic reasoning. We shall attain complete certainty when we shall obtain the complete solution, but before obtaining certainty we must often be satisfied with a more or less plausible guess. We may need the provisional before we attain the final. - 233, 17 diff --git a/Tools/DT_ThemeDesigner/MainForm.vb b/Tools/DT_ThemeDesigner/MainForm.vb index aca572a0f..c630b2847 100644 --- a/Tools/DT_ThemeDesigner/MainForm.vb +++ b/Tools/DT_ThemeDesigner/MainForm.vb @@ -210,9 +210,9 @@ Public Class MainForm CheckBox1.Checked = NewTheme.IsDark ChangeColorPreviews() LoadCurrentTheme() - Text = String.Format("DISMTools Theme Designer - {0}", Path.GetFileName(SavedThemePath)) + Text = String.Format(LocalizationService.ForSection("ThemeDesigner.Main")("Window.Title"), Path.GetFileName(SavedThemePath)) If (File.GetAttributes(SavedThemePath) And FileAttributes.ReadOnly) = FileAttributes.ReadOnly Then - MessageBox.Show("This theme has been loaded with read-only privileges. If you make changes, you must save them to a new file or enable write access.", "Theme Designer", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("ThemeDesigner.Messages")("Loaded.Read.Only.Message"), LocalizationService.ForSection("ThemeDesigner.Messages")("ThemeDesigner.Label"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation) roMode = True ToolStripButton5.Enabled = True End If @@ -226,7 +226,7 @@ Public Class MainForm Private Sub Label7_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label9.MouseHover, Label8.MouseHover, Label7.MouseHover, Label13.MouseHover, Label12.MouseHover, Label11.MouseHover, Label10.MouseHover Try Dim BackgroundColor As Color = CType(sender, Label).BackColor - CurrentColorTT.SetToolTip(sender, String.Format("Current Color: RGB({0}, {1}, {2}). Click to copy to clipboard", BackgroundColor.R, BackgroundColor.G, BackgroundColor.B)) + CurrentColorTT.SetToolTip(sender, LocalizationService.ForSection("Tools.ThemeDesigner.Main").Format("Color.Rgbclick.Label", BackgroundColor.R, BackgroundColor.G, BackgroundColor.B)) Catch ex As Exception End Try @@ -243,7 +243,7 @@ Public Class MainForm Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click If String.IsNullOrEmpty(NewTheme.Name) Then - MessageBox.Show("You must provide a name for the theme.", "Theme name missing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("ThemeDesigner.Messages")("Provide.Name.Label"), LocalizationService.ForSection("ThemeDesigner.Messages")("Name.Missing.Label"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Exit Sub End If SaveFileDialog1.ShowDialog() @@ -252,12 +252,12 @@ Public Class MainForm Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk Cursor = Cursors.WaitCursor If ThemeHelper.SaveTheme(NewTheme, SaveFileDialog1.FileName) Then - MessageBox.Show("The theme has been saved successfully at the specified location.", "Save Success", MessageBoxButtons.OK, MessageBoxIcon.Information) + MessageBox.Show(LocalizationService.ForSection("ThemeDesigner.Messages")("Saved.Done.Label"), LocalizationService.ForSection("ThemeDesigner.Messages")("SaveSuccess.Label"), MessageBoxButtons.OK, MessageBoxIcon.Information) SavedThemePath = SaveFileDialog1.FileName - Text = String.Format("DISMTools Theme Designer - {0}", Path.GetFileName(SavedThemePath)) + Text = String.Format(LocalizationService.ForSection("ThemeDesigner.Main")("Window.Title"), Path.GetFileName(SavedThemePath)) roMode = False Else - MessageBox.Show("Could not save the theme.", "Save Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("ThemeDesigner.Messages")("SaveTheme.Label"), LocalizationService.ForSection("ThemeDesigner.Messages")("SaveError.Label"), MessageBoxButtons.OK, MessageBoxIcon.Error) End If Cursor = Cursors.Arrow End Sub @@ -270,21 +270,14 @@ Public Class MainForm LoadCurrentTheme() roMode = False SavedThemePath = "" - Text = "DISMTools Theme Designer" + Text = LocalizationService.ForSection("ThemeDesigner.Main")("Window.DefaultTitle") End Sub Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click #If VBC_VER >= 9.0 Then - MsgBox(String.Format("DISMTools Theme Designer version {0}" & CrLf & CrLf & "{1}. {2}", _ - My.Application.Info.Version.ToString() & "_" & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm") , _ - My.Application.Info.Copyright, _ - "INI File Parser: 2008 Ricardo Amores Hernndez"), _ - vbOKOnly + vbInformation, "About") + MsgBox(LocalizationService.ForSection("ThemeDesigner.Messages").Format("DISM.Tools.Designer.Label", My.Application.Info.Version.ToString() & "_" & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), My.Application.Info.Copyright, "INI File Parser: 2008 Ricardo Amores Hernndez"), vbOKOnly + vbInformation, LocalizationService.ForSection("ThemeDesigner.Messages")("About.Label")) #Else - MsgBox(String.Format("DISMTools Theme Designer version {0}_NET2REL" & CrLf & CrLf & "{1}. {2}", _ - My.Application.Info.Version.ToString(), _ - My.Application.Info.Copyright, "INI File Parser: 2008 Ricardo Amores Hernndez"), _ - vbOKOnly + vbInformation, "About") + MsgBox(LocalizationService.ForSection("ThemeDesigner.Messages").Format("About.Version.Message", My.Application.Info.Version.ToString(), My.Application.Info.Copyright, "INI File Parser: 2008 Ricardo Amores Hernndez"), vbOKOnly + vbInformation, LocalizationService.ForSection("ThemeDesigner.Messages")("About.Label")) #End If End Sub @@ -307,7 +300,7 @@ Public Class MainForm roMode = False ToolStripButton5.Enabled = False Catch ex As Exception - MessageBox.Show("Could not enable write access for this script file. Make sure that the script is not in read-only media.", "Starter Script Editor", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("ThemeDesigner.Messages")("Enable.Write.Access.Message"), LocalizationService.ForSection("ThemeDesigner.Messages")("StarterScript.Editor.Label"), MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub diff --git a/Tools/DT_WinADK.reg b/Tools/DT_WinADK.reg new file mode 100644 index 000000000..dc7eafe54 --- /dev/null +++ b/Tools/DT_WinADK.reg @@ -0,0 +1,10 @@ +Windows Registry Editor Version 5.00 + +; Restore the Windows ADK KitsRoot10 registry values used by DISMTools and PE Helper detection. +; The standard Windows ADK path on 64 bit Windows is under Program Files (x86). + +[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots] +"KitsRoot10"="C:\\Program Files (x86)\\Windows Kits\\10\\" + +[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows Kits\Installed Roots] +"KitsRoot10"="C:\\Program Files (x86)\\Windows Kits\\10\\" diff --git a/Tools/DynaViewer/ApplicationEvents.vb b/Tools/DynaViewer/ApplicationEvents.vb index ced0f5f39..38a786699 100644 --- a/Tools/DynaViewer/ApplicationEvents.vb +++ b/Tools/DynaViewer/ApplicationEvents.vb @@ -2,17 +2,21 @@ Imports Microsoft.VisualBasic.ControlChars Namespace My - ' Los siguientes eventos estn disponibles para MyApplication: + ' Los siguientes eventos estn disponibles para MyApplication: ' - ' Inicio: se desencadena cuando se inicia la aplicacin, antes de que se cree el formulario de inicio. - ' Apagado: generado despus de cerrar todos los formularios de la aplicacin. Este evento no se genera si la aplicacin termina de forma anmala. - ' UnhandledException: generado si la aplicacin detecta una excepcin no controlada. - ' StartupNextInstance: se desencadena cuando se inicia una aplicacin de instancia nica y la aplicacin ya est activa. - ' NetworkAvailabilityChanged: se desencadena cuando la conexin de red est conectada o desconectada. + ' Inicio: se desencadena cuando se inicia la aplicacin, antes de que se cree el formulario de inicio. + ' Apagado: generado despus de cerrar todos los formularios de la aplicacin. Este evento no se genera si la aplicacin termina de forma anmala. + ' UnhandledException: generado si la aplicacin detecta una excepcin no controlada. + ' StartupNextInstance: se desencadena cuando se inicia una aplicacin de instancia nica y la aplicacin ya est activa. + ' NetworkAvailabilityChanged: se desencadena cuando la conexin de red est conectada o desconectada. Partial Friend Class MyApplication + Private Sub MyApplication_Startup(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup + LocalizationService.Initialize() + End Sub + Public Sub CatchEmAll(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles MyBase.UnhandledException - MsgBox("An internal error has occurred: " & CrLf & CrLf & e.Exception.ToString() & CrLf & CrLf & "Report this issue to the developers.", vbOKOnly + vbCritical, "Unhandled Error") + MsgBox(LocalizationService.ForSection("DynaViewer.Errors").Format("InternalError.Message", e.Exception.ToString()), vbOKOnly + vbCritical, LocalizationService.ForSection("DynaViewer.Errors")("UnhandledError.Message")) End Sub End Class diff --git a/Tools/DynaViewer/DynaViewer.vbproj b/Tools/DynaViewer/DynaViewer.vbproj index 3834d7fff..02a685b70 100644 --- a/Tools/DynaViewer/DynaViewer.vbproj +++ b/Tools/DynaViewer/DynaViewer.vbproj @@ -74,6 +74,9 @@ + + Utilities\LocalizationService.vb + diff --git a/Tools/DynaViewer/EventProperties.Designer.vb b/Tools/DynaViewer/EventProperties.Designer.vb index a8a12b555..476cf314a 100644 --- a/Tools/DynaViewer/EventProperties.Designer.vb +++ b/Tools/DynaViewer/EventProperties.Designer.vb @@ -54,7 +54,7 @@ Partial Class EventProperties Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(413, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Information for event of :" + Me.Label1.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("Num.Events.Label") ' 'Label2 ' @@ -63,7 +63,7 @@ Partial Class EventProperties Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(93, 13) Me.Label2.TabIndex = 2 - Me.Label2.Text = "Event Timestamp:" + Me.Label2.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("EventTimestamp.Label") ' 'txtEventTimestamp ' @@ -90,7 +90,7 @@ Partial Class EventProperties Me.GroupBox1.Size = New System.Drawing.Size(396, 136) Me.GroupBox1.TabIndex = 4 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Method Callers" + Me.GroupBox1.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("MethodCallers.Group") ' 'LinkLabel1 ' @@ -100,7 +100,7 @@ Partial Class EventProperties Me.LinkLabel1.Size = New System.Drawing.Size(177, 13) Me.LinkLabel1.TabIndex = 4 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Why can the field above be empty?" + Me.LinkLabel1.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("Field.Empty.Link") ' 'Label4 ' @@ -109,7 +109,7 @@ Partial Class EventProperties Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(342, 13) Me.Label4.TabIndex = 0 - Me.Label4.Text = "The method/function described above was called by method/function:" + Me.Label4.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("Method.Function.Label") ' 'txtEventParentCaller ' @@ -128,7 +128,7 @@ Partial Class EventProperties Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(214, 13) Me.Label3.TabIndex = 0 - Me.Label3.Text = "The event was logged by method/function:" + Me.Label3.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("Logged.Method.Function.Label") ' 'Label6 ' @@ -137,7 +137,7 @@ Partial Class EventProperties Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(96, 13) Me.Label6.TabIndex = 2 - Me.Label6.Text = "PID: " + Me.Label6.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("PID.Label") ' 'txtEventCaller ' @@ -182,7 +182,7 @@ Partial Class EventProperties Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(84, 13) Me.Label5.TabIndex = 5 - Me.Label5.Text = "Event Message:" + Me.Label5.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("EventMessage.Label") ' 'TableLayoutPanel1 ' @@ -208,7 +208,7 @@ Partial Class EventProperties Me.btnNextEvent.Name = "btnNextEvent" Me.btnNextEvent.Size = New System.Drawing.Size(201, 23) Me.btnNextEvent.TabIndex = 1 - Me.btnNextEvent.Text = "&Next Event" + Me.btnNextEvent.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("NextEvent.Label") Me.btnNextEvent.UseVisualStyleBackColor = True ' 'btnPreviousEvent @@ -219,7 +219,7 @@ Partial Class EventProperties Me.btnPreviousEvent.Name = "btnPreviousEvent" Me.btnPreviousEvent.Size = New System.Drawing.Size(201, 23) Me.btnPreviousEvent.TabIndex = 0 - Me.btnPreviousEvent.Text = "&Previous Event" + Me.btnPreviousEvent.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("PreviousEvent.Label") Me.btnPreviousEvent.UseVisualStyleBackColor = True ' 'Panel2 @@ -247,7 +247,7 @@ Partial Class EventProperties Me.Name = "EventProperties" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Event Properties" + Me.Text = LocalizationService.ForSection("DynaViewer.Designer.EventProps")("EventProps.Label") Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() Me.Panel1.ResumeLayout(False) diff --git a/Tools/DynaViewer/EventProperties.vb b/Tools/DynaViewer/EventProperties.vb index ccf62a893..f34046649 100644 --- a/Tools/DynaViewer/EventProperties.vb +++ b/Tools/DynaViewer/EventProperties.vb @@ -80,8 +80,6 @@ Public Class EventProperties End Sub Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked - MsgBox("The above field can be empty if the caller does not have a parent, or if the logging system was called by the method in the program with the GetParentCaller parameter set to false." & CrLf & CrLf & _ - "As a developer, you can log events without getting the parent caller like this:" & CrLf & CrLf & _ - " DynaLog.LogMessage(" & Quote & "Event Message" & Quote & ", False)", vbOKOnly + vbInformation, "Event Parent Caller") + MsgBox(LocalizationService.ForSection("DynaViewer.EventProps")("Field.Empty.Caller.Message"), vbOKOnly + vbInformation, LocalizationService.ForSection("DynaViewer.EventProps")("Parent.Caller.Title")) End Sub End Class diff --git a/Tools/DynaViewer/MainForm.Designer.vb b/Tools/DynaViewer/MainForm.Designer.vb index 473268a62..983a2111c 100644 --- a/Tools/DynaViewer/MainForm.Designer.vb +++ b/Tools/DynaViewer/MainForm.Designer.vb @@ -68,7 +68,7 @@ Partial Class MainForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(92, 13) Me.Label1.TabIndex = 0 - Me.Label1.Text = "DynaLog Log File:" + Me.Label1.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Dyna.Log.File.Label") ' 'TextBox1 ' @@ -81,7 +81,7 @@ Partial Class MainForm ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Log Files|*.log" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("DynaViewer.Designer.Main")("LogFiles.Filter") ' 'GroupBox1 ' @@ -94,7 +94,7 @@ Partial Class MainForm Me.GroupBox1.Size = New System.Drawing.Size(1248, 551) Me.GroupBox1.TabIndex = 3 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "DynaLog Event Logs" + Me.GroupBox1.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Dyna.Log.Event") ' 'ListView1 ' @@ -111,22 +111,22 @@ Partial Class MainForm ' 'ColumnHeader1 ' - Me.ColumnHeader1.Text = "Event Timestamp" + Me.ColumnHeader1.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("EventTimestamp.Column") Me.ColumnHeader1.Width = 192 ' 'ColumnHeader4 ' - Me.ColumnHeader4.Text = "Process ID" + Me.ColumnHeader4.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("ProcessID.Column") Me.ColumnHeader4.Width = 94 ' 'ColumnHeader2 ' - Me.ColumnHeader2.Text = "Event Caller" + Me.ColumnHeader2.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("EventCaller.Column") Me.ColumnHeader2.Width = 256 ' 'ColumnHeader3 ' - Me.ColumnHeader3.Text = "Message" + Me.ColumnHeader3.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Message.Column") Me.ColumnHeader3.Width = 640 ' 'Button1 @@ -137,7 +137,7 @@ Partial Class MainForm Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Browse..." + Me.Button1.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Browse.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Button2 @@ -149,7 +149,7 @@ Partial Class MainForm Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 4 - Me.Button2.Text = "Refresh" + Me.Button2.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Refresh.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label2 @@ -160,7 +160,7 @@ Partial Class MainForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(687, 13) Me.Label2.TabIndex = 5 - Me.Label2.Text = "Number of processed entries: " + Me.Label2.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Processed.Entries.Label") Me.Label2.Visible = False ' 'Button3 @@ -171,7 +171,7 @@ Partial Class MainForm Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 6 - Me.Button3.Text = "About" + Me.Button3.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("About.ActionButton") Me.Button3.UseVisualStyleBackColor = True ' 'ColorModeCMS @@ -184,19 +184,19 @@ Partial Class MainForm ' Me.LightCM_TSMI.Name = "LightCM_TSMI" Me.LightCM_TSMI.Size = New System.Drawing.Size(120, 22) - Me.LightCM_TSMI.Text = "Light" + Me.LightCM_TSMI.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("LightCM.Label") ' 'DarkCM_TSMI ' Me.DarkCM_TSMI.Name = "DarkCM_TSMI" Me.DarkCM_TSMI.Size = New System.Drawing.Size(120, 22) - Me.DarkCM_TSMI.Text = "Dark" + Me.DarkCM_TSMI.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("DarkCM.Label") ' 'SystemCM_TSMI ' Me.SystemCM_TSMI.Name = "SystemCM_TSMI" Me.SystemCM_TSMI.Size = New System.Drawing.Size(120, 22) - Me.SystemCM_TSMI.Text = "System" + Me.SystemCM_TSMI.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("SystemCM.Label") ' 'Button4 ' @@ -206,7 +206,7 @@ Partial Class MainForm Me.Button4.Name = "Button4" Me.Button4.Size = New System.Drawing.Size(106, 23) Me.Button4.TabIndex = 8 - Me.Button4.Text = "Color Mode" + Me.Button4.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("ColorMode.Button") Me.Button4.UseVisualStyleBackColor = True ' 'TableLayoutPanel1 @@ -257,7 +257,7 @@ Partial Class MainForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(85, 28) Me.Label4.TabIndex = 0 - Me.Label4.Text = "PID:" + Me.Label4.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("PID.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label5 @@ -269,7 +269,7 @@ Partial Class MainForm Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(212, 28) Me.Label5.TabIndex = 0 - Me.Label5.Text = "Event Caller:" + Me.Label5.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("EventCaller.Label") Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'Label6 @@ -282,7 +282,7 @@ Partial Class MainForm Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(58, 28) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Options:" + Me.Label6.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Options.Heading.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'ComboBox1 @@ -311,7 +311,7 @@ Partial Class MainForm Me.RegexCB.Name = "RegexCB" Me.RegexCB.Size = New System.Drawing.Size(26, 23) Me.RegexCB.TabIndex = 4 - Me.RegexCB.Text = ".*" + Me.RegexCB.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("RegexCB.Label") Me.RegexCB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.RegexCB.UseVisualStyleBackColor = True ' @@ -322,7 +322,7 @@ Partial Class MainForm Me.RegexFailureBtn.Name = "RegexFailureBtn" Me.RegexFailureBtn.Size = New System.Drawing.Size(27, 23) Me.RegexFailureBtn.TabIndex = 5 - Me.RegexFailureBtn.Text = "!" + Me.RegexFailureBtn.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Regex.Failure.Btn.Label") Me.RegexFailureBtn.UseVisualStyleBackColor = True Me.RegexFailureBtn.Visible = False ' @@ -335,7 +335,7 @@ Partial Class MainForm Me.CaseSensitiveCB.Name = "CaseSensitiveCB" Me.CaseSensitiveCB.Size = New System.Drawing.Size(26, 23) Me.CaseSensitiveCB.TabIndex = 4 - Me.CaseSensitiveCB.Text = "Aa" + Me.CaseSensitiveCB.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Aa.Label") Me.CaseSensitiveCB.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.CaseSensitiveCB.UseVisualStyleBackColor = True ' @@ -367,7 +367,7 @@ Partial Class MainForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(834, 28) Me.Label3.TabIndex = 6 - Me.Label3.Text = "Message:" + Me.Label3.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Message.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'MainForm @@ -390,7 +390,7 @@ Partial Class MainForm Me.MinimumSize = New System.Drawing.Size(1280, 720) Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "DynaLog Log Viewer" + Me.Text = LocalizationService.ForSection("DynaViewer.Designer.Main")("Dyna.Log.Viewer.Label") Me.GroupBox1.ResumeLayout(False) Me.ColorModeCMS.ResumeLayout(False) Me.TableLayoutPanel1.ResumeLayout(False) diff --git a/Tools/DynaViewer/MainForm.vb b/Tools/DynaViewer/MainForm.vb index d9f76b772..1ced40db4 100644 --- a/Tools/DynaViewer/MainForm.vb +++ b/Tools/DynaViewer/MainForm.vb @@ -190,10 +190,10 @@ Public Class MainForm AddHandler ComboBox2.SelectedIndexChanged, AddressOf ComboBox2_SelectedIndexChanged AddHandler TextBox2.TextChanged, AddressOf TextBox2_TextChanged Else - MsgBox("The file " & Quote & DynaLogFile & Quote & " does not exist.", vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("DynaViewer.Messages").Format("FileExist.Label", DynaLogFile), vbOKOnly + vbCritical, Text) Exit Sub End If - Label2.Text = String.Format("Processed entries: {0}. Double-click an entry to get its information.", LogEvents.Count) + Label2.Text = String.Format(LocalizationService.ForSection("DynaViewer")("Proced.Entries.Double.Label"), LogEvents.Count) Label2.Visible = True End Sub @@ -235,7 +235,7 @@ Public Class MainForm Cursor = Cursors.Arrow Button2.Enabled = True ElseIf Not CommandArgument.StartsWith("/", StringComparison.OrdinalIgnoreCase) AndAlso Not File.Exists(CommandArgument) Then - MsgBox("The file " & Quote & CommandArgument & Quote & " does not exist.", vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("DynaViewer.Messages").Format("File.NotFound.Message", CommandArgument), vbOKOnly + vbCritical, Text) Exit Sub Else If CommandArgument.StartsWith("/selectfirst=", StringComparison.OrdinalIgnoreCase) Then @@ -291,15 +291,9 @@ Public Class MainForm Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click #If VBC_VER >= 9.0 Then - MsgBox(String.Format("DynaLog Log Viewer (DynaViewer) version {0}" & CrLf & CrLf & "{1}", _ - My.Application.Info.Version.ToString() & "_" & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), _ - My.Application.Info.Copyright), _ - vbOKOnly + vbInformation, Text) + MsgBox(LocalizationService.ForSection("DynaViewer.Messages").Format("Log.Version.Label", My.Application.Info.Version.ToString() & "_" & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), My.Application.Info.Copyright), vbOKOnly + vbInformation, Text) #Else - MsgBox(String.Format("DynaLog Log Viewer (DynaViewer) version {0}_NET2REL" & CrLf & CrLf & "{1}", _ - My.Application.Info.Version.ToString(), _ - My.Application.Info.Copyright), _ - vbOKOnly + vbInformation, Text) + MsgBox(LocalizationService.ForSection("DynaViewer.Messages").Format("About.Version.Message", My.Application.Info.Version.ToString(), My.Application.Info.Copyright), vbOKOnly + vbInformation, Text) #End If End Sub @@ -422,11 +416,11 @@ Public Class MainForm End Sub Private Sub RegexCB_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegexCB.MouseHover - WindowHelper.DisplayToolTip(sender, "Use regular expressions") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("DynaViewer")("Regex.Expressions.Label")) End Sub Private Sub CaseSensitiveCB_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CaseSensitiveCB.MouseHover - WindowHelper.DisplayToolTip(sender, "Match case") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("DynaViewer")("MatchCase.Label")) End Sub Private Sub RegexCB_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegexCB.CheckedChanged @@ -465,7 +459,7 @@ Public Class MainForm ListView1.Items.Clear() Cursor = Cursors.WaitCursor - Label2.Text = "Please wait while the events are being filtered... Change filters to cancel current operation." + Label2.Text = LocalizationService.ForSection("DynaViewer.Main")("EventsFiltering.Message") End If End Sub @@ -513,12 +507,11 @@ Public Class MainForm #End If End If - Label2.Text = String.Format("Processed entries: {0}{1}. Double-click an entry to get its information.", LogEvents.Count, _ - IIf(IsViewFiltered, String.Format("; Filtered entries: {0}", FilteredLogEvents.Count), "")) + Label2.Text = String.Format(LocalizationService.ForSection("DynaViewer")("Processed.Entries.Message"), LogEvents.Count, _ + IIf(IsViewFiltered, String.Format(LocalizationService.ForSection("DynaViewer")("FilteredEntries.Suffix"), FilteredLogEvents.Count), "")) End Sub Private Sub RegexFailureBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegexFailureBtn.Click - MessageBox.Show(String.Format("The regular expression, {1} , has not been written correctly. The cheatsheet can help you with the queries.{0}{0} Error message: {2}", Environment.NewLine, TextBox2.Text, regexException.Message), _ - "Regular expression failure", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("DynaViewer.Messages").Format("RegexInvalid.Message", Environment.NewLine, TextBox2.Text, regexException.Message), LocalizationService.ForSection("DynaViewer.Messages")("Regex.Failure.Label"), MessageBoxButtons.OK, MessageBoxIcon.Error) End Sub End Class diff --git a/Tools/DynaViewer/RegexCheatsheet.Designer.vb b/Tools/DynaViewer/RegexCheatsheet.Designer.vb index 5be211ea1..af2c7cafc 100644 --- a/Tools/DynaViewer/RegexCheatsheet.Designer.vb +++ b/Tools/DynaViewer/RegexCheatsheet.Designer.vb @@ -35,8 +35,7 @@ Partial Class RegexCheatsheet Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(437, 13) Me.Label1.TabIndex = 1 - Me.Label1.Text = "Use the following cheatsheet when performing message queries with regular express" & _ - "ions:" + Me.Label1.Text = LocalizationService.ForSection("DynaViewer.Designer.Regex")("CheatsheetHelp.Label") ' 'TextBox1 ' @@ -51,7 +50,7 @@ Partial Class RegexCheatsheet Me.TextBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical Me.TextBox1.Size = New System.Drawing.Size(479, 370) Me.TextBox1.TabIndex = 2 - Me.TextBox1.Text = resources.GetString("TextBox1.Text") + Me.TextBox1.Text = LocalizationService.ForSection("DynaViewer.Designer.Regex")("CharacterClasses.Message") ' 'CheckBox1 ' @@ -63,7 +62,7 @@ Partial Class RegexCheatsheet Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(63, 23) Me.CheckBox1.TabIndex = 3 - Me.CheckBox1.Text = "Pin to top" + Me.CheckBox1.Text = LocalizationService.ForSection("DynaViewer.Designer.Regex")("PinTop.CheckBox") Me.CheckBox1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.CheckBox1.UseVisualStyleBackColor = True ' @@ -83,7 +82,7 @@ Partial Class RegexCheatsheet Me.Name = "RegexCheatsheet" Me.ShowIcon = False Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual - Me.Text = "Regular Expression Cheatsheet" + Me.Text = LocalizationService.ForSection("DynaViewer.Designer.Regex")("RegexCheatsheet.Label") Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Tools/DynaViewer/RegexCheatsheet.resx b/Tools/DynaViewer/RegexCheatsheet.resx index db4c2f225..e0f2d8a82 100644 --- a/Tools/DynaViewer/RegexCheatsheet.resx +++ b/Tools/DynaViewer/RegexCheatsheet.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -117,45 +59,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Character Classes: -. Any character except newline -\d Digit [0-9] -\D Non-digit -\w Word character [A-Za-z0-9_] -\W Non-word character -\s Whitespace -\S Non-whitespace -[abc] Any of a, b, or c -[^abc] Not a, b, or c -[a-z] Lowercase letter - -Quantifiers: - -* 0 or more -- 1 or more - -? 0 or 1 -{n} Exactly n times -{n,} n or more times -{n,m} Between n and m times - -Anchors: -^ Start of string/line -$ End of string/line -\b Word boundary -\B Not a word boundary - -Groups: -(abc) Capturing group -(?:abc) Non-capturing group -(?<n>) Named group -\1 Backreference group 1 - -Common Examples: -^\d+$ Only digits -^[A-Za-z]+$ Only letters -^\w+@\w+.\w+$ Basic email -^\d{4}-\d{2}-\d{2}$ Date YYYY-MM-DD - - \ No newline at end of file + \ No newline at end of file diff --git a/Tools/StarterScriptEditor/ApplicationEvents.vb b/Tools/StarterScriptEditor/ApplicationEvents.vb new file mode 100644 index 000000000..102c71441 --- /dev/null +++ b/Tools/StarterScriptEditor/ApplicationEvents.vb @@ -0,0 +1,11 @@ +Namespace My + + Partial Friend Class MyApplication + + Private Sub MyApplication_Startup(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup + LocalizationService.Initialize() + End Sub + + End Class + +End Namespace diff --git a/Tools/StarterScriptEditor/MainForm.Designer.vb b/Tools/StarterScriptEditor/MainForm.Designer.vb index 156a3a552..41d58f807 100644 --- a/Tools/StarterScriptEditor/MainForm.Designer.vb +++ b/Tools/StarterScriptEditor/MainForm.Designer.vb @@ -79,79 +79,78 @@ Partial Class MainForm 'ToolStripButton1 ' Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton1.Image = Global.StarterScriptEditor.My.Resources.Resources.newfile + Me.ToolStripButton1.Image = Global.StarterScript.My.Resources.Resources.newfile Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton1.Name = "ToolStripButton1" Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton1.Text = "New Starter Script (Ctrl + N)" + Me.ToolStripButton1.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("New.StarterScript.Ctrl.Label") ' 'ToolStripButton2 ' Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton2.Image = Global.StarterScriptEditor.My.Resources.Resources.openfile + Me.ToolStripButton2.Image = Global.StarterScript.My.Resources.Resources.openfile Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton2.Name = "ToolStripButton2" Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton2.Text = "Open Starter Script File... (Ctrl + O)" + Me.ToolStripButton2.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Open.StarterScript.Label") ' 'ToolStripButton3 ' Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton3.Image = Global.StarterScriptEditor.My.Resources.Resources.savefile + Me.ToolStripButton3.Image = Global.StarterScript.My.Resources.Resources.savefile Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton3.Name = "ToolStripButton3" Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton3.Text = "Save Starter Script File... (Ctrl + S)" - Me.ToolStripButton3.ToolTipText = "Save Starter Script File... (Ctrl + S)" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Hold down SHIFT while clicking the icon t" & _ - "o specify the target version for the starter script while saving." + Me.ToolStripButton3.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Save.StarterScript.Label") + Me.ToolStripButton3.ToolTipText = LocalizationService.ForSection("StarterScript.Designer.Main")("Save.StarterScript.Tooltip") ' 'ToolStripButton4 ' Me.ToolStripButton4.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right Me.ToolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton4.Image = Global.StarterScriptEditor.My.Resources.Resources.about + Me.ToolStripButton4.Image = Global.StarterScript.My.Resources.Resources.about Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton4.Name = "ToolStripButton4" Me.ToolStripButton4.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton4.Text = "About..." + Me.ToolStripButton4.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("About.ToolButton") ' 'ColorModeTSDDB ' Me.ColorModeTSDDB.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right Me.ColorModeTSDDB.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image Me.ColorModeTSDDB.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LightCM_TSMI, Me.DarkCM_TSMI, Me.SystemCM_TSMI}) - Me.ColorModeTSDDB.Image = Global.StarterScriptEditor.My.Resources.Resources.colormode + Me.ColorModeTSDDB.Image = Global.StarterScript.My.Resources.Resources.colormode Me.ColorModeTSDDB.ImageTransparentColor = System.Drawing.Color.Magenta Me.ColorModeTSDDB.Name = "ColorModeTSDDB" Me.ColorModeTSDDB.Size = New System.Drawing.Size(29, 22) - Me.ColorModeTSDDB.Text = "Change Color Mode..." + Me.ColorModeTSDDB.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Change.Color.Mode.Button") ' 'LightCM_TSMI ' Me.LightCM_TSMI.Name = "LightCM_TSMI" Me.LightCM_TSMI.Size = New System.Drawing.Size(112, 22) - Me.LightCM_TSMI.Text = "Light" + Me.LightCM_TSMI.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Light.Label") ' 'DarkCM_TSMI ' Me.DarkCM_TSMI.Name = "DarkCM_TSMI" Me.DarkCM_TSMI.Size = New System.Drawing.Size(112, 22) - Me.DarkCM_TSMI.Text = "Dark" + Me.DarkCM_TSMI.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Dark.Label") ' 'SystemCM_TSMI ' Me.SystemCM_TSMI.Name = "SystemCM_TSMI" Me.SystemCM_TSMI.Size = New System.Drawing.Size(112, 22) - Me.SystemCM_TSMI.Text = "System" + Me.SystemCM_TSMI.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("System.Label") ' 'ToolStripButton8 ' Me.ToolStripButton8.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton8.Image = Global.StarterScriptEditor.My.Resources.Resources.savefileas + Me.ToolStripButton8.Image = Global.StarterScript.My.Resources.Resources.savefileas Me.ToolStripButton8.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton8.Name = "ToolStripButton8" Me.ToolStripButton8.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton8.Text = "Save Starter Script File as... (Ctrl + Shift + S)" + Me.ToolStripButton8.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("SaveScript.Ctrl.Shift.Label") ' 'ToolStripSeparator1 ' @@ -162,29 +161,29 @@ Partial Class MainForm ' Me.ToolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image Me.ToolStripButton5.Enabled = False - Me.ToolStripButton5.Image = Global.StarterScriptEditor.My.Resources.Resources.writable + Me.ToolStripButton5.Image = Global.StarterScript.My.Resources.Resources.writable Me.ToolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton5.Name = "ToolStripButton5" Me.ToolStripButton5.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton5.Text = "Enable write access..." + Me.ToolStripButton5.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Enable.Write.Access.Button") ' 'ToolStripButton6 ' Me.ToolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton6.Image = Global.StarterScriptEditor.My.Resources.Resources.targetversion + Me.ToolStripButton6.Image = Global.StarterScript.My.Resources.Resources.targetversion Me.ToolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton6.Name = "ToolStripButton6" Me.ToolStripButton6.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton6.Text = "Configure target script version..." + Me.ToolStripButton6.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Configure.Target.Button") ' 'ToolStripButton7 ' Me.ToolStripButton7.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ToolStripButton7.Image = Global.StarterScriptEditor.My.Resources.Resources.changefont + Me.ToolStripButton7.Image = Global.StarterScript.My.Resources.Resources.changefont Me.ToolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton7.Name = "ToolStripButton7" Me.ToolStripButton7.Size = New System.Drawing.Size(23, 22) - Me.ToolStripButton7.Text = "Change Editor Font..." + Me.ToolStripButton7.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Change.Editor.Font.Button") ' 'Button2 ' @@ -194,7 +193,7 @@ Partial Class MainForm Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(128, 23) Me.Button2.TabIndex = 2 - Me.Button2.Text = "Normalize Spacing" + Me.Button2.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("NormalizeSpacing.Button") Me.Button2.UseVisualStyleBackColor = True ' 'TableLayoutPanel1 @@ -220,7 +219,7 @@ Partial Class MainForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(1227, 39) Me.Label1.TabIndex = 0 - Me.Label1.Text = resources.GetString("Label1.Text") + Me.Label1.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Starter.Scripts.Message") ' 'TableLayoutPanel2 ' @@ -290,7 +289,7 @@ Partial Class MainForm Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(78, 13) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Line, Column" + Me.Label6.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("LineColumn.Label") ' 'CheckBox1 ' @@ -301,7 +300,7 @@ Partial Class MainForm Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(89, 23) Me.CheckBox1.TabIndex = 1 - Me.CheckBox1.Text = "Word Wrap" + Me.CheckBox1.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("WordWrap.CheckBox") Me.CheckBox1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.CheckBox1.UseVisualStyleBackColor = True ' @@ -313,7 +312,7 @@ Partial Class MainForm Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(200, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Import Existing Script..." + Me.Button1.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Import.Existing.Button") Me.Button1.UseVisualStyleBackColor = True ' 'Label5 @@ -325,7 +324,7 @@ Partial Class MainForm Me.Label5.Padding = New System.Windows.Forms.Padding(0, 4, 0, 0) Me.Label5.Size = New System.Drawing.Size(186, 492) Me.Label5.TabIndex = 6 - Me.Label5.Text = "Script Code:" + Me.Label5.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("ScriptCode.Label") Me.Label5.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'Label4 @@ -336,7 +335,7 @@ Partial Class MainForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(186, 26) Me.Label4.TabIndex = 4 - Me.Label4.Text = "Script Language:" + Me.Label4.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("ScriptLanguage.Label") Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Label3 @@ -347,7 +346,7 @@ Partial Class MainForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(186, 27) Me.Label3.TabIndex = 2 - Me.Label3.Text = "Script Description:" + Me.Label3.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("Script.Description.Label") Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'TextBox2 @@ -366,7 +365,7 @@ Partial Class MainForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(186, 27) Me.Label2.TabIndex = 0 - Me.Label2.Text = "Script Name:" + Me.Label2.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("ScriptName.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'TextBox1 @@ -395,22 +394,21 @@ Partial Class MainForm Me.CheckBox2.Name = "CheckBox2" Me.CheckBox2.Size = New System.Drawing.Size(202, 17) Me.CheckBox2.TabIndex = 9 - Me.CheckBox2.Text = "Script contains configurable options" + Me.CheckBox2.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("ScriptOptions.CheckBox") Me.CheckBox2.UseVisualStyleBackColor = True ' 'OpenFileDialog1 ' - Me.OpenFileDialog1.Filter = "Starter Scripts|*.dtss" + Me.OpenFileDialog1.Filter = LocalizationService.ForSection("StarterScript.Designer.Main")("Starter.Scripts.Dtss.Filter") ' 'SaveFileDialog1 ' - Me.SaveFileDialog1.Filter = "Starter Scripts|*.dtss" + Me.SaveFileDialog1.Filter = LocalizationService.ForSection("StarterScript.Designer.Main")("Starter.Scripts.Dtss.Filter") ' 'OpenFileDialog2 ' - Me.OpenFileDialog2.Filter = "Batch Scripts|*.bat;*.cmd|PowerShell scripts|*.ps1|Visual Basic Scripts|*.vb" & _ - "s;*.vbe;*.wsf;*.wsc|JScript Scripts|*.js;*.jse" - Me.OpenFileDialog2.Title = "Import Existing Script" + Me.OpenFileDialog2.Filter = LocalizationService.ForSection("StarterScript.Designer.Main")("BatchScripts.Filter") + Me.OpenFileDialog2.Title = LocalizationService.ForSection("StarterScript.Designer.Main")("Import.Existing.Script.Title") ' 'MainForm ' @@ -425,7 +423,7 @@ Partial Class MainForm Me.MinimumSize = New System.Drawing.Size(1024, 600) Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Starter Script Editor" + Me.Text = LocalizationService.ForSection("StarterScript.Designer.Main")("StarterScript.Editor.Label") Me.ToolStrip1.ResumeLayout(False) Me.ToolStrip1.PerformLayout() Me.TableLayoutPanel1.ResumeLayout(False) diff --git a/Tools/StarterScriptEditor/MainForm.resx b/Tools/StarterScriptEditor/MainForm.resx index df96e00fb..c78f5cb07 100644 --- a/Tools/StarterScriptEditor/MainForm.resx +++ b/Tools/StarterScriptEditor/MainForm.resx @@ -1,110 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx @@ -123,11 +65,6 @@ 512, 17 - - Starter Scripts allow you to run commands when installing Windows images with your unattended answer file. Use this application to create your own starter scripts that you can share with other people, or modify existing starter scripts to suit your needs. - -Use the buttons in the toolbar to create, open, and save starter scripts. - 119, 17 diff --git a/Tools/StarterScriptEditor/MainForm.vb b/Tools/StarterScriptEditor/MainForm.vb index 6e5e8eda9..1d75a3064 100644 --- a/Tools/StarterScriptEditor/MainForm.vb +++ b/Tools/StarterScriptEditor/MainForm.vb @@ -1,5 +1,5 @@ -Imports StarterScriptEditor.Classes -Imports StarterScriptEditor.Classes.ColorUtilities +Imports StarterScript.Classes +Imports StarterScript.Classes.ColorUtilities Imports System.IO Imports System.Text.Encoding Imports Microsoft.VisualBasic.ControlChars @@ -151,7 +151,7 @@ Public Class MainForm Private Sub LoadScriptFile(ByVal ScriptFile As String) If Not File.Exists(ScriptFile) Then - MsgBox("The script file does not exist.", vbOKOnly + vbExclamation) + MsgBox(LocalizationService.ForSection("StarterScript")("FileMissing.Label"), vbOKOnly + vbExclamation) Exit Sub End If @@ -187,10 +187,10 @@ Public Class MainForm CurrentScript = New StarterScript(scriptName, scriptDescription, scriptLang, String.Join(ControlChars.CrLf, ScriptCodeLines.ToArray()), scriptOptionsCustomizable) #End If SavedScriptPath = ScriptFile - Text = String.Format("Starter Script Editor - {0}", Path.GetFileName(SavedScriptPath)) + Text = String.Format(LocalizationService.ForSection("StarterScript")("Window.Title"), Path.GetFileName(SavedScriptPath)) If (File.GetAttributes(ScriptFile) And FileAttributes.ReadOnly) = FileAttributes.ReadOnly Then - MessageBox.Show("This script file has been loaded with read-only privileges. If you make changes to this script, you must save them to a new script file or enable write access for this script.", "Starter Script Editor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) + MessageBox.Show(LocalizationService.ForSection("StarterScript")("ReadOnlyFile.Message"), LocalizationService.ForSection("StarterScript")("Editor.Label"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation) roMode = True ToolStripButton5.Enabled = True End If @@ -198,8 +198,7 @@ Public Class MainForm Private Sub SaveScriptFile(ByVal ScriptFile As String, Optional ByVal DefaultScriptVersion As Boolean = True) If DefaultScriptVersion AndAlso ScriptVer < ScriptVersion.Infinity Then - If MessageBox.Show("The starter script had been created with an earlier version of the Starter Script Editor and will be saved with properties that will make it compatible with the current format. After this is done, the starter script will no longer be compatible with earlier versions of DISMTools or the Starter Script Editor." & CrLf & CrLf & _ - "Do you want to save this file?", "Starter Script Editor", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then + If MessageBox.Show(LocalizationService.ForSection("StarterScript")("AlreadyCreated.Message"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then NotWillingToSave = True Exit Sub End If @@ -235,12 +234,12 @@ Public Class MainForm End If SavedScriptPath = ScriptFile - Text = String.Format("Starter Script Editor - {0}", Path.GetFileName(SavedScriptPath)) + Text = String.Format(LocalizationService.ForSection("StarterScript")("Window.Title"), Path.GetFileName(SavedScriptPath)) Modified = False roMode = False ToolStripButton5.Enabled = False Catch ex As Exception - MessageBox.Show("Changes could not be saved to the script file. Make sure write access is present in the file. " & CrLf & CrLf & ex.Message & CrLf & CrLf & "To enable write access for this file, use the respective button in the toolbar.", "Save Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("StarterScript").Format("SaveFailed.Message", ex.Message), LocalizationService.ForSection("StarterScript")("SaveError.Label"), MessageBoxButtons.OK, MessageBoxIcon.Error) NotWillingToSave = True End Try End Sub @@ -248,7 +247,7 @@ Public Class MainForm Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click NotWillingToSave = False If Modified Then - Select Case MessageBox.Show("Do you want to save the changes to your script file?", "Starter Script Editor", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) + Select Case MessageBox.Show(LocalizationService.ForSection("StarterScript")("SaveChanges.Label"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) Case Windows.Forms.DialogResult.Yes ToolStripButton3.PerformClick() If NotWillingToSave Then Exit Sub @@ -262,12 +261,12 @@ Public Class MainForm Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click If TextBox1.Text = "" Then - MessageBox.Show("You must provide a name for this starter script.", "Starter Script Editor", MessageBoxButtons.OK, MessageBoxIcon.Stop) + MessageBox.Show(LocalizationService.ForSection("StarterScript")("Name.Required.Label"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.OK, MessageBoxIcon.Stop) NotWillingToSave = True Exit Sub End If If TextBox2.Text = "" Then - MessageBox.Show("You must provide a description for this starter script.", "Starter Script Editor", MessageBoxButtons.OK, MessageBoxIcon.Stop) + MessageBox.Show(LocalizationService.ForSection("StarterScript")("Description.Required.Label"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.OK, MessageBoxIcon.Stop) NotWillingToSave = True Exit Sub End If @@ -304,7 +303,7 @@ Public Class MainForm Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click NotWillingToSave = False If Modified Then - Select Case MessageBox.Show("Do you want to save the changes to your script file?", "Starter Script Editor", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) + Select Case MessageBox.Show(LocalizationService.ForSection("StarterScript")("SaveChanges.Message"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) Case Windows.Forms.DialogResult.Yes ToolStripButton3.PerformClick() If NotWillingToSave Then Exit Sub @@ -320,7 +319,7 @@ Public Class MainForm ToolStripButton5.Enabled = False ScriptVer = ScriptVersion.Infinity SavedScriptPath = "" - Text = "Starter Script Editor" + Text = LocalizationService.ForSection("StarterScript")("Window.Default") End Sub Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk @@ -362,26 +361,15 @@ Public Class MainForm Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click #If VBC_VER >= 9.0 Then #If DEBUG Then - MsgBox(String.Format("DISMTools Starter Script Editor version {0} ({1}_DEBUG)" & CrLf & CrLf & "{2}", _ - My.Application.Info.Version.ToString() & "_" & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm") , _ - SSECodeName.ToUpper(), _ - My.Application.Info.Copyright), _ - vbOKOnly + vbInformation, "About") + MsgBox(LocalizationService.ForSection("StarterScript").Format("DebugEditor.Label", My.Application.Info.Version.ToString() & "_" & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), SSECodeName.ToUpper(), My.Application.Info.Copyright), vbOKOnly + vbInformation, LocalizationService.ForSection("StarterScript")("About.Label")) #Else - MsgBox(String.Format("DISMTools Starter Script Editor version {0}" & CrLf & CrLf & "{1}", _ - My.Application.Info.Version.ToString() & "_" & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm") , _ - My.Application.Info.Copyright), _ - vbOKOnly + vbInformation, "About") + MsgBox(LocalizationService.ForSection("StarterScript").Format("Editor.Message", My.Application.Info.Version.ToString() & "_" & RetrieveLinkerTimestamp().ToString("yyMMdd-HHmm"), My.Application.Info.Copyright), vbOKOnly + vbInformation, LocalizationService.ForSection("StarterScript")("About.Label")) #End If #Else #If DEBUG Then - MsgBox(String.Format("DISMTools Starter Script Editor version {0}_NET2REL ({1}_DEBUG)" & CrLf & CrLf & "{2}", _ - My.Application.Info.Version.ToString(), SSECodeName.ToUpper(), My.Application.Info.Copyright), _ - vbOKOnly + vbInformation, "About") + MsgBox(LocalizationService.ForSection("StarterScript").Format("DebugVersion.Message", My.Application.Info.Version.ToString(), SSECodeName.ToUpper(), My.Application.Info.Copyright), vbOKOnly + vbInformation, LocalizationService.ForSection("StarterScript")("About.Label")) #Else - MsgBox(String.Format("DISMTools Starter Script Editor version {0}_NET2REL" & CrLf & CrLf & "{1}", _ - My.Application.Info.Version.ToString(), My.Application.Info.Copyright), _ - vbOKOnly + vbInformation, "About") + MsgBox(LocalizationService.ForSection("StarterScript").Format("Version.Message", My.Application.Info.Version.ToString(), My.Application.Info.Copyright), vbOKOnly + vbInformation, LocalizationService.ForSection("StarterScript")("About.Label")) #End If #End If End Sub @@ -395,7 +383,7 @@ Public Class MainForm If Not File.Exists(OpenFileDialog2.FileName) Then Exit Sub If TextBox3.Text <> "" Then - If MessageBox.Show("Importing the selected script will replace existing contents of your script.", "Import Existing Script", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Cancel Then + If MessageBox.Show(LocalizationService.ForSection("StarterScript")("ImportSelected.Message"), LocalizationService.ForSection("StarterScript")("ImportExisting.Label"), MessageBoxButtons.OKCancel, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Cancel Then Exit Sub End If End If @@ -416,7 +404,7 @@ Public Class MainForm ElseIf expectedJScriptExtensions.Contains(scriptExtension) Then ComboBox1.SelectedIndex = 3 Else - MessageBox.Show("This script is not supported by the Starter Script Editor.", "Unrecognized script", MessageBoxButtons.OK, MessageBoxIcon.Warning) + MessageBox.Show(LocalizationService.ForSection("StarterScript")("SupportedScript.Label"), LocalizationService.ForSection("StarterScript")("Unrecognized.Label"), MessageBoxButtons.OK, MessageBoxIcon.Warning) Exit Sub End If @@ -425,7 +413,7 @@ Public Class MainForm TextBox3.Text = scriptContents UpdateCaretPosition() Catch ex As Exception - MessageBox.Show("The contents of the script could not be loaded.", "Could not read file contents", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("StarterScript")("LoadFailed.Label"), LocalizationService.ForSection("StarterScript")("ReadFailed.Label"), MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub @@ -455,7 +443,7 @@ Public Class MainForm Private Sub MainForm_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing NotWillingToSave = False If Modified Then - Select Case MessageBox.Show("Do you want to save the changes to your script file?", "Starter Script Editor", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) + Select Case MessageBox.Show(LocalizationService.ForSection("StarterScript")("SaveChanges.Message"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) Case Windows.Forms.DialogResult.Yes ToolStripButton3.PerformClick() If NotWillingToSave Then @@ -514,12 +502,12 @@ Public Class MainForm roMode = False ToolStripButton5.Enabled = False Catch ex As Exception - MessageBox.Show("Could not enable write access for this script file. Make sure that the script is not in read-only media.", "Starter Script Editor", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("StarterScript")("WriteAccess.Message"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private Sub CheckBox2_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.MouseHover - WindowHelper.DisplayToolTip(sender, "Check this option if this script contains settings that can be configured by the user" & CrLf & "after importing the starter script from the Starter Script Browser.") + WindowHelper.DisplayToolTip(sender, LocalizationService.ForSection("StarterScript")("CheckScript.Message")) End Sub Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click @@ -540,7 +528,7 @@ Public Class MainForm Do Until fontConfigured Try If EditorFD.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then - If Not IsMonospacedFont(EditorFD.Font.Name) AndAlso MessageBox.Show("You have selected a non-monospaced font. Text may not look correctly. Do you want to continue?", "Starter Script Editor", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then + If Not IsMonospacedFont(EditorFD.Font.Name) AndAlso MessageBox.Show(LocalizationService.ForSection("StarterScript")("NonMonospace.Message"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then Exit Sub End If TextBox3.Font = EditorFD.Font @@ -548,7 +536,7 @@ Public Class MainForm fontConfigured = True Catch arEx As ArgumentException ' The user may have selected a non-TrueType font - MessageBox.Show(arEx.Message, "Starter Script Editor", MessageBoxButtons.OK, MessageBoxIcon.Warning) + MessageBox.Show(arEx.Message, LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.OK, MessageBoxIcon.Warning) End Try Loop End Sub @@ -574,12 +562,12 @@ Public Class MainForm Private Sub ToolStripButton8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton8.Click If TextBox1.Text = "" Then - MessageBox.Show("You must provide a name for this starter script.", "Starter Script Editor", MessageBoxButtons.OK, MessageBoxIcon.Stop) + MessageBox.Show(LocalizationService.ForSection("StarterScript")("Name.Required.Message"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.OK, MessageBoxIcon.Stop) NotWillingToSave = True Exit Sub End If If TextBox2.Text = "" Then - MessageBox.Show("You must provide a description for this starter script.", "Starter Script Editor", MessageBoxButtons.OK, MessageBoxIcon.Stop) + MessageBox.Show(LocalizationService.ForSection("StarterScript")("Description.Required.Message"), LocalizationService.ForSection("StarterScript")("Dialog.Title"), MessageBoxButtons.OK, MessageBoxIcon.Stop) NotWillingToSave = True Exit Sub End If diff --git a/Tools/StarterScriptEditor/My Project/Application.Designer.vb b/Tools/StarterScriptEditor/My Project/Application.Designer.vb index 91cfc87f4..1a8748f94 100644 --- a/Tools/StarterScriptEditor/My Project/Application.Designer.vb +++ b/Tools/StarterScriptEditor/My Project/Application.Designer.vb @@ -1,4 +1,4 @@ -'------------------------------------------------------------------------------ +'------------------------------------------------------------------------------ ' ' Este código fue generado por una herramienta. ' Versión de runtime:4.0.30319.42000 @@ -32,7 +32,7 @@ Namespace My _ Protected Overrides Sub OnCreateMainForm() - Me.MainForm = Global.StarterScriptEditor.MainForm + Me.MainForm = Global.StarterScript.MainForm End Sub End Class End Namespace diff --git a/Tools/StarterScriptEditor/My Project/Resources.Designer.vb b/Tools/StarterScriptEditor/My Project/Resources.Designer.vb index 8401c9a01..b1493debe 100644 --- a/Tools/StarterScriptEditor/My Project/Resources.Designer.vb +++ b/Tools/StarterScriptEditor/My Project/Resources.Designer.vb @@ -1,4 +1,4 @@ -'------------------------------------------------------------------------------ +'------------------------------------------------------------------------------ ' ' Este código fue generado por una herramienta. ' Versión de runtime:4.0.30319.42000 @@ -39,7 +39,7 @@ Namespace My.Resources Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager Get If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("StarterScriptEditor.Resources", GetType(Resources).Assembly) + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("StarterScript.Resources", GetType(Resources).Assembly) resourceMan = temp End If Return resourceMan diff --git a/Tools/StarterScriptEditor/My Project/Settings.Designer.vb b/Tools/StarterScriptEditor/My Project/Settings.Designer.vb index 91dd08d42..42c99ed19 100644 --- a/Tools/StarterScriptEditor/My Project/Settings.Designer.vb +++ b/Tools/StarterScriptEditor/My Project/Settings.Designer.vb @@ -1,4 +1,4 @@ -'------------------------------------------------------------------------------ +'------------------------------------------------------------------------------ ' ' Este código fue generado por una herramienta. ' Versión de runtime:4.0.30319.42000 @@ -64,9 +64,9 @@ Namespace My Friend Module MySettingsProperty _ - Friend ReadOnly Property Settings() As Global.StarterScriptEditor.My.MySettings + Friend ReadOnly Property Settings() As Global.StarterScript.My.MySettings Get - Return Global.StarterScriptEditor.My.MySettings.Default + Return Global.StarterScript.My.MySettings.Default End Get End Property End Module diff --git a/Tools/StarterScriptEditor/ScriptVersionChooser.Designer.vb b/Tools/StarterScriptEditor/ScriptVersionChooser.Designer.vb index 2fe4f82ad..d0230249e 100644 --- a/Tools/StarterScriptEditor/ScriptVersionChooser.Designer.vb +++ b/Tools/StarterScriptEditor/ScriptVersionChooser.Designer.vb @@ -54,7 +54,7 @@ Partial Class ScriptVersionChooser Me.OK_Button.Name = "OK_Button" Me.OK_Button.Size = New System.Drawing.Size(67, 23) Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" + Me.OK_Button.Text = LocalizationService.ForSection("StarterScript.Designer.Version")("Ok.Button") ' 'Cancel_Button ' @@ -65,7 +65,7 @@ Partial Class ScriptVersionChooser Me.Cancel_Button.Name = "Cancel_Button" Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" + Me.Cancel_Button.Text = LocalizationService.ForSection("StarterScript.Designer.Version")("Cancel.Button") ' 'Label1 ' @@ -76,9 +76,7 @@ Partial Class ScriptVersionChooser Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(481, 28) Me.Label1.TabIndex = 1 - Me.Label1.Text = "This starter script can be configured to work with specific versions of DISMTools" & _ - " and the Starter Script Editor. Choose the version that you want to target with " & _ - "this script and click OK:" + Me.Label1.Text = LocalizationService.ForSection("StarterScript.Designer.Version")("ConfiguredScript.Message") ' 'RadioButton1 ' @@ -89,7 +87,7 @@ Partial Class ScriptVersionChooser Me.RadioButton1.Size = New System.Drawing.Size(316, 17) Me.RadioButton1.TabIndex = 2 Me.RadioButton1.TabStop = True - Me.RadioButton1.Text = "This starter script targets DISMTools 0.8 and future versions" + Me.RadioButton1.Text = LocalizationService.ForSection("StarterScript.Designer.Version")("Target.Future08.RadioButton") Me.RadioButton1.UseVisualStyleBackColor = True ' 'RadioButton2 @@ -99,7 +97,7 @@ Partial Class ScriptVersionChooser Me.RadioButton2.Name = "RadioButton2" Me.RadioButton2.Size = New System.Drawing.Size(229, 17) Me.RadioButton2.TabIndex = 2 - Me.RadioButton2.Text = "This starter script targets DISMTools 0.7.3" + Me.RadioButton2.Text = LocalizationService.ForSection("StarterScript.Designer.Version")("Target.Legacy073.RadioButton") Me.RadioButton2.UseVisualStyleBackColor = True ' 'ScriptVersionChooser @@ -120,7 +118,7 @@ Partial Class ScriptVersionChooser Me.Name = "ScriptVersionChooser" Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Choose target version for this script" + Me.Text = LocalizationService.ForSection("StarterScript.Designer.Version")("TargetVersion.Label") Me.TableLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() diff --git a/Tools/StarterScriptEditor/ScriptVersionChooser.vb b/Tools/StarterScriptEditor/ScriptVersionChooser.vb index b0ac5bc5a..0b00770d2 100644 --- a/Tools/StarterScriptEditor/ScriptVersionChooser.vb +++ b/Tools/StarterScriptEditor/ScriptVersionChooser.vb @@ -1,5 +1,5 @@ Imports System.Windows.Forms -Imports StarterScriptEditor.Classes.ColorUtilities +Imports StarterScript.Classes.ColorUtilities Public Class ScriptVersionChooser diff --git a/Tools/StarterScriptEditor/StarterScriptEditor.vbproj b/Tools/StarterScriptEditor/StarterScriptEditor.vbproj index 3648f8354..3f99ae73b 100644 --- a/Tools/StarterScriptEditor/StarterScriptEditor.vbproj +++ b/Tools/StarterScriptEditor/StarterScriptEditor.vbproj @@ -1,4 +1,4 @@ - + Debug @@ -7,7 +7,7 @@ 2.0 {FF315C4A-2668-4E7A-8885-00C2F806945C} WinExe - StarterScriptEditor.My.MyApplication + StarterScript.My.MyApplication StarterScriptEditor StarterScriptEditor WindowsForms @@ -40,7 +40,7 @@ true true bin\Debug\ - StarterScriptEditor.xml + StarterScript.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355 false @@ -50,7 +50,7 @@ true true bin\Release\ - StarterScriptEditor.xml + StarterScript.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022,42353,42354,42355 false @@ -80,6 +80,10 @@ + + + Utilities\LocalizationService.vb + diff --git a/Tools/build/BuildInstaller.ps1 b/Tools/build/BuildInstaller.ps1 new file mode 100644 index 000000000..838bbc8f4 --- /dev/null +++ b/Tools/build/BuildInstaller.ps1 @@ -0,0 +1,128 @@ +param( + [string]$BuildOutputPath = "", + [string]$InstallerDirectory = "", + [switch]$CleanFilesDirectory +) + +$ErrorActionPreference = "Stop" + +function Fail([string]$Message) { + throw $Message +} + +$repositoryRoot = Resolve-Path (Join-Path $PSScriptRoot "..\..") + +if ([string]::IsNullOrWhiteSpace($InstallerDirectory)) { + $InstallerDirectory = Join-Path $repositoryRoot "Installer" +} + +if ([string]::IsNullOrWhiteSpace($BuildOutputPath)) { + $BuildOutputPath = Join-Path $repositoryRoot "bin\Debug" +} + +$installerDirectoryResolved = Resolve-Path -LiteralPath $InstallerDirectory +$installerDirectory = $installerDirectoryResolved.Path + +if (-not (Test-Path -LiteralPath $BuildOutputPath)) { + Fail "Build output directory was not found: $BuildOutputPath" +} + +$scriptPath = Join-Path $installerDirectory "dt.iss" +if (-not (Test-Path -LiteralPath $scriptPath)) { + Fail "Inno Setup script was not found: $scriptPath" +} + +$compilerDirectory = Join-Path $installerDirectory "Compiler" +$compilerCandidates = @( + (Join-Path $compilerDirectory "ISCC.exe"), + (Join-Path $compilerDirectory "iscc.exe") +) + +$compilerPath = $compilerCandidates | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1 +if ([string]::IsNullOrWhiteSpace($compilerPath)) { + Fail "Inno Setup compiler was not found in: $compilerDirectory" +} + +$compilerDefaultMessagesPath = Join-Path $compilerDirectory "Default.isl" +if (-not (Test-Path -LiteralPath $compilerDefaultMessagesPath)) { + Fail "Inno Setup compiler runtime message file was not found: $compilerDefaultMessagesPath" +} + +$languageDirectory = Join-Path $installerDirectory "Languages" +if (-not (Test-Path -LiteralPath $languageDirectory)) { + Fail "Installer language directory was not found: $languageDirectory" +} + +$englishLanguagePath = Join-Path $languageDirectory "English.isl" + +$requiredInstallerLanguages = @( + "English.isl", + "Spanish.isl", + "French.isl", + "German.isl", + "Italian.isl", + "Portuguese.isl" +) + +foreach ($languageFile in $requiredInstallerLanguages) { + $languagePath = Join-Path $languageDirectory $languageFile + if (-not (Test-Path -LiteralPath $languagePath)) { + Fail "Installer language file was not found: $languagePath" + } +} + +if (-not (Test-Path -LiteralPath $englishLanguagePath)) { + Fail "Installer English language file was not found: $englishLanguagePath" +} + +$filesDirectory = Join-Path $installerDirectory "files" +if ($CleanFilesDirectory -and (Test-Path -LiteralPath $filesDirectory)) { + Remove-Item -LiteralPath $filesDirectory -Recurse -Force +} + +if (-not (Test-Path -LiteralPath $filesDirectory)) { + New-Item -ItemType Directory -Path $filesDirectory -Force | Out-Null +} + +Write-Host "Copying program files to installer payload..." +Copy-Item -Path (Join-Path $BuildOutputPath "*") -Destination $filesDirectory -Recurse -Force + +Get-ChildItem -LiteralPath $filesDirectory -Filter "VS*.tmp" -Force -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue + +$outputDirectory = Join-Path $installerDirectory "Output" +$outputPath = Join-Path $outputDirectory "dt_setup.exe" + +if (Test-Path -LiteralPath $outputPath) { + Remove-Item -LiteralPath $outputPath -Force +} + +Write-Host "Building installer with Inno Setup..." +Write-Host "Compiler: $compilerPath" +Write-Host "Compiler default messages: $compilerDefaultMessagesPath" +Write-Host "Script: $scriptPath" +Write-Host "Output: $outputPath" + +Push-Location $installerDirectory +try { + & $compilerPath "dt.iss" + $exitCode = $LASTEXITCODE +} finally { + Pop-Location +} + +if ($exitCode -ne 0) { + Fail "Inno Setup compiler failed with exit code $exitCode." +} + +if (-not (Test-Path -LiteralPath $outputPath)) { + Write-Host "Installer output was not found. Current Installer\Output contents:" + if (Test-Path -LiteralPath $outputDirectory) { + Get-ChildItem -LiteralPath $outputDirectory -Force | Format-Table FullName, Length, LastWriteTime -AutoSize | Out-String | Write-Host + } else { + Write-Host "Output directory does not exist: $outputDirectory" + } + Fail "Installer output file was not created: $outputPath" +} + +Get-Item -LiteralPath $outputPath | Select-Object FullName, Length, LastWriteTime | Format-List | Out-String | Write-Host +Write-Host "Installer build completed successfully." diff --git a/Tools/build/PrepareNuGetPackages.ps1 b/Tools/build/PrepareNuGetPackages.ps1 new file mode 100644 index 000000000..7a5930330 --- /dev/null +++ b/Tools/build/PrepareNuGetPackages.ps1 @@ -0,0 +1,243 @@ +$ErrorActionPreference = "Stop" + +$root = (Resolve-Path (Join-Path $PSScriptRoot "..\..")).Path +$rootPackagesDir = Join-Path $root "packages" +$hotInstallRoot = Join-Path $root "Helpers\extps1\PE_Helper\tools\HotInstall" +$hotInstallPackagesDir = Join-Path $hotInstallRoot "packages" +$themeDesignerPackagesDir = Join-Path $root "Tools\DT_ThemeDesigner\packages" +$primaryPackageArchive = Join-Path $root "tools\build\pkgsrc.bundle" +$packageArchive = $null + +function Test-ZipHeader { + param( + [Parameter(Mandatory = $true)] + [string]$Path + ) + + if (-not (Test-Path -LiteralPath $Path -PathType Leaf)) { + return $false + } + + $stream = [System.IO.File]::OpenRead($Path) + try { + if ($stream.Length -lt 4) { + return $false + } + + $buffer = New-Object byte[] 4 + [void]$stream.Read($buffer, 0, 4) + return ($buffer[0] -eq 0x50 -and $buffer[1] -eq 0x4B) + } + finally { + $stream.Dispose() + } +} + +function Test-GitLfsPointer { + param( + [Parameter(Mandatory = $true)] + [string]$Path + ) + + if (-not (Test-Path -LiteralPath $Path -PathType Leaf)) { + return $false + } + + $stream = [System.IO.File]::OpenRead($Path) + try { + $length = [Math]::Min([int]$stream.Length, 256) + if ($length -le 0) { + return $false + } + + $buffer = New-Object byte[] $length + [void]$stream.Read($buffer, 0, $length) + $header = [System.Text.Encoding]::ASCII.GetString($buffer) + return $header.StartsWith("version https://git-lfs.github.com/spec/") + } + finally { + $stream.Dispose() + } +} + +function Assert-RequiredPackageFile { + param( + [Parameter(Mandatory = $true)] + [string]$RelativePath + ) + + $path = Join-Path $root $RelativePath + if (-not (Test-Path -LiteralPath $path -PathType Leaf)) { + throw "Required package file is missing after preparation: $RelativePath" + } +} + +function Assert-PackageFolder { + param( + [Parameter(Mandatory = $true)] + [string]$PackageFolder + ) + + $path = Join-Path $rootPackagesDir $PackageFolder + if (-not (Test-Path -LiteralPath $path -PathType Container)) { + throw "Required package folder is missing after extracting the package archive: packages\$PackageFolder" + } +} + +function Copy-PackageFolder { + param( + [Parameter(Mandatory = $true)] + [string]$PackageFolder, + + [Parameter(Mandatory = $true)] + [string]$DestinationPackagesDir + ) + + $source = Join-Path $rootPackagesDir $PackageFolder + if (-not (Test-Path -LiteralPath $source -PathType Container)) { + throw "Cannot copy nested package. Source package folder is missing: $source" + } + + New-Item -ItemType Directory -Path $DestinationPackagesDir -Force | Out-Null + $destination = Join-Path $DestinationPackagesDir $PackageFolder + + if (Test-Path -LiteralPath $destination) { + Remove-Item -LiteralPath $destination -Recurse -Force + } + + Copy-Item -LiteralPath $source -Destination $destination -Recurse -Force +} + +function Assert-PackagesConfigFolders { + param( + [Parameter(Mandatory = $true)] + [string]$PackagesConfig, + + [Parameter(Mandatory = $true)] + [string]$PackagesDirectory + ) + + if (-not (Test-Path -LiteralPath $PackagesConfig -PathType Leaf)) { + throw "packages.config was not found: $PackagesConfig" + } + + [xml]$packagesXml = Get-Content -LiteralPath $PackagesConfig + foreach ($package in $packagesXml.packages.package) { + $folderName = "$($package.id).$($package.version)" + $folderPath = Join-Path $PackagesDirectory $folderName + if (-not (Test-Path -LiteralPath $folderPath -PathType Container)) { + throw "Package folder from packages.config is missing: $folderPath" + } + } +} + +function Assert-ProjectHintPathFiles { + param( + [Parameter(Mandatory = $true)] + [string]$ProjectFile, + + [Parameter(Mandatory = $true)] + [string]$ProjectRoot + ) + + if (-not (Test-Path -LiteralPath $ProjectFile -PathType Leaf)) { + throw "Project file was not found: $ProjectFile" + } + + [xml]$projectXml = Get-Content -LiteralPath $ProjectFile + $namespaceManager = New-Object System.Xml.XmlNamespaceManager($projectXml.NameTable) + $namespaceManager.AddNamespace("msb", "http://schemas.microsoft.com/developer/msbuild/2003") + + $hintPathNodes = $projectXml.SelectNodes("//msb:Reference/msb:HintPath", $namespaceManager) + $missingFiles = New-Object System.Collections.Generic.List[string] + + foreach ($hintPathNode in $hintPathNodes) { + $relativeHintPath = $hintPathNode.InnerText.Trim() + if ([string]::IsNullOrWhiteSpace($relativeHintPath)) { + continue + } + + if (-not $relativeHintPath.EndsWith(".dll", [System.StringComparison]::OrdinalIgnoreCase)) { + continue + } + + $path = Join-Path $ProjectRoot $relativeHintPath + if (-not (Test-Path -LiteralPath $path -PathType Leaf)) { + $missingFiles.Add($relativeHintPath) | Out-Null + } + } + + if ($missingFiles.Count -gt 0) { + $message = "Some project HintPath DLL files are still missing:" + [Environment]::NewLine + ($missingFiles -join [Environment]::NewLine) + throw $message + } +} + +foreach ($directory in @($rootPackagesDir, $hotInstallPackagesDir, $themeDesignerPackagesDir)) { + if (Test-Path -LiteralPath $directory) { + Remove-Item -LiteralPath $directory -Recurse -Force + } +} + +if (Test-Path -LiteralPath $primaryPackageArchive -PathType Leaf) { + $packageArchive = $primaryPackageArchive + Write-Host "Using bundled package archive: tools\build\pkgsrc.bundle" +} +else { + throw "Bundled package archive was not found. Add tools\build\pkgsrc.bundle before building." +} + +if ($null -ne $packageArchive) { + $packageArchiveLabel = Resolve-Path -LiteralPath $packageArchive + + if (Test-GitLfsPointer -Path $packageArchive) { + throw "$packageArchiveLabel is a Git LFS pointer, not a real ZIP archive. Commit the real archive file. The preferred path is tools\build\pkgsrc.bundle because it is not matched by ZIP LFS rules." + } + + if (-not (Test-ZipHeader -Path $packageArchive)) { + $size = (Get-Item -LiteralPath $packageArchive).Length + throw "$packageArchiveLabel is not a valid ZIP archive. Current file size is $size bytes." + } + + Write-Host "$packageArchiveLabel is a valid ZIP archive. Extracting bundled packages." + New-Item -ItemType Directory -Path $rootPackagesDir -Force | Out-Null + Add-Type -AssemblyName System.IO.Compression.FileSystem + [System.IO.Compression.ZipFile]::ExtractToDirectory($packageArchive, $rootPackagesDir) + Write-Host "Bundled packages were extracted to $rootPackagesDir" + + Copy-PackageFolder -PackageFolder "ini-parser.2.5.2" -DestinationPackagesDir $hotInstallPackagesDir + Copy-PackageFolder -PackageFolder "Microsoft.Dism.6.0.0" -DestinationPackagesDir $hotInstallPackagesDir + Copy-PackageFolder -PackageFolder "ini-parser.2.5.2" -DestinationPackagesDir $themeDesignerPackagesDir +} + +Assert-PackagesConfigFolders -PackagesConfig (Join-Path $root "packages.config") -PackagesDirectory $rootPackagesDir +Assert-PackagesConfigFolders -PackagesConfig (Join-Path $root "Tools\AutoReloadService\packages.config") -PackagesDirectory $rootPackagesDir +Assert-PackagesConfigFolders -PackagesConfig (Join-Path $hotInstallRoot "Installer\packages.config") -PackagesDirectory $hotInstallPackagesDir + +Assert-RequiredPackageFile "packages\Microsoft.Dism.6.0.0\lib\net472\Microsoft.Dism.dll" +Assert-RequiredPackageFile "packages\ini-parser.2.5.2\lib\net20\INIFileParser.dll" +Assert-RequiredPackageFile "packages\Scintilla5.NET.6.1.2\build\scintilla5.net.targets" +Assert-RequiredPackageFile "Helpers\extps1\PE_Helper\tools\HotInstall\packages\ini-parser.2.5.2\lib\net20\INIFileParser.dll" +Assert-RequiredPackageFile "Helpers\extps1\PE_Helper\tools\HotInstall\packages\Microsoft.Dism.6.0.0\lib\net472\Microsoft.Dism.dll" +Assert-RequiredPackageFile "Tools\DT_ThemeDesigner\packages\ini-parser.2.5.2\lib\net20\INIFileParser.dll" + +foreach ($folder in @( + "DarkUI.2.0.2", + "ini-parser.2.5.2", + "Markdig.1.3.1", + "Microsoft.Dism.6.0.0", + "Scintilla5.NET.6.1.2", + "System.Runtime.4.3.1", + "System.Security.Cryptography.Algorithms.4.3.1", + "System.Security.Cryptography.X509Certificates.4.3.2", + "Tulpep.ActiveDirectoryObjectPicker.3.0.11", + "WindowsAPICodePack.8.0.15.2" +)) { + Assert-PackageFolder -PackageFolder $folder +} + +Assert-ProjectHintPathFiles -ProjectFile (Join-Path $root "DISMTools.vbproj") -ProjectRoot $root +Assert-ProjectHintPathFiles -ProjectFile (Join-Path $hotInstallRoot "Installer\HotInstall.vbproj") -ProjectRoot (Join-Path $hotInstallRoot "Installer") +Assert-ProjectHintPathFiles -ProjectFile (Join-Path $root "Tools\DT_ThemeDesigner\DT_ThemeDesigner.vbproj") -ProjectRoot (Join-Path $root "Tools\DT_ThemeDesigner") + +Write-Host "NuGet package preparation completed successfully from the bundled package archive." diff --git a/Tools/build/PublishReleaseAsset.ps1 b/Tools/build/PublishReleaseAsset.ps1 new file mode 100644 index 000000000..0dc48e915 --- /dev/null +++ b/Tools/build/PublishReleaseAsset.ps1 @@ -0,0 +1,396 @@ +param( + [Parameter(Mandatory = $true)] + [string]$InstallerPath, + + [Parameter(Mandatory = $true)] + [string]$PortableSourcePath, + + [Parameter(Mandatory = $true)] + [string]$BranchName, + + [Parameter(Mandatory = $true)] + [string]$RunNumber, + + [Parameter(Mandatory = $true)] + [string]$RunAttempt, + + [Parameter(Mandatory = $true)] + [string]$Sha, + + [Parameter(Mandatory = $false)] + [ValidateSet("stable", "preview")] + [string]$ReleaseChannel = "stable", + + [Parameter(Mandatory = $false)] + [string]$AssetOutputDirectory = "", + + [Parameter(Mandatory = $false)] + [switch]$Prerelease, + + [Parameter(Mandatory = $false)] + [switch]$Draft +) + +$ErrorActionPreference = "Stop" + +function Fail($Message) { + throw $Message +} + +function Get-RepositoryRoot { + $root = (& git rev-parse --show-toplevel 2>$null) + if ($LASTEXITCODE -ne 0 -or [string]::IsNullOrWhiteSpace($root)) { + return (Get-Location).Path + } + return $root.Trim() +} + +function Get-AssemblyVersionInfo($RepositoryRoot) { + $assemblyInfoPath = Join-Path $RepositoryRoot "My Project\AssemblyInfo.vb" + if (-not (Test-Path -LiteralPath $assemblyInfoPath)) { + Fail "AssemblyInfo.vb was not found: $assemblyInfoPath" + } + + $assemblyInfo = Get-Content -LiteralPath $assemblyInfoPath -Raw + $versionMatch = [regex]::Match($assemblyInfo, 'AssemblyFileVersion\("(?[^"\)]+)"\)') + if (-not $versionMatch.Success) { + $versionMatch = [regex]::Match($assemblyInfo, 'AssemblyVersion\("(?[^"\)]+)"\)') + } + if (-not $versionMatch.Success) { + Fail "Could not find AssemblyFileVersion or AssemblyVersion in AssemblyInfo.vb." + } + + $fullVersion = $versionMatch.Groups["version"].Value.Trim() + $parts = $fullVersion.Split('.') + if ($parts.Count -ge 2) { + $publicVersion = "$($parts[0]).$($parts[1])" + } else { + $publicVersion = $fullVersion + } + + return [pscustomobject]@{ + FullVersion = $fullVersion + PublicVersion = $publicVersion + } +} + +function Get-ReleaseDateStamp { + $utcNow = (Get-Date).ToUniversalTime() + try { + $timeZone = [System.TimeZoneInfo]::FindSystemTimeZoneById("FLE Standard Time") + $releaseDate = [System.TimeZoneInfo]::ConvertTimeFromUtc($utcNow, $timeZone) + } catch { + $releaseDate = $utcNow + } + + return [pscustomobject]@{ + DateStamp = $releaseDate.ToString("yyMMdd") + LongDate = $releaseDate.ToString("yyyy-MM-dd HH:mm") + ZoneLabel = if ($releaseDate -eq $utcNow) { "UTC" } else { "FLE" } + } +} + +function New-CleanName($Value) { + $clean = $Value -replace '[^A-Za-z0-9._-]', '-' + $clean = $clean.Trim('-') + if ([string]::IsNullOrWhiteSpace($clean)) { + return "release" + } + return $clean +} + +function New-PortableArchive($SourcePath, $DestinationPath) { + if (Test-Path -LiteralPath $DestinationPath) { + Remove-Item -LiteralPath $DestinationPath -Force + } + + $stagingRoot = Join-Path ([System.IO.Path]::GetTempPath()) ("dismtools-portable-" + [guid]::NewGuid().ToString("N")) + New-Item -ItemType Directory -Path $stagingRoot -Force | Out-Null + + try { + foreach ($item in Get-ChildItem -LiteralPath $SourcePath -Force) { + if ($item.Name -ieq "settings.ini") { + Write-Host "Skipping default settings.ini for portable first run." + continue + } + + Copy-Item -LiteralPath $item.FullName -Destination $stagingRoot -Recurse -Force + } + + $portableMarkerPath = Join-Path $stagingRoot "portable" + if (-not (Test-Path -LiteralPath $portableMarkerPath)) { + New-Item -ItemType File -Path $portableMarkerPath -Force | Out-Null + } + Set-ItemProperty -LiteralPath $portableMarkerPath -Name Attributes -Value ([System.IO.FileAttributes]::Normal) + + $settingsPath = Join-Path $stagingRoot "settings.ini" + if (Test-Path -LiteralPath $settingsPath) { + Remove-Item -LiteralPath $settingsPath -Force + } + + $sourceItems = Join-Path $stagingRoot "*" + Compress-Archive -Path $sourceItems -DestinationPath $DestinationPath -CompressionLevel Optimal -Force + } finally { + if (Test-Path -LiteralPath $stagingRoot) { + Remove-Item -LiteralPath $stagingRoot -Recurse -Force + } + } +} + +function Test-PortableArchive($ArchivePath) { + Add-Type -AssemblyName System.IO.Compression.FileSystem + $zip = [System.IO.Compression.ZipFile]::OpenRead($ArchivePath) + try { + $entryNames = @($zip.Entries | ForEach-Object { $_.FullName -replace '\\', '/' }) + if ($entryNames -contains "settings.ini") { + Fail "Portable archive contains settings.ini. First run setup would be skipped." + } + if ($entryNames -notcontains "portable") { + Fail "Portable archive does not contain the portable marker file." + } + } finally { + $zip.Dispose() + } +} + +function Get-ShortSha($CommitSha) { + if ([string]::IsNullOrWhiteSpace($CommitSha)) { + return "unknown" + } + if ($CommitSha.Length -le 7) { + return $CommitSha + } + return $CommitSha.Substring(0, 7) +} + +function Get-ChangeList($CommitSha) { + $changes = @() + $previousTag = (& git describe --tags --abbrev=0 "$CommitSha^" 2>$null) + if ($LASTEXITCODE -eq 0 -and -not [string]::IsNullOrWhiteSpace($previousTag)) { + $range = "$($previousTag.Trim())..$CommitSha" + $changes = (& git log --pretty=format:"* %s in %h" $range 2>$null) + } + + if ($changes.Count -eq 0) { + $changes = (& git log --pretty=format:"* %s in %h" -n 20 $CommitSha 2>$null) + } + + if ($LASTEXITCODE -ne 0 -or $changes.Count -eq 0) { + return "* No commit list was generated for this build." + } + + return ($changes -join [Environment]::NewLine) +} + +function New-ReleaseNotes($Context) { + $hashRows = @() + foreach ($asset in $Context.Assets) { + $hashRows += "| $($asset.Kind) | $($asset.Name) | $($asset.Hash) |" + } + + $changes = Get-ChangeList $Context.CommitSha + $shortSha = Get-ShortSha $Context.CommitSha + $preReleaseText = if ($Context.IsPrerelease) { "Yes" } else { "No" } + $draftText = if ($Context.IsDraft) { "Yes" } else { "No" } + + $notes = @" +DISMTools $($Context.PublicVersion) is now available as a $($Context.ReleaseChannel) build, with new artifacts attached to this GitHub Release. + +## File hashes + +| File | Name | Hash SHA256 | +| --- | --- | --- | +$($hashRows -join [Environment]::NewLine) + +> [!IMPORTANT] +> If Windows Defender or SmartScreen reports this build as suspicious, check the SHA256 hashes above and download only from this GitHub Release. Unsigned Windows desktop tools can be flagged more often because code signing certificates are expensive. + +## Overall changes + +This release was generated by the GitHub Actions release pipeline. It creates a new GitHub Release for every run instead of updating an old tag or replacing old assets. + +## Update details + +| Setting | New status | Reason | +| --- | --- | --- | +| Product version | $($Context.FullVersion) | Version read from AssemblyInfo.vb | +| Release channel | $($Context.ReleaseChannel) | Selected by workflow input or branch name | +| Release tag | $($Context.TagName) | Unique tag generated for this run | +| Target commit | $shortSha | Source commit used for the build | +| Workflow run | $($Context.RunNumber) | Keeps releases unique on the same day | +| Workflow attempt | $($Context.RunAttempt) | Added to the tag when the run is retried | +| Release date | $($Context.ReleaseDate) | Date stamp used in the release tag | +| Prerelease | $preReleaseText | Controlled by channel or workflow input | +| Draft | $draftText | Controlled by workflow input | + +## Assets + +* Installer: `dt_setup.exe` +* Portable package: `DISMTools.zip` + +## What's changed + +$changes +"@ + + return $notes.Trim() +} +if ([string]::IsNullOrWhiteSpace($env:GH_TOKEN) -and -not [string]::IsNullOrWhiteSpace($env:GITHUB_TOKEN)) { + $env:GH_TOKEN = $env:GITHUB_TOKEN +} + +if ([string]::IsNullOrWhiteSpace($env:GH_TOKEN)) { + Fail "GH_TOKEN is empty. The workflow must pass github.token to this script." +} + +if ([string]::IsNullOrWhiteSpace($env:GITHUB_REPOSITORY)) { + Fail "GITHUB_REPOSITORY is empty. This script must run inside GitHub Actions." +} + +if (-not (Get-Command gh -ErrorAction SilentlyContinue)) { + Fail "GitHub CLI was not found on PATH." +} + +if (-not (Get-Command git -ErrorAction SilentlyContinue)) { + Fail "Git was not found on PATH." +} + +if (-not (Test-Path -LiteralPath $InstallerPath)) { + Fail "Installer file was not found: $InstallerPath" +} + +if (-not (Test-Path -LiteralPath $PortableSourcePath)) { + Fail "Portable source directory was not found: $PortableSourcePath" +} + +$repositoryRoot = Get-RepositoryRoot +$versionInfo = Get-AssemblyVersionInfo $repositoryRoot +$releaseDateInfo = Get-ReleaseDateStamp +$cleanRunNumber = New-CleanName $RunNumber +$cleanRunAttempt = New-CleanName $RunAttempt +$attemptSuffix = "" +if ($cleanRunAttempt -ne "1") { + $attemptSuffix = ".$cleanRunAttempt" +} + +$channelSuffix = "" +if ($ReleaseChannel -eq "preview") { + $channelSuffix = "_preview" +} + +$tagName = "v$($versionInfo.PublicVersion)$($channelSuffix)_$($releaseDateInfo.DateStamp).$cleanRunNumber$attemptSuffix" +$releaseTitle = $tagName + +if ([string]::IsNullOrWhiteSpace($AssetOutputDirectory)) { + if (-not [string]::IsNullOrWhiteSpace($env:RUNNER_TEMP)) { + $AssetOutputDirectory = Join-Path $env:RUNNER_TEMP "dismtools-release-assets" + } else { + $AssetOutputDirectory = Join-Path $repositoryRoot "artifacts\release" + } +} + +if (Test-Path -LiteralPath $AssetOutputDirectory) { + Remove-Item -LiteralPath $AssetOutputDirectory -Recurse -Force +} +New-Item -ItemType Directory -Path $AssetOutputDirectory -Force | Out-Null + +$installerAssetPath = Join-Path $AssetOutputDirectory "dt_setup.exe" +$portableAssetPath = Join-Path $AssetOutputDirectory "DISMTools.zip" +$hashFilePath = Join-Path $AssetOutputDirectory "SHA256SUMS.txt" +$notesFilePath = Join-Path $AssetOutputDirectory "RELEASE_NOTES.md" + +Copy-Item -LiteralPath $InstallerPath -Destination $installerAssetPath -Force +New-PortableArchive -SourcePath $PortableSourcePath -DestinationPath $portableAssetPath +Test-PortableArchive -ArchivePath $portableAssetPath + +$assetList = @( + [pscustomobject]@{ Kind = "Installer"; Name = "dt_setup.exe"; Path = $installerAssetPath }, + [pscustomobject]@{ Kind = "Portable"; Name = "DISMTools.zip"; Path = $portableAssetPath } +) + +$hashLines = @() +$assetsWithHashes = @() +foreach ($asset in $assetList) { + $hash = (Get-FileHash -LiteralPath $asset.Path -Algorithm SHA256).Hash.ToUpperInvariant() + $hashLines += "$hash $($asset.Name)" + $assetsWithHashes += [pscustomobject]@{ + Kind = $asset.Kind + Name = $asset.Name + Path = $asset.Path + Hash = $hash + } +} +$hashLines | Out-File -LiteralPath $hashFilePath -Encoding utf8 + +$releaseContext = [pscustomobject]@{ + PublicVersion = $versionInfo.PublicVersion + FullVersion = $versionInfo.FullVersion + ReleaseChannel = $ReleaseChannel + TagName = $tagName + BranchName = $BranchName + RunNumber = $RunNumber + RunAttempt = $RunAttempt + CommitSha = $Sha + ReleaseDate = "$($releaseDateInfo.LongDate) $($releaseDateInfo.ZoneLabel)" + IsPrerelease = [bool]$Prerelease + IsDraft = [bool]$Draft + Assets = $assetsWithHashes +} + +New-ReleaseNotes $releaseContext | Out-File -LiteralPath $notesFilePath -Encoding utf8 + +Write-Host "Preparing a new GitHub Release" +Write-Host "Repository: $env:GITHUB_REPOSITORY" +Write-Host "Release tag: $tagName" +Write-Host "Release title: $releaseTitle" +Write-Host "Asset directory: $AssetOutputDirectory" + +& git config user.name "github-actions[bot]" +& git config user.email "41898282+github-actions[bot]@users.noreply.github.com" +& git fetch --tags origin + +$existingTag = (& git tag -l $tagName) +if (-not [string]::IsNullOrWhiteSpace($existingTag)) { + Fail "Tag $tagName already exists. Refusing to overwrite an existing release tag." +} + +& gh release view $tagName --repo $env:GITHUB_REPOSITORY *> $null +if ($LASTEXITCODE -eq 0) { + Fail "Release $tagName already exists. Refusing to overwrite an existing GitHub Release." +} + +$releaseArguments = @( + "release", + "create", + $tagName, + $installerAssetPath, + $portableAssetPath, + "--repo", + $env:GITHUB_REPOSITORY, + "--target", + $Sha, + "--title", + $releaseTitle, + "--notes-file", + $notesFilePath +) + +if ($Prerelease) { + $releaseArguments += "--prerelease" +} + +if ($Draft) { + $releaseArguments += "--draft" +} + +& gh @releaseArguments +if ($LASTEXITCODE -ne 0) { + Fail "Failed to create GitHub Release $tagName" +} + +Write-Host "GitHub Release has been created: $tagName" +Write-Host "Release assets:" +foreach ($asset in $assetsWithHashes) { + Write-Host " $($asset.Name) $($asset.Hash)" +} +Write-Host " SHA256SUMS.txt saved to workflow artifact only" diff --git a/Tools/build/VerifyInstallerLocalization.ps1 b/Tools/build/VerifyInstallerLocalization.ps1 new file mode 100644 index 000000000..5745ea3d3 --- /dev/null +++ b/Tools/build/VerifyInstallerLocalization.ps1 @@ -0,0 +1,280 @@ +$ErrorActionPreference = "Stop" + +function Fail([string]$Message) { + throw $Message +} + +$root = Resolve-Path (Join-Path $PSScriptRoot "..\..") +$sourceLanguageDir = Join-Path $root "language" +$buildLanguageDir = Join-Path $root "bin\Debug\language" +$installerPayloadLanguageDir = Join-Path $root "Installer\files\language" +$installerLanguageDir = Join-Path $root "Installer\Languages" +$installerScriptPath = Join-Path $root "Installer\dt.iss" +$installerRootDefaultMessagesPath = Join-Path $root "Installer\Default.isl" +$compilerDefaultMessagesPath = Join-Path $root "Installer\Compiler\Default.isl" +$installerOutputPath = Join-Path $root "Installer\Output\dt_setup.exe" + +$requiredMainFiles = @("en-US.ini", "de-DE.ini", "es-ES.ini", "fr-FR.ini", "pt-PT.ini", "it-IT.ini") +$requiredMainMarkers = @( + "[Designer.Main]", + "[Designer.ExceptionForm]", + "[Main.News]", + "[Main.News.Load]", + "[Main.News.Error]", + "[Main.ExternalTools]", + "[Main.ReportManager]", + "[Main.SaveProjectAs]", + "[MountedImgMgr]", + "NewProject.Button=", + "Retry.Button=", + "NoDetails.Message=" +) + +foreach ($dir in @($buildLanguageDir, $installerPayloadLanguageDir)) { + if (-not (Test-Path -LiteralPath $dir)) { + Fail "Localization directory is missing: $dir" + } + + foreach ($fileName in $requiredMainFiles) { + $filePath = Join-Path $dir $fileName + if (-not (Test-Path -LiteralPath $filePath)) { + Fail "Localization file is missing: $filePath" + } + } + + $englishFile = Join-Path $dir "en-US.ini" + $englishText = Get-Content -LiteralPath $englishFile -Raw -Encoding UTF8 + foreach ($marker in $requiredMainMarkers) { + if (-not $englishText.Contains($marker)) { + Fail "Required localization marker '$marker' was not found in $englishFile" + } + } + + Write-Host "Main localization payload verified: $dir" +} + +foreach ($fileName in $requiredMainFiles) { + $sourcePath = Join-Path $sourceLanguageDir $fileName + $buildPath = Join-Path $buildLanguageDir $fileName + $payloadPath = Join-Path $installerPayloadLanguageDir $fileName + + foreach ($path in @($sourcePath, $buildPath, $payloadPath)) { + if (-not (Test-Path -LiteralPath $path)) { + Fail "Localization file is missing: $path" + } + } + + $sourceHash = (Get-FileHash -LiteralPath $sourcePath -Algorithm SHA256).Hash + $buildHash = (Get-FileHash -LiteralPath $buildPath -Algorithm SHA256).Hash + $payloadHash = (Get-FileHash -LiteralPath $payloadPath -Algorithm SHA256).Hash + if ($sourceHash -ne $buildHash -or $sourceHash -ne $payloadHash) { + Fail "Localization file '$fileName' differs between source, build output, and installer payload." + } +} + +$mainExecutableName = "DISMTools.exe" +$buildExecutablePath = Join-Path (Split-Path $buildLanguageDir -Parent) $mainExecutableName +$payloadExecutablePath = Join-Path (Split-Path $installerPayloadLanguageDir -Parent) $mainExecutableName +foreach ($path in @($buildExecutablePath, $payloadExecutablePath)) { + if (-not (Test-Path -LiteralPath $path)) { + Fail "Main executable is missing: $path" + } +} + +$buildExecutableHash = (Get-FileHash -LiteralPath $buildExecutablePath -Algorithm SHA256).Hash +$payloadExecutableHash = (Get-FileHash -LiteralPath $payloadExecutablePath -Algorithm SHA256).Hash +if ($buildExecutableHash -ne $payloadExecutableHash) { + Fail "DISMTools.exe differs between build output and installer payload." +} + +$mountedManagerSourcePath = Join-Path $root "Panels\Img_Ops\MountedImgMgr.vb" +$mainFormSourcePath = Join-Path $root "MainForm.vb" +$windowHelperSourcePath = Join-Path $root "Utilities\WindowHelper.vb" +$fileAssociationHelperSourcePath = Join-Path $root "Utilities\FileAssociations\FileAssociationHelper.vb" +$newProjectSourcePath = Join-Path $root "Panels\Prj_Ops\NewProj.vb" +$optionsSourcePath = Join-Path $root "Panels\Exe_Ops\Options.vb" +$mountedManagerSource = Get-Content -LiteralPath $mountedManagerSourcePath -Raw -Encoding UTF8 +$mainFormSource = Get-Content -LiteralPath $mainFormSourcePath -Raw -Encoding UTF8 +$windowHelperSource = Get-Content -LiteralPath $windowHelperSourcePath -Raw -Encoding UTF8 +$fileAssociationHelperSource = Get-Content -LiteralPath $fileAssociationHelperSourcePath -Raw -Encoding UTF8 +$newProjectSource = Get-Content -LiteralPath $newProjectSourcePath -Raw -Encoding UTF8 +$optionsSource = Get-Content -LiteralPath $optionsSourcePath -Raw -Encoding UTF8 + +if ($mountedManagerSource.Contains("ListView1.Columns(5).Text")) { + Fail "Mounted Image Manager still accesses the non-existent column at index 5." +} +if (-not $mainFormSource.Contains("Handles ReportManagerToolStripMenuItem.Click, ManageReportsToolStripMenuItem.Click")) { + Fail "Report Manager click handlers are missing." +} +if (-not $mainFormSource.Contains("Handles LinkLabel14.LinkClicked")) { + Fail "The project-side image mount link click handler is missing." +} +if (-not $mainFormSource.Contains("Handles SaveProjectasToolStripMenuItem.Click")) { + Fail "The Save Project As click handler is missing." +} +if (-not $mainFormSource.Contains("Save Project As menu command received.")) { + Fail "The Save Project As click handler is not logged." +} +if (-not $mainFormSource.Contains("Handles MyBase.Shown")) { + Fail "The main window does not request foreground activation from its Shown event." +} +if (-not $mainFormSource.Contains("WindowHelper.RequestForegroundWindow(Handle)")) { + Fail "The main window does not request Win32 foreground activation after it is shown." +} +if (-not $mainFormSource.Contains("WindowHelper.RaiseWindowAndRestoreNormalZOrder(Handle, normalZOrderRestored)")) { + Fail "The main window does not include a one-time foreground fallback." +} +if (-not $mainFormSource.Contains("main window is foreground:") -or + -not $mainFormSource.Contains("main window remains topmost:")) { + Fail "The foreground activation result is not fully logged." +} +if (-not $windowHelperSource.Contains("SetForegroundWindow") -or + -not $windowHelperSource.Contains("GetForegroundWindow") -or + -not $windowHelperSource.Contains("SetWindowPos") -or + -not $windowHelperSource.Contains("HWND_NOTOPMOST")) { + Fail "The foreground-window Win32 helper is missing." +} +if ($mainFormSource -match 'TopMost\s*=\s*True') { + Fail "The main window must not be made permanently topmost." +} +if (-not $newProjectSource.Contains('LocalizationService.ForSection("Main.SaveProjectAs")("Save.Button")')) { + Fail "The Save Project As dialog does not use its dedicated localized Save button text." +} +if (-not $mainFormSource.Contains("Handles RefreshViewTSB.Click")) { + Fail "The project tree refresh button click handler is missing." +} +if (-not $mainFormSource.Contains("SwitchImageIndexesToolStripMenuItem1.Click, SwitchImageIndexesToolStripMenuItem.Click")) { + Fail "One or more Switch Image Indexes menu items are not connected." +} +if ($optionsSource.Contains('{0}{1}{0} {0}/load={0}%1{0}{0}')) { + Fail "Options still registers a malformed .dtproj open command." +} +if (-not $optionsSource.Contains('{0}{1}{0} /load={0}%1{0}')) { + Fail "Options does not register the expected .dtproj open command." +} +if ($optionsSource.Contains('"StarterScript.exe"')) { + Fail "Options still registers the obsolete StarterScript.exe path." +} +if (-not $optionsSource.Contains("LoadFileAssociationState()")) { + Fail "Options does not restore the current file association and icon state." +} +if (-not $optionsSource.Contains("CheckBox11.Checked = DTProjAssocCB.Checked")) { + Fail "Enabling the project association does not enable its icon by default." +} +if (-not $optionsSource.Contains("Executable path registered for association:")) { + Fail "Options does not validate the executable path parsed from an association command." +} +if (-not $fileAssociationHelperSource.Contains("Registry.CurrentUser.CreateSubKey(UserClassesRegistryPath)")) { + Fail "Portable file associations are not registered per user." +} +if (-not $fileAssociationHelperSource.Contains('CreateSubKey("DefaultIcon")')) { + Fail "The project icon registry key is not created when required." +} +if ($fileAssociationHelperSource.Contains('OpenSubKey("DefaultIcon", True)')) { + Fail "The file association helper still assumes that the icon registry key already exists." +} + +if (-not (Test-Path -LiteralPath $installerScriptPath)) { + Fail "Installer script was not found: $installerScriptPath" +} + +$installerScriptText = Get-Content -LiteralPath $installerScriptPath -Raw -Encoding UTF8 +if ($installerScriptText -match '#define\s+pfDir\s+"\{commonpf\}\\DISMTools\\Stable"') { + Fail "Stable installer must install to C:\Program Files\DISMTools, not C:\Program Files\DISMTools\Stable." +} + +$installerUsesPreviewName = $installerScriptText -match '#define\s+scName\s+"DISMTools Preview"' +if ($installerUsesPreviewName) { + if ($installerScriptText -notmatch '#define\s+pfDir\s+"\{commonpf\}\\DISMTools\\Preview"') { + Fail "Preview installer must install to C:\Program Files\DISMTools\Preview." + } +} else { + if ($installerScriptText -notmatch '#define\s+pfDir\s+"\{commonpf\}\\DISMTools"') { + Fail "Stable installer must install to C:\Program Files\DISMTools." + } +} + +if ($installerScriptText -match "compiler:Default\.isl") { + Fail "Installer script must not use compiler:Default.isl. English must be loaded from Installer\Languages\English.isl." +} + +if ($installerScriptText -match "(?m)^\[Messages\]\s*$") { + Fail "Installer\dt.iss must not contain a [Messages] section. Installer messages must come from the selected .isl file." +} + +if (Test-Path -LiteralPath $installerRootDefaultMessagesPath) { + Fail "Installer\Default.isl must not exist in the installer root. The compiler runtime Default.isl belongs in Installer\Compiler." +} + +if (-not (Test-Path -LiteralPath $compilerDefaultMessagesPath)) { + Fail "Inno Setup compiler runtime Default.isl is missing: $compilerDefaultMessagesPath" +} + +$compilerDefaultText = Get-Content -LiteralPath $compilerDefaultMessagesPath -Raw -Encoding UTF8 +if (-not $compilerDefaultText.Contains("[Messages]")) { + Fail "Compiler runtime Default.isl does not contain [Messages]: $compilerDefaultMessagesPath" +} + +if ($compilerDefaultText.Contains("[CustomMessages]")) { + Fail "Compiler runtime Default.isl must not contain project CustomMessages. Edit project translations in Installer\Languages instead." +} + +$requiredInstallerFiles = @( + "English.isl", + "Spanish.isl", + "French.isl", + "German.isl", + "Italian.isl", + "Portuguese.isl" +) + +$requiredInstallerSections = @("[LangOptions]", "[Messages]", "[CustomMessages]") +$requiredInstallerMessageKeys = @( + "ButtonNext=", + "ButtonBack=", + "ButtonCancel=", + "ButtonInstall=", + "ButtonBrowse=", + "WelcomeLabel1=", + "SelectDirDesc=", + "ReadyLabel1=", + "FinishedHeadingLabel=" +) + +$customMessageKeys = [regex]::Matches($installerScriptText, "\{cm:([^},]+)") | ForEach-Object { $_.Groups[1].Value } | Sort-Object -Unique + +foreach ($fileName in $requiredInstallerFiles) { + $filePath = Join-Path $installerLanguageDir $fileName + if (-not (Test-Path -LiteralPath $filePath)) { + Fail "Installer language file is missing: $filePath" + } + + $text = Get-Content -LiteralPath $filePath -Raw -Encoding UTF8 + + foreach ($section in $requiredInstallerSections) { + if (-not $text.Contains($section)) { + Fail "Installer language file '$filePath' does not contain required section $section" + } + } + + foreach ($key in $requiredInstallerMessageKeys) { + if (-not $text.Contains($key)) { + Fail "Installer language file '$filePath' does not contain required Inno Setup message key $key" + } + } + + foreach ($key in $customMessageKeys) { + if (-not $text.Contains("$key=")) { + Fail "Installer language file '$filePath' does not contain required CustomMessages key $key" + } + } + + Write-Host "Installer language file verified: $filePath" +} + +if (-not (Test-Path -LiteralPath $installerOutputPath)) { + Fail "Installer output file was not found after build: $installerOutputPath" +} + +Get-Item -LiteralPath $installerOutputPath | Select-Object FullName, Length, LastWriteTime | Format-List | Out-String | Write-Host +Write-Host "Installer localization and output verified successfully." diff --git a/Tools/build/pkgsrc.bundle b/Tools/build/pkgsrc.bundle new file mode 100644 index 000000000..cb500b127 Binary files /dev/null and b/Tools/build/pkgsrc.bundle differ diff --git a/Tools/localization/audit_key_reuse.py b/Tools/localization/audit_key_reuse.py new file mode 100644 index 000000000..9bb421219 --- /dev/null +++ b/Tools/localization/audit_key_reuse.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +import csv +from collections import defaultdict +from pathlib import Path + +import validate_localization + +ROOT = Path(__file__).resolve().parents[2] +OUTPUT = ROOT / 'docs' / 'localization' / 'localization_key_reuse_audit.csv' + + +def logical_owner(source_file: str) -> str: + if source_file.endswith('.Designer.vb'): + return source_file[:-len('.Designer.vb')] + '.vb' + return source_file + + +def main(): + uses = defaultdict(list) + for call in validate_localization.collect_source_calls(): + uses[call['key']].append({ + 'owner': logical_owner(call['source_file']), + 'source_file': call['source_file'], + 'source_line': call['source_line'], + 'call_name': call['call_name'], + }) + + cross_owner = { + key: entries + for key, entries in uses.items() + if len({entry['owner'] for entry in entries}) > 1 + } + + OUTPUT.parent.mkdir(parents=True, exist_ok=True) + with OUTPUT.open('w', newline='', encoding='utf-8-sig') as handle: + writer = csv.writer(handle) + writer.writerow(['key', 'owner_count', 'usage_count', 'logical_owner', 'source_file', 'source_line', 'call_name']) + for key in sorted(cross_owner): + entries = cross_owner[key] + owner_count = len({entry['owner'] for entry in entries}) + for entry in entries: + writer.writerow([ + key, + owner_count, + len(entries), + entry['owner'], + entry['source_file'], + entry['source_line'], + entry['call_name'], + ]) + + print(f'Localization keys used by more than one logical window or component: {len(cross_owner)}') + print(f'Report: {OUTPUT}') + + +if __name__ == '__main__': + main() diff --git a/Tools/localization/deep_localization_audit.py b/Tools/localization/deep_localization_audit.py new file mode 100644 index 000000000..58c4aa214 --- /dev/null +++ b/Tools/localization/deep_localization_audit.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python3 +import csv +import re +import xml.etree.ElementTree as ET +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] +OUT_DIR = ROOT / 'docs' / 'localization' +OUT_DIR.mkdir(parents=True, exist_ok=True) +STRING_PATTERN = re.compile(r'"(?:""|[^"])*"') +DIRECT_UI_ASSIGNMENT = re.compile(r'\.(Text|Filter|Title|Description|ToolTipText|BalloonTipText|BalloonTipTitle)\s*=\s*"') +UI_CALLS = ('MsgBox', 'MessageBox.Show', 'WindowHelper.DisplayToolTip', '.SetToolTip', 'GetHeader', 'GetParagraph', 'GetListItems', 'GetTableHeader') +DIRECT_RESOURCE_USAGE = re.compile(r'My\.Resources\.([A-Za-z0-9_]+)') +LOCALIZED_PREFIXES = ('LocalizationService.T(', 'LocalizationService.ForSection(', 'LocalizationService.TUpper(') +LOCALIZED_CALL_PATTERN = re.compile(r'LocalizationService\.(?:T|TUpper|ForSection)\("(?:""|[^"])*"\)(?:\.(?:Format)\("(?:""|[^"])*"\)|\("(?:""|[^"])*"\))?') + +TECHNICAL_PATTERNS = [ + re.compile(r'\\'), + re.compile(r'^\s*[/-]'), + re.compile(r'^HKLM|^HKEY_|^LDAP://|^\(objectCategory='), + re.compile(r'^%[A-Z0-9_]+%$'), + re.compile(r'^<[^>]+>$'), + re.compile(r'^\*\.'), + re.compile(r'^SELECT .* FROM ', re.I), + re.compile(r'^[A-Z0-9_]+$'), + re.compile(r'^(x86|amd64|arm64|WIM|ESD|FFU|ISO|XML|PowerShell|Batch|VBScript|JScript|WindowsPE|neutral|Ireland|United States|English|English \(United States\))$', re.I), + re.compile(r'^(MenuStrip1|ToolStrip1|ToolStrip2|StatusStrip1|DarkToolStrip1|DISMTools|Consolas)$'), + re.compile(r'^[A-Za-z0-9_]+(\.[A-Za-z0-9_]+)+$'), + re.compile(r'^(Windows 10|Windows 11|Admin|Users|Administrators)$'), + re.compile(r'^yyMMdd-HHmm$'), + re.compile(r'^INI File Parser:'), + re.compile(r'^(InstRoot|WinPECacheThreshold)$'), + re.compile(r'^return \'DESKTOP-'), + re.compile(r'^ str: + return token[1:-1].replace('""', '"') + +def looks_technical(value: str) -> bool: + if not value or value.isspace(): + return True + if not re.search(r'[A-Za-zА-Яа-я]{2,}', value): + return True + return any(p.search(value.strip()) for p in TECHNICAL_PATTERNS) + +def write_csv(filename, rows, fields): + path = OUT_DIR / filename + with path.open('w', encoding='utf-8-sig', newline='') as f: + writer = csv.DictWriter(f, fieldnames=fields) + writer.writeheader() + writer.writerows(rows) + return path + +candidates = [] +ignored = [] + +for path in sorted(ROOT.rglob('*.vb')): + if any(part in {'.git', 'bin', 'obj'} for part in path.parts): + continue + rel = path.relative_to(ROOT).as_posix() + text = path.read_text(encoding='utf-8-sig', errors='ignore') + for lineno, line in enumerate(text.splitlines(), 1): + stripped = line.strip() + if not stripped or stripped.startswith("'"): + continue + scan_line = LOCALIZED_CALL_PATTERN.sub('LocalizationService.LocalizedValue', line) + is_ui_context = bool(DIRECT_UI_ASSIGNMENT.search(scan_line)) or any(call in scan_line for call in UI_CALLS) + for match in STRING_PATTERN.finditer(scan_line): + value = decode_vb_string(match.group(0)) + if looks_technical(value): + ignored.append({'type':'technical_literal', 'file':rel, 'line':lineno, 'details':value}) + continue + if is_ui_context: + candidates.append({'type':'direct_ui_literal', 'file':rel, 'line':lineno, 'details':value}) + else: + ignored.append({'type':'data_or_internal_literal', 'file':rel, 'line':lineno, 'details':value}) + for res_match in DIRECT_RESOURCE_USAGE.finditer(line): + name = res_match.group(1) + if name in RESOURCE_UI_NAMES: + candidates.append({'type':'ui_resource_usage', 'file':rel, 'line':lineno, 'details':name}) + elif name in RESOURCE_TECHNICAL_NAMES: + ignored.append({'type':'technical_resource_usage', 'file':rel, 'line':lineno, 'details':name}) + +# Check resx text resources that are still referenced directly by source. +referenced_resources = set() +for path in ROOT.rglob('*.vb'): + if any(part in {'.git', 'bin', 'obj'} for part in path.parts): + continue + for m in DIRECT_RESOURCE_USAGE.finditer(path.read_text(encoding='utf-8-sig', errors='ignore')): + referenced_resources.add(m.group(1)) +for path in sorted(ROOT.rglob('*.resx')): + if any(part in {'.git', 'bin', 'obj'} for part in path.parts): + continue + rel = path.relative_to(ROOT).as_posix() + try: + tree = ET.parse(path) + except Exception: + continue + for data in tree.findall('data'): + name = data.attrib.get('name', '') + value_node = data.find('value') + value = value_node.text if value_node is not None and value_node.text is not None else '' + if name in referenced_resources and name in RESOURCE_UI_NAMES: + candidates.append({'type':'referenced_ui_resx_text', 'file':rel, 'line':'', 'details':name}) + elif name in referenced_resources: + ignored.append({'type':'referenced_non_ui_resx', 'file':rel, 'line':'', 'details':name}) + +remaining_path = write_csv('localization_deep_audit_remaining.csv', candidates, ['type','file','line','details']) +ignored_path = write_csv('localization_deep_audit_ignored.csv', ignored, ['type','file','line','details']) +summary_rows = [ + {'metric':'direct_ui_candidates', 'value':len(candidates)}, + {'metric':'classified_non_ui_literals', 'value':len(ignored)}, +] +summary_path = write_csv('localization_deep_audit_summary.csv', summary_rows, ['metric','value']) +print(f'Deep UI localization candidates: {len(candidates)}') +print(f'Classified non UI literals: {len(ignored)}') +print(f'Remaining: {remaining_path}') +print(f'Ignored: {ignored_path}') +print(f'Summary: {summary_path}') +raise SystemExit(1 if candidates else 0) diff --git a/Tools/localization/generate_key_index.py b/Tools/localization/generate_key_index.py new file mode 100644 index 000000000..002e2a8cc --- /dev/null +++ b/Tools/localization/generate_key_index.py @@ -0,0 +1,77 @@ +from pathlib import Path +import csv +import hashlib +import re +import validate_localization + +ROOT = Path(__file__).resolve().parents[2] +LANGUAGE_DIR = ROOT / "language" +OUTPUT = ROOT / "docs" / "localization" / "localization_key_index.csv" + + +def parse_ini(path: Path): + values = {} + line_map = {} + section_map = {} + item_map = {} + section = None + for line_number, raw in enumerate(path.read_text(encoding="utf-8-sig").splitlines(), start=1): + line = raw.strip() + section_match = re.match(r"^\[([^\]]+)\]$", line) + if section_match: + section = section_match.group(1).strip() + continue + if section and section != "LanguageFileInformation" and "=" in raw and not line.startswith(";"): + key, value = raw.split("=", 1) + item = key.strip() + full_key = f"{section}.{item}" + cleaned_value = value.strip() + if len(cleaned_value) >= 2 and cleaned_value[0] == '"' and cleaned_value[-1] == '"': + cleaned_value = cleaned_value[1:-1] + values[full_key] = cleaned_value.replace("{quot;}", '"').replace("{crlf;}", "\n") + line_map[full_key] = line_number + section_map[full_key] = section + item_map[full_key] = item + return values, line_map, section_map, item_map + + +languages = {} +language_lines = {} +sections = {} +items = {} +for language_file in sorted(LANGUAGE_DIR.glob("*.ini")): + values, line_map, section_map, item_map = parse_ini(language_file) + languages[language_file.stem] = values + language_lines[language_file.stem] = line_map + sections.update(section_map) + items.update(item_map) + +usage = {} +source_calls = validate_localization.collect_source_calls() +for call in source_calls: + usage.setdefault(call["key"], []).append(f"{call['source_file']}:{call['source_line']}") + +all_keys = sorted(set().union(*(set(values.keys()) for values in languages.values()))) +fields = ["key", "section", "item", "used", "usage", "stable_id"] +fields.extend(f"text_{culture}" for culture in sorted(languages)) +fields.extend(f"line_{culture}" for culture in sorted(languages)) + +OUTPUT.parent.mkdir(parents=True, exist_ok=True) +with OUTPUT.open("w", encoding="utf-8-sig", newline="") as output: + writer = csv.DictWriter(output, fieldnames=fields) + writer.writeheader() + for key in all_keys: + row = { + "key": key, + "section": sections.get(key, ""), + "item": items.get(key, ""), + "used": "yes" if key in usage else "no", + "usage": " | ".join(usage.get(key, [])), + "stable_id": hashlib.sha1(key.encode("utf-8")).hexdigest()[:12], + } + for culture in sorted(languages): + row[f"text_{culture}"] = languages[culture].get(key, "") + row[f"line_{culture}"] = language_lines[culture].get(key, "") + writer.writerow(row) + +print(f"Wrote {OUTPUT.relative_to(ROOT).as_posix()} with {len(all_keys)} keys") diff --git a/Tools/localization/prune_unused_localization_keys.py b/Tools/localization/prune_unused_localization_keys.py new file mode 100644 index 000000000..172d4c34e --- /dev/null +++ b/Tools/localization/prune_unused_localization_keys.py @@ -0,0 +1,35 @@ +from pathlib import Path +import re, csv +ROOT=Path(__file__).resolve().parents[2] +LANG_DIR=ROOT/'language' +CALL_RE=re.compile(r'LocalizationService\.(?:T|TUpper)\((?:[^"\r\n]*,\s*)?"([^"]+)"') +EXCLUDED={'.git','bin','obj'} +used=set() +for p in ROOT.rglob('*.vb'): + if any(part in EXCLUDED for part in p.parts): continue + used.update(CALL_RE.findall(p.read_text(encoding='utf-8-sig',errors='ignore'))) +removed=[] +for path in sorted(LANG_DIR.glob('*.ini')): + lines=path.read_text(encoding='utf-8-sig').splitlines() + out=[]; section=None + for raw in lines: + m=re.match(r'^\[([^\]]+)\]$',raw.strip()) + if m: + section=m.group(1); out.append(raw); continue + if section and section!='LanguageFileInformation' and '=' in raw and not raw.strip().startswith(';'): + k=raw.split('=',1)[0].strip(); full=f'{section}.{k}' + if full not in used: + removed.append({'culture':path.stem,'key':full}) + continue + out.append(raw) + # Remove repeated blank lines caused by pruning. + compact=[]; prev_blank=False + for line in out: + blank=(line.strip()=='') + if blank and prev_blank: continue + compact.append(line); prev_blank=blank + path.write_text('\n'.join(compact).rstrip()+'\n',encoding='utf-8-sig') +with (ROOT/'docs/localization/stage5_pruned_unused_keys.csv').open('w',encoding='utf-8-sig',newline='') as f: + w=csv.DictWriter(f,fieldnames=['culture','key']); w.writeheader(); w.writerows(removed) +print('Pruned unused key rows:',len(removed)) +print('Unique keys pruned:',len({r['key'] for r in removed})) diff --git a/Tools/localization/scan_localization_candidates.py b/Tools/localization/scan_localization_candidates.py new file mode 100644 index 000000000..90b926ec0 --- /dev/null +++ b/Tools/localization/scan_localization_candidates.py @@ -0,0 +1,287 @@ +from pathlib import Path +import csv +import re + +ROOT = Path(__file__).resolve().parents[2] +OUTPUT_DIR = ROOT / "docs" / "localization" +EXCLUDED_PARTS = {".git", "bin", "obj"} + +TEXT_ASSIGNMENT_PATTERN = re.compile(r'^\s*(?P(?:Me\.)?[A-Za-z_][\w]*(?:\.[A-Za-z_][\w]*)*\.Text)\s*=\s*"(?P(?:""|[^"])*)"', re.MULTILINE) +MESSAGE_PATTERN = re.compile(r'(?PMsgBox|MessageBox\.Show)\s*\(\s*"(?P(?:""|[^"])*)"') +LOCALIZATION_CALL_PATTERN = re.compile(r'LocalizationService\.(?:ForSection|T|TUpper)\(') +SELECT_LANGUAGE_PATTERN = re.compile(r"Select Case (?:Language|LangCode|MainForm\.Language)") +INSTALLED_UI_CULTURE_PATTERN = re.compile(r"InstalledUICulture") +ADDRANGE_START_PATTERN = re.compile(r'Me\.(?P[A-Za-z_]\w*)\.Items\.AddRange\(New Object\(\) \{') +STRING_RE = re.compile(r'"(?P(?:""|[^"])*)"') + +COMPONENT_NAME_RE = re.compile(r'^(?:MenuStrip|ToolStrip|StatusStrip|DarkToolStrip)\d*$') +NUMBER_RE = re.compile(r'^\d+$') + + +def is_source_file(path: Path) -> bool: + if path.suffix.lower() != ".vb": + return False + return not any(part in EXCLUDED_PARTS for part in path.parts) + + +def decode_vb_string(value: str) -> str: + return value.replace('""', '"') + + +def split_top_level_items(body: str): + items = [] + current = [] + in_string = False + index = 0 + while index < len(body): + char = body[index] + if char == '"': + current.append(char) + if in_string and index + 1 < len(body) and body[index + 1] == '"': + current.append('"') + index += 2 + continue + in_string = not in_string + index += 1 + continue + if not in_string and char == ',': + items.append(''.join(current).strip()) + current = [] + index += 1 + continue + current.append(char) + index += 1 + if ''.join(current).strip(): + items.append(''.join(current).strip()) + return items + + +def parse_vb_string_expr(expr: str) -> str: + return ''.join(decode_vb_string(match.group('value')) for match in STRING_RE.finditer(expr)) + + +def find_item_add_ranges(text: str): + start = 0 + while True: + match = ADDRANGE_START_PATTERN.search(text, start) + if not match: + break + body_start = match.end() + index = body_start + in_string = False + while index < len(text) - 1: + char = text[index] + if char == '"': + if in_string and index + 1 < len(text) and text[index + 1] == '"': + index += 2 + continue + in_string = not in_string + elif not in_string and text[index:index + 2] == '})': + body = text[body_start:index] + yield match.group('target'), match.start(), body + index += 2 + break + index += 1 + start = index + + +def classify_text_assignment(relative_path: str, target: str, value: str): + if not value.strip(): + return "empty_runtime_value" + if COMPONENT_NAME_RE.match(value) or value in {"Status"}: + return "component_identifier" + if NUMBER_RE.match(value): + return "numeric_default" + if value in {"Consolas"}: + return "font_name" + if value in {"amd64", "x86", "arm64", "WIM", "ESD"}: + return "technical_token" + if value in {"Machine", "User"} and "EnvironmentVariables" in relative_path: + return "internal_scope_token" + if value in {"Windows 10", "Windows 11"} and relative_path.endswith("ProjProperties.vb"): + return "windows_product_name" + if value == "N/A" and relative_path == "MainForm.vb": + return "project_file_placeholder" + if value.startswith("C:\\Windows\\Logs\\DISM"): + return "default_log_path" + if value.startswith("\\\\.\\"): + return "device_path_prefix" + if value.startswith("HKEY_LOCAL_MACHINE"): + return "registry_path" + if value.startswith("return 'DESKTOP-"): + return "powershell_template" + if value.startswith("= 2 and cleaned_value[0] == '"' and cleaned_value[-1] == '"': + cleaned_value = cleaned_value[1:-1] + + full_key = f"{current_section}.{key}" + if current_section != "LanguageFileInformation": + if BAD_SECTION_PATTERN.search(current_section): + style_findings.append(("localization_section_style", full_key, line_number, "Section contains a control name, event name, generated line marker, glued legacy path, or another old technical path.")) + if BAD_KEY_PATTERN.search(key): + style_findings.append(("localization_item_style", full_key, line_number, "Item key contains an old control name, generated number, Placeholder, Line marker, Text/msg/String alias, numbered message alias, or message box path.")) + if len(current_section) > MAX_LOCALIZATION_SECTION_LENGTH: + style_findings.append(("localization_section_style", full_key, line_number, "Section is too long. Split it into a shorter semantic section.")) + if len(key) > MAX_LOCALIZATION_ITEM_LENGTH: + style_findings.append(("localization_item_style", full_key, line_number, "Item key is too long. Keep the key short inside its section.")) + if len(full_key) > MAX_LOCALIZATION_FULL_KEY_LENGTH: + style_findings.append(("localization_full_key_style", full_key, line_number, "Full localization path is too long.")) + for component in current_section.split('.') + key.split('.'): + if len(component) > MAX_LOCALIZATION_COMPONENT_LENGTH: + style_findings.append(("localization_component_style", full_key, line_number, "A section or key component is too long.")) + if any(bad_part.lower() in component.lower() for bad_part in BAD_LONG_COMPONENTS): + style_findings.append(("localization_component_style", full_key, line_number, "A component still contains a long legacy code name.")) + if BAD_PHRASE_COMPONENT_PATTERN.search(component): + style_findings.append(("localization_component_style", full_key, line_number, "A component still looks like a sentence copied from old UI text.")) + if key in sections[current_section]: + duplicates.append((full_key, line_number)) + sections[current_section][key] = cleaned_value + values[full_key] = cleaned_value + + keys = set() + for section_name, section_values in sections.items(): + if section_name == "LanguageFileInformation": + continue + for item_name in section_values: + keys.add(f"{section_name}.{item_name}") + + return keys, values, duplicates, style_findings + + +def source_files(): + for path in ROOT.rglob("*.vb"): + if any(part in EXCLUDED_PARTS for part in path.parts): + continue + yield path + + +def split_arguments(argument_text: str): + result = [] + buffer = [] + in_string = False + paren_depth = 0 + index = 0 + + while index < len(argument_text): + char = argument_text[index] + if char == '"': + buffer.append(char) + if in_string and index + 1 < len(argument_text) and argument_text[index + 1] == '"': + buffer.append('"') + index += 2 + continue + in_string = not in_string + index += 1 + continue + + if not in_string: + if char == "(": + paren_depth += 1 + elif char == ")" and paren_depth > 0: + paren_depth -= 1 + elif char == "," and paren_depth == 0: + result.append("".join(buffer).strip()) + buffer = [] + index += 1 + continue + + buffer.append(char) + index += 1 + + if buffer or argument_text.strip(): + result.append("".join(buffer).strip()) + + return result + + +def parse_parenthesized(text: str, open_paren_index: int): + index = open_paren_index + 1 + in_string = False + paren_depth = 1 + + while index < len(text): + char = text[index] + if char == '"': + if in_string and index + 1 < len(text) and text[index + 1] == '"': + index += 2 + continue + in_string = not in_string + elif not in_string: + if char == "(": + paren_depth += 1 + elif char == ")": + paren_depth -= 1 + if paren_depth == 0: + return text[open_paren_index + 1:index], index + 1 + index += 1 + + return None, None + + +def string_literal_value(argument: str): + match = re.match(r'^"([^"]*)"$', argument.strip()) + if not match: + return None + return match.group(1) + + +def collect_forsection_calls(text: str, relative_path: str): + calls = [] + marker = 'LocalizationService.ForSection(' + start = 0 + + while True: + call_start = text.find(marker, start) + if call_start < 0: + break + + section_arguments, after_section = parse_parenthesized(text, call_start + len('LocalizationService.ForSection')) + if section_arguments is None: + start = call_start + len(marker) + continue + + section_args = split_arguments(section_arguments) + section = string_literal_value(section_args[0]) if section_args else None + if not section: + start = after_section + continue + + index = after_section + while index < len(text) and text[index].isspace(): + index += 1 + + call_name = None + argument_text = None + call_end = index + + if index < len(text) and text[index] == '(': + call_name = 'Item' + argument_text, call_end = parse_parenthesized(text, index) + elif text.startswith('.Format(', index): + call_name = 'Format' + argument_text, call_end = parse_parenthesized(text, index + len('.Format')) + elif text.startswith('.Upper(', index): + call_name = 'Upper' + argument_text, call_end = parse_parenthesized(text, index + len('.Upper')) + + if call_name and argument_text is not None: + args = split_arguments(argument_text) + key_index = 0 + first_value_index = {'Item': 1, 'Format': 1, 'Upper': 2}[call_name] + + if len(args) > key_index: + key = string_literal_value(args[key_index]) + if key: + supplied_arguments = max(0, len(args) - first_value_index) + calls.append({ + 'key': f'{section}.{key}', + 'source_file': relative_path, + 'source_line': text.count('\n', 0, call_start) + 1, + 'call_name': call_name, + 'supplied_arguments': supplied_arguments, + }) + start = call_start + len(marker) + + return calls + + +def find_direct_localization_calls(text: str): + call_names = ["TUpper", "T"] + for call_name in call_names: + marker = "LocalizationService." + call_name + "(" + start = 0 + while True: + call_start = text.find(marker, start) + if call_start < 0: + break + + argument_text, call_end = parse_parenthesized(text, call_start + len("LocalizationService." + call_name)) + if argument_text is None: + start = call_start + len(marker) + continue + + yield call_name, call_start, argument_text + start = call_end + + + +def find_forbidden_localization_apis(): + forbidden_markers = [ + "LocalizationService.TryGetText", + ".TryGetText(", + "LocalizationService.ApplyToControl", + "LocalizationService.ApplyToToolStrip", + "Public Function TryGetText", + "Public Sub ApplyToControl", + "Public Sub ApplyToToolStrip", + "LocalizationService.TForLegacyLanguage", + ".ForLegacyLanguage(", + "GetLegacyLanguageSetting", + "ResolveLegacyLanguage", + ] + rows = [] + for path in source_files(): + text = path.read_text(encoding="utf-8-sig", errors="ignore") + relative_path = path.relative_to(ROOT).as_posix() + for line_number, line in enumerate(text.splitlines(), start=1): + if re.search(r"\bMainForm\.Language\b", line): + rows.append({ + "type": "forbidden_localization_api", + "culture": "", + "key": "", + "source_file": relative_path, + "source_line": line_number, + "details": "MainForm.Language", + }) + for marker in forbidden_markers: + if marker in line: + rows.append({ + "type": "forbidden_localization_api", + "culture": "", + "key": "", + "source_file": relative_path, + "source_line": line_number, + "details": marker, + }) + return rows + +def collect_source_calls(): + result = [] + + for path in source_files(): + text = path.read_text(encoding="utf-8-sig", errors="ignore") + relative_path = path.relative_to(ROOT).as_posix() + result.extend(collect_forsection_calls(text, relative_path)) + + for call_name, call_start, argument_text in find_direct_localization_calls(text): + args = split_arguments(argument_text) + key_index = 0 + first_value_index = 1 if call_name == "T" else 2 + + if len(args) <= key_index: + continue + + key = string_literal_value(args[key_index]) + if not key: + continue + + supplied_arguments = max(0, len(args) - first_value_index) + result.append({ + 'key': key, + 'source_file': relative_path, + 'source_line': text.count('\n', 0, call_start) + 1, + 'call_name': call_name, + 'supplied_arguments': supplied_arguments, + }) + + return result + + + +def validate_pe_helper_export_map(source_calls): + script_path = ROOT / "Helpers" / "extps1" / "PE_Helper" / "PE_Helper.ps1" + if not script_path.exists(): + return [{ + "type": "pe_helper_export_script_missing", + "culture": "", + "key": "", + "source_file": script_path.relative_to(ROOT).as_posix(), + "source_line": "", + "details": "", + }] + + script_text = script_path.read_text(encoding="utf-8-sig", errors="ignore") + marker = "$requiredKeys = [ordered]@{" + start = script_text.find(marker) + end_marker = "\n }\n\n $sourceLines" + end = script_text.find(end_marker, start + len(marker)) if start >= 0 else -1 + if start < 0 or end < 0: + return [{ + "type": "pe_helper_export_map_missing", + "culture": "", + "key": "", + "source_file": script_path.relative_to(ROOT).as_posix(), + "source_line": "", + "details": marker, + }] + + export_block = script_text[start:end] + exported_keys = set() + for section, key_list in re.findall(r"(?m)^\s*'([^']+)'\s*=\s*@\(([^\n]*)\)", export_block): + for key in re.findall(r"'([^']+)'", key_list): + exported_keys.add(f"{section}.{key}") + + used_keys = { + call["key"] + for call in source_calls + if call["source_file"].startswith("Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/") + } + + rows = [] + for key in sorted(used_keys - exported_keys): + call = next(call for call in source_calls if call["key"] == key and call["source_file"].startswith("Helpers/extps1/PE_Helper/tools/PEHelperMainMenu/")) + rows.append({ + "type": "pe_helper_key_missing_from_iso_export", + "culture": "", + "key": key, + "source_file": call["source_file"], + "source_line": call["source_line"], + "details": script_path.relative_to(ROOT).as_posix(), + }) + + for key in sorted(exported_keys - used_keys): + rows.append({ + "type": "unused_pe_helper_iso_export_key", + "culture": "", + "key": key, + "source_file": script_path.relative_to(ROOT).as_posix(), + "source_line": "", + "details": "", + }) + + return rows + +def placeholder_signature(value: str): + return tuple(sorted({int(match.group(1)) for match in PLACEHOLDER_PATTERN.finditer(value)})) + + +def decoded_value(value: str): + return (value or "").replace("{quot;}", "\"").replace("{lbrace;}", "{").replace("{rbrace;}", "}").replace("{crlf;}", "\r\n") + + +def is_valid_dialog_filter(value: str): + decoded = decoded_value(value).strip() + if not decoded: + return True + parts = decoded.split("|") + if len(parts) < 2 or len(parts) % 2 != 0: + return False + for index, part in enumerate(parts): + if not part.strip(): + return False + if index % 2 == 1 and not any(char in part for char in ["*", "."]): + return False + return True + + +def main(): + language_files = sorted(LANGUAGE_DIR.glob("*.ini")) + if not language_files: + print("No language files were found.") + return 1 + + language_keys = {} + language_values = {} + duplicate_rows = [] + for language_file in language_files: + culture = language_file.stem + keys, values, duplicates, style_findings = parse_language_file(language_file) + language_keys[culture] = keys + language_values[culture] = values + for key, line_number in duplicates: + duplicate_rows.append((culture, key, line_number)) + if culture == "en-US": + for finding_type, key, line_number, details in style_findings: + duplicate_rows.append(("__STYLE__" + finding_type, key, line_number, details)) + + all_language_keys = set().union(*language_keys.values()) + source_calls = collect_source_calls() + used_keys = {call['key'] for call in source_calls} + source_locations = {} + for call in source_calls: + source_locations.setdefault(call['key'], []).append(call) + + rows = [] + exit_code = 0 + + for culture, keys in sorted(language_keys.items()): + for key in sorted(all_language_keys - keys): + rows.append({"type": "missing_in_language", "culture": culture, "key": key, "source_file": "", "source_line": "", "details": ""}) + exit_code = 1 + + for key in sorted(used_keys): + for culture, keys in sorted(language_keys.items()): + if key not in keys: + for call in source_locations[key]: + rows.append({"type": "used_key_missing_in_language", "culture": culture, "key": key, "source_file": call['source_file'], "source_line": call['source_line'], "details": call['call_name']}) + exit_code = 1 + + for key in sorted(all_language_keys - used_keys): + rows.append({"type": "unused_key", "culture": "", "key": key, "source_file": "", "source_line": "", "details": ""}) + + for key in sorted(all_language_keys): + signatures = {} + for culture, values in sorted(language_values.items()): + if key in values: + signatures[culture] = placeholder_signature(values[key]) + unique_signatures = set(signatures.values()) + if len(unique_signatures) > 1: + detail = "; ".join(f"{culture}:{signature}" for culture, signature in signatures.items()) + rows.append({"type": "placeholder_mismatch", "culture": "", "key": key, "source_file": "", "source_line": "", "details": detail}) + exit_code = 1 + + for duplicate_row in duplicate_rows: + if len(duplicate_row) == 4 and str(duplicate_row[0]).startswith("__STYLE__"): + finding_type, key, line_number, details = duplicate_row + rows.append({"type": finding_type.replace("__STYLE__", ""), "culture": "", "key": key, "source_file": "", "source_line": line_number, "details": details}) + exit_code = 1 + else: + culture, key, line_number = duplicate_row + rows.append({"type": "duplicate_key", "culture": culture, "key": key, "source_file": "", "source_line": line_number, "details": ""}) + exit_code = 1 + + for culture, values in sorted(language_values.items()): + for key, value in sorted(values.items()): + if key.lower().endswith(".filter") and not is_valid_dialog_filter(value): + rows.append({"type": "invalid_dialog_filter", "culture": culture, "key": key, "source_file": "", "source_line": "", "details": decoded_value(value)}) + exit_code = 1 + + english_values = language_values.get("en-US", {}) + for call in source_calls: + value = english_values.get(call['key'], "") + placeholders = sorted({int(match.group(1)) for match in PLACEHOLDER_PATTERN.finditer(value)}) + required_arguments = max(placeholders) + 1 if placeholders else 0 + if call['supplied_arguments'] < required_arguments: + rows.append({ + "type": "not_enough_format_arguments", + "culture": "", + "key": call['key'], + "source_file": call['source_file'], + "source_line": call['source_line'], + "details": f"supplied:{call['supplied_arguments']}; required:{required_arguments}", + }) + exit_code = 1 + + forbidden_rows = find_forbidden_localization_apis() + if forbidden_rows: + rows.extend(forbidden_rows) + exit_code = 1 + + pe_helper_export_rows = validate_pe_helper_export_map(source_calls) + if pe_helper_export_rows: + rows.extend(pe_helper_export_rows) + exit_code = 1 + + report_path = ROOT / "docs" / "localization" / "localization_validation_report.csv" + report_path.parent.mkdir(parents=True, exist_ok=True) + with report_path.open("w", encoding="utf-8-sig", newline="") as output: + writer = csv.DictWriter(output, fieldnames=["type", "culture", "key", "source_file", "source_line", "details"]) + writer.writeheader() + writer.writerows(rows) + + print(f"Language files checked: {len(language_files)}") + print(f"Localization keys in language files: {len(all_language_keys)}") + print(f"Localization keys used by source code: {len(used_keys)}") + print(f"Report: {report_path.relative_to(ROOT).as_posix()}") + + if exit_code == 0: + print("Localization validation passed.") + else: + print("Localization validation failed.") + + return exit_code + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/Tools/localization/verify_project_items.py b/Tools/localization/verify_project_items.py new file mode 100644 index 000000000..50d760692 --- /dev/null +++ b/Tools/localization/verify_project_items.py @@ -0,0 +1,135 @@ +from pathlib import Path +import xml.etree.ElementTree as ET +import sys + +ROOT = Path(__file__).resolve().parents[2] +errors = [] +checked_projects = 0 +checked_items = 0 + +for project_file in ROOT.rglob('*.vbproj'): + if any(part.lower() in {'bin', 'obj'} for part in project_file.parts): + continue + checked_projects += 1 + try: + root = ET.parse(project_file).getroot() + except Exception as exc: + errors.append(f'{project_file.relative_to(ROOT)}: cannot parse project file: {exc}') + continue + ns = {'m': 'http://schemas.microsoft.com/developer/msbuild/2003'} if root.tag.startswith('{') else {} + + def find_all(name): + return root.findall(f'.//m:{name}', ns) if ns else root.findall(f'.//{name}') + + for item_name in ('Compile', 'EmbeddedResource'): + for item in find_all(item_name): + include = item.get('Include') + if not include: + continue + checked_items += 1 + item_path = project_file.parent / include.replace('\\', '/') + if not item_path.exists(): + errors.append(f'{project_file.relative_to(ROOT)}: missing {item_name}: {include}') + if item_name == 'EmbeddedResource': + dep = item.find('m:DependentUpon', ns) if ns else item.find('DependentUpon') + if dep is not None and dep.text: + dep_path = item_path.parent / dep.text + if not dep_path.exists(): + errors.append( + f'{project_file.relative_to(ROOT)}: bad resource dependency: {include} depends on {dep.text}' + ) + + +# Lightweight VB declaration sanity checks. +# These checks catch broken identifiers introduced by file or key rename passes, +# for example `Public Class EnvironmentVariables.ManagementForm`. +import re + +declaration_re = re.compile( + r"^(?:(?:Public|Private|Protected|Friend|Partial|Shared|Overloads|Overrides|Static|Default|ReadOnly|WriteOnly)\s+)*" + r"(Class|Module|Structure|Interface|Enum|Sub|Function|Property)\s+([^\s\(]+)", + re.IGNORECASE, +) + +for vb_file in ROOT.rglob('*.vb'): + if any(part.lower() in {'bin', 'obj'} for part in vb_file.parts): + continue + try: + lines = vb_file.read_text(encoding='utf-8-sig').splitlines() + except UnicodeDecodeError: + lines = vb_file.read_text(errors='ignore').splitlines() + for line_number, line in enumerate(lines, 1): + stripped = line.strip() + match = declaration_re.match(stripped) + if not match: + continue + identifier = match.group(2) + if '.' in identifier: + errors.append( + f'{vb_file.relative_to(ROOT)}:{line_number}: invalid dotted VB declaration: {identifier}' + ) + + + +# References that are known to fail compilation after semantic form renames. +# Keep these checks close to the project item audit because they validate +# source level links between renamed forms and their callers. +forbidden_source_patterns = { + 'Casters.CastDismSignatureStatus(': 'use Casters.SignatureStatus(', + 'Casters.CastDismApplicabilityStatus(': 'use Casters.Applicability(', + 'Casters.CastDismFullyOfflineInstallationType(': 'use Casters.OfflineInstallType(', + 'Casters.ApplicabilityStatus(': 'use Casters.Applicability(', + 'Casters.OfflineInstallationType(': 'use Casters.OfflineInstallType(', + 'PEScratch.ShowDialog(': 'use SetPEScratchSpace.ShowDialog(', + 'ApplyUnattend.ShowDialog(': 'use ApplyUnattendFile.ShowDialog(', +} + +# Some WinForms controls have names that can collide with renamed form classes. +# Calling ShowDialog on those controls is a compile error, so flag it here. +control_declarations = {} +control_decl_re = re.compile( + r'^\s*Friend\s+WithEvents\s+([A-Za-z_][A-Za-z0-9_]*)\s+As\s+([A-Za-z0-9_.]+)', + re.IGNORECASE, +) +show_dialog_re = re.compile(r'\b([A-Za-z_][A-Za-z0-9_]*)\.ShowDialog\s*\(') + +for vb_file in ROOT.rglob('*.vb'): + if any(part.lower() in {'bin', 'obj'} for part in vb_file.parts): + continue + try: + text = vb_file.read_text(encoding='utf-8-sig') + except UnicodeDecodeError: + text = vb_file.read_text(errors='ignore') + for line in text.splitlines(): + match = control_decl_re.match(line) + if match: + control_declarations[match.group(1)] = match.group(2) + +for vb_file in ROOT.rglob('*.vb'): + if any(part.lower() in {'bin', 'obj'} for part in vb_file.parts): + continue + try: + lines = vb_file.read_text(encoding='utf-8-sig').splitlines() + except UnicodeDecodeError: + lines = vb_file.read_text(errors='ignore').splitlines() + for line_number, line in enumerate(lines, 1): + for pattern, fix in forbidden_source_patterns.items(): + if pattern in line: + errors.append( + f'{vb_file.relative_to(ROOT)}:{line_number}: forbidden stale reference {pattern}. {fix}' + ) + for match in show_dialog_re.finditer(line): + target = match.group(1) + target_type = control_declarations.get(target) + if target_type and target_type.endswith('ToolStripMenuItem'): + errors.append( + f'{vb_file.relative_to(ROOT)}:{line_number}: ShowDialog called on menu item {target}. Use the form class instead.' + ) + +if errors: + print('Project item validation failed.') + for error in errors: + print(error) + sys.exit(1) + +print(f'Project item validation passed. Projects checked: {checked_projects}. Items checked: {checked_items}.') diff --git a/Updater/DISMTools-UCS/ApplicationEvents.vb b/Updater/DISMTools-UCS/ApplicationEvents.vb new file mode 100644 index 000000000..102c71441 --- /dev/null +++ b/Updater/DISMTools-UCS/ApplicationEvents.vb @@ -0,0 +1,11 @@ +Namespace My + + Partial Friend Class MyApplication + + Private Sub MyApplication_Startup(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup + LocalizationService.Initialize() + End Sub + + End Class + +End Namespace diff --git a/Updater/DISMTools-UCS/DISMTools-UCS.vbproj b/Updater/DISMTools-UCS/DISMTools-UCS.vbproj index e9e6b8529..c0a194d2b 100644 --- a/Updater/DISMTools-UCS/DISMTools-UCS.vbproj +++ b/Updater/DISMTools-UCS/DISMTools-UCS.vbproj @@ -81,6 +81,10 @@ + + + Utilities\LocalizationService.vb + Form diff --git a/Updater/DISMTools-UCS/MainForm.Designer.vb b/Updater/DISMTools-UCS/MainForm.Designer.vb index 376cd4bd7..139a00dc1 100644 --- a/Updater/DISMTools-UCS/MainForm.Designer.vb +++ b/Updater/DISMTools-UCS/MainForm.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class MainForm Inherits System.Windows.Forms.Form @@ -84,7 +84,7 @@ Partial Class MainForm Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(264, 15) Me.Label1.TabIndex = 0 - Me.Label1.Text = "DISMTools Update Check System - Version " + Me.Label1.Text = LocalizationService.ForSection("Updater.Designer.Main")("DISM.Tools.Update.Label") ' 'btnControlPanel ' @@ -121,7 +121,7 @@ Partial Class MainForm Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(94, 15) Me.Label2.TabIndex = 1 - Me.Label2.Text = "Product updates" + Me.Label2.Text = LocalizationService.ForSection("Updater.Designer.Main")("ProductUpdates.Label") ' 'minBox ' @@ -178,7 +178,7 @@ Partial Class MainForm Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 2 - Me.Button1.Text = "Update" + Me.Button1.Text = LocalizationService.ForSection("Updater.Designer.Main")("Update.Button") Me.Button1.UseVisualStyleBackColor = True ' 'LinkLabel1 @@ -191,7 +191,7 @@ Partial Class MainForm Me.LinkLabel1.Size = New System.Drawing.Size(103, 15) Me.LinkLabel1.TabIndex = 1 Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "View release notes" + Me.LinkLabel1.Text = LocalizationService.ForSection("Updater.Designer.Main")("View.Release.Notes.Link") ' 'Label6 ' @@ -202,7 +202,7 @@ Partial Class MainForm Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(814, 42) Me.Label6.TabIndex = 0 - Me.Label6.Text = "Version information" + Me.Label6.Text = LocalizationService.ForSection("Updater.Designer.Main")("VersionInfo.Label") Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Label7 @@ -212,8 +212,7 @@ Partial Class MainForm Me.Label7.Name = "Label7" Me.Label7.Size = New System.Drawing.Size(538, 15) Me.Label7.TabIndex = 0 - Me.Label7.Text = "Please close any open DISMTools windows, while saving any projects loaded, and th" & _ - "en click ""Update""" + Me.Label7.Text = LocalizationService.ForSection("Updater.Designer.Main")("Close.Open.Message") ' 'Label5 ' @@ -222,7 +221,7 @@ Partial Class MainForm Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(301, 15) Me.Label5.TabIndex = 0 - Me.Label5.Text = "There is a new version available to download and install:" + Me.Label5.Text = LocalizationService.ForSection("Updater.Designer.Main")("NewVersion.Label") ' 'Label4 ' @@ -231,7 +230,7 @@ Partial Class MainForm Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(52, 15) Me.Label4.TabIndex = 3 - Me.Label4.Text = "Progress" + Me.Label4.Text = LocalizationService.ForSection("Updater.Designer.Main")("Progress.Label") ' 'ProgressBar1 ' @@ -249,7 +248,7 @@ Partial Class MainForm Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(267, 32) Me.Label3.TabIndex = 1 - Me.Label3.Text = "Checking for updates..." + Me.Label3.Text = LocalizationService.ForSection("Updater.Designer.Main")("CheckingUpdates.Label") ' 'UpdatePanel ' @@ -323,7 +322,7 @@ Partial Class MainForm Me.CheckBox1.Name = "CheckBox1" Me.CheckBox1.Size = New System.Drawing.Size(129, 19) Me.CheckBox1.TabIndex = 4 - Me.CheckBox1.Text = "Launch when ready" + Me.CheckBox1.Text = LocalizationService.ForSection("Updater.Designer.Main")("Launch.Ready.CheckBox") Me.CheckBox1.UseVisualStyleBackColor = True ' 'Label13 @@ -334,7 +333,7 @@ Partial Class MainForm Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(156, 15) Me.Label13.TabIndex = 3 - Me.Label13.Text = "Finishing update installation" + Me.Label13.Text = LocalizationService.ForSection("Updater.Designer.Main")("Finishing.Update.Label") ' 'Label12 ' @@ -344,7 +343,7 @@ Partial Class MainForm Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(115, 15) Me.Label12.TabIndex = 3 - Me.Label12.Text = "Installing the update" + Me.Label12.Text = LocalizationService.ForSection("Updater.Designer.Main")("InstallingUpdate.Label") ' 'Label11 ' @@ -354,7 +353,7 @@ Partial Class MainForm Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(159, 15) Me.Label11.TabIndex = 3 - Me.Label11.Text = "Preparing update installation" + Me.Label11.Text = LocalizationService.ForSection("Updater.Designer.Main")("Prepare.Update.Install.Label") ' 'Label10 ' @@ -364,7 +363,7 @@ Partial Class MainForm Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(138, 15) Me.Label10.TabIndex = 3 - Me.Label10.Text = "Downloading the update" + Me.Label10.Text = LocalizationService.ForSection("Updater.Designer.Main")("Downloading.Update.Label") ' 'Label14 ' @@ -373,7 +372,7 @@ Partial Class MainForm Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(227, 15) Me.Label14.TabIndex = 3 - Me.Label14.Text = "The update may take some time to install." + Me.Label14.Text = LocalizationService.ForSection("Updater.Designer.Main")("Update.Take.Time.Label") ' 'Label9 ' @@ -382,7 +381,7 @@ Partial Class MainForm Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(422, 15) Me.Label9.TabIndex = 3 - Me.Label9.Text = "Please wait while we update your copy of DISMTools. This may take some time." + Me.Label9.Text = LocalizationService.ForSection("Updater.Designer.Main")("Wait.Update.Label") ' 'Label8 ' @@ -392,7 +391,7 @@ Partial Class MainForm Me.Label8.Name = "Label8" Me.Label8.Size = New System.Drawing.Size(255, 32) Me.Label8.TabIndex = 2 - Me.Label8.Text = "Updating DISMTools..." + Me.Label8.Text = LocalizationService.ForSection("Updater.Designer.Main")("Updating.DISM.Tools.Label") ' 'FinishPanel ' @@ -416,7 +415,7 @@ Partial Class MainForm Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 5 - Me.Button2.Text = "Launch" + Me.Button2.Text = LocalizationService.ForSection("Updater.Designer.Main")("Launch.Button") Me.Button2.UseVisualStyleBackColor = True ' 'Label17 @@ -426,8 +425,7 @@ Partial Class MainForm Me.Label17.Name = "Label17" Me.Label17.Size = New System.Drawing.Size(677, 15) Me.Label17.TabIndex = 4 - Me.Label17.Text = "This version may come with new settings you may not have set previously. Your old" & _ - " settings file will be migrated to this version." + Me.Label17.Text = LocalizationService.ForSection("Updater.Designer.Main")("Version.Come.New.Message") ' 'Label16 ' @@ -436,8 +434,7 @@ Partial Class MainForm Me.Label16.Name = "Label16" Me.Label16.Size = New System.Drawing.Size(499, 15) Me.Label16.TabIndex = 4 - Me.Label16.Text = "DISMTools has been updated successfully. You can now enjoy the new features of th" & _ - "is release." + Me.Label16.Text = LocalizationService.ForSection("Updater.Designer.Main")("DISM.Tools.Updated.Label") ' 'Label15 ' @@ -447,7 +444,7 @@ Partial Class MainForm Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(203, 32) Me.Label15.TabIndex = 3 - Me.Label15.Text = "Update complete" + Me.Label15.Text = LocalizationService.ForSection("Updater.Designer.Main")("UpdateComplete.Label") ' 'ReleaseFetcherBW ' @@ -496,7 +493,7 @@ Partial Class MainForm Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - Me.Text = "Product updates" + Me.Text = LocalizationService.ForSection("Updater.Designer.Main")("ProductUpdates.Label") Me.btnControlPanel.ResumeLayout(False) Me.btnControlPanel.PerformLayout() Me.wndControlPanel.ResumeLayout(False) diff --git a/Updater/DISMTools-UCS/MainForm.vb b/Updater/DISMTools-UCS/MainForm.vb index 3d4b06bd2..8078a16f0 100644 --- a/Updater/DISMTools-UCS/MainForm.vb +++ b/Updater/DISMTools-UCS/MainForm.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports System.Net Imports Microsoft.VisualBasic.ControlChars Imports System.IO.Compression @@ -49,7 +49,7 @@ Public Class MainForm End Sub Private Sub minBox_MouseHover(sender As Object, e As EventArgs) Handles minBox.MouseHover - btnToolTip.SetToolTip(sender, "Minimize") + btnToolTip.SetToolTip(sender, LocalizationService.ForSection("Updater.Main")("Minimize.Label")) End Sub Private Sub minBox_Click(sender As Object, e As EventArgs) Handles minBox.Click @@ -73,7 +73,7 @@ Public Class MainForm End Sub Private Sub closeBox_MouseHover(sender As Object, e As EventArgs) Handles closeBox.MouseHover - btnToolTip.SetToolTip(sender, "Close") + btnToolTip.SetToolTip(sender, LocalizationService.ForSection("Updater.Main")("Close.Label")) End Sub Private Sub closeBox_Click(sender As Object, e As EventArgs) Handles closeBox.Click @@ -107,7 +107,7 @@ Public Class MainForm Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load Control.CheckForIllegalCrossThreadCalls = False If File.Exists(Application.StartupPath & "\portable") Then IsPortable = True - Label1.Text = "DISMTools Update Check System - Version " & Application.ProductVersion + Label1.Text = LocalizationService.ForSection("Updater.Main").Format("DISM.Tools.Update.Label", Application.ProductVersion) If Directory.Exists(Application.StartupPath & "\new") Then Directory.Delete(Application.StartupPath & "\new", True) GetArguments() Try @@ -172,7 +172,7 @@ Public Class MainForm Sub GetArguments() If Environment.GetCommandLineArgs.Length = 1 Then - MsgBox("The branch parameter is necessary to be able to check for updates", vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("Updater.Main.Messages")("BranchRequired.Message"), vbOKOnly + vbCritical, Text) Environment.Exit(1) Else Dim args() As String = Environment.GetCommandLineArgs() @@ -198,7 +198,7 @@ Public Class MainForm ProgressBar1.Value = e.ProgressPercentage Label4.Text = msg If e.ProgressPercentage = 100 Then - Label3.Text = "Update information" + Label3.Text = LocalizationService.ForSection("Updater.Main")("UpdateInfo.Label") Label6.Text = FileVersionInfo.GetVersionInfo(Application.StartupPath & "\DISMTools.exe").FileVersion.ToString() & " → " & latestVer Panel1.Visible = True Label4.Visible = False @@ -212,7 +212,7 @@ Public Class MainForm Try client.DownloadFile("https://raw.githubusercontent.com/CodingWonders/dt-update-files/refs/heads/main/" & If(branch.Contains("pre"), "preview.ini", "stable.ini"), Application.StartupPath & "\info.ini") Catch ex As WebException - MsgBox("We couldn't fetch the necessary update information. Reason:" & CrLf & ex.Status.ToString(), vbOKOnly + vbCritical, Text) + MsgBox(LocalizationService.ForSection("Updater.Main.Messages").Format("Couldn.Tfetch.Label", ex.Status.ToString()), vbOKOnly + vbCritical, Text) Environment.Exit(1) End Try If File.Exists(Application.StartupPath & "\info.ini") Then @@ -247,7 +247,7 @@ Public Class MainForm If File.Exists(Application.StartupPath & "\DISMTools.exe") Then Dim fv As String = FileVersionInfo.GetVersionInfo(Application.StartupPath & "\DISMTools.exe").ProductVersion.ToString() If fv = latestVer Or New Version(fv) > New Version(latestVer) Then - MsgBox("There aren't any updates available", vbOKOnly + vbInformation, Text) + MsgBox(LocalizationService.ForSection("Updater.Main.Messages")("Updates.Available.None.Label"), vbOKOnly + vbInformation, Text) End Else ReleaseFetcherBW.ReportProgress(100) @@ -284,7 +284,7 @@ Public Class MainForm UpdaterBW.ReportProgress(5) DownloadAsync().Wait() Threading.Thread.Sleep(500) - Label10.Text = "Downloading the update" + Label10.Text = LocalizationService.ForSection("Updater.Main")("Downloading.Update.Label") Label10.ForeColor = Color.Gray Label11.ForeColor = ForeColor Label12.ForeColor = Color.Gray @@ -298,7 +298,7 @@ Public Class MainForm PictureBox3.Visible = False PictureBox4.Visible = False PrepareUpdateInstallation() - Label11.Text = "Preparing update installation" + Label11.Text = LocalizationService.ForSection("Updater.Main")("Prepare.Update.Install.Label") Label10.ForeColor = Color.Gray Label11.ForeColor = Color.Gray Label12.ForeColor = ForeColor @@ -312,7 +312,7 @@ Public Class MainForm PictureBox3.Visible = False PictureBox4.Visible = False InstallUpdate() - Label12.Text = "Installing the update" + Label12.Text = LocalizationService.ForSection("Updater.Main")("InstallingUpdate.Label") PictureBox1.Visible = True PictureBox2.Visible = True PictureBox3.Visible = True @@ -347,7 +347,7 @@ Public Class MainForm Private Sub UpdaterBW_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles UpdaterBW.RunWorkerCompleted If e.Error IsNot Nothing Then - MsgBox(e.Error.ToString() & CrLf & CrLf & "Your current version of DISMTools may no longer work correctly if you continue using it. It is recommended that you download the latest version manually and extract/install it manually." & CrLf & CrLf & "Do not worry. Your settings are kept intact.", vbOKOnly + vbExclamation, Text) + MsgBox(e.Error.ToString() & CrLf & CrLf & LocalizationService.ForSection("Updater.Main.Validation")("CurrentVersion.Warning"), vbOKOnly + vbExclamation, Text) ' Stop process launch Exit Sub End If @@ -369,7 +369,7 @@ Public Class MainForm Async Function DownloadReleaseAsync(url As String, path As String, worker As System.ComponentModel.BackgroundWorker) As Task(Of Integer) AddHandler ReleaseDownloader.DownloadProgressChanged, Sub(sender, e) - Label10.Text = "Downloading the update (" & e.ProgressPercentage & "%)" + Label10.Text = LocalizationService.ForSection("Updater.Main").Format("Downloading.Download.Label", e.ProgressPercentage) worker.ReportProgress(e.ProgressPercentage) End Sub Dim data As Byte() = Await ReleaseDownloader.DownloadDataTaskAsync(url) @@ -402,7 +402,7 @@ Public Class MainForm UpdaterBW.ReportProgress(25) ExpandContents() End If - Label11.Text = "Preparing update installation (80%)" + Label11.Text = LocalizationService.ForSection("Updater.Main")("Preparing.Install.Item") msg = "Waiting for processes to close..." UpdaterBW.ReportProgress(47.5) CloseMainProcess() @@ -438,7 +438,7 @@ Public Class MainForm End If ExtractedEntries += 1 Dim progress As Double = CDbl(ExtractedEntries / TotalEntries) - Label11.Text = "Preparing update installation (" & Math.Round(80 * progress, 0) & "%)" + Label11.Text = LocalizationService.ForSection("Updater.Main").Format("Preparing.Install.Label", Math.Round(80 * progress, 0)) Next End Using Catch ex As Exception @@ -455,7 +455,7 @@ Public Class MainForm Application.DoEvents() Threading.Thread.Sleep(500) Loop - Label11.Text = "Preparing update installation (100%)" + Label11.Text = LocalizationService.ForSection("Updater.Main")("Prepare.Update.Install.Item") Exit Sub Else Dim Procs() As Process = Process.GetProcessesByName("DISMTools") @@ -466,13 +466,13 @@ Public Class MainForm Threading.Thread.Sleep(500) Loop Next - Label11.Text = "Preparing update installation (100%)" + Label11.Text = LocalizationService.ForSection("Updater.Main")("Prepare.Update.Install.Item") Exit Sub End If End Sub Sub BackupInstallation() - Label12.Text = "Installing the update (0%)" + Label12.Text = LocalizationService.ForSection("Updater.Main")("Installing.Update.Item") FileCount = Directory.GetFiles(Application.StartupPath, "*", SearchOption.AllDirectories).Length CopiedFiles = 0 FileCount -= (1 + If(Directory.Exists(Application.StartupPath & "\logs"), Directory.GetFiles(Application.StartupPath & "\logs", "*", SearchOption.AllDirectories).Length, 0) + _ @@ -483,7 +483,7 @@ Public Class MainForm For Each DLLFile In Directory.GetFiles(Application.StartupPath, "*.dll") File.Copy(DLLFile, Path.Combine(Application.StartupPath, "old", Path.GetFileName(DLLFile)), True) CopiedFiles += 1 - Label12.Text = "Installing the update (" & Math.Round(30 * (CopiedFiles / FileCount), 0) & "%)" + Label12.Text = LocalizationService.ForSection("Updater.Main").Format("Installing.Update.Label", Math.Round(30 * (CopiedFiles / FileCount), 0)) Next DirCopy(Application.StartupPath & "\AutoReload", Application.StartupPath & "\old\AutoReload", True, False) DirCopy(Application.StartupPath & "\AutoUnattend", Application.StartupPath & "\old\AutoUnattend", True, False) @@ -496,7 +496,7 @@ Public Class MainForm File.Copy(Application.StartupPath & "\LICENSE", Application.StartupPath & "\old\LICENSE", True) File.Copy(Application.StartupPath & "\DISMTools.exe", Application.StartupPath & "\old\DISMTools.exe", True) CopiedFiles += 2 - Label12.Text = "Installing the update (" & Math.Round(30 * (CopiedFiles / FileCount), 0) & "%)" + Label12.Text = LocalizationService.ForSection("Updater.Main").Format("Installing.Update.Label", Math.Round(30 * (CopiedFiles / FileCount), 0)) End Sub Sub DirCopy(sourceDir As String, destDir As String, ovr As Boolean, Backup As Boolean) @@ -513,7 +513,7 @@ Public Class MainForm Dim tempPath As String = Path.Combine(destDir, DirFile.Name) DirFile.CopyTo(tempPath, ovr) CopiedFiles += 1 - Label12.Text = "Installing the update (" & If(Backup, Math.Round(30 * (CopiedFiles / FileCount), 0), 30 + Math.Round(70 * (CopiedFiles / FileCount), 0)) & "%)" + Label12.Text = LocalizationService.ForSection("Updater.Main").Format("Installing.Update.Label", If(Backup, Math.Round(30 * (CopiedFiles / FileCount), 0), 30 + Math.Round(70 * (CopiedFiles / FileCount), 0))) Next Dim dirs As DirectoryInfo() = dir.GetDirectories() For Each subDir As DirectoryInfo In dirs @@ -548,7 +548,7 @@ Public Class MainForm If Installer.ExitCode <> 0 Then Debug.WriteLine("An error occured installing the new version.") End If - Label12.Text = "Installing the update (100%)" + Label12.Text = LocalizationService.ForSection("Updater.Main")("InstallingComplete.Item") Exit Sub End If ' Count everything in there except for DISMTools.zip and the portable file @@ -558,7 +558,7 @@ Public Class MainForm If Path.GetFileName(rootFile) <> "DISMTools.zip" And Path.GetFileName(rootFile) <> "portable" Then File.Copy(rootFile, Path.Combine(Application.StartupPath, Path.GetFileName(rootFile)), True) CopiedFiles += 1 - Label12.Text = "Installing the update (" & 30 + Math.Round(70 * (CopiedFiles / FileCount), 0) & "%)" + Label12.Text = LocalizationService.ForSection("Updater.Main").Format("Installing.Update.Label", 30 + Math.Round(70 * (CopiedFiles / FileCount), 0)) End If Next DirCopy(Application.StartupPath & "\new\AutoReload", Application.StartupPath & "\AutoReload", True, False) diff --git a/UserControls/NewsFeedItemCard.Designer.vb b/UserControls/NewsFeedItemCard.Designer.vb index 8e84bb9fb..4ce8748d8 100644 --- a/UserControls/NewsFeedItemCard.Designer.vb +++ b/UserControls/NewsFeedItemCard.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class NewsFeedItemCard Inherits System.Windows.Forms.UserControl @@ -40,7 +40,7 @@ Partial Class NewsFeedItemCard Me.FeedItemLinkLabel.Size = New System.Drawing.Size(293, 34) Me.FeedItemLinkLabel.TabIndex = 0 Me.FeedItemLinkLabel.TabStop = True - Me.FeedItemLinkLabel.Text = "Feed Item Title" + Me.FeedItemLinkLabel.Text = LocalizationService.ForSection("Designer.NewsFeedCard")("Item.Title") ' 'FeedItemDateLabel ' @@ -51,7 +51,7 @@ Partial Class NewsFeedItemCard Me.FeedItemDateLabel.Name = "FeedItemDateLabel" Me.FeedItemDateLabel.Size = New System.Drawing.Size(217, 34) Me.FeedItemDateLabel.TabIndex = 1 - Me.FeedItemDateLabel.Text = "Item Date" + Me.FeedItemDateLabel.Text = LocalizationService.ForSection("Designer.NewsFeedCard")("ItemDate.Label") Me.FeedItemDateLabel.TextAlign = System.Drawing.ContentAlignment.TopRight ' 'NewsFeedItemCard diff --git a/UserControls/WimFileSourceControl.Designer.vb b/UserControls/WimFileSourceControl.Designer.vb index 68cb021c5..354c430a7 100644 --- a/UserControls/WimFileSourceControl.Designer.vb +++ b/UserControls/WimFileSourceControl.Designer.vb @@ -1,4 +1,4 @@ - _ + _ Partial Class WimFileSourceControl Inherits System.Windows.Forms.UserControl @@ -61,7 +61,7 @@ Partial Class WimFileSourceControl Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(210, 26) Me.Label1.TabIndex = 8 - Me.Label1.Text = "Image file" + Me.Label1.Text = LocalizationService.ForSection("Designer.WimFileSource")("ImageFile.Label") Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'PictureBox1 @@ -82,7 +82,7 @@ Partial Class WimFileSourceControl Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(79, 26) Me.Label2.TabIndex = 7 - Me.Label2.Text = "Image index" + Me.Label2.Text = LocalizationService.ForSection("Designer.WimFileSource")("ImageIndex.Label") Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight ' 'Button1 diff --git a/Utilities/DT_Utils.vb b/Utilities/DT_Utils.vb index f8b395eaf..2ae14d26d 100644 --- a/Utilities/DT_Utils.vb +++ b/Utilities/DT_Utils.vb @@ -20,60 +20,12 @@ Namespace Utilities Select Case Arch Case DismProcessorArchitecture.None If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Unknown" - Case "ESN" - Return "Desconocida" - Case "FRA" - Return "Inconnu" - Case "PTB", "PTG" - Return "Desconhecido" - Case "ITA" - Return "Sconosciuta" - End Select - Case 1 - Return "Unknown" - Case 2 - Return "Desconocida" - Case 3 - Return "Inconnu" - Case 4 - Return "Desconhecido" - Case 5 - Return "Sconosciuta" - End Select + Return LocalizationService.ForSection("Casters.DISMArchitecture")("Unknown.Label") Else Return "Unknown" End If Case DismProcessorArchitecture.Neutral - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Neutral" - Case "ESN" - Return "Neutral" - Case "FRA" - Return "Neutre" - Case "PTB", "PTG" - Return "Neutro" - Case "ITA" - Return "Neutro" - End Select - Case 1 - Return "Neutral" - Case 2 - Return "Neutral" - Case 3 - Return "Neutre" - Case 4 - Return "Neutro" - Case 5 - Return "Neutro" - End Select + Return LocalizationService.ForSection("Casters.DISMArchitecture")("Neutral.Label") Case DismProcessorArchitecture.Intel Return "x86" Case DismProcessorArchitecture.IA64 @@ -104,95 +56,23 @@ Namespace Utilities Return DismProcessorArchitecture.None End Function - Shared Function CastDismSignatureStatus(Signature As DismDriverSignature, Optional Translate As Boolean = False) As String + Shared Function SignatureStatus(Signature As DismDriverSignature, Optional Translate As Boolean = False) As String Select Case Signature Case DismDriverSignature.Unknown If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Unknown" - Case "ESN" - Return "Desconocido" - Case "FRA" - Return "Inconnu" - Case "PTB", "PTG" - Return "Desconhecido" - Case "ITA" - Return "Sconosciuto" - End Select - Case 1 - Return "Unknown" - Case 2 - Return "Desconocido" - Case 3 - Return "Inconnu" - Case 4 - Return "Desconhecido" - Case 5 - Return "Sconosciuto" - End Select + Return LocalizationService.ForSection("Casters.SignatureStatus")("Unknown.Label") Else Return "Unknown" End If Case DismDriverSignature.Unsigned If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Unsigned. Please check the validity and expiration date of the signing certificate" - Case "ESN" - Return "No firmado. Compruebe la validez y la fecha de expiración del certificado del controlador" - Case "FRA" - Return "Non signé. Veuillez vérifier la validité et la date d'expiration du certificat de signature." - Case "PTB", "PTG" - Return "Não assinado. Verifique a validade e a data de expiração do certificado de assinatura" - Case "ITA" - Return "Non firmato. Verificare la validità e la data di scadenza del certificato di firma" - End Select - Case 1 - Return "Unsigned. Please check the validity and expiration date of the signing certificate" - Case 2 - Return "No firmado. Compruebe la validez y la fecha de expiración del certificado del controlador" - Case 3 - Return "Non signé. Veuillez vérifier la validité et la date d'expiration du certificat de signature." - Case 4 - Return "Não assinado. Verifique a validade e a data de expiração do certificado de assinatura" - Case 5 - Return "Non firmato. Verificare la validità e la data di scadenza del certificato di firma" - End Select + Return LocalizationService.ForSection("Casters.SignatureStatus")("UnsignedValidity.Message") Else Return "Unsigned. Please check the validity and expiration date of the signing certificate" End If Case DismDriverSignature.Signed If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Signed" - Case "ESN" - Return "Firmado" - Case "FRA" - Return "Signé" - Case "PTB", "PTG" - Return "Assinado" - Case "ITA" - Return "Firmato" - End Select - Case 1 - Return "Signed" - Case 2 - Return "Firmado" - Case 3 - Return "Signé" - Case 4 - Return "Assinado" - Case 5 - Return "Firmato" - End Select + Return LocalizationService.ForSection("Casters.SignatureStatus")("Signed.Label") Else Return "Signed" End If @@ -204,241 +84,49 @@ Namespace Utilities Select Case State Case DismPackageFeatureState.NotPresent If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Not present" - Case "ESN" - Return "No presente" - Case "FRA" - Return "Absent" - Case "PTB", "PTG" - Return "Não presente" - Case "ITA" - Return "Non presente" - End Select - Case 1 - Return "Not present" - Case 2 - Return "No presente" - Case 3 - Return "Absent" - Case 4 - Return "Não presente" - Case 5 - Return "Non presente" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Present.Label") Else Return "Not present" End If Case DismPackageFeatureState.UninstallPending If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Uninstall Pending" - Case "ESN" - Return "Desinstalación pendiente" - Case "FRA" - Return "Désinstallation en cours" - Case "PTB", "PTG" - Return "Desinstalação pendente" - Case "ITA" - Return "Disinstallazione in corso" - End Select - Case 1 - Return "Uninstall Pending" - Case 2 - Return "Desinstalación pendiente" - Case 3 - Return "Désinstallation en cours" - Case 4 - Return "Desinstalação pendente" - Case 5 - Return "Disinstallazione in corso" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("UninstallPending.Label") Else Return "Uninstall Pending" End If Case DismPackageFeatureState.Staged If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Uninstalled" - Case "ESN" - Return "Desinstalado" - Case "FRA" - Return "Désinstallé" - Case "PTB", "PTG" - Return "Desinstalado" - Case "ITA" - Return "Disinstallato" - End Select - Case 1 - Return "Uninstalled" - Case 2 - Return "Desinstalado" - Case 3 - Return "Désinstallé" - Case 4 - Return "Desinstalado" - Case 5 - Return "Disinstallato" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Uninstalled.Label") Else Return "Uninstalled" End If Case DismPackageFeatureState.Removed Or DismPackageFeatureState.Resolved If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Removed" - Case "ESN" - Return "Eliminado" - Case "FRA" - Return "Supprimé" - Case "PTB", "PTG" - Return "Removido" - Case "ITA" - Return "Rimosso" - End Select - Case 1 - Return "Removed" - Case 2 - Return "Eliminado" - Case 3 - Return "Supprimé" - Case 4 - Return "Removido" - Case 5 - Return "Rimosso" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Removed.Label") Else Return "Removed" End If Case DismPackageFeatureState.Installed If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Installed" - Case "ESN" - Return "Instalado" - Case "FRA" - Return "Installé" - Case "PTB", "PTG" - Return "Instalado" - Case "ITA" - Return "Installato" - End Select - Case 1 - Return "Installed" - Case 2 - Return "Instalado" - Case 3 - Return "Installé" - Case 4 - Return "Instalado" - Case 5 - Return "Installato" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Installed.Label") Else Return "Installed" End If Case DismPackageFeatureState.InstallPending If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Install Pending" - Case "ESN" - Return "Instalación pendiente" - Case "FRA" - Return "Installation en cours" - Case "PTB", "PTG" - Return "Instalação pendente" - Case "ITA" - Return "In attesa di installazione" - End Select - Case 1 - Return "Install Pending" - Case 2 - Return "Instalación pendiente" - Case 3 - Return "Installation en cours" - Case 4 - Return "Instalação pendente" - Case 5 - Return "In attesa di installazione" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("InstallPending.Label") Else Return "Install Pending" End If Case DismPackageFeatureState.Superseded If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Superseded" - Case "ESN" - Return "Sustituido" - Case "FRA" - Return "Remplacé" - Case "PTB", "PTG" - Return "Substituído" - Case "ITA" - Return "Sostituito" - End Select - Case 1 - Return "Superseded" - Case 2 - Return "Sustituido" - Case 3 - Return "Remplacé" - Case 4 - Return "Substituído" - Case 5 - Return "Sostituito" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Superseded.Label") Else Return "Superseded" End If Case DismPackageFeatureState.PartiallyInstalled If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Partially Installed" - Case "ESN" - Return "Instalado parcialmente" - Case "FRA" - Return "Partiellement installé" - Case "PTB", "PTG" - Return "Parcialmente instalado" - Case "ITA" - Return "Parzialmente installato" - End Select - Case 1 - Return "Partially Installed" - Case 2 - Return "Instalado parcialmente" - Case 3 - Return "Partiellement installé" - Case 4 - Return "Parcialmente instalado" - Case 5 - Return "Parzialmente installato" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Partially.Installed.Label") Else Return "Partially Installed" End If @@ -472,241 +160,49 @@ Namespace Utilities Select Case State Case DismPackageFeatureState.NotPresent If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Not present" - Case "ESN" - Return "No presente" - Case "FRA" - Return "Absente" - Case "PTB", "PTG" - Return "Não presente" - Case "ITA" - Return "Non presente" - End Select - Case 1 - Return "Not present" - Case 2 - Return "No presente" - Case 3 - Return "Absente" - Case 4 - Return "Não presente" - Case 5 - Return "Non presente" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Present.Label") Else Return "Not present" End If Case DismPackageFeatureState.UninstallPending If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Disable Pending" - Case "ESN" - Return "Deshabilitación pendiente" - Case "FRA" - Return "Invalidité en cours" - Case "PTB", "PTG" - Return "Desativação pendente" - Case "ITA" - Return "In attesa di invalidità" - End Select - Case 1 - Return "Disable Pending" - Case 2 - Return "Deshabilitación pendiente" - Case 3 - Return "Invalidité en cours" - Case 4 - Return "Desativação pendente" - Case 5 - Return "In attesa di invalidità" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("DisablePending.Label") Else Return "Disable Pending" End If Case DismPackageFeatureState.Staged If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Disabled" - Case "ESN" - Return "Deshabilitado" - Case "FRA" - Return "Désactivée" - Case "PTB", "PTG" - Return "Desativado" - Case "ITA" - Return "Disabili" - End Select - Case 1 - Return "Disabled" - Case 2 - Return "Deshabilitado" - Case 3 - Return "Désactivée" - Case 4 - Return "Desativado" - Case 5 - Return "Disabili" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Staged.Label") Else Return "Disabled" End If Case DismPackageFeatureState.Removed Or DismPackageFeatureState.Resolved If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Removed" - Case "ESN" - Return "Eliminado" - Case "FRA" - Return "Supprimée" - Case "PTB", "PTG" - Return "Removido" - Case "ITA" - Return "Rimosso" - End Select - Case 1 - Return "Removed" - Case 2 - Return "Eliminado" - Case 3 - Return "Supprimée" - Case 4 - Return "Removido" - Case 5 - Return "Rimosso" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Removed.Label") Else Return "Removed" End If Case DismPackageFeatureState.Installed If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Enabled" - Case "ESN" - Return "Habilitado" - Case "FRA" - Return "Activée" - Case "PTB", "PTG" - Return "Ativado" - Case "ITA" - Return "Abilitato" - End Select - Case 1 - Return "Enabled" - Case 2 - Return "Habilitado" - Case 3 - Return "Activée" - Case 4 - Return "Ativado" - Case 5 - Return "Abilitato" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Installed.Label") Else Return "Enabled" End If Case DismPackageFeatureState.InstallPending If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Enable Pending" - Case "ESN" - Return "Habilitación pendiente" - Case "FRA" - Return "Activation en cours" - Case "PTB", "PTG" - Return "Ativação pendente" - Case "ITA" - Return "In attesa di abilitazione" - End Select - Case 1 - Return "Enable Pending" - Case 2 - Return "Habilitación pendiente" - Case 3 - Return "Activation en cours" - Case 4 - Return "Ativação pendente" - Case 5 - Return "In attesa di abilitazione" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("EnablePending.Label") Else Return "Enable Pending" End If Case DismPackageFeatureState.Superseded If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Superseded" - Case "ESN" - Return "Sustituido" - Case "FRA" - Return "Remplacée" - Case "PTB", "PTG" - Return "Substituído" - Case "ITA" - Return "Sostituito" - End Select - Case 1 - Return "Superseded" - Case 2 - Return "Sustituido" - Case 3 - Return "Remplacée" - Case 4 - Return "Substituído" - Case 5 - Return "Sostituito" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Superseded.Label") Else Return "Superseded" End If Case DismPackageFeatureState.PartiallyInstalled If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Partially Installed" - Case "ESN" - Return "Instalado parcialmente" - Case "FRA" - Return "Partiellement installée" - Case "PTB", "PTG" - Return "Parcialmente instalado" - Case "ITA" - Return "Parzialmente installato" - End Select - Case 1 - Return "Partially Installed" - Case 2 - Return "Instalado parcialmente" - Case 3 - Return "Partiellement installée" - Case 4 - Return "Parcialmente instalado" - Case 5 - Return "Parzialmente installato" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Partially.Installed.Label") Else Return "Partially Installed" End If @@ -718,91 +214,19 @@ Namespace Utilities Select Case RestartType Case DismRestartType.No If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "A restart is not required" - Case "ESN" - Return "No se requiere un reinicio" - Case "FRA" - Return "Un redémarrage n'est pas nécessaire" - Case "PTB", "PTG" - Return "Não é necessário reiniciar" - Case "ITA" - Return "Non è necessario un riavvio" - End Select - Case 1 - Return "A restart is not required" - Case 2 - Return "No se requiere un reinicio" - Case 3 - Return "Un redémarrage n'est pas nécessaire" - Case 4 - Return "Não é necessário reiniciar" - Case 5 - Return "Non è necessario un riavvio" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("NotRequired.Label") Else Return "A restart is not required" End If Case DismRestartType.Possible If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "A restart may be required" - Case "ESN" - Return "Puede requerirse un reinicio" - Case "FRA" - Return "Un redémarrage peut être nécessaire" - Case "PTB", "PTG" - Return "Poderá ser necessário um reinício" - Case "ITA" - Return "Potrebbe essere necessario un riavvio" - End Select - Case 1 - Return "A restart may be required" - Case 2 - Return "Puede requerirse un reinicio" - Case 3 - Return "Un redémarrage peut être nécessaire" - Case 4 - Return "Poderá ser necessário um reinício" - Case 5 - Return "Potrebbe essere necessario un riavvio" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("May.Required.Label") Else Return "A restart may be required" End If Case DismRestartType.Required If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "A restart is required" - Case "ESN" - Return "Se requiere un reinicio" - Case "FRA" - Return "Un redémarrage est nécessaire" - Case "PTB", "PTG" - Return "É necessário um reinício" - Case "ITA" - Return "È necessario un riavvio" - End Select - Case 1 - Return "A restart is required" - Case 2 - Return "Se requiere un reinicio" - Case 3 - Return "Un redémarrage est nécessaire" - Case 4 - Return "É necessário um reinício" - Case 5 - Return "È necessario un riavvio" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Required.Label") Else Return "A restart is required" End If @@ -810,65 +234,17 @@ Namespace Utilities Return Nothing End Function - Shared Function CastDismApplicabilityStatus(AppState As Boolean, Optional Translate As Boolean = False) As String + Shared Function Applicability(AppState As Boolean, Optional Translate As Boolean = False) As String Select Case AppState Case True If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Yes" - Case "ESN" - Return "Sí" - Case "FRA" - Return "Oui" - Case "PTB", "PTG" - Return "Sim" - Case "ITA" - Return "Sì" - End Select - Case 1 - Return "Yes" - Case 2 - Return "Sí" - Case 3 - Return "Oui" - Case 4 - Return "Sim" - Case 5 - Return "Sì" - End Select + Return LocalizationService.ForSection("Casters.Applicability")("Yes.Button") Else Return "Yes" End If Case False If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "No" - Case "ESN" - Return "No" - Case "FRA" - Return "Non" - Case "PTB", "PTG" - Return "Não" - Case "ITA" - Return "No" - End Select - Case 1 - Return "No" - Case 2 - Return "No" - Case 3 - Return "Non" - Case 4 - Return "Não" - Case 5 - Return "No" - End Select + Return LocalizationService.ForSection("Casters.Applicability")("No.Button") Else Return "No" End If @@ -880,451 +256,91 @@ Namespace Utilities Select Case RelType Case DismReleaseType.CriticalUpdate If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Critical update" - Case "ESN" - Return "Actualización crítica" - Case "FRA" - Return "Mise à jour critique" - Case "PTB", "PTG" - Return "Atualização crítica" - Case "ITA" - Return "Aggiornamento critico" - End Select - Case 1 - Return "Critical update" - Case 2 - Return "Actualización crítica" - Case 3 - Return "Mise à jour critique" - Case 4 - Return "Atualização crítica" - Case 5 - Return "Aggiornamento critico" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("CriticalUpdate.Label") Else Return "Critical update" End If Case DismReleaseType.Driver If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Driver" - Case "ESN" - Return "Controlador" - Case "FRA" - Return "Pilote" - Case "PTB", "PTG" - Return "Controlador" - Case "ITA" - Return "Driver" - End Select - Case 1 - Return "Driver" - Case 2 - Return "Controlador" - Case 3 - Return "Pilote" - Case 4 - Return "Controlador" - Case 5 - Return "Driver" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Driver.Label") Else Return "Driver" End If Case DismReleaseType.FeaturePack If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Feature Pack" - Case "ESN" - Return "Paquete de características" - Case "FRA" - Return "Pack de caractéristiques" - Case "PTB", "PTG" - Return "Pacote de características" - Case "ITA" - Return "Pacchetto di caratteristiche" - End Select - Case 1 - Return "Feature Pack" - Case 2 - Return "Paquete de características" - Case 3 - Return "Pack de caractéristiques" - Case 4 - Return "Pacote de características" - Case 5 - Return "Pacchetto di caratteristiche" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("FeaturePack.Label") Else Return "Feature Pack" End If Case DismReleaseType.Foundation If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Foundation package" - Case "ESN" - Return "Paquete de fundación" - Case "FRA" - Return "Paquet de base" - Case "PTB", "PTG" - Return "Pacote de fundação" - Case "ITA" - Return "Pacchetto di fondazione" - End Select - Case 1 - Return "Foundation package" - Case 2 - Return "Paquete de fundación" - Case 3 - Return "Paquet de base" - Case 4 - Return "Pacote de fundação" - Case 5 - Return "Pacchetto di fondazione" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Foundation.Package.Label") Else Return "Foundation package" End If Case DismReleaseType.Hotfix If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Hotfix" - Case "ESN" - Return "Corrección de fallos" - Case "FRA" - Return "Correctif" - Case "PTB", "PTG" - Return "Correção" - Case "ITA" - Return "Correzione di bug" - End Select - Case 1 - Return "Hotfix" - Case 2 - Return "Corrección de fallos" - Case 3 - Return "Correctif" - Case 4 - Return "Correção" - Case 5 - Return "Correzione di bug" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Hotfix.Label") Else Return "Hotfix" End If Case DismReleaseType.LanguagePack If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Language pack" - Case "ESN" - Return "Paquete de idiomas" - Case "FRA" - Return "Pack linguistique" - Case "PTB", "PTG" - Return "Pacote de idiomas" - Case "ITA" - Return "Pacchetto lingua" - End Select - Case 1 - Return "Language pack" - Case 2 - Return "Paquete de idiomas" - Case 3 - Return "Pack linguistique" - Case 4 - Return "Pacote de idiomas" - Case 5 - Return "Pacchetto lingua" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("LanguagePack.Label") Else Return "Language pack" End If Case DismReleaseType.LocalPack If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Local pack" - Case "ESN" - Return "Paquete local" - Case "FRA" - Return "Paquet local" - Case "PTB", "PTG" - Return "Pacote local" - Case "ITA" - Return "Pacchetto locale" - End Select - Case 1 - Return "Local pack" - Case 2 - Return "Paquete local" - Case 3 - Return "Paquet local" - Case 4 - Return "Pacote local" - Case 5 - Return "Pacchetto locale" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("LocalPack.Label") Else Return "Local pack" End If Case DismReleaseType.OnDemandPack If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "On Demand pack" - Case "ESN" - Return "Paquete de funcionalidad" - Case "FRA" - Return "Paquet de capacités" - Case "PTB", "PTG" - Return "Pacote de capacidades" - Case "ITA" - Return "Pacchetto di capacità" - End Select - Case 1 - Return "On Demand pack" - Case 2 - Return "Paquete de funcionalidad" - Case 3 - Return "Paquet de capacités" - Case 4 - Return "Pacote de capacidades" - Case 5 - Return "Pacchetto di capacità" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("DemandPack.Label") Else Return "On Demand pack" End If Case DismReleaseType.Other If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Other" - Case "ESN" - Return "Otros" - Case "FRA" - Return "Autres" - Case "PTB", "PTG" - Return "Outros" - Case "ITA" - Return "Altro" - End Select - Case 1 - Return "Other" - Case 2 - Return "Otros" - Case 3 - Return "Autres" - Case 4 - Return "Outros" - Case 5 - Return "Altro" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Other.Label") Else Return "Other" End If Case DismReleaseType.Product If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Product" - Case "ESN" - Return "Producto" - Case "FRA" - Return "Produit" - Case "PTB", "PTG" - Return "Produto" - Case "ITA" - Return "Prodotto" - End Select - Case 1 - Return "Product" - Case 2 - Return "Producto" - Case 3 - Return "Produit" - Case 4 - Return "Produto" - Case 5 - Return "Prodotto" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Product.Label") Else Return "Product" End If Case DismReleaseType.SecurityUpdate If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Security update" - Case "ESN" - Return "Actualización de seguridad" - Case "FRA" - Return "Mise à jour de la sécurité" - Case "PTB", "PTG" - Return "Atualização de segurança" - Case "ITA" - Return "Aggiornamento della sicurezza" - End Select - Case 1 - Return "Security update" - Case 2 - Return "Actualización de seguridad" - Case 3 - Return "Mise à jour de la sécurité" - Case 4 - Return "Atualização de segurança" - Case 5 - Return "Aggiornamento della sicurezza" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("SecurityUpdate.Label") Else Return "Security update" End If Case DismReleaseType.ServicePack If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Service Pack" - Case "ESN" - Return "Service Pack" - Case "FRA" - Return "Service Pack" - Case "PTB", "PTG" - Return "Service Pack" - Case "ITA" - Return "Service Pack" - End Select - Case 1 - Return "Service Pack" - Case 2 - Return "Service Pack" - Case 3 - Return "Service Pack" - Case 4 - Return "Service Pack" - Case 5 - Return "Service Pack" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("ServicePack.Label") Else Return "Service Pack" End If Case DismReleaseType.SoftwareUpdate If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Software update" - Case "ESN" - Return "Actualización de software" - Case "FRA" - Return "Mise à jour du logiciel" - Case "PTB", "PTG" - Return "Atualização do software" - Case "ITA" - Return "Aggiornamento software" - End Select - Case 1 - Return "Software update" - Case 2 - Return "Actualización de software" - Case 3 - Return "Mise à jour du logiciel" - Case 4 - Return "Atualização do software" - Case 5 - Return "Aggiornamento software" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("SoftwareUpdate.Label") Else Return "Software update" End If Case DismReleaseType.Update If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Update" - Case "ESN" - Return "Actualización" - Case "FRA" - Return "Mise à jour" - Case "PTB", "PTG" - Return "Atualização" - Case "ITA" - Return "Aggiornamento" - End Select - Case 1 - Return "Update" - Case 2 - Return "Actualización" - Case 3 - Return "Mise à jour" - Case 4 - Return "Atualização" - Case 5 - Return "Aggiornamento" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("Update.Label") Else Return "Update" End If Case DismReleaseType.UpdateRollup If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Update rollup" - Case "ESN" - Return "Actualización acumulativa" - Case "FRA" - Return "Mise à jour cumulative" - Case "PTB", "PTG" - Return "Atualização cumulativa" - Case "ITA" - Return "Aggiornamento cumulativo" - End Select - Case 1 - Return "Update rollup" - Case 2 - Return "Actualización acumulativa" - Case 3 - Return "Mise à jour cumulative" - Case 4 - Return "Atualização cumulativa" - Case 5 - Return "Aggiornamento cumulativo" - End Select + Return LocalizationService.ForSection("Casters.Cast.DISM")("UpdateRollup.Label") Else Return "Update rollup" End If @@ -1368,95 +384,23 @@ Namespace Utilities Return obtainedReleaseType End Function - Shared Function CastDismFullyOfflineInstallationType(foiType As DismFullyOfflineInstallableType, Optional Translate As Boolean = False) As String + Shared Function OfflineInstallType(foiType As DismFullyOfflineInstallableType, Optional Translate As Boolean = False) As String Select Case foiType Case DismFullyOfflineInstallableType.FullyOfflineNotInstallable If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "A boot up to the target image is required to fully install this package" - Case "ESN" - Return "Se requiere un arranque a la imagen de destino para instalar este paquete por completo" - Case "FRA" - Return "Un démarrage sur l'image cible est nécessaire pour installer complètement ce paquet." - Case "PTB", "PTG" - Return "É necessário um arranque para a imagem de destino para instalar completamente este pacote" - Case "ITA" - Return "Per installare completamente questo pacchetto è necessario un avvio dell'immagine di destinazione." - End Select - Case 1 - Return "A boot up to the target image is required to fully install this package" - Case 2 - Return "Se requiere un arranque a la imagen de destino para instalar este paquete por completo" - Case 3 - Return "Un démarrage sur l'image cible est nécessaire pour installer complètement ce paquet." - Case 4 - Return "É necessário um arranque para a imagem de destino para instalar completamente este pacote" - Case 5 - Return "Per installare completamente questo pacchetto è necessario un avvio dell'immagine di destinazione." - End Select + Return LocalizationService.ForSection("Casters.OfflineInstall.Boot")("Required.Message") Else Return "A boot up to the target image is required to fully install this package" End If Case DismFullyOfflineInstallableType.FullyOfflineInstallableUndetermined If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "A boot up to the target image may be required to fully install this package" - Case "ESN" - Return "Se podría requerir un arranque a la imagen de destino para instalar este paquete por completo" - Case "FRA" - Return "Un démarrage sur l'image cible peut être nécessaire pour installer complètement ce paquet." - Case "PTB", "PTG" - Return "Poderá ser necessário um arranque para a imagem de destino para instalar completamente este pacote" - Case "ITA" - Return "Per installare completamente questo pacchetto potrebbe essere necessario un avvio dell'immagine di destinazione." - End Select - Case 1 - Return "A boot up to the target image may be required to fully install this package" - Case 2 - Return "Se podría requerir un arranque a la imagen de destino para instalar este paquete por completo" - Case 3 - Return "Un démarrage sur l'image cible peut être nécessaire pour installer complètement ce paquet." - Case 4 - Return "Poderá ser necessário um arranque para a imagem de destino para instalar completamente este pacote" - Case 5 - Return "Per installare completamente questo pacchetto potrebbe essere necessario un avvio dell'immagine di destinazione." - End Select + Return LocalizationService.ForSection("Casters.OfflineInstall")("FullyOffline.Message") Else Return "A boot up to the target image may be required to fully install this package" End If Case DismFullyOfflineInstallableType.FullyOfflineInstallable If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "A boot up to the target image is not required to fully install this package" - Case "ESN" - Return "No se requiere un arranque a la imagen de destino para instalar este paquete por completo" - Case "FRA" - Return "Il n'est pas nécessaire de démarrer sur l'image cible pour installer complètement ce paquet." - Case "PTB", "PTG" - Return "Não é necessário arrancar com a imagem de destino para instalar completamente este pacote" - Case "ITA" - Return "Non è necessario un avvio dell'immagine di destinazione per installare completamente questo pacchetto." - End Select - Case 1 - Return "A boot up to the target image is not required to fully install this package" - Case 2 - Return "No se requiere un arranque a la imagen de destino para instalar este paquete por completo" - Case 3 - Return "Il n'est pas nécessaire de démarrer sur l'image cible pour installer complètement ce paquet." - Case 4 - Return "Não é necessário arrancar com a imagem de destino para instalar completamente este pacote" - Case 5 - Return "Non è necessario un avvio dell'immagine di destinazione per installare completamente questo pacchetto." - End Select + Return LocalizationService.ForSection("Casters.OfflineInstall.Boot")("NotRequired.Message") Else Return "A boot up to the target image is not required to fully install this package" End If @@ -1470,61 +414,13 @@ Namespace Utilities Return "CD-ROM" Case DriveType.Fixed If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Fixed" - Case "ESN" - Return "Fijo" - Case "FRA" - Return "Fixe" - Case "PTB", "PTG" - Return "Fixo" - Case "ITA" - Return "Fisso" - End Select - Case 1 - Return "Fixed" - Case 2 - Return "Fijo" - Case 3 - Return "Fixe" - Case 4 - Return "Fixo" - Case 5 - Return "Fisso" - End Select + Return LocalizationService.ForSection("Casters.CastDriveType")("Fixed.Label") Else Return "Fixed" End If Case DriveType.Network If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Network" - Case "ESN" - Return "Red" - Case "FRA" - Return "Réseau" - Case "PTB", "PTG" - Return "Rede" - Case "ITA" - Return "Rete" - End Select - Case 1 - Return "Network" - Case 2 - Return "Red" - Case 3 - Return "Réseau" - Case 4 - Return "Rede" - Case 5 - Return "Rete" - End Select + Return LocalizationService.ForSection("Casters.CastDriveType")("Network.Label") Else Return "Network" End If @@ -1534,61 +430,13 @@ Namespace Utilities Return "RAM" Case DriveType.Removable If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Removable" - Case "ESN" - Return "Removible" - Case "FRA" - Return "Amovible" - Case "PTB", "PTG" - Return "Removível" - Case "ITA" - Return "Rimovibile" - End Select - Case 1 - Return "Removable" - Case 2 - Return "Removible" - Case 3 - Return "Amovible" - Case 4 - Return "Removível" - Case 5 - Return "Rimovibile" - End Select + Return LocalizationService.ForSection("Casters.CastDriveType")("Removable.Label") Else Return "Removable" End If Case DriveType.Unknown If Translate Then - Select Case MainForm.Language - Case 0 - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - Return "Unknown" - Case "ESN" - Return "Desconocido" - Case "FRA" - Return "Inconnu" - Case "PTB", "PTG" - Return "Desconhecido" - Case "ITA" - Return "Sconosciuto" - End Select - Case 1 - Return "Unknown" - Case 2 - Return "Desconocido" - Case 3 - Return "Inconnu" - Case 4 - Return "Desconhecido" - Case 5 - Return "Sconosciuto" - End Select + Return LocalizationService.ForSection("Casters.CastDriveType")("Unknown.Label") Else Return "Unknown" End If diff --git a/Utilities/FileAssociations/FileAssociationHelper.vb b/Utilities/FileAssociations/FileAssociationHelper.vb index 8927f9496..f9d8308ca 100644 --- a/Utilities/FileAssociations/FileAssociationHelper.vb +++ b/Utilities/FileAssociations/FileAssociationHelper.vb @@ -13,6 +13,7 @@ Module FileAssociationHelper Private Const SHCNE_ASSOCCHANGED As Integer = &H8000000 Private Const SHCNF_IDLIST As Integer = 0 + Private Const UserClassesRegistryPath As String = "Software\Classes" Private Sub RefreshAfterAssociationChange() NativeMethods.SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero) @@ -22,44 +23,44 @@ Module FileAssociationHelper If String.IsNullOrEmpty(FileExtension) Then Throw New ArgumentNullException(FileExtension) If String.IsNullOrEmpty(FileType) Then Throw New ArgumentNullException(FileType) If String.IsNullOrEmpty(AssociationCommand) Then Throw New ArgumentNullException(AssociationCommand) + If Not String.IsNullOrWhiteSpace(AssociationIconPath) AndAlso Not File.Exists(AssociationIconPath) Then + DynaLog.LogMessage("The requested association icon does not exist: " & AssociationIconPath) + Return False + End If - Using cmdProc As New Process() With { - .StartInfo = New ProcessStartInfo() With { - .FileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "system32", "cmd.exe"), - .CreateNoWindow = Not Debugger.IsAttached, - .WindowStyle = If(Debugger.IsAttached, ProcessWindowStyle.Normal, ProcessWindowStyle.Hidden) - } - } - cmdProc.StartInfo.Arguments = String.Format("/c assoc {0}={1}", FileExtension, FileType) - cmdProc.Start() - cmdProc.WaitForExit() - If cmdProc.ExitCode <> 0 Then Return False - - ' Set the file type itself - cmdProc.StartInfo.Arguments = String.Format("/c ftype {0}={1}", FileType, AssociationCommand) - cmdProc.Start() - cmdProc.WaitForExit() - If cmdProc.ExitCode <> 0 Then Return False - - ' Set the description for the association - Try - Dim AssocRk As RegistryKey = Registry.ClassesRoot.OpenSubKey(FileType, True) - AssocRk.SetValue(Nothing, AssociationDescription, RegistryValueKind.String) - If (AssociationIconPath <> "" AndAlso File.Exists(AssociationIconPath)) OrElse ForceIconReset Then - ' We have defined an icon for this association; use it or else we'll have a default file icon. - Dim DefaultAssociationIcon As RegistryKey = AssocRk.OpenSubKey("DefaultIcon", True) - DefaultAssociationIcon.SetValue(Nothing, AssociationIconPath, RegistryValueKind.String) - DefaultAssociationIcon.Close() - End If - AssocRk.Close() - Catch ex As Exception - - End Try + Try + DynaLog.LogMessage("Registering per-user file association for extension " & FileExtension & "...") + Using userClasses As RegistryKey = Registry.CurrentUser.CreateSubKey(UserClassesRegistryPath) + Using extensionKey As RegistryKey = userClasses.CreateSubKey(FileExtension) + extensionKey.SetValue(Nothing, FileType, RegistryValueKind.String) + Using openWithKey As RegistryKey = extensionKey.CreateSubKey("OpenWithProgids") + openWithKey.SetValue(FileType, "", RegistryValueKind.String) + End Using + End Using + + Using fileTypeKey As RegistryKey = userClasses.CreateSubKey(FileType) + fileTypeKey.SetValue(Nothing, AssociationDescription, RegistryValueKind.String) + Using commandKey As RegistryKey = fileTypeKey.CreateSubKey("Shell\Open\Command") + commandKey.SetValue(Nothing, AssociationCommand, RegistryValueKind.String) + End Using + + If Not String.IsNullOrWhiteSpace(AssociationIconPath) Then + Using iconKey As RegistryKey = fileTypeKey.CreateSubKey("DefaultIcon") + iconKey.SetValue(Nothing, AssociationIconPath, RegistryValueKind.String) + End Using + ElseIf ForceIconReset Then + fileTypeKey.DeleteSubKeyTree("DefaultIcon", False) + End If + End Using + End Using - ' Force a refresh of the icons RefreshAfterAssociationChange() - End Using - Return True + DynaLog.LogMessage("The per-user file association was registered successfully.") + Return True + Catch ex As Exception + DynaLog.LogMessage("Could not register the per-user file association. Error message: " & ex.Message) + Return False + End Try End Function Public Function SetFileAssociation(Extension As String, Type As String, Command As String, Description As String) As Boolean @@ -74,30 +75,40 @@ Module FileAssociationHelper If String.IsNullOrEmpty(FileExtension) Then Throw New ArgumentNullException(FileExtension) If String.IsNullOrEmpty(FileType) Then Throw New ArgumentNullException(FileType) - Using cmdProc As New Process() With { - .StartInfo = New ProcessStartInfo() With { - .FileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "system32", "cmd.exe"), - .CreateNoWindow = Not Debugger.IsAttached, - .WindowStyle = If(Debugger.IsAttached, ProcessWindowStyle.Normal, ProcessWindowStyle.Hidden) - } - } - cmdProc.StartInfo.Arguments = String.Format("/c assoc {0}=", FileExtension) - cmdProc.Start() - cmdProc.WaitForExit() - If cmdProc.ExitCode <> 0 Then Return False - - ' Set the file type itself - cmdProc.StartInfo.Arguments = String.Format("/c ftype {0}=", FileType) - cmdProc.Start() - cmdProc.WaitForExit() - If cmdProc.ExitCode <> 0 Then Return False - - RegistryHelper.RemoveRegistryItem(String.Format("HKCR\{0}", FileType), "/f") - - ' Force a refresh of the icons + Try + DynaLog.LogMessage("Removing per-user file association for extension " & FileExtension & "...") + Using userClasses As RegistryKey = Registry.CurrentUser.CreateSubKey(UserClassesRegistryPath) + Dim removeEmptyExtensionKey As Boolean = False + Using extensionKey As RegistryKey = userClasses.OpenSubKey(FileExtension, True) + If extensionKey IsNot Nothing Then + Dim registeredType As Object = extensionKey.GetValue(Nothing) + If registeredType IsNot Nothing AndAlso registeredType.ToString().Equals(FileType, StringComparison.OrdinalIgnoreCase) Then + extensionKey.DeleteValue("", False) + End If + Using openWithKey As RegistryKey = extensionKey.OpenSubKey("OpenWithProgids", True) + If openWithKey IsNot Nothing Then + openWithKey.DeleteValue(FileType, False) + If openWithKey.GetValueNames().Length = 0 AndAlso openWithKey.GetSubKeyNames().Length = 0 Then + openWithKey.Close() + extensionKey.DeleteSubKeyTree("OpenWithProgids", False) + End If + End If + End Using + removeEmptyExtensionKey = extensionKey.GetValueNames().Length = 0 AndAlso + extensionKey.GetSubKeyNames().Length = 0 + End If + End Using + If removeEmptyExtensionKey Then userClasses.DeleteSubKeyTree(FileExtension, False) + userClasses.DeleteSubKeyTree(FileType, False) + End Using + RefreshAfterAssociationChange() - End Using - Return True + DynaLog.LogMessage("The per-user file association was removed successfully.") + Return True + Catch ex As Exception + DynaLog.LogMessage("Could not remove the per-user file association. Error message: " & ex.Message) + Return False + End Try End Function Public Function RemoveFileAssociation(Extension As String, Type As String) As Boolean @@ -105,30 +116,52 @@ Module FileAssociationHelper End Function Public Function GetFileAssociationCmdline(FileType As String) As String - Dim assocRk As RegistryKey = Nothing + If String.IsNullOrWhiteSpace(FileType) Then Return "" + + Dim associationRegistryPath As String = String.Format("{0}\Shell\Open\Command", FileType) Dim cmdline As String = "" + Try - assocRk = Registry.ClassesRoot.OpenSubKey(String.Format("{0}\Shell\Open\Command", FileType), False) - cmdline = assocRk.GetValue(Nothing, "") + Using assocRk As RegistryKey = Registry.ClassesRoot.OpenSubKey(associationRegistryPath, False) + If assocRk Is Nothing Then + DynaLog.LogMessage("File association command registry key was not found: HKCR\" & associationRegistryPath) + Return cmdline + End If + + Dim cmdlineValue As Object = assocRk.GetValue(Nothing) + If cmdlineValue IsNot Nothing Then + cmdline = cmdlineValue.ToString() + End If + End Using Catch ex As Exception DynaLog.LogMessage("Could not get association. Error message: " & ex.Message) - Finally - If assocRk IsNot Nothing Then assocRk.Close() End Try + Return cmdline End Function Public Function GetFileAssociationIconPath(FileType As String) As String - Dim defIconRk As RegistryKey = Nothing + If String.IsNullOrWhiteSpace(FileType) Then Return "" + + Dim associationIconRegistryPath As String = String.Format("{0}\DefaultIcon", FileType) Dim iconPath As String = "" + Try - defIconRk = Registry.ClassesRoot.OpenSubKey(String.Format("{0}\DefaultIcon", FileType), False) - iconPath = defIconRk.GetValue(Nothing, "") + Using defIconRk As RegistryKey = Registry.ClassesRoot.OpenSubKey(associationIconRegistryPath, False) + If defIconRk Is Nothing Then + DynaLog.LogMessage("File association icon registry key was not found: HKCR\" & associationIconRegistryPath) + Return iconPath + End If + + Dim iconPathValue As Object = defIconRk.GetValue(Nothing) + If iconPathValue IsNot Nothing Then + iconPath = iconPathValue.ToString() + End If + End Using Catch ex As Exception - DynaLog.LogMessage("Could not get association. Error message: " & ex.Message) - Finally - If defIconRk IsNot Nothing Then defIconRk.Close() + DynaLog.LogMessage("Could not get association icon. Error message: " & ex.Message) End Try + Return iconPath End Function diff --git a/Utilities/HttpServer.vb b/Utilities/HttpServer.vb index 0348e5e4b..a32d73c23 100644 --- a/Utilities/HttpServer.vb +++ b/Utilities/HttpServer.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports System.Net Imports System.Threading Imports System.Threading.Tasks @@ -29,7 +29,7 @@ Public Class DTHttpServer If IsListenerAlive() Then Exit Sub If Not Directory.Exists(_rootDir) Then - MessageBox.Show("Root directory " & ControlChars.Quote & _rootDir & ControlChars.Quote & " does not exist in the file system. The server cannot be started.", "Tour Server", MessageBoxButtons.OK, MessageBoxIcon.Error) + MessageBox.Show(LocalizationService.ForSection("HttpServer.Messages").Format("Root.Dir.Exist.Message", _rootDir), LocalizationService.ForSection("HttpServer.Messages")("TourServer.Label"), MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If diff --git a/Utilities/Language/LanguageHelper.vb b/Utilities/Language/LanguageHelper.vb new file mode 100644 index 000000000..f87178ff0 --- /dev/null +++ b/Utilities/Language/LanguageHelper.vb @@ -0,0 +1,11 @@ +Module LanguageHelper + + Sub LoadLanguageFiles() + LocalizationService.LoadLanguageFiles() + End Sub + + Function GetValueFromLanguageData(ItemKey As String) As String + Return LocalizationService.T(ItemKey) + End Function + +End Module diff --git a/Utilities/Language/LocalizationService.vb b/Utilities/Language/LocalizationService.vb new file mode 100644 index 000000000..600e380e3 --- /dev/null +++ b/Utilities/Language/LocalizationService.vb @@ -0,0 +1,876 @@ +Imports Microsoft.Win32 +Imports Microsoft.VisualBasic.ControlChars +Imports System.Collections.Generic +Imports System.Diagnostics +Imports System.Globalization +Imports System.IO +Imports System.Text +Imports System.Text.RegularExpressions +Imports System.Threading +Imports System.Windows.Forms + +Public Class LocalizationLanguageInfo + + Public Property Code As String + Public Property Name As String + Public Property Author As String + Public Property FilePath As String + + Public Overrides Function ToString() As String + If String.IsNullOrWhiteSpace(Name) Then Return Code + If String.IsNullOrWhiteSpace(Code) Then Return Name + Return Name + End Function + +End Class + +Public Class MissingLocalizationItem + + Public Property CultureCode As String + Public Property ItemKey As String + +End Class + +Public Class MissingLocalizationException + Inherits InvalidOperationException + + Public Sub New(message As String) + MyBase.New(message) + End Sub +End Class + +Friend Class LocalizationLanguageData + + Public Property CultureCode As String + Public Property LanguageName As String + Public Property LanguageAuthor As String + Public Property FilePath As String + Public ReadOnly Property Sections As Dictionary(Of String, Dictionary(Of String, String)) + + Public Sub New() + Sections = New Dictionary(Of String, Dictionary(Of String, String))(StringComparer.OrdinalIgnoreCase) + End Sub + +End Class + +Public Class SectionLocalizer + + Private ReadOnly SectionNameValue As String + + Friend Sub New(sectionName As String) + If String.IsNullOrWhiteSpace(sectionName) Then Throw New ArgumentException("Localization section name cannot be empty.", NameOf(sectionName)) + SectionNameValue = sectionName.Trim() + End Sub + + Public ReadOnly Property SectionName As String + Get + Return SectionNameValue + End Get + End Property + + Default Public ReadOnly Property Item(itemKey As String) As String + Get + Return LocalizationService.TForSection(SectionNameValue, itemKey, New Object() {}) + End Get + End Property + + Public Function Format(itemKey As String, ParamArray args As Object()) As String + Return LocalizationService.TForSection(SectionNameValue, itemKey, args) + End Function + + Public Function Upper(itemKey As String, useUpperCase As Boolean, ParamArray args As Object()) As String + Dim value As String = LocalizationService.TForSection(SectionNameValue, itemKey, args) + If useUpperCase Then Return value.ToUpper(CultureInfo.CurrentCulture) + Return value + End Function + +End Class + +Module LocalizationService + + Public Const DefaultCultureCode As String = "en-US" + + Private ReadOnly LanguageFiles As New Dictionary(Of String, LocalizationLanguageData)(StringComparer.OrdinalIgnoreCase) + Private ReadOnly MissingItems As New List(Of MissingLocalizationItem)() + Private ReadOnly MissingItemsLock As New Object() + Private CurrentCultureCodeValue As String = DefaultCultureCode + Private FilesLoaded As Boolean = False + + Public ReadOnly Property CurrentCultureCode As String + Get + Return CurrentCultureCodeValue + End Get + End Property + + Public ReadOnly Property HasLanguageData As Boolean + Get + Return LanguageFiles.Count > 0 + End Get + End Property + + Public ReadOnly Property LoadedCultureCodes As String + Get + If LanguageFiles.Count = 0 Then Return "" + Dim cultureCodes As New List(Of String)(LanguageFiles.Keys) + cultureCodes.Sort(StringComparer.OrdinalIgnoreCase) + Return String.Join(", ", cultureCodes.ToArray()) + End Get + End Property + + Public Sub Initialize(Optional cultureCode As String = Nothing) + LoadLanguageFiles() + + Dim requestedCultureCode As String = cultureCode + If String.IsNullOrWhiteSpace(requestedCultureCode) Then requestedCultureCode = GetCommandLineCultureCode() + If String.IsNullOrWhiteSpace(requestedCultureCode) Then requestedCultureCode = GetSingleLocalLanguageCode() + If String.IsNullOrWhiteSpace(requestedCultureCode) Then requestedCultureCode = GetPersistedCultureCode() + If String.IsNullOrWhiteSpace(requestedCultureCode) Then requestedCultureCode = DefaultCultureCode + + SetLanguageByCultureCode(requestedCultureCode) + End Sub + + Public Sub LoadLanguageFiles() + LanguageFiles.Clear() + SyncLock MissingItemsLock + MissingItems.Clear() + End SyncLock + + For Each languageDirectory As String In CandidateLanguageDirectories() + Dim languageFilePaths As String() + Try + languageFilePaths = Directory.GetFiles(languageDirectory, "*.ini", SearchOption.TopDirectoryOnly) + Array.Sort(languageFilePaths, StringComparer.OrdinalIgnoreCase) + Catch ex As Exception + Trace.WriteLine("Could not enumerate localization directory " & languageDirectory & ". " & ex.Message) + Continue For + End Try + + For Each languageFile As String In languageFilePaths + Try + Dim languageData As LocalizationLanguageData = ParseLanguageFile(languageFile) + If languageData Is Nothing OrElse String.IsNullOrWhiteSpace(languageData.CultureCode) Then Continue For + + If Not LanguageFiles.ContainsKey(languageData.CultureCode) Then + LanguageFiles.Add(languageData.CultureCode, languageData) + End If + Catch ex As Exception + Trace.WriteLine("Could not parse localization file " & languageFile & ". " & ex.Message) + End Try + Next + Next + + FilesLoaded = True + Trace.WriteLine("Loaded localization cultures: " & LoadedCultureCodes) + End Sub + + Public Sub SetLanguageByCultureCode(cultureCode As String) + EnsureLoaded() + CurrentCultureCodeValue = NormalizeCultureCode(cultureCode) + ApplyCurrentCulture(CurrentCultureCodeValue) + End Sub + + Public Function ResolveCultureCode(settingValue As Object) As String + If settingValue Is Nothing Then Return DefaultCultureCode + + Dim rawValue As String = settingValue.ToString().Replace(Quote, "").Trim() + If String.IsNullOrWhiteSpace(rawValue) Then Return DefaultCultureCode + + Return NormalizeCultureCode(rawValue) + End Function + + Public Function ResolveStartupCultureCode(settingValue As Object) As String + Dim commandLineCultureCode As String = GetCommandLineCultureCode() + If Not String.IsNullOrWhiteSpace(commandLineCultureCode) Then Return NormalizeCultureCode(commandLineCultureCode) + + Return ResolveCultureCode(settingValue) + End Function + + Public Function NormalizeCultureCode(cultureCode As String) As String + EnsureLoaded() + If String.IsNullOrWhiteSpace(cultureCode) Then Return DefaultCultureCode + + Dim requestedCultureCode As String = cultureCode.Trim().Trim(ChrW(34)) + For Each loadedCultureCode As String In LanguageFiles.Keys + If loadedCultureCode.Equals(requestedCultureCode, StringComparison.OrdinalIgnoreCase) Then Return loadedCultureCode + Next + + Return DefaultCultureCode + End Function + + Public Function GetMicrosoftLearnCultureCode() As String + Try + Dim culture As New CultureInfo(CurrentCultureCodeValue) + Return culture.Name.ToLowerInvariant() + Catch + Return DefaultCultureCode.ToLowerInvariant() + End Try + End Function + + Public Function GetLinkArea(fullText As String, linkText As String) As LinkArea + If fullText Is Nothing Then fullText = "" + If linkText Is Nothing Then linkText = "" + + Dim startIndex As Integer = fullText.IndexOf(linkText, StringComparison.CurrentCulture) + If startIndex < 0 Then Return New LinkArea(0, fullText.Length) + + Return New LinkArea(startIndex, linkText.Length) + End Function + + Public Function GetDocumentationLanguageCode() As String + Dim cultureCode As String = CurrentCultureCodeValue + If String.IsNullOrWhiteSpace(cultureCode) Then Return "en" + + Dim neutralCode As String = cultureCode.Split("-"c)(0).ToLowerInvariant() + Select Case neutralCode + Case "es", "fr", "pt", "it" + Return neutralCode + Case Else + Return "en" + End Select + End Function + + Public Function ForSection(sectionName As String) As SectionLocalizer + Return New SectionLocalizer(sectionName) + End Function + + Public Function GetLanguageCommandLineArgument() As String + Return "/language=" & Quote & CurrentCultureCodeValue & Quote + End Function + + Public Function TUpper(itemKey As String, useUpperCase As Boolean, ParamArray args As Object()) As String + Dim value As String = TForCulture(CurrentCultureCodeValue, itemKey, args) + If useUpperCase Then Return value.ToUpper(CultureInfo.CurrentCulture) + Return value + End Function + + Public Function TUpper(sectionName As String, itemName As String, useUpperCase As Boolean, ParamArray args As Object()) As String + Dim value As String = TForSection(sectionName, itemName, args) + If useUpperCase Then Return value.ToUpper(CultureInfo.CurrentCulture) + Return value + End Function + + Public Function T(itemKey As String, ParamArray args As Object()) As String + Return TForCulture(CurrentCultureCodeValue, itemKey, args) + End Function + + Public Function T(sectionName As String, itemName As String, ParamArray args As Object()) As String + Return TForSection(sectionName, itemName, args) + End Function + + Friend Function TForSection(sectionName As String, itemName As String, args As Object()) As String + EnsureLoaded() + + Dim value As String = FindExactValue(CurrentCultureCodeValue, sectionName, itemName) + If value Is Nothing Then + Dim itemKey As String = CombineKey(sectionName, itemName) + RegisterMissingItem(CurrentCultureCodeValue, itemKey) + Throw New MissingLocalizationException(BuildMissingLocalizationMessage(CurrentCultureCodeValue, itemKey, sectionName, itemName)) + End If + + Return FormatValue(CurrentCultureCodeValue, CombineKey(sectionName, itemName), value, args) + End Function + + Public Function GetMissingItems() As List(Of MissingLocalizationItem) + SyncLock MissingItemsLock + Return New List(Of MissingLocalizationItem)(MissingItems) + End SyncLock + End Function + + Public Function GetLanguageFilePath(cultureCode As String) As String + EnsureLoaded() + Dim normalizedCultureCode As String = NormalizeCultureCode(cultureCode) + If LanguageFiles.ContainsKey(normalizedCultureCode) Then Return LanguageFiles(normalizedCultureCode).FilePath + Return "" + End Function + + Public Function GetAvailableLanguages() As List(Of LocalizationLanguageInfo) + EnsureLoaded() + + Dim cultureCodes As New List(Of String)(LanguageFiles.Keys) + cultureCodes.Sort(StringComparer.OrdinalIgnoreCase) + + Dim languages As New List(Of LocalizationLanguageInfo)() + For Each cultureCode As String In cultureCodes + Dim data As LocalizationLanguageData = LanguageFiles(cultureCode) + languages.Add(New LocalizationLanguageInfo With { + .Code = cultureCode, + .Name = If(String.IsNullOrWhiteSpace(data.LanguageName), cultureCode, data.LanguageName), + .Author = data.LanguageAuthor, + .FilePath = data.FilePath + }) + Next + + Return languages + End Function + + Public Function ValidateLanguage(cultureCode As String, ByRef userMessage As String) As Boolean + EnsureLoaded() + userMessage = "" + + Dim requestedCultureCode As String = If(cultureCode, "").Trim().Trim(ChrW(34)) + If String.IsNullOrWhiteSpace(requestedCultureCode) OrElse Not LanguageFiles.ContainsKey(requestedCultureCode) Then + userMessage = "The requested language is not available." & Environment.NewLine & Environment.NewLine & + "Language code: " & If(String.IsNullOrWhiteSpace(requestedCultureCode), "", requestedCultureCode) & Environment.NewLine & + "Loaded languages: " & LoadedCultureCodes & Environment.NewLine & Environment.NewLine & + "Make sure the file has the .ini extension and contains [LanguageFileInformation] with a unique LanguageCode value." + Return False + End If + + If requestedCultureCode.Equals(DefaultCultureCode, StringComparison.OrdinalIgnoreCase) Then Return True + + If Not LanguageFiles.ContainsKey(DefaultCultureCode) Then + userMessage = "The reference language file could not be loaded." & Environment.NewLine & Environment.NewLine & + "Required language: " & DefaultCultureCode & Environment.NewLine & + "Expected file: language\" & DefaultCultureCode & ".ini" & Environment.NewLine & Environment.NewLine & + "Restore the original reference language file and try again." + Return False + End If + + Dim languageData As LocalizationLanguageData = LanguageFiles(requestedCultureCode) + Dim referenceData As LocalizationLanguageData = LanguageFiles(DefaultCultureCode) + Dim errors As New List(Of String)() + Dim warnings As New List(Of String)() + Dim missingCount As Integer = 0 + Dim unknownCount As Integer = 0 + + AddLanguageSyntaxIssues(languageData.FilePath, errors, warnings) + + For Each referenceSection In referenceData.Sections + For Each referenceItem In referenceSection.Value + Dim translatedValue As String = FindExactValue(languageData, referenceSection.Key, referenceItem.Key) + If translatedValue Is Nothing Then + missingCount += 1 + errors.Add("Missing required entry [" & referenceSection.Key & "] " & referenceItem.Key & ".") + Continue For + End If + + Dim referencePlaceholders As String = GetFormatPlaceholderSignature(referenceItem.Value) + Dim translatedPlaceholders As String = GetFormatPlaceholderSignature(translatedValue) + If Not referencePlaceholders.Equals(translatedPlaceholders, StringComparison.Ordinal) Then + errors.Add("Numbered placeholder mismatch in [" & referenceSection.Key & "] " & referenceItem.Key & + ". Expected {" & referencePlaceholders & "}; found {" & translatedPlaceholders & "}.") + End If + + Dim unknownControlTokens As String = GetUnknownControlTokens(translatedValue) + If unknownControlTokens <> "" Then + errors.Add("Unknown control token(s) in [" & referenceSection.Key & "] " & referenceItem.Key & + ": " & unknownControlTokens & ". Control tokens must not be translated.") + End If + Next + Next + + For Each translatedSection In languageData.Sections + For Each translatedItem In translatedSection.Value + If FindExactValue(referenceData, translatedSection.Key, translatedItem.Key) Is Nothing Then + unknownCount += 1 + warnings.Add("Unknown entry [" & translatedSection.Key & "] " & translatedItem.Key & ". Key and section names must not be translated.") + End If + Next + Next + + If errors.Count = 0 Then Return True + + Dim reportPath As String = WriteLanguageValidationReport(languageData, referenceData, errors, warnings) + Dim message As New StringBuilder() + message.AppendLine("The language file is incompatible with this DISMTools build or contains invalid entries. It was not applied, and DISMTools will keep using the previous language.") + message.AppendLine() + message.AppendLine("Language: " & requestedCultureCode) + message.AppendLine("File: " & languageData.FilePath) + message.AppendLine("Reference: " & referenceData.FilePath) + message.AppendLine("Errors: " & errors.Count.ToString(CultureInfo.InvariantCulture) & + " (missing required entries: " & missingCount.ToString(CultureInfo.InvariantCulture) & ")") + message.AppendLine("Unrecognized entries: " & unknownCount.ToString(CultureInfo.InvariantCulture)) + message.AppendLine() + message.AppendLine("What is wrong:") + + For index As Integer = 0 To Math.Min(errors.Count, 8) - 1 + message.AppendLine("- " & errors(index)) + Next + If errors.Count > 8 Then message.AppendLine("- ... and " & (errors.Count - 8).ToString(CultureInfo.InvariantCulture) & " more error(s).") + + message.AppendLine() + message.AppendLine("How to fix it:") + If missingCount > 0 AndAlso unknownCount > 0 Then + message.AppendLine("This file probably belongs to a different DISMTools version. Update DISMTools or use the language file included with this build.") + End If + message.AppendLine("Keep every section name and key exactly as written in en-US.ini. Translate only the text after the first '=' character. Do not remove or rename placeholders such as {0} or {1}.") + If reportPath <> "" Then + message.AppendLine() + message.AppendLine("Full validation report: " & reportPath) + End If + + userMessage = message.ToString().TrimEnd() + Return False + End Function + + Private Sub AddLanguageSyntaxIssues(filePath As String, errors As List(Of String), warnings As List(Of String)) + Dim currentSection As String = "" + Dim knownEntries As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase) + Dim lineNumber As Integer = 0 + + For Each rawLine As String In File.ReadAllLines(filePath, Encoding.UTF8) + lineNumber += 1 + Dim trimmedLine As String = rawLine.Trim() + If trimmedLine = "" OrElse trimmedLine.StartsWith(";") OrElse trimmedLine.StartsWith("#") Then Continue For + + If trimmedLine.StartsWith("[") AndAlso trimmedLine.EndsWith("]") Then + currentSection = trimmedLine.Substring(1, trimmedLine.Length - 2).Trim() + If currentSection = "" Then errors.Add("Line " & lineNumber.ToString(CultureInfo.InvariantCulture) & ": empty section name.") + Continue For + End If + + Dim separatorIndex As Integer = rawLine.IndexOf("="c) + If currentSection = "" OrElse separatorIndex <= 0 Then + errors.Add("Line " & lineNumber.ToString(CultureInfo.InvariantCulture) & ": malformed entry: " & trimmedLine) + Continue For + End If + + Dim itemName As String = rawLine.Substring(0, separatorIndex).Trim() + Dim entryIdentity As String = currentSection & ChrW(0) & itemName + If knownEntries.Contains(entryIdentity) Then + warnings.Add("Line " & lineNumber.ToString(CultureInfo.InvariantCulture) & ": duplicate entry [" & currentSection & "] " & itemName & ". The last value will be used.") + Else + knownEntries.Add(entryIdentity) + End If + Next + End Sub + + Private Function GetFormatPlaceholderSignature(value As String) As String + If value Is Nothing Then Return "" + + Dim placeholders As New List(Of String)() + For Each placeholder As Match In Regex.Matches(value, "\{(\d+)(?:[^{}]*)?\}") + placeholders.Add(placeholder.Groups(1).Value) + Next + placeholders.Sort(StringComparer.Ordinal) + Return String.Join(",", placeholders.ToArray()) + End Function + + Private Function GetUnknownControlTokens(value As String) As String + If value Is Nothing Then Return "" + + Dim unknownTokens As New List(Of String)() + For Each tokenMatch As Match In Regex.Matches(value, "\{[^{}\r\n]+\}") + Dim token As String = tokenMatch.Value + If Regex.IsMatch(token, "^\{\d+(?:,[^}:]+)?(?::[^{}]+)?\}$") Then Continue For + + Select Case token.ToLowerInvariant() + Case "{quot;}", "{lbrace;}", "{rbrace;}", "{crlf;}", "{space;}", "{tab;}", + "{count}", "{current}", "{currenttcont}", "{taskcount}" + Continue For + End Select + + If Not unknownTokens.Contains(token) Then unknownTokens.Add(token) + Next + + unknownTokens.Sort(StringComparer.Ordinal) + Return String.Join(", ", unknownTokens.ToArray()) + End Function + + Private Function WriteLanguageValidationReport(languageData As LocalizationLanguageData, + referenceData As LocalizationLanguageData, + errors As List(Of String), + warnings As List(Of String)) As String + Try + Dim reportDirectory As String = Path.Combine(Application.StartupPath, "logs", "localization") + Directory.CreateDirectory(reportDirectory) + Dim reportPath As String = Path.Combine(reportDirectory, "language-validation-" & languageData.CultureCode & ".log") + Dim report As New StringBuilder() + report.AppendLine("DISMTools language file validation report") + report.AppendLine("Generated: " & DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)) + report.AppendLine("Language: " & languageData.CultureCode) + report.AppendLine("File: " & languageData.FilePath) + report.AppendLine("Reference: " & referenceData.FilePath) + report.AppendLine() + report.AppendLine("ERRORS (" & errors.Count.ToString(CultureInfo.InvariantCulture) & ")") + For Each validationError As String In errors + report.AppendLine("ERROR: " & validationError) + Next + report.AppendLine() + report.AppendLine("UNRECOGNIZED ENTRIES (" & warnings.Count.ToString(CultureInfo.InvariantCulture) & ")") + For Each validationWarning As String In warnings + report.AppendLine("WARNING: " & validationWarning) + Next + report.AppendLine() + report.AppendLine("Fix: keep section names, key names, and placeholders identical to en-US.ini; translate only values after '='.") + File.WriteAllText(reportPath, report.ToString(), Encoding.UTF8) + Return reportPath + Catch ex As Exception + Trace.WriteLine("Could not write language validation report. " & ex.Message) + Return "" + End Try + End Function + + Private Function TForCulture(cultureCode As String, itemKey As String, args As Object()) As String + EnsureLoaded() + + Dim matchedSectionName As String = "" + Dim matchedValueName As String = "" + Dim value As String = FindValue(cultureCode, itemKey, matchedSectionName, matchedValueName) + If value Is Nothing Then + RegisterMissingItem(cultureCode, itemKey) + Throw New MissingLocalizationException(BuildMissingLocalizationMessage(cultureCode, itemKey, matchedSectionName, matchedValueName)) + End If + + Return FormatValue(cultureCode, itemKey, value, args) + End Function + + Private Function FormatValue(cultureCode As String, itemKey As String, rawValue As String, args As Object()) As String + Dim value As String = DecodeValue(rawValue) + + If args IsNot Nothing AndAlso args.Length > 0 Then + Try + value = String.Format(CultureInfo.CurrentCulture, value, args) + Catch ex As FormatException + Throw New MissingLocalizationException(BuildInvalidFormatMessage(cultureCode, itemKey, value, ex)) + End Try + End If + + Return value + End Function + + Private Sub RegisterMissingItem(cultureCode As String, itemKey As String) + If String.IsNullOrWhiteSpace(itemKey) Then Return + + SyncLock MissingItemsLock + For Each item As MissingLocalizationItem In MissingItems + If item.CultureCode.Equals(cultureCode, StringComparison.OrdinalIgnoreCase) AndAlso item.ItemKey.Equals(itemKey, StringComparison.OrdinalIgnoreCase) Then Return + Next + + MissingItems.Add(New MissingLocalizationItem With { + .CultureCode = cultureCode, + .ItemKey = itemKey + }) + End SyncLock + + Trace.WriteLine("Missing localization item " & itemKey & " for " & cultureCode) + End Sub + + Private Sub EnsureLoaded() + If Not FilesLoaded Then LoadLanguageFiles() + End Sub + + Private Function CandidateLanguageDirectories() As List(Of String) + Dim result As New List(Of String)() + AddCandidateLanguageDirectories(result, AppDomain.CurrentDomain.BaseDirectory) + AddCandidateLanguageDirectories(result, Application.StartupPath) + AddCandidateLanguageDirectories(result, Environment.CurrentDirectory) + Return result + End Function + + Private Sub AddCandidateLanguageDirectories(result As List(Of String), startDirectory As String) + If String.IsNullOrWhiteSpace(startDirectory) Then Return + + Dim currentDirectory As DirectoryInfo + Try + currentDirectory = New DirectoryInfo(startDirectory) + Catch + Return + End Try + + For depth As Integer = 0 To 8 + If currentDirectory Is Nothing Then Exit For + Dim candidate As String = Path.Combine(currentDirectory.FullName, "language") + If Directory.Exists(candidate) Then AddUniquePath(result, candidate) + currentDirectory = currentDirectory.Parent + Next + End Sub + + Private Function CandidateSettingsFiles() As List(Of String) + Dim result As New List(Of String)() + AddCandidateSettingsFiles(result, AppDomain.CurrentDomain.BaseDirectory) + AddCandidateSettingsFiles(result, Application.StartupPath) + AddCandidateSettingsFiles(result, Environment.CurrentDirectory) + Return result + End Function + + Private Sub AddCandidateSettingsFiles(result As List(Of String), startDirectory As String) + If String.IsNullOrWhiteSpace(startDirectory) Then Return + + Dim currentDirectory As DirectoryInfo + Try + currentDirectory = New DirectoryInfo(startDirectory) + Catch + Return + End Try + + For depth As Integer = 0 To 8 + If currentDirectory Is Nothing Then Exit For + Dim candidate As String = Path.Combine(currentDirectory.FullName, "settings.ini") + If File.Exists(candidate) Then AddUniquePath(result, candidate) + currentDirectory = currentDirectory.Parent + Next + End Sub + + Private Sub AddUniquePath(paths As List(Of String), candidate As String) + For Each existingPath As String In paths + If existingPath.Equals(candidate, StringComparison.OrdinalIgnoreCase) Then Return + Next + paths.Add(candidate) + End Sub + + Private Function GetCommandLineCultureCode() As String + For Each argument As String In Environment.GetCommandLineArgs() + Dim prefixes As String() = {"/language=", "/languagecode=", "--language="} + For Each prefix As String In prefixes + If argument.StartsWith(prefix, StringComparison.OrdinalIgnoreCase) Then + Return argument.Substring(prefix.Length).Trim().Trim(ChrW(34)) + End If + Next + Next + Return "" + End Function + + Private Function GetSingleLocalLanguageCode() As String + For Each languageDirectory As String In CandidateLanguageDirectories() + Dim files As String() + Try + files = Directory.GetFiles(languageDirectory, "*.ini", SearchOption.TopDirectoryOnly) + Catch + Continue For + End Try + + If files.Length = 0 Then Continue For + + Dim cultureCodes As New List(Of String)() + For Each languageFile As String In files + Dim cultureCode As String = ReadIniValue(languageFile, "LanguageFileInformation", "LanguageCode").Trim().Trim(ChrW(34)) + If Not String.IsNullOrWhiteSpace(cultureCode) Then cultureCodes.Add(cultureCode) + Next + + If cultureCodes.Count = 1 Then Return cultureCodes(0) + Return "" + Next + + Return "" + End Function + + Private Function GetPersistedCultureCode() As String + For Each settingsPath As String In CandidateSettingsFiles() + Dim cultureCode As String = ReadIniValue(settingsPath, "Personalization", "LanguageCode") + If Not String.IsNullOrWhiteSpace(cultureCode) Then Return cultureCode.Trim().Trim(ChrW(34)) + Next + + Dim registryPaths As String() = { + "Software\DISMTools\Stable\Personalization", + "Software\DISMTools\Preview\Personalization" + } + + For Each registryPath As String In registryPaths + Try + Using key As RegistryKey = Registry.CurrentUser.OpenSubKey(registryPath, False) + If key Is Nothing Then Continue For + Dim value As Object = key.GetValue("LanguageCode", Nothing) + If value IsNot Nothing AndAlso Not String.IsNullOrWhiteSpace(value.ToString()) Then Return value.ToString() + End Using + Catch + End Try + Next + + Return "" + End Function + + Private Function ParseLanguageFile(languageFile As String) As LocalizationLanguageData + Dim data As New LocalizationLanguageData With {.FilePath = languageFile} + Dim currentSection As String = "" + + For Each rawLine As String In File.ReadAllLines(languageFile, Encoding.UTF8) + Dim trimmedLine As String = rawLine.Trim() + If trimmedLine = "" OrElse trimmedLine.StartsWith(";") OrElse trimmedLine.StartsWith("#") Then Continue For + + If trimmedLine.StartsWith("[") AndAlso trimmedLine.EndsWith("]") Then + currentSection = trimmedLine.Substring(1, trimmedLine.Length - 2).Trim() + If currentSection <> "" AndAlso Not data.Sections.ContainsKey(currentSection) Then + data.Sections.Add(currentSection, New Dictionary(Of String, String)(StringComparer.OrdinalIgnoreCase)) + End If + Continue For + End If + + If currentSection = "" Then Continue For + Dim separatorIndex As Integer = rawLine.IndexOf("="c) + If separatorIndex <= 0 Then Continue For + + Dim itemName As String = rawLine.Substring(0, separatorIndex).Trim() + Dim itemValue As String = rawLine.Substring(separatorIndex + 1).Trim() + If itemName = "" Then Continue For + + data.Sections(currentSection)(itemName) = itemValue + Next + + data.CultureCode = DecodeValue(FindExactValue(data, "LanguageFileInformation", "LanguageCode")) + data.LanguageName = DecodeValue(FindExactValue(data, "LanguageFileInformation", "LanguageName")) + data.LanguageAuthor = DecodeValue(FindExactValue(data, "LanguageFileInformation", "LanguageAuthor")) + + If data.CultureCode IsNot Nothing Then data.CultureCode = data.CultureCode.Trim() + If data.LanguageName IsNot Nothing Then data.LanguageName = data.LanguageName.Trim() + If data.LanguageAuthor IsNot Nothing Then data.LanguageAuthor = data.LanguageAuthor.Trim() + + Return data + End Function + + Private Function ReadIniValue(filePath As String, sectionName As String, itemName As String) As String + If String.IsNullOrWhiteSpace(filePath) OrElse Not File.Exists(filePath) Then Return "" + + Dim currentSection As String = "" + For Each rawLine As String In File.ReadAllLines(filePath, Encoding.UTF8) + Dim trimmedLine As String = rawLine.Trim() + If trimmedLine = "" OrElse trimmedLine.StartsWith(";") OrElse trimmedLine.StartsWith("#") Then Continue For + + If trimmedLine.StartsWith("[") AndAlso trimmedLine.EndsWith("]") Then + currentSection = trimmedLine.Substring(1, trimmedLine.Length - 2).Trim() + Continue For + End If + + If Not currentSection.Equals(sectionName, StringComparison.OrdinalIgnoreCase) Then Continue For + Dim separatorIndex As Integer = rawLine.IndexOf("="c) + If separatorIndex <= 0 Then Continue For + + Dim candidateName As String = rawLine.Substring(0, separatorIndex).Trim() + If candidateName.Equals(itemName, StringComparison.OrdinalIgnoreCase) Then Return rawLine.Substring(separatorIndex + 1).Trim() + Next + + Return "" + End Function + + Private Function FindValue(cultureCode As String, itemKey As String, ByRef matchedSectionName As String, ByRef matchedValueName As String) As String + matchedSectionName = "" + matchedValueName = "" + + If String.IsNullOrWhiteSpace(cultureCode) OrElse String.IsNullOrWhiteSpace(itemKey) Then Return Nothing + If Not LanguageFiles.ContainsKey(cultureCode) Then Return Nothing + + Dim separatorIndexes As New List(Of Integer)() + For index As Integer = 0 To itemKey.Length - 1 + If itemKey(index) = "."c Then separatorIndexes.Add(index) + Next + + For separatorIndex As Integer = separatorIndexes.Count - 1 To 0 Step -1 + Dim dotIndex As Integer = separatorIndexes(separatorIndex) + If dotIndex <= 0 OrElse dotIndex >= itemKey.Length - 1 Then Continue For + + Dim sectionName As String = itemKey.Substring(0, dotIndex) + Dim valueName As String = itemKey.Substring(dotIndex + 1) + Dim value As String = FindExactValue(LanguageFiles(cultureCode), sectionName, valueName) + If value Is Nothing Then Continue For + + matchedSectionName = sectionName + matchedValueName = valueName + Return value + Next + + Return Nothing + End Function + + Private Function FindExactValue(cultureCode As String, sectionName As String, valueName As String) As String + If String.IsNullOrWhiteSpace(cultureCode) OrElse Not LanguageFiles.ContainsKey(cultureCode) Then Return Nothing + Return FindExactValue(LanguageFiles(cultureCode), sectionName, valueName) + End Function + + Private Function FindExactValue(data As LocalizationLanguageData, sectionName As String, valueName As String) As String + If data Is Nothing OrElse String.IsNullOrWhiteSpace(sectionName) OrElse String.IsNullOrWhiteSpace(valueName) Then Return Nothing + If Not data.Sections.ContainsKey(sectionName) Then Return Nothing + If Not data.Sections(sectionName).ContainsKey(valueName) Then Return Nothing + Return data.Sections(sectionName)(valueName) + End Function + + Private Sub ApplyCurrentCulture(cultureCode As String) + Try + Dim culture As New CultureInfo(cultureCode) + Thread.CurrentThread.CurrentCulture = culture + Thread.CurrentThread.CurrentUICulture = culture + CultureInfo.DefaultThreadCurrentCulture = culture + CultureInfo.DefaultThreadCurrentUICulture = culture + Catch + Dim fallbackCulture As New CultureInfo(DefaultCultureCode) + Thread.CurrentThread.CurrentCulture = fallbackCulture + Thread.CurrentThread.CurrentUICulture = fallbackCulture + CultureInfo.DefaultThreadCurrentCulture = fallbackCulture + CultureInfo.DefaultThreadCurrentUICulture = fallbackCulture + End Try + End Sub + + Private Function CombineKey(sectionName As String, itemName As String) As String + If String.IsNullOrWhiteSpace(sectionName) Then Throw New ArgumentException("Localization section name cannot be empty.", NameOf(sectionName)) + If String.IsNullOrWhiteSpace(itemName) Then Throw New ArgumentException("Localization item name cannot be empty.", NameOf(itemName)) + Return sectionName.Trim().TrimEnd("."c) & "." & itemName.Trim().TrimStart("."c) + End Function + + Private Function BuildMissingLocalizationMessage(cultureCode As String, itemKey As String, Optional sectionName As String = "", Optional valueName As String = "") As String + If String.IsNullOrWhiteSpace(sectionName) OrElse String.IsNullOrWhiteSpace(valueName) Then SplitPreferredKey(itemKey, sectionName, valueName) + + Dim languageFile As String = "" + If LanguageFiles.ContainsKey(cultureCode) Then languageFile = LanguageFiles(cultureCode).FilePath + + Dim message As New StringBuilder() + message.AppendLine("Localization key was not found.") + message.AppendLine() + message.AppendLine("Language: " & cultureCode) + message.AppendLine("Language file: " & languageFile) + message.AppendLine("Section: " & If(String.IsNullOrWhiteSpace(sectionName), "", sectionName)) + message.AppendLine("Key: " & If(String.IsNullOrWhiteSpace(valueName), itemKey, valueName)) + message.AppendLine("Full key: " & itemKey) + + Dim sourceLocation As String = GetSourceLocation() + If sourceLocation <> "" Then message.AppendLine("Source: " & sourceLocation) + + message.AppendLine("Loaded cultures: " & LoadedCultureCodes) + message.AppendLine() + message.AppendLine("Fix:") + message.AppendLine("Open the language INI file and add this entry:") + message.AppendLine() + message.AppendLine("[" & If(String.IsNullOrWhiteSpace(sectionName), "Section.Name", sectionName) & "]") + message.AppendLine(If(String.IsNullOrWhiteSpace(valueName), itemKey, valueName) & "=") + Return message.ToString().TrimEnd() + End Function + + Private Function BuildInvalidFormatMessage(cultureCode As String, itemKey As String, value As String, ex As FormatException) As String + Dim sectionName As String = "" + Dim valueName As String = "" + SplitPreferredKey(itemKey, sectionName, valueName) + + Return "Localization value format is invalid." & Environment.NewLine & Environment.NewLine & + "Language: " & cultureCode & Environment.NewLine & + "Section: " & sectionName & Environment.NewLine & + "Key: " & valueName & Environment.NewLine & + "Full key: " & itemKey & Environment.NewLine & + "Value: " & value & Environment.NewLine & + "Error: " & ex.Message + End Function + + Private Sub SplitPreferredKey(itemKey As String, ByRef sectionName As String, ByRef valueName As String) + sectionName = "" + valueName = "" + If String.IsNullOrWhiteSpace(itemKey) Then Return + + Dim dotIndex As Integer = itemKey.LastIndexOf("."c) + If dotIndex <= 0 OrElse dotIndex >= itemKey.Length - 1 Then Return + + sectionName = itemKey.Substring(0, dotIndex) + valueName = itemKey.Substring(dotIndex + 1) + End Sub + + Private Function GetSourceLocation() As String + Try + Dim trace As New StackTrace(True) + For Each frame As StackFrame In trace.GetFrames() + Dim method = frame.GetMethod() + If method Is Nothing OrElse method.DeclaringType Is Nothing Then Continue For + If method.DeclaringType.Name = NameOf(LocalizationService) OrElse method.DeclaringType.Name = NameOf(SectionLocalizer) Then Continue For + + Dim fileName As String = frame.GetFileName() + Dim lineNumber As Integer = frame.GetFileLineNumber() + If Not String.IsNullOrWhiteSpace(fileName) AndAlso lineNumber > 0 Then Return fileName & ":" & lineNumber.ToString(CultureInfo.InvariantCulture) + Return method.DeclaringType.FullName & "." & method.Name + Next + Catch + End Try + + Return "" + End Function + + Private Function DecodeValue(value As String) As String + If value Is Nothing Then Return Nothing + Return value.Replace(Quote, "").Replace("{quot;}", Quote).Replace("{lbrace;}", "{").Replace("{rbrace;}", "}").Replace("{crlf;}", vbCrLf).Replace("{space;}", " ").Replace("{tab;}", vbTab) + End Function + +End Module diff --git a/Utilities/LanguageUtilities/LanguageHelper.vb b/Utilities/LanguageUtilities/LanguageHelper.vb deleted file mode 100644 index 650a3403d..000000000 --- a/Utilities/LanguageUtilities/LanguageHelper.vb +++ /dev/null @@ -1,58 +0,0 @@ -Imports IniParser -Imports IniParser.Model -Imports System.IO -Imports Microsoft.VisualBasic.ControlChars -Imports System.Text - -Module LanguageHelper - - Private ReadOnly LanguagePath As String = Path.Combine(Application.StartupPath, "bin", "languages") - - Dim LanguageDatas As New List(Of IniData) - - Sub LoadLanguageFiles() - LanguageDatas.Clear() - If Not Directory.Exists(LanguagePath) Then - Throw New Exception("Language files could not be found") - End If - For Each LanguageFile In Directory.GetFiles(LanguagePath, "*.ini", SearchOption.TopDirectoryOnly) - Try - Dim parser = New FileIniDataParser() - Using reader As New StreamReader(LanguageFile, Encoding.UTF8) - LanguageDatas.Add(parser.ReadData(reader)) - End Using - Catch ex As Exception - DynaLog.LogMessage("Could not parse this file. Error message: " & ex.Message) - End Try - Next - End Sub - - Function GetValueFromLanguageData(SpecifiedLanguage As Integer, ItemKey As String) As String - If LanguageDatas IsNot Nothing Then - If SpecifiedLanguage = 0 Then - Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName - Case "ENU", "ENG" - SpecifiedLanguage = 1 - Case "ESN" - SpecifiedLanguage = 2 - Case "FRA" - SpecifiedLanguage = 3 - Case "PTB", "PTG" - SpecifiedLanguage = 4 - Case "ITA" - SpecifiedLanguage = 5 - End Select - End If - Try - Dim KeySections() As String = ItemKey.Split(".") - Return LanguageDatas(SpecifiedLanguage - 1)(KeySections(0))(KeySections(1)).Replace(Quote, "").Replace("{quot;}", Quote).Replace("{crlf;}", CrLf) - Catch ex As Exception - Return ItemKey - End Try - Else - Return ItemKey - End If - Return Nothing - End Function - -End Module diff --git a/Utilities/WMIHelper.vb b/Utilities/WMIHelper.vb index 82be7ad80..904e9e7a1 100644 --- a/Utilities/WMIHelper.vb +++ b/Utilities/WMIHelper.vb @@ -32,7 +32,7 @@ Module WMIHelper Catch ex As Exception Dim wmiErrorStr As String = String.Format("An error occurred while executing the WMI query: {0}{1}{0}, on namespace {2} -- {3}", Quote, ManagementQuery, ManagementNamespace, ex.Message) DynaLog.LogMessage(wmiErrorStr) - If Debugger.IsAttached Then MessageBox.Show(wmiErrorStr, "WMI Error", MessageBoxButtons.OK, MessageBoxIcon.Error) + If Debugger.IsAttached Then MessageBox.Show(wmiErrorStr, LocalizationService.ForSection("Utilities.WMIHelper")("Wmierror.Message"), MessageBoxButtons.OK, MessageBoxIcon.Error) Return Nothing End Try Return Nothing diff --git a/Utilities/WindowHelper.vb b/Utilities/WindowHelper.vb index b5a954f38..dd06ecdd4 100644 --- a/Utilities/WindowHelper.vb +++ b/Utilities/WindowHelper.vb @@ -16,6 +16,28 @@ Public Class WindowHelper Public Shared Function EnableMenuItem(hMenu As IntPtr, uIDEnableItem As UInteger, uEnable As UInteger) As Boolean End Function + + Public Shared Function SetForegroundWindow(hWnd As IntPtr) As Boolean + End Function + + + Public Shared Function GetForegroundWindow() As IntPtr + End Function + + + Public Shared Function SetWindowPos(hWnd As IntPtr, + hWndInsertAfter As IntPtr, + x As Integer, + y As Integer, + cx As Integer, + cy As Integer, + flags As UInteger) As Boolean + End Function + + + Public Shared Function GetWindowLong(hWnd As IntPtr, index As Integer) As Integer + End Function + Public Shared Function DwmSetWindowAttribute(hwnd As IntPtr, attr As Integer, ByRef attrValue As Integer, attrSize As Integer) As Integer End Function @@ -55,6 +77,13 @@ Public Class WindowHelper Const WS_EX_COMPOSITED As Integer = &H2000000 Const GWL_EXSTYLE As Integer = -20 + Private Shared ReadOnly HWND_TOPMOST As New IntPtr(-1) + Private Shared ReadOnly HWND_NOTOPMOST As New IntPtr(-2) + Private Const SWP_NOSIZE As UInteger = &H1UI + Private Const SWP_NOMOVE As UInteger = &H2UI + Private Const SWP_SHOWWINDOW As UInteger = &H40UI + Private Const WS_EX_TOPMOST As Integer = &H8 + Private Const LVM_FIRST As Integer = &H1000 Private Const LVM_SETITEMSTATE As Integer = LVM_FIRST + 43 @@ -84,6 +113,43 @@ Public Class WindowHelper Return ctrl.Handle End Function + Public Shared Function RequestForegroundWindow(wndHandle As IntPtr) As Boolean + If wndHandle.Equals(IntPtr.Zero) Then Return False + Return NativeMethods.SetForegroundWindow(wndHandle) + End Function + + Public Shared Function RaiseWindowAndRestoreNormalZOrder(wndHandle As IntPtr, + ByRef normalZOrderRestored As Boolean) As Boolean + normalZOrderRestored = False + If wndHandle.Equals(IntPtr.Zero) Then Return False + + Dim flags As UInteger = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW + Dim raisedAboveOtherWindows As Boolean = NativeMethods.SetWindowPos(wndHandle, + HWND_TOPMOST, + 0, + 0, + 0, + 0, + flags) + normalZOrderRestored = NativeMethods.SetWindowPos(wndHandle, + HWND_NOTOPMOST, + 0, + 0, + 0, + 0, + flags) + Return raisedAboveOtherWindows + End Function + + Public Shared Function IsForegroundWindow(wndHandle As IntPtr) As Boolean + Return Not wndHandle.Equals(IntPtr.Zero) AndAlso NativeMethods.GetForegroundWindow().Equals(wndHandle) + End Function + + Public Shared Function IsTopMostWindow(wndHandle As IntPtr) As Boolean + If wndHandle.Equals(IntPtr.Zero) Then Return False + Return (NativeMethods.GetWindowLong(wndHandle, GWL_EXSTYLE) And WS_EX_TOPMOST) = WS_EX_TOPMOST + End Function + Const DARKMODE_MINMAJOR As Integer = 10 Const DARKMODE_MINMINOR As Integer = 0 Const DARKMODE_MINBUILD As Integer = 18362 diff --git a/language/de-DE.ini b/language/de-DE.ini new file mode 100644 index 000000000..ccb56b3bb --- /dev/null +++ b/language/de-DE.ini @@ -0,0 +1,6915 @@ +[LanguageFileInformation] +LanguageAuthor=Gotcha +LanguageCode=de-DE +LanguageName=Deutsch + +[ADDSJoinDialog.ChangePage] +Finish.Label=Fertig +Next.Button=Weiter + +[DomainJoin.DNS] +Site.Local.Address.Label=- {0} -- Site-Local Address; wird nicht mehr verwendet +MalformedAddress.Label=- {0} -- Falsche Adresse +AddressSyntax.Message=Address Syntax Validation Results:{crlf;}- Ungültige Adressen: {0}{crlf;}- IPv4-Adressen: {1}{crlf;}- Globale IPv6-Adressen: {2}{crlf;}- Link-Lokale IPv6-Adressen: {3}{crlf;}- Eindeutige lokale IPv6-Adressen: {4}{crlf;}{crlf;}- Verhältnis gültige/ungültige Adresse: {5}%{crlf;}{6}{crlf;}Diese Adressen werden in der unbeaufsichtigten Antwortdatei konfiguriert. +InvalidAddresses.Label={crlf;}Einige Adressen sind ungültig. Der Grund dafür: {crlf;}{crlf;}{0}{crlf;} +AddressValidation.Title=DNS-Adressvalidierungsergebnisse +Verification.Done.Label=Verifizierung ist abgeschlossen. +Verification.Done.Message=Verifizierung ist abgeschlossen.{crlf;}{crlf;}{0} + +[DomainJoin.Messages] +PrimarySuffix.Required=Für DNS muss ein primäres Domänensuffix angegeben werden +InterfaceAlias.Message=Für DNS muss ein Schnittstellenalias bereitgestellt werden. Die Netzwerkadapter, die auf Ihrem System installiert sind +No.DNSServer.None.Label=Es wurden keine DNS-Serveradressen angegeben +DomainName.Label=Es muss ein Domänenname angegeben werden +User.Name.Label=Es muss ein Benutzername angegeben werden +Password.User.Message=Ein Passwort für den angegebenen Benutzer, {quot;}{0}{quot;}, muss gemäß den vom Domänencontroller auferlegten Sicherheitsrichtlinien angegeben werden. +User.Appear.Exist.Message=Der angegebene Benutzer {0} scheint in der bereitgestellten Domäne nicht zu existieren. Möglicherweise können Sie sich bei diesem Benutzer nicht anmelden, es sei denn, Sie erstellen ihn zuerst.{crlf;}{crlf;}Möchten Sie fortfahren? +Verify.Typed.Message=Bitte überprüfen Sie die von Ihnen eingegebenen Informationen. Wenn Sie ein Feld falsch eingegeben haben, kann es sein, dass das Client-Gerät der Domäne nicht beitritt.{crlf;}{crlf;}Das Client-Gerät tritt der Domäne auch nicht bei, wenn es Home-Editionen von Windows ausführt.{crlf;}{crlf;}Sind Sie sicher, dass diese Einstellungen korrekt sind? +VerifySettings.Title=Einstellungen überprüfen +Domain.Settings.Message=Domain-Einstellungen wurden erfolgreich zur Antwortdatei hinzugefügt. Sie können diese Komponenten im Abschnitt „Systemkomponenten“ weiter ändern. +Add.Domain.Settings.Label=Domäneneinstellungen konnten nicht hinzugefügt werden. +Dnsshort.DomainName.Message=DNS (kurz für Domain Name System) ist eine Serverrolle, die IP-Adressen automatisch in für Menschen lesbare Namen übersetzt.{crlf;}{crlf;}Wenn Sie diesen Assistenten verwenden, geht DISMTools davon aus, dass entweder Sie oder Ihr Systemadministrator DNS in Ihrem Netzwerk eingerichtet haben. Wenn nicht, brechen Sie diesen Assistenten ab und richten Sie ihn ein. +UserDisabled.Message=Der ausgewählte Benutzer ist in der Domäne nicht aktiviert. Der Benutzer kann sich nicht bei Zielgeräten anmelden, es sei denn, dies wird erneut aktiviert. +AccountDisabled.Title=Konto deaktiviert +Computer.Belong.Domain.Label=Dieser Computer gehört nicht zu einer Domäne. +Provide.Domain.Label=Bitte geben Sie eine Domäne an, für die die Domänennamenauflösung getestet werden soll. +Nslookupoutput.Label=NSLOOKUP-Ausgabe:{crlf;}{crlf;}{0} +DomainResolution.Title=Ergebnisse der Domänennamenauflösung + +[ActiveInstallWarn] +Active.Install.Label=Über die aktive Installationsverwaltung + +[ActiveInstall] +Enter.Online.Message=Sie sind dabei, in den Online-Installationsverwaltungsmodus zu wechseln, in dem Sie Änderungen an Ihrer aktiven Windows-Installation vornehmen können.{crlf;}{crlf;}Da Sie in diesem Modus Ihre Installation ändern können, sollten Sie bei der Ausführung von Aufgaben mit diesem Programm äußerst vorsichtig sein.{crlf;}{crlf;}Wenn Sie eine Operation an einem Online-Image nachlässig durchführen, kann es sein, dass es beschädigt wird bis zu dem Punkt, dass die Installation nicht mehr gestartet werden kann.{crlf;}{crlf;}Wir SIND NICHT VERANTWORTLICH für Schäden, die an Ihrer aktiven Installation entstehen. Wenn Sie ein nicht bootfähiges System haben, sollten Sie Windows neu installieren (wenn möglich beim Sichern Ihrer Dateien) +ProjectUnloaded.Label=Das aktuelle Projekt wird entladen. +Continue.Button=Weiter +Cancel.Button=Abbrechen + +[AddCapabilities] +AddCapabilities.Label=Funktionen hinzufügen +Image.Task.Header.Label={0} +Source.Label=Quelle: +Ok.Button=OK +Cancel.Button=Abbrechen +Browse.Button=Durchsuche +SelectAll.Button=Alle auswählen +SelectNone.Button=Wählen Sie keine +Detect.Group.Policy.Button=Von Gruppenrichtlinie erkennen +Capabilities.Group=Fähigkeiten +Options.Group=Optionen +DifferentSource.CheckBox=Geben Sie eine andere Quelle für die Installation von Funktionen an +WindowsUpdate.CheckBox=Zugriff auf Windows Update beschränken +Capability.Column=Fähigkeit +State.Column=Status + +[AddCaps.AddCap] +CommitImage.CheckBox=Commit-Befehl nach dem Hinzufügen von Funktionen ausführen + +[AddCapabilities.Initialize] +UnsupportedImage.Message=Diese Aktion wird auf diesem Abbild nicht unterstützt + +[AddCapabilities.Validation] +SourceRequired.Message=Einige Funktionen in diesem Bild erfordern die Angabe einer Quelle, damit sie aktiviert werden können. Die angegebene Quelle ist für diesen Vorgang nicht gültig. +Source.Required.Message=Bitte geben Sie eine gültige Quelle an und versuchen Sie es erneut. +Source.Message=Bitte stellen Sie sicher, dass die Quelle im Dateisystem vorhanden ist, und versuchen Sie es erneut. +Source.Exist.File.Message=Die angegebene Quelle existiert nicht im Dateisystem. Stellen Sie sicher, dass es existiert, und versuchen Sie es erneut. +Source.Required.No.Message=Es ist keine Quelle angegeben. Geben Sie eine Quelle an und versuchen Sie es erneut. +Selected.None.Message=Es müssen keine ausgewählten Funktionen installiert werden. Bitte wählen Sie einige Funktionen aus und versuchen Sie es erneut. + +[AddDrivers] +Folder.Label=Ordner +Title.Label=Treiber hinzufügen +Image.Task.Header.Label={0} +Drivers.Required.Message=Bitte geben Sie die hinzuzufügenden Treiber an, indem Sie die Schaltflächen unten verwenden oder sie in die folgende Liste einfügen: +Scan.Driver.Message=Sie können das Programm die in der folgenden Liste vorhandenen Treiberordner rekursiv scannen lassen und sie ebenfalls hinzufügen. Kreuzen Sie dazu die Einträge an, die gescannt werden sollen: +Ok.Button=OK +Cancel.Button=Abbrechen +AddFile.Button=Datei hinzufügen +AddFolder.Button=Ordner hinzufügen +Remove.Entries.Button=Alle Einträge entfernen +Remove.Selected.Entry.Button=Ausgewählten Eintrag entfernen +Force.Install.CheckBox=Erzwingen Sie die Installation nicht signierter Treiber +CommitImage.CheckBox=Commit-Befehl nach dem Hinzufügen von Treibern ausführen +DriverFiles.Group=Treiberdateien +DriverFolders.Group=Treiberordner +Options.Group=Optionen +FileFolder.Column=Datei/Ordner +Type.Column=Typ +DriverPackage.Title=Geben Sie das hinzuzufügende Treiberpaket an +DriverFolder.Description=Geben Sie den Ordner an, der Treiberpakete enthält. Sie können dann angeben, ob es rekursiv gescannt werden muss: + +[AddDrivers.Actions] +Package.Folder.Message=Das angegebene Paket ist ein Ordner. Sie können DISM rekursiv scannen lassen, um alle Treiber hinzuzufügen, oder Sie können die Treiber angeben, die manuell hinzugefügt werden sollen.{crlf;}{crlf;}- Um DISM diesen Ordner rekursiv scannen zu lassen, klicken Sie auf Ja{crlf;}- Um die Treiber in diesem Ordner manuell auszuwählen, klicken Sie auf Nein{crlf;}- Um das Hinzufügen dieses Ordners zu überspringen, klicken Sie auf Abbrechen +Packages.None.Message=Es gibt keine Treiberpakete im angegebenen Ordner + +[AddDrivers.DragDrop] +Package.Folder.Message=Das angegebene Paket ist ein Ordner. Sie können DISM rekursiv scannen lassen, um alle Treiber hinzuzufügen, oder Sie können die Treiber angeben, die manuell hinzugefügt werden sollen.{crlf;}{crlf;}- Um DISM diesen Ordner rekursiv scannen zu lassen, klicken Sie auf Ja{crlf;}- Um die Treiber in diesem Ordner manuell auszuwählen, klicken Sie auf Nein{crlf;}- Um das Hinzufügen dieses Ordners zu überspringen, klicken Sie auf Abbrechen +Folder.Label=Ordner +File.Item=Datei + +[AddDrivers.FileOk] +File.Label=Datei + +[AddDrivers.Validation] +DriverPackages.None.Message=Es müssen keine ausgewählten Treiberpakete installiert werden. Bitte geben Sie die Treiberpakete an, die Sie installieren möchten, und versuchen Sie es erneut. + +[AddListEntry] +Entry.Label=Eintrag: +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen + +[AddPackage] +AddPackages.Label=Pakete hinzufügen +PackageSource.Label=Paketquelle: +PackageOperation.Label=Paketvorgang: +Browse.Button=Durchsuche +SelectAll.Button=Alle auswählen +SelectNone.Button=Wählen Sie keine +Update.Manifest.Button=Update-Manifest hinzufügen +Cancel.Button=Abbrechen +Ok.Button=OK +Packages.Choose.RadioButton=Wählen Sie aus, welche Pakete hinzugefügt werden sollen: +Ignore.CheckBox=Anwendbarkeitsprüfungen ignorieren (nicht empfohlen) +CommitImage.CheckBox=Commit-Befehl nach dem Hinzufügen von Paketen ausführen +Packages.Group=Pakete +Options.Group=Optionen +Dir.CAB.Required.Label=Bitte geben Sie ein Verzeichnis an, in dem sich CAB- oder MSU-Dateien befinden. +CabFolder.Description=Geben Sie den Ordner an, der CAB- oder MSU-Pakete enthält: + +[AddPkg] +ScanRecursive.RadioButton=Ordner rekursiv nach Paketen durchsuchen +Skip.Online.Install.CheckBox=Paketinstallation überspringen, wenn Online-Vorgänge ausstehen + +[AddPackage.CountItems] +Folder.Contain.Label=Dieser Ordner enthält keine Pakete. Bitte verwenden Sie eine andere Quelle und versuchen Sie es erneut +Folder.Contains.Label=Dieser Ordner enthält das Paket {0}. +Folder.Packages.Label=Dieser Ordner enthält {0} Pakete. + +[AddPackage.GatherPackages] +Scanning.Dir.Label=Scanning-Verzeichnis für Pakete. Bitte warten + +[AddPackage.Validation] +Packages.Message=Bitte wählen Sie Pakete zum Hinzufügen aus und versuchen Sie es erneut. Sie können auch damit fortfahren, DISM anwendbare Pakete scannen zu lassen +PackagesSelected.Title=Keine Pakete ausgewählt + +[AppxProvision] +Add.Prov.Item=Bereitgestellte AppX-Pakete hinzufügen +Packages.Required.Message=Bitte fügen Sie gepackte oder entpackte AppX-Pakete hinzu, indem Sie die Schaltflächen unten verwenden oder sie in die Listenansicht unten einfügen: +Package.Message=Ein AppX-Paket benötigt möglicherweise einige Abhängigkeiten, damit es korrekt installiert werden kann. Wenn ja, können Sie jetzt eine Liste der Abhängigkeiten angeben: +StubPreference.Item=Stub-Präferenz: +Multiple.App.Regions.Item=Um mehrere App-Regionen anzugeben, trennen Sie sie durch ein Semikolon (;) +Entry.List.View.Message=Wählen Sie einen Eintrag in der Listenansicht aus, um die Details einer App anzuzeigen und Additionseinstellungen zu konfigurieren +AddFile.Item=Datei hinzufügen +AddFolder.Item=Ordner hinzufügen +Remove.Entries.Item=Alle Einträge entfernen +Remove.Dependencies.Item=Alle Abhängigkeiten entfernen +RemoveDependency.Item=Abhängigkeit entfernen +AddDependency.Item=Abhängigkeit hinzufügen +Browse.Button=Durchsuche +Remove.Selected.Entry.Item=Ausgewählten Eintrag entfernen +Cancel.Button=Abbrechen +Ok.Button=OK +CustomDataFile.Item=Benutzerdefinierte Datendatei: +CommitImage.Item=Commit-Befehl nach dem Hinzufügen von AppX-Paketen ausführen +CustomData.File.Title=Geben Sie eine benutzerdefinierte Datendatei an +AppxDependencies.Item=AppX-Abhängigkeiten +AppxRegions.Item=AppX-Regionen +LicenseFile.Title=Geben Sie eine Lizenzdatei an +App.Regions.Form.Message=App-Regionen müssen in Form von ISO 3166-1 Alpha 2- oder Alpha-3-Codes vorliegen. Um mehr über diese Codes zu erfahren, klicken Sie hier +Help.Link=hier klicken +FileFolder.Column=Datei/Ordner +Type.Column=Typ +ApplicationName.Column=Anwendungsname +App.Publisher.Column=Anwendungsverleger +App.Version.Column=Anwendungsversion +LicenseFile.CheckBox=Lizenzdatei: +App.Available.CheckBox=App für alle Regionen verfügbar machen +Configure.Stub.Item=Stub-Präferenz nicht konfigurieren +Publisher.Label=Herausgeber: {0} +Version.Label=Version: {0} +Preview.Label=Vorschau +Folder.Required.Description=Bitte geben Sie einen Ordner an, der entpackte AppX-Dateien enthält: +Install.Stub.Package.Item=Anwendung als Stub-Paket installieren +Install.Full.Package.Item=Anwendung als Vollpaket installieren + +[AppxProvision.MultiSelect] +Selection.Label=Mehrfachauswahl +CommonProps.Label=Zeigen Sie die gemeinsamen Eigenschaften aller ausgewählten Anwendungen an + +[AppxProvision.DragDrop] +Dir.Contains.App.Message=Das folgende Verzeichnis:{crlf;}{quot;}{0}{quot;}{crlf;}enthält Anwendungspakete. Möchten Sie sie auch verarbeiten?{crlf;}{crlf;}HINWEIS: Dadurch wird dieses Verzeichnis rekursiv gescannt, sodass es länger dauern kann, bis dieser Vorgang abgeschlossen ist +File.Dropped.Isn.Message=Die hier gelöschte Datei ist kein Anwendungspaket. +Add.Prov.Title=Bereitgestellte AppX-Pakete hinzufügen + +[AppxProvision.StoreLogo] +ReadFailed.Message=Könnte keine Logo-Assets für den Anwendungsspeicher aus diesem Paket abrufen - kann nicht aus dem Manifest lesen +Add.Title=Bereitgestellte AppX-Pakete hinzufügen + +[AppxProvision.Init] +UnsupportedImage.Message=Diese Aktion wird auf diesem Bild nicht unterstützt + +[AppxProvision.Scan] +Unpacked.Encrypted.Label=Unpacked (Verschlüsselt) +PackedEncrypted.Label=Gepackt (Verschlüsselt) +Unpacked.Encrypted.Item=Unpacked (Verschlüsselt) +Encrypted.App.Label=Verschlüsselte Anwendung +ListItem.Label=Verschlüsselte Anwendung +PackedEncrypted.Item=Gepackt (Verschlüsselt) +Package.Encrypted.Message=Das Paket:{crlf;}{crlf;}{0}{crlf;}{crlf;}ist ein verschlüsseltes Anwendungspaket. Weder DISMTools noch DISM unterstützen das Hinzufügen dieser Anwendungstypen. Wenn Sie es hinzufügen möchten, können Sie dies tun, nachdem das Image angewendet und gebootet wurde. +Folder.Message=Dieser Ordner scheint keine AppX-Paketstruktur zu enthalten. Es wird nicht zur Liste hinzugefügt +Add.Title=Bereitgestellte AppX-Pakete hinzufügen +Package.Add.Message=Das Paket, das Sie hinzufügen möchten, ist bereits zur Liste hinzugefügt und alle seine Eigenschaften stimmen mit den Eigenschaften des angegebenen Pakets überein. Wir werden das angegebene Paket nicht hinzufügen +Unpacked.Item=Ausgepackt +Packed.Item=Gepackt +Package.Already.Message=Das Paket, das Sie hinzufügen möchten, ist bereits zur Liste hinzugefügt, enthält jedoch eine neuere Version.{crlf;}{crlf;}Möchten Sie den Eintrag in der Liste durch das angegebene aktualisierte Paket ersetzen? +ItemSub.Item=Ausgepackt +ListItem.Item=Entpackt +Package.Added.Message=Das Paket, das Sie hinzufügen möchten, wurde der Liste bereits hinzugefügt, stammt jedoch von einem anderen Entwickler oder Herausgeber.{crlf;}{crlf;}Beachten Sie, dass von Herausgebern oder Entwicklern Dritter weiterverbreitete Anwendungen das Windows-Image beschädigen können.{crlf;}{crlf;}Möchten Sie den Eintrag in der Liste durch das angegebene Paket ersetzen? + +[AppxProvision.Tooltip] +TempStoreassets.Label=\temp\storeassets\ +Logo.Assets.File.Label=Die Logo-Assets für diese Datei konnten nicht erkannt werden +Enlarge.View.Label=Klicken Sie hier, um die Ansicht zu vergrößern +Logo.Assets.File.Item=Die Logo-Assets für diese Datei konnten nicht erkannt werden + +[AppxProvision.Validation] +Packages.Required.Message=Bitte geben Sie gepackte oder entpackte AppX-Pakete an und versuchen Sie es erneut. +Add.Prov.Title=Bereitgestellte AppX-Pakete hinzufügen +LicenseFile.Required.Message=Bitte geben Sie eine Lizenzdatei an und versuchen Sie es erneut. Sie können auch ohne weitermachen, dies kann jedoch das Image beeinträchtigen. +LicenseNotFound.Message=Die angegebene Lizenzdatei wurde nicht gefunden. Stellen Sie sicher, dass es am angegebenen Ort vorhanden ist, und versuchen Sie es erneut. +CustomData.Required.Message=Bitte geben Sie eine benutzerdefinierte Datendatei an und versuchen Sie es erneut. Sie können auch ohne weitermachen. +CustomData.File.Message=Die angegebene benutzerdefinierte Datendatei wurde nicht gefunden. Stellen Sie sicher, dass es am angegebenen Ort vorhanden ist, und versuchen Sie es erneut. + +[ProvPackage] +Add.Packages.Label=Bereitstellungspakete hinzufügen +Image.Task.Header.Label={0} +PackagePath.Label=Paketpfad: +Action.Treverted.Add.Message=Diese Aktion kann nicht rückgängig gemacht werden. Sobald Sie ein Bereitstellungspaket hinzugefügt haben, können Sie es nicht mehr aus Ihrem Windows-Image entfernen. +CatalogPath.Label=Katalog-Pfad: +Ok.Button=OK +Cancel.Button=Abbrechen +Browse.Button=Durchsuche +CommitImage.CheckBox=Commit-Image nach dem Hinzufügen dieses Bereitstellungspakets ausführen + +[ProvPackage.Validation] +PackageNotFound.Message=Das angegebene Bereitstellungspaket existiert nicht. Stellen Sie sicher, dass es im Dateisystem vorhanden ist, und versuchen Sie es erneut. +CatalogNotFound.Message=Die angegebene Catalogdatei existiert nicht. Wir werden diese Datei nicht verwenden, wenn Sie fortfahren.{crlf;}{crlf;}Möchten Sie fortfahren? +PackageRequired.Message=Es wurde kein Bereitstellungspaket angegeben. Bitte geben Sie ein Bereitstellungspaket an, das hinzugefügt werden soll, und versuchen Sie es erneut. + +[AppInstaller] +DownloadPackage.Button=Anwendungspaket wird heruntergeladen +Wait.Message=Bitte warten Sie, während DISMTools das Anwendungspaket herunterlädt, um es diesem Image hinzuzufügen. Dies kann je nach Geschwindigkeit Ihrer Netzwerkverbindung einige Zeit dauern. +StatusLbl.Label=Bitte warten +TransferDetails.Group=Transferdetails +DownloadURL.Label=Download-URL: +DownloadSpeed.Label=Downloadgeschwindigkeit: unbekannt +Cancel.Button=Abbrechen +Wait.Label=Bitte warten +EtaUnknown.Label=Geschätzte verbleibende Zeit: unbekannt + +[AppInstaller.Error] +DownloadFailed.Message=Beim Herunterladen der Datei ist ein Fehler aufgetreten: {0} + +[AppInstaller.Progress] +MainPackage.Label=Hauptanwendungspaket wird heruntergeladen ({0} von {1} heruntergeladen) + +[AppInstaller.Status] +DownloadSpeed.Label=Downloadgeschwindigkeit: {0}/s +EtaSeconds.Label=Geschätzte verbleibende Zeit: {0} Sekunden + +[AppDrive] +Bytes.Label=Bytes (~ +Target.Disk.Button=Zielfestplatte angeben +Refresh.Button=Aktualisieren +Ok.Button=OK +Cancel.Button=Abbrechen +DeviceID.Column=DeviceID +Model.Column=Modell +Partitions.Column=Partitionen +Size.Column=Größe +Destination.Disk.Id.Label=Zielfestplatten-ID (\\.\PHYSICALDRIVE(n)): + +[ApplyUnattend] +UnattendAnswer.File.Label=Unbeaufsichtigte Antwortdatei anwenden +Image.Task.Header.Label={0} +AnswerFile.Label=Antwortdatei: +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen + +[ApplyUnattend.Validation] +AnswerFile.Choose.Message=Entweder wurde keine unbeaufsichtigte Antwortdatei angegeben oder die angegebene Datei existiert nicht. Bitte überprüfen Sie, ob es existiert, und versuchen Sie es erneut. + +[AutoReload] +Wait.Message=Bitte warten Sie, während DISMTools die Wartungssitzung verwaister Image neu lädt. Dies kann einige Zeit dauern. Nach Abschluss wird dieser Dialog geschlossen. +ImageFile.Label=Imagedatei: +Image.Mount.Point.Label=Imagemontagepunkt: +ImageInfo.Group=Imageinformationen + +[AutoReload.Bg] +ReloadSucceeded.Message=Neuladen des gemounteten Images (erfolgreich: {0}, fehlgeschlagen: {1}, übersprungen: {2}) + +[AutoReload.Background] +ProcessCompleted.Message=Dieser Prozess ist abgeschlossen + +[AutoReload.Progress] +Preparing.Images.Label=Vorbereiten zum Neuladen von Imagen + +[ActiveDirectory.DnsZone] +SelectZone.Message=Bitte wählen Sie eine DNS-Zone aus und versuchen Sie es erneut. +Selected.Too.Long.Message=Die ausgewählte DNS-Zone ist aufgrund eines Ablaufs oder einer Abschaltung nicht mehr aktiv. Wählen Sie eine andere Zone und versuchen Sie es erneut. +ZonesLoaded.Message=DNS-Zonen konnten nicht abgerufen werden. + +[BGProcDetails.VisibleChanged] +Gathering.Image.Label=Imageinformationen sammeln +Processes.Take.Time.Label=Die Fertigstellung dieser Prozesse kann einige Zeit in Anspruch nehmen + +[BGProcNotify] +Project.Loaded.Done.Label=Dieses Projekt wurde erfolgreich geladen +Gathering.Image.Label=Das Programm sammelt jetzt Imageinformationen im Hintergrund. Dies kann einige Zeit dauern. + +[BgProcs.Settings] +Advanced.Process.Label=Erweiterte Hintergrundprozesseinstellungen +Additional.Label=Konfigurieren Sie zusätzliche Einstellungen für Hintergrundprozesse: + +[BgProcesses] +SkipNonRemovable.CheckBox=Pakete mit festgelegten nicht entfernbaren Richtlinien überspringen +DetectAllDrivers.CheckBox=Alle Imagetreiber erkennen +Skip.Framework.CheckBox=Framework-Pakete überspringen und sie aus den Auflistungen entfernen, wenn sie erkannt wurden +Run.CheckBox=Führen Sie alle Hintergrundprozesse aus, nachdem Sie eine Aufgabe ausgeführt haben +Ok.Button=OK +Cancel.Button=Abbrechen +Enhance.App.Detect.Message=Erweitern Sie die Erkennung aller installierten AppX-Pakete einer aktiven Installation mit PowerShell-Helfern + +[BgProcesses.Validation] +DetectDrivers.Message=Das Programm erkennt nun die Treiber des Images entsprechend den von Ihnen angegebenen Options. Dies kann einige Zeit dauern. + +[BG.Procs] +Re.Still.Gathering.Label=Wir sammeln immer noch Imageinformationen +Finish.Process.Begin.Message=Sobald wir diesen Prozess abgeschlossen haben, können Sie mit der Ausführung von Imageaufgaben beginnen. Dies dauert normalerweise ein paar Minuten, kann aber vom Image und der Geschwindigkeit Ihres Computers abhängen.{crlf;}{crlf;}Den Status dieses Hintergrundvorgangs überprüfen, indem Sie auf das Symbol unten links klicken. +Ok.Button=OK + +[Casters.Applicability] +Yes.Button=Ja +No.Button=Nein + +[Casters.DISMArchitecture] +Unknown.Label=Unbekannt +Neutral.Label=Neutral + +[Casters.Cast.DISM] +Present.Label=Nicht vorhanden +DisablePending.Label=Ausstehend deaktivieren +Staged.Label=Deaktiviert +Removed.Label=Entfernt +Installed.Label=Aktiviert +EnablePending.Label=Ausstehend aktivieren +Superseded.Label=Ersetzt +Partially.Installed.Label=Teilweise installiert +UninstallPending.Label=UninstallPending.Label +Uninstalled.Label=Deinstalliert +InstallPending.Label=Installation ausstehend +CriticalUpdate.Label=Kritisches Update +Driver.Label=Treiber +FeaturePack.Label=Featurepaket +Foundation.Package.Label=Foundation-Paket +Hotfix.Label=Hotfix +LanguagePack.Label=Sprachpaket +LocalPack.Label=Lokales Paket +DemandPack.Label=On Demand-Paket +Other.Label=Sonstiges +Product.Label=Produkt +SecurityUpdate.Label=Sicherheitsupdate +ServicePack.Label=Service Pack +SoftwareUpdate.Label=Software-Update +Update.Label=Update +UpdateRollup.Label=Rollup aktualisieren +NotRequired.Label=Ein Neustart ist nicht erforderlich +May.Required.Label=Ein Neustart kann erforderlich sein +Required.Label=Ein Neustart ist erforderlich + +[Casters.OfflineInstall] +FullyOffline.Message=Um dieses Paket vollständig zu installieren, ist möglicherweise ein Boot bis zum Ziel-Image erforderlich + +[Casters.SignatureStatus] +Unknown.Label=Unbekannt +UnsignedValidity.Message=Unsigned. Bitte überprüfen Sie die Gültigkeit und das Ablaufdatum des Unterzeichnungszertifikats +Signed.Label=Signiert + +[Casters.CastDriveType] +Fixed.Label=Behoben +Network.Label=Netzwerk +Removable.Label=Abnehmbar +Unknown.Label=Unbekannt + +[HttpServer.Messages] +Root.Dir.Exist.Message=Root-Verzeichnis {quot;}{0}{quot;} existiert nicht im Dateisystem. Der Server kann nicht gestartet werden. +TourServer.Label=Tour-Server + +[ThemeDesigner.Errors] +InternalError.Message=Es ist ein interner Fehler aufgetreten: {crlf;}{crlf;}{0}{crlf;}{crlf;}Melden Sie dieses Problem den Entwicklern. +UnhandledError.Message=Unbehandelter Fehler + +[Designer.ActiveInstall] +Continue.Button=Weiter +Cancel.Button=Abbrechen +Enter.Online.Message=Sie sind dabei, in den Online-Installationsverwaltungsmodus zu wechseln, in dem Sie Änderungen an Ihrer aktiven Windows-Installation vornehmen können.{crlf;}{crlf;}Da Sie in diesem Modus Ihre Installation ändern können, sollten Sie bei der Ausführung von Aufgaben mit diesem Programm äußerst vorsichtig sein.{crlf;}{crlf;}Wenn Sie eine Operation an einem Online-Image nachlässig durchführen, kann es sein, dass es beschädigt wird bis zu dem Punkt, dass die Installation nicht mehr gestartet werden kann.{crlf;}{crlf;}Wir SIND NICHT VERANTWORTLICH für Schäden, die an Ihrer aktiven Installation entstehen. Wenn Sie ein nicht bootfähiges System haben, sollten Sie Windows neu installieren (wenn möglich beim Sichern Ihrer Dateien) +ProjectUnloaded.Label=Das aktuelle Projekt wird entladen. +Active.Install.Label=Über die aktive Installationsverwaltung + +[Designer.AddCapabilities] +Ok.Button=OK +Cancel.Button=Abbrechen +Capabilities.Group=Fähigkeiten +SelectAll.Button=Alle auswählen +SelectNone.Button=Wählen Sie keine +Capability.Column=Fähigkeit +State.Column=Status +Options.Group=Optionen +Browse.Button=Durchsuche +Source.Label=Quelle: +WindowsUpdate.CheckBox=Beschränken Sie den Zugriff auf Windows Update +DifferentSource.CheckBox=Geben Sie eine andere Quelle für die Installation von Funktionen an +Detect.Group.Policy.Button=Von Gruppenrichtlinie erkennen +SourceHint.Description=Geben Sie die Quelle an, die für die Funktionserweiterung verwendet werden soll: +AddCapabilities.Label=Funktionen hinzufügen + +[Designer.AddCaps] +CommitImage.CheckBox=Commit-Image nach dem Hinzufügen von Funktionen ausführen + +[Designer.AddDrivers] +Ok.Button=OK +Cancel.Button=Abbrechen +DriverFiles.Group=Treiberdateien +Drivers.Required.Message=Bitte geben Sie die hinzuzufügenden Treiber an, indem Sie die Schaltflächen unten verwenden oder sie in die folgende Liste einfügen: +Remove.Selected.Entry.Button=Ausgewählten Eintrag entfernen +Remove.Entries.Button=Alle Einträge entfernen +AddFolder.Button=Ordner hinzufügen +AddFile.Button=Datei hinzufügen +FileFolder.Column=Datei/Ordner +Type.Column=Typ +DriverFolders.Group=Treiberordner +Scan.Driver.Message=Sie können das Programm die in der folgenden Liste vorhandenen Treiberordner rekursiv scannen lassen und sie ebenfalls hinzufügen. Kreuzen Sie dazu die Einträge an, die gescannt werden sollen: +Options.Group=Optionen +CommitImage.CheckBox=Commit-Image nach dem Hinzufügen von Treibern ausführen +Force.Install.CheckBox=Erzwingen Sie die Installation nicht signierter Treiber +Driver.Files.Inf.Filter=Treiberdateien|*.inf +DriverPackage.Title=Geben Sie das hinzuzufügende Treiberpaket an +DriverFolder.Description=Geben Sie den Ordner an, der Treiberpakete enthält. Sie können dann angeben, ob es rekursiv gescannt werden muss: +AddDrivers.Label=Treiber hinzufügen + +[Designer.AddEdgeBrowser] +Ok.Button=OK +Cancel.Button=Abbrechen +Microsoft.Label=Microsoft Edge Browser hinzufügen + +[Designer.AddEdgeFull] +Ok.Button=OK +Cancel.Button=Abbrechen +Microsoft.Label=Microsoft Edge hinzufügen + +[Designer.Add.Edge] +Ok.Button=OK +Cancel.Button=Abbrechen +Microsoft.Web.Label=Microsoft Edge WebView hinzufügen + +[Designer.Add.List] +Ok.Button=OK +Cancel.Button=Abbrechen +Browse.Button=Durchsuche +Entry.Label=Eintrag: +AllFiles.Filter=Alle Dateien|*.* +AddEntry.Label=Eintrag hinzufügen + +[Designer.AddPackage] +Ok.Button=OK +Cancel.Button=Abbrechen +Packages.Group=Pakete +Folder.Contains.Pkgnum.Label=Dieser Ordner enthält -Pakete. +SelectAll.Button=Alle auswählen +SelectNone.Button=Wählen Sie keine +Packages.Choose.RadioButton=Wählen Sie aus, welche Pakete hinzugefügt werden sollen: +Browse.Button=Durchsuche +PackageOperation.Label=Paketvorgang: +PackageSource.Label=Paketquelle: +Options.Group=Optionen +Save.Image.Packages.CheckBox=Image speichern nach dem Hinzufügen von Paketen +Ignore.CheckBox=Anwendbarkeitsprüfungen ignorieren (nicht empfohlen) +Update.Manifest.Button=Update-Manifest hinzufügen +AddPackages.Label=Pakete hinzufügen +CabFolder.Description=Geben Sie den Ordner an, der CAB- oder MSU-Pakete enthält: + +[Designer.AddPkg] +ScanRecursive.RadioButton=Ordner rekursiv nach Paketen durchsuchen +Skip.Online.Install.CheckBox=Paketinstallation überspringen, wenn Online-Vorgänge ausstehen + +[Designer.AppxProvision] +Ok.Button=OK +Cancel.Button=Abbrechen +Entry.List.View.Message=Wählen Sie einen Eintrag in der Listenansicht aus, um die Details einer App anzuzeigen und Additionseinstellungen zu konfigurieren +AppxVersion.Label=AppxVersion +AppxPublisher.Label=AppxPublisher +AppxTitle.Label=AppxTitle +Remove.Selected.Entry.Button=Ausgewählten Eintrag entfernen +Remove.Entries.Button=Alle Einträge entfernen +AddFolder.Button=Ordner hinzufügen +AddFile.Button=Datei hinzufügen +FileFolder.Column=Datei/Ordner +Type.Column=Typ +ApplicationName.Column=Anwendungsname +App.Publisher.Column=Anwendungsverleger +App.Version.Column=Anwendungsversion +Packages.Required.Message=Bitte fügen Sie gepackte oder entpackte AppX-Pakete hinzu, indem Sie die Schaltflächen unten verwenden oder sie in die Listenansicht unten einfügen: +AppxDependencies.Group=AppX-Abhängigkeiten +Remove.Dependencies.Button=Alle Abhängigkeiten entfernen +RemoveDependency.Button=Abhängigkeit entfernen +AddDependency.Button=Abhängigkeit hinzufügen +Package.Message=Ein AppX-Paket benötigt möglicherweise einige Abhängigkeiten, damit es korrekt installiert werden kann. Wenn ja, können Sie jetzt eine Liste der Abhängigkeiten angeben: +CustomDataFile.CheckBox=Benutzerdefinierte Datendatei: +Browse.Button=Durchsuche +AppxRegions.Group=AppX-Regionen +App.Available.CheckBox=App für alle Regionen verfügbar machen +App.Regions.Form.Message=App-Regionen müssen in Form von ISO 3166-1 Alpha 2- oder Alpha-3-Codes vorliegen. Um mehr über diese Codes zu erfahren, klicken Sie hier +Multiple.App.Regions.Label=Um mehrere App-Regionen anzugeben, trennen Sie diese durch ein Semikolon (;) +CommitImage.CheckBox=Commit-Image nach dem Hinzufügen von AppX-Paketen ausführen +Files.Title=Geben Sie die AppX-Dateien an, für die eine Bereitstellung hinzugefügt werden soll +DependencyFiles.Filter=Abhängigkeitsdateien|*.appx;*.msix +Xmllicenses.Filter=XML-Lizenzen|*.xml +LicenseFile.Title=Geben Sie eine Lizenzdatei an +CustomData.Filter=Alle Dateien|*.* +CustomData.File.Title=Geben Sie eine benutzerdefinierte Datendatei an +LicenseFile.CheckBox=Lizenzdatei: +Configure.Stub.Item=Stub-Präferenz nicht konfigurieren +StubPreference.Label=Stub-Präferenz: +Value.Button= +Add.Prov.Label=Bereitgestellte AppX-Pakete hinzufügen +MSIX.Packages.Filter=Anwendungen|*.appx;*.appxbundle;*.msix;*.msixbundle|Anwendungsinstallationspaket|*.appinstaller +Browse.Dependencies.Title=Durchsuche +Folder.Required.Description=Bitte geben Sie einen Ordner an, der entpackte AppX-Dateien enthält: +Install.Stub.Package.Item=Anwendung als Stub-Paket installieren +Install.Full.Package.Item=Anwendung als Vollpaket installieren + +[Designer.ProvPackage] +Ok.Button=OK +Cancel.Button=Abbrechen +PackagePath.Label=Paketpfad: +Browse.Button=Durchsuche +Action.Treverted.Add.Message=Diese Aktion kann nicht rückgängig gemacht werden. Sobald Sie ein Bereitstellungspaket hinzugefügt haben, können Sie es nicht mehr aus Ihrem Windows-Image entfernen. +Package.Ppkg.Filter=Bereitstellungspaket|*.ppkg +CatalogPath.Label=Katalog-Pfad: +Catalog.File.Cat.Filter=Catalogdatei|*.kat +Add.Packages.Label=Bereitstellungspakete hinzufügen +CommitImage.CheckBox=Commit-Image nach dem Hinzufügen dieses Bereitstellungspakets ausführen + +[Designer.DomainJoin] +DnstoolsBtn.Button= +Nicsettings.Group=NIC-Einstellungen +Verify.DNS.Label=DNS-Adresssyntax überprüfen +Default.Adapter.Same.Message=Standardmäßig verwendet dieser Adapter dasselbe Domänensuffix, das Sie oben angegeben haben. Sie können es später ändern +ManualAdapter.RadioButton=Geben Sie einen Netzwerkadapter manuell an: +Address.First.Line.Message=Die Adresse in der ersten Zeile ist die primäre DNS-Serveradresse und alle anderen Adressen werden zu alternativen Serveradressen. Sie können sowohl IPv4- als auch IPv6-Adressen angeben. +DNSServer.Addresses.Label=DNS Server Addresses (fügen Sie jede Adresse in eine eigene Zeile ein): +PrimarySuffix.Label=Primäres Domänensuffix: +InterfaceAlias.Label=Schnittstellenalias: +Domain.Suffix.Added.Message=Dieses Domänensuffix wird der Liste der DNS-Suffixe hinzugefügt. Weitere Suffixe können Sie später hinzufügen. +DNSSettings.Label=DNS-Einstellungen für Netzwerkadapter konfigurieren +Type.Security.Account.Label=Geben Sie den Namen des Security Account Managers (SAM) des Benutzerkontos in der Domäne ein: +Organizational.Unit.Label=Organisationseinheit: +User.Label=Benutzer: +SAM.Account.Label=SAM-Kontoname des ausgewählten Benutzerobjekts: +Org.Unit.Account.Message=Wenn sich das gewünschte Konto nicht in einer Organisationseinheit, sondern in einem Container oder woanders befindet, klicken Sie auf die folgende Schaltfläche, um es auszuwählen: +Pick.Account.Object.Button=Kontoobjekt auswählen +User.Manually.Item=Geben Sie einen Benutzer manuell an +Pick.User.Org.Item=Wählen Sie den folgenden Benutzer aus den Organisationseinheiten in meiner Domäne aus +Pick.User.Object.Item=Wählen Sie das folgende Benutzerobjekt von irgendwo in meiner Domäne aus +User.Principal.Name.Label=Benutzerprinzipalname (Windows 2000): +Logon.Path.Pre.Label=Anmeldepfad (vor Windows 2000): +Domain.Auto.Detected.Message=Ein Domänenname konnte nicht automatisch abgerufen werden, da dieses Gerät nicht zu einer Domäne gehört. +Ask.Admin.Provide.Message=Kontaktieren Sie Ihren Systemadministrator, um Authentifizierungsinformationen bereitzustellen, die für den Beitritt zur Domäne verwendet werden. Der hier angegebene Kontoname ist das ursprüngliche Konto des domänenverbundenen Systems und es werden die ursprünglichen Gruppenrichtlinien vom Domänencontroller abgerufen. {crlf;}{crlf;}Um die Einrichtung der Zielgeräte für den Beitritt zu dieser Domäne abzuschließen, klicken Sie auf „Fertig“. +Password.Label=Passwort: +UserAccount.Label=Benutzerkonto: +DomainName.Label=Domänenname: +Domain.Auth.Label=Domänen- und Authentifizierungsinformationen bereitstellen +Wizard.Helps.Set.Description=Dieser Assistent hilft Ihnen beim Einrichten Ihrer unbeaufsichtigten Antwortdatei, damit ein Gerät einer Domäne beitritt, die von Active Directory Domain Services (AD DS) betrieben wird. +Join.Active.Dir.Label=Treten Sie einer Active Directory-Domäne bei +WhatDNS.Link=Was ist DNS? +Back.Button=Zurück +Next.Button=Weiter +Cancel.Button=Abbrechen +Help.Button=Hilfe +Test.Dnsresolution.Label=Test-DNS-Auflösung +DNSZone.Domain.Choose.Label=DNS-Zone auswählen (nur Domänencontroller) +Domain.Services.Wizard.Label=Domänendienst-Assistent +PickAdapter.RadioButton=Netzwerkadapter auf diesem System wählen: + +[Designer.AppInstaller] +Wait.Message=Bitte warten Sie, während DISMTools das Anwendungspaket herunterlädt, um es diesem Image hinzuzufügen. Dies kann je nach Geschwindigkeit Ihrer Netzwerkverbindung einige Zeit dauern. +StatusLbl.Label=Status +TransferDetails.Group=Transferdetails +TimeRemaining.Label=Geschätzte verbleibende Zeit: +DownloadSpeed.Label=Downloadgeschwindigkeit: +DownloadURL.Label=Download-URL: +Cancel.Button=Abbrechen +Wait.Label=Bitte warten +CopyURI.Button=Kopieren +DownloadPackage.Button=Anwendungspaket wird heruntergeladen + +[Designer.AppDrive] +Ok.Button=OK +Cancel.Button=Abbrechen +Refresh.Button=Aktualisieren +DeviceID.Column=DeviceID +Model.Column=Modell +Partitions.Column=Partitionen +Size.Column=Größe +Target.Disk.Button=Zielfestplatte angeben +Destination.Disk.Id.Label=Zielfestplatten-ID (\\.\PHYSICALDRIVE(n)): + +[Designer.ApplyUnattend] +Ok.Button=OK +Cancel.Button=Abbrechen +Browse.Button=Durchsuche +AnswerFile.Label=Antwortdatei: +Answer.Files.XML.Filter=Antwortdateien|*.xml +Copy.AnswerFile.CheckBox=Antwortdatei in das Image-Sysprep-Verzeichnis kopieren +LeaveUnchecked.Message=Deaktiviert lassen, wenn die Antwortdatei beim Wechsel in den Auditmodus Sysprep-Konflikte verursacht. +UnattendAnswer.File.Label=Unbeaufsichtigte Antwortdatei anwenden + +[Designer.AutoReloadForm] +Wait.Message=Bitte warten Sie, während DISMTools die Wartungssitzung verwaister Image neu lädt. Dies kann einige Zeit dauern. Nach Abschluss wird dieser Dialog geschlossen. +ImageInfo.Group=Imageinformationen +Image.Mount.Point.Label=Imagemontagepunkt: +ImageFile.Label=Imagedatei: +Wait.Label=Bitte warten +DISMTools.Label=DISMTools + +[Designer.BgprocDetails] +Gathering.Image.Label=Imageinformationen sammeln +InfoTask.Label= +Processes.Take.Time.Label=Die Fertigstellung dieser Prozesse kann einige Zeit in Anspruch nehmen. +DISMTools.Label=DISMTools + +[Designer.BgprocFailure] +Ok.Button=OK +Run.Issues.Message=Wir sind beim Abrufen der Informationen zu diesem Windows-Image auf einige Probleme gestoßen. Dies kann auf Inkompatibilitäten zurückzuführen sein, die durch dieses Image und Systemkomponenten, durch Änderungen am Image oder durch Programmfehler verursacht werden.{crlf;}{crlf;}Bitte sehen Sie sich die folgende Liste an, um zu sehen, welche Aufgaben fehlgeschlagen sind und warum: +Failed.Bg.Procs.Label=Fehlerhafte Hintergrundprozesse + +[Designer.BgprocNotify] +Project.Loaded.Done.Label=Dieses Projekt wurde erfolgreich geladen +Gathering.Image.Label=Das Programm sammelt jetzt Imageinformationen im Hintergrund. Dies kann einige Zeit dauern. + +[Designer.BgProcesses] +Okbutton.Button=OK +Cancel.Button=Abbrechen +Enhance.App.Detect.CheckBox=Erweitern Sie die Erkennung installierter AppX-Pakete einer aktiven Installation mit PowerShell-Helfern +SkipNonRemovable.CheckBox=Pakete mit festgelegten nicht entfernbaren Richtlinien überspringen +DetectAllDrivers.CheckBox=Alle Imagetreiber erkennen +Skip.Framework.CheckBox=Framework-Pakete überspringen und sie aus den Auflistungen entfernen, wenn sie erkannt wurden +Run.CheckBox=Führen Sie alle Hintergrundprozesse aus, nachdem Sie eine Aufgabe ausgeführt haben + +[Designer.BgProcsSettings] +Additional.Label=Konfigurieren Sie zusätzliche Einstellungen für Hintergrundprozesse: +Advanced.Process.Label=Erweiterte Hintergrundprozesseinstellungen + +[Designer.BgProcessesBusy] +Ok.Button=OK +Finish.Process.Begin.Message=Sobald wir diesen Prozess abgeschlossen haben, können Sie mit der Ausführung von Imageaufgaben beginnen. Dies dauert normalerweise ein paar Minuten, kann aber vom Image und der Geschwindigkeit Ihres Computers abhängen.{crlf;}{crlf;}Den Status dieses Hintergrundvorgangs überprüfen, indem Sie auf das Symbol unten links klicken. +Re.Still.Gathering.Label=Wir sammeln immer noch Imageinformationen +DISMTools.Label=DISMTools + +[Designer.CapabilityFilter] +Apply.Button=Anwenden +Clear.Button=Leeren +Name.Label=Name: +State.Label=Status: +AnyState.Item=Jeder Staat +Installed.Item=Installiert +Install.Pending.Item=Installation steht aus +Removed.Item=Entfernt +FilterInfo.Prompt.Label=Filterfähigkeitsinformationen nach: +FilterInfo.Title=Informationen zur Filterfähigkeit + +[Designer.DISMComponents] +Ok.Button=OK +Component.Column=Komponente +Version.Column=Version +Dismcomponents.Label=DISM-Komponenten + +[Designer.DNSZones] +Ok.Button=OK +CancelButton.Button=Abbrechen +OfferedZones.Message=Dieser Server bietet die folgenden DNS-Zonen, aus denen Sie wählen können. Wählen Sie eine DNS-Zone aus der Liste unten aus und klicken Sie auf OK: +ZoneName.Column=Zonenname +DnsserverName.Column=DNS-Servername +DomainServices.Column=Integriert mit Domain Services? +ZoneType.Column=Zonentyp +Refresh.Button=Aktualisieren +DNSZone.Choose.Label=DNS-Zone auswählen + +[Designer.DisableFeat] +Ok.Button=OK +Cancel.Button=Abbrechen +Options.Group=Optionen +Lookup.Button=Nachschlagen +PackageName.Label=Paketname: +Remove.Feature.CheckBox=Funktion entfernen, ohne Manifest zu entfernen +ParentPackage.CheckBox=Geben Sie den Namen des übergeordneten Pakets für Funktionen an +Features.Group=Funktionen +FeatureName.Column=Feature-Name +State.Column=Status +DisableFeatures.Label=Funktionen deaktivieren + +[Designer.DriverFileInfo] +Ok.Button=OK +Copy.Button=Kopieren +Property.Column=Eigenschaft +Value.Column=Wert +Driver.File.Label=Informationen zur Treiberdatei: +Driver.File.Label.Label=Treiberdateiinformationen + +[Designer.DriverFilter] +Apply.Button=Anwenden +Clear.Button=Leeren +FilterPrompt.Label=Filtertreiberinformationen nach: +PublishedName.Item=Veröffentlichter Name +Original.File.Name.Item=Originaldateiname +ProviderName.Item=Providername +ClassName.Item=Klassenname +InboxStatus.Item=Inbox-Treiberstatus +Boot.Critical.Status.Item=Boot-Critical-Status +SignatureStatus.Item=Signaturstatus +Date.Item=Datum +MonthName.Label=Monatsname +Year.Item=Jahr +Month.Item=Monat +Released.Item=Veröffentlicht am +NotReleased.Item=Nicht veröffentlicht am +ReleasedBefore.Item=Vorher veröffentlicht +ReleasedOnBefore.Item=Veröffentlicht am oder vor +ReleasedAfter.Item=Freigegeben nach +ReleasedOnAfter.Item=Veröffentlicht am oder nach +Date.Label=Datum: +Search.Signed.CheckBox=Die gesuchten Treiber sind signiert +SignatureStatus.Label=Signaturstatus: +Search.BootCritical.CheckBox=Die gesuchten Treiber sind für den Bootvorgang von entscheidender Bedeutung +Boot.Critical.Status.Label=Boot-Critical-Status: +Search.Inbox.CheckBox=Die Treiber, nach denen ich suche, sind Teil der Windows-Distribution +InboxStatus.Label=Inbox-Treiberstatus: +ClassName.Label=Klassenname: +Class.Name.Notes.Label=Notizen zum Klassennamen: +ProviderName.Label=Providername: +Original.File.Name.Label=Originaldateiname: +PublishedName.Label==Veröffentlichter Name: +Driver.Searches.Choose.Label=Wählen Sie einen Filter aus, der für die Treibersuche verwendet werden soll. +Title=Filtertreiberinformationen + +[Designer.DriverFilePicker] +Ok.Button=OK +Cancel.Button=Abbrechen +RecursiveListing.Message=Nachfolgend finden Sie eine rekursive Auflistung aller Treiber in dem von Ihnen angegebenen Verzeichnis. Wählen Sie aus dieser Liste die Treiber aus, die Sie hinzufügen möchten, und klicken Sie auf „OK“. +Refresh.Button=Aktualisieren +DirectoryStatus.Label=Verzeichnisstatus +Driver.Files.Choose.Label=Wählen Sie Treiberdateien im Verzeichnis + +[Designer.EnableFeat] +Ok.Button=OK +Cancel.Button=Abbrechen +Features.Group=Funktionen +FeatureName.Column=Feature-Name +State.Column=Status +Options.Group=Optionen +Detect.Group.Policy.Button=Von Gruppenrichtlinie erkennen +Browse.Button=Durchsuche +Lookup.Button=Nachschlagen +FeatureSource.Label=Feature-Quelle: +PackageName.Label=Paketname: +Contact.Win.Update.CheckBox=Kontakt Windows Update für Online-Image +ParentFeatures.CheckBox=Alle übergeordneten Funktionen aktivieren +Feature.Source.CheckBox=Feature-Quelle angeben +ParentPackage.CheckBox=Geben Sie den Namen des übergeordneten Pakets für Funktionen an +SourceFolder.Description=Geben Sie einen Ordner an, der als Feature-Quelle fungiert: +EnableFeatures.Label=Funktionen aktivieren +CommitImage.CheckBox=Commit-Image nach dem Aktivieren von Funktionen ausführen + +[Designer.EnvVars] +Save.Changes.Label=Alle Änderungen speichern +Intro.Message=Mit diesem Tool können Sie die Umgebungsvariablen dieses Ziel-Images anzeigen und verwalten. Klicken Sie auf die Schaltfläche Speichern, um alle an den Umgebungsvariablen vorgenommenen Änderungen zu speichern. +TargetSystem.Label=Umgebungsvariablen für das Zielsystem +Name.Column=Name +Value.Column=Wert +Remove.Machine.Label=Maschinenvariable entfernen +Add.Machine.Variable.Button=Maschinenvariable hinzufügen +DefaultUser.Label=Umgebungsvariablen für Standardbenutzerprofile +Remove.User.Variable.Label=Benutzervariable entfernen +Add.User.Variable.Button=Benutzervariable hinzufügen +SaveVariable.Label=Variable speichern +Scope.Label=Umfang: +Hierarchical.Values.Message=Diese Variable ist hierarchisch. Der Systemvariablen hinzugefügte Werte werden der Benutzervariablen entweder vorangestellt oder durch diese ersetzt, wenn das Benutzerprofil geladen wird. +Variables.Location.Label=* Die in diesem Wert enthaltenen Umgebungsvariablen werden nicht erweitert. +Value.Label=Wert: +Name.Label=Name: +VariableInfo.Label=Umgebungsvariableninformationen: +Copy.Default.User.Label=In den Standardbenutzerbereich kopieren +Copy.Machine.Scope.Label=In Maschinenbereich kopieren +Move.Machine.Scope.Label=In den Maschinenbereich verschieben +Move.Default.User.Label=In den Standardbenutzerbereich verschieben +SystemVariables.Label=Systemumgebungsvariablenverwaltung + +[Designer.ExceptionForm] +Sorry.Inconvenience.Message=Wir entschuldigen uns für die Unannehmlichkeiten, aber DISMTools ist auf einen Fehler gestoßen, den es nicht beheben konnte, und wir brauchen Ihre Hilfe, um fortzufahren. Hier sind die Fehlerinformationen, falls Sie sie benötigen: +Help.Us.Fix.Label=Bitte helfen Sie uns, dieses Problem zu beheben +ReportIssue.Label=Melden Sie dieses Problem +Continue.Running.Message=Sie können das Programm möglicherweise weiter ausführen, indem Sie auf „Weiter“ klicken. Wird dieser Fehler jedoch ein zweites Mal angezeigt, können Sie das Programm durch Klicken auf Beenden zwangsweise schließen. Beachten Sie, dass an Projekten vorgenommene Änderungen sowie Änderungen in der Liste „Letzte“ nicht gespeichert werden. {crlf;}{crlf;}Was möchten Sie tun? +Reporting.Issue.Message=Wenn Sie dieses Problem melden, fügen Sie BITTE die Ausnahmeinformationen links ein. Andernfalls gelten die Standard-Schließungsrichtlinien, die eine Schließung Ihrer Ausgabe nach (mindestens) 4 Stunden vorsehen. +Continue.Button=Weiter +Exit.Button=Ende +Copy.Inspect.Logs.Button=Protokolle kopieren und prüfen +DISM.Tools.Internal.Label=DISMTools - Interner Fehler +Problem.Prevention.Message=Um zu verhindern, dass dieses Problem erneut auftritt, möchten wir mehr darüber erfahren, indem wir ein Problem im GitHub-Repository melden. Sie benötigen ein GitHub-Konto, um Feedback zu melden. + +[Designer.ExportDrivers] +Ok.Button=OK +Cancel.Button=Abbrechen +ExportTarget.Label=Exportziel: +Browse.Button=Durchsuche +DriversPath.Description=Bitte geben Sie den Pfad an, in den die Treiber exportiert werden: +Driver.Mode.Group=Treiberexportmodus +ClassName.Label=Klassenname: +Class.Name.Notes.Label=Notizen zum Klassennamen: +Matching.Drivers.RadioButton=Exportieren Sie Treiber mit dem folgenden passenden Klassennamen an das Ziel: +Image.Drivers.RadioButton=Exportieren Sie alle Imagetreiber zum Ziel +ExportDrivers.Label=Treiber exportieren + +[Designer.FFUApply] +Ok.Button=OK +Cancel.Button=Abbrechen +Source.Group=Quelle +Browse.Button=Durchsuche +Mounted.Image.Label=Gemountetes Image +SourceImageFile.Label=Quell-Imagedatei: +SfufilePattern.Group=SFU-Dateimuster +Status.InitialLabel= +ScanPattern.Button=Scan-Muster +Name.Image.Button=Benutzername des Images +NamingPattern.Label=Namensmuster: +Destination.Group=Ziel +DriveDetails.Label=Laufwerksdetails: +DestinationDrive.Label=Ziellaufwerk: +Specify.Button=Angeben... +Full.Flash.Utility.Filter=Vollständige Flash-Dienstprogrammdateien|*.ffu|Aufgeteilte FFU-Dateien|*.sfu +Source.Image.Required.Title=Bitte geben Sie das anzuwendende Quell-Image an +Reference.Sfufiles.CheckBox=Referenz-SFU-Dateien +File.Label=Eine FFU-Datei anwenden + +[Designer.FFUCapture] +Ok.Button=OK +Cancel.Button=Abbrechen +Source.Group=Quelle +DriveDetails.Label=Laufwerksdetails: +SourceDrive.Label=Quelllaufwerk: +Specify.Button=Angeben... +Destination.Group=Ziel +Browse.Button=Durchsuche +Destination.ImageFile.Label=Ziel-Imagedatei: +Options.Group=Optionen +Description.Goes.Label=(Beschreibung kommt hierhin) +None.Item=keine +Default.Item=Standard +CompressionType.Label=Ziel-Imagekomprimierungstyp: +Dest.Image.Description.Label=Ziel-Imagebeschreibung: +Destination.Image.Name.Label=Ziel-Imagename: +Full.Flash.Utility.Filter=Vollständige Flash-Dienstprogrammdateien|*.ffu +File.Label=Erfassen einer FFU-Datei + +[Designer.FFUInfoDialog] +Ok.Button=OK +Cancel.Button=Abbrechen +Ffuheader.Tab=FFU-Header +Value.Label= +CompressionType.Label=CompressionType: +Ffuversion.Label=FFU-Version: +Physical.Disk.Path.Label=Datenträgerpfad: +Vhdstorage.Device.ID.Label=VHD-Speichergeräte-ID: +MountedVHDID.Label=VHD-ID: +MountedVhdpath.Label=Mounted VHD-Pfad: +MountedVHD.Tab=VHD-Mount +Selected.Partition.Label=Informationen zur ausgewählten Partition: +Mounted.FFU.Message=Diese gemountete FFU-Datei enthält die folgenden Partitionen. Um Details einer bestimmten Partition anzuzeigen, wählen Sie sie aus der folgenden Liste aus: +Manifest.Tab=Manifest +Full.Flash.Utility.Label=Informationen zum Full Flash Utility (FFU) + +[Designer.FFUOptimize] +Ok.Button=OK +Cancel.Button=Abbrechen +Browse.Button=Durchsuche +ImageFile.Label=Imagedatei zur Optimierung: +Default.Partition.CheckBox=Optimieren Sie eine andere Partition als die Standardpartition in der angegebenen FFU-Datei +PartitionNumber.Label=Partitionsnummer: +Full.Flash.Utility.Filter=Vollständige Flash-Dienstprogrammdateien|*.ffu|Aufgeteilte FFU-Dateien|*.sfu +OpenFile.Title=Bitte geben Sie das anzuwendende Quell-Image an +Ffuimages.Label=FFU-Image optimieren + +[Designer.FFUSplit] +Ok.Button=OK +Cancel.Button=Abbrechen +Integrity.CheckBox=Image-Integrität prüfen +Browse.Button=Durchsuche +LargeFile.Note.Message=Beachten Sie, dass eine geteilte Imagedatei größer als der angegebene Wert sein kann, um eine große Datei im Image unterzubringen +Maximum.Size.Images.Label=Maximale Größe der geteilten Image (in MB): +Name.Path.Destination.Label=Name und Pfad des Ziel-Split-Images: +Source.Image.Label=Zu teilendes Quell-Image: +Sfufiles.Filter=SFU-Dateien|*.sfu +Target.Location.Title=Geben Sie den Zielort der geteilten Image an: +Full.Flash.Utility.Filter=Vollständige Flash-Dienstprogrammdateien|*.ffu +Source.WIM.File.Title=Geben Sie die zu teilende Quell-WIM-Datei an: +SplitFfuimages.Label=FFU-Image aufteilen + +[Designer.FeatureFilter] +Apply.Button=Anwenden +Clear.Button=Leeren +Filter.Feature.Prompt.Label=Filtern Sie Funktionsinformationen nach: +Name.Label=Name: +State.Label=Status: +AnyState.Item=Jeder Staat +Enabled.Item=Aktiviert +Enablement.Pending.Item=Aktivierung Ausstehend +Disabled.Item=Deaktiviert +Disablement.Pending.Item=Deaktivierung Ausstehend +Filter.Feature.Title=Informationen zu Filterfunktionen + +[Designer.Get.AppX] +PackageName.Label=Paketname: +DynamicValue.Label= +Display.Name.Label=Anwendungsanzeigename: +Architecture.Label=Architektur: +ResourceID.Label=Ressourcen-ID: +Version.Label=Version: +Registered.User.Label=Ist für einen beliebigen Benutzer registriert? +Install.Dir.Label=Installationsverzeichnis: +Package.Manifest.Label=Speicherort des Paketmanifests: +StoreLogo.Asset.Dir.Label=Verzeichnis des Store-Logo-Assets: +Main.StoreLogo.Asset.Label=Hauptspeicher-Logo-Asset: +Asset.Guessed.DISM.Message=Dieses Asset wurde von DISMTools anhand seiner Größe erraten, was zu einem falschen Ergebnis führen kann. Wenn das passiert, melden Sie bitte ein Problem im GitHub-Repository +Asset.One.IM.Link=Dieses Asset ist nicht das, was ich suche +AppX.Package.Label=AppX-Paketinformationen +Installed.AppX.Label=Wählen Sie links ein installiertes AppX-Paket aus, um seine Informationen hier anzuzeigen +Save.Button=Speichern +AppX.Package.Get.Label=AppX-Paketinformationen abrufen + +[Designer.CapabilityInfo] +Ready.Label=Bereit +Identity.Column=Fähigkeitsidentität +State.Column=Status +Identity.Label=Fähigkeitsidentität: +DynamicValue.Label= +CapabilityName.Label=Fähigkeitsname: +CapabilityState.Label=Fähigkeitsstatus: +DisplayName.Label=Anzeigename: +Description.Label=Fähigkeitsbeschreibung: +Sizes.Label=Größen: +CapabilityInfo.Label=Fähigkeitsinformationen +Save.Button=Speichern +Look.Item.Online.Button=Sehen Sie sich diesen Artikel online an +Get.Label=Fähigkeitsinformationen abrufen + +[Designer.GetCapInfo] +SelectCapability.Label=Wählen Sie links eine installierte Funktion aus, um ihre Informationen hier anzuzeigen + +[Designer.GetDriverInfo] +View.Driver.File.Button=Informationen zur Treiberdatei anzeigen +Change.Button=Ändern +Bg.Procs.Notice.Message=Sie haben die Hintergrundprozesse so konfiguriert, dass nicht alle in diesem Image vorhandenen Treiber angezeigt werden, das Treiber enthält, die Teil der Windows-Distribution sind. Daher wird der Treiber, an dem Sie interessiert sind, möglicherweise nicht angezeigt. +Save.Button=Speichern +Status.Label=Status +PublishedName.Column=Veröffentlichter Name +Original.File.Name.Column=Originaldateiname +PublishedName.Label=Veröffentlichter Name: +DynamicValue.Label= +Original.File.Name.Label=Originaldateiname: +ProviderName.Label=Providername: +ClassName.Label=Klassenname: +ClassDescription.Label=Klassenbeschreibung: +ClassGUID.Label=Klassen-GUID: +Catalog.File.Path.Label=Catalogdateipfad: +Part.Windows.Label=Teil der Windows-Distribution? +Critical.Boot.Process.Label=Ist für den Boot-Prozess entscheidend? +Version.Label=Version: +Date.Label=Datum: +Driver.Signature.Label=Treibersignaturstatus: +DriverInfo.Label=Treiberinformationen +Installed.Driver.View.Label=Wählen Sie einen installierten Treiber aus, um seine Informationen hier anzuzeigen +RemoveAll.Button=Alle entfernen +RemoveSelected.Button=Ausgewählte entfernen +AddDriver.Button=Treiber hinzufügen +Hardware.Description.Label=Hardwarebeschreibung: +HardwareID.Label=Hardware-ID: +AdditionalIds.Label=Zusätzliche IDs: +CompatibleIds.Label=Kompatible IDs: +ExcludeIds.Label=IDs ausschließen: +Hardware.Manufacturer.Label=Hardwarehersteller: +Architecture.Label=Architektur: +JumpTarget.Label=Zum Ziel springen: +HardwareTargets.Label=Hardwareziele +Add.DriverPackage.Label=Fügen Sie ein Treiberpaket hinzu oder wählen Sie es aus, um seine Informationen hier anzuzeigen +GoBack.Link=<- Geh zurück +Help.AddDrivers.Message=Klicken Sie hier, um Informationen zu Treibern zu erhalten, die Sie dem von Ihnen bedienten Windows-Image hinzufügen möchten, bevor Sie mit dem Treiberadditionsprozess fortfahren +Get.Drivers.Message=Klicken Sie hier, um Informationen zu Treibern zu erhalten, die Sie installiert haben oder die mit dem von Ihnen bedienten Windows-Image geliefert wurden +InstalledDriver.Link=Ich möchte Informationen zu installierten Treibern im Image erhalten +Iwant.Link=Ich möchte Informationen zu Treiberdateien erhalten +Get.Label=Worüber möchten Sie Informationen erhalten? +Driver.Files.Inf.Filter=Treiberdateien|*.inf +Locate.Driver.Files.Title=Treiberdateien suchen +Driver.Label=Treiberinformationen abrufen + +[Designer.GetFeatureInfo] +FeatureName.Column=Feature-Name +FeatureState.Column=Feature-Status +FeatureName.Label=Feature-Name: +DynamicValue.Label= +DisplayName.Label=Anzeigename: +Description.Label=Funktionsbeschreibung: +RestartRequired.Label=Ist ein Neustart erforderlich? +FeatureState.Label=Feature-Status: +CustomProps.Label=Benutzerdefinierte Eigenschaften: +FeatureInfo.Label=Feature-Informationen +Installed.Left.Label=Wählen Sie links eine installierte Funktion aus, um ihre Informationen hier anzuzeigen +Ready.Label=Bereit +Save.Button=Speichern +Look.Item.Online.Button=Sehen Sie sich diesen Artikel online an +Get.Feature.Label=Feature-Informationen abrufen + +[Designer.Get.Img] +WIM.Files.Wimvirtual.Filter=WIM-Dateien|*.wim|Virtuelle Festplattendateien|*.vhd, *.vhdx|ESD-Dateien|*.esd|SWM-Dateien|*.swm|Full Flash Utility-Dateien|*.ffu +Image.Title=Geben Sie das Image an, aus dem Sie die Informationen erhalten möchten +Index.Column=Index +ImageName.Column=Imagename +Pick.Button=Wählen +Browse.Button=Durchsuche +AnotherImage.RadioButton=Ein anderes Image +CurrentlyMounted.RadioButton=Aktuell gemountetes Image +List.Indexes.ImageFile.Label=Liste der Indizes der Imagedatei: +ImageFile.Label=Imagedatei zum Abrufen von Informationen aus: +ImageVersion.Label=Imageversion: +DynamicValue.Label= +ImageName.Label=Imagename: +ImageDescription.Label=Imagebeschreibung: +ImageSize.Label=Imagegröße: +Supports.WIM.Boot.Label=Unterstützt WIMBoot? +Architecture.Label=Architektur: +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack-Build: +ServicePackLevel.Label=Service Pack-Ebene: +InstallationType.Label=Installationstyp: +Edition.Label=Ausgabe: +ProductType.Label=Produkttyp: +ProductSuite.Label=Produktsuite: +System.Root.Dir.Label=Systemstammverzeichnis: +FileCount.Label=Dateianzahl: +Dates.Label=Termine: +Installed.Languages.Label=Installierte Sprachen: +ImageInfo.Label=Imageinformationen +Index.List.View.Label=Wählen Sie einen Index in der Listenansicht links aus, um seine Informationen hier anzuzeigen +Save.Button=Speichern +Image.Label=Imageinformationen abrufen + +[Designer.GetPkgInfo] +AddPackages.Help.Message=Klicken Sie hier, um Informationen zu Paketen zu erhalten, die Sie dem von Ihnen bedienten Windows-Image hinzufügen möchten, bevor Sie mit dem Paketzugabeprozess fortfahren +Get.Packages.Message=Klicken Sie hier, um Informationen zu Paketen zu erhalten, die Sie installiert haben oder die mit dem von Ihnen bedienten Windows-Image geliefert wurden +InstalledPackage.Link=Ich möchte Informationen zu installierten Paketen im Image erhalten +PackageFile.Link=Ich möchte Informationen zu Paketdateien erhalten +Get.Label=Worüber möchten Sie Informationen erhalten? +Save.Button=Speichern +Status.Label=Status +PackageName.Label=Paketname: +DynamicValue.Label= +Package.Applicable.Label=Ist das Paket anwendbar? +Copyright.Label=Copyright: +Company.Label=Unternehmen: +CreationTime.Label=Erstellungszeit: +Description.Label=Beschreibung: +InstallClient.Label=Client installieren: +Install.Package.Name.Label=Paketnamen installieren: +InstallTime.Label=Installationszeit: +Last.Update.Time.Label=Letzte Aktualisierungszeit: +DisplayName.Label=Anzeigename: +ProductName.Label=Produktname: +ProductVersion.Label=Produktversion: +ReleaseType.Label=Release-Typ: +RestartRequired.Label=Ist ein Neustart erforderlich? +SupportInfo.Label=Supportinformationen: +State.Label=Status: +Boot.Up.Required.Label=Ist für die vollständige Installation ein Boot-Up erforderlich? +Capability.Identity.Label=Fähigkeitsidentität: +CustomProps.Label=Benutzerdefinierte Eigenschaften: +Features.Label=Funktionen: +PackageInfo.Label=Paketinformationen +Installed.Package.View.Label=Wählen Sie ein installiertes Paket aus, um seine Informationen hier anzuzeigen +RemoveAll.Button=Alle entfernen +RemoveSelected.Button=Ausgewählte entfernen +AddPackage.Button=Paket hinzufügen +Add.Package.File.Label=Fügen Sie eine Paketdatei hinzu oder wählen Sie sie aus, um ihre Informationen hier anzuzeigen +GoBack.Link=<- Geh zurück +Cabfiles.Filter=CAB-Dateien|*.cab +Locate.Package.Files.Title=Paketdateien lokalisieren +Package.Label=Paketinformationen abrufen + +[Designer.WinPESettings] +Ok.Button=OK +Windows.Label=Dies sind die Windows PE-Einstellungen für dieses Image: +Change.Button=Ändern +TargetPath.Label=Zielpfad: +ScratchSpace.Label=Scratchpfad: +Save.Button=Speichern +Get.Windows.Pesettings.Label=Windows PE-Einstellungen abrufen + +[Designer.ImageFilePicker] +Ok.Button=OK +Cancel.Button=Abbrechen +ImageFile.Column=Imagedatei +Pick.Windows.ImageFile.Label=Wählen Sie die Windows-Imagedatei +MountList.Prompt.Label=Wählen Sie die Windows-Imagedatei, die Sie mounten möchten, aus der Liste unten aus und klicken Sie auf OK: + +[Designer.ImageTaskHeader] +ItemText.Title=Artikeltext + +[Designer.ImgAppend] +Ok.Button=OK +Cancel.Button=Abbrechen +Options.Group=Optionen +Create.Button=Erstellen +Path.Config.File.Label=Pfad der Konfigurationsdatei: +Grab.Last.Image.Button=Vom letzten Image greifen +Browse.Button=Durchsuche +Reparse.Point.Tag.CheckBox=Verwenden Sie den Fix für das Reparse-Point-Tag +ExtendedAttributes.CheckBox=Erweiterte Attribute erfassen +Check.File.Errors.CheckBox=Auf Dateifehler prüfen +Verify.Image.CheckBox=Image-Integrität überprüfen +Image.Bootable.CheckBox=Image bootfähig machen (nur Windows PE) +WIM.Boot.Config.CheckBox=Mit WIMBoot-Konfiguration anhängen +Exclude.Files.Dirs.CheckBox=Bestimmte Dateien und Verzeichnisse für das Ziel-Image ausschließen +Dest.Image.Description.Label=Ziel-Imagebeschreibung: +Destination.Image.Name.Label=Ziel-Imagename: +Destination.ImageFile.Label=Ziel-Imagedatei: +Sources.Destinations.Group=Quellen und Ziele +Source.Image.Dir.Label=Quell-Imageverzeichnis: +WIM.Files.Filter=WIM-Dateien|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Geben Sie eine WimScript.ini-Konfigurationsdatei an +AppendImage.Label=An ein Image anhängen + +[Designer.ImgApply] +Ok.Button=OK +Cancel.Button=Abbrechen +Source.Group=Quelle +Browse.Button=Durchsuche +Mounted.Image.Label=Gemountetes Image +SourceImageFile.Label=Quell-Imagedatei: +Options.Group=Optionen +Extended.Attributes.CheckBox=Erweiterte Attribute anwenden +Image.Compact.Mode.CheckBox=Image im kompakten Modus anwenden +ImageIndex.Label=Imageindex: +Append.Image.WIM.CheckBox=Image mit WIMBoot-Konfiguration anhängen +Reference.Swmfiles.CheckBox=Referenz-SWM-Dateien +Reparse.Point.Tag.CheckBox=Verwenden Sie den Fix für das Reparse-Point-Tag +Verify.CheckBox=Überprüfen +Integrity.CheckBox=Image-Integrität prüfen +Destination.Group=Ziel +Destination.Dir.Label=Zielverzeichnis: +WIM.Files.Wimswm.Filter=WIM-Dateien|*.wim|SWM-Dateien|*.swm|ESD-Dateien|*.esd +Source.Image.Required.Title=Bitte geben Sie das anzuwendende Quell-Image an +SwmfilePattern.Group=SWM-Dateimuster +Status.InitialLabel= +ScanPattern.Button=Scan-Muster +Name.Image.Button=Benutzername des Images +NamingPattern.Label=Namensmuster: +DestinationDir.Description=Bitte geben Sie das Zielverzeichnis an, auf das das Image angewendet werden soll: +ApplyImage.Label=Ein Image anwenden +Validate.Image.CheckBox=Image für Trusted Desktop validieren + +[Designer.ImgCapture] +Ok.Button=OK +Cancel.Button=Abbrechen +Sources.Destinations.Group=Quellen und Ziele +Browse.Button=Durchsuche +Destination.ImageFile.Label=Ziel-Imagedatei: +Source.Image.Dir.Label=Quell-Imageverzeichnis: +Options.Group=Optionen +Description.Goes.Label=(Beschreibung kommt hierhin) +None.Item=keine +Fast.Item=Schnell +Maximum.Item=Maximal +Create.Button=Erstellen +Path.Config.File.Label=Pfad der Konfigurationsdatei: +Reparse.Point.Tag.CheckBox=Verwenden Sie den Fix für das Reparse-Point-Tag +Mount.Dest.Image.CheckBox=Ziel-Image zur späteren Verwendung mounten +Extended.Attributes.CheckBox=Erweiterte Attribute erfassen +Append.WIM.Boot.CheckBox=Mit WIMBoot-Konfiguration anhängen +Check.File.Errors.CheckBox=Auf Dateifehler prüfen +Verify.Image.CheckBox=Image-Integrität überprüfen +Image.Bootable.CheckBox=Image bootfähig machen (nur Windows PE) +Exclude.Files.Dirs.CheckBox=Bestimmte Dateien und Verzeichnisse für das Ziel-Image ausschließen +CompressionType.Label=Ziel-Imagekomprimierungstyp: +Dest.Image.Description.Label=Ziel-Imagebeschreibung: +Destination.Image.Name.Label=Ziel-Imagename: +WIM.Files.Filter=WIM-Dateien|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Geben Sie eine WimScript.ini-Konfigurationsdatei an +CaptureImage.Label=Ein Image aufnehmen + +[Designer.ImgCleanup] +Ok.Button=OK +Cancel.Button=Abbrechen +Task.Choose.Label=Aufgabe wählen: +Revert.Pending.Actions.Item=Ausstehende Aktionen zurücksetzen +Clean.Up.ServicePack.Item=Service Pack-Sicherungsdateien bereinigen +Clean.Up.Component.Item=Komponentenspeicher bereinigen +Analyze.Component.Store.Item=Komponentenspeicher analysieren +Check.Component.Store.Item=Komponentenspeicher prüfen +Scan.Comp.Store.Item=Komponentenspeicher auf Beschädigung prüfen +Repair.Component.Store.Item=Komponentenspeicher reparieren +TaskOptions.Group=Aufgabenoptionen +NoOptions.Message=Für diese Aufgabe gibt es keine konfigurierbaren Options. Sie sollten diese Aufgabe jedoch nur ausführen, um zu versuchen, ein Windows-Image wiederherzustellen, das nicht gebootet werden kann. +HideServicePack.CheckBox=Service Pack aus der Liste der installierten Updates ausblenden +Last.Reset.Base.Label=LastResetBase_UTC +Only.Check.Option.Label=Sie sollten diese Option nur überprüfen, wenn der Basis-Reset mehr als 30 Minuten dauert +Superseded.Base.Reset.Label=Der Basis-Reset der ersetzten Komponenten wurde zuletzt ausgeführt auf: +Defer.Long.Running.CheckBox=Lang andauernde Bereinigungsvorgänge verschieben +Reset.Base.CheckBox=Basis der ersetzten Komponenten zurücksetzen +NoOptions.Label=Für diese Aufgabe gibt es keine konfigurierbaren Options. +Browse.Button=Durchsuche +Source.Label=Quelle: +WindowsUpdate.CheckBox=Beschränken Sie den Zugriff auf Windows Update +Different.Source.CheckBox=Verwenden Sie eine andere Quelle für die Komponentenreparatur +Detect.Group.Policy.Button=Von Gruppenrichtlinie erkennen +Task.Listed.Label=Wählen Sie eine oben aufgeführte Aufgabe aus, um ihre Optionen zu konfigurieren. +Task.See.Choose.Label=Wählen Sie eine Aufgabe aus, um ihre Beschreibung anzuzeigen +WIM.Files.Wimesd.Filter=WIM-Dateien|*.wim|ESD-Dateien|*.esd +Source.Title=Geben Sie die Quelle an, aus der wir die Integrität des Komponentenspeichers wiederherstellen +ImageCleanup.Label=Imagebereinigung + +[Designer.ImageConvert] +Converted.Message=Das angegebene Image wurde erfolgreich in das Zielformat konvertiert. Der Einfachheit halber kann der Datei-Explorer geöffnet werden, damit Sie sehen können, wo sich das Ziel-Image befindet.{crlf;}{crlf;}Möchten Sie das Verzeichnis öffnen, in dem das Ziel-Image gespeichert ist? +Converted.Label=Das Image wurde erfolgreich konvertiert +Yes.Button=Ja +No.Button=Nein +AppName.Label=DISMTools + +[Designer.ImgExport] +Ok.Button=OK +Cancel.Button=Abbrechen +Sources.Destinations.Group=Quellen und Ziele +Browse.Button=Durchsuche +Destination.ImageFile.Label=Ziel-Imagedatei: +SourceImageFile.Label=Quell-Imagedatei: +Options.Group=Optionen +Reference.Swmfiles.CheckBox=Referenz-SWM-Dateien +Status.InitialLabel= +ScanPattern.Button=Scan-Muster +Name.Image.Button=Benutzername des Images +NamingPattern.Label=Namensmuster: +CustomName.CheckBox=Geben Sie einen benutzerdefinierten Namen für das Ziel-Image an +Description.Goes.Label=(Beschreibung kommt hierhin) +None.Item=keine +Fast.Item=Schnell +Maximum.Item=Maximal +Recovery.Item=Wiederherstellung +CompressionType.Label=Ziel-Imagekomprimierungstyp: +Image.Bootable.CheckBox=Image bootfähig machen (nur Windows PE) +Append.Image.WIM.CheckBox=Image mit WIMBoot-Konfiguration anhängen +Index.Column=Index +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Source.Image.Index.Label=Quell-Imageindex: +WIM.Files.Wimesd.Filter=WIM-Dateien|*.wim|ESD-Dateien|*.esd +WIM.Files.Wimswm.Filter=WIM-Dateien|*.wim|SWM-Dateien|*.swm +Source.ImageFile.Title=Geben Sie eine zu exportierende Quell-Imagedatei an +ExportImage.Label=Exportieren Sie ein Image +CheckIntegrity.CheckBox=Überprüfen Sie die Integrität, bevor Sie das Image exportieren + +[Designer.ImageIndexDelete] +Ok.Button=OK +Cancel.Button=Abbrechen +SourceImage.Label=Quell-Image: +Browse.Button=Durchsuche +Mounted.Image.Button=Gemountetes Image +VolumeImages.Group=VolumenImage +Index.Column=Index +ImageName.Column=Imagename +Get.Indexes.Image.Label=Indizes aus dem Image abrufen. Bitte warten +Mark.VolumeImages.Message=Bitte markieren Sie die zu löschenden VolumenImage links. Das Image wird dann die rechts angezeigten Indizes haben +Integrity.CheckBox=Image-Integrität prüfen +WIM.Files.Filter=WIM-Dateien|*.wim +Source.Image.Remove.Title=Geben Sie das Quell-Image an, aus dem Volume-Image entfernt werden sollen +Remove.Volume.Image.Label=Entfernen Sie ein Volume-Image + +[Designer.ImageIndexSwitch] +Ok.Button=OK +Cancel.Button=Abbrechen +Indexes.Group=Indizes +Save.Changes.RadioButton=Änderungen im Index speichern +Index.Label= +Destination.Mount.Label=Zielindex zum Mounten: +Unmounting.Source.Label=Was tun beim Unmounten des Quellindex? +Image.Label=Image: +Already.Mounted.Label=Dieser Index wurde bereits gemountet +Image.Indexes.Label=Image-Index wechseln +DiscardChanges.RadioButton=Änderungen verwerfen aufheben + +[Designer.Img.Save] +Status.Label=Status +Wait.Message=Bitte warten Sie, während DISMTools die Imageinformationen in einer Datei speichert. Dies kann je nach den ausgeführten Aufgaben einige Zeit in Anspruch nehmen. +Saving.Image.Button=Imageinformationen speichern + +[Designer.ImgMount] +Ok.Button=OK +Cancel.Button=Abbrechen +Options.Required.Label=Bitte geben Sie die Optionen zum Mounten eines Images an: +Source.Group=Quelle +Notewant.ESD.Label=HINWEIS: Wenn Sie eine ESD-Datei mounten möchten, müssen Sie sie zuerst in eine WIM-Datei konvertieren +Convert.Button=Konvertieren +Browse.Button=Durchsuche +ImageFile.Label=Imagedatei*: +Destination.Group=Ziel +MountDirectory.Label=Verzeichnis mounten*: +Options.Group=Optionen +Index.Column=Index +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Integrity.CheckBox=Image-Integrität prüfen +Optimize.Times.CheckBox=Mount-Zeiten optimieren +Mount.Read.CheckBox=Mounten mit Nur-Lese-Berechtigungen +Index.Label=Index*: +Fields.End.Required.Label=Die Felder, die auf * enden, sind erforderlich +FileSpec.Filter=WIM-Dateien|*.wim|ESD-Dateien|*.esd|SWM-Dateien|*.swm|VHD(X)-Dateien|*.vhd;*.vhdx|ISO-Dateien|*.iso|Full Flash Utility-Dateien|*.ffu +MountImage.Label=Ein Image einbinden + +[Designer.ImgOptimize] +Ok.Button=OK +Cancel.Button=Abbrechen +Path.Mounted.Image.Label=Pfad des gemounteten Images zur Optimierung: +Pick.Button=Wählen +Mounted.Image.Button=Gemountetes Image +Image.Optimization.Mode=Imageoptimierungsmodus +Reduce.Online.RadioButton=Reduzieren Sie die Online-Konfigurationszeit, die das Zielbetriebssystem während des Bootens verbringt +Image.Again.Label=Sie müssen das Image möglicherweise erneut optimieren, wenn Sie nach dieser Aufgabe Wartungsvorgänge durchführen. +OfflineImage.RadioButton=Konfigurieren Sie ein Offline-Image für die Installation auf einem WIMBoot-System (nur Windows 8.1) +OptimizeImages.Label=Image optimieren + +[Designer.Img.SWM] +Ok.Button=OK +Cancel.Button=Abbrechen +Split.WIM.Files.Filter=WIM-Dateien aufteilen|*.swm +Source.Swmfile.Title=Geben Sie die zusammenzuführende Quell-SWM-Datei an +WIM.Files.Filter=WIM-Dateien|*.wim +Dest.WIM.File.Title=Geben Sie die Ziel-WIM-Datei an, mit der die Quell-SWM-Dateien zusammengeführt werden sollen +SourceSwmfile.Label=Source-SWM-Datei: +Browse.Button=Durchsuche +Destination.WIM.File.Label=Ziel-WIM-Datei: +Notewhen.Specifying.Message=HINWEIS: Wählen Sie beim Angeben der SWM-Datei die erste Datei aus. DISMTools kümmert sich um zusätzliche SWM-Dateien, die in diesem Verzeichnis gespeichert sind. +LearnHow.Link=Lernen Sie, wie es geht +Source.Group=Quelle +Options.Group=Optionen +Index.Column=Index +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Index.Label=Index: +Destination.Group=Ziel +MergeSwmfiles.Label=SWM-Dateien zusammenführen + +[Designer.ImgSplit] +Ok.Button=OK +Cancel.Button=Abbrechen +Swmfiles.Filter=SWM-Dateien|*.swm +SaveFile.Title=Geben Sie den Zielort der geteilten Image an: +WIM.Files.Filter=WIM-Dateien|*.wim +Source.WIM.File.Title=Geben Sie die zu teilende Quell-WIM-Datei an: +Source.Image.Label=Zu teilendes Quell-Image: +Browse.Button=Durchsuche +Name.Path.Destination.Label=Name und Pfad des Ziel-Split-Images: +Maximum.Size.Images.Label=Maximale Größe der geteilten Image (in MB): +LargeFile.Note.Message=Beachten Sie, dass eine geteilte Imagedatei größer als der angegebene Wert sein kann, um eine große Datei im Image unterzubringen +Integrity.CheckBox=Image-Integrität prüfen +SplitImages.Label=Image aufteilen + +[Designer.ImgUmount] +Ok.Button=OK +Cancel.Button=Abbrechen +Options.Required.Label=Bitte geben Sie die Optionen zum Aushängen dieses Images an: +MountDirectory.Group=Verzeichnis mounten +Pick.Button=Wählen +MountDirectory.Label=Mount-Verzeichnis: +LocatedSomewhere.RadioButton=befindet sich woanders +LoadedProject.RadioButton=wird im Projekt geladen +Mount.Dir.Label=Das Mount-Verzeichnis: +Additional.Options.Group=Zusätzliche Optionen +Save.Changes.Unmount.Item=Änderungen speichern und aushängen +Discard.Changes.Unmount.Item=Änderungen verwerfen und aushängen +Append.Changes.CheckBox=Änderungen an einen anderen Index anhängen +Integrity.CheckBox=Image-Integrität prüfen +UnmountOperation.Label=Unmount-Vorgang: +MountDir.Description=Bitte geben Sie ein Mount-Verzeichnis an: +UnmountImage.Label=Ein Image aushängen + +[Designer.Img.WIM] +Ok.Button=OK +Cancel.Button=Abbrechen +Source.Group=Quelle +Browse.Button=Durchsuche +SourceImageFile.Label=Quell-Imagedatei: +Options.Group=Optionen +Index.Column=Index +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Index.Label=Index: +Format.Converted.Image.Label=Konvertiertes Imageformat: +Format.Ichoose.Link=Welches Format wähle ich? +Destination.Group=Ziel +Destination.ImageFile.Label=Ziel-Imagedatei: +OpenFile.Filter=WIM-Dateien|*.wim|ESD-Dateien|*.esd +Source.ImageFile.Title=Geben Sie die Quell-Imagedatei an, die Sie konvertieren möchten +Target.Image.Stored.Title=Wo wird das Ziel-Image gespeichert? +ConvertImage.Label=Image konvertieren + +[Designer.VistaWarning] +Unsupported.Message=Weder dieses Programm noch DISM unterstützen die Wartung von Windows Vista-Imagen. DISM ist für die Bereitstellung von Windows 7- oder neueren Images gedacht. Sie können weiterhin Windows Vista-Images mounten, aber alle Optionen werden deaktiviert.{crlf;}{crlf;}Wenn Sie weiterhin ein Windows Vista-Image warten möchten, lesen Sie das Thema {quot;}Kompatibilität mit älteren Windows-Versionen{quot;} in der Hilfedokumentation.{crlf;}{crlf;}Möchten Sie fortfahren? +Windows.Service.Message=Das Programm kann Windows Vista-Image nicht bedienen +Yes.Button=Ja +No.Button=Nein +DISMTools.Label=DISMTools + +[Designer.ImportDrivers] +Ok.Button=OK +Cancel.Button=Abbrechen +Process.Third.Message=Dieser Prozess importiert alle Treiber von Drittanbietern der Quelle, die Sie für dieses Image oder diese Installation angeben. Dadurch wird sichergestellt, dass das Ziel-Image die gleiche Hardwarekompatibilität wie das Quell-Image aufweist +ImportSource.Label=Quelle importieren: +Windows.Item=Windows-Image +Online.Install.Item=Online-Installation +Offline.Install.Item=Offline-Installation +ImgFile.Label= +ImageFile.Label=Imagedatei: +Tuse.Target.Label=Sie können das Importziel nicht als Importquelle verwenden +Pick.Button=Wählen +Windows.Label=Windows-Image zum Importieren von Treibern aus: +DriveLetter.Column=Laufwerksbuchstabe +DriveLabel.Column=Laufwerksbezeichnung +DriveType.Column=Laufwerkstyp +TotalSize.Column=Gesamtgröße +Available.Free.Space.Column=Verfügbarer freier Platz +DriveFormat.Column=Laufwerksformat +ContainsWindows.Column=ContainsWindows? +Windows.Column=Windows-Version +Refresh.Button=Aktualisieren +Offline.Drivers.Label=Offline-Installation zum Importieren von Treibern aus: +Source.Listed.Choose.Label=Wählen Sie eine oben aufgeführte Quelle, um deren Einstellungen zu konfigurieren. +ImportDrivers.Label=Treiber importieren + +[Designer.IncompleteSetupDlg] +Yes.Button=Ja +No.Button=Nein +SetupIncomplete.Message=Setup ist noch nicht abgeschlossen und Ihre benutzerdefinierten Einstellungen werden nicht gespeichert. Wenn Sie fortfahren, verwendet das Programm die Standardeinstellungen. Möchten Sie fortfahren? +DISMTools.Label=DISMTools + +[Designer.InfoSaveResults] +ReportSaved.Message=Der Bericht wurde an dem von Ihnen angegebenen Ort gespeichert und sein Inhalt wird unten angezeigt. +Ok.Button=OK +Display.Content.Web.CheckBox=Inhalt in der Webansicht anzeigen +SaveReport.Button=Bericht speichern +Htmlreports.Filter=HTML-Berichte|*.html +Image.Report.Label=Ergebnisse des Imageinformationsberichts + +[Designer.InvalidSettings] +Ok.Button=OK +Scratch.Dir.Status.Label= +Log.File.Status.Label= +Log.Font.Status.Label= +DISM.Executable.Status.Label= +Detected.Label=Ungültige Einstellungen wurden erkannt +ResetDefaults.Message=Die ungültigen Einstellungen wurden auf Standardwerte zurückgesetzt. Weitere Informationen finden Sie in den Feldern unten: +Found.Label=Das Programm hat ungültige Einstellungen erkannt + +[Designer.ISOCreator] +ISO.File.Message=Mit dem ISO-Dateierstellungsassistenten können Sie schnell eine Disc-Image-Datei erstellen, mit der Sie die an Ihrem Windows-Image vorgenommenen Änderungen testen können. Es wird eine benutzerdefinierte Vorinstallationsumgebung (PE) erstellt. Diese Umgebung führt automatisch eine Festplattenkonfiguration durch und wendet das hier angegebene Image an. +Options.Group=Optionen +Include.Essential.CheckBox=Wichtige Treiber einbeziehen +Customize.Environment.Button=Umgebung anpassen +Value.Column=# +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Image.Architecture.Column=Imagearchitektur +Browse.Button=Durchsuche +Copy.Ventoy.Drives.CheckBox=Auf Ventoy-Laufwerke kopieren +Unattended.CheckBox=Unbeaufsichtigt: +Architecture.Label=Architektur: +Pick.Button=Wählen +Target.Isolocation.Label=Ziel-ISO-Standort: +ImageFile.Add.Label=Imagedatei zum Hinzufügen zur ISO-Datei: +Mounted.Image.Button=Gemountetes Image +Newly.Signed.Boot.CheckBox=Verwenden Sie neu signierte Boot-Binärdateien +Cancel.Button=Abbrechen +Create.Button=Erstellen +Progress.Group=Fortschritt +Re.Ready.Create.Label=Wenn Sie bereit sind, klicken Sie auf die Schaltfläche „Erstellen“. +Other.Things.Message=Sie können andere Dinge tun, während die ISO erstellt wird. Kommen Sie jederzeit hierher zurück, um einen aktualisierten Status zu erhalten. +Status.Label=Status +WIM.Files.Filter=WIM-Dateien|*.wim +Isofiles.Filter=ISO-Dateien|*.iso +Download.Windows.ADK.Link=Laden Sie das Windows ADK herunter +Answer.Files.XML.Filter=Antwortdateien|*.xml +CreateIsofile.Label=Erstellen Sie eine ISO-Datei + +[Designer.Main] +File.Label=&Datei +NewProject.Button=&Neues Project +Open.Existing.Project.Label=&Bestehendes Projekt öffnen +Manage.Online.Install.Label=&Online-Installation verwalten +Manage.Ffline.Button=O&FFline-Installation verwalten +RecentProjects.Label=Neueste Projekte +SaveProject.Button=&Projekt speichern +Save.Project.Button=Projekt speichern &unter... +Exit.Label=&Beenden +Project.Label=&Projekt +View.Project.Files.Label=Projektdateien im Datei-Explorer anzeigen +UnloadProject.Button=Projekt entladen +Switch.Image.Indexes.Button=Image-Index wechseln +ProjectProps.Label=Projekteigenschaften +ImageProps.Label=Imageeigenschaften +Commands.Label=Kommandos +ImageManagement.Label=Imageverwaltung +Append.Capture.Dir.Button=Erfassungsverzeichnis an Image anhängen +ApplyFfusfufile.Button=FFU- oder SFU-Datei anwenden +ApplyWimswmfile.Button=WIM- oder SWM-Datei anwenden +Capture.Incremental.Button=Inkrementelle Änderungen an der Datei erfassen +Capture.Partitions.Button=Partitionen in FFU-Datei erfassen +Capture.Image.Drive.Button=Image eines Laufwerks in WIM-Datei aufnehmen +Delete.Resources.Button=Ressourcen aus beschädigtem Image löschen +Apply.Changes.Image.Button=Änderungen auf Image anwenden +Delete.Volume.Image.Button=Volume-Image aus WIM-Datei löschen +ExportImage.Button=Image exportieren +Get.Image.Button=Imageinformationen abrufen +Get.WIM.Boot.Button=WIMBoot-Konfigurationseinträge abrufen +List.Files.Dirs.Button=Listen Sie Dateien und Verzeichnisse im Image auf +MountImage.Button=Image einhängen +Optimize.FFU.File.Button=FFU-Datei optimieren +OptimizeImage.Button=Image optimieren +Remount.Image.Button=Image zur Wartung erneut mounten +Split.FFU.File.Button=Splt FFU-Datei in SFU-Dateien +Split.WIM.File.Button=WIM-Datei in SWM-Dateien aufteilen +UnmountImage.Button=Image aushängen +Update.WIM.Boot.Button=Update WIMBoot-Konfigurationseintrag +Apply.Siloed.Prov.Button=Siloed-Bereitstellungspaket anwenden +Save.Image.Button=Imageinformationen speichern +OSPackages.Label=OS-Pakete +GetPackages.Button=Paketinformationen abrufen +AddPackage.Button=Paket hinzufügen +RemovePackage.Button=Paket entfernen +GetFeatures.Button=Funktionsinformationen abrufen +EnableFeature.Button=Funktion aktivieren +DisableFeature.Button=Funktion deaktivieren +CleanupRecovery.Button=Bereinigungs- oder Wiederherstellungsvorgänge durchführen +ProvPackages.Label=Bereitstellung von Paketen +Add.Prov.Package.Button=Bereitstellungspaket hinzufügen +Get.Prov.Package.Button=Informationen zum Bereitstellungspaket abrufen +Apply.CustomData.Button=Benutzerdefiniertes DatenImage anwenden +AppPackages.Label=App-Pakete +Get.App.Package.Button=App-Paketinformationen abrufen +Add.Provisioned.App.Button=Bereitgestelltes App-Paket hinzufügen +Remove.Prov.App.Button=Entferne die Bereitstellung für das App-Paket +Optimize.Provisioned.Button=Bereitgestellte Pakete optimieren +Add.CustomData.File.Button=Benutzerdefinierte Datendatei zum App-Paket hinzufügen +AppMspservicing.Label=App (MSP)-Wartung +Get.App.Patch.Button=Informationen zum Anwendungspatch abrufen +Installed.App.Details.Button=Erhalten Sie detaillierte Informationen zum installierten Anwendungspatch +Basic.Installed.App.Button=Holen Sie sich grundlegende Informationen zum installierten Anwendungspatch +Get.Detailed.Button=Erhalten Sie detaillierte Anwendungsinformationen zum Windows Installer (*.msi) +Get.Basic.Windows.Button=Holen Sie sich grundlegende Anwendungsinformationen zum Windows Installer (*.msi) +DefaultApp.Assoc.Label=Standard-App-Zuordnungen +Export.Default.Button=Exportieren Sie Standardanwendungszuordnungen +DefaultApp.Assoc.Button=Holen Sie sich die Standardinformationen zur Anwendungszuordnung +Import.Default.Button=Standardanwendungszuordnungen importieren +Remove.Default.Button=Entfernen Sie Standardanwendungszuordnungen +Languages.Regional.Label=Sprachen und regionale Einstellungen +Intl.Settings.Button=Internationale Einstellungen und Sprachen abrufen +SetUilanguage.Button=UI-Sprache festlegen +Set.Default.Button=Standardmäßige UI-Fallback-Sprache festlegen +Set.System.Preferred.Button=Bevorzugte UI-Sprache des Systems festlegen +Set.System.Locale.Button=Systemgebietsschema festlegen +Set.User.Locale.Button=Benutzer-Gebietsschema festlegen +Set.Input.Locale.Button=Eingabe-Locale festlegen +Set.UI.Button=UI-Sprache und -Orte festlegen +Set.Default.Time.Button=Standardzeitzone festlegen +Set.Default.Languages.Button=Standardsprachen und -orte festlegen +Set.Layered.Driver.Button=Tastatur-Layout-Treiber festlegen +Generate.Lang.Ini.Button=Lang.ini-Datei generieren +Set.Default.Setup.Button=Standard-Setup-Sprache festlegen +Capabilities.Label=Fähigkeiten +AddCapability.Button=Funktion hinzufügen +Export.Capabilities.Button=Funktionen in Repository exportieren +GetCapabilities.Button=Fähigkeitsinformationen abrufen +RemoveCapability.Button=Fähigkeit entfernen +WindowsEditions.Label=Windows-Editionen +Get.Edition.Button=Aktuelle Ausgabe abrufen +Get.Upgrade.Targets.Button=Upgrade-Ziele abrufen +UpgradeImage.Button=Image aktualisieren +SetProductKey.Button=Produktschlüssel festlegen +Drivers.Label=Treiber +GetDrivers.Button=Treiberinformationen abrufen +AddDriver.Button=Treiber hinzufügen +RemoveDriver.Button=Treiber entfernen +Export.DriverPackages.Button=Treiberpakete exportieren +Import.DriverPackages.Button=Treiberpakete importieren +Unattended.Answer.Label=Unbeaufsichtigte Antwortdateien +Apply.Unattended.Button=Unbeaufsichtigte Antwortdatei anwenden +Remove.Applied.Label=Angewandte Antwortdatei entfernen +System.Enter.Audit.Label=System in den Audit-Modus versetzen +WindowsPE.Label=Windows PE-Wartung +GetSettings.Button=Einstellungen abrufen +SetScratchSpace.Button=Scratch-Speicherplatzgröße festlegen +Set.Target.Path.Button=Zielpfad festlegen +OSUninstall.Label=OS deinstallieren +Get.Uninstall.Window.Button=Deinstallationsfenster abrufen +Initiate.Uninstall.Button=Deinstallation starten +Remove.Roll.Back.Button=Rollback-Funktion entfernen +Set.Uninstall.Window.Button=Deinstallationsfenster festlegen +ReservedStorage.Label=Reservierter Speicher +Set.Reserved.Storage.Button=Reservierten Speicherstatus festlegen +Get.Reserved.Storage.Button=Reservierten Speicherstatus abrufen +MicrosoftEdge.Label=Microsoft Edge +AddEdge.Button=Kante hinzufügen +Add.Edge.Browser.Button=Edge-Browser hinzufügen +Add.Edge.Web.Button=Edge WebView hinzufügen +Tools.Label=&Extras +ImageConversion.Label=Imagekonvertierung +Wimesd.Label=WIM <-> ESD +MergeSwmfiles.Button=SWM-Dateien zusammenführen +Remount.Image.Write.Label=Image mit Schreibberechtigung erneut mounten +CommandConsole.Label=Kommandokonsole +Unattended.AnswerFile.Label=Unbeaufsichtigter Antwortdateimanager +Unattended.Creator.Label=Antwortdatei erstellen +Manage.Image.Registry.Button=Imageregistrierungs-Hives verwalten +Manage.System.Button=Systemdienste verwalten +Manage.System.Env.Button=Systemumgebungsvariablen verwalten +WebResources.Label=Webressourcen +Download.Languages.Button=Download Sprachen und optionale Funktionen ISOs +Download.FOD.Button=Sprachen und FOD-Discs für Windows 10 herunterladen +StartPXE.Button=Start PXE Helper Server für +Windows.Label=Windows-Bereitstellungsdienste +FOG.Label=FOG +Show.Instructions.Label=Anweisungen für FOG Helper Server auf UNIX-Systemen anzeigen +Copy.My.Windows.Button=Kopieren Sie mein Windows-Image auf einen WDS-Server +Evaluate.Windows.Label=Evaluieren Sie die Windows UEFI CA 2023-Bereitschaft auf diesem System +ReportManager.Label=Report-Manager +Mounted.Image.Manager.Label=Mounted Image Manager +Create.Disc.Image.Button=Disc-Image erstellen +Create.Testing.Button=Testumgebung erstellen +Config.List.Editor.Label=Konfigurationslisteneditor +Create.StarterScript.Label=Erstellen Sie ein Starterskript +DesignTheme.Label=Ein Design entwerfen +Options.Label=Optionen +Help.Label=&Hilfe +HelpTopics.Label=Hilfethemen +DISM.Tools.Tour.Label=DISMTools Tour +DISM.Tools.Label=Über DISMTools +Join.Discord.Opens.Label=Treten Sie dem Discord bei (wird im Webbrowser geöffnet) +Report.Feedback.Opens.Label=Feedback melden (wird im Webbrowser geöffnet) +Open.Diagnostic.Logs.Label=Öffnen Sie Diagnoseprotokolle im Protokollbetrachter +Contribute.Help.System.Label=Zum Hilfesystem beitragen +Branch.Label=Branch +Preview.Label=VORSCHAU +Beta.Release.Tooltip=Dies ist eine Beta-Version. Darin werden Sie auf viele Fehler und unvollständige Funktionen stoßen. +Full.Screen.Shortcut.Label=(F11) +Settings.Detected.Label=Ungültige Einstellungen wurden erkannt +MoreInfo.Label=Weitere Informationen +WhatsThis.Label=Was ist das? +DISM.Tools.Actions.Label=DISMTools Tour Aktionen +Tour.Server.Active.Label=Tour Server ist auf Port 2022 aktiv +RestartTour.Label=Neustarttour +Stop.Tour.Server.Label=Tour-Server stoppen +Video.Content.Loaded.Label=Videoinhalte konnten nicht geladen werden. +LearnMore.Link=Mehr erfahren +Retry.Button=Erneut +Name.Column=Name +FactDay.Label=Tatsache des Tages +Learn.Watching.Videos.Label=Lernen durch Ansehen von Videos +Managing.External.Link=Verwalten externer Windows-Installationen +Managing.Install.Link=Verwalten Ihrer aktuellen Installation +Get.Started.DISM.Link=Erste Schritte mit DISMTools und Image-Servicing +Learn.Snew.Link=Lernen Sie, was es Neues in dieser Version gibt +Explore.Get.Started.Label=Entdecken und loslegen +News.Feed.Loaded.Label=Der Newsfeed konnte nicht geladen werden. +Stay.Up.Date.Label=Bleiben Sie auf dem Laufenden +News.Last.Updated.Label=Letzte aktualisierte Nachrichten: +NewsFeed.Item.Label=Item Feed Text +Item.Feed.Date.Label=Item Feed Date +OS.Label=OS +IP.Address.Config.Label=IP-Adresskonfiguration: +Processor.Label=Prozessor +DomainMembership.Label=Domain-Mitgliedschaft: +Memory.Label=Speicher +Storage.Label=Speicher +DomainStatus.Label=Domänenstatus +WorkgroupDomain.Label=Arbeitsgruppe/Domain: +ComputerModel.Label=Computermodell +ComputerName.Label=Computername +Rename.Link=Umbenennen +PathName.Column=Pfad/Name +NewVersion.Available.Link=Eine neue Version steht zum Download und zur Installation zur Verfügung. Klicken Sie hier, um mehr zu erfahren +RemoveEntry.Link=Eintrag entfernen +Manage.Offline.Button.Button=Offline-Installation verwalten +Manage.Online.Install.Link=Online-Installation verwalten +Open.Existing.Project.Link=Vorhandenes Projekt öffnen +NewProject.Link=Neues Project +Begin.Label=Beginnen +ImageOperations.Group=Imageoperationen +CaptureImage.Button=Image aufnehmen +ApplyImage.Button=Image anwenden +Save.Complete.Image.Button=Gesamte Imageinformationen speichern +Remove.VolumeImages.Button=VolumenImage entfernen +Reload.Servicing.Button=Servicesitzung neu laden +Unmount.Image.Button=Image aushängen, Änderungen verwerfen +CommitImage.Button=Image festschreiben und aushängen +Commit.Changes.Button=Aktuelle Änderungen festschreiben +Package.Operations.Group=Paketoperationen +Save.Installed.Button=Installierte Paketinformationen speichern +Component.Store.Maint.Button=Führen Sie Wartungs- und Bereinigungsarbeiten im Komponentenspeicher durch +Get.Package.Button=Paketinformationen abrufen +Feature.Operations.Group=Feature-Operationen +Save.Feature.Button=Funktionsinformationen speichern +Get.Feature.Button=Funktionsinformationen abrufen +AppX.Package.Operations=AppX-Paketoperationen +Save.Installed.AppX.Button=Installierte AppX-Paketinformationen speichern +Add.AppX.Package.Button=AppX-Paket hinzufügen +Get.App.Button=App-Informationen abrufen +Remove.AppX.Package.Button=AppX-Paket entfernen +Capability.Operations.Group=Fähigkeitsoperationen +Save.Capability.Button=Funktionsinformationen speichern +Get.Capability.Button=Fähigkeitsinformationen abrufen +DriverOperations.Group=Treiberoperationen +Save.Installed.Driver.Button=Installierte Treiber Informationen speichern +AddDriverPackage.Button=Treiberpaket hinzufügen +Get.Driver.Button=Treiberinformationen abrufen +Windows.Group=Windows PE-Operationen +SaveConfig.Button=Konfiguration speichern +GetConfig.Button=Konfiguration abrufen +LearnMore.Button=LearnMore +One.Bg.Procs.Message=Ein oder mehrere Hintergrundprozesse wurden nicht erfolgreich abgeschlossen. Einige Funktionen sind möglicherweise nicht verfügbar. +ProjectTasks.Label=Projektaufgaben +UnloadProject.Link=Projekt entladen +Open.File.Explorer.Link=Im Datei-Explorer öffnen +View.Project.Props.Link=Projekteigenschaften anzeigen +UnloadProject.ActionButton=Projekt entladen +View.File.Explorer.Button=Ansicht im Datei-Explorer +View.Project.Props.Button=Projekteigenschaften anzeigen +Mount.Image.Link=Klicken Sie hier, um ein Image einzubinden +ImgStatus.Label=imgStatus +Location.Label=Standort: +ProjPath.Label=projPath +ImagesMounted.Label=Image gemountet? +Name.Label=Name: +ProjectName.DynamicLabel= +ImageMounted.Label=Es wurde kein Image gemountet +Mount.Image.Order.Label=Sie müssen ein Image mounten, um seine Informationen anzuzeigen. +Choices.Label=Auswahlmöglichkeiten +Pick.Mounted.Image.Link=Wählen Sie ein gemountetes Image aus +MountImage.Link=Ein Image mounten +ImageTasks.Label=Imageaufgaben +UnmountImage.Link=Image aushängen +View.Image.Props.Link=Imageeigenschaften anzeigen +ImageIndex.Label=Imageindex: +Description.Label=Beschreibung: +ImgIndex.Label=imgIndex +MountPoint.Label=Mount-Punkt: +MountPoint.Value=mountPoint +Version.Label=Version: +ImgName.Label=imgName +ImgDesc.Label=imgDesc +ImgVersion.Label=imgVersion +Project.Link=PROJEKT +Image.Link=Image +Clock.DynamicLabel= +Welcome.Servicing.Label=Willkommen zu dieser Wartungssitzung +CloseTab.Label=Tab schließen +SaveProject.Label=Projekt speichern +UnloadProject.Label=Projekt entladen +Unload.Project.Tooltip=Projekt aus diesem Programm entladen +Show.Progress.Window.Label=Fortschrittsfenster anzeigen +RefreshView.Label=Ansicht aktualisieren +Expand.Label=Erweitern +Preparing.Project.Button=Projektbaum vorbereiten +Status.Label=Status +View.BgProcesses.Tooltip=Hintergrundprozesse anzeigen +Ready.Label=Bereit +DISM.Tools.Project.Filter=DISMTools-Projektdateien|*.dtproj +Project.File.Load.Title=Geben Sie die zu ladende Projektdatei an +Get.Basic.Label=Grundlegende Informationen abrufen (alle Pakete) +Get.Detailed.Specific.Label=Detaillierte Informationen abrufen (spezifisches Paket) +MountDir.Description=Bitte geben Sie das Mount-Verzeichnis an, das Sie in dieses Projekt laden möchten: +CommitImage.Label=Änderungen festschreiben und Image aushängen +Discard.Changes.Label=Änderungen verwerfen und Image aushängen +UnmountSettings.Button=Einstellungen aushängen +View.Package.Dir.Label=Paketverzeichnis anzeigen +ViewResources.Label=Ressourcen anzeigen für +ExpandItem.Label=Element erweitern +AccessDirectory.Label=Zugriffsverzeichnis +Copy.Deployment.Tools.Label=Bereitstellungstools kopieren +AllArchitectures.Label=Von allen Architekturen +Selected.Architecture.Label=Ausgewählte Architektur +Xarchitecture.Label=Für x86-Architektur +Amarkdown.Architecture.Label=Für AMD64-Architektur +ARM.Label=Für die ARM-Architektur +ARM64.Label=Für die ARM64-Architektur +ImageOperations.Label=Imageoperationen +Manage.Label=Verwalten +Create.Label=Erstellen +Configure.Scratch.Dir.Label=Scratch-Verzeichnis konfigurieren +ManageReports.Label=Berichte verwalten +Add.Button=Hinzufügen +NewFile.Button=Neue Datei +ExistingFile.Button=Vorhandene Datei +SaveResource.Button=Ressource speichern +CopyResource.Label=Ressource kopieren +PngFiles.Filter=PNG-Dateien|*.png +Visit.Microsoft.Apps.Label=Besuchen Sie die Microsoft Apps-Website +Visit.Microsoft.Label=Besuchen Sie die Website des Microsoft Store Generation Project +Iget.Apps.Label=Wie erhalte ich Anwendungen? +MarkdownFiles.Filter=Markdown-Dateien|*.md +Get.ImageFile.Button=Informationen zur Imagedatei abrufen +Create.Disc.ImageFile.Button=Erstellen Sie ein Disc-Image mit dieser Datei +Upload.Image.My.Button=Laden Sie dieses Image auf meinen WDS-Server hoch +ApplyWimswmesd.Button=WIM/SWM/ESD-Datei anwenden +Apply.FFU.File.Button=FFU-Datei anwenden +Capture.Install.Dir.Button=Installationsverzeichnis in WIM-Datei erfassen +Capture.Install.Drive.Button=Installationslaufwerk in FFU-Datei erfassen +DISMTools.Label=DISMTools + +[Designer.MigrationForm] +Wait.Message=Bitte warten Sie, während DISMTools Ihre alte Einstellungsdatei migriert, damit sie auf dieser Version funktioniert. Dies kann einige Zeit dauern. +Wait.Label=Bitte warten +DISMTools.Label=DISMTools + +[Designer.MountDirCreation] +Create.Label=Möchten Sie das Mount-Verzeichnis erstellen? +Yes.Button=Ja +No.Button=Nein +MountImage.Label=Ein Image einbinden + +[Designer.MountedImgMgr] +Overview.Images.Message=Hier ist eine Übersicht der Image, die auf diesem System gemountet wurden. Sie können Informationen darüber nachschlagen und einige grundlegende Aufgaben ausführen. Um Imageaktionen mit diesem Programm vollständig auszuführen, müssen Sie das Mount-Verzeichnis jedoch in ein Projekt laden: +ImageFile.Column=Imagedatei +Index.Column=Index +MountDirectory.Column=Verzeichnis mounten +Status.Column=Status +Read.Write.Column=Lese-/Schreibberechtigungen? +LoadProject.Button=In Projekt laden +Value.Button= +Open.Mount.Dir.Button=Mount-Verzeichnis öffnen +Enable.Write.Button=Schreibberechtigungen aktivieren +ReloadServicing.Button=Dienst erneut laden +Remove.VolumeImages.Button=VolumenImage entfernen +UnmountImage.Button=Image aushängen +Image.Manager.Label=Eingebauter Imagemanager + +[Designer.MUMAdd] +Ok.Button=OK +Cancel.Button=Abbrechen +DialogHelp.Message=Mit diesem Dialog können Sie dem Ziel-Image eine Microsoft Update Manifest (MUM)-Datei hinzufügen. Sie können immer nur eins angeben.{crlf;}{crlf;}Beachten Sie, dass dies nur für die erweiterte Verwendung bestimmt ist und das Ziel-Windows-Image beeinträchtigen kann. +Path.Manifest.File.Label=Pfad der hinzuzufügenden Manifestdatei: +Browse.Button=Durchsuche +MUMFiles.Filter=Microsoft Update Manifest (MUM)-Dateien|update.mum +Update.Manifest.Label=Update-Manifest hinzufügen + +[Designer.NewProj] +Ok.Button=OK +Cancel.Button=Abbrechen +Options.Required.Label=Bitte geben Sie die Optionen zum Erstellen eines neuen Projekts an: +Project.Group=Projekt +Browse.Button=Durchsuche +Location.Label=Standort*: +Name.Label=Name*: +Folder.Store.Description=Bitte wählen Sie einen Ordner aus, um dieses Projekt zu speichern: +Fields.End.Required.Label=Die Felder, die auf * enden, sind erforderlich +Create.Project.Label=Erstellen Sie ein neues Projekt + +[Designer.NewTestingEnv] +Download.Windows.ADK.Link=Laden Sie das Windows ADK herunter +Create.Button=Erstellen +Cancel.Button=Abbrechen +WizardHelp.Message=Dieser Assistent erstellt eine Umgebung, die Ihnen beim Testen Ihrer Anwendungen in Windows-Vorinstallationsumgebungen hilft.{crlf;}{crlf;}Das zu erstellende Projekt enthält eine Vorlagenlösung, die mit allen Umgebungen und Ressourcen für die Erstellung von Anwendungen für Windows-Vorinstallationsumgebungen kompatibel ist. Mehr über diese Projekte erfahren Sie in der mitgelieferten README-Datei. +Architecture.Label=Architektur: +Env.Architecture.Label=Umgebungsarchitektur: +Browse.Button=Durchsuche +Target.Project.Label=Zielprojektstandort: +Progress.Group=Fortschritt +Re.Ready.Create.Label=Wenn Sie bereit sind, klicken Sie auf die Schaltfläche „Erstellen“. +Other.Things.Message=Sie können andere Dinge tun, während die ISO erstellt wird. Kommen Sie jederzeit hierher zurück, um einen aktualisierten Status zu erhalten. +Status.Label=Status +Create.Environment.Label=Erstellen Sie eine Testumgebung + +[Designer.Unattend] +Welcome.Label=Willkommen +RegionalConfig.Label=Regionale Konfiguration +Basic.System.Config.Label=Grundlegende Systemkonfiguration +TreeNode.Label=Zeitzone +DiskConfig.Label=Festplattenkonfiguration +ProductKey.Label=Produktschlüssel +UserAccounts.Label=Benutzerkonten +VirtualMachine.Support.Label=Virtuelle Maschinenunterstützung +Wireless.Networking.Label=Drahtlose Vernetzung +SystemTelemetry.Label=Systemtelemetrie +PostInstall.Scripts.Label=Skripte nach der Installation +Component.Settings.Label=Komponenteneinstellungen +Finish.Label=Fertig +EditorMode.Label=Editor-Modus +ExpressMode.Label=Express-Modus +Notereturn.Applying.Label=HINWEIS: Sie kehren zu diesem Assistenten zurück, nachdem Sie die Antwortdatei angewendet haben +EditAnswerFile.Link=Antwortdatei bearbeiten +Open.Windows.System.Link=Öffnen mit Windows System Image Manager +Apply.Unattended.Link=Unbeaufsichtigte Antwortdatei anwenden +Open.Location.File.Link=Öffnen Sie den Speicherort der Datei +Create.Another.Link=Erstellen Sie eine weitere Antwortdatei +FileCreated.Message=Die unbeaufsichtigte Antwortdatei wurde an dem von Ihnen angegebenen Ort erstellt. Was willst du jetzt machen? +Congratulations.Done.Label=Herzlichen Glückwunsch! Du bist fertig +Wait.Take.Label=Bitte warten - das kann einige Zeit dauern +Progress.Label=Fortschritt: +Wait.UnattendAnswer.Button=Bitte warten Sie, während Ihre unbeaufsichtigte Antwortdatei erstellt wird +Something.Right.Go.Message=Wenn etwas nicht stimmt, müssen Sie zu dieser Seite zurückkehren, um die Einstellung zu ändern. Keine Sorge: Andere Einstellungen bleiben erhalten +WordWrap.CheckBox=Wortumschlag +ReviewSettings.Label=Überprüfen Sie Ihre Einstellungen für die unbeaufsichtigte Antwortdatei +Don.Twant.Add.Label=Möchten Sie keine benutzerdefinierten Komponenten hinzufügen? Klicken Sie auf Weiter, um diesen Schritt zu überspringen. +No.Custom.None.Message=Es wurden noch keine benutzerdefinierten Komponenten hinzugefügt. Klicken Sie oben in diesem Abschnitt auf das Plus-Symbol, um eine neue Komponente hinzuzufügen. +Learn.Custom.Link=Erfahren Sie mehr über benutzerdefinierte Komponenten in Windows +Pass.Label=Passwort: +Component.Label=Komponente: +Component.Count.Label=Komponente {{current}} von {{count}} +Learn.Component.Link=Erfahren Sie mehr über diese Komponente +Screen.Add.Message=In diesem Imageschirm können Sie zusätzliche Komponenten hinzufügen, die Sie in Ihrer unbeaufsichtigten Antwortdatei konfigurieren möchten. Fügen Sie neue Komponenten hinzu, geben Sie deren Durchgänge und Daten an und klicken Sie auf Weiter. +Components.Label=Zusätzliche Komponenten konfigurieren +Hide.Script.Windows.CheckBox=Skriptfenster ausblenden +RestartExplorer.CheckBox=Neustart des Windows Explorers nach dem Ausführen der Skripte +Import.StarterScript.Button=Importieren Sie ein vordefiniertes Starter-Skript +ImportScript.Button=Importieren Sie ein Starterskript in das Dateisystem +Language.Label=Sprache: +OpenScript.Button=Skript öffnen +Scripts.Have.None.Message=Zu dieser Phase wurden noch keine Skripte hinzugefügt. Klicken Sie oben in diesem Abschnitt auf das Pluszeichen, um ein neues Skript hinzuzufügen. +Script.Count.Label=Skript {{current}} von {{count}} +System.Config.Link=Während der Systemkonfiguration +First.User.Logs.Link=Wenn sich der erste Benutzer anmeldet +Whenever.User.Logs.Link=Wann immer sich ein Benutzer zum ersten Mal anmeldet +ScriptScreenHelp.Message=In diesem Imageschirm können Sie Skripte konfigurieren, die während einer bestimmten Phase der Windows-Installation ausgeführt werden. Verwenden Sie die folgenden Abschnitte, um den Code für die Skripte anzugeben.{crlf;}{crlf;}Wenn Sie keine Skripte konfigurieren möchten, klicken Sie auf Weiter. +Run.Install.Label=Was wird nach der Installation ausgeführt? +EnableTelemetry.RadioButton=Telemetrie aktivieren +DisableTelemetry.RadioButton=Telemetrie deaktivieren +ConfigureSettings.CheckBox=Ich möchte diese Einstellungen während der Installation konfigurieren +Control.Limit.Much.Message=Kontrolle und Begrenzung, wie viele Informationen an Microsoft und Dritte gesendet werden +WirelessSettings.RadioButton=Einstellungen für das drahtlose Netzwerk jetzt konfigurieren: +Access.Router.Config.Link=Zugriff auf die Routerkonfiguration, um mehr zu erfahren +Open.Least.Secure.Item=Öffnen (am wenigsten sicher) +Wpapsk.Item=WPA2-PSK +Wpasae.Item=WPA3-SAE +ConnectHidden.CheckBox=Verbinden, auch wenn nicht gesendet +Password.Label=Passwort: +AuthTechnology.Label=Authentifizierungstechnologie: +Technology.Both.Choose.Label=Bitte wählen Sie die Technologie, die sowohl der WLAN-Router als auch Ihr Netzwerkadapter unterstützen. +SsidnetworkName.Label=SSID (Netzwerkname): +SkipConfig.RadioButton=Konfiguration überspringen +Option.Either.Choose.Label=Wählen Sie diese Option, wenn Sie entweder keinen Netzwerkadapter haben oder Ethernet verwenden möchten +WirelessSettings.Label=Konfigurieren Sie die Einstellungen für drahtlose Netzwerke und stellen Sie eine Online-Verbindung her +Guest.Additions.Message=- Verwenden Sie Guest Additions mit Oracle VM VirtualBox{crlf;}- Verwenden Sie VMware Tools mit VMware-Hypervisoren{crlf;}- Verwenden Sie VirtIO Guest Tools mit QEMU-basierten Hypervisoren{crlf;}- Verwenden Sie Parallels Tools mit Parallels-Hypervisoren auf Macintosh-Computern +Virtual.Box.Guest.Item=VirtualBox-Gästeerweiterungen +VmwareTools.Item=VMware Tools +Virt.Ioguest.Tools.Item=VirtiO Gastwerkzeuge +ParallelsTools.Item=Parallels Tools +VirtualMachine.Label=Unterstützung für virtuelle Maschinen: +Iplan.Target.RadioButton=Nein, ich habe vor, die Zielinstallation auf einem realen System zu verwenden +Iwant.Target.RadioButton=Ja, ich möchte die Zielinstallation auf einer virtuellen Maschine verwenden +Add.Enhanced.Support.Message=Möchten Sie Ihrer virtuellen Maschinenlösung erweiterten Support hinzufügen? +Checking.Option.Target.Label=Das Überprüfen dieser Option macht die Zielinstallation anfälliger für Brute-Force-Angriffe +Amount.Failed.Attempts.Label=Nach der folgenden Anzahl fehlgeschlagener Versuche: +UnlockMinutes.Label=Entsperren Sie das Konto nach der folgenden Minutenanzahl: +Lock.Out.Account.Label=Ein Konto sperren +TimeframeMinutes.Label=Innerhalb des folgenden Zeitrahmens in Minuten: +CustomLockout.RadioButton=Weiter mit benutzerdefinierten Richtlinien zur Kontosperrung +DefaultLockout.RadioButton=Weiter mit den Standardrichtlinien zur Kontosperrung +DisablePolicy.CheckBox=Richtlinie deaktivieren +AccountLockout.Label=Konfigurieren Sie Kontosperrrichtlinien für das Zielsystem +Days.Label=Tage +ExpirePassword.RadioButton=Passwörter sollten nach der folgenden Anzahl von Tagen ablaufen: +Expire42Days.RadioButton=Passwörter sollten nach 42 Tagen ablaufen +PasswordsExpire.RadioButton=Passwörter sollten nach einer bestimmten Anzahl von Tagen ablaufen (nicht vom NIST empfohlen) +NeverExpire.RadioButton=Passwörter sollten niemals ablaufen +PasswordsExpire.Label=Sollten Passwörter ablaufen? +AccountName.Label=Kontoname: +Account.Label=Konto 1: +Account.Option2.CheckBox=Konto 2: +Account.Option3.CheckBox=Konto 3: +Account.Option4.CheckBox=Konto 4: +Account.Option5.CheckBox=Konto 5: +UserList.Label=Benutzerkonten: +AccountGroup.Label=Kontogruppe: +AccountPassword.Label=Kontopasswort: +Account.Display.Name.Label=Kontoanzeigename: +FirstLog.Group=Erste Anmeldung +Log.Built.Admin.RadioButton=Melden Sie sich mit dem folgenden Passwort beim integrierten Administratorkonto an: +Log.First.Admin.RadioButton=Melden Sie sich beim ersten erstellten Administratorkonto an +Auto.Login.Admin.CheckBox=Melden Sie sich automatisch bei einem Administratorkonto an +ObscurePasswords.CheckBox=Unklare Passwörter mit Base64 +Ask.Microsoft.CheckBox=Interaktiv nach einem Microsoft-Konto fragen +Target.Install.Label=Wer wird die Zielinstallation verwenden? +FirmwareProductKey.CheckBox=Produktschlüssel aus der Firmware abrufen (nur moderne Systeme) +Product.Label=Bitte stellen Sie sicher, dass der von Ihnen eingegebene Produktschlüssel gültig ist +DISM.Tools.Cannot.Label=DISMTools kann nicht überprüfen, ob Produktschlüssel für die Aktivierung gültig sind +Type.Each.Character.Label=(Geben Sie jedes Zeichen des Produktschlüssels ein, einschließlich der Bindestriche) +ProductKey.Custom.Label=Produktschlüssel: +Detect.Image.Edition.Button=Erkennen aus der Imageausgabe +Copy.Button=Kopieren +Only.Generic.Key.Label=Sie sollten diesen generischen Schlüssel nur mit der Edition verwenden, die Sie bereitstellen möchten +ProductKey.Generic.Label=Produktschlüssel: +ProductKey.Edition.Label=Verwenden Sie den Produktschlüssel für diese Ausgabe: +CustomProductKey.RadioButton=Verwenden Sie einen benutzerdefinierten Produktschlüssel +GenericKey.RadioButton=Verwenden Sie einen generischen Produktschlüssel (keine Aktivierungsfunktionen) +ProductKey.Type.Label=Geben Sie Ihren Produktschlüssel für die Betriebssysteminstallation ein +RecoveryPartition.Label=Partitionsgröße der Windows Recovery-Umgebung (in MB): +InstallRecoveryEnv.CheckBox=Installieren Sie eine Wiederherstellungsumgebung +EFI.System.Label=EFI System Partition (ESP) Größe (in MB): +MBR.RadioButton=MBR +GPT.RadioButton=GPT +PartitionTable.Label=Partitionstabelle: +Skip.Disk.Config.Label=Deaktivieren Sie diese Option nur, wenn Sie jetzt die Festplattenkonfiguration einrichten möchten. +DiskLayout.Label=Konfigurieren Sie das Festplatten- und Partitionslayout des Zielsystems +Time.Label=Zeit +CurrentTime.Label=Zeit +Time.Selected.Zone.Label=Aktuelle Zeit (ausgewählte Zeitzone): +Time.UTC.Label=Aktuelle Zeit (UTC): +Set.Time.Zone.RadioButton=Eine Zeitzone manuell festlegen: +Windows.Decide.RadioButton=Lassen Sie Windows meine Zeitzone basierend auf den regionalen Konfigurationen festlegen, die ich zuvor festgelegt habe +Configure.Time.Zone.Label=Zeitzoneneinstellungen konfigurieren +DesktopX86.Item=x86 (Desktop 32-Bit) +DesktopX64.Item=x64 (Desktop 64-Bit) +Armwindows.Item=ARM64 (Windows auf ARM) +UseConfigSet.CheckBox=Verwenden Sie einen Konfigurationssatz oder eine Verteilungsfreigabe +Windows.Set.Random.CheckBox=Lassen Sie Windows einen zufälligen Computernamen festlegen +Config.Set.Message=Stellen Sie sicher, dass der Konfigurationssatz oder die Verteilungsfreigabe erstellt wurde, bevor Sie die resultierende unbeaufsichtigte Antwortdatei in eine ISO-Datei kopieren und das Betriebssystem installieren. Sie können Konfigurationssätze oder Verteilungsfreigaben mit dem Windows System Image Manager (SIM) erstellen +Script.Sets.Name.RadioButton=Lassen Sie den Namen vom folgenden Skript konfigurieren (erweitert): +Get.Computer.Name.Button=Computernamen abrufen +ComputerName.Label=Computername: +Type.Computer.Name.Label=Bitte geben Sie einen Computernamen ein +Check.Option.Only.Message=Überprüfen Sie diese Option nur, wenn das Zielsystem über keine Netzwerkfunktionen verfügt. Sie können lokale Benutzer im Abschnitt Benutzerkonten konfigurieren +BypassNetwork.CheckBox=Obligatorische Netzwerkverbindung umgehen +BypassRequirements.CheckBox=Systemanforderungen umgehen +Windows11.Label=Windows 11-Einstellungen: +System.Architec.Label=Bitte wählen Sie die Systemarchitektur aus, die vom Ziel-Windows-Image unterstützt wird, um sie anzuwenden +Processor.Architecture.Label=Prozessorarchitektur: +BasicSettings.Label=Grundlegende Systemeinstellungen konfigurieren +Configure.Settings.Label=Sie müssen diese Einstellungen während des Setup-Vorgangs konfigurieren +SystemLanguage.Label=Systemsprache: +SystemLocale.Label=System-Locale: +HomeLocation.Label=Heimatort: +Keyboard.Layout.IME.Label=Tastaturlayout/IME: +Country.EEA.Choose.Button=Wählen Sie ein Land aus: +Additional.Layouts.Button=Zusätzliche Layouts +ConfigureLater.RadioButton=Konfigurieren Sie diese Einstellungen später +SettingsNow.RadioButton=Konfigurieren Sie jetzt diese Einstellungen: +LanguageKeyboard.Label=Konfigurieren Sie Ihre Sprache, Ihr Tastaturlayout und andere regionale Einstellungen +Copy.Linux.Mac.Link=Kopieren Sie Linux- und macOS-Versionen des unbeaufsichtigten Antwortdateigeneratorprogramms +OnlineGenerator.Link=Antwortdateigenerator (Online-Version) +Welcome.Unattended.Label=Willkommen beim Assistenten zur Erstellung unbeaufsichtigter Antwortdateien +CreationHelp.Message=Mit dem Assistenten zum Erstellen unbeaufsichtigter Antwortdateien können Sie unbeaufsichtigte Antwortdateien mithilfe intuitiver Schnittstellen erstellen. Dieser Assistent eignet sich für Personen, die noch nie zuvor unbeaufsichtigte Antwortdateien erstellt haben oder keinen Texteditor verwenden möchten.{crlf;}{crlf;}In diesem Assistenten können Sie regionale Einstellungen, Benutzerkonten, drahtlose Einstellungen, Unterstützung für virtuelle Maschinen und mehr konfigurieren. Wenn Sie Ihrer Datei nach der Erstellung weitere Funktionen hinzufügen müssen, können Sie den Editor-Modus verwenden, auf den Sie zugreifen können, indem Sie auf die Schaltfläche unten links klicken.{crlf;}{crlf;}Besonderer Dank geht an Christoph Schneegans für die Erstellung der Bibliothek, die diesen Assistenten ermöglicht. Sie können auch seine Generator-Website verwenden, um weitere Einstellungen zu konfigurieren, wie z. B. Optimierungen oder Windows Defender Application Control-Regeln.{crlf;}{crlf;}{crlf;}Um mit der Erstellung Ihrer Antwortdatei zu beginnen, klicken Sie auf Weiter. +AvailableNow.Label=Im Moment nicht verfügbar! +NewOverwrite.Label=Neu (überschreibt vorhandenen Inhalt) +Open.Button=Open +Save.Button=Speichern unter +WordWrap.Label=Wortumschlag +Help.Label=Hilfe +NormalizeSpacing.Label=Abstände normalisieren +NormalizeSpacing.Tooltip=Macht den Abstand konsistent, indem Tabulatoren durch Leerzeichen ersetzt werden +WizardHelp.Label=Wenn Sie noch nie unbeaufsichtigte Antwortdateien erstellt haben, verwenden Sie diesen Assistenten, um eine zu erstellen. +Join.Target.Device.Button=Zielgerät mit Domäne verbinden +BackButton.Button=Zurück +NextButton.Button=Weiter +Cancel.Button=Abbrechen +Help.Button=Hilfe +Answer.Files.XML.Filter=Antwortdateien|*.xml +Gen.Download.Complete.Title=UnattendGen-Download abgeschlossen +EditorMode.Filter=Antwortdateien|*.xml +Power.Shell.Scripts.Filter=PowerShell-Skripte|*.ps1;*.psm1|Batch-Skripte|*.bat;*.cmd|Visual Basic-Skripte|*.vbs;*.vbe;*.wsf;*.wsc|JScript-Dateien|*.js;*.jse +OpenScript.Title=Skript öffnen +Path.Description=Geben Sie den Pfad an, auf dem Sie Linux- und macOS-Versionen von UnattendGen speichern möchten: +DISM.Tools.Starter.Filter=DISMTools Starter-Skripte|*.dtss +Pick.StarterScript.Title=Wählen Sie ein Starter-Skript +CreationHelp.Label=Assistent zur Erstellung unbeaufsichtigter Antwortdateien +TimeZone.Label=Zeitzone: +ScriptRun.Description=Um ein Skript so zu konfigurieren, dass es in einer bestimmten Phase ausgeführt wird, klicken Sie auf die Phase: +ComputerName.RadioButton=Wählen Sie selbst einen Computernamen (empfohlen) +SelfContained.Message=Die in sich geschlossene Version von UnattendGen wurde erfolgreich heruntergeladen. DISMTools wird ab sofort diese Version verwenden + +[Designer.NewUnattend.LocalAccounts] +OnlyNow.Label=Deaktivieren Sie diese Option nur, wenn Sie jetzt lokale Konten einrichten möchten + +[Designer.NewsFeedCard] +Item.Title=Feed-Artikeltitel +ItemDate.Label=Item Date + +[Designer.OfflineDriveList] +Ok.Button=OK +Cancel.Button=Abbrechen +Refresh.Button=Aktualisieren +DriveLetter.Column=Laufwerksbuchstabe +DriveLabel.Column=Laufwerksbezeichnung +DriveType.Column=Laufwerkstyp +TotalSize.Column=Gesamtgröße +Available.Free.Space.Column=Verfügbarer freier Platz +DriveFormat.Column=Laufwerksformat +ContainsWindows.Column=ContainsWindows? +Windows.Column=Windows-Version +Disk.Choose.Label=Wählen Sie eine Festplatte +Begin.Install.Message=Um mit der Offline-Installationsverwaltung zu beginnen, wählen Sie bitte eine Festplatte aus, die in der folgenden Liste angezeigt wird. Wenn weitere Festplatten hinzugefügt oder entfernt wurden, die Windows-Installationen enthalten, klicken Sie einfach auf die Schaltfläche Aktualisieren. + +[Designer.OneDriveExclusion] +Exclude.Button=Ausschluß +CancelButton.Button=Abbrechen +Tool.Help.Exclude.Message=Dieses Tool hilft Ihnen, Benutzer-OneDrive-Ordner in der Konfigurationsliste auszuschließen, an der Sie arbeiten. Geben Sie einfach den Pfad an, auf den Sie die Konfigurationslistendatei anwenden möchten, und klicken Sie auf Exclude.{crlf;}{crlf;}HINWEIS: Sobald Sie dieses Tool ausgeführt und Benutzer-OneDrive-Ordner ausgeschlossen haben, sollten Sie die Konfigurationsliste nicht für ein anderes Image als das hier angegebene verwenden. Wenn Sie die Konfigurationsliste für andere Image verwenden möchten, entfernen Sie die OneDrive-Ordner des Benutzers in der Konfigurationsliste und führen Sie dieses Tool erneut aus. +Re.Ready.Label=Wenn bereit, „Ausschließen“ anklicken. +Path.Exclude.Label=Pfad für OneDrive-Ausschluss: +Browse.Button=Durchsuche +UserFolderPath.Description=Wählen Sie einen Pfad, der Benutzerordner enthält: +Exclude.User.Label=Benutzer-OneDrive-Ordner ausschließen + +[Designer.Options] +Ok.Button=OK +Cancel.Button=Abbrechen +DISM.Executable.Filter=DISM-ausführbare Datei|dism.exe +Dismexecutable.Title=Geben Sie die zu verwendende ausführbare DISM-Datei an +CheckUpdates.CheckBox=Nach Updates suchen +Remount.Mounted.CheckBox=Gemountetes Image erneut mounten, wenn eine Wartungssitzung neu geladen werden muss +Behavior.OnStartup.Label=Setzen Sie Optionen ein, die Sie beim Start des Programms ausführen möchten: +Settings.Aren.Label=Diese Einstellungen gelten nicht für nicht tragbare Installationen +FileIcons.Projects.CheckBox=Benutzerdefinierte Dateisymbole für DISMTools-Projekte festlegen +Open.Starter.Scripts.Label=Öffnen Sie Starterskripte mit dem Starter Script Editor +Set.File.Assoc.Button=Dateizuordnungen festlegen +Open.My.Projects.Label=Öffnen Sie meine Projekte mit dieser Kopie von DISMTools +Manage.File.Assoc.Label=Dateizuordnungen für DISMTools-Komponenten verwalten: +AdvancedSettings.Button=Erweiterte Einstellungen +Learn.Background.Link=Erfahren Sie mehr über Hintergrundprozesse +Uses.Bg.Procs.Message=Das Programm verwendet Hintergrundprozesse, um vollständige Imageinformationen zu sammeln, wie Änderungsdaten, installierte Pakete, vorhandene Funktionen und mehr +Every.Time.Project.Item=Jedes Mal, wenn ein Projekt erfolgreich geladen wurde +Once.Item=Einmal +Notify.Label=Wann sollte das Programm Sie über gestartete Hintergrundprozesse informieren? +Notify.Me.CheckBox=Benachrichtigen Sie mich, wenn Hintergrundprozesse gestartet wurden +Reports.Allow.Shown.Label=Einige Berichte erlauben nicht die Anzeige als Tabelle. +Image.Version.Message=Imageversion: 10.0.19045.2075{crlf;}{crlf;}Funktionsliste für Paket: Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Funktionsname: TFTP{crlf;}Status: Deaktiviert{crlf;}{crlf;}Funktionsname: LegacyComponents{crlf;}Status: Aktiviert{crlf;}{crlf;}Funktionsname: DirectPlay{crlf;}Status: Aktiviert{crlf;}{crlf;}Feature-Name: SimpleTCP{crlf;}Status: Deaktiviert{crlf;}{crlf;}Feature-Name: Windows-Identity-Foundation{crlf;}Status: Deaktiviert{crlf;}{crlf;}Feature-Name: NetFx3{crlf;}Status: Aktiviert +List.Item=Liste +Table.Item=Tabelle +ExampleReport.Label=ExampleReport: +LogView.Label=Protokollansicht: +Show.Command.Output.CheckBox=Kommandoausgabe auf Englisch anzeigen +Enough.Space.Selected.Label=Für einige Vorgänge haben Sie möglicherweise nicht genügend Speicherplatz im ausgewählten Scratch-Verzeichnis. +ScdirSpace.Label= +Space.Left.Selected.Label=Leerzeichen links im ausgewählten Scratch-Verzeichnis: +Browse.Button=Durchsuche +ScratchDirectory.Label=Scratch-Verzeichnis: +Scratch.Dir.Message=Das Programm verwendet das vom Projekt bereitgestellte Scratch-Verzeichnis, wenn eines geladen wird. Wenn Sie sich im Online- oder Offline-Installationsverwaltungsmodus befinden, verwendet das Programm sein Scratch-Verzeichnis +Scratch.Dir.Required.Label=Bitte geben Sie das Scratch-Verzeichnis an, das für DISM-Vorgänge verwendet werden soll: +Scratch.Dir.CheckBox=Verwenden Sie ein Scratch-Verzeichnis +Always.Save.CheckBox=Speichern Sie immer vollständige Informationen für die folgenden Elemente: +SettingsConsider.Label=Wählen Sie die Einstellungen, die das Programm beim Speichern von Imageinformationen berücksichtigen soll: +Installed.Packages.CheckBox=Installierte Pakete +InstalledDrivers.CheckBox=Installierte Treiber +Capabilities.CheckBox=Fähigkeiten +Features.CheckBox=Funktionen +Installed.AppX.CheckBox=Installierte AppX-Pakete +Checked.Computer.Message=Wenn diese Option aktiviert ist, wird Ihr Computer nicht automatisch neu gestartet, auch nicht bei leiser Ausführung von Vorgängen. +QuietOperations.Message=Wenn das Programm Vorgänge leise ausführt, verbirgt es Informationen und Fortschrittsausgaben. Fehlermeldungen werden weiterhin angezeigt.{crlf;}Diese Option wird nicht verwendet, wenn Informationen beispielsweise zu Paketen oder Funktionen abgerufen werden.{crlf;}Außerdem kann es bei der Imagebearbeitung zu einem automatischen Neustart Ihres Computers kommen. +Skip.System.Restart.CheckBox=Systemneustart überspringen +Quietly.Image.Ops.CheckBox=Imageoperationen leise ausführen +Log.File.Display.Message=Die Protokolldatei sollte nach der Durchführung einer Imageoperation Fehler, Warnungen und Informationsmeldungen anzeigen. +Errors.Warnings.Label=Fehler, Warnungen und Informationsmeldungen (Log-Level 3) +Image.Ops.Message=Wenn Sie Imageoperationen in der Kommandozeile ausführen, geben Sie das Argument {quot;}/LogPath{quot;} an, um das Imageoperationsprotokoll in der Zielprotokolldatei zu speichern. +Log.File.Level.Label=Log-Dateiebene: +Operation.Log.File.Label=Operationsprotokolldatei: +Classic.RadioButton=Klassik +Modern.RadioButton=Modern +Secondary.Progress.Label=Stil des sekundären Fortschrittsfelds: +Font.Readable.Log.Message=Diese Schriftart ist in Protokollfenstern möglicherweise nicht lesbar. Obwohl Sie es weiterhin verwenden können, empfehlen wir Monospace-Schriftarten für eine bessere Lesbarkeit. +Preview.Label=Vorschau: +Log.Window.Font.Label=Schriftart des Protokollfensters: +Uppercase.Menus.CheckBox=Großbuchstabenmenüs verwenden +System.Setting.Item=Systemeinstellung verwenden +LightMode.Item=Lichtmodus +DarkMode.Item=Dunkler Modus +Language.Label=Sprache: +ColorMode.Label=Farbmodus: +SettingsFile.Item=Einstellungsdatei +Registry.Item=Registry +Enable.Disable.Message=Das Programm aktiviert oder deaktiviert bestimmte Funktionen, je nachdem, was die DISM-Version unterstützt. Wie wird es sich auf meine Nutzung dieses Programms auswirken und welche Funktionen werden entsprechend deaktiviert? +View.DISM.Button=DISM-Komponentenversionen anzeigen +Dismver.Label= +SaveSettings.Label=Einstellungen speichern unter: +Version.Label=Version: +Dismexecutable.Path.Label=Ausführbarer DISM-Pfad: +ResetPreferences.Label=Einstellungen zurücksetzen +LogSFD.Filter=Alle Dateien|*.* +Location.Log.File.Title=Geben Sie den Speicherort der Protokolldatei an +Program.Label=Programm +Personalization.Label=Personalisierung +Logs.Label=Logs +ImageOperations.Label=Imageoperationen +Scratch.Dir.Label=Scratch-Verzeichnis +ProgramOutput.Label=Programmausgabe +BgProcesses.Label=Hintergrundprozesse +FileAssociations.Label=Dateizuordnungen +StartupOptions.Label=Startoptionen +ShutdownOptions.Label=Shutdown-Optionen +Difference.Between.Link=Was ist der Unterschied zwischen Anzeigenamen und benutzerfreundlichen Anzeigenamen? +PackageName.Label=Paketname: +RaymanJungle.Label=UbisoftEntertainment.RaymanJungleRun_1.2.0.88_x86__dbgk1hhpxymar +DisplayName.Label=Anzeigename: +Display.Name.Only.Item=Nur Name anzeigen +Display.Name.Friendly.Item=Anzeigename, dann freundlicher Anzeigename +Friendly.Display.Name.Item=Nur freundlicher Anzeigename +Example.Label=Beispiel: +Remove.AppX.Label=Wenn Sie AppX-Pakete entfernen, zeigen Sie Anzeigenamen in diesem Format an: +Only.Available.Message=Dies ist nur bei der Verwaltung aktiver Installationen verfügbar.{crlf;}Wenn Sie Informationen zu AppX-Paketen erhalten, können DISMTools die IDs und Namen der lokalen Konten in diesem System zuordnen, um Ihnen genauer mitzuteilen, bei welchen Benutzern eine Anwendung registriert ist. +Map.System.Accounts.CheckBox=Systemkonten den Registrierungsinformationen der Anwendung zuordnen +Show.Dates.Human.CheckBox=Daten in einem für Menschen lesbaren Format anzeigen +PreventSleep.CheckBox=Verhindern Sie, dass die Maschine während der Imageoperationen schläft +Saving.Image.Label=Imageinformationen speichern +Help.Me.Understand.Link=Helfen Sie mir, die Toleranzgrenzen für KI-Funktionen zu verstehen +Turn.Off.Many.Item=Schalten Sie so viele KI-Funktionen in Suchmaschinen wie möglich aus. Ich kann diese nicht ertragen +Me.Control.AI.Item=Lassen Sie mich die KI-Funktionen in meiner Suchmaschine steuern +Turn.Many.Aifeatures.Item=Aktivieren Sie so viele KI-Funktionen wie möglich in Suchmaschinen +AIFeature.Label=Merkmaletoleranz der künstlichen Intelligenz (KI): +Search.Engine.Web.Label=Suchmaschine zur Verwendung für Websuchen: +Searching.Image.Online.Label=Imageinformationen online suchen +Learn.Message=Wenn Sie online mehr über einen Artikel erfahren möchten, können Sie die Websuche nutzen. Wählen Sie die Einstellungen, die das Programm bei Websuchen berücksichtigen soll: +RunNow.Button=Ausführen +Behavior.OnClose.Label=Setzen Sie Optionen, die Sie ausführen möchten, wenn das Programm geschlossen wird: +Automatically.Clean.CheckBox=Bereinigt automatisch Mount-Punkte (startet einen separaten Prozess) +InstallService.Button=Dienst installieren +EnableService.Button=Dienst aktivieren +DisableService.Button=Dienst deaktivieren +DeleteService.Button=Dienst löschen +ServiceStatus.Group=Dienststatus +Installed.Label=Installiert? +InstallationPath.Label=Installationspfad: +Automatic.Image.Reload.Label=Automatischer Image-Reload-Dienst +Still.See.Standard.Message=Sie sehen möglicherweise immer noch, dass die Standard-Neuladevorgänge für Wartungssitzungen von DISMTools für Image stattfinden, für die der Dienst die Wartungssitzungen nicht neu laden konnte. +Automatic.Image.Message=Der Dienst „Automatic Image Reload“ kann Ihnen dabei helfen, Ihre Windows-Images für die Wartung bereitzuhalten, indem er ihre Wartungssitzungen beim Systemstart neu lädt. Hier können Sie den Service steuern: +ColorThemes.Group=Farbthemen +DesignThemes.Button=Entwerfen Sie Ihre Themen +LightMode.Label=Lichtmodus: +Own.Themes.Label=Sie können auch Ihre eigenen Themen erstellen. +Change.Color.Theme.Label=Sie können das Programm das Farbthema entsprechend Ihrem bevorzugten Farbmodus ändern lassen. +DarkMode.Label=Dunkler Modus: +Show.Date.Time.CheckBox=Datum und Uhrzeit in der Projektansicht anzeigen +LogCustomization.Label=Protokollanpassung +Show.Log.View.CheckBox=Protokollansicht standardmäßig im Fortschrittsfenster anzeigen +Show.Me.Logs.Link=Zeigen Sie mir, wo diese Protokolle gespeichert sind +Disable.Dyna.Log.CheckBox=DynaLog-Protokollierung deaktivieren +Dyna.Log.Logging.Label=DynaLog-Protokollierungssteuerung +Dyna.Log.Logging.Message=DynaLog Logging bietet eine Methode zum Speichern von Diagnoseprotokollen, mit denen Sie Programmprobleme beheben können, falls Sie darauf stoßen. Sie können den Logger mit dem unten stehenden Schalter deaktivieren, dies wird jedoch nicht empfohlen. {crlf;}{crlf;}Deaktivieren Sie die Protokollierung nur, wenn dies zu einem Leistungsaufwand auf Ihrem Computer führt. Durch Klicken auf den Schalter wird diese Einstellung automatisch angewendet. +SystemEditor.Label=Systemeditor +Editor.Open.Log.Label=Editor zum Öffnen von Protokolldateien mit: +Default.Op.Logs.Message=Standardmäßig werden Betriebsprotokolle im Falle eines Betriebsfehlers mit Notepad geöffnet. Wenn Sie sie jedoch mit einem anderen Programm öffnen möchten, geben Sie dies unten an: +ProgramsEXE.Filter=Programme|*.exe +Editor.Title=Geben Sie den zu verwendenden Editor an +Options.Label=Optionen +Set.Custom.CheckBox=Setzen Sie benutzerdefinierte Dateisymbole für Starterskripte +ScratchDir.Description=Geben Sie das Scratch-Verzeichnis an, das das Programm verwenden soll: +Custom.Scratch.RadioButton=Verwenden Sie das angegebene Scratch-Verzeichnis +Project.Scratch.RadioButton=Verwenden Sie das Scratch-Verzeichnis des Projekts oder Programms +Auto.Create.Logs.CheckBox=Erstellt automatisch Protokolle für jeden durchgeführten Vorgang + +[Designer.OrphanedMount] +Ok.Button=OK +Cancel.Button=Abbrechen +Project.Has.Orphans.Message=Das geladene Projekt enthält ein verwaistes Image (ein Image, das neu eingebunden werden muss){crlf;}Das Image wird neu eingebunden, wenn Sie auf {quot;}OK{quot;} klicken. Dies sollte Ihre Änderungen am Image nicht beeinträchtigen und auch nicht lange dauern.{crlf;}{crlf;}HINWEIS: Wenn Sie auf {quot;}Cancel{quot;} klicken, wird das Projekt entladen +Servicing.Session.Label=Dieses Image muss neu geladen werden +DISMTools.Label=DISMTools + +[Designer.NoRollbackError] +Ok.Button=OK +Old.Versions.None.Message=Es wurden keine alten Versionen erkannt, da die Dateien nicht gefunden wurden. Möglicherweise haben Sie diese Version länger als im Deinstallationsfenster möglich oder Sie haben die Dateien der alten Version gelöscht (um Speicherplatz zu sparen). Sie brauchen nichts zu tun. +Troll.Back.Older.Label=Sie können nicht zu einer älteren Version zurückkehren +DISMTools.Label=DISMTools + +[Designer.PXEServerPort] +Ok.Button=OK +Cancel.Button=Abbrechen +Other.Message=Verwenden Sie diesen Dialog, um während dieser Sitzung einen anderen Port für Serverkomponenten anzugeben, wenn der Standardport von einem Programm oder einem Dienst verwendet wird und die Serverkomponenten daher nicht korrekt funktionieren.{crlf;}{crlf;}Wenn Sie auf Abbrechen klicken, wird die ausgewählte Serverkomponente mit dem Standardport gestartet. +Port.Server.Label=Verwenden Sie den folgenden Port für Serverkomponenten: +Default.Button=Standard +Check.Button=Überprüfen Sie, ob dieser Port verwendet wird +ServerComponents.Label=Geben Sie einen Port für Serverkomponenten an + +[Designer.PECustomizer] +Ok.Button=OK +Cancel.Button=Abbrechen +Customize.Session.Label=Passen Sie die Vorinstallationsumgebung für diese Sitzung an: +Wallpaper.Group=HintergrundImage +Browse.Button=Durchsuche +My.Desktop.CheckBox=Verwenden Sie meinen aktuellen Desktop-Hintergrund +Path.Custom.Wallpaper.Label=Pfad zum benutzerdefinierten HintergrundImage (nur JPG-Dateien): +Show.Version.Top.CheckBox=Versionsinformationen in der oberen linken Ecke des PrimärImageschirms anzeigen +Display.Images.CheckBox=Image und Gruppen auf einem WDS-Server in einer grafischen Ansicht anzeigen +Show.Report.Hardware.Message=Zeigt beim Starten des Treiberinstallationsmoduls einen Bericht mit Hardware-IDs unbekannter Geräte an +Default.Partitio.Table.Label=Standardmäßige Überschreibung der Partitionstabelle: +Partition.Table.Item=Verwenden Sie keine Partitionstabellenüberschreibung +Default.Mbrpartition.Item=Standard zur Verwendung einer MBR-Partitionstabelle unabhängig vom Firmware-Typ +Default.Gptpartition.Item=Standard zur Verwendung einer GPT-Partitionstabelle unabhängig vom Firmware-Typ +Partition.Table.Message=Partitionstabellenüberschreibungen wirken sich sowohl auf die Festplattenkonfiguration als auch auf die durchgeführten Bootdateierstellungsvorgänge aus. +SecureBoot.Label=Auf unterstützten UEFI-Systemen mit Secure Boot- und Windows UEFI CA 2023-Zertifikaten: +Ask.Me.Version.Item=Fragen Sie mich, welche Version der Boot-Binärdatei verwendet werden soll +Connection.Attempts.Label=Anzahl der Verbindungsversuche, die bei der Verbindung mit einem WDS-Server berücksichtigt werden sollten: +ConnectionAttempts.Label=Verbindungsversuch(e) +JpgfilesJpg.Filter=JPG-Dateien|*.jpg +CopyAnswerFiles.Message=Kopieren Sie unbeaufsichtigte Antwortdateien, die im ISO-Ersteller angegeben sind, in das Sysprep-Verzeichnis des Zielsystems +Port.Used.PXE.Label=Port, der von PXE Helper-Clients standardmäßig zum Senden von Anfragen verwendet werden soll: +Pick.Default.Keyboard.Label=Wählen Sie aus der folgenden Liste das Standardtastaturlayout aus, das in der Vorinstallationsumgebung verwendet werden soll: +LayoutCode.Column=Layoutcode +LayoutName.Column=Layoutname +Layout.Code.Selected.Label=Layoutcode des ausgewählten Tastaturlayouts: +Save.Default.Policies.Label=In Standardrichtlinien speichern +General.Tab=Allgemein +PXEs.Tab=PXE-Helfer +KeyboardLayouts.Tab=Tastaturlayouts +Option.Only.Take.Label=Diese Option wird nur für Image wirksam, auf die keine Antwortdateien angewendet wurden. +Unattended.Deployments.Tab=Unbeaufsichtigte Bereitstellungen +Unattended.AnswerFile.Label=Wenn sowohl in der ISO-Datei als auch in der Windows-Image-Datei eine unbeaufsichtigte Antwortdatei vorhanden ist: +Ask.Me.Resolve.Item=Fragen Sie mich, wie Sie den Konflikt lösen können +Assuming.Each.Answer.Message=Annehmen, was jede der Antwortdateien tun wird, ist keine gute Idee, da Sie nicht erwarten, was jede Datei in verschiedenen Betriebssystembereitstellungsläufen haben wird.{crlf;}{crlf;}Daher sollten Sie jede der Antwortdateien manuell überprüfen, wenn Sie auf Konflikte stoßen. Oder, wenn Ihr Windows-Image eine Antwortdatei enthält, fügen Sie keine in Ihre ISO-Datei ein, da die aus dem Windows-Image während der Einrichtung automatisch angewendet wird.{crlf;}{crlf;}Wenn Sie bootfähige Medienerstellungslösungen wie Rufus verwenden, konfigurieren Sie diese so, dass sie Ihre Antwortdatei nicht überschreiben. +CustomizePE.Label=Vorinstallationsumgebung anpassen +KeyboardOverride.CheckBox=Überschreiben Sie die von den Ziel-Imagen verwendeten Tastaturlayouts mit dem hier ausgewählten + +[Designer.PECustomizer.Conflict] +ISO.Item=Behandeln Sie den Konflikt mithilfe der Antwortdatei der ISO-Datei +WindowsImage.Item=Behandeln Sie den Konflikt, indem Sie die Antwortdatei der Windows-Imagedatei verwenden + +[Designer.PECustomizer.BootSign] +Windows.UEFI.CA.Item=Standard zum Booten von Binärdateien, die mit Windows UEFI CA 2023 signiert sind, sofern auf meinem Ziel-Image verfügbar +Windows.Production.PCA.Item=Standard zum Booten von Binärdateien, die mit Microsoft Windows Production PCA 2011 signiert sind + +[Designer.PkgNameLookup] +Ok.Button=OK +Cancel.Button=Abbrechen +ParentPackage.Label=Name des übergeordneten Pakets: +Get.Package.Names.Label=Paketnamen abrufen. Bitte warten +Installed.Package.Label=Installierte Paketnamen + +[Designer.PkgParentLookup] +Names.Installed.Label=Namen der installierten Pakete im gemounteten Image: + +[Designer.Wait] +Wait.Label=Bitte warten +Action.Label=Aktion + +[Designer.PrgAbout] +Ok.Button=OK +DISM.Tools.Version.Label=DISMTools - Version {0} +DISM.Tools.Lets.Label=DISMTools können Sie Windows-Images dank einer GUI problemlos bereitstellen, verwalten und warten. +Build.Date.Goes.Label=Build-Datum kommt hierhin +ResourcesUsed.Label=Diese Ressourcen und Komponenten wurden bei der Erstellung dieses Programms verwendet: +Resources.Label=Ressourcen +Fluency.Label=Fluency +Icons.Link=Symbole8 +Sqlserver.Icon.Color.Label=SQL Server-Symbol (Farbe) +Utilities.Label=Dienstprogramme +Zip.Label=7-Zip +VisitWebsite.Link=Website besuchen +Help.Documentation.Label=Hilfedokumentation +Scintila.Netnu.Get.Label=Scintila.NET (NuGet-Paket) +Managed.Dismnu.Get.Label=ManagedDism (NuGet-Paket) +Command.Help.Source.Label=Command Hilfequelle +Microsoft.Link=Microsoft +BrandingAssets.Label=Branding-Assets +DarkUI.Label=DarkUI +Windows.Label=Windows Home Server 2011 +Whatsnew.Link=WAS IST NEU +Licenses.Link=LIZENZEN +Credits.Link=DANK +CheckUpdates.Label=Nach Updates suchen +AboutProgram.Label=Über dieses Programm + +[Designer.PrgSetup] +Set.Up.DISM.Label=DISMTools einrichten +Back.Button=Zurück +Next.Button=Weiter +Cancel.Button=Abbrechen +DISM.Tools.Free.Message=DISMTools ist eine kostenlose und Open-Source-, projektgesteuerte GUI für DISM-Operationen. Um mit der Einrichtung zu beginnen, klicken Sie auf Weiter. +Welcome.DISM.Tools.Label=Willkommen bei DISMTools +Secondary.Progress.Label=Stil des sekundären Fortschrittsfelds: +Log.Window.Font.Label=Schriftart des Protokollfensters: +Language.Label=Sprache: +ColorMode.Label=Farbmodus: +System.Setting.ThemeItem=Systemeinstellung verwenden +LightMode.Item=Lichtmodus +DarkMode.Item=Dunkler Modus +Font.Readable.Log.Message=Diese Schriftart ist in Protokollfenstern möglicherweise nicht lesbar. Obwohl Sie es weiterhin verwenden können, empfehlen wir Monospace-Schriftarten für eine bessere Lesbarkeit. +Classic.RadioButton=Klassik +Modern.RadioButton=Modern +Yours.Customize.Message=Machen Sie es zu Ihrem. Passen Sie dieses Programm nach Ihren Wünschen an und klicken Sie auf Weiter. Diese Einstellungen können jederzeit im Abschnitt {quot;}Personalisierung{quot;} im Fenster Optionen konfiguriert werden +CustomizeProgram.Label=Passen Sie dieses Programm an +Default.Log.File.Button=Standardprotokolldatei verwenden +Browse.Button=Durchsuche +LogFile.Label=Protokolldatei: +Log.File.Display.Message=Die Protokolldatei sollte nach der Durchführung einer Imageoperation Fehler, Warnungen und Informationsmeldungen anzeigen. +Errors.Warnings.Label=Fehler, Warnungen und Informationsmeldungen (Log-Level 3) +Auto.Create.Logs.CheckBox=Erstellt automatisch Protokolle im Protokollverzeichnis des Programms +Log.Settings.Message=Geben Sie die Protokolleinstellungen an und klicken Sie auf Weiter. Je nach von Ihnen angegebener Inhaltsebene protokollieren wir mehr oder weniger Informationen. Diese Einstellung kann jederzeit im Abschnitt {quot;}Logs{quot;} im Optionsfenster konfiguriert werden +Log.Label=Was sollten wir protokollieren, wenn Sie eine Operation durchführen? +Windows.ADK.Module.Label=Modul für Windows Assessment and Deployment Kit (ADK)-Kompatibilität +WimlibModule.Label=Modul für Wimlib-Imagex-Kompatibilität +Install.Button=Installieren +Module.Install.Isn.Message=Wenn ein Modul, das Sie installieren möchten, hier nicht aufgeführt ist, ist es möglicherweise nicht mit der Version dieser Software kompatibel und eine Aktualisierung kann hilfreich sein.{crlf;}{crlf;}Sie können die Modulverwaltung jederzeit im Abschnitt {quot;}Module{quot;} unter Extras > Optionen durchführen und weitere Moduleinstellungen konfigurieren. +DISM.Tools.Supports.Message=DISMTools unterstützt Module, die dieses Programm erweitern und seine Fähigkeiten verbessern. Folgende Module sind mit dieser Version kompatibel: +ExtendProgram.Label=Erweitern Sie dieses Programm +Configure.Settings.Button=Weitere Einstellungen konfigurieren +Anything.Like.Label=Gibt es noch etwas, das Sie konfigurieren möchten? +Settings.Available.Message=Die Ihnen zur Verfügung stehenden Einstellungen sind mehr als das, was Sie gerade konfiguriert haben. Wenn Sie weitere davon ändern möchten, klicken Sie auf die Schaltfläche unten. Wir werden diese Einstellungen auch dauerhaft machen. +Done.Setting.Up.Message=Die Grundeinrichtung ist abgeschlossen. Klicken Sie auf {quot;}Fertig{quot;}, um die Einstellungen zu speichern. +SetupComplete.Label=Setup ist abgeschlossen +Stay.Up.Date.Label=Bleiben Sie auf dem Laufenden, um neue Funktionen und ein verbessertes Erlebnis zu erhalten +Get.Started.DISM.Label=Erste Schritte mit DISMTools und Image-Servicing, damit Sie schneller vorankommen +GetStarted.Button=Startseite +CheckUpdates.Button=Nach Updates suchen +Ve.Set.Things.Label=Nachdem Sie die Dinge nun eingerichtet haben, empfehlen wir Ihnen, die folgenden Dinge zu tun: +Perform.Steps.Time.Label=Sie können diese Schritte jederzeit ausführen. +SaveFile.Filter=Alle Dateien|*.* +Log.File.Title=Geben Sie die Protokolldatei an + +[Designer.Progress] +Image.Operations.Label=Imagevorgänge im Gange +Wait.Tasks.Label=Bitte warten Sie, während die folgenden Aufgaben erledigt sind. Dies kann einige Zeit dauern. +Cancel.Button=Abbrechen +CurrentTask.Label=currentTask +AllTasks.Label=allTasks +Tasks.Tcont.Label=Aufgaben: {currentTCont} von {taskCount} +ShowLog.Label=Protokoll anzeigen +Show.Dismlog.File.Link=DISM-Protokolldatei anzeigen (erweitert) +Progress.Label=Fortschritt + +[Designer.ProjProps] +Ok.Button=OK +Cancel.Button=Abbrechen +ProjectGUID.Label=Projekt GUID: +CreationDate.Label=Erstellungsdatum: +Location.Label=Standort: +ProjGuid.Label=projGuid +ProjTzdata.Label=projTZData +ProjPath.Label=projPath +ProjName.Label=projName +Name.Label=Name: +RemountImg.Label=Neu laden +Recover.Label=Wiederherstellen +MountDirectory.Label=Mount-Verzeichnis: +Installed.Languages.Label=Installierte Sprachen: +FileFormat.Label=Dateiformat: +ModificationDate.Label=Änderungsdatum: +FileCount.Label=Dateianzahl: +DirectoryCount.Label=Verzeichnisanzahl: +System.Root.Dir.Label=Systemstammverzeichnis: +ProductSuite.Label=Produktsuite: +ProductType.Label=Produkttyp: +Edition.Label=Ausgabe: +ServicePackLevel.Label=Service Pack-Ebene: +ServicePackBuild.Label=Service Pack-Build: +HAL.Label=HAL: +Architecture.Label=Architektur: +Supports.WIM.Boot.Label=Unterstützt WIMBoot? +ImageStatus.Label=Imagestatus: +ImageIndex.Label=Imageindex: +Size.Label=Größe: +Description.Label=Beschreibung: +Version.Label=Version: +ImageFile.Label=Imagedatei: +ImgFormat.Label=imgFormat +ImgModification.Label=imgModification +ImgCreation.Label=imgCreation +ImgFiles.Label=imgFiles +ImgDirs.Label=imgDirs +Img.Sys.Root.Label=imgSysRoot +ImgPsuite.Label=imgPSuite +ImgPtype.Label=imgPType +ImgEdition.Label=imgEdition +ImgSplvl.Label=imgSPLvl +ImgSpbuild.Label=imgSPBuild +ImgHal.Label=imgHal +Img.Mount.Dir.Label=imgMountDir +ImgArch.Label=imgArch +Img.WIM.Boot.Label=imgWimBootStatus +Img.Mounted.Status.Label=imgMountedStatus +ImgSize.Label=imgSize +Img.Mounted.Desc.Label=imgMountedDesc +Img.Mounted.Name.Label=imgMountedName +ImgVersion.Label=imgVersion +ImgIndex.Label=imgIndex +ImgName.Label=imgName +Getting.Project.Image.Label=Projekt- und Imageinformationen abrufen. Bitte warten +View.Ffuinformation.Label=FFU-Informationen anzeigen +Remount.Write.Label=Remount mit Schreibberechtigungen +ImgRW.Label=imgRW +Image.Rwpermissions.Label=Image R/W-Berechtigungen: +InstallationType.Label=Installationstyp: +Img.Inst.Type.Label=imgInstType +Image.Present.Project.Label=Im Projekt vorhandenes Image? +ImgStatus.Label=imgStatus +Many.Cannot.Seen.Message=Klicken Sie hier, um ein Image einzubinden +Props.Label=Eigenschaften + +[Designer.ProjectValues] +Old.File.Label=Alte Projektdatei: +ExitButton.Button=Ende +Independent.Values.Group=Unabhängige Werte +ImageLang.Label=ImageLang: +Image.Read.Write.Label=ImageReadWrite: +Image.Epoch.Modify.Label=ImageEpochModify: +Image.Epoch.Create.Label=ImageEpochCreate: +ImageFileCount.Value=ImageFileCount: +Image.Dir.Count.Label=ImageDirCount: +Image.Sys.Root.Label=ImageSysRoot: +ImagePsuite.Label=ImagePSuite: +ImagePtype.Label=ImagePType: +ImageEdition.Value=ImageEdition: +ImageSplevel.Label=ImageSPLevel: +ImageSpbuild.Label=ImageSPBuild: +ImageHal.Label=ImageHal: +ImageArch.Label=ImageArch: +Image.WIM.Boot.Label=ImageWIMBoot: +ImageDescription.Label=Imagebeschreibung: +ImageName.Label=Imagename: +ImageVersion.Label=ImageVersion: +Image.Mount.Point.Label=ImageMountPoint: +ImageIndex.Label=ImageIndex: +ImageFile.Label=ImageFile: +Epoch.Creation.Time.Label=EpochCreationTime: +Location.Label=Standort: +Name.Label=Name: +ImageFileCount.Label=Anzahl der Imagedateien +ImageEdition.Label=Image-Edition +ImageFile.Languages.Label=Imagedateisprachen +ImageFileDates.Label=Erstellungs- und Änderungsdaten der Imagedatei, gespeichert in Unix-Zeit (GMT+0) +Verify.Image.Read.Label=Überprüfen Sie, ob das Image Lese-/Schreibberechtigungen hat +Image.Dir.Label.Label=Anzahl der Imageverzeichnisse +Image.System.Root.Label=Stammverzeichnis des Imagesystems (\WINDOWS) +Image.Product.Suite.Label=Image Produktsuite +Image.Product.Type.Label=Imageprodukttyp +ServicePackLevel.Label=Image Service Pack-Level(SP1, SP2, SP3) +ServicePackBuild.Label=Image Service Pack Build +HAL.Label=Image HAL (Hardware-Abstraktionsschicht, hal.dll) +Mounted.Image.Arch.Label=Mounted-Image-Architektur (x86, amd64) +Verify.Image.Supports.Label=Überprüfen Sie, ob das Image WIMBoot unterstützt (nur Win8.1) +MountedDescription.Label=Mounted image-freundliche Beschreibung +Mounted.Image.Friendly.Label=Image-Anzeigename +Image.Version.Grab.Label=Imageversion (Grab-Version von ntoskrnl.exe) +ImageFile.Mount.Point.Label=Mount-Punkt der Imagedatei +ImageFileIndex.Label=Eingebauter Imagedateiindex +Mounted.ImageFile.Name.Label=Name der Mounted-Imagedatei +Creation.Time.Unix.Label=Projekterstellungszeit in Unix-Zeit (GMT+0) +ProjectLocation.Label=Projektstandort +ProjectName.Label=Projektname +Independent.Values.Message=Erhalten Sie unabhängige Werte, indem Sie {quot;}findstr{quot;} an den Command {quot;}type{quot;} weiterleiten. Übergeben Sie auch den Schalter {quot;}/b{quot;} nur, um Übereinstimmungen am Anfang anzuzeigen. +New.File.Label=Neue Projektdatei: +ContinueButton.Button=Weiter +ProjectValues.Label=Projektwerte + +[Designer.ServiceGroups] +Ok.Button=OK +Windows.Message=Dieses Windows-Image enthält die folgenden registrierten Gruppen für den Service-Host des Systems. Beachten Sie, dass die hier angezeigten Gruppen möglicherweise nicht mit den von den Diensten im Service Control Manager (SCM) definierten Gruppen übereinstimmen. +GroupName.Column=Gruppenname +ServicesGroup.Column=Dienste in der Gruppe +ServiceName.Column=Dienstname +DisplayName.Column=Anzeigename +Type.Column=Typ +Total.Label=Gesamt +Registered.Svc.Host.Label=Registrierte Service-Host-Gruppen im Image + +[Designer.RegistryPanel] +Tool.Lets.Load.Message=Mit diesem Tool können Sie die hier angegebenen Imageregistrierungs-Hives in das lokale System laden. Dadurch können Sie Änderungen an der im Windows-Image gespeicherten Konfiguration vornehmen. Sobald Sie mit der Anpassung eines Schlüssels aus einem Hive fertig sind, können Sie ihn auch hier entladen: +Load.Button=Laden +Ntuserdatdefault.User.Label=NTUSER.DAT (Standardbenutzer) +Open.Button=Öffnen +Default.Label=DEFAULT +System.Label=SYSTEM +Software.Label=SOFTWARE +Load.Custom.Hive=Benutzerdefinierten Hive laden +Unload.Button=Entladen +Browse.Button=Durchsuche +PathRegistry.Label=Pfad in der Registrierung: +HiveLocation.Label=Hive-Standort: +Load.Different.Label=Wenn Sie einen anderen Registrierungs-Hive laden möchten, geben Sie dessen Pfad an und klicken Sie auf Laden: +Image.Hives.Label=Imageregister hives + +[Designer.ReloadProject] +Ok.Button=OK +Cancel.Button=Abbrechen +ImageUnavailable.Message=Das in diesem Projekt geladene Image ist nicht mehr verfügbar. Dies kann passieren, wenn es von einem externen Programm ausgehängt wurde. Aus diesem Grund muss das Projekt neu geladen werden. Klicken Sie auf {quot;}OK{quot;}, um dieses Projekt neu zu laden.{crlf;}{crlf;}HINWEIS: Wenn Sie auf {quot;}Cancel{quot;} klicken, wird das Projekt entladen +ImageMissing.Label=Dieses Image ist nicht mehr verfügbar +DISMTools.Label=DISMTools + +[Designer.RemCapabilities] +Ok.Button=OK +Cancel.Button=Abbrechen +Capability.Column=Fähigkeit +State.Column=Status +Remove.Label=Funktionen entfernen + +[Designer.RemDrivers] +Ok.Button=OK +Cancel.Button=Abbrechen +PublishedName.Column=Veröffentlichter Name +Original.File.Name.Column=Originaldateiname +ProviderName.Column=Providername +ClassName.Column=Klassenname +Part.Windows.Column=Teil der Windows-Distribution? +BootCritical.Column=Ist bootkritisch? +Version.Column=Version +Date.Column=Datum +DriverPackages.Wish.Label=Geben Sie die Treiberpakete an, die Sie entfernen möchten, und klicken Sie auf OK: +Hide.Boot.Critical.CheckBox=Bootkritische Treiber ausblenden +Hide.Drivers.Part.CheckBox=Treiber ausblenden, die Teil der Windows-Distribution sind +RemoveDrivers.Label=Treiber entfernen + +[Designer.RemPackage] +Ok.Button=OK +Cancel.Button=Abbrechen +PackageRemoval.Group=Paketentfernung +Browse.Button=Durchsuche +Note.May.Message=HINWEIS: Das Programm zeigt möglicherweise Pakete an, die ursprünglich nicht hinzugefügt wurden. Wenn jedoch kein Paket hinzugefügt wird, überspringt das Programm es. +PackageSource.Label=Paketquelle: +Package.Files.RadioButton=Paketdateien angeben: +Package.Names.RadioButton=Paketnamen angeben: +PackageSource.Description=Bitte geben Sie eine Paketquelle an: +RemovePackages.Label=Pakete entfernen + +[Designer.RemoveAppx] +Ok.Button=OK +Cancel.Button=Abbrechen +PackageName.Column=Paketname +App.Display.Name.Column=Anwendungsanzeigename +Architecture.Column=Architektur +ResourceID.Column=Ressourcen-ID +Version.Column=Version +Registered.User.Column=Für einen beliebigen Benutzer registriert? +Prov.Label=Entfernen Sie bereitgestellte AppX-Pakete + +[Designer.ScriptBrowser] +Ok.Button=OK +Cancel.Button=Abbrechen +Create.Starter.Button=Erstellen Sie Ihre eigenen Starterskripte +Name.Column=Name +System.Config.Item=Während der Systemkonfiguration +First.User.Logs.Item=Wenn sich der erste Benutzer anmeldet +Whenever.User.Logs.Item=Wann immer sich ein Benutzer zum ersten Mal anmeldet +Scripts.Defined.User.Item=Vom Benutzer definierte Skripte +Stage.Type.Choose.Label=Wählen Sie einen Bühnen- oder Skripttyp: +EnlargePreview.Label=Vorschau vergrößern +Export.Code.File.Button=Skriptcode in eine Datei exportieren +Okinsert.Label=Klicken Sie auf OK, um dieses Skript einzufügen. Vorhandene Skriptinhalte werden durch dieses Skript ersetzt. +ScriptCode.Label=Skriptcode: +Language.Label=Sprache: +Language.Value.Label=Sprache: {0} +Description.Label=Skriptbeschreibung +ScriptName.Label=Skriptname +View.Label=Wählen Sie ein Skript aus, um seine Informationen anzuzeigen. +StarterScripts.Help.Message=Diese vordefinierten Starterskripte können Ihnen dabei helfen, das Beste aus Ihrem Windows-Image herauszuholen, wenn Sie diese unbeaufsichtigte Antwortdatei verwenden. Diese Skripte wurden von den Entwicklern kuratiert und getestet.{crlf;}{crlf;}Um zu beginnen, wählen Sie ein Starterskript aus der Liste links aus.{crlf;}{crlf;}Wenn Sie ein Starterskript haben, das nicht in diesem Satz von Skripten enthalten ist, können Sie es stattdessen aus dem Dateisystem laden. +Export.Code.Title=Skriptcode exportieren +Leave.Full.Screen.Label=Um den VollImagemodus zu verlassen, klicken Sie auf die Schaltfläche rechts oder drücken Sie ESC. +GoBack.Label=Zurück +LoadStarterScript.Label=Laden Sie ein vordefiniertes Starter-Skript + +[Designer.SaveProject] +Yes.Button=Ja +No.Button=Nein +Cancel.Button=Abbrechen +SaveChanges.Label=Möchten Sie die Änderungen dieses Projekts speichern? +Shutdown.Message=Wenn Sie Ihr System herunterfahren oder neu starten, ohne die Image auszuhängen, müssen Sie die Wartungssitzung neu laden. +AppName.Label=DISMTools + +[Designer.ScriptReorder] +Ok.Button=OK +Cancel.Button=Abbrechen +Dialog.Alter.Order.Message=Verwenden Sie diesen Dialog, um die Reihenfolge zu ändern, in der die Skripte ausgeführt werden. Klicken Sie auf OK, um die Änderungen zu speichern. Elemente oben in der Liste sind die ersten Skripte, die ausgeführt werden, während diejenigen unten in der Liste die letzten sind, die ausgeführt werden. +ScriptCode.Label=Skriptcode: +Script.Column=Skript # +ScriptOrder.Label=Skriptreihenfolge: +WordWrap.CheckBox=Wortumschlag +Scripts.Stage.Label=Skripte für diese Phase neu anordnen + +[Designer.Services] +Intro.Message=Mit diesem Tool können Sie die Dienste dieses Ziel-Images anzeigen und verwalten. Klicken Sie auf „Dienständerungen speichern“, um alle an den Windows-Diensten vorgenommenen Änderungen zu speichern. +ServiceName.Column=Dienstname +DisplayName.Column=Anzeigename +Description.Column=Beschreibung +StartType.Column=Starttyp +Type.Column=Typ +ServiceInfo.Tab=Serviceinformationen +DelayedStart.CheckBox=Verzögerter Start +Description.Label=Dienstbeschreibung: +User.Flags.Label=Benutzerdienstflaggen: +ServiceType.Label=Servicetyp: +Start.Type.Label=Dienststarttyp: +Object.Name.Label=Service-Objektname: +Image.Path.Label=Service-Imagepfad: +Display.Name.Label=Service-Anzeigename: +ServiceName.Label=Dienstname: +Required.Privileges.Tab=Erforderliche Privilegien +PrivilegeName.Column=Berechtigung +PrivilegeName.Display.Column=Privilege-Anzeigename +Privilege.Description.Column=Privilege-Beschreibung +ErrorControl.Tab=Fehlerkontrolle +FailureActions.Group=Fehleraktionen +FutureErrors.Label=Über zukünftige Fehler: +NdError.Label=Beim 2. Fehler: +ResetErrorCount.Label=Fehleranzahl nach den folgenden Minuten zurücksetzen: +StError.Label=Beim 1. Fehler: +Error.Windows.Label=Was sollte Windows bei einem Dienstfehler tun? +Dependencies.Tab=Dienstabhängigkeiten +ServiceGroups.Tab=Dienstgruppen +RegisteredHosts.Label=Registrierte Service-Host-Gruppen abrufen +Services.Belong.Group=Dienste, die zu dieser Gruppe gehören +Part.Group.Label=Dieser Dienst ist Teil der Gruppe: +Save.Changes.Label=Dienständerungen speichern +ProgressLabel.Label=Bitte warten +Reload.Label=Neu laden +SelectService.Label=Es wurde kein Dienst ausgewählt. Wählen Sie oben einen Dienst aus, um Details anzuzeigen. +Save.Button=Serviceinformationen speichern +MarkdownFiles.Filter=Markdown-Dateien|*.md +RestoreService.Label=Dienst wiederherstellen +DeleteService.Label=Dienst löschen +System.Label=Systemdienste + +[Designer.ServiceMgmt] +Restart.Minutes.Label=Dienst nach den folgenden Minuten neu starten: +Dependent.Services.Label=Die folgenden Dienste hängen von diesem Dienst ab: +Dependencies.Label=Dieser Dienst hängt von den folgenden Diensten ab: + +[Designer.ImageEdition] +Ok.Button=OK +Cancel.Button=Abbrechen +Target.Upgrade.Label=Zielausgabe zum Upgrade auf: +ServerOptions.Group=Aktive Serverinstallationsoptionen +Browse.Button=Durchsuche +AcceptEULA.RadioButton=Akzeptieren Sie die Endbenutzer-Lizenzvereinbarung (EULA) und verwenden Sie den folgenden Produktschlüssel: +Copy.EndUser.RadioButton=Kopieren Sie die Endbenutzer-Lizenzvereinbarung (EULA) an den folgenden Speicherort: +Set.Image.Label=Imageausgabe festlegen + +[Designer.SetLayeredDriver] +Ok.Button=OK +Cancel.Button=Abbrechen +Intro.Message=Mit dieser Aktion können Sie einen Tastaturschichttreiber für japanische und koreanische Tastaturen festlegen, da einige Benutzer Tastaturen mit zusätzlichen Tasten haben. Geben Sie einfach den neuen Layer-Treiber aus der Liste unten an und klicken Sie auf OK +CurrentDriver.Label=Aktueller Tastatur-Layout-Treiber: +NewDriver.Label=Neuer Tastatur-Layout-Treiber: +Driver.Already.Label=Dieser Treiber wurde bereits festgelegt +Title=Tastatur-Layer-Treiber festlegen + +[Designer.OSRollback] +Ok.Button=OK +Cancel.Button=Abbrechen +Default.OS.Message=Standardmäßig und nach einem Betriebssystem-Update haben Sie 10 Tage Zeit, um zur vorherigen Windows-Version zurückzukehren. Sie können diese Einstellung jedoch ändern, wenn Sie zu einem späteren Zeitpunkt zur alten Betriebssystemversion zurückkehren möchten.{crlf;}{crlf;}Bitte verwenden Sie den numerischen Schieberegler, um die Anzahl der Tage zu erhöhen oder zu verringern, die Sie haben, um zur alten Windows-Version zurückzukehren. Er muss zwischen 2 und 60 liegen. +Amount.Days.Revert.Label=Anzahl der Tage, an denen Sie zur alten Windows-Version zurückkehren müssen: +OSUninstall.Label=Deinstallationsfenster für das Betriebssystem festlegen + +[Designer.SetProductKey] +Ok.Button=OK +Cancel.Button=Abbrechen +Type.ProductKey.Label=Geben Sie den Produktschlüssel ein, den Sie für Ihr Windows-Image festlegen möchten, einschließlich der Bindestriche: +ValidateKey.Button=Schlüssel validieren +Check.ProductKey.Message=Wenn Sie überprüfen möchten, ob Ihr Produktschlüssel für das Windows-Image gültig ist, klicken Sie auf Schlüssel validieren. Dadurch wird auch die Syntax Ihres Schlüssels überprüft. +SetProductKey.Label=Produktschlüssel festlegen + +[Designer.Scratch] +Ok.Button=OK +Cancel.Button=Abbrechen +ScratchSpace.Label=Scratch-Größe: +AmountWritable.Message=Der Scratch-Speicherplatz ist die Menge an beschreibbarem Speicherplatz, die auf dem Windows PE-Systemvolume verfügbar ist, wenn sein Inhalt in den Speicher kopiert wird. Bitte geben Sie einen Platz für Kratzer an und klicken Sie auf OK. +MB.Label=MB +ScratchSpace.Amount.Label=Es wurde ein ungültiger Scratch-Speicherplatzbetrag erkannt +Set.Windows.Pescratch.Label=Legt den Windows PE-Scratch-Speicherplatz fest + +[Designer.SetTargetPath] +Ok.Button=OK +Cancel.Button=Abbrechen +Target.Dir.Message=Der Zielpfad ist ein Verzeichnis, in das die Windows PE-Dateien kopiert werden, um in die Umgebung zu booten. Bitte geben Sie einen Zielpfad an und klicken Sie auf OK. +TargetPath.Label=Zielpfad: +Windows.Petarget.Label=Windows PE-Zielpfad festlegen + +[Designer.SettingsResetDlg] +Yes.Button=Ja +No.Button=Nein +ProceedReset.Message=Wenn Sie fortfahren, werden die Einstellungen auf ihre Standardwerte zurückgesetzt. Sobald dieser Vorgang abgeschlossen ist, kehren Sie zum Hauptprogrammfenster zurück. Möchten Sie fortfahren? +Form.Label=Einstellungen zurücksetzen + +[Designer.SingleImageIndex] +Know.Indexes.Message=Um mehr über die Indizes eines Images oder einige seiner spezifischen Eigenschaften zu erfahren, gehen Sie zu {quot;}Commande > Imageverwaltung > Imageinformationen abrufen{quot;} oder klicken Sie hier +Ok.Button=OK +Cannot.Switch.Message=Sie können nicht zu anderen Indizes wechseln. Wenn Sie die Imageänderungen speichern möchten, können Sie dies über einen neuen, separaten Index tun. +Image.Seems.Only.Label=Dieses Image scheint nur einen Index zu haben +DISMTools.Label=DISMTools + +[Designer.SplashScreen] +VersionLabel.Label=Version +DISM.Tools.Starting.Button=DISMTools - Starten + +[Designer.UnattendMgr] +ProjectPath.Label=Projektpfad: +Browse.Button=Durchsuche +FileName.Column=Dateiname +Created.Column=Erstellt +LastModified.Column=Zuletzt geändert +LastAccessed.Column=Zuletzt aufgerufen +ApplyImage.Button=Auf Image anwenden +Open.File.Location.Button=Dateispeicherort öffnen +OpenFile.Button=Datei öffnen +Unattended.AnswerFile.Label=Unbeaufsichtigter Antwortdateimanager + +[Designer.WimScriptEditor] +Config.List.Allows.Message=Mit dem Konfigurationslisten-Editor können Sie Dateien und/oder Ordner während Aktionen ausschließen, mit denen Sie diese Dateien angeben können, z. B. beim Aufnehmen eines Images. Sie können die Einstellungen entweder über die grafische Oberfläche angeben oder die Konfigurationsdatei manuell erstellen. Wenn Sie fertig sind, klicken Sie auf das Symbol Speichern. +Compression.Exclusion.List=Komprimierungsausschlussliste +Edit.Button=Editieren +Add.Button=Hinzufügen +Remove.Button=Entfernen +Exclusion.Exception.List=Ausschlussausnahmeliste +ExclusionList.Group=Ausschlussliste +New.Label=Neu +Open.Button=Open +Save.Button=Speichern unter +Toggle.Word.Wrap.Label=Wort umschalten +Help.Label=Hilfe +Tools.Label=Werkzeuge +Exclude.User.One.Button=Benutzer-OneDrive-Ordner ausschließen +Inifiles.Filter=INI-Dateien|*.ini +Config.List.Load.Title=Geben Sie die zu ladende Konfigurationsliste an +Wimscript.Filter=INI-Dateien|*.ini +Location.Save.Config.Title=Geben Sie den Speicherort an, an dem die Konfigurationsliste gespeichert werden soll +ConfigList.Label=DISM Konfigurationslisteneditor + +[Designer.WDSImageGroup] +Ok.Button=OK +Cancel.Button=Abbrechen +Action.Choose.Label=Aktion wählen: +Refresh.Button=Aktualisieren +Upload.RadioButton=Laden Sie dieses Image in die folgende WDS-Imagegruppe hoch: +CreateGroup.RadioButton=Erstelle die folgende WDS-Imagegruppe für mich und lade dieses Image dort hoch: +Already.Exists.Label=Diese Gruppe existiert bereits. +SpecifyGroup.Button=Geben Sie eine Gruppe in Ihrem WDS-Server an + +[Designer.WDSImageCopy] +Ok.Button=OK +Cancel.Button=Abbrechen +Pick.Button=Wählen +Browse.Button=Durchsuche +ImageFile.Server.Label=Imagedatei zum Kopieren auf den Server: +Mounted.Image.Button=Gemountetes Image +Images.Added.Group.Label=Die Image werden der folgenden Gruppe hinzugefügt: +Value.Column=# +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Image.Architecture.Column=Imagearchitektur +Pick.Server.Groups.Button=Aus Servergruppen auswählen +SelectAll.Button=Alle auswählen +ClearSelection.Button=Auswahl löschen +Progress.Group=Fortschritt +Re.Ready.OK.Label=Wenn Sie bereit sind, klicken Sie auf OK. +Status.Label=Status +WIM.Files.Filter=WIM-Dateien|*.wim +Image.Win.Deploy.Label=Kopieren Sie ein Image in Windows Deployment Services + +[Designer.WimFileSource] +ImageFile.Label=Imagedatei +ImageIndex.Label=Imageindex + +[DisableFeat] +DisableFeatures.Label=Funktionen deaktivieren +Image.Task.Header.Label={0} +PackageName.Label=Paketname: +Features.Group=Funktionen +Options.Group=Optionen +Lookup.Button=Nachschlagen +Ok.Button=OK +Cancel.Button=Abbrechen +FeatureName.Column=Feature-Name +State.Column=Status +ParentPackage.CheckBox=Geben Sie den Namen des übergeordneten Pakets für Funktionen an +Remove.Feature.CheckBox=Funktion entfernen, ohne Manifest zu entfernen + +[DisableFeat.Validation] +Features.Message=Bitte wählen Sie die zu deaktivierenden Features aus und versuchen Sie es erneut. +FeaturesSelected.Title=Keine Features ausgewählt + +[DismComponents] +Title.Label=DISM-Komponenten +Component.Column=Komponente +Version.Column=Version +Ok.Button=OK + +[DriverFileInfo] +Driver.File.Label=Treiberdateiinformationen +Driver.File.Label.Label=Informationen zur Treiberdatei: {0} +Property.Column=Eigenschaft +Value.Column=Wert +Ok.Button=OK +Copy.Button=Kopieren +PublishedName.Label=Veröffentlichter Name +Original.File.Name.Label=Originaldateiname +Critical.Boot.Process.Label=Ist für den Boot-Prozess entscheidend? +Yes.Button=Ja +No.Button=Nein +Part.Windows.Label=Ist Teil der Windows-Distribution? +ListItem.Button=Ja +Version.Label=Version +ClassName.Label=Klassenname +ClassDescription.Label=Klassenbeschreibung +ClassGUID.Label=Klasse GUID +ProviderName.Label=Providername +Date.Label=Datum +SignatureStatus.Label=Signaturstatus +CatalogFile.Label=Catalogdatei + +[DriverFileInfo.Messages] +Hresult.Label=(HRESULT: {lbrace;}0{rbrace;}) + +[DriverFilter.Classes] +AudioProcessing.Message=Beinhaltet Audioverarbeitungsobjekte (APOs). Weitere Informationen finden Sie unter Windows Audio Processing Objects. +Battery.Devices.UPS.Label=Beinhaltet Batteriegeräte und USV-Geräte. +Windows.Message=(Windows Server 2003 und spätere Versionen) Beinhaltet alle biometrischen persönlichen Identifikationsgeräte. +Windows.Label=(Windows XP SP1 und spätere Versionen) Beinhaltet alle Bluetooth-Geräte. +Camera.Message=(Windows 10 Version 1709 und spätere Versionen) Containsuniverselle Kameratreiber. +Cd.Rom.Drives.Message=Beinhaltet CD-ROM-Laufwerke, einschließlich SCSI-CD-ROM-Laufwerke. Standardmäßig installiert das Installationsprogramm der CD-ROM-Klasse des Systems auch einen vom System bereitgestellten CD-Audiotreiber und einen CD-ROM-Wechslertreiber als Plug-and-Play-Filter. +Hard.Disk.Drives.Label=Beinhaltet Festplattenlaufwerke. Siehe auch die HDC- und SCSIAdapter-Klassen. +VideoAdapters.Message=Beinhaltet Videoadapter. Zu den Treibern dieser Klasse gehören Anzeigetreiber und Video-Miniport-Treiber. +Extension.Message=(Windows 10 und spätere Versionen) Beinhaltet alle Geräte, die Anpassungen erfordern. Weitere Informationen finden Sie unter Verwenden einer Erweiterungs-INF-Datei. +Floppy.Disk.Drive.Label=Beinhaltet Diskettenlaufwerk-Controller. +Floppy.Disk.Drives.Label=Beinhaltet Diskettenlaufwerke. +Includes.Hard.Message=Beinhaltet Festplattencontroller, einschließlich ATA/ATAPI-Controller, aber keine SCSI- und RAID-Festplattencontroller. +InputDevices.Message=Beinhaltet interaktive Eingabegeräte, die vom systemeigenen HID-Klassentreiber bedient werden. Beinhaltet USB-Geräte, die dem USB-HID-Standard entsprechen, und Nicht-USB-Geräte, die einen HID-Minidriver verwenden. Weitere Informationen finden Sie unter HIDClass Device Setup Class. Siehe auch die Tastatur- oder Mausklassen. +ControlDevices.Message=Beinhaltet Geräte, die den Betrieb multifunktionaler IEEE 1284.4-Peripheriegeräte steuern. +Dot.Print.Functions.Message=Beinhaltet Dot4-Druckfunktionen. Eine Dot4-Druckfunktion ist eine Funktion auf einem Dot4-Gerät und verfügt über ein einzelnes untergeordnetes Gerät, das Mitglied der Einrichtungsklasse des Druckergeräts ist. +Ieeedevices.Support.Message=Beinhaltet IEEE 1394-Geräte, die die Geräteklasse des IEC-61883-Protokolls unterstützen. Die 61883-Komponente umfasst den Protokolltreiber 61883.sys, der verschiedene Audio- und Videodatenströme über den 1394-Bus überträgt. Dazu gehören derzeit DV, MPEG2, DSS und Audio in Standard-/Hoch-/Niedrigqualität. Die IEC-61883-Spezifikationen definieren diese Datenströme. +Ieeedevices.Support.Label=Beinhaltet IEEE 1394-Geräte, die die Geräteklasse des AVC-Protokolls unterstützen. +SBP2.Message=Beinhaltet IEEE 1394-Geräte, die die Geräteklasse des SBP2-Protokolls unterstützen. +HostControllers.Message=Beinhaltet 1394 Host-Controller, die an einen PCI-Bus angeschlossen sind, aber nicht 1394 Peripheriegeräte. Treiber für diese Klasse werden vom System bereitgestellt. +Still.Image.Capture.Label=Beinhaltet Geräte zur StandImageaufnahme, Digitalkameras und Scanner. +InfraredDevices.Message=Beinhaltet Infrarotgeräte. Zu den Treibern für diese Klasse gehören Serial-IR- und Fast-IR-NDIS-Miniports, aber siehe auch die Netzwerkadapterklasse für andere NDIS-Netzwerkadapter-Miniports. +Keyboards.Message=Beinhaltet alle Tastaturen. Das heißt, es muss auch im (sekundären) INF für ein aufgezähltes untergeordnetes HID-Tastaturgerät angegeben werden. +ScsimediaChanger.Label=Beinhaltet SCSI-Medienwechslergeräte. +Memory.Devices.Such.Label=Beinhaltet Speichergeräte wie Flash-Speicherkarten. +Modem.Devices.INF.Message=Beinhaltet Modemgeräte. Eine INF-Datei für ein Gerät dieser Klasse gibt die Funktionen und Konfiguration des Geräts an und speichert diese Informationen in der Registrierung. Eine INF-Datei für ein Gerät dieser Klasse kann auch verwendet werden, um Gerätetreiber für ein Controller-loses Modem oder ein Softwaremodem zu installieren. Diese Geräte teilen die Funktionalität zwischen dem Modemgerät und dem Gerätetreiber auf. Weitere Informationen zu Modem-INF-Dateien und Modemgeräten des Microsoft Windows Driver Model (WDM) finden Sie unter Übersicht über Modem-INF-Dateien und Hinzufügen von WDM-Modemunterstützung. +Display.Monitors.INF.Message=Beinhaltet Anzeigemonitore. Ein INF für ein Gerät dieser Klasse installiert keine Gerätetreiber, sondern gibt stattdessen die Funktionen eines bestimmten Monitors an, die in der Registrierung zur Verwendung durch Treiber von Videoadaptern gespeichert werden sollen. (Monitore werden als untergeordnete Geräte von Anzeigeadaptern aufgeführt.) +Mouse.Devices.Message=Beinhaltet alle Mausgeräte und andere Arten von Zeigegeräten, wie z. B. Trackballs. Das heißt, diese Klasse muss auch im (sekundären) INF für ein aufgezähltes untergeordnetes HID-Mausgerät angegeben werden. +Combo.Cards.Such.Message=Beinhaltet Combo-Karten, wie z. B. ein PCMCIA-Modem und einen Netzwerkkartenadapter. Der Treiber für ein solches Plug-and-Play-Multifunktionsgerät ist in dieser Klasse installiert und zählt Modem und Netzwerkkarte separat als untergeordnete Geräte auf. +Audio.Dvdmultimedia.Message=Beinhaltet Audio- und DVD-Multimediageräte, Joystick-Anschlüsse und Full-Motion-Videoaufnahmegeräte. +MultiportSerial.Message=Beinhaltet intelligente serielle Multiport-Karten, jedoch keine Peripheriegeräte, die eine Verbindung zu seinen Ports herstellen. Es umfasst keine unintelligenten seriellen Multiport-Controller (Typ 16550) oder seriellen Single-Port-Controller (siehe Ports-Klasse). +NetworkAdapter.Message=Besteht aus Netzwerkadaptertreibern. Diese Treiber müssen entweder NdisMRegisterMiniportDriver oder NetAdapterCreate aufrufen. Treiber, die weder NDIS noch NetAdapter verwenden, sollten eine andere Setup-Klasse verwenden. +Includes.Network.Message=Beinhaltet Netzwerk- und/oder Druckanbieter. NetClient-Komponenten sind in Windows 8.1, Windows Server 2012 R2 und höher veraltet. +Network.Services.Such.Label=Beinhaltet Netzwerkdienste wie Umleitungen und Server. +NdisprotocolsCo.Message=Beinhaltet eigenständige CoNDIS-Anrufmanager und CoNDIS-Clients der NDIS-Protokolle sowie Treiber höherer Levelin Transportstapeln. +SecureDevices.Message=Beinhaltet Geräte, die die kryptografische Verarbeitung der sicheren Socket-Schicht (SSL) beschleunigen. +PcmciacardBus.Message=Beinhaltet PCMCIA- und CardBus-Host-Controller, jedoch keine PCMCIA- oder CardBus-Peripheriegeräte. Treiber für diese Klasse werden vom System bereitgestellt. +Serial.Parallel.Port.Message=Beinhaltet serielle und parallele Portgeräte. Siehe auch die Klasse MultiportSerial. +Printers.Admin.Hit.Label=Beinhaltet Drucker. Schlagen Sie sie als IT-Administrator mit einem Baseballschläger. +Includes.SCSI.Message=Beinhaltet SCSI/1394-aufgezählte Drucker. Treiber für diese Klasse ermöglichen die Druckerkommunikation für einen bestimmten Bus. +ProcessorTypes.Label=Beinhaltet Prozessortypen. +ScsihostBus.Message=Beinhaltet SCSI-Hostbus-Adapter (HBAs), Disk-Array- und NVMe-Controller. +Includes.Trusted.Message=Beinhaltet Trusted Platform Module-Chips. Ein TPM ist ein sicherer Kryptoprozessor, der Sie bei Aktionen wie dem Generieren, Speichern und Begrenzen der Verwendung kryptografischer Schlüssel unterstützt. Jedes neu hergestellte Gerät muss standardmäßig TPM 2.0 implementieren und aktivieren. Weitere Informationen finden Sie unter TPM-Empfehlungen. +Includes.Sensor.Label=Beinhaltet Sensor- und Ortungsgeräte wie GPS-Geräte. +Smart.Card.Readers.Label=Beinhaltet Smartcard-Lesegeräte. +Virtual.Child.Device.Message=Beinhaltet ein virtuelles untergeordnetes Gerät zum Kapseln von Softwarekomponenten. Weitere Informationen finden Sie unter Hinzufügen von Softwarekomponenten mit einer INF-Datei. +Storage.Disks.Label=Speicherfestplatten, die einen Speicherstapel mit mehreren Warteschlangen verwenden. +Includes.Storage.Message=Beinhaltet Speichervolumes, wie sie vom vom System bereitgestellten logischen Volume-Manager definiert werden, und Klassentreiber, die Geräteobjekte zur Darstellung von Speichervolumes erstellen, wie beispielsweise den Systemfestplattenklassentreiber. +HalsSystem.Message=Beinhaltet HALs, Systembusse, Systembrücken, den System-ACPI-Treiber und den System-Volume-Manager-Treiber. +Tape.Drives.Including.Label=Beinhaltet Bandlaufwerke, einschließlich aller Band-Miniklassentreiber. +Usbdevice.Includes.Message=USBDevice umfasst alle USB-Geräte, die nicht zu einer anderen Klasse gehören. Diese Klasse wird nicht für USB-Host-Controller und -Hubs verwendet. Treiber für diese Geräte werden vom Betriebssystem bereitgestellt und sollten die USB-Klasse verwenden, die in den für die Systemverwendung reservierten systemdefinierten Geräte-Setup-Klassen beschrieben ist. +WindowsCeactive.Message=Beinhaltet Windows CE ActiveSync-Geräte. Die WCEUSBS-Setup-Klasse unterstützt die Kommunikation zwischen einem Personalcomputer und einem Gerät, das mit dem Windows CE ActiveSync-Treiber (im Allgemeinen PocketPC-Geräte) kompatibel ist, über USB. +Wpddevices.Label=Beinhaltet WPD-Geräte. + +[DriverFilter.Month] +January.Label=Januar +February.Label=Februar +March.Label=März +April.Label=April +Value.Label=Mai +June.Label=Juni +July.Label=Juli +August.Label=August +September.Label=September +October.Label=Oktober +November.Label=November +December.Label=Dezember + +[Driver.Manual] +Driver.Files.Choose.Label=Wählen Sie Treiberdateien im Verzeichnis +RecursiveListing.Message=Nachfolgend finden Sie eine rekursive Auflistung aller Treiber in dem von Ihnen angegebenen Verzeichnis. Wählen Sie aus dieser Liste die Treiber aus, die Sie hinzufügen möchten, und klicken Sie auf „OK“. +Ok.Button=OK +Cancel.Button=Abbrechen +Refresh.Button=Aktualisieren + +[Driver.Manual.Scan] +Scanning.Driver.Dir.Label=Scanning-Verzeichnis{crlf;}Bisher gefundene Treiberdateien: {0} +Dir.Complete.Driver.Label=Verzeichnisscan abgeschlossen.{crlf;}Treiberdateien gefunden: {0} + +[DriverFilePicker.Validation] +File.Label=Datei + +[DynaViewer.Main] +EventsFiltering.Message=Bitte warten Sie, während die Ereignisse gefiltert werden Ändern Sie die Filter, um den aktuellen Vorgang abzubrechen. + +[DynaViewer.Errors] +InternalError.Message=Es ist ein interner Fehler aufgetreten: {crlf;}{crlf;}{0}{crlf;}{crlf;}Melden Sie dieses Problem den Entwicklern. +UnhandledError.Message=Unbehandelter Fehler + +[DynaViewer.EventProps] +Field.Empty.Caller.Message=Das obige Feld kann leer sein, wenn der Anrufer kein übergeordnetes Element hat oder wenn das Protokollierungssystem von der Methode im Programm aufgerufen wurde, wobei der Parameter GetParentCaller auf false gesetzt war.{crlf;}{crlf;}Als Entwickler können Sie Ereignisse protokollieren, ohne den übergeordneten Anrufer wie folgt zu erhalten:{crlf;}{crlf;} DynaLog.LogMessage ({quot;}Ereignisnachricht{quot;}, Falsch) +Parent.Caller.Title=Ereignis Parent Caller + +[EnableFeat.EnableFeature] +EnableFeatures.Label=Funktionen aktivieren +Image.Task.Header.Label={0} +PackageName.Label=Paketname: +FeatureSource.Label=Feature-Quelle: +Lookup.Button=Nachschlagen +Browse.Button=Durchsuche +Detect.Group.Policy.Button=Von Gruppenrichtlinie erkennen +Cancel.Button=Abbrechen +Ok.Button=OK +Features.Group=Funktionen +Options.Group=Optionen +ParentPackage.CheckBox=Geben Sie den Namen des übergeordneten Pakets für Funktionen an +Source.CheckBox=Feature-Quelle angeben +ParentFeatures.CheckBox=Alle übergeordneten Funktionen aktivieren +Contact.Win.Update.CheckBox=Kontakt Windows Update für Online-Image +FeatureName.Column=Feature-Name +State.Column=Status +SourceFolder.Description=Geben Sie einen Ordner an, der als Feature-Quelle fungiert: +CommitImage.CheckBox=Commit-Image nach dem Aktivieren von Funktionen ausführen + +[EnableFeat.Validation] +Features.Message=Bitte wählen Sie die zu aktivierenden Features aus und versuchen Sie es erneut. +FeaturesSelected.Title=Keine Features ausgewählt +Features.Image.Message=Für einige Features in diesem Image muss eine Quelle angegeben werden, damit sie aktiviert werden können. Die angegebene Quelle ist für diesen Vorgang nicht gültig. +Source.Required.Message=Bitte geben Sie eine gültige Quelle an und versuchen Sie es erneut. +Source.Message=Bitte stellen Sie sicher, dass die Quelle im Dateisystem vorhanden ist, und versuchen Sie es erneut. +EnableFeatures.Message=Funktionen aktivieren +Source.Message.Message=Die angegebene Quelle ist ungültig. Bitte geben Sie eine gültige Quelle an und versuchen Sie es erneut +EnableFeatures.Title=Funktionen aktivieren + +[EnvVars.Management] +Removed.Label=(wird entfernt) +InfoLoaded.Message=Umgebungsvariableninformationen wurden erfolgreich in der Registrierung des Ziel-Images gespeichert.{crlf;}{crlf;}Eine Sicherungskopie der vorherigen Variablenkonfiguration wurde auf Ihrem Desktop gespeichert, falls Sie sie benötigen, falls die Änderungen nicht wie geplant verlaufen.{crlf;}{crlf;}Laden Sie einfach den SYSTEM-Hive des Ziel-Images und importieren Sie diese Registrierungsdatei. +InfoSaved.Message=Umgebungsvariableninformationen konnten nicht in der Registrierung des Ziel-Images gespeichert werden. + +[EnvVars.Info] +Machine.Field=Maschine +User.Field=Benutzer + +[EnvVars.Helper] +CurrentInfo.Message=Aktuelle Umgebungsvariableninformationen für den Systembereich konnten nicht gesichert werden. Im Falle eines Fehlers bei der Verwaltung von Umgebungsvariablen werden Backups verwendet. Sie können fortfahren, aber auf eigenes Risiko.{crlf;}{crlf;}Anwendungen, die auf diesen Variablen basieren, funktionieren möglicherweise nicht richtig und Sie können die vorherige Variablenkonfiguration nicht verwenden, es sei denn, Sie haben sie zuvor selbst gesichert.{crlf;}{crlf;}Möchten Sie fortfahren, ohne aktuelle Variableninformationen zu sichern? +BackupSaved.Title=Umgebungsvariableninformationen konnten nicht gesichert werden +UserBackup.Message=Aktuelle Umgebungsvariableninformationen für den Benutzerbereich konnten nicht gesichert werden. Im Falle eines Fehlers bei der Verwaltung von Umgebungsvariablen werden Backups verwendet. Sie können fortfahren, aber auf eigenes Risiko.{crlf;}{crlf;}Anwendungen, die auf diesen Variablen basieren, funktionieren möglicherweise nicht richtig und Sie können die vorherige Variablenkonfiguration nicht verwenden, es sei denn, Sie haben sie zuvor selbst gesichert.{crlf;}{crlf;}Möchten Sie fortfahren, ohne aktuelle Variableninformationen zu sichern? + +[Exception] +DISM.Tools.Internal.Label=DISMTools - Interner Fehler +Sorry.Inconvenience.Message=Wir entschuldigen uns für die Unannehmlichkeiten, aber DISMTools ist auf einen Fehler gestoßen, den es nicht beheben konnte, und wir brauchen Ihre Hilfe, um fortzufahren.{crlf;}{crlf;}Hier sind die Fehlerinformationen, falls Sie sie benötigen: +Help.Us.Fix.Label=Bitte helfen Sie uns, dieses Problem zu beheben +Reporting.Issue.Message=Wenn Sie dieses Problem melden, fügen Sie BITTE die Ausnahmeinformationen links ein. Andernfalls gelten die Standard-Schließungsrichtlinien, die eine Schließung Ihrer Ausgabe nach (mindestens) 4 Stunden vorsehen. +Continue.Running.Message=Sie können das Programm möglicherweise weiter ausführen, indem Sie auf „Weiter“ klicken. Wird dieser Fehler jedoch ein zweites Mal angezeigt, können Sie das Programm durch Klicken auf Beenden zwangsweise schließen. Beachten Sie, dass an Projekten vorgenommene Änderungen sowie Änderungen in der Liste „Letzte“ nicht gespeichert werden. {crlf;}{crlf;}Was möchten Sie tun? +ReportIssue.Label=Melden Sie dieses Problem +Continue.Button=Weiter +Exit.Button=Ende +Copied.Clipboard.Label=Diese Informationen wurden in die Zwischenablage kopiert. +Ll.Copy.Label=Sie müssen diese Informationen manuell kopieren. +Problem.Prevention.Message=Um zu verhindern, dass dieses Problem erneut auftritt, möchten wir mehr darüber erfahren, indem wir ein Problem im GitHub-Repository melden. Sie benötigen ein GitHub-Konto, um Feedback zu melden. + +[ExportDrivers] +Title.Label=Treiber exportieren +Image.Task.Header.Label={0} +ExportTarget.Label=Exportziel: +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen +DriversPath.Description=Bitte geben Sie den Pfad an, in den die Treiber exportiert werden: + +[ExportDrivers.Validation] +Target.Required.Message=Bitte geben Sie ein Ziel an, in das die Treiber exportiert werden sollen, und stellen Sie sicher, dass das angegebene Ziel vorhanden ist. + +[FfuApply] +NamingPattern.Required.Label=Bitte geben Sie das Benennungsmuster der SFU-Dateien an + +[FfuApply.ScanSFUPattern] +Source.File.Required.Message=Bitte geben Sie eine Quell-FFU-Datei an. Dadurch können Sie die SFU-Dateien für spätere Imageanwendungen verwenden +ApplyImage.Message=Ein Image anwenden +Naming.Returns.Item=Dieses Benennungsmuster gibt {0} SFU-Dateien zurück +Naming.Returns.Label=Dieses Benennungsmuster gibt {0} SFU-Dateien zurück + +[FfuApply.Validation] +ImageFile.Message=Die angegebene Imagedatei ist ungültig. Bitte geben Sie ein gültiges Image an und versuchen Sie es erneut. + +[FfuCapture] +No.Compression.None.Message=Für FFU-Dateien wird keine Komprimierung angewendet. Wählen Sie diese Option, wenn Sie die resultierende Datei aufteilen möchten. +Default.Compression.Item=Für FFU-Dateien wird die Standardkomprimierung angewendet. + +[FfuSplit] +SplitFfuimages.Label=FFU-Image aufteilen +Image.Task.Header.Label={0} +Source.Image.Label=Zu teilendes Quell-Image: +Name.Path.Destination.Label=Name und Pfad des Ziel-Split-Images: +Maximum.Size.Images.Label=Maximale Größe der geteilten Image (in MB): +LargeFile.Note.Message=Beachten Sie, dass eine geteilte Imagedatei größer als der angegebene Wert sein kann, um eine große Datei im Image unterzubringen +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen +Integrity.CheckBox=Image-Integrität prüfen +Source.File.Title=Geben Sie die aufzuteilende Quell-FFU-Datei an: +Target.Location.Title=Geben Sie den Zielort der geteilten Image an: + +[FfuSplit.Validation] +Name.Required.Message=Bitte geben Sie einen Namen und Pfad für die Ziel-SFU-Datei an und versuchen Sie es erneut. Stellen Sie außerdem sicher, dass der Zielpfad vorhanden ist. +Source.File.Required.Message=Bitte geben Sie eine Quell-FFU-Datei an und versuchen Sie es erneut. Stellen Sie außerdem sicher, dass es existiert. + +[Get.AppX] +AppX.Package.Label=AppX-Paketinformationen abrufen +Image.Task.Header.Label={0} +AppX.Package.Label.Label=AppX-Paketinformationen +Installed.AppX.Label=Wählen Sie links ein installiertes AppX-Paket aus, um seine Informationen hier anzuzeigen +PackageName.Label=Paketname: +Display.Name.Label=Anwendungsanzeigename: +Architecture.Label=Architektur: +ResourceID.Label=Ressourcen-ID: +Version.Label=Version: +Registered.User.Label=Ist für einen beliebigen Benutzer registriert? +Install.Dir.Label=Installationsverzeichnis: +Package.Manifest.Label=Speicherort des Paketmanifests: +StoreLogo.Asset.Dir.Label=Verzeichnis des Store-Logo-Assets: +Main.StoreLogo.Asset.Label=Hauptspeicher-Logo-Asset: +Asset.Guessed.DISM.Message=Dieses Asset wurde von DISMTools anhand seiner Größe erraten, was zu einem falschen Ergebnis führen kann. Wenn das passiert, melden Sie bitte ein Problem im GitHub-Repository +Asset.One.IM.Link=Dieses Asset ist nicht das, was ich suche +Save.Button=Speichern +Type.Search.Label=Geben Sie hier ein, um nach einer Anwendung zu suchen + +[Get.AppX.PackageList] +Yes.Button=Ja +No.Button=Nein + +[CapabilityInfo] +Get.Label=Fähigkeitsinformationen abrufen +Image.Task.Header.Label={0} +Ready.Label=Bereit +Identity.Label=Fähigkeitsidentität: +CapabilityName.Label=Fähigkeitsname: +CapabilityState.Label=Fähigkeitsstatus: +DisplayName.Label=Anzeigename: +CapabilityInfo.Label=Fähigkeitsinformationen +Description.Label=Fähigkeitsbeschreibung: +Sizes.Label=Größen: +Identity.Column=Fähigkeitsidentität +State.Column=Status +Save.Button=Speichern +Type.Search.Label=Geben Sie hier ein, um nach einer Funktion zu suchen +Wait.Background.Message=Hintergrundprozesse müssen abgeschlossen sein, bevor Funktionsinformationen angezeigt werden. Wir warten, bis sie fertig sind +Waiting.Background.Label=Warten auf Abschluss der Hintergrundprozesse +Prepare.Cap.Item=Vorbereitung zum Abrufen von Fähigkeitsinformationen +GettingInfo.Item=Informationen von {quot;}{0}{quot;} abrufen +ReadableSize.Suffix=(~{0}) +Download.Size.Bytes.Label=Downloadgröße: {0} Bytes{1}{crlf;}Installationsgröße: {2} Bytes{3} +Get.Reason.Message=Könnte keine Fähigkeitsinformationen erhalten. Grund: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Bereit +Build.Query.Assistant.Label=Abfrage mit dem Assistenten erstellen + +[GetCapInfo] +SelectCapability.Label=Wählen Sie links eine installierte Funktion aus, um ihre Informationen hier anzuzeigen + +[GetDriverInfo] +Driver.Label=Treiberinformationen abrufen +Get.Label=Worüber möchten Sie Informationen erhalten? +Get.Drivers.Message=Klicken Sie hier, um Informationen zu Treibern zu erhalten, die Sie installiert haben oder die mit dem von Ihnen bedienten Windows-Image geliefert wurden +AddDrivers.Help.Message=Klicken Sie hier, um Informationen zu Treibern zu erhalten, die Sie dem von Ihnen bedienten Windows-Image hinzufügen möchten, bevor Sie mit dem Treiberzugabevorgang fortfahren +Ready.Label=Bereit +Add.DriverPackage.Label=Fügen Sie ein Treiberpaket hinzu oder wählen Sie es aus, um seine Informationen hier anzuzeigen +HardwareTargets.Label=Hardwareziele +Hardware.Description.Label=Hardwarebeschreibung: +HardwareID.Label=Hardware-ID: +AdditionalIds.Label=Zusätzliche IDs: +CompatibleIds.Label=Kompatible IDs: +ExcludeIds.Label=IDs ausschließen: +Hardware.Manufacturer.Label=Hardwarehersteller: +Architecture.Label=Architektur: +JumpTarget.Label=Zum Ziel springen: +PublishedName.Label=Veröffentlichter Name: +Original.File.Name.Label=Originaldateiname: +ProviderName.Label=Providername: +Critical.Boot.Process.Label=Ist für den Boot-Prozess entscheidend? +Version.Label=Version: +ClassName.Label=Klassenname: +Part.Windows.Label=Teil der Windows-Distribution? +DriverInfo.Label=Treiberinformationen +Installed.Driver.View.Label=Wählen Sie einen installierten Treiber aus, um seine Informationen hier anzuzeigen +Date.Label=Datum: +ClassDescription.Label=Klassenbeschreibung: +ClassGUID.Label=Klassen-GUID: +Driver.Signature.Label=Treibersignaturstatus: +Catalog.File.Path.Label=Catalogdateipfad: +Bg.Procs.Notice.Message=Sie haben die Hintergrundprozesse so konfiguriert, dass nicht alle in diesem Image vorhandenen Treiber angezeigt werden, das Treiber enthält, die Teil der Windows-Distribution sind. Daher wird der Treiber, an dem Sie interessiert sind, möglicherweise nicht angezeigt. +AddDriver.Button=Treiber hinzufügen +RemoveSelected.Button=Ausgewählte entfernen +RemoveAll.Button=Alle entfernen +Change.Button=Ändern +Save.Button=Speichern +View.Driver.File.Button=Informationen zur Treiberdatei anzeigen +GoBack.Link=<- Geh zurück +InstalledDriver.Link=Ich möchte Informationen zu installierten Treibern im Image erhalten +Iwant.Link=Ich möchte Informationen zu Treiberdateien erhalten +PublishedName.Column=Veröffentlichter Name +Original.File.Name.Column=Originaldateiname +Locate.Driver.Files.Title=Treiberdateien suchen +Type.Search.Driver.Button=Geben Sie hier ein, um nach einem Treiber zu suchen +HardwareTarget.Label=Hardwareziel {0} von {1} +Value.Label= +Yes.Button=Ja +No.Button=Nein +Value.Button=Ja +Text1.Label=von +Build.Query.Assistant.Label=Abfrage mit dem Assistenten erstellen + +[DriverInfo.Display] +NoManufacturer.Label=Keine vom Hardwarehersteller deklariert + +[GetDriverInfo.DriverInfo] +Wait.Background.Message=Hintergrundprozesse müssen abgeschlossen sein, bevor Paketinformationen angezeigt werden. Wir warten, bis sie fertig sind +Waiting.Background.Label=Warten auf Abschluss der Hintergrundprozesse +Driver.File.Message=Informationen aus der Treiberdatei abrufen {quot;}{0}{quot;}{crlf;}Dies kann einige Zeit dauern und das Programm kann vorübergehend einfrieren +Ready.Item=Bereit + +[DriverInfo.Load] +Preparing.Driver.Item=Vorbereiten von Treiberinformationsprozessen + +[GetDriverInfo.Hardware] +HardwareTarget.Label=Hardwareziel 1 von {0} + +[GetDriverInfo.Tooltip] +Previous.Hardware.Message=Vorheriges Hardwareziel +Next.Hardware.Target.Message=Nächstes Hardwareziel +Jump.Specific.Message=Springe zu einem bestimmten Hardwareziel + +[DriverInfo] +Unknown.Label=Unbekannt + +[GetFeatureInfo] +Get.Feature.Label=Feature-Informationen abrufen +Image.Task.Header.Label={0} +Ready.Label=Bereit +FeatureName.Label=Feature-Name: +DisplayName.Label=Anzeigename: +Description.Label=Funktionsbeschreibung: +RestartRequired.Label=Ist ein Neustart erforderlich? +FeatureInfo.Label=Feature-Informationen +Installed.Left.Label=Wählen Sie links eine installierte Funktion aus, um ihre Informationen hier anzuzeigen +FeatureState.Label=Feature-Status: +CustomProps.Label=Benutzerdefinierte Eigenschaften: +FeatureName.Column=Feature-Name +FeatureState.Column=Feature-Status +Save.Button=Speichern +Type.Search.Label=Geben Sie hier ein, um nach einer Funktion zu suchen +Wait.Background.Message=Hintergrundprozesse müssen abgeschlossen sein, bevor Funktionsinformationen angezeigt werden. Wir warten, bis sie fertig sind +Waiting.Background.Label=Warten auf Abschluss der Hintergrundprozesse +Preparing.Item=Vorbereiten, um Funktionsinformationen abzurufen +GettingInfo.Item=Informationen von {quot;}{0}{quot;} abrufen +Expand.Entry.Label=Bitte wählen Sie einen Eintrag aus oder erweitern Sie ihn. +None.Label=Keine +Reason.Message=Könnte keine Funktionsinformationen erhalten. Grund: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Bereit +Build.Query.Assistant.Label=Abfrage mit dem Assistenten erstellen + +[FeatureInfo.PathSelection] +SelectedValue.Message=Es wurde kein Wert definiert. Wenn das ausgewählte Element Unterelemente hat, erweitern Sie es. + +[ImageInfo] +Get.Image.Label=Imageinformationen abrufen +Image.Task.Header.Label={0} +ImageFile.Get.Label=Imagedatei zum Abrufen von Informationen aus: +List.Indexes.ImageFile.Label=Liste der Indizes der Imagedatei: +ImageVersion.Label=Imageversion: +ImageName.Label=Imagename: +ImageDescription.Label=Imagebeschreibung: +ImageSize.Label=Imagegröße: +Supports.WIM.Boot.Label=Unterstützt WIMBoot? +Architecture.Label=Architektur: +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack-Build: +ServicePackLevel.Label=Service Pack-Ebene: +InstallationType.Label=Installationstyp: +Edition.Label=Ausgabe: +ProductType.Label=Produkttyp: +ProductSuite.Label=Produktsuite: +System.Root.Dir.Label=Systemstammverzeichnis: +FileCount.Label=Dateianzahl: +Dates.Label=Termine: +Installed.Languages.Label=Installierte Sprachen: +ImageInfo.Label=Imageinformationen +Index.List.View.Label=Wählen Sie einen Index in der Listenansicht links aus, um seine Informationen hier anzuzeigen +CurrentlyMounted.RadioButton=Aktuell gemountetes Image +AnotherImage.RadioButton=Ein anderes Image +Browse.Button=Durchsuche +Save.Button=Speichern +Pick.Button=Wählen +Index.Column=Index +ImageName.Column=Imagename +Image.Get.Title=Geben Sie das Image an, aus dem Sie die Informationen erhalten möchten +Bytes.Label={0} Bytes (~{1}) + +[ImageInfo.FeatureUpdate] +FeatureUpdate.Label=(Funktionsaktualisierung: +Text1.Label=) + +[ImageInfo.DisplayImageInfo] +UndefinedImage.Label=Undefiniert durch das Image +FilesDirectories.Label={0} Dateien in {1} Verzeichnissen +Date.Created.Modified.Label=Erstellungsdatum: {0}{crlf;}Änderungsdatum: {1} + +[ImageInfo.GetImageInfo] +Gather.ImageFile.Message=Es konnten keine Informationen zu dieser Imagedatei gesammelt werden. Grund:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImageInfo.LanguageList] +Display.Name.Open.Label=( +Default.Label=, Standard +Display.Name.Close.Label=) + +[AppxPackages.Info.Messages] +Get.Label=Es konnten keine Informationen zu dieser Anwendung abgerufen werden. + +[DriverFilter.Messages] +Class.Name.Message=Dieser Klassenname ist ungültig. + +[InfoSave.Results.Messages] +HtmlFailed.Message=Die Konvertierung in HTML ist aufgrund des folgenden Fehlers fehlgeschlagen: {0}{crlf;}{crlf;}Möchten Sie diese Datei in einem Texteditor öffnen? +ConversionError.Label=Konvertierungsfehler + +[GetPkgInfo] +Package.Label=Paketinformationen abrufen +Image.Task.Header.Label={0} +Get.Label=Worüber möchten Sie Informationen erhalten? +Get.Packages.Message=Klicken Sie hier, um Informationen zu Paketen zu erhalten, die Sie installiert haben oder die mit dem von Ihnen bedienten Windows-Image geliefert wurden +AddPackages.Help.Message=Klicken Sie hier, um Informationen zu Paketen zu erhalten, die Sie dem von Ihnen bedienten Windows-Image hinzufügen möchten, bevor Sie mit dem Paketzugabeprozess fortfahren +Ready.Label=Bereit +Add.Package.File.Label=Fügen Sie eine Paketdatei hinzu oder wählen Sie sie aus, um ihre Informationen hier anzuzeigen +PackageInfo.Label=Paketinformationen +PackageName.Label=Paketname: +Package.Applicable.Label=Ist das Paket anwendbar? +Copyright.Label=Copyright: +ProductVersion.Label=Produktversion: +ReleaseType.Label=Release-Typ: +Company.Label=Unternehmen: +CreationTime.Label=Erstellungszeit: +InstallTime.Label=Installationszeit: +Last.Update.Time.Label=Letzte Aktualisierungszeit: +Install.Package.Name.Label=Paketnamen installieren: +Installed.Package.View.Label=Wählen Sie ein installiertes Paket aus, um seine Informationen hier anzuzeigen +DisplayName.Label=Anzeigename: +Description.Label=Beschreibung: +ProductName.Label=Produktname: +InstallClient.Label=Client installieren: +RestartRequired.Label=Ist ein Neustart erforderlich? +SupportInfo.Label=Supportinformationen: +State.Label=Status: +Boot.Up.Required.Label=Ist für die vollständige Installation ein Boot-Up erforderlich? +CustomProps.Label=Benutzerdefinierte Eigenschaften: +Features.Label=Funktionen: +Capability.Identity.Label=Fähigkeitsidentität: +GoBack.Link=<- Geh zurück +AddPackage.Button=Paket hinzufügen +RemoveSelected.Button=Ausgewählte entfernen +RemoveAll.Button=Alle entfernen +Save.Button=Speichern +Iwant.Link=Ich möchte Informationen zu installierten Paketen im Image erhalten +PackageFile.Link=Ich möchte Informationen zu Paketdateien erhalten +Locate.Package.Files.Title=Paketdateien lokalisieren +Type.Search.Package.Label=Geben Sie hier ein, um nach einem Paket zu suchen + +[PackageInfo.Display] +None.Label=Keine + +[PackageInfo.File] +Wait.Background.Message=Hintergrundprozesse müssen abgeschlossen sein, bevor Paketinformationen angezeigt werden. Wir warten, bis sie fertig sind +Waiting.Background.Label=Warten auf Abschluss der Hintergrundprozesse +Preparing.Item=Vorbereiten von Paketinformationsprozessen +Loading.Package.Message=Informationen aus der Paketdatei abrufen {quot;}{0}{quot;}{crlf;}Dies kann einige Zeit dauern und das Programm kann vorübergehend einfrieren +Ready.Item=Bereit + +[GetPkgInfo.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[GetPkgInfo.PackageList] +Wait.Background.Message=Hintergrundprozesse müssen abgeschlossen sein, bevor Paketinformationen angezeigt werden. Wir warten, bis sie fertig sind +Waiting.Background.Label=Warten auf Abschluss der Hintergrundprozesse +Preparing.Package.Item=Vorbereiten, um Paketinformationen abzurufen +GettingInfo.Item=Informationen von {quot;}{0}{quot;} abrufen +Expand.Entry.Label=Bitte wählen Sie einen Eintrag aus oder erweitern Sie ihn. +None.Label=Keine +Ready.Item=Bereit + +[GetPkgInfo.PropertyPath] +SelectedValue.Message=Es wurde kein Wert definiert. Wenn das ausgewählte Element Unterelemente hat, erweitern Sie es. + +[WinPESettings] +Get.Windows.Pesettings.Label=Windows PE-Einstellungen abrufen +Windows.Label=Dies sind die Windows PE-Einstellungen für dieses Image: +TargetPath.Label=Zielpfad: +ScratchSpace.Label=Scratchpfad: +Change.Button=Ändern +Ok.Button=OK +Save.Button=Speichern + +[WinPESettings.GetPESettings] +GetValue.Label=Könnte keinen Wert erhalten +GetValue.Message=Könnte keinen Wert erhalten + +[Help.QuickHelp] +QuickHelp.Message=Schnelle Hilfe + +[PEHelper.ServerPort] +Already.Message=Der angegebene Port {0} wird bereits verwendet. +InvalidPort.Message=Der angegebene Port {0} wird nicht verwendet. + +[ISOCreator] +Status.Message=Status +Creating.ISO.Message=Erstellen einer ISO-Datei. Dies kann einige Zeit dauern. Bitte warten +IsofileCreated.Message=Die ISO-Datei wurde erstellt +CreateIsofile.Label=Erstellen Sie eine ISO-Datei +ISO.File.Message=Mit dem ISO-Dateierstellungsassistenten können Sie schnell eine Disc-Image-Datei erstellen, mit der Sie die an Ihrem Windows-Image vorgenommenen Änderungen testen können. Es wird eine benutzerdefinierte Vorinstallationsumgebung (PE) erstellt. Diese Umgebung führt automatisch eine Festplattenkonfiguration durch und wendet das hier angegebene Image an. +Re.Ready.Create.Label=Wenn Sie bereit sind, klicken Sie auf die Schaltfläche „Erstellen“. +ImageFile.Add.Label=Imagedatei zum Hinzufügen zur ISO-Datei: +Architecture.Label=Architektur: +Target.Isolocation.Label=Ziel-ISO-Standort: +Other.Things.Message=Sie können andere Dinge tun, während die ISO erstellt wird. Kommen Sie jederzeit hierher zurück, um einen aktualisierten Status zu erhalten. +Browse.Button=Durchsuche +Pick.Button=Wählen +Mounted.Image.Button=Gemountetes Image +Customize.Environment.Button=Umgebung anpassen +Create.Button=Erstellen +Cancel.Button=Abbrechen +Options.Group=Optionen +Progress.Group=Fortschritt +Download.Windows.ADK.Link=Laden Sie das Windows ADK herunter +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Image.Architecture.Column=Imagearchitektur +Unattended.CheckBox=Unbeaufsichtigt: +Copy.Ventoy.Drives.CheckBox=Auf Ventoy-Laufwerke kopieren +Newly.Signed.Boot.CheckBox=Verwenden Sie neu signierte Boot-Binärdateien +Include.Essential.CheckBox=Wichtige Treiber einbeziehen +Https.Learn.Message=https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install +Create.ISO.Message=Diese Option erstellt ISO-Dateien, die EFI-Boot-Binärdateien enthalten, die mit dem {quot;}Windows UEFI CA 2023{quot;}-Zertifikat signiert sind.{crlf;}{crlf;} +Computers.UEFI.Message=Einige Computer, die UEFI verwenden, booten möglicherweise nicht korrekt in diese ISO-Datei mit den aktualisierten Boot-Binärdateien. Aus diesem Grund wird empfohlen, dass Sie Ihre Testgeräte auf Kompatibilität mit diesen Binärdateien überprüfen. +Run.Power.Shell.Message=Führen Sie den in der Hilfedokumentation beschriebenen PowerShell-Command für den ISO-Ersteller aus, um festzustellen, ob auf einem Gerät dieses Zertifikat installiert ist. +Doubts.Recommend.Message=Wenn Sie Zweifel haben, empfehlen wir Ihnen, diese Option deaktiviert zu lassen. +Have.Detected.Message=Wir haben festgestellt, dass dieses System derzeit keine Windows UEFI CA 2023-Bootbinärdateien unterstützt. Wenn Sie mit der ISO-Erstellung fortfahren, können Sie möglicherweise nicht zur resultierenden ISO-Datei auf diesem System booten. +Windows.Title=Windows UEFI CA 2023 Informationen +Check.Option.Storage.Message=Wenn Sie diese Option aktivieren, werden Speichercontroller und Netzwerkadaptertreiber von diesem Computer {crlf;} in Ihre ISO-Datei aufgenommen. Sie werden nach der Bereitstellung auch auf die Imagedatei angewendet. +AvailableADK.Message=Wenn in Ihrem installierten Assessment and Deployment Kit verfügbar, verwendet Ihre ISO-Datei Boot-Binärdateien, die mit Windows UEFI CA 2023 signiert sind.{crlf;}Diese Option ist für Zielsysteme konzipiert, die Secure Boot unterstützen und über die neuesten Boot-Zertifikate in der Allowlist-Datenbank (DB) verfügen. + +[ISOCreator.Background] +Isofile.Created.Done.Message=Die ISO-Datei wurde erfolgreich erstellt +Failed.Create.Message=Fehler beim Erstellen der ISO-Datei + +[ISOCreator.GetImageInfo] +Gather.ImageFile.Message=Es konnten keine Informationen zu dieser Imagedatei gesammelt werden. Grund:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ISOCreator.Links] +Https.Learn.Message=https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install + +[ISOCreator.Validation] +Either.Source.Message=Entweder existiert die Quell-Imagedatei nicht oder Sie haben keine Imagedatei bereitgestellt. Bitte geben Sie eine gültige Imagedatei an und versuchen Sie es erneut. +TargetISO.Required.Message=Die Ziel-ISO wurde nicht angegeben. Bitte geben Sie einen Speicherort für die ISO-Datei an und versuchen Sie es erneut. +Saved.Message=Stellen Sie sicher, dass Sie alle Ihre Änderungen gespeichert haben, bevor Sie fortfahren.{crlf;}{crlf;}Wenn Sie dies nicht getan haben, klicken Sie auf Nein, speichern Sie Ihr Image und starten Sie den Vorgang erneut. Sie müssen dieses Fenster nicht schließen.{crlf;}{crlf;}Möchten Sie mit dieser Datei eine ISO erstellen? +Target.ISO.Message=Das Ziel-ISO existiert bereits. Willst du es ersetzen? + +[ImageAppxPackage.RegStatus] +Yes.Button=Ja +No.Button=Nein + +[ImageDriver.DriverInbox] +Yes.Button=Ja +No.Button=Nein + +[ImgAppend] +AppendImage.Label=An ein Image anhängen +Image.Task.Header.Label={0} +Path.Config.File.Label=Pfad der Konfigurationsdatei: +Source.Image.Dir.Label=Quell-Imageverzeichnis: +Dest.Image.Description.Label=Ziel-Imagebeschreibung: +Destination.ImageFile.Label=Ziel-Imagedatei: +Destination.Image.Name.Label=Ziel-Imagename: +Ok.Button=OK +Cancel.Button=Abbrechen +Browse.Button=Durchsuche +Grab.Last.Image.Button=Vom letzten Image greifen +Create.Button=Erstellen +Exclude.Files.Dirs.CheckBox=Bestimmte Dateien und Verzeichnisse für das Ziel-Image ausschließen +WIM.Boot.Config.CheckBox=Mit WIMBoot-Konfiguration anhängen +Image.Bootable.CheckBox=Image bootfähig machen (nur Windows PE) +Verify.Image.CheckBox=Image-Integrität überprüfen +Check.File.Errors.CheckBox=Auf Dateifehler prüfen +Reparse.Point.Tag.CheckBox=Verwenden Sie den Fix für das Reparse-Point-Tag +ExtendedAttributes.CheckBox=Erweiterte Attribute erfassen +Sources.Destinations.Group=Quellen und Ziele +Options.Group=Optionen + +[ImgAppend.Tooltip] +Grab.Name.Last.Message=Greifen Sie den Namen des letzten Index des Ziel-Images + +[ImgAppend.Validation] +SourceImage.Required.Message=Bitte geben Sie ein Quell-Imageverzeichnis an und versuchen Sie es erneut. +ImageFile.Required.Message=Bitte geben Sie eine Ziel-Imagedatei an und versuchen Sie es erneut. +NameDestination.Message=Bitte geben Sie einen Namen für die Ziel-Imagedatei an und versuchen Sie es erneut. +Either.Config.List.Message=Entweder wurde keine Konfigurationslistendatei angegeben oder die Konfigurationslistendatei konnte in Ihrem Dateisystem nicht erkannt werden. Möchten Sie ohne Konfigurationslistendatei fortfahren? + +[ImgApply] +ApplyImage.Label=Ein Image anwenden +Image.Task.Header.Label={0} +SourceImageFile.Label=Quell-Imagedatei: +ImageIndex.Label=Imageindex: +NamingPattern.Label=Namensmuster: +Integrity.CheckBox=Image-Integrität prüfen +Verify.CheckBox=Überprüfen +Reparse.Point.Tag.CheckBox=Verwenden Sie den Fix für das Reparse-Point-Tag +Reference.Swmfiles.CheckBox=Referenz-SWM-Dateien +Append.Image.WIM.CheckBox=Image mit WIMBoot-Konfiguration anhängen +Image.Compact.Mode.CheckBox=Image im kompakten Modus anwenden +Extended.Attributes.CheckBox=Erweiterte Attribute anwenden +Browse.Button=Durchsuche +Name.Image.Button=Benutzername des Images +ScanPattern.Button=Scan-Muster +Mounted.Image.Label=Gemountetes Image +Ok.Button=OK +Cancel.Button=Abbrechen +Destination.Dir.Label=Zielverzeichnis: +Source.Group=Quelle +Options.Group=Optionen +Destination.Group=Ziel +SwmfilePattern.Group=SWM-Dateimuster +NamingPattern.Required.Label=Bitte geben Sie das Benennungsmuster der SWM-Dateien an +Validate.Image.CheckBox=Image für Trusted Desktop validieren + +[ImgApply.GetIndexes] +Gather.ImageFile.Message=Es konnten keine Informationen zu dieser Imagedatei gesammelt werden. Grund:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgApply.ScanSwmPattern] +Source.WIM.Required.Message=Bitte geben Sie eine Quell-WIM-Datei an. Dadurch können Sie die SWM-Dateien für spätere Imageanwendungen verwenden +ApplyImage.Message=Ein Image anwenden +Naming.Returns.Item=Dieses Benennungsmuster gibt {0} SWM-Dateien zurück +Naming.Returns.Label=Dieses Benennungsmuster gibt {0} SWM-Dateien zurück + +[ImgApply.Validation] +ImageFile.Message=Die angegebene Imagedatei ist ungültig. Bitte geben Sie ein gültiges Image an und versuchen Sie es erneut. + +[ImgCapture] +CaptureImage.Label=Ein Image aufnehmen +Destination.ImageFile.Label=Ziel-Imagedatei: +Source.Image.Dir.Label=Quell-Imageverzeichnis: +Dest.Image.Description.Label=Ziel-Imagebeschreibung: +Destination.Image.Name.Label=Ziel-Imagename: +Path.Config.File.Label=Pfad der Konfigurationsdatei: +CompressionType.Label=Ziel-Imagekomprimierungstyp: +Sources.Destinations.Group=Quellen und Ziele +Options.Group=Optionen +Browse.Button=Durchsuche +Create.Button=Erstellen +Ok.Button=OK +Cancel.Button=Abbrechen +Exclude.Files.Dirs.CheckBox=Bestimmte Dateien und Verzeichnisse für das Ziel-Image ausschließen +Image.Bootable.CheckBox=Image bootfähig machen (nur Windows PE) +Verify.Image.CheckBox=Image-Integrität überprüfen +Check.File.Errors.CheckBox=Auf Dateifehler prüfen +Reparse.Point.Tag.CheckBox=Verwenden Sie den Fix für das Reparse-Point-Tag +Append.WIM.Boot.CheckBox=Mit WIMBoot-Konfiguration anhängen +Extended.Attributes.CheckBox=Erweiterte Attribute erfassen +Mount.Dest.Image.CheckBox=Ziel-Image zur späteren Verwendung mounten +No.Compression.None.Item=Auf das Ziel-Image wird keine Komprimierung angewendet. +Fast.Compression.Item=Es wird eine schnelle Komprimierung angewendet. Dies ist die Standardoption. +MaxCompression.Message=Es wird die maximale Komprimierung angewendet. Dies wird am meisten Zeit in Anspruch nehmen, führt aber zu einem kleineren Image. + +[ImgCleanup] +ImageCleanup.Label=Imagebereinigung +Task.Choose.Label=Aufgabe wählen: +Text4.Label=Wählen Sie eine Aufgabe aus, um ihre Beschreibung anzuzeigen +NoOptions.Message=Für diese Aufgabe gibt es keine konfigurierbaren Options. Sie sollten diese Aufgabe jedoch nur ausführen, um zu versuchen, ein Windows-Image wiederherzustellen, das nicht gebootet werden kann. +Superseded.Base.Reset.Label=Der Basis-Reset der ersetzten Komponenten wurde zuletzt ausgeführt auf: +Only.Check.Option.Label=Sie sollten diese Option nur überprüfen, wenn der Basis-Reset mehr als 30 Minuten dauert +NoOptions.Label=Für diese Aufgabe gibt es keine konfigurierbaren Options. +Source.Label=Quelle: +Task.Listed.Label=Wählen Sie eine oben aufgeführte Aufgabe aus, um ihre Optionen zu konfigurieren. +TaskOptions.Group=Aufgabenoptionen +Ok.Button=OK +Cancel.Button=Abbrechen +Revert.Pending.Actions.Item=Ausstehende Aktionen zurücksetzen +Clean.Up.ServicePack.Item=Service Pack-Sicherungsdateien bereinigen +Clean.Up.Component.Item=Komponentenspeicher bereinigen +Analyze.Component.Store.Item=Komponentenspeicher analysieren +Check.Component.Store.Item=Komponentenspeicher prüfen +Scan.Comp.Store.Item=Komponentenspeicher auf Beschädigung prüfen +Repair.Component.Store.Item=Komponentenspeicher reparieren +Source.Title=Geben Sie die Quelle an, aus der wir die Integrität des Komponentenspeichers wiederherstellen +Browse.Button=Durchsuche +Detect.Group.Policy.Button=Von Gruppenrichtlinie erkennen +HideServicePack.CheckBox=Service Pack aus der Liste der installierten Updates ausblenden +Reset.Base.CheckBox=Basis der ersetzten Komponenten zurücksetzen +Defer.Long.Running.CheckBox=Lang andauernde Bereinigungsvorgänge verschieben +Different.Source.CheckBox=Verwenden Sie eine andere Quelle für die Komponentenreparatur +WindowsUpdate.CheckBox=Beschränken Sie den Zugriff auf Windows Update +Last.Reset.Base.Label=LastResetBase_UTC +Get.Last.Base.Message=Das Datum des Backsetzens der letzten Basis konnte nicht abgerufen werden. Es ist möglich, dass keine Basis-Resets vorgenommen wurden +Last.Reset.Base.Item=LastResetBase_UTC +Get.Last.Base.Item=Das Datum des Backsetzens der letzten Basis konnte nicht abgerufen werden. Es ist möglich, dass keine Basis-Resets vorgenommen wurden +Get.Last.Base.Label=Das Datum des Backsetzens der letzten Basis konnte nicht abgerufen werden +Task.See.Choose.Label=Wählen Sie eine Aufgabe aus, um ihre Beschreibung anzuzeigen +Experience.Boot.Message=Wenn bei Ihnen ein Boot-Fehler auftritt, kann diese Option versuchen, das System wiederherzustellen, indem alle ausstehenden Aktionen aus früheren Wartungsvorgängen rückgängig gemacht werden +Removes.Backup.Files.Item=Entfernt Sicherungsdateien, die während der Installation eines Service Packs erstellt wurden +Cleans.Up.Superseded.Item=Bereinigt die ersetzten Komponenten und reduziert die Größe des Komponentenspeichers +Creates.Report.Comp.Item=Erstellt einen Bericht des Komponentenspeichers, einschließlich seiner Größe +Checks.Whether.Image.Message=Überprüft, ob das Image durch einen fehlgeschlagenen Prozess als beschädigt gekennzeichnet wurde und ob die Beschädigung behoben werden kann +Scans.Image.Message=Scannt das Image auf Beschädigung des Komponentenspeichers, führt jedoch keine automatischen Reparaturoptionen durch +Scans.Image.Component.Item=Scannt das Image auf Beschädigung des Komponentenspeichers und führt automatisch Reparaturvorgänge durch + +[ImgCleanup.Validation] +Source.Has.None.Message=Für die Reparatur des Komponentenspeichers wurde keine gültige Quelle bereitgestellt. +Provide.Source.Try.Message=Bitte geben Sie eine Quelle an und versuchen Sie es erneut. +Please.Make.Message=Bitte stellen Sie sicher, dass die angegebene Quelle im Dateisystem vorhanden ist, und versuchen Sie es erneut. +ImageCleanup.Message=Imagebereinigung + +[ImageConversion.Success] +Image.Done.Converted.Label=Das Image wurde erfolgreich konvertiert +ConversionDone.Message=Das angegebene Image wurde erfolgreich in das Zielformat konvertiert. Der Einfachheit halber kann der Datei-Explorer geöffnet werden, damit Sie sehen können, wo sich das Ziel-Image befindet.{crlf;}{crlf;}Möchten Sie das Verzeichnis öffnen, in dem das Ziel-Image gespeichert ist? +Yes.Button=Ja +No.Button=Nein + +[ImgExport] +ExportImage.Label=Exportieren Sie ein Image +Destination.ImageFile.Label=Ziel-Imagedatei: +SourceImageFile.Label=Quell-Imagedatei: +NamingPattern.Label=Namensmuster: +CompressionType.Label=Ziel-Imagekomprimierungstyp: +Source.Image.Index.Label=Quell-Imageindex: +Reference.Swmfiles.CheckBox=Referenz-SWM-Dateien +CustomName.CheckBox=Geben Sie einen benutzerdefinierten Namen für das Ziel-Image an +Image.Bootable.CheckBox=Image bootfähig machen (nur Windows PE) +Append.Image.WIM.CheckBox=Image mit WIMBoot-Konfiguration anhängen +Ok.Button=OK +Cancel.Button=Abbrechen +Browse.Button=Durchsuche +Name.Image.Button=Benutzername des Images +ScanPattern.Button=Scan-Muster +Sources.Destinations.Group=Quellen und Ziele +Options.Group=Optionen +Source.ImageFile.Title=Geben Sie eine zu exportierende Quell-Imagedatei an +Index.Column=Index +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +No.Compression.None.Item=Auf das Ziel-Image wird keine Komprimierung angewendet. +Fast.Compression.Item=Es wird eine schnelle Komprimierung angewendet. Dies ist die Standardoption. +MaxCompression.Message=Es wird die maximale Komprimierung angewendet. Dies wird am meisten Zeit in Anspruch nehmen, führt aber zu einem kleineren Image. +Compression.Level.Message=Es wird die Komprimierungsstufe für Image zum Backsetzen per Knopfdruck angewendet. Dies erfordert den Export des Images als ESD-Datei. +NamingPattern.Required.Label=Bitte geben Sie das Benennungsmuster der SWM-Dateien an +CheckIntegrity.CheckBox=Überprüfen Sie die Integrität, bevor Sie das Image exportieren + +[ImgExport.ScanSwmPattern] +Source.WIM.Required.Message=Bitte geben Sie eine Quell-WIM-Datei an. Dadurch können Sie die SWM-Dateien für spätere Imageanwendungen verwenden +Naming.Returns.Item=Dieses Benennungsmuster gibt {0} SWM-Dateien zurück +Naming.Returns.Label=Dieses Benennungsmuster gibt {0} SWM-Dateien zurück + +[ImgExport.Validation] +SourceImageFile.Message=Bitte geben Sie eine Quell-Imagedatei an, die exportiert werden soll, und versuchen Sie es erneut +ImageFile.Required.Message=Bitte geben Sie eine Ziel-Imagedatei an und versuchen Sie es erneut + +[ImageIndexDelete] +Remove.Volume.Image.Label=Entfernen Sie ein Volume-Image +Image.Task.Header.Label={0} +SourceImage.Label=Quell-Image: +Mark.VolumeImages.Message=Bitte markieren Sie die zu löschenden VolumenImage links. Das Image wird dann die rechts angezeigten Indizes haben +Get.Indexes.Image.Label=Indizes aus dem Image abrufen. Bitte warten +Browse.Button=Durchsuche +Mounted.Image.Button=Gemountetes Image +Ok.Button=OK +Cancel.Button=Abbrechen +Integrity.CheckBox=Image-Integrität prüfen +Index.Column=Index +ImageName.Column=Imagename +Columns0.Column=Index +Columns1.Column=Imagename +VolumeImages.Group=VolumenImage + +[ImageIndexDelete.IndexInfo] +Image.Only.Contains.Message=Dieses Image enthält nur 1 Index. Sie können keine Volume-Image aus dieser Datei entfernen +Remove.Volume.Image.Title=Entfernen Sie ein Volume-Image + +[ImageIndexDelete.Validation] +SelectImages.Message=Bitte wählen Sie VolumenImage aus, die aus diesem Image entfernt werden sollen, und versuchen Sie es erneut. +Remove.Volume.Image.Title=Entfernen Sie ein Volume-Image +ImageMounted.Message=Das Programm hat erkannt, dass dieses Image gemountet ist. Um Volume-Image aus einer Datei zu entfernen, müssen diese ausgehängt werden. Sie können es später erneut mounten, wenn Sie möchten.{crlf;}{crlf;}Beachten Sie, dass dadurch das Image ausgehängt wird, ohne Änderungen zu speichern. Stellen Sie sicher, dass alle Ihre Änderungen gespeichert wurden, bevor Sie fortfahren.{crlf;}{crlf;}Möchten Sie dieses Image aushängen? + +[ImageIndexSwitch] +Image.Indexes.Label=Image-Index wechseln +Image.Task.Header.Label={0} +Image.Label=Image: +Unmounting.Source.Label=Was tun beim Unmounten des Quellindex? +Destination.Mount.Label=Zielindex zum Mounten: +Already.Mounted.Label=Dieser Index wurde bereits gemountet +Ok.Button=OK +Cancel.Button=Abbrechen +Indexes.Group=Indizes +Save.Changes.RadioButton=Änderungen im Index speichern +DiscardChanges.RadioButton=Änderungen verwerfen aufheben + +[ImageIndexSwitch.Initialize] +Getting.Image.Indexes.Label=Image-Index abrufen + +[ImageInfoSave] +Saving.Image.Button=Imageinformationen speichern +Wait.Message=Bitte warten Sie, während DISMTools die Imageinformationen in einer Datei speichert. Dies kann je nach den ausgeführten Aufgaben einige Zeit in Anspruch nehmen. +Wait.Label=Bitte warten +Wait.Background.Message=Hintergrundprozesse müssen abgeschlossen sein, bevor Informationen abgerufen werden können. Wir warten, bis sie fertig sind +Waiting.Bg.Procs.Item=Warten auf Abschluss der Hintergrundprozesse +Create.Target.Reason.Message=Das Speicherziel konnte nicht erstellt werden. Grund: +OperationFailed.Message=Der Vorgang ist fehlgeschlagen +PackageInfo.Label=Paketinformationen +FeatureInfo.Label=Feature-Informationen +AppX.Package.Label=AppX-Paketinformationen +CapabilityInfo.Label=Fähigkeitsinformationen +DriverInfo.Label=Treiberinformationen +Desea.Obtener.Message=¿Desea obtener información completa acerca de los paquetes presents? Es ist so spät, dass ich es nicht mehr tun kann. +Statement3.Message=¿Desea erhalten Sie Informationen, die Sie vollständig über die vorhandenen Merkmale erhalten? Es ist so spät, dass ich es nicht mehr tun kann. +Statement4.Message=Ist es nicht möglich, vollständige Informationen über die von AppX präsentierten Pakete zu erhalten? Es ist so spät, dass ich es nicht mehr tun kann. +Statement5.Message=¿Desea erhalten Sie Informationen, die Sie vollständig über die vorhandenen Funktionen erhalten? Es ist so spät, dass ich es nicht mehr tun kann. +Statement6.Message=¿Desea erhalten Sie Informationen, die Sie vollständig erhalten, um die Kontrolle über die Anwesenden zu erhalten? Es ist so spät, dass ich es nicht mehr tun kann. +BgProcessDetect.Message=Sie haben Hintergrundprozesse so konfiguriert, dass sie nicht alle Treiber erkennen, einschließlich Treiber, die Teil der Windows-Distribution sind. Daher wird Ihnen der Treiber, an dem Sie interessiert sind, möglicherweise nicht angezeigt.{crlf;}{crlf;} +Setting.Applied.Task.Message=Diese Einstellung wird auch auf diese Aufgabe angewendet, aber Sie können jetzt die Informationen aller Treiber abrufen. Beachten Sie, dass dies je nach Anzahl der Erstanbieter-Treiber lange dauern kann. +Get.Message=Möchten Sie die Informationen aller Treiber abrufen, einschließlich der Treiber, die Teil der Windows-Distribution sind? +SavingContents.Message=Inhalte speichern + +[ImageInfoSave.AppxInfo] +Preparing.Package.Message=Vorbereiten von AppX-Paketinformationsprozessen +Basic.Ready.Message=Das Programm hat grundlegende Informationen zu den installierten AppX-Paketen dieses Images erhalten. Sie können auch vollständige Informationen zu solchen AppX-Paketen erhalten und diese im Bericht speichern.{crlf;}{crlf;} +May.Take.Long.Message=Beachten Sie, dass dies je nach Anzahl der installierten AppX-Pakete länger dauert. +Prompt.Label=Möchten Sie diese Informationen abrufen und im Bericht speichern? +Package.Message=AppX-Paketinformationen +Getting.Message=Informationen zu AppX-Paketen abrufen (AppX-Paket {0} von {1}) +Packages.Obtained.Message=AppX-Pakete wurden erhalten +Saving.Installed.Message=Speichern installierter AppX-Pakete + +[ImgInfo.Capabilities] +Preparing.Message=Vorbereiten von Fähigkeitsinformationsprozessen +Basic.Ready.Message=Das Programm hat grundlegende Informationen zu den installierten Funktionen dieses Images erhalten. Sie können auch vollständige Informationen zu solchen Funktionen erhalten und diese im Bericht speichern.{crlf;}{crlf;} +May.Take.Long.Message=Beachten Sie, dass dies je nach Anzahl der installierten Funktionen länger dauert. +Save.Prompt.Label=Möchten Sie diese Informationen abrufen und im Bericht speichern? +CapabilityInfo.Message=Fähigkeitsinformationen +Loaded.Message=Funktionen wurden erhalten +Loading.Capability.Message=Informationen zu Fähigkeiten abrufen (Fähigkeit {0} von {1}) +Saving.Message=Installierte Funktionen speichern + +[ImgInfo.DriverFiles] +Preparing.Message=Vorbereitung von Fahrerinformationsprozessen +Loading.Driver.Message=Informationen aus Treiberdateien abrufen (Treiberdatei {0} von {1}) + +[ImageInfoSave.Drivers] +Preparing.Message=Vorbereitung von Fahrerinformationsprozessen +Basic.Ready.Message=Das Programm hat grundlegende Informationen zu den installierten Treibern dieses Images erhalten. Sie können auch vollständige Informationen zu solchen Treibern erhalten und diese im Bericht speichern.{crlf;}{crlf;} +May.Take.Long.Message=Beachten Sie, dass dies je nach Anzahl der installierten Treiber länger dauert. +Prompt.Label=Möchten Sie diese Informationen abrufen und im Bericht speichern? +DriverInfo.Message=Treiberinformationen +Setting.Applied.Task.Message=Diese Einstellung wird auch auf diese Aufgabe angewendet, aber Sie können jetzt die Informationen aller Treiber abrufen. Beachten Sie, dass dies je nach Anzahl der Erstanbieter-Treiber lange dauern kann. +Get.Message=Möchten Sie die Informationen aller Treiber abrufen, einschließlich der Treiber, die Teil der Windows-Distribution sind? +DriversObtained.Message=Treiber wurden abgerufen +Get.Driver.Message=Informationen zu Fahrern abrufen (Treiber {0} von {1}) +SaveDrivers.Message=InstalledDrivers speichern + +[ImageInfoSave.GetDriverInfo] +BgProcessDetect.Message=Sie haben Hintergrundprozesse so konfiguriert, dass sie nicht alle Treiber erkennen, einschließlich Treiber, die Teil der Windows-Distribution sind. Daher wird Ihnen der Treiber, an dem Sie interessiert sind, möglicherweise nicht angezeigt.{crlf;}{crlf;} + +[ImgInfo.Features] +Preparing.Feature.Message=Vorbereiten von Feature-Informationsprozessen +Loading.Feature.Message=Informationen zu Funktionen abrufen (Funktion {0} von {1}) + +[ImageInfoSave.Features] +Basic.Ready.Message=Das Programm hat grundlegende Informationen zu den installierten Funktionen dieses Images erhalten. Sie können auch vollständige Informationen zu solchen Funktionen erhalten und diese im Bericht speichern.{crlf;}{crlf;} +May.Take.Long.Message=Beachten Sie, dass dies je nach Anzahl der installierten Funktionen länger dauert. +Prompt.Label=Möchten Sie diese Informationen abrufen und im Bericht speichern? +FeatureInfo.Message=Feature-Informationen +FeaturesObtained.Message=Funktionen abgerufen +SaveFeatures.Message=Installierte Funktionen speichern + +[ImageInfoSave.Image] +Getting.Image.Message=Imageinformationen abrufen (Image {0} von {1}) + +[ImgInfo.PkgFiles] +Preparing.Package.Message=Vorbereiten von Paketinformationsprozessen + +[ImgInfo.PackageFiles] +Loading.Package.Message=Informationen aus Paketdateien abrufen (Paketdatei {0} von {1}) + +[ImgInfo.Packages] +Preparing.Package.Message=Vorbereiten von Paketinformationsprozessen +Loading.Package.Message=Informationen zu Paketen abrufen (Paket {0} von {1}) + +[ImageInfoSave.Packages] +Basic.Ready.Message=Das Programm hat grundlegende Informationen zu den installierten Paketen dieses Images erhalten. Sie können auch vollständige Informationen zu solchen Paketen erhalten und diese im Bericht speichern.{crlf;}{crlf;} +May.Take.Long.Message=Beachten Sie, dass dies je nach Anzahl der installierten Pakete länger dauert. +Prompt.Label=Möchten Sie diese Informationen abrufen und im Bericht speichern? +PackageInfo.Message=Paketinformationen +PackagesObtained.Message=Pakete wurden erhalten +SavePackages.Message=Installierte Pakete speichern + +[ImageInfoSave.WinPE] +Prepare.Message=Vorbereitung zum Abrufen der Windows PE-Konfiguration +Get.Target.Message=Windows PE-Zielpfad abrufen +Get.Scratch.Message=Windows PE-Scratch-Speicherplatz abrufen + +[ImageInfoSave.Report] +Get.Message=Das Programm konnte keine Informationen zu dieser Aufgabe erhalten. Die Gründe hierfür finden Sie weiter unten: +Exception.Label=Ausnahme: +ExceptionMessage=Ausnahmemeldung: +ErrorCode.Label=Fehlercode: +ImageInfo.Label=Imageinformationen +Active.Install.Label=Aktive Installationsinformationen: +Name.Label=Name: +Boot.Point.Mount.Label=Bootpunkt (Mountpunkt): +Version.Label=Version: +Offline.Install.Label=Informationen zur Offline-Installation: +OfflineVersion.Label=- Version: +ImageFile.Get.Label=Imagedatei zum Abrufen von Informationen aus: +InfoSummary.Label=Informationszusammenfassung für +ImageS.Label=Image(e): +Version.Column=Version +ImageName.Label=Imagename +ImageDescription=Imagebeschreibung +ImageSize.Label=Imagegröße +Architecture.Label=Architektur +HAL.Label=HAL +ServicePackBuild.Label=Service Pack-Build +ServicePackLevel.Label=Service Pack-Level +InstallationType.Label=Installationstyp +Edition.Label=Edition +ProductType.Label=Produkttyp +ProductSuite.Label=Produktsuite +System.Root.Dir.Label=Systemstammverzeichnis +Languages.Label=Sprachen +DateCreation.Label=Erstellungsdatum +DateModification.Label=Datum der Änderung +Default.Label=(Standard) +Bytes.Label=Bytes (~ +UndefinedImage.Label=Undefiniert durch das Image +PackageInfo.Label=Paketinformationen +Active.Install.Label.Label=aktive Installation +PackageS.Label=Paket(e): +PackageName.Label=Paketname +Applicable.Label=Anwendbar? +Copyright.Label=Copyright +Company.Label=Unternehmen +CreationTime.Label=Erstellungszeit +Description=Beschreibung +InstallClient.Label=Client installieren +Install.Package.Name.Label=Paketnamen installieren +InstallTime.Label=Installationszeit +Last.Update.Time.Label=Letzte Aktualisierungszeit +DisplayName.Label=Anzeigename +ProductName.Label=Produktname +ProductVersion.Label=Produktversion +ReleaseType.Label=Release-Typ +RestartRequired.Label=Neustart erforderlich? +SupportInfo.Label=Supportinformationen +PackageState.Label=Paketstatus +Boot.Up.Required.Label=Boot-Up erforderlich? +Capability.Identity.Label=Fähigkeitsidentität +CustomProps.Label=Benutzerdefinierte Eigenschaften +Features.Label=Funktionen +None.Label=Keine +Preposterous.Time.Date.Label=- **Absurde Uhrzeit und Datum** +PackageInfo.Ready.Label=Es wurden vollständige Paketinformationen gesammelt. +Package.Release.Type.Label=Paketfreigabetyp +Package.Install.Time.Label=Paketinstallationszeit +PackageInfo.Missing.Label=Vollständige Paketinformationen wurden nicht gesammelt +Package.File.Label=Paketdateiinformationen +Amount.Package.Files.Label=Anzahl der Paketdateien, über die Informationen abgerufen werden sollen: +FeatureInfo.Label=Feature-Informationen +FeatureCount.Suffix=Funktion(en): +FeatureName.Label=Feature-Name +FeatureState.Label=Feature-Status +Web.Label=Im Web +Look.Item.Online.Label=Sehen Sie sich diesen Artikel online an +FeatureInfo.Ready.Label=Vollständige Feature-Informationen wurden gesammelt +FeatureInfo.Missing.Label=Vollständige Feature-Informationen wurden nicht gesammelt +AppX.Package.Label=AppX-Paketinformationen +Task.Supported.Win.Message=Diese Aufgabe wird auf dem angegebenen Windows-Image nicht unterstützt. Überprüfen Sie, ob es Windows 8 oder eine spätere Windows-Version enthält und dass es sich nicht um ein Windows PE-Image handelt. Aufgabe überspringen +AppXPackages.Label=AppX-Paket(e): +App.Display.Name.Label=Anwendungsanzeigename +ResourceID.Label=Ressourcen-ID +RegisteredUser.Label=Auf einen Benutzer registriert? +Install.Location.Label=Installationsort +Package.Manifest.Label=Speicherort des Paketmanifests +StoreLogo.Asset.Dir.Label=Logo-Asset-Verzeichnis speichern +Main.StoreLogo.Asset.Label=Hauptspeicher-Logo-Asset +Yes.Button=Ja +No.Button=Nein +Unknown.Label=Unbekannt +Notemain.StoreLogo.Message=HINWEIS: Die Standorte der Hauptlogos des Geschäfts sind eine Vermutung und entsprechen möglicherweise nicht den gesuchten Assets. Wenn das passiert, melden Sie ein Problem im GitHub-Repo mit dem +StoreLogo.Asset.Label=Problem mit der Vorschau des Store-Logo-Assets +Template.Provide.Message=Vorlage. Geben Sie dann den Paketnamen, den erwarteten Vermögenswert und den erhaltenen Vermögenswert an. +CapabilityInfo.Label=Fähigkeitsinformationen +Task.Supported.Message=Diese Aufgabe wird auf dem angegebenen Windows-Image nicht unterstützt. Überprüfen Sie, ob es Windows 10 oder eine spätere Windows-Version enthält und dass es sich nicht um ein Windows PE-Image handelt. Aufgabe überspringen +CapabilityIes.Label=Fähigkeit/en: +CapabilityName.Label=Fähigkeitsname +CapabilityState.Label=Fähigkeitszustand +DownloadSize.Label=Downloadgröße +InstallationSize.Label=Installationsgröße +BytesSuffix.Label=Bytes +CapabilityInfo.Ready.Label=Vollständige Fähigkeitsinformationen wurden gesammelt +CapabilityInfo.Missing.Label=Vollständige Fähigkeitsinformationen wurden nicht gesammelt +DriverInfo.Label=Treiberinformationen +Box.Driver.Label=Informationen zum Posteingangsfahrer +WasSaved.Label=wurde gespeichert +Saved.Label=wurde nicht gespeichert +DriverS.Label=Treiber(e): +PublishedName.Label=Veröffentlichter Name +Original.File.Name.Label=Originaldateiname +ProviderName.Label=Providername +ClassName.Label=Klassenname +ClassDescription=Klassenbeschreibung +ClassGUID.Label=Klasse GUID +Catalog.File.Path.Label=Catalogdateipfad +Part.Windows.Label=Teil der Windows-Distribution? +Critical.Boot.Process.Label=Kritisch für den Boot-Prozess? +Date.Label=Datum +SignatureStatus.Label=Signaturstatus +DriverInfo.Ready.Label=Vollständige Treiberinformationen wurden gesammelt +DriverInfo.Missing.Label=Vollständige Treiberinformationen wurden nicht gesammelt +DriverPackage.Label=Treiberpaketinformationen +DriverPackageS.Label=Treiberpaket(e): +DriverPackage.Driver.Label=Treiberpaket +Value.Label=von +HardwareTargets.Label=Hardwareziel(e): +Hardware.Description=Hardwarebeschreibung +HardwareID.Label=Hardware-ID +CompatibleIds.Label=Kompatible IDs +ExcludeIds.Label=IDs ausschließen +Hardware.Manufacturer.Label=Hardwarehersteller +None.Declared.Label=Keine vom Hersteller deklariert +File.Contains.Hardware.Label=Diese Datei enthält keine Hardwareziele. Es könnte ungültig sein. +Windows.Label=Windows PE-Konfiguration +UnsupportedWin.Message=Diese Aufgabe wird auf dem angegebenen Windows-Image nicht unterstützt. Überprüfen Sie, ob es sich um ein Windows PE-Image handelt. Aufgabe überspringen +Target.Path.Get.Label=Zielpfad: konnte keinen Wert erhalten +ScratchSpace.Get.Value.Label=Scratch-Speicherplatzgröße: Wert konnte nicht abgerufen werden +TargetPath.Label=Zielpfad: +GetValue.Label=konnte keinen Wert erhalten +ScratchSpace.Label=Scratchpfad: +ServiceInfo.Label=Serviceinformationen +Getting.Service.Label=Dienstinformationen abrufen +Service.Default.Label=service(s) im Standardsteuerelementsatz: +ServiceName.Label=Dienstname +DisplayName.Column=Anzeigename +StartType.Label=Starttyp +ServiceType.Label=Servicetyp +Overview.Svc.Label=Speichern von Informationen Übersicht über den Dienst {lbrace;}0{rbrace;} von {lbrace;}1{rbrace;} +Detailed.Svc.Label=Speichern detaillierter Informationen zum Dienst {lbrace;}0{rbrace;} von {lbrace;}1{rbrace;} +Undefined.Label=Undefiniert +Per.User.Service.Label=Kein Dienst pro Benutzer +InfoService.Label=Informationen zum Dienst: {lbrace;}0{rbrace;} +Service.Display.Name.Label=Service-Anzeigename: {lbrace;}0{rbrace;} +Service.Description=Servicebeschreibung: {lbrace;}0{rbrace;} +ImagePath.Label=Imagepfad: {lbrace;}0{rbrace;} +ObjectName.Label=Objektname: {lbrace;}0{rbrace;} +StartType.Option0.Label=Starttyp: {lbrace;}0{rbrace;} +DelayedStart.Label=Verzögerter Start? {lbrace;}0{rbrace;} +ServiceType.Option0.Label=Servicetyp: {lbrace;}0{rbrace;} +Per.User.Flags.Label=Service-Flags pro Benutzer: {lbrace;}0{rbrace;} +Group.Label=Gruppe: {lbrace;}0{rbrace;} +WindowsNt.Label=Windows NT®-Berechtigungen: +PrivilegeName.Label=Berechtigung +Privilege.Display.Name.Label=Privilege-Anzeigename +Privilege.Description=Privilege Beschreibung +ErrorControl.Label=Fehlerkontrolle: +ServiceError.Label=Beim Dienstfehler: {lbrace;}0{rbrace;} +Failure.Action.First.Label=Fehleraktion beim ersten Fehler: {lbrace;}0{rbrace;} +Failure.Action.Second.Label=Fehleraktion beim zweiten Fehler: {lbrace;}0{rbrace;} +Failure.Errors.Label=Fehleraktion bei nachfolgenden Fehlern: {lbrace;}0{rbrace;} +ResetErrorCount.Label=Fehleranzahl nach den folgenden Minuten zurücksetzen: {lbrace;}0{rbrace;} Minute(n) +Restart.Service.Message=Dienst nach den folgenden Minuten neu starten: {lbrace;}0{rbrace;} Minute(n) ({lbrace;}1{rbrace;} Sekunden) nach dem ersten Fehler, {lbrace;}2{rbrace;} Minute(n) ({lbrace;}3{rbrace;} Sekunden) nach dem zweiten Fehler, {lbrace;}4{rbrace;} Minute(n) ({lbrace;}5{rbrace;} Sekunden) nach nachfolgenden Fehlern +Dependencies.Label=Abhängigkeiten: +Name.Column=Name +Type.Label=Typ +Dependents.Label=Abhängige: +ServicesFound.Label=Es wurden keine Dienste gefunden. +DISM.Tools.Image.Title=DISMTools Imageinformationsbericht +Automatically.Message=Dies ist ein automatisch generierter Bericht, der von DISMTools erstellt wurde. Es kann jederzeit eingesehen werden, um Imageinformationen zu überprüfen. +Report.Contains.Message=Dieser Bericht enthält Informationen zu den Aufgaben, zu denen Sie Informationen erhalten möchten, die unter dieser Nachricht wiedergegeben sind. +Process.Primarily.Message=Dieser Prozess verwendet hauptsächlich die DISM-API, um Informationen abzurufen. Wenn Sie Informationen zu den API-Vorgängen erhalten möchten, enthält diese Datei diese nicht. Sie können diese Informationen jedoch aus der Protokolldatei abrufen, die am Standardspeicherort von: gespeichert ist +TaskDetails.Label=Aufgabendetails +ProcessesStarted.Label=Prozesse gestartet bei: +Report.File.Target.Label=Ziel der Berichtsdatei: +Tasks.Get.Complete.Label=Informationsaufgaben: Erhalten Sie vollständige Imageinformationen +Tasks.Get.Image.Label=Informationsaufgaben: Informationen zur Imagedatei abrufen +Tasks.Get.Installed.Label=Information tasks: Informationen zum installierten Paket abrufen +Tasks.Get.Package.Label=Informationsaufgaben: Paketdateiinformationen abrufen +Tasks.Get.Feature.Label=Informationsaufgaben: Funktionsinformationen abrufen +TaskInstalled.Label=Information tasks: Informationen zum installierten AppX-Paket abrufen +Tasks.Get.Capability.Label=Informationsaufgaben: Fähigkeitsinformationen abrufen +Tasks.Get.Driver.Label=Information tasks: Informationen zum installierten Treiber abrufen +Tasks.Get.Label.Label=Informationsaufgaben: Informationen zum Treiberpaket abrufen +Tasks.Get.Windows.Label=Informationsaufgaben: Windows PE-Konfiguration abrufen +Tasks.Get.Services.Label=Informationsaufgaben: Dienste aus dem Standardsteuerelementsatz abrufen +WeEnded.Label=Wir sind beendet bei +NiceDay.Label=. Hab einen schönen Tag! +Complete.AppX.Label=Komplette AppX-Paketinformationen wurden gesammelt +AppxInfo.Ready2.Label=Vollständige AppX-Paketinformationen wurden nicht gesammelt + +[ImgMount] +MountImage.Label=Ein Image einbinden +Options.Required.Label=Bitte geben Sie die Optionen zum Mounten eines Images an: +ImageFile.Label=Imagedatei*: +ESD.Label=esd +Convert.File.WIM.Label=Sie müssen diese Datei in eine WIM-Datei konvertieren, um sie zu mounten +Convert.Button=Konvertieren +SWM.Label=swm +Merge.Swmfiles.Item=Sie müssen die SWM-Dateien zu einer WIM-Datei zusammenführen, um sie zu mounten +Merge.Item=Merge +MountDirectory.Label=Verzeichnis mounten*: +Index.Label=Index*: +Fields.End.Required.Label=Die Felder, die auf * enden, sind erforderlich +Source.Group=Quelle +Destination.Group=Ziel +Options.Group=Optionen +Browse.Button=Durchsuche +Cancel.Button=Abbrechen +Ok.Button=OK +Index.Column=Index +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Mount.Read.CheckBox=Mounten mit Nur-Lese-Berechtigungen +Optimize.Times.CheckBox=Mount-Zeiten optimieren +Integrity.CheckBox=Image-Integrität prüfen +Image.Already.Message=Dieses Image ist bereits gemountet und kann nicht erneut gemountet werden. Wenn Sie es in das gewünschte Verzeichnis mounten möchten, entfernen Sie das Image aus seinem ursprünglichen Mount-Verzeichnis (speichern Sie die Änderungen, wenn Sie möchten) und öffnen Sie anschließend diesen Dialog + +[ImgMount.Actions] +Convert.Button=Konvertieren +Convert.Image.WIM.Message=Sie müssen dieses Image in eine WIM-Datei konvertieren, um es zu mounten +Merge.Swmfiles.Message=Sie müssen die SWM-Dateien zu einer WIM-Datei zusammenführen, um sie zu mounten +Swm.Merge.Required.Message=Sie müssen die SWM-Dateien zu einer WIM-Datei zusammenführen, um sie zu mounten + +[ImgMount.GetIndexes] +Gather.ImageFile.Message=Es konnten keine Informationen zu dieser Imagedatei gesammelt werden. Grund:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgMount.Validation] +Create.Dir.Reason.Message=Mount-Verzeichnis konnte nicht erstellt werden. Grund: {0}; {1} +MountImage.Title=Ein Image einhängen + +[AppxPackages.Add.Messages] +Right.Only.Message=Im Moment können Sie nur weniger als 65535 AppX-Pakete angeben. Dies ist eine Programmbeschränkung, die in einem zukünftigen Update aufgehoben wird. +Prov.Label=Bereitgestellte AppX-Pakete hinzufügen + +[AppxPackages.Remove.Messages] +Right.Only.Message=Im Moment können Sie nur weniger als 65535 AppX-Pakete angeben. Dies ist eine Programmbeschränkung, die in einem zukünftigen Update aufgehoben wird. +Prov.Label=Entfernen Sie bereitgestellte AppX-Pakete + +[ImageConversion.WimToEsd] +Get.Index.Image.Label=Könnte keine Indexinformationen für diese Imagedatei erhalten + +[ImageOps.Drivers.Export] +Class.Name.Message=Dieser Klassenname ist ungültig. + +[ImageOps.Editions.Set] +DirectoryMissing.Message=Entweder wurde kein Verzeichnis angegeben oder es existiert nicht. +ProductKey.Message=Der Produktschlüssel wurde falsch eingegeben + +[FFU.Apply.Messages] +Destination.Disk.Message=Stellen Sie sicher, dass die Zielfestplatte beim Mounten genauso groß oder größer als die angegebene FFU-Datei ist. Wenn die Zielfestplatte größer ist als die erweiterten Partitionen der FFU, erweitern Sie die Partitionen bitte in vollem Scope. + +[FFU.Capture.Messages] +Source.Drive.Exist.Label=Das angegebene Quelllaufwerk existiert nicht. +Source.Drive.Message=Das Quelllaufwerk, das Sie erfassen, wurde möglicherweise nicht zuvor von Sysprep vorbereitet. Es wird empfohlen, es auf dieser Installation auszuführen, bevor Sie mit der Erfassungsaufgabe fortfahren.{0}{0}Willst du weitermachen? +Provide.Dest.Path.Label=Bitte geben Sie einen Zielpfad für die FFU-Datei an. +Provide.Name.Dest.Label=Bitte geben Sie einen Namen für die Ziel-FFU-Datei an. + +[FFU.Optimize.Messages] +Path.Image.Required.Message=Bitte geben Sie den Pfad des Images an, das Sie optimieren möchten, und versuchen Sie es erneut. Stellen Sie außerdem sicher, dass dieser Pfad existiert. + +[ImageConversion.SwmToWim] +Get.Index.Image.Label=Könnte keine Indexinformationen für diese Imagedatei erhalten + +[ImgSplit] +SplitImages.Label=Image aufteilen +Image.Task.Header.Label={0} +Source.Image.Label=Zu teilendes Quell-Image: +Name.Path.Destination.Label=Name und Pfad des Ziel-Split-Images: +Maximum.Size.Images.Label=Maximale Größe der geteilten Image (in MB): +LargeFile.Note.Message=Beachten Sie, dass eine geteilte Imagedatei größer als der angegebene Wert sein kann, um eine große Datei im Image unterzubringen +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen +Integrity.CheckBox=Image-Integrität prüfen +Source.WIM.File.Title=Geben Sie die zu teilende Quell-WIM-Datei an: +Target.Location.Title=Geben Sie den Zielort der geteilten Image an: + +[ImgSplit.Validation] +Name.Required.Message=Bitte geben Sie einen Namen und Pfad für die Ziel-SWM-Datei an und versuchen Sie es erneut. Stellen Sie außerdem sicher, dass der Zielpfad vorhanden ist. +Source.WIM.Required.Message=Bitte geben Sie eine Quell-WIM-Datei an und versuchen Sie es erneut. Stellen Sie außerdem sicher, dass es existiert. + +[Img.Swm] +MergeSwmfiles.Label=SWM-Dateien zusammenführen +Image.Task.Header.Label={0} +SourceSwmfile.Label=Source-SWM-Datei: +Notewhen.Specifying.Message=HINWEIS: Wählen Sie beim Angeben der SWM-Datei die erste Datei aus. DISMTools kümmert sich um zusätzliche SWM-Dateien, die in diesem Verzeichnis gespeichert sind. +Destination.WIM.File.Label=Ziel-WIM-Datei: +Index.Label=Index: +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen +LearnHow.Link=Lernen Sie, wie es geht +Index.Column=Index +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Source.Swmfile.Title=Geben Sie die zusammenzuführende Quell-SWM-Datei an +Dest.WIM.File.Title=Geben Sie die Ziel-WIM-Datei an, mit der die Quell-SWM-Dateien zusammengeführt werden sollen + +[ImgUMount] +UnmountImage.Label=Ein Image aushängen +Options.Required.Label=Bitte geben Sie die Optionen zum Aushängen dieses Images an: +Dir.Label=Das Mount-Verzeichnis: +MountDirectory.Label=Mount-Verzeichnis: +UnmountOperation.Label=Unmount-Vorgang: +Integrity.CheckBox=Image-Integrität prüfen +Append.Changes.CheckBox=Änderungen an einen anderen Index anhängen +Pick.Button=Wählen +Ok.Button=OK +Cancel.Button=Abbrechen +Dir.Required.Description=Bitte geben Sie ein Mount-Verzeichnis an: +LoadedProject.RadioButton=wird im Projekt geladen +LocatedSomewhere.RadioButton=befindet sich woanders +Save.Changes.Unmount.Item=Änderungen speichern und aushängen +Discard.Changes.Unmount.Item=Änderungen verwerfen und aushängen +MountDirectory.Group=Verzeichnis mounten +Additional.Options.Group=Zusätzliche Optionen + +[ImgUMount.Validation] +Dir.Invalid.Message=Das angegebene Verzeichnis ist kein gültiges Mount-Verzeichnis. +Dir.Missing.Message=Das Mount-Verzeichnis existiert nicht. + +[Img.WIM] +ConvertImage.Label=Image konvertieren +Image.Task.Header.Label={0} +SourceImageFile.Label=Quell-Imagedatei: +Format.Converted.Image.Label=Konvertiertes Imageformat: +Destination.ImageFile.Label=Ziel-Imagedatei: +Index.Label=Index: +Format.Ichoose.Link=Welches Format wähle ich? +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen +Index.Column=Index +ImageName.Column=Imagename +ImageDescription.Column=Imagebeschreibung +ImageVersion.Column=Imageversion +Source.Group=Quelle +Options.Group=Optionen +Destination.Group=Ziel +Source.ImageFile.Title=Geben Sie die Quell-Imagedatei an, die Sie konvertieren möchten +Target.Image.Stored.Title=Wo wird das Ziel-Image gespeichert? + +[Img.Win] +Service.Windows.Message=Das Programm kann keine Windows Vista-Image verarbeiten +Unsupported.Message=Weder dieses Programm noch DISM unterstützen die Wartung von Windows Vista-Imagen. DISM ist für die Bereitstellung von Windows 7- oder neueren Images gedacht. Sie können weiterhin Windows Vista-Images mounten, aber alle Optionen werden deaktiviert.{crlf;}{crlf;}Wenn Sie weiterhin ein Windows Vista-Image warten möchten, lesen Sie das Thema {quot;}Kompatibilität mit älteren Windows-Versionen{quot;} in der Hilfedokumentation.{crlf;}{crlf;}Möchten Sie fortfahren? +Yes.Button=Ja +No.Button=Nein + +[ImportDrivers] +Title.Label=Treiber importieren +Process.Third.Message=Dieser Prozess importiert alle Treiber von Drittanbietern der Quelle, die Sie für dieses Image oder diese Installation angeben. Dadurch wird sichergestellt, dass das Ziel-Image die gleiche Hardwarekompatibilität wie das Quell-Image aufweist +ImportSource.Label=Quelle importieren: +Source.Doesn.Tany.Label=Für diese Quelle sind keine zusätzlichen Einstellungen verfügbar. +Source.Listed.Choose.Label=Wählen Sie eine oben aufgeführte Quelle, um deren Einstellungen zu konfigurieren. +Windows.Label=Windows-Image zum Importieren von Treibern aus: +Tuse.Target.Label=Sie können das Importziel nicht als Importquelle verwenden +Offline.Drivers.Label=Offline-Installation zum Importieren von Treibern aus: +ImageFile.Label=Imagedatei: +Pick.Button=Wählen +Refresh.Button=Aktualisieren +Ok.Button=OK +Cancel.Button=Abbrechen +DriveLetter.Column=Laufwerksbuchstabe +DriveLabel.Column=Laufwerksbezeichnung +DriveType.Column=Laufwerkstyp +TotalSize.Column=Gesamtgröße +Available.Free.Space.Column=Verfügbarer freier Platz +DriveFormat.Column=Laufwerksformat +ContainsWindows.Column=ContainsWindows? +Windows.Column=Windows-Version +Windows.Item=Windows-Image +Online.Install.Item=Online-Installation +Offline.Install.Item=Offline-Installation + +[IncompleteSetup] +SetupIncomplete.Message=Setup ist noch nicht abgeschlossen und Ihre benutzerdefinierten Einstellungen werden nicht gespeichert. Wenn Sie fortfahren, verwendet das Programm die Standardeinstellungen.{crlf;}{crlf;}Möchten Sie fortfahren? +Yes.Button=Ja +No.Button=Nein + +[InfoSaveResults] +Image.Report.Label=Ergebnisse des Imageinformationsberichts +ReportSaved.Message=Der Bericht wurde an dem von Ihnen angegebenen Ort gespeichert und sein Inhalt wird unten angezeigt. +SaveReport.Button=Bericht speichern + +[InfoSaveResults.Actions] +Ok.Button=OK + +[Settings.Dialog] +Detected.Label=Ungültige Einstellungen wurden erkannt +Reset.Default.Message=Die ungültigen Einstellungen wurden auf Standardwerte zurückgesetzt. Weitere Informationen finden Sie in den Feldern unten: +Ok.Button=OK +Dismexecutable.Exist.Item=Die angegebene ausführbare DISM-Datei existiert nicht: {crlf;}{quot;}{0}{quot;} +DISM.Executable.Label=Die Einstellung der ausführbaren DISM-Datei scheint in Ordnung zu sein +Log.Font.Exist.Item=Die angegebene Protokollschriftart existiert in diesem System nicht: {crlf;}{quot;}{0}{quot;} +Log.Font.Setting.Label=Die Log-Schrifteinstellung scheint in Ordnung zu sein +Log.File.Exist.Item=Die angegebene Protokolldatei existiert nicht: {crlf;}{quot;}{0}{quot;} +Log.File.Setting.Label=Die Protokolldateieinstellung scheint in Ordnung zu sein +Scratch.Dir.Exist.Item=Das angegebene Scratch-Verzeichnis existiert nicht: {crlf;}{quot;}{0}{quot;} +Scratch.Dir.Set.Label=Die Scratch-Verzeichniseinstellung scheint in Ordnung zu sein + +[InvalidSettings] +Found.Label=Das Programm hat ungültige Einstellungen erkannt + +[MUMAdditionDialog] +Add.Update.Manifest.Label=Update-Manifest hinzufügen +DialogHelp.Message=Mit diesem Dialog können Sie dem Ziel-Image eine Microsoft Update Manifest (MUM)-Datei hinzufügen. Sie können jeweils nur eines angeben.{crlf;}{crlf;} +Note.Advanced.Only.Message=Beachten Sie, dass dies nur für die erweiterte Verwendung bestimmt ist und das Ziel-Windows-Image gefährden kann. +Path.Manifest.File.Label=Pfad der hinzuzufügenden Manifestdatei: +Browse.Button=Durchsuche +Cancel.Button=Abbrechen +Ok.Button=OK + +[Main] +Props.Label=Eigenschaften +ProjProps.Label=Eigenschaften +Getting.Package.Names.Label=Paketnamen abrufen +Getting.Feature.Names.Label=Feature-Namen und deren Status abrufen +Wait.Label=Paketnamen abrufen +Get.Cap.Names.Label=Erhalten von Fähigkeitsnamen und deren Status +Loading.DriverPackages.Label=Installierte Treiberpakete abrufen + +[Main.ADKCopierBW.Background] +ToolsCopied.Label=Bereitstellungstools wurden erfolgreich in das Projekt kopiert +Deployment.Tools.Aren.Item=Bereitstellungstools sind auf diesem System nicht vorhanden +Deployment.Tools.Copied.Item=Bereitstellungstools konnten nicht kopiert werden + +[Main.ADKCopy] +Prepare.Deploy.Tools.Label=Vorbereitung zum Kopieren von Bereitstellungstools{0} +Architecture.Label=(Architektur {0} von 4) +Copying.Deployment.Label=Kopieren von Bereitstellungstools für die Architektur ({0}, {1}%{2}) +Progress.Architecture.Label=, Architektur {0} von 4 + +[Main.Actions] +UnsupportedImage.Message=Diese Aktion wird auf diesem Image nicht unterstützt + +[Main.BgProcesses] +ImageCompleted.Label=Imageprozesse sind abgeschlossen + +[Main.ChangeImgStatus] +No.Button=Nein +Yes.Button=Ja + +[Main.CheckForUpdates] +CheckingUpdates.Link=Überprüfen nach Updates +NewVersion.Available.Link=Eine neue Version steht zum Download und zur Installation zur Verfügung. Klicken Sie hier, um mehr zu erfahren +Learn.Link=Klicken Sie hier, um mehr zu erfahren + +[Main.CommandLineHelp] +Pass.Arguments.Message=Sie können Commandszeilenargumente wie diese übergeben:{crlf;}{crlf;} DISMTools.exe {crlf;}{crlf;}Die Commandszeilenargumente, die Ihnen zur Verfügung stehen, sind die folgenden:{crlf;}{crlf;} /setup{crlf;} Zeigt den anfänglichen Einrichtungsassistenten an und konfiguriert das Programm neu{crlf;} /load={crlf;} Lädt eine Projektdatei. Sie müssen einen absoluten Pfad für eine Projektdatei angeben, etwa so: {crlf;} DISMTools.exe /load={quot;}C:\foo\bar.dtproj{quot;}{crlf;} /online{crlf;} Wechselt in den Online-Installationsverwaltungsmodus {crlf;} /offline:{crlf;} Wechselt in den Offline-Installationsverwaltungsmodus. Sie müssen ein Laufwerk wie dieses bereitstellen: {crlf;} DISMTools.exe /offline:E:\{crlf;} /migrate{crlf;} Erzwingt die Einstellung der Migration. Obwohl Sie diesen Parameter verwenden können, sollte er vom Update-System {crlf;} /nomig{crlf;} verwendet werden. Die Einstellung der Migration wird übersprungen. Dieser Parameter beschleunigt das Testen von {crlf;} /noupd{crlf;} Deaktiviert Aktualisierungsprüfungen. Verwenden Sie diesen Parameter nicht, es sei denn, Sie testen eine Änderung{crlf;} /exp{crlf;} Aktiviert Programmexperimente, wenn es welche gibt{crlf;}{crlf;}DISMTools startet weiter, nachdem Sie diese Hilfemeldung geschlossen haben. +DISM.Tools.Title=DISMTools Kommandoszeilenargumente + +[Main.CopyAsset] +Copied.Clipboard.Label=Das Asset wurde in die Zwischenablage kopiert +CopySuccessful.Title=Kopieren erfolgreich + +[Main.ComputerInfo] +Build.Label=build +SystemMemory.Label=des Systemspeichers +UsedOut.Label=verwendet aus +Part.Domain.Label=Nicht Teil einer Domäne +PartDomain.Label=Teil einer Domäne +Backup.Domain.Label=Backup-Domänencontroller +Primary.Domain.Label=Primärer Domänencontroller +ConnectedNetwork.Label=Nicht mit einem Netzwerk verbunden +Manual.Label=Handbuch +Automatic.Assigned.Label=Automatisch (von DHCP zugewiesen) + +[Main.EndOfflineMgmt] +Bg.Procs.Still.Message=Hintergrundprozesse sammeln immer noch Informationen zu diesem Image. Möchten Sie sie stornieren? +Cancelling.Bg.Procs.Button=Hintergrundprozesse abbrechen. Bitte warten + +[Main.EndOffline] +Ready.Item=Bereit +Yes.Button=Ja + +[Main.EndOnlineMgmt] +Bg.Procs.Still.Message=Hintergrundprozesse sammeln immer noch Informationen zu diesem Image. Möchten Sie sie stornieren? +Cancelling.Bg.Procs.Button=Hintergrundprozesse abbrechen. Bitte warten + +[Main.EndOnline] +Ready.Item=Bereit +Yes.Button=Ja + +[Main.GetArguments] +Project.Message=Projektdatei nicht gefunden:{crlf;}{crlf;}{0}{crlf;}{crlf;}Öffnen Sie die .dtproj-Datei am neuen Speicherort oder erstellen Sie das Projekt in einem beschreibbaren Ordner neu. + +[Main.ExternalTools] +Error.Title=Tool-Startfehler +NotFound.Message={0} wurde nicht gefunden:{crlf;}{crlf;}{1}{crlf;}{crlf;}DISMTools reparieren oder neu installieren. +StartFailed.Message={0} konnte nicht gestartet werden.{crlf;}{crlf;}Grund: {1}{crlf;}{crlf;}Falls nötig, DISMTools reparieren oder neu installieren. + +[Main.ReportManager] +Error.Title=Berichtsmanager +ProjectRequired.Message=Zuerst ein DISMTools-Projekt laden oder erstellen. Berichte liegen im Projektordner „reports“. +OpenFailed.Message=Berichtsordner konnte nicht geöffnet werden:{crlf;}{crlf;}{0}{crlf;}{crlf;}Grund: {1} + +[Main.SaveProjectAs] +Save.Button=Speichern +Unavailable.Message=„Projekt speichern unter“ ist nicht verfügbar, weil kein reguläres DISMTools-Projekt geladen ist. Öffnen oder erstellen Sie zuerst ein Projekt. +InvalidDestination.Message=Wählen Sie einen anderen Projektnamen oder Speicherort. Ein Projekt kann nicht in sich selbst gespeichert werden. +DestinationExists.Message=Der Zielordner des Projekts ist nicht leer:{crlf;}{crlf;}{0}{crlf;}{crlf;}Wählen Sie einen anderen Namen oder Speicherort. +OpenCopyFailed.Message=Die Projektkopie wurde erstellt, aber DISMTools konnte sie nicht öffnen:{crlf;}{crlf;}{0} +Error.Message=Das Projekt konnte nicht als Kopie gespeichert werden.{crlf;}{crlf;}Ziel:{crlf;}{0}{crlf;}{crlf;}Grund:{crlf;}{1} +Error.Title=Projekt speichern unter + +[Main.Get.Basic] +Online.Install.Label=(Online-Installation) +Offline.Install.Item=(Offline-Installation) +Offline.Install.Label=(Offline-Installation) + +[Main.GetCapabilities] +Cap.Names.Their.Label=Erhalten von Fähigkeitsnamen und deren Status + +[Main.GetCapabilities.Actions] +UnsupportedImage.Message=Diese Aktion wird auf diesem Image nicht unterstützt + +[Main.GetDrivers] +Loading.DriverPackages.Label=Installierte Treiberpakete abrufen + +[Main.GetFeatures] +Getting.Feature.Names.Label=Feature-Namen und deren Status abrufen + +[Main.Get.OS] +Days.Go.Back.Message=Sie haben {0} Tage Zeit, um zur alten Windows-Version zurückzukehren.{crlf;}{crlf;}Um dieses Deinstallationsfenster zu vergrößern oder zu verkleinern, gehen Sie zu Kommando > Betriebssystem deinstallieren > Deinstallationsfenster festlegen{crlf;}Um das Betriebssystem-Rollback zu starten, gehen Sie zu Kommando > Betriebssystem deinstallieren > Deinstallation starten{crlf;}Um die Möglichkeit zu entfernen, zur alten Version zurückzukehren, gehen Sie zu Kommando > Betriebssystem deinstallieren > Rollback-Fähigkeit entfernen + +[Main.OSUninstallWindow] +OnlineOnly.Message=Diese Aktion wird nur bei Online-Installationen unterstützt + +[Main.GetPackages] +Getting.Package.Names.Label=Paketnamen abrufen + +[Main.GetProvAppx] +Getting.Package.Names.Label=Paketnamen abrufen + +[Main.ProvAppx] +UnsupportedImage.Message=Diese Aktion wird auf diesem Image nicht unterstützt + +[Main.GetTargetEditions] +CurrentEdition.Message=Die aktuelle Ausgabe ist {quot;}{0}{quot;}{crlf;} +ProductKey.Upgrade.Message=Wenn Sie einen Produktschlüssel haben, können Sie dieses Windows-Image möglicherweise auf eine höhere Edition aktualisieren. +Windows.Message=Windows PE-Image können nicht auf höhere Editionen aktualisiert werden. +Suitable.ProductKey.Message=Wenn Sie einen geeigneten Produktschlüssel haben, können Sie dieses Windows-Image auf eine der folgenden Editionen aktualisieren:{crlf;}{crlf;} +Image.Cannot.Message=Dieses Image kann nicht auf höhere Editionen aktualisiert werden, da es sich in der höchsten Edition befindet + +[Main.HideChildDescs] +Ready.Label=Bereit +Cancelling.Bg.Procs.Item=Hintergrundprozesse abbrechen. Bitte warten + +[Main.HideParentDesc] +Ready.Label=Bereit +Cancelling.Bg.Procs.Item=Hintergrundprozesse abbrechen. Bitte warten + +[Main.InitDynaLog] +Beware.Custom.Themes.Title=Vorsicht vor benutzerdefinierten Themen +DISM.Tools.Detected.Message=DISMTools hat erkannt, dass auf diesem System ein benutzerdefiniertes Design festgelegt wurde. Einige benutzerdefinierte Designs führen dazu, dass das Programm nicht richtig aussieht. Daher wird empfohlen, zum Standarddesign zu wechseln. + +[Main.StartOSUninstall] +ReadCarefully.Message={0}, bitte lesen Sie diese Nachricht sorgfältig durch, bevor Sie fortfahren.{crlf;}{crlf;}Wenn Sie nach dem Upgrade Programme installiert haben, können diese durch das Fortfahren mit dem Rollback-Prozess entfernt werden. Stellen Sie sicher, dass Sie ihre Einstellungen gesichert haben, falls Sie sie später neu installieren müssen. Sichern Sie außerdem Ihre Dateien, falls sie vom Rollback-Prozess betroffen sind.{crlf;}{crlf;}Als Nächstes werden Sie nicht ausgesperrt. Wenn Sie ein Passwort für Ihren aktuellen Benutzer festgelegt haben, stellen Sie sicher, dass Sie es kennen. Andernfalls können Sie sich möglicherweise nicht anmelden.{crlf;}{crlf;}Schließlich vielen Dank, dass Sie diese Windows-Version ausprobiert haben.{crlf;}{crlf;}Möchten Sie den Rollback-Prozess starten? + +[Main.OSUninstall] +OnlineOnly.Message=Diese Aktion wird nur bei Online-Installationen unterstützt + +[Main.Interface] +File.Label=&Datei +Project.Label=&Projekt +Commands.Label=Kommandos +Tools.Label=&Extras +Help.Label=&Hilfe +Settings.Detected.Label=Ungültige Einstellungen wurden erkannt +NewProject.Button=&Neues Project +Open.Existing.Project.Label=&Bestehendes Projekt öffnen +Manage.Online.Install.Label=&Online-Installation verwalten +Manage.Ffline.Button=O&FFline-Installation verwalten +RecentProjects.Label=Neueste Projekte +SaveProject.Button=&Projekt speichern +SaveProjectas.Button=Projekt speichern &unter... +Exit.Label=&Beenden +View.Project.Files.Label=Projektdateien im Datei-Explorer anzeigen +UnloadProject.Button=Projekt entladen +Switch.Image.Indexes.Button=Image-Index wechseln +ProjectProps.Label=Projekteigenschaften +ImageProps.Label=Imageeigenschaften +ImageManagement.Label=Imageverwaltung +OSPackages.Label=OS-Pakete +ProvPackages.Label=Bereitstellung von Paketen +AppxPackages.Label=AppX-Pakete +AppMspservicing.Label=App (MSP)-Wartung +DefaultApp.Assoc.Label=Standard-App-Zuordnungen +Languages.Regional.Label=Sprachen und regionale Einstellungen +Capabilities.Label=Fähigkeiten +Windows.Label=Windows-Editionen +Drivers.Label=Treiber +Unattended.Answer.Label=Unbeaufsichtigte Antwortdateien +WindowsPE.Label=Windows PE-Wartung +OSUninstall.Label=OS deinstallieren +ReservedStorage.Label=Reservierter Speicher +Append.Capture.Dir.Button=Erfassungsverzeichnis an Image anhängen +ApplyFfusfufile.Button=FFU- oder SFU-Datei anwenden +ApplyWimswmfile.Button=WIM- oder SWM-Datei anwenden +Capture.Incremental.Button=Inkrementelle Änderungen an der Datei erfassen +Capture.Partitions.Button=Partitionen in FFU-Datei erfassen +Capture.Image.Drive.Button=Image eines Laufwerks in WIM-Datei aufnehmen +Delete.Resources.Button=Ressourcen aus beschädigtem Image löschen +Apply.Changes.Image.Button=Änderungen auf Image anwenden +Delete.VolumeImages.Button=Volume-Image aus WIM-Datei löschen +ExportImage.Button=Image exportieren +Get.Image.Button=Imageinformationen abrufen +Get.WIM.Boot.Button=WIMBoot-Konfigurationseinträge abrufen +List.Files.Dirs.Button=Listen Sie Dateien und Verzeichnisse im Image auf +MountImage.Button=Image einhängen +Optimize.FFU.File.Button=FFU-Datei optimieren +OptimizeImage.Button=Image optimieren +Remount.Image.Button=Image zur Wartung erneut mounten +Split.FFU.File.Button=FFU-Datei in SFU-Dateien aufteilen +Split.WIM.File.Button=WIM-Datei in SWM-Dateien aufteilen +UnmountImage.Button=Image aushängen +Update.WIM.Boot.Button=Update WIMBoot-Konfigurationseintrag +Apply.Siloed.Prov.Button=Siloed-Bereitstellungspaket anwenden +Save.Image.Button=Imageinformationen speichern +GetPackages.Button=Paketinformationen abrufen +AddPackage.Button=Paket hinzufügen +RemovePackage.Button=Paket entfernen +GetFeatures.Button=Funktionsinformationen abrufen +EnableFeature.Button=Funktion aktivieren +DisableFeature.Button=Funktion deaktivieren +CleanupRecovery.Button=Bereinigungs- oder Wiederherstellungsvorgänge durchführen +Add.Prov.Package.Button=Bereitstellungspaket hinzufügen +Get.Prov.Package.Button=Informationen zum Bereitstellungspaket abrufen +Apply.CustomData.Button=Benutzerdefiniertes DatenImage anwenden +Get.App.Package.Button=App-Paketinformationen abrufen +Add.Provisioned.App.Button=Bereitgestelltes App-Paket hinzufügen +Remove.Prov.App.Button=Entferne die Bereitstellung für das App-Paket +Optimize.Provisioned.Button=Bereitgestellte Pakete optimieren +Add.CustomData.File.Button=Benutzerdefinierte Datendatei zum App-Paket hinzufügen +Get.App.Patch.Button=Informationen zum Anwendungspatch abrufen +Detailed.App.Patch.Button=Erhalten Sie detaillierte Informationen zum Anwendungspatch +Basic.Installed.App.Button=Holen Sie sich grundlegende Informationen zum installierten Anwendungspatch +Get.Detailed.Button=Erhalten Sie detaillierte Anwendungsinformationen zum Windows Installer (*.msi) +Get.Basic.Windows.Button=Holen Sie sich grundlegende Anwendungsinformationen zum Windows Installer (*.msi) +Export.Default.Button=Exportieren Sie Standardanwendungszuordnungen +DefaultApp.Assoc.Button=Holen Sie sich die Standardinformationen zur Anwendungszuordnung +Import.Default.Button=Standardanwendungszuordnungen importieren +Remove.Default.Button=Entfernen Sie Standardanwendungszuordnungen +Intl.Settings.Button=Internationale Einstellungen und Sprachen abrufen +SetUilanguage.Button=UI-Sprache festlegen +Set.Default.Button=Standardmäßige UI-Fallback-Sprache festlegen +Set.System.Preferred.Button=Bevorzugte UI-Sprache des Systems festlegen +Set.System.Locale.Button=Systemgebietsschema festlegen +Set.User.Locale.Button=Benutzer-Gebietsschema festlegen +Set.Input.Locale.Button=Eingabe-Locale festlegen +Set.UI.Button=UI-Sprache und -Orte festlegen +Set.Default.Time.Button=Standardzeitzone festlegen +Set.Default.Languages.Button=Standardsprachen und -orte festlegen +Set.Layered.Driver.Button=Tastatur-Layout-Treiber festlegen +Generate.Lang.Ini.Button=Lang.ini-Datei generieren +Set.Default.Setup.Button=Standard-Setup-Sprache festlegen +AddCapability.Button=Funktion hinzufügen +Export.Capabilities.Button=Funktionen in Repository exportieren +GetCapabilities.Button=Fähigkeitsinformationen abrufen +RemoveCapability.Button=Fähigkeit entfernen +Get.Edition.Button=Aktuelle Ausgabe abrufen +Get.Upgrade.Targets.Button=Upgrade-Ziele abrufen +UpgradeImage.Button=Image aktualisieren +SetProductKey.Button=Produktschlüssel festlegen +GetDrivers.Button=Treiberinformationen abrufen +AddDriver.Button=Treiber hinzufügen +RemoveDriver.Button=Treiber entfernen +Export.DriverPackages.Button=Treiberpakete exportieren +Import.DriverPackages.Button=Treiberpakete importieren +Apply.Unattended.Button=Unbeaufsichtigte Antwortdatei anwenden +GetSettings.Button=Einstellungen abrufen +SetScratchSpace.Button=Scratch-Speicherplatzgröße festlegen +Set.Target.Path.Button=Zielpfad festlegen +Get.Uninstall.Window.Button=Deinstallationsfenster abrufen +Initiate.Uninstall.Button=Deinstallation starten +Remove.Roll.Back.Button=Rollback-Funktion entfernen +Set.Uninstall.Window.Button=Deinstallationsfenster festlegen +Set.Reserved.Storage.Button=Reservierten Speicherstatus festlegen +Get.Reserved.Storage.Button=Reservierten Speicherstatus abrufen +AddEdge.Button=Kante hinzufügen +Add.Edge.Browser.Button=Edge-Browser hinzufügen +Add.Edge.Web.Button=Edge WebView hinzufügen +ImageConversion.Label=Imagekonvertierung +MergeSwmfiles.Button=SWM-Dateien zusammenführen +Remount.Image.Write.Label=Image mit Schreibberechtigung erneut mounten +CommandConsole.Label=Kommandokonsole +Unattended.AnswerFile.Label=Unbeaufsichtigter Antwortdateimanager +Unattended.Creator.Label=Erstellen einer unbeaufsichtigter Antwortdateien +Manage.Image.Registry.Button=Imageregistrierungs-Hives verwalten +WebResources.Label=Webressourcen +Download.Languages.Button=Download Sprachen und optionale Funktionen ISOs +Download.FOD.Button=Sprachen und FOD-Discs für Windows 10 herunterladen +ReportManager.Label=Report-Manager +Mounted.Image.Manager.Label=Mounted Image Manager +Create.Disc.Image.Button=Disc-Image erstellen +Create.Testing.Button=Erstellen Sie eine Testumgebung +Config.List.Editor.Label=Konfigurationslisteneditor +Options.Label=Optionen +HelpTopics.Label=Hilfethemen +DISM.Tools.Label=Über DISMTools +MoreInfo.Label=Weitere Informationen +WhatsThis.Label=Was ist das? +Report.Feedback.Opens.Label=Feedback melden (wird im Webbrowser geöffnet) +Contribute.Help.System.Label=Zum Hilfesystem beitragen +TourActions.Label=Tour-Aktionen +Tour.Server.Active.Label=Tour Server ist auf Port {0} aktiv +RestartTour.Label=Neustarttour +Stop.Tour.Server.Label=Tour-Server stoppen +Begin.Label=Beginnen +NewProject.Link=Neues Project +Open.Existing.Project.Link=Vorhandenes Projekt öffnen +Manage.Online.Install.Link=Online-Installation verwalten +Manage.Offline.Button.Button=Offline-Installation verwalten +RemoveEntry.Link=Eintrag entfernen +CloseTab.Label=Tab schließen +SaveProject.Label=Projekt speichern +UnloadProject.Label=Projekt entladen +Unload.Project.Tooltip=Projekt aus diesem Programm entladen +Show.Progress.Window.Label=Fortschrittsfenster anzeigen +RefreshView.Label=Ansicht aktualisieren +Expand.Label=Erweitern +NewVersion.Available.Link=Eine neue Version steht zum Download und zur Installation zur Verfügung. Klicken Sie hier, um mehr zu erfahren +Get.Basic.Label=Grundlegende Informationen abrufen (alle Pakete) +Get.Detailed.Specific.Label=Detaillierte Informationen abrufen (spezifisches Paket) +CommitImage.Label=Änderungen festschreiben und Image aushängen +Discard.Changes.Label=Änderungen verwerfen und Image aushängen +UnmountSettings.Button=Einstellungen aushängen +View.Package.Dir.Label=Paketverzeichnis anzeigen +Get.ImageFile.Button=Informationen zur Imagedatei abrufen +Save.Complete.Image.Button=Gesamte Imageinformationen speichern +Create.Disc.ImageFile.Button=Erstellen Sie ein Disc-Image mit dieser Datei +Project.File.Load.Title=Geben Sie die zu ladende Projektdatei an +MountDir.Description=Bitte geben Sie das Mount-Verzeichnis an, das Sie in dieses Projekt laden möchten: +Image.Processes.Label=Imageprozesse sind abgeschlossen +Ready.Label=Bereit +AccessDirectory.Label=Zugriffsverzeichnis +Copy.Deployment.Tools.Label=Bereitstellungstools kopieren +AllArchitectures.Label=Von allen Architekturen +Selected.Architecture.Label=Ausgewählte Architektur +Xarchitecture.Label=Für x86-Architektur +Amarkdown.Architecture.Label=Für AMD64-Architektur +ARM.Label=Für die ARM-Architektur +ARM64.Label=Für die ARM64-Architektur +ImageOperations.Label=Imageoperationen +Remove.VolumeImages.Button=VolumenImage entfernen +Manage.Label=Verwalten +Create.Label=Erstellen +Configure.Scratch.Dir.Label=Scratch-Verzeichnis konfigurieren +ManageReports.Label=Berichte verwalten +Add.Button=Hinzufügen +NewFile.Button=Neue Datei +ExistingFile.Button=Vorhandene Datei +SaveResource.Button=Ressource speichern +CopyResource.Label=Ressource kopieren +Visit.Microsoft.Apps.Label=Besuchen Sie die Microsoft Apps-Website +Visit.Microsoft.Label=Besuchen Sie die Website des Microsoft Store Generation Project +Iget.Apps.Label=Wie erhalte ich Anwendungen? +Welcome.Servicing.Label=Willkommen zu dieser Wartungssitzung +Project.Link=PROJEKT +Image.Link=Image +Name.Label=Name: +Location.Label=Standort: +ImagesMounted.Label=Image gemountet? +Mount.Image.Link=Klicken Sie hier, um ein Image einzubinden +ProjectTasks.Label=Projektaufgaben +View.Project.Props.Link=Projekteigenschaften anzeigen +Open.File.Explorer.Link=Im Datei-Explorer öffnen +UnloadProject.Link=Projekt entladen +ImageMounted.Label=Es wurde kein Image gemountet +Mount.Image.Order.Label=Sie müssen ein Image mounten, um seine Informationen anzuzeigen +Choices.Label=Auswahlmöglichkeiten +MountImage.Link=Ein Image mounten +Pick.Mounted.Image.Link=Wählen Sie ein gemountetes Image aus +ImageIndex.Label=Imageindex: +MountPoint.Label=Mount-Punkt: +Version.Label=Version: +Description.Label=Beschreibung: +ImageTasks.Label=Imageaufgaben +View.Image.Props.Link=Imageeigenschaften anzeigen +UnmountImage.Link=Image aushängen +ImageOperations.Group=Imageoperationen +Commit.Changes.Button=Aktuelle Änderungen festschreiben +CommitImage.Button=Image festschreiben und aushängen +Unmount.Image.Button=Image aushängen, Änderungen verwerfen +Reload.Servicing.Button=Servicesitzung neu laden +ApplyImage.Button=Image anwenden +CaptureImage.Button=Image aufnehmen +Package.Operations.Group=Paketoperationen +Get.Package.Button=Paketinformationen abrufen +Save.Installed.Button=Installierte Paketinformationen speichern +Component.Store.Maint.Button=Führen Sie Wartungs- und Bereinigungsarbeiten im Komponentenspeicher durch +Feature.Operations.Group=Feature-Operationen +Get.Feature.Button=Funktionsinformationen abrufen +Save.Feature.Button=Funktionsinformationen speichern +AppX.Package.Operations=AppX-Paketoperationen +Add.AppX.Package.Button=AppX-Paket hinzufügen +Get.App.Button=App-Informationen abrufen +Save.Installed.AppX.Button=Installierte AppX-Paketinformationen speichern +Remove.AppX.Package.Button=AppX-Paket entfernen +Capability.Operations.Group=Fähigkeitsoperationen +Get.Capability.Button=Fähigkeitsinformationen abrufen +Save.Capability.Button=Funktionsinformationen speichern +DriverOperations.Group=Treiberoperationen +AddDriverPackage.Button=Treiberpaket hinzufügen +Get.Driver.Button=Treiberinformationen abrufen +Save.Installed.Driver.Button=Installierte Treiberformationen speichern +Windows.Group=Windows PE-Operationen +GetConfig.Button=Konfiguration abrufen +SaveConfig.Button=Konfiguration speichern +Yes.Button=Ja +No.Button=Nein +Offline.Management.Button=Ja +Rename.Link=Umbenennen +DomainMembership.Label=Domain-Mitgliedschaft: +WorkgroupDomain.Label=Arbeitsgruppe/Domain: +IP.Address.Config.Label=IP-Adresskonfiguration: +Explore.Get.Started.Label=Entdecken und loslegen +Stay.Up.Date.Label=Bleiben Sie auf dem Laufenden +FactDay.Label=Tatsache des Tages +Learn.Snew.Link=Lernen Sie, was es Neues in dieser Version gibt +Get.Started.DISM.Link=Erste Schritte mit DISMTools und Image-Servicing +Manage.Install.Link=Verwalten Sie Ihre aktuelle Installation +Manage.External.Link=Externe Windows-Installationen verwalten +Learn.Watching.Videos.Label=Lernen durch Ansehen von Videos +Video.Content.Loaded.Label=Videoinhalte konnten nicht geladen werden. +News.Feed.Loaded.Label=Der Newsfeed konnte nicht geladen werden. +LearnMore.Link=Mehr erfahren +Retry.Button=Erneut + +[Main.Links] +Props.Label=Eigenschaften +ProjProps.Label=Eigenschaften + +[Main.Messages] +IE.Emulation.Changed.Message=Geänderte Internet Explorer-Emulationseinstellungen für DISMTools. Sie müssen DISMTools neu starten, um die Videowiedergabe zu starten +DISM.Tools.Modify.Message=DISMTools konnte die Emulationseinstellungen des Internet Explorers nicht ändern. Die Videowiedergabe startet nicht. +Items.Present.None.Label=In der Liste „Letzte“ sind keine Elemente vorhanden. +Incompatible.Win7.Message=Dieses Programm ist nicht kompatibel mit Windows 7 und Server 2008 R2.{crlf;}Dieses Programm verwendet die DISM-API, die Dateien aus dem Assessment and Deployment Kit (ADK) erfordert. Unterstützung für Windows 7 ist jedoch nicht enthalten.{crlf;}{crlf;}Das Programm wird geschlossen. +Requires.NET.Message=Dieses Programm erfordert .NET Framework 4.8 zum Funktionieren.{crlf;}Sie können es herunterladen von: dotnet.microsoft.com. Installieren Sie das Framework und führen Sie das Programm erneut aus. Möglicherweise müssen Sie Ihr System neu starten{crlf;}{crlf;}Das Programm wird geschlossen. +Run.Admin.Message=Dieses Programm muss als Administrator ausgeführt werden.{crlf;}Es gibt bestimmte Softwarekonfigurationen, in denen Windows dieses Programm ohne Administratorrechte ausführt, Sie müssen also manuell danach fragen.{crlf;}{crlf;}Klicken Sie mit der rechten Maustaste auf die ausführbare Datei und wählen Sie {quot;}Als Administrator ausführen{quot;} +DISM.Tools.Detected.Message=DISMTools hat erkannt, dass eine höhere Anzeigeskalierungseinstellung festgelegt wurde. Dies kann dazu führen, dass das Programm falsch aussieht.{crlf;}{crlf;}Wir empfehlen Ihnen, Ihre Skalierungseinstellung auf 125 % (120 DPI) oder weniger zu senken, es sei denn, Sie haben ein kleines Anzeigefeld mit einer hohen Auflösung eingestellt. +Higher.Display.Scaling.Title=Höhere Skalierungseinstellung für die Anzeige erkannt +DISM.Tools.Found.Message=DISMTools hat ein mögliches Assessment and Deployment Kit gefunden, das auf Ihrem System installiert ist. Es wird jedoch nicht erkannt. Willst du es reparieren? +Possible.ADK.Title=Mögliches ADK auf Ihrem System installiert +SafeMode.Prompt=Dieser Computer ist in den abgesicherten Modus gestartet. Dieser Modus ist für die Live-Wiederherstellung des Betriebssystems konzipiert.{crlf;}{crlf;}DISMTools kann den Online-Installationsverwaltungsmodus automatisch laden, sodass Sie mit Reparaturversuchen beginnen können.{crlf;}{crlf;}Möchten Sie den Online-Installationsverwaltungsmodus laden? +Windows.Title=Windows befindet sich im abgesicherten Modus +Tour.Prompt=Verwenden Sie DISMTools zum ersten Mal? Wenn ja, können wir Ihnen beim Einstieg in die Tour helfen.{crlf;}{crlf;}Mit der Tour können Sie Ihr erstes Windows-Image erstellen und es anschließend testen. Sie können die Tour in jedem von Ihnen bevorzugten Tempo verfolgen und jederzeit darauf zugreifen, indem Sie zum Hilfemenü gehen.{crlf;}{crlf;}Möchten Sie die Tour jetzt starten? +Getting.Started.DISM.Title=Erste Schritte mit DISMTools +DISM.Tools.Running.Message=DISMTools hat erkannt, dass es auf einem Windows Server Core-System ausgeführt wird. Einige Funktionen funktionieren möglicherweise nicht wie erwartet. +ServerCore.Title=Windows Server Core erkannt +Project.DISM.Tools.Label=Das angegebene Projekt ist kein DISMTools-Project. +DownloadFailed.Label=Wir konnten das WIM Explorer-Setup nicht herunterladen. Grund:{crlf;}{0} +PrepareFailed.Label=Wir konnten das WIM Explorer-Setup nicht vorbereiten. Grund:{crlf;}{0} +AnswerFile.Removed.Label=Antwortdatei erfolgreich entfernt. +BackgroundBusy.Message=Hintergrundprozesse müssen abgeschlossen sein, bevor der Servicemanager geladen wird. +Background.Finish.Message=Hintergrundprozesse müssen abgeschlossen sein, bevor der Umgebungsvariablenmanager geladen wird. +Secure.Boot.Enabled.Label=Secure Boot ist auf diesem Computer nicht aktiviert. +Secure.Boot.Status.Title=Sicherer Boot-Status +Secure.Boot=Secure Boot ist auf diesem Computer aktiviert, enthält jedoch nicht Windows UEFI CA 2023 in seiner Datenbank. Stellen Sie sicher, dass Ihr Computer die Secure Boot-Updates erhält, bevor die Microsoft Windows Production PCA 2011-Zertifikate im Juni 2026 ablaufen. +Update.Secure.Boot.Message=Ein Update auf Secure Boot zur Unterstützung von Windows UEFI CA 2023 ist im Gange. +Secure.Enabled=Secure Boot ist auf diesem Computer aktiviert und enthält Windows UEFI CA 2023 in seiner Datenbank. +Determine.Status.Label=Wir konnten den Status des Windows UEFI CA 2023-Updates nicht ermitteln. + +[Main.Messages.Validation] +Cannot.Load.Project.Message=Das Projekt kann nicht geladen werden. Grund: Das Projekt wurde nicht gefunden. Möglicherweise wurde es verschoben oder sein Ordner gelöscht. +Project.Load.Error.Title=Projektladefehler + +[Main.News] +LearnMore.Link=Mehr erfahren +Last.Updated.Label=Letzte aktualisierte Neuigkeiten: + +[Main.News.Error] +NoDetails.Message=Es sind keine zusätzlichen Fehlerdetails im Newsfeed verfügbar. Versuchen Sie, den Newsfeed zu aktualisieren. + +[Main.News.Load] +Retry.Button=Erneut + +[Main.OfflineManagement] +OfflineInstall.Label=Offline-Installation - DISMTools +Install.Label=(Offline-Installation) +Image.Registry.Message=Das Bedienfeld der Imageregistrierung muss geschlossen werden, bevor dieser Modus geladen wird. +Yes.Button=Ja + +[Main.OnlineManagement.Start] +Install.DISM.Tools.Label=Online-Installation - DISMTools +Install.Label=(Online-Installation) +Yes.Button=Ja + +[Main.Project.Load] +LoadingProject.Label=Projekt wird geladen: {quot;}{0}{quot;} +Project.Label=Projekt: {quot;}{0}{quot;} +Adkdeployment.Tools.Label=ADK-Bereitstellungstools +DeploymentTools.X86.Label=Bereitstellungstools (x86) +Deployment.Tools.Label=Bereitstellungstools (AMD64) +DeploymentTools.ARM.Label=Bereitstellungstools (ARM) +DeploymentTools.ARM64.Label=Bereitstellungstools (ARM64) +MountPoint.Label=Mount-Punkt +Unattended.Answer.Label=Unbeaufsichtigte Antwortdateien +ScratchDirectory.Label=Scratch-Verzeichnis +ProjectReports.Label=Projektberichte + +[Main.Project.Load.Guard] +Image.Registry.Message=Das Bedienfeld der Imageregistrierung muss geschlossen werden, bevor Projekte geladen werden. + +[Main.Project.Unload] +Bg.Procs.Still.Message=Hintergrundprozesse sammeln immer noch Informationen zu diesem Image. Möchten Sie sie stornieren? +Cancelling.Bg.Procs.Button=Hintergrundprozesse abbrechen. Bitte warten +Ready.Item=Bereit + +[Main.ProjectTree.AfterCollapse] +Collapse.Label=Zusammenbruch +CollapseItem.Label=Element reduzieren +Expand.Item=Erweitern +ExpandItem=Element erweitern +ExpandCollapse.Item=Erweitern +ExpandTool.ExpandItem=Element erweitern + +[Main.ProjectTree.AfterExpand] +Collapse.Label=Zusammenbruch +CollapseItem.Label=Element reduzieren +Expand.Item=Erweitern +ExpandItem=Element erweitern + +[Main.ProjectTree.AfterSelect] +Collapse.Label=Zusammenbruch +CollapseItem.Label=Element reduzieren +Expand.Item=Erweitern +ExpandItem=Element erweitern + +[Main.RegistryPanel] +Control.Active.Message=Dieses Bedienfeld ist bei aktiven Installationen nicht verfügbar. + +[Main.Registry.Actions] +Load.Project.Mode.Message=Sie müssen ein Projekt oder einen Modus laden, um Registrierungs-Hives zu verwalten. + +[Main.RemoveOSUninstall] +ReadCarefully.Message={0}, bitte lesen Sie diese Nachricht sorgfältig durch, bevor Sie fortfahren.{crlf;}{crlf;}Wenn Sie diese neue Windows-Version seit einiger Zeit verwenden und festgestellt haben, dass keine Probleme vorliegen, können Sie die Möglichkeit entfernen, ein Rollback zu starten.{crlf;}{crlf;}Dadurch werden die Dateien aus der alten Installation nicht gelöscht Sie müssen also Disk Cleanup (cleanmgr) verwenden, wenn Sie Speicherplatz freigeben möchten.{crlf;}{crlf;}Möchten Sie die Möglichkeit entfernen, auf eine ältere Windows-Version zurückzurollen? +OnlineOnly.Message=Diese Aktion wird nur bei Online-Installationen unterstützt + +[Main.Run.BgProcesses] +RunningProcesses.Label=Ausgeführte Prozesse +Getting.Basic.Image.Label=Grundlegende Imageinformationen abrufen +AdvancedImageInfo.Label=Erweiterte Imageinformationen abrufen +Getting.Image.Packages.Label=Imagepakete abrufen +Getting.Image.Features.Label=Imagefunktionen abrufen +Get.Image.Provisioned.Label=AppX-Pakete mit bereitgestelltem Image abrufen (Anwendungen im Metro-Stil) +Get.Image.Features.Label=Imagefunktionen auf Abruf abrufen (Funktionen) +Getting.Image.Drivers.Label=Imagetreiber abrufen +Running.Pending.Tasks.Label=Ausstehende Aufgaben werden ausgeführt. Dies kann einige Zeit dauern + +[Main.SaveAsset] +Saved.Location.Label=Das Asset wurde an dem von Ihnen angegebenen Ort gespeichert +SaveSuccessful.Title=Erfolgreich speichern + +[Main.ShowChildDescs] +Adds.Additional.Item=Fügt einer .wim-Datei ein zusätzliches Image hinzu +Applies.Full.Flash.Item=Wendet ein Full Flash Utility oder eine geteilte FFU auf ein physisches Laufwerk an +Applies.Windows.Image.Item=Wendet ein Windows-Image an oder teilt WIM auf eine Partition auf +Captures.Incremen.File.Item=Erfasst inkrementelle Dateiänderungen an der spezifischen WIM-Datei in {quot;}custom.wim{quot;} +Captures.Image.Drive.Item=Erfasst ein Image der Partitionen eines Laufwerks in einer neuen FFU-Datei +Captures.Image.New.Item=Fängt ein Image eines Laufwerks in eine neue WIM-Datei ein +Deletes.Resources.Item=Löscht alle Ressourcen, die mit einem beschädigten gemounteten Image verknüpft sind +Applies.Changes.Made.Item=Wendet die am gemounteten Image vorgenommenen Änderungen an +Deletes.Volume.Image.Item=Löscht ein Volume-Image aus einer WIM-Datei +Exports.Copy.Image.Item=Exportiert eine Kopie des Images in eine andere Datei +Displays.Images.Item=Zeigt Informationen zu den Imagen an, die in einer WIM-, FFU-, VHD- oder VHDX-Datei enthalten sind +Displays.List.Wimffu.Item=Zeigt eine Liste der WIM-, FFU-, VHD- oder VHDX-Image an, die derzeit gemountet sind +Displays.WIM.Boot.Item=Zeigt WIMBoot-Konfigurationseinträge für das angegebene Festplattenvolumen an +Displays.List.Files.Item=Zeigt eine Liste von Dateien und Ordnern in einem Image an +Mounts.Image.Wimffu.Item=Mountet ein Image von einem WIM, FFU, VHD oder VHDX, um es für die Wartung verfügbar zu machen +Optimizes.Ffuimage.Item=Optimiert ein FFU-Image, um die Bereitstellung zu beschleunigen +Optimizes.Image.Faster.Item=Optimiert ein Image, um die Bereitstellung zu beschleunigen +Remounts.Mounted.Image.Item=Mountet ein gemountetes Image, auf das nicht zugegriffen werden kann, um es für die Wartung verfügbar zu machen +Splits.Full.Flash.Item=Splits eine Full Flash Utility (FFU)-Datei in schreibgeschützte Split-FFU-Dateien (.sfu) +Splits.Existing.WIM.Item=Splits eine vorhandene WIM-Datei in schreibgeschützte geteilte WIM-Dateien (.swm) +Unmounts.Wimffuvhd.Item=Hängt die WIM-, FFU-, VHD- oder VHDX-Datei aus und übernimmt oder verwirft ihre Änderungen +Updates.WIM.Boot.Item=Aktualisiert den WIMBoot-Konfigurationseintrag +Applies.Siloed.Prov.Item=Wendet siloierte Bereitstellungspakete auf das Image an +Displays.Message=Zeigt Informationen zu allen Paketen im Image oder in der Installation oder einer beliebigen Paketdatei an, die Sie hinzufügen möchten +Installs.Cabmsu.Package.Item=Installiert ein .cab- oder .msu-Paket im Image +Removes.Cabfile.Package.Item=Entfernt ein .cab-Dateipaket aus dem Image +Displays.Installed.Item=Zeigt Informationen zu den installierten Funktionen in einem Image oder einer Online-Installation an +Enables.Updates.Feature.Item=Aktiviert oder aktualisiert die angegebene Funktion im Image +Disables.Feature.Image.Item=Deaktiviert die angegebene Funktion im Image +Performs.Cleanup.Item=Führt Bereinigungs- oder Wiederherstellungsvorgänge am Image durch +Adds.Applicable.Item=Fügt dem Image eine anwendbare Nutzlast eines Bereitstellungspakets hinzu +Gets.Infomation.Prov.Item=Erhält Informationen zu einem Bereitstellungspaket +Dehydrat.Files.Containe.Item=Dehydriert Dateien, die im benutzerdefinierten DatenImage enthalten sind, um Platz zu sparen +Displays.App.Item=Zeigt Informationen zu App-Paketen in einem Image an +Addsone.App.Item=Fügt dem Image ein oder mehrere App-Pakete hinzu +Removes.Prov.App.Item=Entfernt die Bereitstellung für App-Pakete aus dem Image +Optimizes.Total.Size.Item=Optimiert die Gesamtgröße der bereitgestellten App-Pakete auf dem Image +Addscustom.Data.File.Item=Fügt dem angegebenen App-Paket eine benutzerdefinierte Datendatei hinzu +Displays.Msppatches.Item=Zeigt Informationen zu MSP-Patches an, die auf das Offline-Image anwendbar sind +Command42.Item=Zeigt Informationen zu installierten MSP-Patches an +Displays.Item=Zeigt Informationen zu allen angewendeten MSP-Patches für alle auf dem Image installierten Anwendungen an +Displays.Specific.Item=Zeigt Informationen zu einer bestimmten installierten Windows Installer-Anwendung an +Command45.Item=Zeigt Informationen zu allen Windows Installer-Anwendungen im Image an +Exports.Default.Item=Exportiert Standardanwendungszuordnungen von einem laufenden Betriebssystem in eine XML-Datei +Displays.List.Item=Zeigt die Liste der im Image festgelegten Standardanwendungszuordnungen an +Imports.Set.DefaultApp.Item=Importiert eine Reihe von Standardanwendungszuordnungen aus einer XML-Datei in ein Image +Removes.Default.Item=Entfernt Standardanwendungszuordnungen aus dem Image +Displays.Intl.Item=Zeigt Informationen zu internationalen Umgebungen und Sprachen an +Sets.Default.Uilanguage.Item=Legt die Standard-UI-Sprache fest +Sets.Fallback.Default.Item=Legt die Fallback-Standardsprache für die System-Benutzeroberfläche fest +Sets.System.Preferred.Item=Legt die UI-Sprache {quot;}System Preferred{quot;} fest +Sets.Language.Non.Item=Legt die Sprache für Nicht-Unicode-Programme und Schrifteinstellungen im Image fest +Sets.Standards.Formats.Item=Legt die Sprache {quot;}standards and formats{quot;} (Benutzer-Locale) im Image fest +Sets.Input.Locales.Item=Legt die Eingabelokale und Tastaturlayouts fest, die im Image verwendet werden sollen +Sets.Default.System.Message=Legt die Standard-Benutzeroberfläche des Systems, die Sprache für Nicht-Unicode-Programme, das Benutzer-Locale und die Tastaturlayouts für die Sprache im Image fest +Sets.Default.Time.Item=Legt die Standardzeitzone im Image fest +Sets.Default.Message=Legt die Standardsprache für die UI- und Nicht-Unicode-Programme, Orte für den Benutzer und die Eingabe, Tastaturlayouts und Zeitzonenwerte im Image fest +Specifies.Keyboard.Item=Gibt einen Tastaturtreiber für japanische und koreanische Tastaturen an +Generates.Lang.Ini.Item=Generiert eine Lang.ini-Datei, die von Setup verwendet wird, um die Sprachpakete innerhalb und außerhalb des Images zu definieren +Defines.Default.Item=Definiert die Standardsprache, die von Setup verwendet wird +Addscapability.Image.Item=Fügt einem Image eine Funktion hinzu +Exports.Set.Caps.Item=Exportiert eine Reihe von Funktionen in ein neues Repository +Gets.Installed.Item=Erhält Informationen über die installierten Funktionen eines Images oder einer aktiven Installation +Removes.Capability.Item=Entfernt eine Funktion aus dem Image +Displays.Edition.Image.Item=Zeigt die Ausgabe des Images an +Displays.Editions.Image.Item=Zeigt die Editionen an, auf die das Image aktualisiert werden kann +Changes.Image.Higher.Item=Ändert ein Image in eine höhere Ausgabe +Enters.ProductKey.Item=Gibt den Produktschlüssel für die aktuelle Ausgabe ein +Displays.Driver.Message=Zeigt Informationen zu den von Ihnen angegebenen Treiberpaketen oder den installierten Treibern im Image oder in der Installation an +Addsthird.Party.Driver.Item=Fügt dem Image Treiberpakete von Drittanbietern hinzu +Removes.ThirdParty.Item=Entfernt Treiber von Drittanbietern aus dem Image +Exports.ThirdParty.Item=Exportiert alle Treiberpakete von Drittanbietern aus dem Image in einen Zielpfad +Imports.ThirdParty.Message=Importiert alle Treiber von Drittanbietern aus einer angegebenen Quelle in dieses Image, um die gleiche Hardwarekompatibilität zu gewährleisten +Applies.Unattend.Item=Wendet eine Unattend.xml-Datei auf das Image an +Displays.List.Windows.Item=Zeigt eine Liste der Windows PE-Einstellungen im WinPE-Image an +Retrieves.Configured.Item=Ruft die konfigurierte Menge des Scratch-Speichers des Windows PE-Systemvolumes ab +Retrieves.Target.Path.Item=Ruft den Zielpfad des Windows PE-Images ab +Sets.Available.Item=Legt den verfügbaren Scratch-Speicherplatz fest (in MB) +Sets.Location.Win.Item=Legt den Speicherort des WinPE-Images auf der Festplatte fest (für Festplattenstartszenarien) +Gets.Number.Days.Item=Erhält die Anzahl der Tage, an denen eine Deinstallation nach einem Upgrade eingeleitet werden kann +Reverts.PC.Item=Setzt einen PC auf eine vorherige Installation zurück +Removes.Ability.Roll.Item=Entfernt die Möglichkeit, einen PC auf eine vorherige Installation zurückzusetzen +Sets.Number.Days.Item=Legt die Anzahl der Tage fest, an denen eine Deinstallation nach einem Upgrade eingeleitet werden kann +Gets.State.Reserved.Item=Erhält den aktuellen Status des reservierten Speichers +Sets.State.Reserved.Item=Legt den Status des reservierten Speichers fest +Adds.Microsoft.Item=Fügt dem Image den Microsoft Edge Browser und die WebView2-Komponente hinzu +Command91.Item=Fügt den Microsoft Edge Browser zum Image hinzu +Addsmicrosoft.Edge.Web.Item=Fügt die Microsoft Edge WebView2-Komponente zum Image hinzu +Saves.Complete.Image.Message=Speichert vollständige Imageinformationen in der gewünschten Datei. Abhängig von den von Ihnen angegebenen Einstellungen werden Ihnen während des Prozesses möglicherweise einige Fragen gestellt +Creates.New.DISM.Item=Erstellt ein neues DISMTools-Project. Das aktuelle Projekt wird nach der Erstellung entladen +Opens.Existing.DISM.Item=Öffnet ein bestehendes DISMTools-Project. Das aktuelle Projekt wird entladen +Enters.Online.Install.Item=Erwechselt den Online-Installationsverwaltungsmodus +Saves.Changes.Project.Item=Speichert die Änderungen dieses Projekts +Saves.Project.Another.Item=Speichert dieses Projekt an einem anderen Ort +Closes.Project.Message=Schließt das Programm. Wenn ein Projekt geladen wird, werden Sie gefragt, ob Sie es speichern möchten oder nicht +Opens.File.Explorer.Item=Öffnet den Datei-Explorer, um die Projektdateien anzuzeigen +Unloads.Project.Message=Lädt dieses Project. Wenn Änderungen vorgenommen wurden, werden Sie gefragt, ob Sie es speichern möchten oder nicht +Switches.Mounted.Image.Item=Schaltet den Index des gemounteten Images um +Launches.Project.Item=Startet den Projektabschnitt des Projekteigenschaftendialogs +Launches.Image.Section.Item=Startet den Imageabschnitt des Projekteigenschaftendialogs +ImageFormat.Item=Führt die Imageformatkonvertierung von WIM zu ESD und umgekehrt durch +Merges.Two.SWM.Item=Führt zwei oder mehr SWM-Dateien zu einer einzigen WIM-Datei zusammen +Remounts.Image.Read.Item=Mountet das Image erneut mit Lese-/Schreibberechtigungen, um Änderungen daran vornehmen zu können +Opens.Command.Console.Item=Öffnet die Kommandokonsole +Lets.Manage.Item=Lasst Sie unbeaufsichtigte Antwortdateien für dieses Projekt verwalten +Lets.Manage.Project.Item=Lasst Sie Projektberichte verwalten +Shows.Overview.Mounted.Item=Zeigt eine Übersicht der gemounteten Image +Configures.Settings.Item=Konfiguriert Einstellungen für das Programm +Opens.Help.Topics.Item=Öffnet die Hilfethemen für dieses Programm +Opens.Glossary.Don.Item=Öffnet das Glossar, wenn Sie ein Konzept nicht verstehen +Shows.Command.Help.Item=Zeigt die Kommandohilfe an, mit der Sie Kommandos verwenden können, um dieselben Aktionen auszuführen +Shows.Item=Zeigt Programminformationen an +Lets.Report.Feedback.Item=Lasst Sie Feedback über ein neues GitHub-Problem melden (ein GitHub-Konto wird benötigt) +Opens.Git.Hub.Message=Öffnet das GitHub-Repository mit den Inhalten der Hilfedokumentation, zu denen Sie beitragen können (ein GitHub-Konto ist erforderlich) + +[Main.ShowParentDesc] +View.Options.Related.Item=Optionen anzeigen, die sich auf Dateien beziehen, wie z. B. das Erstellen oder Öffnen von Projekten +View.Options.Project.Item=Optionen anzeigen, die mit diesem Projekt in Zusammenhang stehen, z. B. die Anzeige seiner Eigenschaften +View.Options.Image.Item=Optionen im Zusammenhang mit der Imageverwaltung, -bereitstellung und/oder -wartung anzeigen +View.Options.Additional.Item=Optionen anzeigen, die sich auf zusätzliche Tools beziehen, wie die Kommandoskonsole +View.Options.Help.Item=Optionen anzeigen, die sich auf Hilfethemen, Glossar, Kommandohilfe und Produktinformationen beziehen + +[Main.Tooltips] +RefreshInfo.Label=Informationen aktualisieren +Change.Network.Config.Label=Netzwerkkonfiguration ändern +Other.Win.Administ.Label=Andere Windows-Verwaltungstools +Change.Wallpaper.Label=Klicken Sie hier, um Ihr HintergrundImage zu ändern +NetBiosname.Label=NetBIOS-Name: {lbrace;}0{rbrace;} +Show.New.Fact.Label=Eine neue Tatsache anzeigen + +[Main.UpdateChecker] +Couldn.Tdownload.Message=Wir konnten den Update-Checker nicht herunterladen. Grund:{crlf;}{0} +CheckUpdates.Title=Nach Updates suchen + +[Main.UpdateProjProps] +Yes.Button=Ja +No.Button=Nein + +[Migration] +Wait.Message=Bitte warten Sie, während DISMTools Ihre alte Einstellungsdatei migriert, damit sie auf dieser Version funktioniert. Dies kann einige Zeit dauern. +Wait.Label=Bitte warten + +[Migration.Background] +Loading.Old.Settings.Message=Lädt die alte Einstellungsdatei +Saving.New.Settings.Message=Speichern der neuen Einstellungsdatei +Done.Message=Fertig + +[MountDirCreation] +Create.Label=Möchten Sie das Mount-Verzeichnis erstellen? +Yes.Button=Ja +No.Button=Nein + +[MountedImgMgr] +Image.Manager.Item=Eingebauter Imagemanager +Overview.Images.Message=Hier ist eine Übersicht der Image, die auf diesem System gemountet wurden. Sie können Informationen darüber nachschlagen und einige grundlegende Aufgaben ausführen. Um Imageaktionen mit diesem Programm vollständig auszuführen, müssen Sie das Mount-Verzeichnis jedoch in ein Projekt laden: +ImageFile.Column=Imagedatei +Index.Column=Index +MountDirectory.Column=Verzeichnis mounten +Status.Column=Status +Read.Write.Column=Lese-/Schreibberechtigungen? +UnmountImage.Button=Image aushängen +ReloadServicing.Button=Dienst erneut laden +Enable.Write.Button=Schreibberechtigungen aktivieren +Open.Mount.Dir.Button=Mount-Verzeichnis öffnen +Remove.VolumeImages.Button=VolumenImage entfernen +LoadProject.Button=In Projekt laden +Repair.Component.Store.Item=Komponentenspeicher reparieren +Yes.Button=Ja + +[NewProj] +Create.Project.Label=Erstellen Sie ein neues Projekt +Image.Task.Header.Label={0} +Options.Required.Label=Bitte geben Sie die Optionen zum Erstellen eines neuen Projekts an: +Name.Label=Name*: +Location.Label=Standort*: +Fields.End.Required.Label=Die Felder, die auf * enden, sind erforderlich +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen +Project.Group=Projekt +Folder.Store.Description=Bitte wählen Sie einen Ordner aus, um dieses Projekt zu speichern: + +[NewProj.Validation] +Dir.Exist.Create.Message=Das Verzeichnis: {crlf;}{quot;}{0}{quot;}{crlf;}existiert nicht. Willst du es erstellen? +Create.Project.Dir.Message=Wir konnten das Projektverzeichnis nicht für Sie erstellen aufgrund von: {crlf;}{0}; {1} + +[NewTestingEnv] +Status.Message=Status +Creating.Project.Message=Projekt erstellen. Dies kann einige Zeit dauern. Bitte warten +ProjectCreated.Message=Das Projekt wurde erstellt +Create.Environment.Label=Erstellen Sie eine Testumgebung +WizardHelp.Message=Dieser Assistent erstellt eine Umgebung, die Ihnen beim Testen Ihrer Anwendungen unter Windows-Vorinstallationsumgebungen hilft.{crlf;}{crlf;} +Re.Ready.Create.Label=Wenn Sie bereit sind, klicken Sie auf die Schaltfläche „Erstellen“. +Env.Architecture.Label=Umgebungsarchitektur: +Architecture.Label=Architektur: +Target.Project.Label=Zielprojektstandort: +Other.Things.Project.Message=Sie können andere Dinge tun, während das Projekt erstellt wird. Kommen Sie jederzeit hierher zurück, um einen aktualisierten Status zu erhalten. +Browse.Button=Durchsuche +Create.Button=Erstellen +Cancel.Button=Abbrechen +Progress.Group=Fortschritt +Download.Windows.ADK.Link=Laden Sie das Windows ADK herunter +Https.Learn.Message=https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install +ProjectTemplate.Message=Das zu erstellende Projekt enthält eine mit allen Umgebungen und Ressourcen kompatible Vorlagenlösung für die Erstellung von Anwendungen für Windows-Vorinstallationsumgebungen. Mehr über diese Projekte erfahren Sie in der mitgelieferten README-Datei. + +[NewTestingEnv.Background] +Project.Created.Done.Message=Das Projekt wurde erfolgreich erstellt +Failed.Create.Message=Das Projekt konnte nicht erstellt werden + +[NewTestingEnv.Links] +Https.Learn.Message=https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install + +[Unattend.Messages] +Requires.Netruntime.Message=Dieser Assistent erfordert das .NET 10 Runtime muss installiert werden, um die integrierte Version des Generatorprogramms zu verwenden. Sie können es herunterladen von:{crlf;}{crlf;}dotnet.microsoft.com{crlf;}{crlf;}Wenn Sie es nicht herunterladen möchten.NET können Sie die eigenständige Version des Generatorprogramms herunterladen. Das Herunterladen wird je nach Geschwindigkeit Ihrer Netzwerkverbindung einige Zeit in Anspruch nehmen.{crlf;}{crlf;}Möchten Sie die eigenständige Version verwenden? +Netruntime.Missing.Title=.NET Runtime fehlt +GeneratorExit.Message=Der Generator der unbeaufsichtigten Antwortdatei konnte die Datei nicht generieren. Hier ist der Fehlercode, falls Sie interessiert sind:{crlf;}{crlf;}Fehlercode: {0} +Generator.Message=Der unbeaufsichtigte Antwortdateigenerator konnte die Datei nicht generieren. Hier ist der Fehlercode, falls Sie interessiert sind:{crlf;}{crlf;}Fehler: {0} +Reuse.Settings.Ve.Message=Möchten Sie die Einstellungen, die Sie in dieser Antwortdatei verwendet haben, für die neue wiederverwenden? +Load.Project.Order.Label=Sie müssen ein Projekt laden, um diese Datei anzuwenden. +PrepareFailed.Label=Wir konnten das UnattendGen Self-Contained Setup nicht vorbereiten. Grund:{crlf;}{0} +OpenFile.Label=Datei konnte nicht geöffnet werden: {0} +SaveFile.Label=Datei konnte nicht gespeichert werden: {0} +ProductKey.Copied.Done.Label=Der Produktschlüssel wurde erfolgreich in Ihre Zwischenablage kopiert. +Copy.Key.Clipboard.Label=Wir konnten den Schlüssel nicht in Ihre Zwischenablage kopieren. Fehlermeldung: {0} +Component.Already.Message=Diese Komponente ist bereits für die ordnungsgemäße Betriebssysteminstallation reserviert. Wenn Sie diese Komponente mit Ihren Daten überschreiben, liefert Ihnen die Betriebssysteminstallation möglicherweise nicht die erwarteten Ergebnisse. +ComponentUse.Title=Verwendete Komponente +Cross.Platform.Label=Plattformübergreifende Versionen von UnattendGen werden jetzt nach {0} kopiert +ImportOverwrite.Message=Das Importieren dieses Skripts überschreibt alle vorhandenen Daten im aktuellen Skript nach der Installation. Am besten erstellen Sie einen neuen Eintrag, bevor Sie fortfahren. Willst du weitermachen? +ProductKey.None.Label=Es gibt keinen Produktschlüssel für die Ausgabe {quot;}{0}{quot;}. + +[NewUnattend.Validation] +Gen.Error.Title=UnattendGen-Fehler + +[Unattend.Mode] +ExpressMode.Title=Express-Modus +WizardHelp.Description=Wenn Sie noch nie unbeaufsichtigte Antwortdateien erstellt haben, verwenden Sie diesen Assistenten, um eine zu erstellen +EditorMode.Title=Editor-Modus +CreateUnattended.Description=Erstellen Sie Ihre unbeaufsichtigten Antwortdateien von Grund auf und speichern Sie sie überall + +[Unattend.Progress] +Preparing.Generate.Label=Vorbereiten zum Generieren einer Datei +Saving.User.Settings.Label=Benutzereinstellungen speichern +GenerateAnswerFile.Label=Generieren einer unbeaufsichtigten Antwortdatei +Deleting.Temporary.Label=Löschen temporärer Dateien +Generation.Completed.Label=Generation ist abgeschlossen + +[UnattendWizard.Review] +Configs.UnattendAnswer.Label=Aktuelle Konfigurationen für die unbeaufsichtigte Antwortdatei: + +[Unattend.Tooltips] +Uses.Name.Computer.Message=Verwendet den Namen Ihres Computers als Computernamen der unbeaufsichtigten Antwortdatei.{crlf;}Verwenden Sie dies nur, wenn das System, auf das Sie abzielen möchten, dieses ist +Attempt.Grab.Message=Klicken Sie hier, um zu versuchen, die Ausgabe des aktuell geladenen Images abzurufen. Dies hilft Ihnen, einen geeigneten Produktschlüssel für das Windows-Image zu verwenden. +AutoChoose.Message=Wählen Sie diese Option, um den Zielstandort automatisch für eines der Länder im Europäischen Wirtschaftsraum (EWR) zu konfigurieren. Dadurch können Sie {crlf;}Einstellungen im Zielsystem konfigurieren, die Sie bei Verwendung einer Region außerhalb des EWR nicht vornehmen könnten. Nachdem die Einrichtung abgeschlossen ist, können Sie {crlf;}die Region auf Ihren aktuellen Standort umkonfigurieren. +Check.Field.Customize.Label=Überprüfen Sie dieses Feld, um den Anzeigenamen dieses Benutzers anzupassen +RearrangeScripts.Label=Skripte nach der Installation neu anordnen + +[Unattend.Validation] +Arch.Try.Label=Bitte wählen Sie eine Architektur aus und versuchen Sie es erneut +ValidationError.Title=Validierungsfehler +Computer.Name.Error.Title=Computernamenfehler +Script.Has.None.Label=Für den Computernamen wurde kein Skript übergeben +Type.ProductKey.Label=Bitte geben Sie einen Produktschlüssel ein und versuchen Sie es erneut +ProductKeyError.Title=Produktschlüsselfehler +Type.Product.Label=Bitte geben Sie den gesamten Produktschlüssel ein und versuchen Sie es erneut +ProductKey.Entered.Ill.Label=Der eingegebene Produktschlüssel:{crlf;}{crlf;}{0}{crlf;}{crlf;}ist schlecht geformt. Bitte geben Sie es noch einmal ein +Problem.One.Message=Es liegt ein Problem mit einem oder mehreren der angegebenen Benutzer vor. Hier sind die Gründe dafür:{crlf;}{crlf;}{0}{crlf;}{crlf;}Versuchen Sie es erneut, nachdem Sie die oben genannten Probleme behoben haben +User.Accounts.Error.Title=Fehler bei Benutzerkonten +Least.One.Account.Message=Mindestens ein Konto muss Teil der Benutzergruppe des Administrators sein. Bitte konfigurieren Sie die Benutzergruppen entsprechend und versuchen Sie es erneut +Problem.Wireless.Message=Es gibt ein Problem mit den angegebenen WLAN-Einstellungen. Stellen Sie sicher, dass Sie einen Netzwerknamen angegeben haben und versuchen Sie es erneut +WirelessError.Title=Fehler „Wireless Networks“ + +[OS.No] +Troll.Back.Older.Label=Sie können nicht zu einer älteren Version zurückkehren +Old.Versions.None.Message=Es wurden keine alten Versionen erkannt, da die Dateien nicht gefunden wurden. Möglicherweise haben Sie diese Version länger als im Deinstallationsfenster möglich oder Sie haben die Dateien der alten Version gelöscht (um Speicherplatz zu sparen). Sie brauchen nichts zu tun. +Ok.Button=OK + +[OfflineDriveList] +Disk.Choose.Label=Wählen Sie eine Festplatte +Begin.Install.Message=Um mit der Offline-Installationsverwaltung zu beginnen, wählen Sie bitte eine Festplatte aus, die in der folgenden Liste angezeigt wird. Diese Liste wird automatisch jede Minute aktualisiert oder wenn Sie auf die Schaltfläche „Aktualisieren“ klicken. +DriveLetter.Column=Laufwerksbuchstabe +DriveLabel.Column=Laufwerksbezeichnung +DriveType.Column=Laufwerkstyp +TotalSize.Column=Gesamtgröße +Available.Free.Space.Column=Verfügbarer freier Platz +DriveFormat.Column=Laufwerksformat +ContainsWindows.Column=ContainsWindows? +Windows.Column=Windows-Version +Refresh.Button=Aktualisieren +Ok.Button=OK +Cancel.Button=Abbrechen + +[OneDriveExclusion] +Exclude.User.Label=Benutzer-OneDrive-Ordner ausschließen +Tool.Help.Exclude.Message=Dieses Tool hilft Ihnen, Benutzer-OneDrive-Ordner in der Konfigurationsliste auszuschließen, an der Sie arbeiten. Geben Sie einfach den Pfad an, auf den Sie die Konfigurationslistendatei anwenden möchten, und klicken Sie auf Exclude.{crlf;}{crlf;}HINWEIS: Sobald Sie dieses Tool ausgeführt und Benutzer-OneDrive-Ordner ausgeschlossen haben, sollten Sie die Konfigurationsliste nicht für ein anderes Image als das hier angegebene verwenden. Wenn Sie die Konfigurationsliste für andere Image verwenden möchten, entfernen Sie die OneDrive-Ordner des Benutzers in der Konfigurationsliste und führen Sie dieses Tool erneut aus. +Path.Exclude.Label=Pfad für OneDrive-Ausschluss: +Re.Ready.Label=Wenn bereit, „Ausschließen“ anklicken. +Browse.Button=Durchsuche +Exclude.Button=Ausschluß +Cancel.Button=Abbrechen +UserFolderPath.Description=Wählen Sie einen Pfad, der Benutzerordner enthält: + +[OneDriveExclusion.Folders] +Excluding.User.Label=Ausgenommen Benutzer-OneDrive-Ordner + +[OneDriveExclusion.Valid] +User.Folders.Label=User OneDrive-Ordner wurden ausgeschlossen und werden der Konfigurationsliste hinzugefügt. + +[Options] +Title.Label=Optionen +Program.Label=Programm +Personalization.Label=Personalisierung +Logs.Label=Logs +ImageOperations.Label=Imageoperationen +ScratchDirectory.Label=Scratch-Verzeichnis +ProgramOutput.Label=Programmausgabe +BgProcesses.Label=Hintergrundprozesse +FileAssociations.Label=Dateizuordnungen +StartupOptions.Label=Startoptionen +ShutdownOptions.Label=Shutdown-Optionen +Dismexecutable.Path.Label=Ausführbarer DISM-Pfad: +Version.Label=Version: +SaveSettings.Label=Einstellungen speichern unter: +ColorMode.Label=Farbmodus: +Language.Label=Sprache: +Settings.Log.Required.Label=Bitte geben Sie die Einstellungen für das Protokollfenster an: +Log.Window.Font.Label=Schriftart des Protokollfensters: +Preview.Label=Vorschau: +Operation.Log.File.Label=Operationsprotokolldatei: +Image.Ops.Message=Wenn Sie Imageoperationen in der Kommandoszeile ausführen, geben Sie das Argument {quot;}/LogPath{quot;} an, um das Imageoperationsprotokoll in der Zielprotokolldatei zu speichern. +Log.File.Level.Label=Log-Dateiebene: +QuietOperations.Message=Wenn das Programm Vorgänge leise ausführt, verbirgt es Informationen und Fortschrittsausgaben. Fehlermeldungen werden weiterhin angezeigt.{crlf;}Diese Option wird nicht verwendet, wenn Informationen beispielsweise zu Paketen oder Funktionen abgerufen werden.{crlf;}Außerdem kann es bei der Imagebearbeitung zu einem automatischen Neustart Ihres Computers kommen. +Checked.Computer.Message=Wenn diese Option aktiviert ist, wird Ihr Computer nicht automatisch neu gestartet; auch wenn Vorgänge leise ausgeführt werden +Scratch.Dir.Required.Label=Bitte geben Sie das Scratch-Verzeichnis an, das für DISM-Vorgänge verwendet werden soll: +ScratchDirectory.Input.Label=Scratch-Verzeichnis: +Space.Left.Selected.Label=Leerzeichen links im ausgewählten Scratch-Verzeichnis: +LogView.Label=Protokollansicht: +ExampleReport.Label=ExampleReport: +Reports.Allow.Shown.Label=Einige Berichte erlauben nicht die Anzeige als Tabelle. +Notify.Label=Wann sollte das Programm Sie über gestartete Hintergrundprozesse informieren? +Uses.Bg.Procs.Message=Das Programm verwendet Hintergrundprozesse, um vollständige Imageinformationen zu sammeln, wie Änderungsdaten, installierte Pakete, vorhandene Funktionen und mehr +Manage.File.Assoc.Label=Dateizuordnungen für DISMTools-Komponenten verwalten: +Behavior.OnStartup.Label=Setzen Sie Optionen ein, die Sie beim Start des Programms ausführen möchten: +Scratch.Dir.Message=Das Programm verwendet das vom Projekt bereitgestellte Scratch-Verzeichnis, wenn eines geladen wird. Wenn Sie sich im Online- oder Offline-Installationsverwaltungsmodus befinden, verwendet das Programm sein Scratch-Verzeichnis +Secondary.Progress.Label=Stil des sekundären Fortschrittsfelds: +Settings.Aren.Label=Diese Einstellungen gelten nicht für nicht tragbare Installationen +Font.Readable.Log.Message=Diese Schriftart ist in Protokollfenstern möglicherweise nicht lesbar. Obwohl Sie es weiterhin verwenden können, empfehlen wir Monospace-Schriftarten für eine bessere Lesbarkeit. +SettingsConsider.Label=Wählen Sie die Einstellungen, die das Programm beim Speichern von Imageinformationen berücksichtigen soll: +Browse.Button=Durchsuche +View.DISM.Button=DISM-Komponentenversionen anzeigen +Set.File.Assoc.Button=Dateizuordnungen festlegen +AdvancedSettings.Button=Erweiterte Einstellungen +Cancel.Button=Abbrechen +Ok.Button=OK +ResetPreferences.Label=Einstellungen zurücksetzen +Quietly.Image.Ops.CheckBox=Imageoperationen leise ausführen +Skip.System.Restart.CheckBox=Systemneustart überspringen +Scratch.Dir.CheckBox=Verwenden Sie ein Scratch-Verzeichnis +Show.Command.Output.CheckBox=Kommandosausgabe auf Englisch anzeigen +Notify.Me.CheckBox=Benachrichtigen Sie mich, wenn Hintergrundprozesse gestartet wurden +Show.Log.View.CheckBox=Protokollansicht standardmäßig im Fortschrittsfenster anzeigen +Uppercase.Menus.CheckBox=Großbuchstabenmenüs verwenden +Set.Custom.File.CheckBox=Setzen Sie benutzerdefinierte Dateisymbole für DISMTools-Projekte +Remount.Mounted.CheckBox=Gemountetes Image erneut mounten, wenn eine Wartungssitzung neu geladen werden muss +CheckUpdates.CheckBox=Nach Updates suchen +Always.Save.CheckBox=Speichern Sie immer vollständige Informationen für die folgenden Elemente: +Installed.Packages.CheckBox=Installierte Pakete +Features.CheckBox=Funktionen +Installed.AppX.CheckBox=Installierte AppX-Pakete +Capabilities.CheckBox=Fähigkeiten +InstalledDrivers.CheckBox=Installierte Treiber +Automatically.Clean.CheckBox=Bereinigt automatisch Mount-Punkte (startet einen separaten Prozess) +Dismexecutable.Title=Geben Sie die zu verwendende ausführbare DISM-Datei an +LogCustomization.Label=Protokollanpassung +Behavior.OnClose.Label=Setzen Sie Optionen, die Sie ausführen möchten, wenn das Programm geschlossen wird: +Saving.Image.Item=Imageinformationen speichern +Enable.Disable.Message=Das Programm aktiviert oder deaktiviert bestimmte Funktionen, je nachdem, was die DISM-Version unterstützt. Wie wird es sich auf meine Nutzung dieses Programms auswirken und welche Funktionen werden entsprechend deaktiviert? +Going.Affect.My=Wie wird es sich auf meine Nutzung dieses Programms auswirken und welche Funktionen werden entsprechend deaktiviert? +Learn.Background.Link=Erfahren Sie mehr über Hintergrundprozesse +Location.Log.File.Title=Geben Sie den Speicherort der Protokolldatei an +Modern.RadioButton=Modern +Classic.RadioButton=Klassik +Dyna.Log.Logging.Message=DynaLog Logging bietet eine Methode zum Speichern von Diagnoseprotokollen, mit denen Sie Programmprobleme beheben können, falls Sie darauf stoßen. Sie können den Logger mit dem unten stehenden Schalter deaktivieren, dies wird jedoch nicht empfohlen.{crlf;}{crlf;} +Disable.Logging.Only.Message=Deaktivieren Sie die Protokollierung nur, wenn sie einen Leistungsaufwand auf Ihrem Computer verursacht. Durch Klicken auf den Schalter wird diese Einstellung automatisch angewendet. +Default.Op.Logs.Message=Standardmäßig werden Betriebsprotokolle im Falle eines Betriebsfehlers mit Notepad geöffnet. Wenn Sie sie jedoch mit einem anderen Programm öffnen möchten, geben Sie dies unten an: +Dyna.Log.Logging.Label=DynaLog-Protokollierungssteuerung +Editor.Open.Log.Label=Editor zum Öffnen von Protokolldateien mit: +SystemEditor.Label=Systemeditor +Editor.Title=Geben Sie den zu verwendenden Editor an +Show.Me.Logs.Link=Zeigen Sie mir, wo diese Protokolle gespeichert sind +Disable.Dyna.Log.CheckBox=DynaLog-Protokoll deaktivieren +SettingsFile.Item=Einstellungsdatei +Registry.Item=Registry +System.Setting.Item=Systemeinstellung verwenden +LightMode.Item=Lichtmodus +DarkMode.Item=Dunkler Modus +List.Item=Liste +Table.Item=Tabelle +Every.Time.Project.Item=Jedes Mal, wenn ein Projekt erfolgreich geladen wurde +Freqs1.Item=Einmal +Image.Version.Message=Imageversion: 10.0.19045.2075{crlf;}{crlf;}Funktionsliste für Paket: Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Funktionsname: TFTP{crlf;}Status: Deaktiviert{crlf;}{crlf;}Funktionsname: LegacyComponents{crlf;}Status: Aktiviert{crlf;}{crlf;}Funktionsname: DirectPlay{crlf;}Status: Aktiviert{crlf;}{crlf;}Feature-Name: SimpleTCP{crlf;}Status: Deaktiviert{crlf;}{crlf;}Feature-Name: Windows-Identity-Foundation{crlf;}Status: Deaktiviert{crlf;}{crlf;}Feature-Name: NetFx3{crlf;}Status: Aktiviert +LogPreview.Message=Imageversion: 10.0.19045.2075{crlf;}{crlf;}Funktionsliste für Paket: Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}{crlf;}------------------------------------------ | --------{crlf;}Feature Name | State{crlf;}----------------------------------------- | --------{crlf;}TFTP | Deaktiviert{crlf;}LegacyComponents | Aktiviert{crlf;}DirectPlay | Aktiviert{crlf;}SimpleTCP | Deaktiviert{crlf;}Windows-Identity-Foundation | Deaktiviert{crlf;}NetFx3 | Aktiviert +Selected.Search.Message=Die ausgewählte Suchmaschine, {1}{2}{1}, überschreitet die aktuelle KI-Toleranzeinstellung, {1}{3}{1}. Wenn Sie mit dieser Suchmaschine fortfahren, erhöht sich die KI-Toleranz nach dem Anwenden der Einstellungen.{0}{0}Wenn Sie sich entscheiden, mit dieser Suchmaschine nicht fortzufahren, verwendet DISMTools die erste Suchmaschine, die innerhalb der Toleranzgrenzen bleibt.{0}{0}Möchten Sie mit dieser Suchmaschine fortfahren? +Aitolerance.Exceeded.Title=AI-Toleranz überschritten +Auto.Create.Logs.CheckBox=Erstellt automatisch Protokolle für jeden durchgeführten Vorgang +Project.Scratch.RadioButton=Verwenden Sie das Scratch-Verzeichnis des Projekts oder Programms +Custom.Scratch.RadioButton=Verwenden Sie das angegebene Scratch-Verzeichnis +ScratchDir.Description=Geben Sie das Scratch-Verzeichnis an, das das Programm verwenden soll: + +[Options.Actions] +DISM.Components.Message=Das DISM-Komponentenverzeichnis konnte nicht gefunden werden. Wenn Sie alle Komponenten im selben Ordner der ausführbaren DISM-Datei haben, erstellen Sie bitte einen Ordner {quot;}dism{quot;} und versuchen Sie es erneut. + +[Options.AutoReloadService] +DISM.Tools.Automatic.Label=DISMTools Automatischer Imageneuladedienst +AutoReload.Description=Dieser Dienst lädt die Wartungssitzungen aller auf diesem Computer gemounteten Image automatisch neu. Sie können diesen Dienst gerne deaktivieren, wenn Sie ihn nicht benötigen. +ServiceInstalled.Label=Der Dienst konnte nicht installiert werden. + +[Options.AIRServiceInfo] +Yes.Button=Ja +No.Button=Nein + +[Options.GetRootSpace] +Scratch.Dir.Required.Label=Bitte geben Sie ein Scratch-Verzeichnis an. +EnoughSpace.Label=Sie haben genügend Speicherplatz im ausgewählten Scratch-Verzeichnis +GB.Item={0} GB +Enough.Message=Sie haben nicht genügend Speicherplatz im ausgewählten Scratch-Verzeichnis, um Imageoperationen durchzuführen. Versuchen Sie, etwas Platz vom Laufwerk freizugeben +EnoughSpace.SomeOps.Item=Für einige Vorgänge haben Sie möglicherweise nicht genügend Speicherplatz im ausgewählten Scratch-Verzeichnis. +EnoughSpace.Directory.Item=Sie haben genügend Speicherplatz im ausgewählten Scratch-Verzeichnis +Free.Unavailable.Item=Könnte keinen verfügbaren freien Speicherplatz abrufen. Fahren Sie auf eigene Gefahr fort +Have.Enough.Item=Sie haben genügend Speicherplatz im ausgewählten Scratch-Verzeichnis + +[Options.LogLevel] +Level1.Label=Fehler (Log-Level1) +Errors.Description.Label=Die Protokolldatei sollte Fehler erst nach der Durchführung einer Imageoperation anzeigen. +Level2.Item=Fehler und Warnungen (Log-Level 2) +Level2.Description.Item=Die Protokolldatei sollte nach der Durchführung einer Imageoperation Fehler und Warnungen anzeigen. +Level2Messages.Item=Fehler, Warnungen und Informationsmeldungen (Log Level 3) +Level3.Description.Message=Die Protokolldatei sollte nach der Durchführung einer Imageoperation Fehler, Warnungen und Informationsmeldungen anzeigen. +Level2Debug.Item=Fehler, Warnungen, Informationen und Debug-Meldungen (Protokollebene 4) +Level4.Description.Message=Die Protokolldatei sollte nach der Durchführung einer Imageoperation Fehler, Warnungen, Informationen und Debug-Nachrichten anzeigen. + +[Options.QuickHelp] +DISM.Tools.Enable.Message=DISMTools aktiviert oder deaktiviert bestimmte Funktionen, wenn sie nicht mit der angegebenen ausführbaren DISM-Datei, dem aktuellen Windows-Image oder beiden kompatibel sind.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Wenn DISMTools beispielsweise ein Windows 7-Image, eine Windows 7-Version von DISM oder beides erkennt, Dadurch werden die Wartung von AppX-Paketen und -Funktionen deaktiviert, da diese nicht mit dieser Plattform und diesen Tools kompatibel sind. {lbrace;}0{rbrace;}{lbrace;}0{rbrace;}DISMTools kann auch Funktionen basierend auf anderen Imageparametern, wie beispielsweise der Edition, deaktivieren. Dies passiert normalerweise bei Windows PE-Imagen. +AppX.Package.Display.Message=AppX-Paketanzeigenamen sind der Teil der Paketfamiliennamen, der keine paketspezifischen Details wie Architektur, Version oder Publisher-Hash enthält.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}AppX-Paket {lbrace;}1{rbrace;}freundliche Anzeigenamen{lbrace;}1{rbrace;} sind die Namen, die Sie im Startmenü sehen. Sie werden aus Anwendungsidentitätsinformationen im Manifest oder aus eingebetteten Zeichenfolgen in resources.pri gelesen.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Wenn DISMTools den benutzerfreundlichen Anzeigenamen nicht abrufen kann, wird der Anwendungsanzeigename angezeigt. +Configure.Search.Message=Wenn Sie Suchmaschineneinstellungen konfigurieren, können Sie auswählen, wie viel Toleranz DISMTools für künstliche Intelligenz, KI und Funktionen in einer Suchmaschine haben soll.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Schalten Sie so viele KI-Funktionen wie möglich aus{lbrace;}1{rbrace;} ermöglicht Ihnen die Auswahl aus Suchmaschinen, in denen KI-Funktionen deaktiviert oder standardmäßig nicht implementiert sind.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Lassen Sie mich die KI-Funktionen in meiner Suchmaschine steuern{lbrace;}1{rbrace;} fügt Suchmaschinen hinzu, in denen KI-Funktionen standardmäßig aktiviert sind, die aber über URL-Parameter oder Engine-Einstellungen gesteuert werden können.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Schalten Sie so viele KI-Funktionen wie möglich ein{lbrace;}1{rbrace;} ermöglicht Ihnen die Auswahl aus allen verfügbaren Suchmaschinen, einschließlich KI-basierter Suchmaschinen oder Suchmaschinen, die dedizierte KI-Modi bewerben.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Normalerweise Die zweite Option ist die ausgewogenste Wahl. Für ein datenschutzorientierteres Erlebnis schalten Sie diese Funktionen aus. +Bg.Procs.Allow.Message=Hintergrundprozesse ermöglichen es DISMTools, Informationen über das Windows-Image zu sammeln, mit dem Sie arbeiten, und die meisten Aufgaben zu aktivieren. Beispiele hierfür sind Betriebssystempakete und -funktionen in einem Windows-Image.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Diese Prozesse werden nicht nur beim Abrufen von Imagedateiinformationen verwendet, sondern auch bei der Verwaltung von Online- oder Offline-Installationen. + +[OrphanedMount] +Image.Servicing.Label=Dieses Image muss für eine Wartungssitzung neu geladen werden +Project.Has.Orphans.Message=Das geladene Projekt enthält ein verwaistes Image (ein Image, das neu eingebunden werden muss){crlf;}Das Image wird neu eingebunden, wenn Sie auf {quot;}OK{quot;} klicken. Dies sollte Ihre Änderungen am Image nicht beeinträchtigen und auch nicht lange dauern.{crlf;}{crlf;}HINWEIS: Wenn Sie auf {quot;}Cancel{quot;} klicken, wird das Projekt entladen +Ok.Button=OK +Cancel.Button=Abbrechen + +[PECustomizer.Tooltips] +DefaultPolicies.Message=Default-Richtlinien können Sie die hier angegebenen Einstellungen dauerhaft machen.{crlf;}Dies umfasst auch alle HintergrundImage, die Sie hier angeben. + +[PEHelper.Main] +WhatWant.Label=Was möchten Sie tun? +StartServer.Label=Starten Sie einen PXE-Hilfsserver für die Netzwerkinstallation +Install.Operating.Link=Installieren Sie ein Betriebssystem +Restart.Install.Media.Link=Neustart auf Installationsmedien +StartServer.Network.Link=Starten Sie einen PXE-Helferserver für die Netzwerkinstallation +Prepare.System.Image.Link=System für die Imagefassung vorbereiten +Back.Button=Zurück +Explore.Contents.Disc.Link=Inhalte dieser Disc erkunden +StartServer.Fog.Link=Start PXE Helper Server für FOG +StartServer.Wds.Link=Start PXE Helper Server für Windows-Bereitstellungsdienste +Copy.Boot.Image.Link=Boot-Image auf WDS-Server kopieren +Exit.Button=Ende + +[PEHelper.Restart] +Warning.Message=Dadurch wird Ihr Computer neu gestartet. Stellen Sie sicher, dass Sie Ihren Computer so konfiguriert haben, dass er über Installationsmedien startet. Willst du neu starten? + +[PEHelper.Process] +ExitCode.Message=Prozess mit Code 0x{0} beendet:{crlf;}{crlf;}{1} + +[PEHelper.PXE] +ChangePort.Tooltip=Halten Sie SHIFT gedrückt, um den von diesem PXE Helper Server verwendeten Port zu ändern + +[ISOFiles.PECustomizer] +PoliciesSaved.Message=Policies konnten nicht gespeichert werden. +Wallpaper.Exist.Message=Das angegebene HintergrundImage existiert nicht. +Wallpaper.Supported.Message=Das angegebene Wallpaper wird nicht unterstützt. Es werden nur JPG-Dateien unterstützt. +WallpaperOverride.Message=Wenn Sie mit diesem HintergrundImage fortfahren, überschreiben Sie einen Hintergrund, den Sie möglicherweise bereits in Ihrem Benutzerdatenordner gespeichert haben. Dieser Hintergrund wird beim nächsten Start von DISMTools wiederverwendet. + +[Panels.ImageOps.WimToEsd] +Files.Filter=Dateien|*. + +[Panels.ImageOps.ExportImage] +Esdfiles.Filter=ESD-Dateien|*.esd + +[Panels.ImageOps.MountImage] +WIM.Files.Filter=WIM-Dateien|*.wim + +[Panels.Packages.Add] +CurrentLimit.Message=Derzeit können Sie aufgrund von Programmbeschränkungen 65535 Pakete oder weniger auswählen. +CurrentLimit.Detail=Aktuelle Programmbeschränkung + +[Panels.Packages.Remove] +CurrentLimit.Message=Derzeit können Sie aufgrund von Programmbeschränkungen 65535 Pakete oder weniger auswählen. +CurrentLimit.Detail=Aktuelle Programmbeschränkung +CurrentLimit.SecondMessage=Derzeit können Sie aufgrund von Programmbeschränkungen 65535 Pakete oder weniger auswählen. +CurrentLimit.SecondDetail=Aktuelle Programmbeschränkung + +[Panels.Unattend.Scripts] +BatchScripts.Filter=Batch-Skripte|*.bat;*.cmd +Power.Shell.Filter=PowerShell-Skripte|*.ps1 +AllFiles.Filter=Alle Dateien|*.* +AllFiles.SecondFilter=Alle Dateien|*.* + +[ConfigLists.AddEntry] +Start.Backslash.Message=Der Eintrag kann nicht mit einem Backslash beginnen, wenn er Platzhalterzeichen enthält + +[Options.Messages] +Dismexecutable.Path.Message=Der ausführbare DISM-Pfad wurde nicht angegeben. Bitte geben Sie eines an und versuchen Sie es erneut +DISM.Executable.Message=Die ausführbare DISM-Datei existiert nicht im Dateisystem. Bitte überprüfen Sie, ob die Datei noch existiert, und versuchen Sie es erneut +Log.File.Label=Die Protokolldatei wurde nicht angegeben. Bitte geben Sie eines an und versuchen Sie es erneut +Tried.Create.Message=Das Programm hat versucht, die angegebene Protokolldatei zu erstellen, ist jedoch fehlgeschlagen. Bitte versuchen Sie es erneut +ScratchDir.Message=Das Scratch-Verzeichnis wurde nicht angegeben. Bitte geben Sie eines an und versuchen Sie es erneut +ServiceEnabled.Label=Der Dienst konnte nicht aktiviert werden. +ServiceDisabled.Label=Der Dienst konnte nicht deaktiviert werden. +ServiceRemoved.Label=Der Dienst konnte nicht entfernt werden. +Tried.Scratch.Message=Das Programm hat versucht, das angegebene Scratch-Verzeichnis zu erstellen, ist jedoch fehlgeschlagen. Bitte versuchen Sie es erneut + +[ISOFiles.Creator.Messages] +Windows.Message=Das Windows ADK wurde auf Ihrem System nicht gefunden. Möchten Sie, dass DISMTools das neueste für Sie herunterlädt und installiert? Beachten Sie, dass Sie etwa 4 GB auf Ihrem System benötigen. + +[ISOFiles.WDSImageGroup] +Image.Label=Die angegebene WDS-Imagegruppe konnte nicht erstellt werden. +Get.Image.Groups.Label=Imagegruppen konnten nicht abgerufen werden. + +[PECustomizer.Messages] +Default.Policies.Saved.Label=Standardrichtlinien wurden gespeichert. +Policies.SaveFailed.Message=Standardrichtlinien konnten nicht gespeichert werden. + +[ISOFiles.PXEServerPort] +Already.Label=Der angegebene Port {0} wird bereits verwendet. +Port.Label=Der angegebene Port {0} wird nicht verwendet. + +[ImageOps.Append.Messages] +Grab.Last.Image.Label=Der letzte Imagename konnte nicht abgerufen werden. Fehlerinformationen:{crlf;}{crlf;}{0} + +[ImageOps.Capture.Messages] +Provide.Source.Dir.Label=Bitte geben Sie ein Quellverzeichnis oder Laufwerk zum Erfassen an. +SourcePrepWarning.Message=Das Quellverzeichnis oder Laufwerk, das Sie erfassen, wurde möglicherweise nicht zuvor von Sysprep vorbereitet. Es wird empfohlen, es auf dieser Installation auszuführen, bevor Sie mit der Erfassungsaufgabe fortfahren.{0}{0}Willst du weitermachen? + +[ImageOps.Export.Messages] +Get.Index.Image.Label=Könnte keine Indexinformationen für diese Imagedatei erhalten + +[ImageOps.Mount.Messages] +Copied.Image.Message=Das kopierte InstallationsImage wird automatisch für Sie ausgewählt, wenn es gefunden wird +Extraction.Succeeded.Label=Extraktion erfolgreich +Windows.Message=Die Windows-Images in der angegebenen ISO-Datei wurden nicht auf Ihre lokale Festplatte kopiert. Kopieren Sie alle WIM- oder ESD-Dateien aus dem Quellenordner Ihrer ISO-Datei. +Extraction.Succeeded.Message=Extraktion erfolgreich + +[ImageOps.Optimize.Messages] +Mount.Dir.Required.Message=Bitte geben Sie das Mount-Verzeichnis des Images an, das Sie optimieren möchten, und versuchen Sie es erneut. Stellen Sie außerdem sicher, dass dieser Pfad existiert. + +[Package.Parent] +Installed.Package.Label=Installierte Paketnamen +Installed.Package.Names=Namen der installierten Pakete im gemounteten Image: +Name.ParentPackage.Label=Name des übergeordneten Pakets: +Get.Package.Names.Label=Paketnamen abrufen. Bitte warten +Ok.Button=OK +Cancel.Button=Abbrechen + +[PkgNameLookup.Validation] +Package.Required.Message=Bitte geben Sie einen Paketnamen an und versuchen Sie es erneut. +Installed.Package.Title=Namen installierter Pakete +Package.Seem.Message=Der angegebene Paketname scheint nicht im Image zu sein. Bitte geben Sie einen verfügbaren Eintrag an und versuchen Sie es erneut + +[Wait] +NotAvailable.Label=Nicht verfügbar +ProjectValue.Label=Nicht verfügbar +Wait.Label=Bitte warten + +[MountedImagePicker] +Ok.Button=OK +Cancel.Button=Abbrechen + +[MountedImagePicker.Pick] +Title.Label=Image auswählen +Image.List.Label=Wählen Sie ein Image aus der folgenden Liste aus: +ImageFile.Column=Imagedatei +Index.Column=Index +MountDirectory.Column=Verzeichnis mounten + +[PrgAbout] +AboutProgram.Label=Über dieses Programm +DISM.Tools.Version.Label=DISMTools - Version {0}{1} +DISM.Tools.Lets.Label=DISMTools können Sie Windows-Images dank einer GUI problemlos bereitstellen, verwalten und warten +ResourcesUsed.Label=Diese Ressourcen und Komponenten wurden bei der Erstellung dieses Programms verwendet: +Resources.Label=Ressourcen +Fluency.Label=Fluency +Sqlserver.Icon.Color.Label=SQL Server-Symbol (Farbe) +Utilities.Label=Dienstprogramme +Zip.Label=7-Zip +Help.Documentation.Label=Hilfedokumentation +Command.Help.Source.Label=Kommando Hilfequelle +Scintilla.Netnu.Get.Label=Scintilla.NET (NuGet-Paket) +Pre.Label=pre +BuiltMsbuild.Label=Built auf {0} von msbuild +Managed.Dismnu.Get.Label=ManagedDism (NuGet-Paket) +BrandingAssets.Label=Branding-Assets +Windows.Label=Windows Home Server 2011 +Credits.Link=DANK +Licenses.Link=LIZENZEN +Whatsnew.Link=WAS IST NEU +Icons.Link=Symbole8 +VisitWebsite.Link=Website besuchen +Microsoft.Link=Microsoft +Ok.Button=OK +CheckUpdates.Label=Nach Updates suchen + +[PrgAbout.Resources] +DISM.Tools.Free.Message=- DISMTools{crlf;}{crlf;}Dieses Programm ist freie Software; Sie können es unter den Bedingungen der GNU General Public License, wie sie von der Free Software Foundation veröffentlicht wurde, weiterverbreiten und/oder ändern; entweder Version 3 der Lizenz oder nach Ihrer Wahl eine spätere Version.{crlf;}{crlf;}Dieses Programm wird in der Hoffnung verbreitet, dass es nützlich sein wird, jedoch OHNE JEGLICHE GARANTIE; ohne auch nur die stillschweigende Garantie der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Einzelheiten finden Sie in der GNU General Public License. {crlf;}{crlf;}Sie sollten zusammen mit diesem Programm eine Kopie der GNU General Public License erhalten haben. Wenn nicht, siehe https://www.gnu.org/licenses/.{crlf;}{crlf;}- Scintilla.NET{crlf;}{crlf;}Die MIT-Lizenz (MIT){crlf;}{crlf;}Copyright (c) 2017, Jacob Slusser, https://github.com/jacobslusser,{crlf;}Copyright (c) 2020-2022 VPKSoft{crlf;}Copyright (c) 2023 desjarlais{crlf;}{crlf;}Die Genehmigung wird hiermit kostenlos erteilt, an jede Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die {quot;}Software{quot;}) erhält, mit der Software ohne Einschränkung zu handeln, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Kopie, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:{crlf;}{crlf;}Der obige Copyright-Hinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.{crlf;}{crlf;}DIE SOFTWARE WIRD {quot;}WIE BESEHEN{quot;} BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, SEI ES IM RAHMEN EINES VERTRAGS-, UNERLAUBTEN ODER SONSTIGEN VERFAHRENS, DIE SICH AUS, AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER SONSTIGEN BEHANDLUNG DER SOFTWARE ERGEBEN.{crlf;}{crlf;}- ManagedDism{crlf;}{crlf;}Die MIT-Lizenz (MIT){crlf;}{crlf;}Copyright (c) 2016{crlf;}{crlf;}Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die {quot;}Software{quot;}) erhält, kostenlos die Erlaubnis erteilt, mit der Software ohne Einschränkung zu handeln, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Kopie, Änderung, Zusammenführung, Veröffentlichung, Verbreitung, Unterlizenzierung und/oder Kopien der Software zu verkaufen und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:{crlf;}{crlf;}Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.{crlf;}{crlf;}DIE SOFTWARE WIRD BEREITGESTELLT {quot;}AS IS{quot;}, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, SEI ES AUS VERTRAG, UNERLAUBTER HANDLUNG ODER AUF ANDERE WEISE, DIE SICH AUS FOLGENDEM ERGEBEN: AUSSERHALB ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN GESCHÄFTEN IN DER SOFTWARE.{crlf;}{crlf;}- DarkUI{crlf;}{crlf;}MIT-Lizenz{crlf;}{crlf;}Copyright (c) 2017 Robin{crlf;}{crlf;}Die Genehmigung wird hiermit kostenlos erteilt, an jede Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die {quot;}Software{quot;}) erhält, mit der Software ohne Einschränkung zu handeln, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Kopie, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:{crlf;}{crlf;}Der obige Copyright-Hinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.{crlf;}{crlf;}DIE SOFTWARE WIRD {quot;}WIE BESEHEN{quot;} BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, SEI ES AUS VERTRAG, UNERLAUBTER HANDLUNG ODER AUF ANDERE WEISE, DIE SICH AUS, AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN GESCHÄFTEN IN DER SOFTWARE ERGEBEN.{crlf;}{crlf;}- 7-Zip{crlf;}{crlf;} 7-Zip{crlf;} ~~~~~{crlf;} Lizenz zur Nutzung und Verbreitung{crlf;} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{crlf;}{crlf;} 7-Zip Copyright (C) 1999-2025 Igor Pavlov.{crlf;}{crlf;} Die Lizenzen für Dateien sind:{crlf;}{crlf;} – 7z.dll:{crlf;} – Die {quot;}GNU LGPL{quot;} als Hauptlizenz für den Großteil des Codes{crlf;} – Die {quot;}GNU LGPL{quot;} mit {quot;}unRAR-Lizenzbeschränkung{quot;} für einen Teil des Codes{crlf;} – Die {quot;}BSD 3-Klausel-Lizenz{quot;} für einen Code{crlf;} – Die {quot;}BSD 2-Klausel-Lizenz{quot;} für einen Code{crlf;} – Alle anderen Dateien: die {quot;}GNU LGPL{quot;}.{crlf;}{crlf;} Umverteilungen in binärer Form müssen zugehörige Lizenzinformationen aus dieser Datei reproduzieren.{crlf;}{crlf;} Hinweis:{crlf;} Sie können 7-Zip auf jedem Computer verwenden, einschließlich eines Computers in einer kommerziellen{crlf;}-Organisation. Sie müssen sich nicht registrieren oder für 7-Zip bezahlen.{crlf;}{crlf;}{crlf;}GNU LGPL-Informationen{crlf;}--------------------{crlf;}{crlf;} Diese Bibliothek ist kostenlose Software; Sie können sie weiterverbreiten und/oder{crlf;} ändern Sie es unter den Bedingungen der GNU Lesser General Public{crlf;}-Lizenz, wie sie von der Free Software Foundation veröffentlicht wurde; entweder{crlf;} Version 2.1 der Lizenz oder (nach Ihrer Wahl) eine spätere Version.{crlf;}{crlf;} Diese Bibliothek wird in der Hoffnung verteilt, dass sie nützlich sein wird,{crlf;}, jedoch OHNE JEGLICHE GARANTIE; ohne auch nur die stillschweigende Garantie von {crlf;} MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Einzelheiten finden Sie in der GNU{crlf;} Lesser General Public License.{crlf;}{crlf;} Sie können eine Kopie der GNU Lesser General Public License von{crlf;} http://www.gnu.org/{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 3-Klausel-Lizenz im 7-Postleitzahlencode{crlf;}erhalten----------------------------------{crlf;}{crlf;} Die {quot;}BSD 3-Klausel-Lizenz{quot;} wird für den folgenden Code in 7z.dll{crlf;} 1) LZFSE-Datendekomprimierung verwendet.{crlf;} Dieser Code wurde aus dem Code in der von Apple Inc. entwickelten {quot;}LZFSE-Komprimierungsbibliothek {quot;} abgeleitet, {crlf;} die auch die {quot;}BSD 3-Klausel-Lizenz {quot;} verwendet. {crlf;} 2) ZSTD-Datendekomprimierung. {crlf;} Dieser Code wurde unter Verwendung des ursprünglichen ZSTD-Decodercodes als Referenzcode entwickelt. {crlf;} Der ursprüngliche zstd-Decodercode wurde von Facebook Inc. entwickelt, {crlf;}, der auch die {quot;}BSD 3-Klausel-Lizenz {quot;} verwendet. {crlf;} {crlf;} Copyright (c) 2015–2016, Apple Inc. Alle Rechte vorbehalten. {crlf;} Copyright (c) Facebook, Inc. Alle Rechte vorbehalten. {crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text der {quot;}BSD 3-Klausel-Lizenz{quot;}{crlf;}-------------------------------{crlf;}{crlf;}Die Weiterverbreitung und Verwendung in Quell- und Binärform, mit oder ohne Änderung, {crlf;} ist zulässig, sofern die folgenden Bedingungen erfüllt sind: {crlf;}{crlf;}1. Bei der Weiterverteilung des Quellcodes müssen der obige Copyright-Hinweis, diese {crlf;} Liste der Bedingungen und der folgende Haftungsausschluss erhalten bleiben. {crlf;}{crlf;}2. Bei Weiterverteilungen in binärer Form müssen der obige Copyright-Hinweis {crlf;}, diese Liste der Bedingungen und der folgende Haftungsausschluss in der Dokumentation {crlf;} und/oder anderen mit der Verteilung bereitgestellten Materialien wiedergegeben werden. {crlf;}{crlf;}3. Weder der Name des Urheberrechtsinhabers noch die Namen seiner Mitwirkenden dürfen {crlf;} ohne {crlf;} ausdrückliche vorherige schriftliche Genehmigung zur Unterstützung oder Werbung für Produkte verwendet werden, die von dieser Software abgeleitet sind. {crlf;}{crlf;}DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITWIRKENDEN {quot;}AS IS{quot;} UND {crlf;}EINIGE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIEN BEREITGESTELLT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE IMPLIZITEN {crlf;}GARANTIEN DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK WERDEN {crlf;}VERWEIGERT. IN KEINEM FALL HAFTET DER URHEBERRECHTSINHABER ODER DIE MITWIRKENDEN FÜR {crlf;}DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, BEISPIELHAFTE ODER FOLGESCHÄDEN {crlf;} (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZWAREN ODER -DIENSTLEISTUNGEN; {crlf;}NUTZUNGS-, DATEN- ODER GEWINNVERLUST ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH IMMER VERURSACHT UND AUF {crlf;}JEDE HAFTUNGSTHEORIE, SEI ES IM VERTRAG, VERSCHULDENSUNABHÄNGIGE HAFTUNG, ODER UNERLAUBTE HANDLUNG{crlf;} (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE IN IRGENDEINER WEISE AUS DER VERWENDUNG DIESER{crlf;}SOFTWARE ENTSTEHT, AUCH WENN AUF DIE MÖGLICHKEIT EINES SOLCHEN SCHADENS HINGEWIESEN WIRD.{crlf;}{crlf;}--{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 2-Klausel-Lizenz im 7-Zip-Code{crlf;}---------------------------------{crlf;}{crlf;} Die {quot;}BSD 2-Klausel-Lizenz{quot;} wird für den XXH64-Code in 7-Zip verwendet.{crlf;}{crlf;} Der XXH64-Code in 7-Zip wurde vom ursprünglichen XXH64-Code abgeleitet, der von Yann Collet entwickelt wurde.{crlf;}{crlf;} Copyright (c) 2012-2021 Yann Collet.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text der {quot;}BSD 2-Klausel-Lizenz{quot;}{crlf;}-------------------------------{crlf;}{crlf;}Umverteilung und Verwendung in Quell- und Binärform, Mit oder ohne Änderung sind {crlf;} zulässig, sofern die folgenden Bedingungen erfüllt sind: {crlf;}{crlf;}1. Bei der Weiterverteilung des Quellcodes müssen der obige Copyright-Hinweis, diese {crlf;} Liste der Bedingungen und der folgende Haftungsausschluss erhalten bleiben. {crlf;}{crlf;}2. Bei Weiterverteilungen in binärer Form müssen der obige Copyright-Hinweis {crlf;}, diese Liste der Bedingungen und der folgende Haftungsausschluss in der Dokumentation {crlf;} und/oder anderen mit der Verteilung bereitgestellten Materialien wiedergegeben werden. {crlf;}{crlf;}DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITWIRKENDEN {quot;}AS IS{quot;} UND {crlf;}JEDE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE BEREITGESTELLT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF: DIE IMPLIZITEN {crlf;}GARANTIEN DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK WERDEN {crlf;}VERWEIGERT. IN KEINEM FALL HAFTET DER URHEBERRECHTSINHABER ODER DIE MITWIRKENDEN FÜR {crlf;}DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, BEISPIELHAFTE ODER FOLGESCHÄDEN {crlf;} (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZWAREN ODER -DIENSTLEISTUNGEN; {crlf;}NUTZUNGS-, DATEN- ODER GEWINNVERLUST ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH IMMER VERURSACHT UND AUF {crlf;}JEDE HAFTUNGSTHEORIE, SEI ES IM VERTRAG, VERSCHULDENSUNABHÄNGIGE HAFTUNG, ODER UNERLAUBTE HANDLUNG{crlf;} (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE IN IRGENDEINER WEISE AUS DER VERWENDUNG DIESER{crlf;}SOFTWARE ENTSTEHT, AUCH WENN AUF DIE MÖGLICHKEIT EINES SOLCHEN SCHADENS HINGEWIESEN WIRD.{crlf;}{crlf;}--{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}unRAR-Lizenzbeschränkung{crlf;}------------------------{crlf;}{crlf;}Die Dekomprimierungs-Engine für RAR-Archive wurde unter Verwendung des Quellcodes {crlf;} des Programms unRAR entwickelt.{crlf;}Alle Urheberrechte am ursprünglichen unRAR-Code liegen bei Alexander Roshal.{crlf;}{crlf;}Die Lizenz für den ursprünglichen unRAR-Code unterliegt der folgenden Einschränkung: {crlf;}{crlf;} Die unRAR-Quellen können nicht zum Neuerstellen des proprietären RAR-Komprimierungsalgorithmus {crlf;} verwendet werden. Die Verteilung modifizierter unRAR-Quellen in separater Form {crlf;} oder als Teil anderer Software ist zulässig, sofern in der Dokumentation und den Quellkommentaren klar {crlf;} angegeben ist, dass der Code {crlf;} nicht zur Entwicklung eines RAR (WinRAR)-kompatiblen Archivierers verwendet werden darf. {crlf;}{crlf;}--{crlf;}{crlf;}{crlf;}- UnpEax{crlf;}{crlf;}Diese Software verwendet eine modifizierte Version von UnpEax, die jetzt nur noch zum Extrahieren der AppX-Manifestdatei und der Store-Logo-Assets entwickelt und in . konvertiert wurde.NET Framework 4.8 und C# 5, um es mit Visual Studio 2012 und neuer kompatibel zu machen.{crlf;}{crlf;}Originalversion: (c) 2020. LioneL Christopher Chetty (https://github.com/dalion619/UnpEax){crlf;}{crlf;}MIT Lizenz{crlf;}{crlf;}Copyright (c) 2020 LioneL Christopher Chetty{crlf;}{crlf;}Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die {quot;}Software{quot;}) erhält, die Erlaubnis erteilt, kostenlos mit der Software zu handeln, ohne Einschränkung, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verbreitung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software und zur Erlaubnis von Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu tun: {crlf;}{crlf;}Der obige Copyright-Vermerk und dieser Genehmigungsvermerk sind in allen Kopien oder wesentlichen Teilen der Software enthalten. {crlf;}{crlf;}DIE SOFTWARE WIRD {quot;}WIE BESEHEN{quot;} BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIE DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, SEI ES AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE SICH AUS FOLGENDEM ERGEBEN: AUSSERHALB ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN GESCHÄFTEN IN DER SOFTWARE.{crlf;}{crlf;}- Unbeaufsichtigter Antwortdateigenerator{crlf;}{crlf;}Der Assistent zur Erstellung unbeaufsichtigter Antwortdateien basiert auf der Technologie der Antwortdateigenerator-Website von Christoph Schneegans, wobei einige Änderungen an einigen Dateien seiner Kernbibliothek vorgenommen wurden.{crlf;}{crlf;}MIT-Lizenz{crlf;}{crlf;}Copyright (c) 2024 Christoph Schneegans{crlf;}{crlf;}Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die {quot;}Software{quot;}) erhält, kostenlos die Erlaubnis erteilt, mit der Software ohne Einschränkung zu handeln, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Kopie, Änderung, Zusammenführung, Kopien der Software zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder zu verkaufen und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:{crlf;}{crlf;}Der obige Copyright-Hinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.{crlf;}{crlf;}DIE SOFTWARE WIRD BEREITGESTELLT {quot;}WIE ES IST{quot;}, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNGEN, SEI ES AUS VERTRAG, UNERLAUBTER HANDLUNG ODER AUF ANDERE WEISE, DIE SICH DARAUS ERGEBEN AUSSERHALB ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN GESCHÄFTEN IN DER SOFTWARE.{crlf;}{crlf;}- Markdig{crlf;}{crlf;}Copyright (c) 2018-2019, Alexandre Mutel{crlf;}Alle Rechte vorbehalten.{crlf;}{crlf;}Weiterverbreitung und Verwendung in Quell- und Binärform, mit oder ohne Änderung, sind zulässig, sofern die folgenden Bedingungen erfüllt sind: {crlf;}{crlf;}1. Bei der Weiterverteilung des Quellcodes müssen der obige Copyright-Hinweis, diese Liste der Bedingungen und der folgende Haftungsausschluss erhalten bleiben.{crlf;}{crlf;}2. Bei Weiterverteilungen in binärer Form müssen der obige Copyright-Vermerk, diese Liste der Bedingungen und der folgende Haftungsausschluss in der Dokumentation und/oder anderen Materialien wiedergegeben werden, die mit der Verteilung bereitgestellt werden.{crlf;}{crlf;}DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITWIRKENDEN {quot;}AS IS{quot;} UND ALLEN AUSDRÜCKLICHEN ODER STILLSCHWEIGENDEN GARANTIEN BEREITGESTELLT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF, DIE STILLSCHWEIGENDEN GARANTIEN DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK WERDEN ABGELEHNT. IN KEINEM FALL HAFTET DER URHEBERRECHTSINHABER ODER DIE MITWIRKENDEN FÜR DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN; VERLUST VON NUTZUNG, DATEN ODER GEWINNEN; ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH IMMER SIE VERURSACHT WERDEN UND AUF IRGENDEINE HAFTUNGSTHEORIE, SEI ES IM VERTRAG, VERSCHULDENSUNABHÄNGIGE HAFTUNG, ODER UNERLAUBTE HANDLUNGEN (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE IN IRGENDEINER WEISE AUS DER VERWENDUNG DIESER SOFTWARE ENTSTEHEN, AUCH WENN AUF DIE MÖGLICHKEIT EINES SOLCHEN SCHADENS HINGEWIESEN WIRD.{crlf;}{crlf;}- Kompilierungsskripte für den PE Helper{crlf;}{crlf;}Die Kompilierungs- und Vorprozessorskripte für den Preinstallation Environment (PE) Helper sind modifizierte Kopien solcher Skripte aus dem Windows Utility (https://github.com/ChrisTitusTech/winutil). Originallizenz: {crlf;}{crlf;}MIT Lizenz {crlf;}{crlf;} Copyright (c) 2022 CT Tech Group LLC {crlf;}{crlf;}Die Genehmigung wird hiermit kostenlos erteilt, an jede Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die {quot;}Software{quot;}) erhält, mit der Software ohne Einschränkung zu handeln, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Kopie, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:{crlf;}{crlf;}Der obige Copyright-Hinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.{crlf;}{crlf;}DIE SOFTWARE WIRD {quot;}WIE BESEHEN{quot;} BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, SEI ES IM RAHMEN EINES VERTRAGS-, UNERLAUBTEN ODER SONSTIGEN VERFAHRENS, DIE SICH AUS, AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER SONSTIGEN BEHANDLUNG DER SOFTWARE ERGEBEN. {crlf;}{crlf;}- Windows API Code Pack {crlf;}{crlf;}MIT-Lizenz {crlf;}{crlf;}Copyright (c) 2009 - 2010 Microsoft Corporation, dann Änderungen durch Jacob Slusser 2014, Peter William Wagner 2017 - 2024{crlf;}{crlf;}Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die {quot;}Software{quot;}) erhält, die Erlaubnis erteilt, ohne Einschränkung mit der Software zu handeln, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verbreitung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software und zur Erlaubnis von Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu tun: {crlf;}{crlf;}Der obige Copyright-Vermerk und dieser Genehmigungsvermerk sind in allen Kopien oder wesentlichen Teilen der Software enthalten. {crlf;}{crlf;}DIE SOFTWARE WIRD {quot;}WIE BESEHEN{quot;} BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIE DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, SEI ES AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE SICH AUS FOLGENDEM ERGEBEN: AUSSERHALB ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN HANDLUNGEN IN DER SOFTWARE.{crlf;}{crlf;}- INI File Parser{crlf;}{crlf;}Die MIT-Lizenz (MIT){crlf;}{crlf;}Copyright (c) 2008 Ricardo Amores Hernández{crlf;}{crlf;}Die Genehmigung wird hiermit kostenlos erteilt, an jede Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die {quot;}Software{quot;}) erhält, mit der Software ohne Einschränkung zu handeln, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Kopie, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:{crlf;}{crlf;}Der obige Copyright-Hinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.{crlf;}{crlf;}DIE SOFTWARE WIRD {quot;}WIE BESEHEN{quot;} BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GARANTIE, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GARANTIEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, SEI ES AUS VERTRAG, UNERLAUBTER HANDLUNG ODER AUF ANDERE WEISE, DIE SICH AUS, AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN GESCHÄFTEN IN DER SOFTWARE ERGEBEN.{crlf;}{crlf;}- Active Directory Object Picker{crlf;}{crlf;}Microsoft Public License (MS-PL){crlf;}{crlf;}Das ursprüngliche Projekt wurde ursprünglich 2004 von Armand du Plessis erstellt und wird jetzt von Tulpep erweitert und gepflegt.{crlf;}{crlf;}Diese Lizenz regelt die Verwendung der zugehörigen Software. Wenn Sie die Software nutzen, akzeptieren Sie diese Lizenz. Wenn Sie die Lizenz nicht akzeptieren, verwenden Sie die Software nicht.{crlf;}{crlf;}1. Definitionen{crlf;}Die Begriffe {quot;}reproduce,{quot;} {quot;}reproduction,{quot;} {quot;}derivative works,{quot;} und {quot;}distribution{quot;} haben hier dieselbe Bedeutung wie im US-amerikanischen Urheberrecht.{crlf;}Ein {quot;}contribution{quot;} ist die Originalsoftware oder alle Ergänzungen oder Änderungen an der Software.{crlf;}Ein {quot;}Mitwirkender{quot;} ist jede Person, die ihren Beitrag unter dieser Lizenz verteilt.{crlf;}{quot;}Lizenzierte Patente{quot;} sind Patentansprüche eines Mitwirkenden, die sich direkt auf seinen Beitrag beziehen.{crlf;}{crlf;}2. Gewährung von Rechten{crlf;}(A) Urheberrechtsgewährung – Vorbehaltlich der Bedingungen dieser Lizenz, einschließlich der Lizenzbedingungen und -beschränkungen in Abschnitt 3, gewährt Ihnen jeder Mitwirkende eine nicht exklusive, weltweite, gebührenfreie Urheberrechtslizenz, um seinen Beitrag zu reproduzieren, abgeleitete Werke seines Beitrags vorzubereiten und seinen Beitrag oder alle von Ihnen erstellten abgeleiteten Werke zu verbreiten.{crlf;}(B) Patenterteilung – Vorbehaltlich der Bedingungen dieser Lizenz, einschließlich der Lizenzbedingungen und -beschränkungen in Abschnitt 3, gewährt Ihnen jeder Mitwirkende im Rahmen seiner lizenzierten Patente eine nicht exklusive, weltweite, gebührenfreie Lizenz, um seinen Beitrag zur Software oder abgeleitete Werke des Beitrags zur Software zu leisten, leisten zu lassen, zu verwenden, zu verkaufen, zum Verkauf anzubieten, zu importieren und/oder anderweitig darüber zu verfügen.{crlf;}{crlf;}3. Bedingungen und Einschränkungen{crlf;}(A) Keine Markenlizenz – Diese Lizenz gewährt Ihnen keine Rechte zur Verwendung des Namens, Logos oder der Marken von Mitwirkenden.{crlf;}(B) Wenn Sie einen Patentanspruch gegen einen Mitwirkenden wegen Patenten geltend machen, von denen Sie behaupten, dass sie durch die Software verletzt werden, endet Ihre Patentlizenz von diesem Mitwirkenden an der Software automatisch.{crlf;}(C) Wenn Sie Teile der Software verbreiten, müssen Sie alle in der Software enthaltenen Urheberrechts-, Patent-, Marken- und Namensnennungshinweise aufbewahren.{crlf;}(D) Wenn Sie Teile der Software in Quellcodeform verbreiten, dürfen Sie dies nur unter dieser Lizenz tun, indem Sie Ihrer Verbreitung eine vollständige Kopie dieser Lizenz beifügen. Wenn Sie Teile der Software in kompilierter oder Objektcodeform verteilen, dürfen Sie dies nur unter einer Lizenz tun, die dieser Lizenz entspricht.{crlf;}(E) Die Software ist {quot;}as-is.{quot;} lizenziert. Sie tragen das Risiko, sie zu verwenden. Die Mitwirkenden geben keine ausdrücklichen Garantien, Gewährleistungen oder Bedingungen. Möglicherweise haben Sie nach Ihren örtlichen Gesetzen zusätzliche Verbraucherrechte, die durch diese Lizenz nicht geändert werden können. Soweit dies nach Ihren örtlichen Gesetzen zulässig ist, schließen die Mitwirkenden die stillschweigenden Garantien der Marktgängigkeit, der Eignung für einen bestimmten Zweck und der Nichtverletzung aus. +PreviewChanges.Message=Gesamtänderungen:{crlf;}{crlf;}-- Fehlerbehebungen in Vorschauversionen{crlf;}{crlf;}- Problem behoben, bei dem entfernte Funktionen an der falschen Stelle angezeigt wurden{crlf;}- Ein kleines UI-Problem behoben, bei dem der richtige Hauptbenutzername (UPN) nicht angezeigt wurde, wenn ein Benutzer im ADDS-Domänenbeitrittsassistenten ausgewählt wurde{crlf;}- Ein kleines UI-Problem wurde behoben, bei dem der NT-Anmeldepfad eines Domänenbenutzers beim ersten Starten des ADDS-Domänenbeitrittsassistenten nicht angezeigt wurde{crlf;}- Einige HiDPI-Probleme wurden behoben{crlf;}- Ein Problem wurde behoben, bei dem bei der Verwaltung der aktiven Installation die Revisionsnummer der Version manchmal nicht mit der tatsächlichen Revisionsnummer übereinstimmte{crlf;}- Ein Problem wurde behoben, bei dem Informationen zu einem Windows-Image nach dem Hinzufügen oder Entfernen von Paketen gelöscht wurden{crlf;}- Ein Problem wurde behoben, bei dem das Programm eine Ausnahme auslöste, wenn es das Protokollverzeichnis nicht erstellen konnte (#344, danke @Low351){crlf;}- Ein Problem wurde behoben, bei dem GraphoView keine Informationen zu einem ausgewählten Windows-Image anzeigte, wenn die WDS-Gruppe, zu der es gehört, nur 1 Image {crlf;} hat. Ein Problem wurde behoben, bei dem beim Ausführen von FFU captures{crlf;}keine Optionen für den CompressionType „Capture“ verwendet wurden- Ein Problem wurde behoben, bei dem das Programm eine Ausnahme auslöste, wenn mehrere Treiberexporte nach Klassennamen durchgeführt wurden{crlf;}- Eine Ausnahme wurde behoben (#350, danke @TackleBarry80){crlf;}- Extern entladene Registrierungs-Hives verursachen keine Fehler mehr beim Entladen aus dem Image Registry Control Panel{crlf;}- Nicht PowerShell-basierte Endpunkte werfen beim Aufruf von WDS Helper Server APIs keine CORS-Probleme mehr auf{crlf;}- Ein Problem wurde behoben, bei dem App Installer-Downloadfehler nicht im Vordergrund angezeigt wurden{crlf;}- Ein Problem wurde behoben, bei dem Tutorial-Videos nicht abspielbar waren{crlf;}- Die WDS Helper-Client-Nachricht zum Herunterladen unbeaufsichtigter Antwortdateien wird nicht mehr immer angezeigt{crlf;}- Ein Problem wurde behoben, bei dem das Programm beim Speichern der Windows PE-Konfiguration einer Offline-Windows PE-Installation eine Ausnahme auslöste{crlf;}- Ein Problem wurde behoben, bei dem die vollständige Datumszeichenfolge beim Zugriff auf Imageeigenschaften mit ausgeschalteten Windows-Datumsdarstellungen nicht korrekt angezeigt wurde{crlf;}- Beim Hinzufügen eines Boot-Images zum WDS-Server wird der Dienststart jetzt nur noch angefordert, wenn er nicht ausgeführt wird{crlf;}- Eine Ausnahme wurde behoben, die beim Hinzufügen bestimmter AppX-Pakete auftrat (#365, #366, danke @charlezmmonroe-byte){crlf;}{crlf;}-- Neue Funktionen{crlf;}{crlf;}- Das Sysprep-Vorbereitungstool unterstützt „CopyProfile“ und kann jetzt AppX-Pakete aus dem Referenzsystem entfernen{crlf;}- Es wurden Schutzvorrichtungen hinzugefügt, um die Ausführung des PE-Helfers in einer PXE-Umgebung zu verhindern, und um zu warnen, wenn die PXE-Helfer in einer Nicht-PXE-Umgebung ausgeführt werden{crlf;}- Das Autorun-Menü verfügt jetzt über Optionen zum Durchsuche des Disc-Inhalts und zum Kopieren des Boot-Images auf einen WDS-Server{crlf;}- Die DISMTools-Vorinstallationsumgebung kann jetzt über Richtlinien konfiguriert werden{crlf;}- Sie können jetzt Image und Gruppen in einem WDS-Server grafisch anzeigen{crlf;}- Beim Starten des Treiberinstallationsmoduls kann Ihnen die Vorinstallationsumgebung jetzt die Hardware-IDs unbekannter Geräte mitteilen{crlf;}- HotInstall kann jetzt SCSI-Adapter exportieren, um sie im DTPE-Image zu installieren{crlf;}- Wenn im Imagefassungsskript ein nicht sysprepped-Volume ausgewählt wird, wird es Sie jetzt warnen{crlf;}- Eine neue Aufgabe wurde hinzugefügt, um InstallationsImage auf einen Windows Deployment Services (WDS)-Server zu kopieren{crlf;}- Von der Autorun-Anwendung aus können Sie jetzt die WDS-Imagegruppe angeben, auf die das Image hochgeladen werden soll{crlf;}- Die Autorun-Anwendung und HotInstall haben HiDPI-Verbesserungen gesehen{crlf;}- Partitionstabellenüberschreibungen können jetzt beim Bereitstellen von Imagen mit dem WDS Helper{crlf;}- verwendet werden. PXE-Helferserver können jetzt mit einem anderen Port gestartet werden, indem SHIFT gedrückt gehalten und eine Aktion an den folgenden Stellen ausgeführt wird:{crlf;} - Von der Autorun-Anwendung{crlf;} - Von den Tools > Start PXE Helper Server für Menü im Hauptprogramm{crlf;}- Die Architektur für das WDS-Boot-Image wird jetzt grafisch ausgewählt{crlf;}- Der Standardsatz der DISMTools-Vorinstallationsumgebungshintergründe wurde überarbeitet{crlf;}- Der WDS-Helferclient erkennt jetzt den zugewiesenen Volumenbuchstaben für die Imagefreigabe zuverlässiger{crlf;}- Ergebnisse der ISO-Dateierstellung werden jetzt in einer Benachrichtigung angezeigt{crlf;}- Sie können jetzt das Tastaturlayout in der Vorinstallationsumgebung grafisch konfigurieren{crlf;}- Wenn das Sysprep-Vorbereitungstool vor der Aufnahme des Images aufgerufen wurde, werden temporäre Dateien und Booteinträge jetzt entfernt, wenn die Aufnahme erfolgreich ist. Das resultierende Windows-Image enthält immer noch keines dieser Elemente{crlf;}- Das Versionsreporter-Wasserzeichen in der DISMTools-Vorinstallationsumgebung kann jetzt erkennen, wann die Umgebung über ein Netzwerk gebootet hat{crlf;}- Der PE-Helfer kann jetzt die wesentlichen Treiber Ihres Zielsystems (Speichercontroller und Netzwerkadapter) in die DISMTools-Vorinstallationsumgebung{crlf;}aufnehmen- Mit dem ISO-Erstellungsassistenten können Sie einen Speicherort angeben, wenn Sie auf „OK“ geklickt haben, ohne einen angegeben zu haben. {crlf;}- Sie können jetzt Skripte angeben, die in VBScript und JScript geschrieben sind. {crlf;}- Das Starterskript {quot;}Aktivieren der Batch-Skriptdateisperren. {quot;} wurde eingeführt. {crlf;}- Das {quot;}Längenlimit für MAX_PATH entfernen{quot;} Starterskript wurde eingeführt{crlf;}- Das Starterskript {quot;}Systemdesktop-Symbole anzeigen und ausblenden{quot;} wurde eingeführt{crlf;}- Das Starterskript {quot;}Datei-Explorer festlegen Ordner starten{quot;} wurde eingeführt{crlf;}- Das Starterskript {quot;}Windows Admin Center deaktivieren/Azure Arc-Banner{quot;} Starterskript wurde eingeführt{crlf;}- Das Starterskript {quot;}Disable Shutdown Event Tracker{quot;} wurde eingeführt{crlf;}- Das Starterskript {quot;}Refresh Windows Explorer{quot;} wurde eingeführt{crlf;}- Das Starterskript {quot;}Configure Start Menu Appearance{quot;} Starterskript wurde eingeführt{crlf;}- Das {quot;}Warnungen für nicht signierte RDP-Dateien deaktivieren{quot;} Starterskript wurde eingeführt{crlf;}- Das {quot;}PowerShell-Ausführungsrichtlinie konfigurieren{quot;} Starterskript wurde eingeführt{crlf;}- Das {quot;}PowerPlan-Werte konfigurieren{quot;} Starterskript wurde eingeführt{crlf;}- Das Starterskript {quot;}Invoke Windows Utility Configuration{quot;} wurde aktualisiert{crlf;}- Das Starterskript {quot;}Restore Classic Context Menü in Windows 11{quot;} wurde eingeführt{crlf;}- Der Starterskript-Editor hat mehrere Verbesserungen erfahren:{crlf;} – Der Starter-Skript-Editor hat Unterstützung für den Dunkelmodus erhalten{crlf;} – Der Starter-Skript-Editor erkennt jetzt schreibgeschützte Starter-Skripte und entfernt solche Attribute beim Speichern{crlf;} – Abstände im Skriptcode können jetzt normalisiert werden{crlf;} – Organisationseinheiten und Benutzer in Organisationseinheiten werden jetzt alphabetisch in der ADDS-Domäne sortiert. Join Wizard{crlf;}- Mit dem ADDS-Domänenbeitrittsassistenten können Sie jetzt fortfahren, wenn Sie ein Konto ausgewählt haben, für das kein Passwort erforderlich ist{crlf;}- Es wurde eine Aufgabe hinzugefügt, um eine vorkonfigurierte Antwortdatei in ein Image zu kopieren, sodass es automatisch in den Audit-Modus startet{crlf;}- Der ADDS-Domänenbeitrittsassistent hat einige Verbesserungen gesehen:{crlf;} – Der Assistent lässt Sie nicht mehr fortfahren, wenn Sie ein Domänenkonto angeben, das nicht existiert. {crlf;} – Sie können jetzt die Auflösung von Domänennamen testen, indem Sie nslookup{crlf;} aufrufen. – Sie können jetzt Kontoobjekte von überall in Ihrer Domäne auswählen. {crlf;}- Beim Anwenden von Antwortdateien können Sie jetzt auswählen, ob sie in den Sysprep-Ordner des Ziel-Images kopiert werden sollen{crlf;}- Sie können jetzt den Vorschaubereich für den Starterskriptcode vergrößern{crlf;}- Sie können jetzt Kontoanzeigernamen unabhängig von Kontonamen konfigurieren{crlf;}- Postinstallationsskripte können jetzt neu geordnet werden{crlf;}- Batch-Skripte mit NT-Erweiterungen werden nicht mehr unterstützt{crlf;}- Serviceinformationen können jetzt in einem Bericht gespeichert werden, unabhängig davon, ob Sie ein Windows-Image oder eine Installation verwalten{crlf;}- Dienste können jetzt entfernt werden{crlf;}- Der Imageinformationsspeicher wird jetzt asynchron ausgeführt{crlf;}- Wenn Informationen zu einer Paketdatei nicht abgerufen werden können, DISMTools verarbeitet jetzt den Rest der Warteschlange weiter{crlf;}- Filterassistenten wurden zu den Funktions-, Fähigkeits- und Treiberinformationsdialogen hinzugefügt, damit Sie Abfragen einfacher erstellen können{crlf;}- Ein neuer automatischer Imageneuladedienst ist jetzt enthalten, damit Sie alle Ihre Image beim Systemstart neu laden lassen{crlf;}- Sie können Treiber jetzt nach Klassennamen exportieren{crlf;}- Imagefassungsaufgaben warnen Sie jetzt, wenn Quellinstallationen nicht mit Sysprep vorbereitet wurden{crlf;}- Eine neue Aufgabe wurde hinzugefügt, um Windows-Image zu optimieren{crlf;}- Unterstützung für Full Flash Utility (FFU) wurde eingeführt. Variationen der Imageanwendung, -erfassung, -aufteilung und -optimierung wurden mit FFU-Unterstützung eingeführt{crlf;}- Aus der Projektansicht können Sie jetzt Commit-Operationen an FFU-Dateien mithilfe eines Workarounds durchführen{crlf;}- Sie können jetzt installierte Treiberinformationen aus Windows 7-Imagen abrufen{crlf;}- Projekte und Installationsverwaltungsmodi werden jetzt viel schneller geladen und entladen{crlf;}- Das Entfernen bereitgestellter AppX-Pakete aus dem Online-Installationsverwaltungsmodus ist jetzt viel zuverlässiger{crlf;}- Sie können jetzt viel einfacher auf WIM- und FFU-Varianten der Imagefassungs- und Anwendungsaufgaben zugreifen{crlf;}- Nach dem Extrahieren von Imagen aus ISO-Dateien können Sie mit dem Programm nun das am besten geeignete InstallationsImage daraus auswählen{crlf;}- Sie können jetzt Informationen anzeigen, die für FFU-Dateien spezifisch sind, wenn Sie gemountete Imageeigenschaften anzeigen{crlf;}- Beim Herunterladen von Paketen aus App Installer-Dateien können Sie jetzt die URLs in das Hauptanwendungspaket kopieren{crlf;}- Beim Exportieren von Treibern nach Klassennamen oder beim Filtern installierter Treiber nach Klassennamen, Sie können jetzt aus Drittanbieterklassen wählen, die von Drittanbietertreibern in Ihrem Windows-Image oder Ihrer Windows-Installation bereitgestellt werden. {crlf;} – Sie können jetzt Treiber aus Windows 7-Images und -Installationen exportieren. {crlf;} – Das Speichern von Serviceänderungen geht jetzt viel schneller. {crlf;} – Fragen des Imageinformationsspeichers werden nicht mehr im Hintergrund gestellt. {crlf;}- FFU-Datei-Commit-Operationen werden jetzt ausgeführt, wenn Änderungen an gemounteten FFU-Dateien gespeichert werden, nachdem Imageaufgaben wie das Hinzufügen von Paketen oder das Aktivieren von Funktionen ausgeführt wurden{crlf;}- Es wurde eine Option hinzugefügt, um zu verhindern, dass die Maschine während der Ausführung von Imageoperationen schläft{crlf;}- Die Hilfedokumentation hat eine umfassende visuelle Aktualisierung gesehen{crlf;}- Dateizuordnungen sind jetzt für den Starter Script Editor festgelegt{crlf;}- Der StartImageschirm wurde optisch überarbeitet{crlf;}- 7-Zip wurde auf Version 26.01 aktualisiert{crlf;}- CODE: Das Festlegen der Lade- und Speicherfunktion wurde überarbeitet{crlf;}- Der Starter Script Editor und der Theme Designer können jetzt über das Menü Extras aufgerufen werden{crlf;}- In portablen Installationen können jetzt Dateizuordnungen für den Starter Script Editor umgeschaltet werden{crlf;}- Der DynaLog-Protokollbetrachter hat Unterstützung für Ereignisprotokollfilter erhalten{crlf;}- Datumseigenschaften können jetzt in einem Windows-nativen Format angezeigt werden{crlf;}- Markdig wurde auf Version 1.3.1 aktualisiert{crlf;}- Scintilla.NET wurde auf Version 6.1.2 aktualisiert{crlf;}- Die verwaltete DISM-API wurde auf Version 6.0.0 aktualisiert{crlf;}- Windows API Code Pack wurde auf Version 8.0.15.2 aktualisiert{crlf;}{crlf;}-- Features entfernt{crlf;}{crlf;}- Das WDS-Vorbereitungsskript wurde zugunsten des WDS-Helfers entfernt{crlf;}{crlf;}Änderungen seit der letzten Vorschau vorgenommen:{crlf;}{crlf;}-- Fehlerbehebungen{crlf;}{crlf;}- Genauigkeitsprobleme bei der Durchführung von Windows UEFI CA 2023-Bereitschaftsprüfungen auf Systemen behoben, die mit aktualisierten Bootloadern bereitgestellt wurden{crlf;}- Ein Problem wurde behoben, bei dem Hintergrundprozesse mit {quot;} fehlschlugen. Der Parameter ist in einigen Fällen falsch{quot;}{crlf;}-- Neue Funktionen{crlf;}{crlf;}- UnattendGen wurde auf die neueste Version aktualisiert und erfordert jetzt .NET 10{crlf;}- Der Newsfeed-Vorschauer hat mehrere Verbesserungen erfahren{crlf;}- Der Preinstallation Environment Helper erkennt jetzt von Rufus erstellte Antwortdateien und ermöglicht Ihnen, auf Konflikte in Antwortdateien zu reagieren{crlf;} + +[PrgAbout.Tooltip] +Text1.Label=Schauen Sie sich den offiziellen Subreddit des Projekts an +Join.Coding.Wonders.Label=Treten Sie dem CodingWonders Software Discord-Server bei +Project.MDL.Label=Schauen Sie sich die Diskussion des Projekts in den My Digital Life-Foren an +Project.GitHub.Label=Schauen Sie sich das Repository des Projekts auf GitHub an + +[PrgAbout.UpdateCheck] +Couldn.Tdownload.Message=Wir konnten den Update-Checker nicht herunterladen. Grund:{crlf;}{0} + +[PrgSetup] +Set.Up.DISM.Label=DISMTools einrichten +Welcome.DISM.Tools.Label=Willkommen bei DISMTools +DISM.Tools.Free.Message=DISMTools ist eine kostenlose und Open-Source-, projektgesteuerte GUI für DISM-Operationen. Um mit der Einrichtung zu beginnen, klicken Sie auf Weiter. +Yours.Customize.Message=Machen Sie es zu Ihrem. Passen Sie dieses Programm nach Ihren Wünschen an und klicken Sie auf Weiter. Diese Einstellungen können jederzeit im Abschnitt {quot;}Personalisierung{quot;} im Fenster Optionen konfiguriert werden +CustomizeProgram.Label=Passen Sie dieses Programm an +ColorMode.Label=Farbmodus: +Language.Label=Sprache: +Log.Window.Font.Label=Schriftart des Protokollfensters: +LogFile.Label=Protokolldatei: +Log.Settings.Message=Geben Sie die Protokolleinstellungen an und klicken Sie auf Weiter. Je nach von Ihnen angegebener Inhaltsebene protokollieren wir mehr oder weniger Informationen. Diese Einstellung kann jederzeit im Abschnitt {quot;}Logs{quot;} im Optionsfenster konfiguriert werden +Log.Label=Was sollten wir protokollieren, wenn Sie eine Operation durchführen? +Anything.Like.Label=Gibt es noch etwas, das Sie konfigurieren möchten? +Settings.Available.Message=Die Ihnen zur Verfügung stehenden Einstellungen sind mehr als das, was Sie gerade konfiguriert haben. Wenn Sie weitere davon ändern möchten, klicken Sie auf die Schaltfläche unten. Wir werden diese Einstellungen auch dauerhaft machen. +Perform.Steps.Time.Label=Sie können diese Schritte jederzeit ausführen. +Done.Setting.Up.Message=Die Grundeinrichtung ist abgeschlossen. Klicken Sie auf {quot;}Fertig{quot;}, um die Einstellungen zu speichern. +SetupComplete.Label=Setup ist abgeschlossen +Ve.Set.Things.Label=Nachdem Sie die Dinge nun eingerichtet haben, empfehlen wir Ihnen, die folgenden Dinge zu tun: +Stay.Up.Date.Label=Bleiben Sie auf dem Laufenden, um neue Funktionen und ein verbessertes Erlebnis zu erhalten +Get.Started.DISM.Label=Erste Schritte mit DISMTools und Image-Servicing, damit Sie schneller vorankommen +Secondary.Progress.Label=Stil des sekundären Fortschrittsfelds: +Font.Readable.Log.Message=Diese Schriftart ist in Protokollfenstern möglicherweise nicht lesbar. Obwohl Sie es weiterhin verwenden können, empfehlen wir Monospace-Schriftarten für eine bessere Lesbarkeit. +Back.Button=Zurück +Cancel.Button=Abbrechen +Browse.Button=Durchsuche +Default.Log.File.Button=Standardprotokolldatei verwenden +Configure.Settings.Button=Weitere Einstellungen konfigurieren +GetStarted.Button=Startseite +CheckUpdates.Button=Nach Updates suchen +Auto.Create.Logs.CheckBox=Erstellt automatisch Protokolle im Protokollverzeichnis des Programms +Modern.RadioButton=Modern +Classic.RadioButton=Klassik +Log.File.Title=Geben Sie die Protokolldatei an +System.Setting.Item=Systemeinstellung verwenden +LightMode.Item=Lichtmodus +DarkMode.Item=Dunkler Modus + +[PrgSetup.Actions] +UpdateChecker.Title=Nach Updates suchen + +[PrgSetup.Dialogs] +SaveFile.Filter=Alle Dateien|*.* + +[PrgSetup.LogLevel] +Errors.Label=Fehler (Protokollebene 1) +File.Only.Display.Label=Die Protokolldatei sollte Fehler erst nach der Durchführung einer Imageoperation anzeigen. +Errors.Warnings.Label=Fehler und Warnungen (Protokollebene 2) +File.Display.Errors.Label=Die Protokolldatei sollte nach der Durchführung einer Imageoperation Fehler und Warnungen anzeigen. +Errors.Messages.Label=Fehler, Warnungen und Informationsmeldungen (Log-Level 3) +File.Display.Errors.Message=Die Protokolldatei sollte nach der Durchführung einer Imageoperation Fehler, Warnungen und Informationsmeldungen anzeigen. +Errors.Warnings.Debug.Label=Fehler, Warnungen, Informationen und Debug-Meldungen (Protokollebene 4) +Level3.Message=Die Protokolldatei sollte nach der Durchführung einer Imageoperation Fehler, Warnungen, Informationen und Debug-Meldungen anzeigen. + +[PrgSetup.Next] +Finish.Label=Fertig + +[PrgSetup.Next.Actions] +Folder.Log.File.Message=Der Ordner, in dem die Protokolldatei gespeichert wird, existiert nicht. Stellen Sie sicher, dass es existiert, und versuchen Sie es erneut. +Next.Button=Weiter + +[PrgSetup.ToolTip] +Minimize.Label=Minimieren +Close.Label=Schließen +GoBack.Label=Zurück + +[PrgSetup.Validation] +DownloadFailure.Message=Wir konnten den Update-Checker nicht herunterladen. Grund:{crlf;}{0} + +[Progress] +Tasks.Label=Aufgaben: {0}/{1} +Progress.Label=Fortschritt +Image.Operations.Label=Imagevorgänge im Gange +Wait.Tasks.Label=Bitte warten Sie, während die folgenden Aufgaben erledigt sind. Dies kann einige Zeit dauern. +Cancel.Button=Abbrechen +ShowLog.Label=Protokoll anzeigen +HideLog.Label=Protokoll ausblenden +Show.Dismlog.File.Link=DISM-Protokolldatei anzeigen (erweitert) +Wait.Label=Bitte warten +CurrentTask.Label=Bitte warten +Performing.Image.Ops.Button=Imageoperationen ausführen. Bitte warten +TaskCount.Label=Aufgaben: 1/{0} + +[Progress.AddCapabilities] +Add.Capabilities.Button=Funktionen hinzufügen +PrepareAdd.Button=Vorbereitung zum Hinzufügen von Funktionen +Add.Capabilities.Item=Funktionen hinzufügen +AddingCapability.Item=Hinzufügen der Fähigkeit {0} von {1} + +[Progress.AddDrivers] +AddingDrivers.Button=Treiber hinzufügen +Preparing.Drivers.Button=Vorbereiten zum Hinzufügen von Treibern +AddingDrivers.Item=Treiber hinzufügen +AddingDriver.Item=Treiber {0} von {1} hinzufügen + +[Progress.AddPackages] +AddingPackages.Button=Pakete hinzufügen +Preparing.Packages.Button=Vorbereiten zum Hinzufügen von Paketen +AddingPackages.Item=Hinzufügen von {0} Paketen +AddingPackage.Item=Paket {0} von {1} hinzufügen + +[Progress.Packages.AddRecursive] +Gathering.Error.Level.Button=Fehlerebene erfassen + +[Progress.ProvAppx.Add] +AddingPackages.Button=AppX-Pakete hinzufügen +Preparing.Button=Vorbereiten zum Hinzufügen bereitgestellter AppX-Pakete +AddingPackages.Item=AppX-Pakete hinzufügen +AddingPackage.Item=Paket {0} von {1} hinzufügen + +[Progress.ProvPackage.Add] +AddingPackage.Button=Bereitstellungspaket hinzufügen +Image.Button=Bereitstellungspaket zum Image hinzufügen + +[Progress.AppendImage] +AppendingImage.Button=An Image anhängen +Appending.Mount.Dir.Button=Anhängen des angegebenen Mount-Verzeichnisses an das angegebene Ziel-Image +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.ApplyFfuImage] +ApplyingImage.Button=Image anwenden +Applying.Image.Dest.Button=Anwenden des angegebenen Images auf das angegebene Ziel +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.ApplyImage] +ApplyingImage.Button=Image anwenden +Applying.Image.Dest.Button=Anwenden des angegebenen Images auf das angegebene Ziel +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.ApplyUnattend] +ApplyAnswerFile.Button=Beauftragen einer unbeaufsichtigten Antwortdatei +Applying.Answer.Button=Anwenden der angegebenen unbeaufsichtigten Antwortdatei auf das Ziel-Image +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.Background] +Ready.Label=Bereit +Perform.Image.Label=Imageoperationen konnten nicht durchgeführt werden +Error.Has.Message=Es ist ein Fehler aufgetreten, der die Imagevorgänge gestoppt hat. Bitte lesen Sie das Protokoll unten für weitere Informationen. +Ok.Button=OK +Ready.Item=Bereit + +[Progress.CaptureFfuImage] +CapturingImage.Button=Image aufnehmen +CaptureDir.Button=Erfassen eines angegebenen Verzeichnisses in einem neuen Image +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.CaptureImage] +CapturingImage.Button=Image aufnehmen +CaptureDir.Button=Erfassen eines angegebenen Verzeichnisses in einem neuen Image +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.CleanupImage] +Cleaning.Up.Image.Button=Image bereinigen +RevertPending.Button=Backsetzen ausstehender Wartungsaktionen +Cleaning.Up.ServicePack.Item=Bereinigen von Service Pack-Sicherungsdateien +Cleaning.Up.Component.Item=Reinigen des Komponentenspeichers +Analyzing.Component.Item=Analyse des Komponentenspeichers +Checking.Comp.Store.Item=Überprüfen des Zustands des Komponentenspeichers +Scanning.Component.Item=Scannen des Komponentenspeichers +Repairing.Component.Item=Reparatur des Komponentenspeichers +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.CleanupMounts] +Cleaning.Up.Mount.Button=Bereinigen von Montagepunkten +Gathering.Error.Level.Item=Erfassungsfehlerebene +Deleting.Corrupted.Button=Löschen von Ressourcen aus alten oder beschädigten Imagen + +[Progress.Close] +Ready.Label=Bereit + +[Progress.CommitImage] +CommittingImage.Button=Committing-Image +Saving.Changes.Image.Button=Änderungen am Image speichern +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.ConvertImage] +ConvertingImage.Button=Image konvertieren +Converting.Image.Button=Konvertieren des angegebenen Images +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.CreateProject] +CreatingProject.Label=Projekt erstellen: {quot;}{0}{quot;} +CreateProject.Button=Erstellen der DISMTools-Projektstruktur + +[Progress.DisableFeatures] +Disabling.Button=Deaktivieren von Funktionen +PrepareDisable.Button=Vorbereitung zum Deaktivieren von Funktionen +Disabling.Item=Funktionen deaktivieren +DisablingFeature.Item=Deaktivierungsfunktion {0} von {1} + +[Progress.EnableFeatures] +EnablingFeatures.Button=Aktivieren von Funktionen +PrepareEnable.Button=Vorbereiten, um Funktionen zu aktivieren +EnablingFeatures.Item=Funktionen aktivieren +EnablingFeature.Item=Aktivierungsfunktion {0} von {1} + +[Progress.ExportDrivers] +ExportingDrivers.Button=Treiber exportieren +ExportThirdParty.Button=Exportieren von Treibern von Drittanbietern in den angegebenen Ordner + +[Progress.ExportImage] +ExportingImage.Button=Image exportieren +Exporting.Image.Button=Exportieren des angegebenen Images +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.GetTasks] +Tasks.Label=Aufgaben: 1/{0} + +[Progress.ImportDrivers] +ImportingDrivers.Button=Treiber importieren +PrepareImport.Button=Vorbereitung zum Importieren von Treibern von Drittanbietern +ExportThirdParty.Item=Exportieren von Treibern von Drittanbietern aus der Treiberimportquelle +ImportThirdParty.Item=Importieren von Treibern von Drittanbietern in das Ziel-Image + +[Progress.OSUninstall] +Uninstalling.Version.Button=Deinstallation dieser Windows-Version + +[Progress.StartRollback] +Preparing.OSRollback.Button=Vorbereiten des Betriebssystem-Rollbacks + +[Progress.Log] +HideLog.Label=Protokoll ausblenden +ShowLog.Item=Protokoll anzeigen + +[Progress.Logs.Operation] +Label=Betriebsprotokolle + +[Progress.Logs.DismOutput] +Label=DISM-Ausgabe + +[Progress.MergeSWM] +MergingSwmfiles.Button=Zusammenführen von SWM-Dateien +Merging.Swmfiles.WIM.Button=Zusammenführen von SWM-Dateien zu einer WIM-Datei +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.MountImage] +MountingImage.Button=Mounting-Image +Mounting.Image.Button=Mounten des angegebenen Images +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.Operation] +OptimizingImage.Label=Image optimieren +Optimizing.Windows.Label=Optimierung des Windows-Images +UpgradingImage.Label=Image aktualisieren +Setting.New.Image.Label=Einstellen der neuen Imageausgabe +Setting.ProductKey.Label=Einstellen des Produktschlüssels +Setting.New.ProductKey.Label=Einstellen des neuen Produktschlüssels +Replacing.FFU.Files.Label=Ersetzen von FFU-Dateien +Replacing.Original.FFU.Label=Ersetzen der ursprünglichen FFU-Datei durch eine geänderte FFU-Datei + +[Progress.RemountImage] +RemountingImage.Button=Image wird erneut gemountet +ReloadSession.Button=Neuladen der Wartungssitzung für das gemountete Image +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[Progress.RemoveCapabilities] +Remove.Capabilities.Button=Funktionen entfernen +Remove.Capabilities.Item=Funktionen entfernen +Capability.Item=Entfernen der Fähigkeit {0} von {1} + +[Progress.RemoveCaps] +Preparing.Button=Vorbereiten zum Entfernen von Funktionen + +[Progress.RemoveDrivers] +RemovingDrivers.Button=Treiber entfernen +Preparing.Drivers.Button=Vorbereiten zum Entfernen von Treibern +RemovingDrivers.Item=Treiber entfernen +RemovingDriver.Item=Treiber {0} von {1} entfernen + +[Progress.RemoveRollback] +RemoveRollback.Button=Entfernt die Rollback-Funktion des Betriebssystems +RemoveRevert.Button=Entfernen der Möglichkeit, zu einer alten Windows-Installation zurückzukehren + +[Progress.RemovePackages] +RemovingPackages.Button=Pakete entfernen +PrepareRemove.Button=Vorbereitung zum Entfernen von Paketen +RemovingPackages.Item=Pakete entfernen +RemovingPackage.Item=Paket {0} von {1} entfernen + +[Progress.ProvAppx.Remove] +RemovingPackages.Button=AppX-Pakete entfernen +Preparing.Button=Vorbereiten zum Entfernen bereitgestellter AppX-Pakete +RemovingPackages.Item=AppX-Pakete entfernen +RemovingPackage.Item=Paket {0} von {1} entfernen + +[Progress.RemoveVolumes] +DeletingImages.Button=Image löschen +Prepare.Remove.Button=Vorbereiten zum Entfernen von Volume-Imagen +Volume.Image.Item=VolumenImage entfernen {quot;}{0}{quot;} + +[Progress.LayeredDriver] +SettingDriver.Button=Einstellen des Tastatur-Layout-Treibers +Setting.Keyboard.Button=Einstellen des Tastatur-Layer-Treibers + +[Progress.RollbackWindow] +SetWindow.Button=Einstellen des Deinstallationsfensters +SetDays.Button=Festlegen der Anzahl der Tage, an denen eine Deinstallation erfolgen kann + +[Progress.ScratchSpace] +Setting.ScratchSpace.Button=Einstellen des Kratzraums +SetScratchSpace.Button=Einstellen des Windows PE-Scratch-Spaces + +[Progress.SetTargetPath] +Setting.Target.Button=Festlegen des Zielpfads +Setting.Windows.Button=Einstellen des Windows PE-Zielpfads + +[Progress.SplitFfuImage] +SplittingImage.Button=Image aufteilen +Splitting.File.Button=Aufteilen der FFU-Datei + +[Progress.SplitImage] +SplittingImage.Button=Image aufteilen +Splitting.WIM.File.Button=Aufteilen der WIM-Datei + +[Progress.SwitchIndexes] +Switching.Image.Button=Image-Index wechseln +Unmounting.Source.Button=Quellindex wird ausgehängt +Gathering.Error.Level.Item=Erfassungsfehlerebene +Unmounting.Source.Index.Item=Quellindex wird ausgehängt +CurrentTask.Item=Erfassungsfehlerstufe +Mounting.Target.Index.Item=Zielindex mounten + +[Progress.UnmountImage] +UnmountingImage.Button=Image aushängen +Unmounting.ImageFile.Button=Imagedatei wird ausgehängt +Gathering.Error.Level.Item=Erfassungsfehlerebene + +[ProgressReporter] +Progress.Label=Fortschritt + +[ProjProps] +Bytes.Item={0} Bytes (~{1}) +Getting.Project.Image.Label=Projekt- und Imageinformationen abrufen. Bitte warten +Name.Label=Name: +Location.Label=Standort: +Creation.Time.Date.Label=Erstellungszeit und -datum: +ProjectGUID.Label=Projekt GUID: +MountDirectory.Label=Mount-Verzeichnis: +ImageIndex.Label=Imageindex: +ImageFile.Label=Imagedatei: +Image.Present.Project.Label=Im Projekt vorhandenes Image? +ImageStatus.Label=Imagestatus: +Version.Label=Version: +Description.Label=Beschreibung: +Size.Label=Größe: +Supports.WIM.Boot.Label=Unterstützt WIMBoot? +Architecture.Label=Architektur: +ServicePackBuild.Label=Service Pack-Build: +ServicePackLevel.Label=Service Pack-Ebene: +Edition.Label=Ausgabe: +ProductType.Label=Produkttyp: +ProductSuite.Label=Produktsuite: +System.Root.Dir.Label=Systemstammverzeichnis: +DirectoryCount.Label=Verzeichnisanzahl: +FileCount.Label=Dateianzahl: +CreationDate.Label=Erstellungsdatum: +ModificationDate.Label=Änderungsdatum: +Installed.Languages.Label=Installierte Sprachen: +FileFormat.Label=Dateiformat: +Image.Rwpermissions.Label=Image R/W-Berechtigungen: +Recover.Label=Wiederherstellen +Reload.Label=Neu laden +Remount.Write.Label=Remount mit Schreibberechtigungen +Ok.Button=OK +Cancel.Button=Abbrechen +Many.Cannot.Seen.Message=Viele Eigenschaften können nicht gesehen werden, da ein Image noch nicht gemountet wurde. Sobald Sie es gemountet haben, werden hier detaillierte Informationen angezeigt. Klicken Sie hier, um ein Image einzubinden +Props.Label=Eigenschaften +Yes.Button=Ja +No.Button=Nein +ImgMount.Label=Nicht verfügbar +ImgIndex.Label=Nicht verfügbar +ImgName.Label=Nicht verfügbar +NotAvailable.Label=Nicht verfügbar +ImgVersion.Label=Nicht verfügbar +ImgMounted.Label=Nicht verfügbar +ImgSize.Label=Nicht verfügbar +ImgWIM.Label=Nicht verfügbar +ImgHal.Label=Nicht verfügbar +ImgSP.Label=Nicht verfügbar +ImgEdition.Label=Nicht verfügbar +ImgP.Label=Nicht verfügbar +ImgSys.Label=Nicht verfügbar +ImgDirs.Label=Nicht verfügbar +ImgFiles.Label=Nicht verfügbar +ImgCreation.Label=Nicht verfügbar +ImgModification.Label=Nicht verfügbar +ImgFormat.Label=Nicht verfügbar +ImgRW.Label=Nicht verfügbar + +[ProjectProps.FeatureUpdate] +FeatureUpdate.Label={crlf;}(Feature-Update: {0}) + +[ProjectProps.Image] +UndefinedImage.Label=Undefiniert durch das Image +OpenParenthesis.Label=( +Default.Label=, Standard +CloseParenthesis.Label=) +File.Label={0} Datei + +[ProjProps.Tooltip] +Hardware.Abstraction.Label=Hardware-Abstraktionsschicht + +[ServiceGroups] +ServiceGroup.Label={lbrace;}0{rbrace;} Dienst(e) in der Gruppe +RegisteredHost.Label={lbrace;}0{rbrace;} Dienst(e) sind im Diensthost registriert. + +[RegistryPanel] +Image.Hives.Label=Imageregister hives +Load.Label=Laden +Unload.Label=Entladen +Open.Button=Öffnen +Tool.Lets.Load.Message=Mit diesem Tool können Sie die hier angegebenen Imageregistrierungs-Hives in das lokale System laden. Dadurch können Sie Änderungen an der im Windows-Image gespeicherten Konfiguration vornehmen. Sobald Sie mit der Anpassung eines Schlüssels aus einem Hive fertig sind, können Sie ihn auch hier entladen: +Ntuserdatdefault.User.Label=NTUSER.DAT (Standardbenutzer) +Load.Different.Label=Wenn Sie einen anderen Registrierungs-Hive laden möchten, geben Sie dessen Pfad an und klicken Sie auf Laden: +HiveLocation.Label=Hive-Standort: +PathRegistry.Label=Pfad in der Registrierung: +Browse.Button=Durchsuche +Load.Custom.Hive=Benutzerdefinierten Hive laden + +[RegistryPanel.Close] +HivesNeedUnload.Message=Die Registrierungs-Hives müssen entladen werden, um dieses Fenster zu schließen. Willst du sie jetzt entladen? +HivesNotUnloaded.Message=Einige Hives konnten nicht entladen werden. Bitte entladen Sie sie, bevor Sie dieses Fenster schließen. + +[ReloadProject] +ImageMissing.Label=Dieses Image ist nicht mehr verfügbar +ImageUnavailable.Message=Das in diesem Projekt geladene Image ist nicht mehr verfügbar. Dies kann passieren, wenn es von einem externen Programm ausgehängt wurde. Aus diesem Grund muss das Projekt neu geladen werden. Klicken Sie auf {quot;}OK{quot;}, um dieses Projekt neu zu laden.{crlf;}{crlf;}HINWEIS: Wenn Sie auf {quot;}Cancel{quot;} klicken, wird das Projekt entladen +Ok.Button=OK +Cancel.Button=Abbrechen + +[RemCapabilities] +Remove.Label=Funktionen entfernen +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Abbrechen +Capability.Column=Fähigkeit +State.Column=Status + +[RemCapabilities.Initialize] +UnsupportedImage.Message=Diese Aktion wird auf diesem Image nicht unterstützt + +[RemCapabilities.Validation] +Selected.None.Message=Es gibt keine ausgewählten Funktionen zum Remove. Bitte wählen Sie einige Funktionen aus und versuchen Sie es erneut. + +[RemDrivers] +RemoveDrivers.Label=Treiber entfernen +Image.Task.Header.Label={0} +DriverPackages.Wish.Label=Geben Sie die Treiberpakete an, die Sie entfernen möchten, und klicken Sie auf OK: +Hide.Boot.Critical.CheckBox=Bootkritische Treiber ausblenden +Hide.Drivers.Part.CheckBox=Treiber ausblenden, die Teil der Windows-Distribution sind +Ok.Button=OK +Cancel.Button=Abbrechen +PublishedName.Column=Veröffentlichter Name +Original.File.Name.Column=Originaldateiname +ProviderName.Column=Providername +ClassName.Column=Klassenname +Part.Windows.Column=Teil der Windows-Distribution? +BootCritical.Column=Ist bootkritisch? +Version.Column=Version +Date.Column=Datum +Loading.DriverPackages.Label=Installierte Treiberpakete abrufen + +[RemDrivers.Validation] +Yes.Button=Ja +Selected.Boot.Message=Sie haben Treiberpakete ausgewählt, die bootkritisch sind. Wenn Sie mit der Entfernung solcher Pakete fortfahren, kann das Ziel-Image nicht mehr bootfähig sein. +WantContinue.Message=Möchten Sie fortfahren? +CheckedItems.Button=Ja +Selected.Part.Message=Sie haben Treiberpakete ausgewählt, die Teil der Windows-Distribution sind. Durch das Fortfahren können bestimmte Teile von Windows, die von diesen Treibern abhängen, unzugänglich bleiben. +ContinueQuestion.Message=Möchten Sie fortfahren? +Packages.Required.Message=Bitte geben Sie die Treiberpakete an, die Sie entfernen möchten, und versuchen Sie es erneut + +[RemPackage] +RemovePackages.Label=Pakete entfernen +Image.Task.Header.Label={0} +PackageSource.Label=Paketquelle: +Note.May.Message=HINWEIS: Das Programm zeigt möglicherweise Pakete an, die ursprünglich nicht hinzugefügt wurden. Wenn jedoch kein Paket hinzugefügt wird, überspringt das Programm es. +PackageRemoval.Group=Paketentfernung +Package.Names.RadioButton=Paketnamen angeben: +Package.Files.RadioButton=Paketdateien angeben: +Browse.Button=Durchsuche +Cancel.Button=Abbrechen +Ok.Button=OK +PackageSource.Description=Bitte geben Sie eine Paketquelle an: +Couldn.Tscan.Message=Wir konnten die Paketquelle nicht nach CAB-Dateien durchsuchen. Bitte versuchen Sie es erneut. +DISMTools.Title=DISMTools + +[RemPackage.Validation] +No.Packages.Selected.Message=Bitte wählen Sie die zu entfernenden Pakete aus und versuchen Sie es erneut. +Packages.Selected.None.Title=Keine Pakete ausgewählt + +[RemoveAppx] +Prov.Label=Entfernen Sie bereitgestellte AppX-Pakete +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Abbrechen +PackageName.Column=Paketname +App.Display.Name.Column=Anwendungsanzeigename +Architecture.Column=Architektur +ResourceID.Column=Ressourcen-ID +Version.Column=Version +Registered.User.Column=Für einen beliebigen Benutzer registriert? +ViewResources.Label=Ressourcen von {0} anzeigen + +[RemoveAppx.Init] +UnsupportedImage.Message=Diese Aktion wird auf diesem Image nicht unterstützt + +[RemoveAppx.Validation] +Packages.Required.Message=Bitte geben Sie die zu entfernenden AppX-Pakete an und versuchen Sie es erneut. +Prov.Title=Entfernen Sie bereitgestellte AppX-Pakete +DesktopExperience.Message=Die Funktion Desktop Experience (DesktopExperience) muss aktiviert sein, um AppX-Pakete in Windows Server Core/Nano Server-Images zu entfernen.{crlf;}{crlf;}Aktivieren Sie diese Funktion, booten Sie zum Image und versuchen Sie es erneut. + +[SaveProject] +SaveChanges.Label=Möchten Sie die Änderungen dieses Projekts speichern? +ShutdownRestart.Message=Wenn Sie Ihr System herunterfahren oder neu starten, ohne die Image auszuhängen, müssen Sie die Wartungssitzung neu laden. +Yes.Button=Ja +No.Button=Nein +Cancel.Button=Abbrechen + +[ScriptReorder] +Script.Label=Script {lbrace;}0{rbrace;} +Move.Selected.Top.Label=Ausgewähltes Skript nach oben verschieben +Move.Selected.Previous.Label=Ausgewähltes Skript an die vorherige Position verschieben +Move.Selected.Next.Label=Ausgewähltes Skript an die nächste Position verschieben +Move.Selected.Bottom.Label=Ausgewähltes Skript nach unten verschieben + +[ServiceManagement.Display] +MinuteS.Label={0} Minute(n) +Undefined.Label=Undefiniert +Per.User.Label=Kein Dienst pro Benutzer +Undefined.Group.Label= + +[Services.Display] +MinutesSeconds.Message={0} Minute(n) ({1} Sekunden) nach dem ersten Fehler, {2} Minute(n) ({3} Sekunden) nach dem zweiten Fehler, {4} Minute(n) ({5} Sekunden) nach nachfolgenden Fehlern + +[Services.Messages] +StartType.Message=Der ausgewählte Starttyp wird für Dienste dieses Typs nicht unterstützt. Der ausgewählte Dienst funktioniert möglicherweise nicht richtig oder überhaupt nicht, wenn Sie mit diesem Starttyp fortfahren.{crlf;}{crlf;}Möchten Sie diesen Starttyp auf seinen aktuellen Wert zurücksetzen? +System.Done.Message=Systemdienstinformationen wurden erfolgreich in der Registrierung des Ziel-Images gespeichert.{crlf;}{crlf;}Eine Sicherungskopie der vorherigen Dienstkonfiguration wurde auf Ihrem Desktop gespeichert, falls Sie sie benötigen, falls die Dienständerungen nicht wie geplant verlaufen.{crlf;}{crlf;}Laden Sie einfach den SYSTEM-Hive des Ziel-Images und importieren Sie diese Registrierungsdatei. +UnsavedClose.Message=Es wurden einige Änderungen vorgenommen. Durch Schließen dieses Fensters werden alle Ihre Änderungen an Windows-Diensten verworfen. Möchten Sie diese Änderungen verwerfen? +UnsavedReload.Message=Es wurden einige Änderungen vorgenommen. Durch das Neuladen von Serviceinformationen werden alle Ihre Änderungen an Windows-Diensten verworfen. Möchten Sie diese Änderungen verwerfen? +RemoveService.Title=Dienst entfernen +Scheduled.Deletion.Message=Die Löschung des Dienstes wurde erfolgreich geplant. Die Entfernung dieses Dienstes erfolgt, wenn Sie die Änderungen speichern. Sollten Sie diesen Dienst jemals wieder benötigen, importieren Sie bitte die Sicherung der Dienstinformationen, die während des Speichervorgangs erstellt wird. +InfoSaved.Message=Systemdienstinformationen konnten nicht in der Registrierung des Ziel-Images gespeichert werden. + +[ServiceMgmt.Messages] +Continui.Removal.Svc.Message=Das Fortsetzen der Entfernung dieses Dienstes kann dazu führen, dass das Zielsystem entweder instabil oder nicht mehr bootfähig wird. Willst du weitermachen? + +[ServiceManagement.Progress] +Saving.Label=Speichern von Serviceinformationen ({0}/{1}, {2}%) + +[ServiceManagement.StartTypes] +BootLoader.Label=Bootloader +Iosystem.Label=I/O-System +Automatic.Label=Automatisch +Manual.Label=Handbuch +Disabled.Label=Deaktiviert + +[ImageEdition] +Title.Label=Imageausgabe festlegen +Image.Task.Header.Label={0} +Target.Upgrade.Label=Zielausgabe zum Upgrade auf: +ServerOptions.Group=Aktive Serverinstallationsoptionen +Copy.EndUser.RadioButton=Kopieren Sie die Endbenutzer-Lizenzvereinbarung (EULA) an den folgenden Speicherort: +AcceptEULA.RadioButton=Akzeptieren Sie die Endbenutzer-Lizenzvereinbarung (EULA) und verwenden Sie den folgenden Produktschlüssel: +Browse.Button=Durchsuche +Ok.Button=OK +Cancel.Button=Abbrechen + +[ImageEdition.Initialize] +Image.Cannot.Message=Dieses Image kann nicht auf höhere Editionen aktualisiert werden, da es sich in der höchsten Edition befindet +Windows.Message=Windows PE-Image können nicht auf höhere Editionen aktualisiert werden. + +[SetImageKey] +SetProductKey.Label=Produktschlüssel festlegen +Image.Task.Header.Label={0} +Type.ProductKey.Label=Geben Sie den Produktschlüssel ein, den Sie für Ihr Windows-Image festlegen möchten, einschließlich der Bindestriche: +Check.ProductKey.Message=Wenn Sie überprüfen möchten, ob Ihr Produktschlüssel für das Windows-Image gültig ist, klicken Sie auf Schlüssel validieren. Dadurch wird auch die Syntax Ihres Schlüssels überprüft. +ValidateKey.Button=Schlüssel validieren +Ok.Button=OK +Cancel.Button=Abbrechen + +[SetImageKey.Initialize] +Windows.Message=Windows PE-Image können nicht auf höhere Editionen aktualisiert werden. + +[SetImageKey.Messages] +ProductKey.Has.Label=Der Produktschlüssel wurde nicht korrekt eingegeben. +ProductKey.Windows.Label=Der Produktschlüssel ist für dieses Windows-Image gültig. +ProductKey.Valid.Message=Der Produktschlüssel wurde korrekt eingegeben, ist aber für dieses Windows-Image nicht gültig. + +[SetImageKey.Validation] +ProductKey.Valid.Message=Der Produktschlüssel wurde korrekt eingegeben, wir konnten jedoch nicht überprüfen, ob er für dieses Windows-Image gültig ist. + +[SetLayeredDriver] +UnknownInstalled.Label=Unbekannt/Nicht installiert +PC.Enhanced.Label=PC/AT Enhanced Keyboard (101/102-Taste) +DriverKorean.Label=Koreanische PC/AT 101-Tasten-kompatible Tastatur/MS Natural Keyboard (Typ 2) +Korean.Keyboard.Key.Item=Koreanische Tastatur (103/106-Taste) +Japanese.Keyboard.Key.Item=Japanische Tastatur (106/109-Taste) + +[SetLayeredDriver.KoreanPC] +Keyboard101.Type1.Label=Koreanische PC/AT 101-Tasten-kompatible Tastatur/MS Natural Keyboard (Typ 1) +Keyboard101.Type3.Label=Koreanische PC/AT 101-Tasten-kompatible Tastatur/MS Natural Keyboard (Typ 3) + +[LayeredDriver.Set] +Title=Tastatur-Layer-Treiber festlegen +Image.Task.Header.Label={0} +Intro.Message=Mit dieser Aktion können Sie einen Tastaturschichttreiber für japanische und koreanische Tastaturen festlegen, da einige Benutzer Tastaturen mit zusätzlichen Tasten haben. Geben Sie einfach den neuen Layer-Treiber aus der Liste unten an und klicken Sie auf OK +CurrentDriver.Label=Aktueller Tastatur-Layout-Treiber: +NewDriver.Label=Neuer Tastatur-Layout-Treiber: +Driver.Already.Label=Dieser Treiber wurde bereits festgelegt +Ok.Button=OK +Cancel.Button=Abbrechen + +[OSRollback] +OSUninstall.Label=Deinstallationsfenster für das Betriebssystem festlegen +Image.Task.Header.Label={0} +Default.OS.Message=Standardmäßig und nach einem Betriebssystem-Update haben Sie 10 Tage Zeit, um zur vorherigen Windows-Version zurückzukehren. Sie können diese Einstellung jedoch ändern, wenn Sie zu einem späteren Zeitpunkt zur alten Betriebssystemversion zurückkehren möchten.{crlf;}{crlf;}Bitte verwenden Sie den numerischen Schieberegler, um die Anzahl der Tage zu erhöhen oder zu verringern, die Sie haben, um zur alten Windows-Version zurückzukehren. Er muss zwischen 2 und 60 liegen. +Amount.Days.Revert.Label=Anzahl der Tage, an denen Sie zur alten Windows-Version zurückkehren müssen: +Ok.Button=OK +Cancel.Button=Abbrechen + +[RollbackWindow.Init] +OnlineOnly.Message=Diese Aktion wird nur bei Online-Installationen unterstützt + +[OSRollback.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[PE.Scratch] +Window.Title=Legen Sie den Scratch-Speicherplatz für Windows PE fest +Header.Title={0} +Description.Message=Der Scratch-Speicherplatz ist die Menge an beschreibbarem Speicherplatz, die auf dem Windows PE-Systemvolume verfügbar ist, wenn sein Inhalt in den Speicher kopiert wird. Bitte geben Sie einen Platz für Kratzer an und klicken Sie auf OK. +Space.Label=Scratch-Größe: +Ok.Button=OK +Cancel.Button=Abbrechen + +[PETargetPath.Target] +Set.Windows.Petarget.Label=Windows PE-Zielpfad festlegen +Image.Task.Header.Label={0} +Target.Dir.Message=Der Zielpfad ist ein Verzeichnis, in das die Windows PE-Dateien kopiert werden, um in die Umgebung zu booten. Bitte geben Sie einen Zielpfad an und klicken Sie auf OK. +TargetPath.Label=Zielpfad: +Ok.Button=OK +Cancel.Button=Abbrechen + +[PETargetPath.Validation] +Target.Least.Message=Der Zielpfad muss mindestens 3 Zeichen und nicht länger als 32 Zeichen sein +Target.Start.Message=Der Zielpfad muss mit einem anderen Buchstaben als A oder B beginnen +DriveLetterFormat.Message=Auf einen Laufwerksbuchstaben muss folgen: +AbsolutePath.Message=Der Zielpfad muss absolut sein und darf keine relativen Elemente enthalten +Target.Contain.Message=Der Zielpfad darf keine Leerzeichen oder Anführungszeichen enthalten + +[SettingsReset] +ResetPreferences.Label=Einstellungen zurücksetzen +ProceedReset.Message=Wenn Sie fortfahren, werden die Einstellungen auf ihre Standardwerte zurückgesetzt. Sobald dieser Vorgang abgeschlossen ist, kehren Sie zum Hauptprogrammfenster zurück.{crlf;}{crlf;}Möchten Sie fortfahren? +Yes.Button=Ja +No.Button=Nein + +[Single.Image] +Image.Seems.Only.Item=Dieses Image scheint nur einen Index zu haben +Cannot.Switch.Index.Message=Sie können nicht zu anderen Indizes wechseln. Wenn Sie die Imageänderungen speichern möchten, können Sie dies über einen neuen, separaten Index tun. +Know.Indexes.Message=Um mehr über die Indizes eines Images oder einige seiner spezifischen Eigenschaften zu erfahren, gehen Sie zu {quot;}Kommandos > Imageverwaltung > Imageinformationen abrufen{quot;} oder klicken Sie hier +Here.LinkText=hier +Ok.Button=OK + +[SplashScreen] +Version.Label=Version {lbrace;}0{rbrace;}.{lbrace;}1{rbrace;}.{lbrace;}2{rbrace;} + +[StarterScript] +AlreadyCreated.Message=Das Starterskript wurde mit einer früheren Version des Starterskript-Editors erstellt und wird mit Eigenschaften gespeichert, die es mit dem aktuellen Format kompatibel machen. Nachdem dies erledigt ist, ist das Starterskript nicht mehr mit früheren Versionen von DISMTools oder dem Starter Script Editor kompatibel.{crlf;}{crlf;}Möchten Sie diese Datei speichern? +Editor.Label=Starter-Skript-Editor +Dialog.Title=Starter-Skript-Editor +SaveError.Label=Fehler speichern +DebugEditor.Label=DISMTools Starter Script Editor Version {0} ({1}_DEBUG){crlf;}{crlf;}{2} +About.Label=Über +Editor.Message=DISMTools Starter Script Editor Version {0}{crlf;}{crlf;}{1} +DebugVersion.Message=DISMTools Starter Script Editor Version {0}_NET2REL ({1}_DEBUG){crlf;}{crlf;}{2} +Version.Message=DISMTools Starter Script Editor Version {0}_NET2REL{crlf;}{crlf;}{1} +ImportExisting.Label=Vorhandenes Skript importieren +Unrecognized.Label=Unerkanntes Skript +ReadFailed.Label=Dateiinhalt konnte nicht gelesen werden +FileMissing.Label=Die Skriptdatei existiert nicht. +ReadOnlyFile.Message=Diese Skriptdatei wurde mit schreibgeschützten Berechtigungen geladen. Wenn Sie Änderungen an diesem Skript vornehmen, müssen Sie diese in einer neuen Skriptdatei speichern oder den Schreibzugriff für dieses Skript aktivieren. +SaveFailed.Message=Changes konnte nicht in der Skriptdatei gespeichert werden. Stellen Sie sicher, dass in der Datei Schreibzugriff vorhanden ist. {crlf;}{crlf;}{0}{crlf;}{crlf;}Um den Schreibzugriff für diese Datei zu aktivieren, verwenden Sie die entsprechende Schaltfläche in der Symbolleiste. +SaveChanges.Label=Möchten Sie die Änderungen in Ihrer Skriptdatei speichern? +Name.Required.Label=Sie müssen einen Namen für dieses Starterskript angeben. +Description.Required.Label=Sie müssen eine Beschreibung für dieses Starterskript angeben. +SaveChanges.Message=Möchten Sie die Änderungen in Ihrer Skriptdatei speichern? +ImportSelected.Message=Das Importieren des ausgewählten Skripts ersetzt vorhandene Inhalte Ihres Skripts. +SupportedScript.Label=Dieses Skript wird vom Starter Script Editor nicht unterstützt. +LoadFailed.Label=Der Inhalt des Skripts konnte nicht geladen werden. +WriteAccess.Message=Der Schreibzugriff für diese Skriptdatei konnte nicht aktiviert werden. Stellen Sie sicher, dass sich das Skript nicht in schreibgeschützten Medien befindet. +NonMonospace.Message=Sie haben eine Schriftart ohne Monospace ausgewählt. Text sieht möglicherweise nicht richtig aus. Willst du weitermachen? +Name.Required.Message=Sie müssen einen Namen für dieses Starterskript angeben. +Description.Required.Message=Sie müssen eine Beschreibung für dieses Starterskript angeben. +Window.Title=Starter-Skript-Editor - {lbrace;}0{rbrace;} +Window.Default=Starter-Skript-Editor +CheckScript.Message=Überprüfen Sie diese Option, wenn dieses Skript Einstellungen enthält, die vom Benutzer{crlf;} konfiguriert werden können, nachdem das Starterskript aus dem Starterskriptbrowser importiert wurde. + +[Tools.ThemeDesigner.Main] +Color.Rgbclick.Label=Aktuelle Farbe: RGB({0}, {1}, {2}). Klicken Sie hier, um in die Zwischenablage zu kopieren + +[ThemeDesigner.Messages] +Loaded.Read.Only.Message=Dieses Theme wurde mit schreibgeschützten Berechtigungen geladen. Wenn Sie Änderungen vornehmen, müssen Sie diese in einer neuen Datei speichern oder den Schreibzugriff aktivieren. +Provide.Name.Label=Sie müssen einen Namen für das Design angeben. +Saved.Done.Label=Das Theme wurde erfolgreich an der angegebenen Stelle gespeichert. +SaveTheme.Label=Das Design konnte nicht gespeichert werden. +Enable.Write.Access.Message=Schreibzugriff für diese Skriptdatei konnte nicht aktiviert werden. Stellen Sie sicher, dass sich das Skript nicht in schreibgeschützten Medien befindet. +ThemeDesigner.Label=Theme Designer +Name.Missing.Label=Themenname fehlt +SaveSuccess.Label=Gespeichert +SaveError.Label=Fehler speichern +DISM.Tools.Designer.Label=DISMTools Theme Designer Version {0}{crlf;}{crlf;}{1}. {2} +About.Label=Über +About.Version.Message=DISMTools Theme Designer Version {0}_NET2REL{crlf;}{crlf;}{1}. {2} +StarterScript.Editor.Label=Starter Script Editor + +[DynaViewer.Messages] +FileExist.Label=Die Datei {quot;}{0}{quot;} existiert nicht. +File.NotFound.Message=Die Datei {quot;}{0}{quot;} existiert nicht. +Log.Version.Label=DynaLog Log Viewer (DynaViewer) Version {0}{crlf;}{crlf;}{1} +About.Version.Message=DynaLog Log Viewer (DynaViewer) Version {0}_NET2REL{crlf;}{crlf;}{1} +Regex.Failure.Label=Regulärer Ausdrucksfehler +RegexInvalid.Message=Der reguläre Ausdruck {1} wurde nicht korrekt geschrieben. Das Cheatsheet kann Ihnen bei den Abfragen helfen.{0}{0} Fehlermeldung: {2} + +[DynaViewer] +Proced.Entries.Double.Label=Verarbeitete Einträge: {lbrace;}0{rbrace;}. Doppelklicken Sie auf einen Eintrag, um dessen Informationen zu erhalten. +Regex.Expressions.Label=Verwenden Sie reguläre Ausdrücke +MatchCase.Label=Match-Fall +Processed.Entries.Message=Verarbeitete Einträge: {lbrace;}0{rbrace;}{lbrace;}1{rbrace;}. Doppelklicken Sie auf einen Eintrag, um dessen Informationen zu erhalten. +FilteredEntries.Suffix=; Gefilterte Einträge: {lbrace;}0{rbrace;} + +[ThemeDesigner.Main] +Window.Title=DISMTools Theme Designer - {lbrace;}0{rbrace;} +Window.DefaultTitle=DISMTools Theme Designer + +[Unattend.Scripts] +ImportDone.Message=Nachdem dieses Skript importiert wurde, überprüfen Sie bitte seinen Code auf alle Optionen, die Sie festlegen können. Auf diese Weise können Sie sein Verhalten anpassen. +Loaded.Message=Die Starterskripte konnten nicht geladen werden. +Refreshed.Message=Die Starterskripte konnten nicht aktualisiert werden. + +[UnattendMgr] +Unattended.AnswerFile.Label=Unbeaufsichtigter Antwortdateimanager +ProjectPath.Label=Projektpfad: +Browse.Button=Durchsuche +OpenFile.Button=Datei öffnen +Open.File.Location.Button=Dateispeicherort öffnen +ApplyImage.Button=Auf Image anwenden +FileName.Column=Dateiname +Created.Column=Erstellt +LastModified.Column=Zuletzt geändert +LastAccessed.Column=Zuletzt aufgerufen + +[Unattend.Scan] +FolderMissing.Message=Der Ordnerpfad existiert nicht +ElementsFound.Message=Suche abgeschlossen, ohne dass Elemente gefunden wurden + +[Updater.Main] +Minimize.Label=Minimieren +Close.Label=Schließen +DISM.Tools.Update.Label=DISMTools-Updateprüfung – Version {0} +UpdateInfo.Label=Informationen aktualisieren +Downloading.Update.Label=Herunterladen des Updates +Prepare.Update.Install.Label=Vorbereitung der Update-Installation +InstallingUpdate.Label=Installieren des Updates +Downloading.Download.Label=Download des Updates ({0}%) +Preparing.Install.Item=Vorbereitung der Update-Installation (80 %) +Preparing.Install.Label=Vorbereitung der Update-Installation ({0}%) +Prepare.Update.Install.Item=Vorbereitung der Update-Installation (100 %) +Installing.Update.Item=Installieren des Updates (0%) +Installing.Update.Label=Installieren des Updates ({0}%) +InstallingComplete.Item=Installieren des Updates (100 %) + +[Updater.Main.Messages] +BranchRequired.Message=Der Branch-Parameter ist notwendig, um nach Updates suchen zu können +Couldn.Tfetch.Label=Wir konnten die erforderlichen Aktualisierungsinformationen nicht abrufen. Grund:{crlf;}{0} +Updates.Available.None.Label=Es sind keine Updates verfügbar + +[Updater.Main.Validation] +CurrentVersion.Warning=Ihre aktuelle Version von DISMTools funktioniert möglicherweise nicht mehr richtig, wenn Sie sie weiterhin verwenden. Es wird empfohlen, dass Sie die neueste Version manuell herunterladen und manuell extrahieren/installieren.{crlf;}{crlf;}Keine Sorge. Ihre Einstellungen bleiben erhalten. + +[Utilities.WMIHelper] +Wmierror.Message=WMI-Fehler + +[WDSImageCopy.ImageInfo] +Gather.ImageFile.Message=Es konnten keine Informationen zu dieser Imagedatei gesammelt werden. Grund:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[WDSImageCopy.Messages] +Either.Source.Message=Entweder existiert die Quell-Imagedatei nicht oder Sie haben keine Imagedatei bereitgestellt. Bitte geben Sie eine gültige Imagedatei an und versuchen Sie es erneut. +Group.Has.None.Message=Es wurde keine Gruppe angegeben. Bitte geben Sie eine neue oder eine bestehende WDS-Gruppe an und versuchen Sie es erneut. +Images.Have.None.Label=Es wurden keine Image zum Hinzufügen zu Ihrem WDS-Server ausgewählt. +Image.Add.Message=Stellen Sie sicher, dass das von Ihnen hinzugefügte Image mit Sysprep.{crlf;}{crlf;}vorbereitet wurde. Wenn Sie dies nicht getan haben, klicken Sie auf Nein, bereiten Sie das Image vor und starten Sie den Vorgang erneut. Sie müssen dieses Fenster nicht schließen.{crlf;}{crlf;}Möchten Sie dieses Image zu Ihrem WDS-Server hinzufügen? +Wizard.Support.Message=Dieser Assistent unterstützt diesen Computer nicht. Stellen Sie sicher, dass auf diesem Computer Windows Server läuft und dass die Rolle „Windows Deployment Services“ installiert ist. +Boot.Image.Detected.Message=Ein Boot-Image wurde erkannt. Sie sollten diese nicht als InstallationsImage auf Ihrem Server verwenden. +UploadSuccessful.Label=Die Image wurden erfolgreich hochgeladen. +Images.Uploaded.Done.Label=Die Image wurden nicht erfolgreich hochgeladen. + +[WDSImageCopy.Progress] +UploadingImages.Label=Image hochladen +Image.Uploads.Done.Label=Image-Uploads abgeschlossen. + +[WimScriptEditor] +ConfigList.Title=DISM-Konfigurationslisteneditor +Config.List.Allows.Message=Mit dem Konfigurationslisten-Editor können Sie Dateien und/oder Ordner während Aktionen ausschließen, mit denen Sie diese Dateien angeben können, z. B. beim Aufnehmen eines Images. Sie können die Einstellungen entweder über die grafische Oberfläche angeben oder die Konfigurationsdatei manuell erstellen. Wenn Sie fertig sind, klicken Sie auf das Symbol Speichern. +ExclusionList.Group=Ausschlussliste +Exclusion.Exception.List=Ausschlussausnahmeliste +Compression.Exclusion.List=Komprimierungsausschlussliste +Add.Button=Hinzufügen +Edit.Button=Editieren +Remove.Button=Entfernen +Config.List.Load.Title=Geben Sie die zu ladende Konfigurationsliste an +Location.Save.Config.Title=Geben Sie den Speicherort an, an dem die Konfigurationsliste gespeichert werden soll +New.Tooltip=Neu +Open.Button=Open +Save.Button=Speichern +Toggle.Word.Wrap.Tooltip=Word Wrap umschalten +Help.Tooltip=Hilfe +Tools.Label=Werkzeuge +Exclude.User.One.Button=Benutzer-OneDrive-Ordner ausschließen +New.Config.List.Label=Neue Konfigurationsliste - DISM-Konfigurationslisten-Editor +ConfigList.FileTitle={0} - DISM-Konfigurationslisteneditor +AddList.Label=Eintrag {0} hinzufügen +AddEntry.Label=Eintrag {0} hinzufügen + +[WimScriptEditor.Actions] +Save.Config.List.Prompt=Möchten Sie diese Konfigurationslistendatei speichern? +ConfigList.Title={0} - DISM-Konfigurationslisteneditor +ConfigList.FileTitle={0}{1} - DISM-Konfigurationslisteneditor + +[WimScriptEditor.Close] +Save.Config.List.Prompt=Möchten Sie diese Konfigurationslistendatei speichern? +ConfigList.FileTitle={0}{1} - DISM-Konfigurationslisteneditor +ConfigList.Title={0} - DISM-Konfigurationslisteneditor + +[WimScriptEditor.Editor] +ConfigList.Title={0} - DISM-Konfigurationslisteneditor +ConfigList.ModifiedTitle={0} (modifiziert) - DISM-Konfigurationslisten-Editor + +[WimScriptEditor.OpenFile] +ConfigList.Title={0} - DISM-Konfigurationslisteneditor + +[WimScriptEditor.Content] +ConfigList.Title={0} - DISM-Konfigurationslisteneditor +ConfigList.ModifiedTitle={0} (modifiziert) - DISM-Konfigurationslisten-Editor + +[WindowsImage.MountMode] +Yes.Button=Ja +No.Button=Nein + +[WindowsImage.MountStatus] +Ok.Button=OK +NeedsRemount.Label=Muss neu gemountet werden +Invalid.Label=Ungültig + +[WindowsServices.Helper] +Service.Backed.Message=Aktuelle Serviceinformationen konnten nicht gesichert werden. Im Falle eines Fehlers bei der Serviceverwaltung werden Backups verwendet. Sie können fortfahren, aber auf eigenes Risiko.{crlf;}{crlf;}Das Ziel-Image funktioniert nach der Konfiguration möglicherweise nicht richtig oder überhaupt nicht und Sie können es mit der vorherigen Dienstkonfiguration nicht wiederherstellen, es sei denn, Sie haben es zuvor selbst gesichert.{crlf;}{crlf;}Möchten Sie fortfahren, ohne aktuelle Dienstinformationen zu sichern? +Service.Backed.Up.Title=Serviceinformationen konnten nicht gesichert werden + +[PEHelper.WDSImageGroup] +CreateFailed.Message=Die angegebene WDS-Imagegruppe konnte nicht erstellt werden. +LoadFailed.Message=Imagegruppen konnten nicht abgerufen werden. +SpecifyGroup.Button=Geben Sie eine Gruppe in Ihrem WDS-Server an +Action.Choose.Label=Aktion wählen: +Already.Exists.Label=Diese Gruppe existiert bereits. +Upload.RadioButton=Laden Sie dieses Image in die folgende WDS-Imagegruppe hoch: +CreateGroup.RadioButton=Erstelle die folgende WDS-Imagegruppe für mich und lade dieses Image dort hoch: +Refresh.Button=Aktualisieren +Ok.Button=OK +Cancel.Button=Abbrechen + +[Casters.OfflineInstall.Boot] +Required.Message=Ein Boot bis zum Ziel-Image ist erforderlich, um dieses Paket vollständig zu installieren +NotRequired.Message=Ein Boot bis zum Ziel-Image ist nicht erforderlich, um dieses Paket vollständig zu installieren + +[PrgSetup.LogPreview] +Packages.Add.Message=Pakete zum gemounteten Image hinzufügen{crlf;}- Paketquelle: C:\w100-glb{crlf;}- Additionsvorgang: selective{crlf;}- Anwendbarkeitsprüfungen ignorieren? No{crlf;}- Paketzusatz verhindern, wenn Online-Aktionen durchgeführt werden müssen? No{crlf;}- Image festschreiben, nachdem Operationen durchgeführt wurden? Ja{crlf;}Aufzählung der hinzuzufügenden Pakete. Bitte warten{crlf;}Gesamtzahl der Pakete: 128{crlf;}{crlf;}Verarbeitung von 128 Paketen{crlf;}Paket 1 von 128 + +[Options.LogPreview] +Packages.Add.Message=Pakete zum gemounteten Image hinzufügen{crlf;}- Paketquelle: C:\w100-glb{crlf;}- Additionsvorgang: selective{crlf;}- Anwendbarkeitsprüfungen ignorieren? No{crlf;}- Paketzusatz verhindern, wenn Online-Aktionen durchgeführt werden müssen? No{crlf;}- Image festschreiben, nachdem Operationen durchgeführt wurden? Ja{crlf;}Aufzählung der hinzuzufügenden Pakete. Bitte warten{crlf;}Gesamtzahl der Pakete: 128{crlf;}{crlf;}Verarbeitung von 128 Paketen{crlf;}Paket 1 von 128 + +[PrgSetup.ProgressPreview] +Wait.Label=Bitte warten +ImageIndexes.Message=Image-Index abrufen + +[Options.ProgressPreview] +Wait.Label=Bitte warten +ImageIndexes.Message=Image-Index abrufen + +[DynaViewer.Designer.Main] +Dyna.Log.File.Label=DynaLog-Protokolldatei: +LogFiles.Filter=Protokolldateien|*.log +Dyna.Log.Event=DynaLog-Ereignisprotokolle +EventTimestamp.Column=Zeitstempel +ProcessID.Column=Prozess-ID +EventCaller.Column=Aufrufer +Message.Column=Nachricht +Browse.Button=Durchsuche +Refresh.Button=Aktualisieren +Processed.Entries.Label=Anzahl der verarbeiteten Einträge: +About.ActionButton=Über +LightCM.Label=Licht +DarkCM.Label=Dunkel +SystemCM.Label=System +ColorMode.Button=Farbmodus +PID.Label=PID: +EventCaller.Label=Aufrufer: +Options.Heading.Label=Optionen: +RegexCB.Label=.* +Regex.Failure.Btn.Label=! +Aa.Label=Aa +Message.Label=Nachricht: +Dyna.Log.Viewer.Label=DynaLog-Protokoll + +[DynaViewer.Designer.EventProps] +Num.Events.Label=Informationen zum Ereignis von : +EventTimestamp.Label=Event-Zeitstempel: +MethodCallers.Group=Methodenanrufer +Field.Empty.Link=Warum kann das Feld oben leer sein? +Method.Function.Label=Die oben beschriebene Methode/Funktion wurde von method/function aufgerufen: +Logged.Method.Function.Label=Das Ereignis wurde nach Methode/Funktion protokolliert: +PID.Label=PID: +EventMessage.Label=Ereignisnachricht: +NextEvent.Label=&Nächstes +PreviousEvent.Label=&Vorheriges Ereignis +EventProps.Label=Ereigniseigenschaften + +[DynaViewer.Designer.Regex] +CheatsheetHelp.Label=Verwenden Sie das folgende Cheatsheet, wenn Sie Nachrichtenabfragen mit regulären Ausdrücken durchführen: +CharacterClasses.Message=Zeichenklassen:{crlf;}. Jedes Zeichen außer newline{crlf;}\d Digit [0-9]{crlf;}\D Non-digit{crlf;}\w Word character [A-Za-z0-9_]{crlf;}\W Non-word character{crlf;}\s Whitespace{crlf;}\S Non-whitespace{crlf;}[abc] Eines von a, b, oder c{crlf;}[^abc] Nicht a, b oder c{crlf;}[az] Kleinbuchstabe{crlf;}{crlf;}Quantifizierer:{crlf;}{crlf;}* 0 oder mehr{crlf;}- 1 oder mehr{crlf;}{crlf;}? 0 oder 1{crlf;}{lbrace;}n{rbrace;} Genau n mal{crlf;}{lbrace;}n,{rbrace;} n oder mehr mal{crlf;}{lbrace;}n,m{rbrace;} Zwischen n und m mal{crlf;}{crlf;}Anker:{crlf;}^ Anfang von string/line{crlf;}$ Ende von string/Zeile{crlf;}\b Wortgrenze{crlf;}\B Keine Wortgrenze{crlf;}{crlf;}Gruppen:{crlf;}(abc) Erfassende Gruppe{crlf;}(?:abc) Nicht erfassende Gruppe{crlf;}(?) Benannte Gruppe{crlf;}\1 Rückverweisgruppe 1{crlf;}{crlf;}Häufige Beispiele:{crlf;}^\d+$ Nur Ziffern{crlf;}^[A-Za-z]+$ Nur Buchstaben{crlf;}^\w+@\w+.\w+$ Grundlegende E-Mail{crlf;}^\d{lbrace;}4{rbrace;}-\d{lbrace;}2{rbrace;}-\d{lbrace;}2{rbrace;}$ Datum JJJJ-MM-TT +PinTop.CheckBox=Nach oben pinnen +RegexCheatsheet.Label=Regex-Hilfe + +[StarterScript.Designer.Main] +New.StarterScript.Ctrl.Label=Neues Starter-Skript (Strg + N) +Open.StarterScript.Label=Starter-Skriptdatei öffnen (Strg + O) +Save.StarterScript.Label=Starter-Skriptdatei speichern (Strg + S) +Save.StarterScript.Tooltip=Starter-Skriptdatei speichern (Strg + S){crlf;}Halten Sie SHIFT gedrückt, während Sie auf das Symbol klicken, um beim Speichern die Zielversion für das Starterskript anzugeben. +About.ToolButton=About +Change.Color.Mode.Button=Farbmodus ändern +Light.Label=Licht +Dark.Label=Dunkel +System.Label=System +SaveScript.Ctrl.Shift.Label=Starter-Skriptdatei speichern als (Strg + Umschalt + S) +Enable.Write.Access.Button=Schreibzugriff aktivieren +Configure.Target.Button=Zielskriptversion konfigurieren +Change.Editor.Font.Button=Editorschriftart ändern +NormalizeSpacing.Button=Abstand normalisieren +Starter.Scripts.Message=Starter Scripts können Sie Kommandos ausführen, wenn Sie Windows-Image mit Ihrer unbeaufsichtigten Antwortdatei installieren. Verwenden Sie diese Anwendung, um Ihre eigenen Starterskripte zu erstellen, die Sie mit anderen Personen teilen können, oder um vorhandene Starterskripte an Ihre Bedürfnisse anzupassen. {crlf;}{crlf;}Verwenden Sie die Schaltflächen in der Symbolleiste, um Starterskripte zu erstellen, zu öffnen und zu speichern. +LineColumn.Label=Zeile, Spalte +WordWrap.CheckBox=Wortumschlag +Import.Existing.Button=Vorhandenes Skript importieren +ScriptCode.Label=Skriptcode: +ScriptLanguage.Label=Skriptsprache: +Script.Description.Label=Skriptbeschreibung: +ScriptName.Label=Skriptname: +ScriptOptions.CheckBox=Script enthält konfigurierbare Optionen +Starter.Scripts.Dtss.Filter=Starter-Skripte|*.dtss +BatchScripts.Filter=Batch-Skripte|*.bat;*.cmd|PowerShell-Skripte|*.ps1|Visual Basic-Skripte|*.vbs;*.vbe;*.wsf;*.wsc|JScript-Skripte|*.js;*.jse +Import.Existing.Script.Title=Vorhandenes Skript importieren +StarterScript.Editor.Label=Starter Script Editor + +[StarterScript.Designer.Version] +Ok.Button=OK +Cancel.Button=Abbrechen +ConfiguredScript.Message=Dieses Starterskript kann so konfiguriert werden, dass es mit bestimmten Versionen von DISMTools und dem Starter Script Editor funktioniert. Wählen Sie die Version aus, die Sie mit diesem Skript ansprechen möchten, und klicken Sie auf „OK“: +Target.Future08.RadioButton=Dieses Starterskript zielt auf DISMTools 0.8 und zukünftige Versionen ab +Target.Legacy073.RadioButton=Dieses Starterskript zielt auf DISMTools 0.7.3 ab +TargetVersion.Label=Wählen Sie die Zielversion für dieses Skript + +[ThemeDesigner.Designer.Main] +ThemeColors.Group=Themenfarben +OptionFour.Label=4 +OptionThree.Label=3 +OptionTwo.Label=2 +OptionOne.Label=1 +Change.Button=Ändern +Bg.Color.Inner.Label=Hintergrundfarbe für innere Abschnitte: +ForegroundColor.Label=Vordergrundfarbe: +Inactive.Colors.Label=(Inaktive Farben werden von der Theme-Engine berechnet) +AccentColors.Label=Akzentfarben: +BackgroundColor.Label=Hintergrundfarbe: +DISM.Tools.Dark.CheckBox=DISMTools sollte Glyphen im Dunkelmodus verwenden +ThemeName.Label=Designname: +See.Changes.Live.Label=Sehen Sie Ihre Änderungen live im Vorschaubereich unten: +NewTheme.Label=Neues Thema +Open.Theme.File.Button=Theme-Datei öffnen +Save.Theme.File.Button=Designdatei speichern +About.Button=About +Value.Option4.Label=4 +Value.Option3.Label=3 +Value.Option2.Label=2 +Heuristic.Reasoning.Message=Heuristisches Denken ist Denken, das nicht als endgültig und streng, sondern nur als vorläufig und plausibel angesehen wird und dessen Zweck darin besteht, die Lösung des vorliegenden Problems zu finden. Wir sind oft gezwungen, heuristische Überlegungen anzustellen. Wir werden völlige Gewissheit erlangen, wenn wir die vollständige Lösung erhalten, aber bevor wir Gewissheit erlangen, müssen wir uns oft mit einer mehr oder weniger plausiblen Vermutung zufrieden geben. Möglicherweise benötigen wir das Vorläufige, bevor wir das Finale erreichen. +Inactivecontrol.Label=INAKTIV +Activecontrol.Label=AKTIV +Label.Inner.Section.Label=Label im inneren Abschnitt +Value.Option1.Label=1 +TestControl.Label=Test 1 +Theme.Files.Ini.Filter=Designdateien|*.ini +SaveFile.Filter=Designdateien|*.ini +Change.Color.Mode.Button=Farbmodus ändern +Light.Label=Licht +Dark.Label=Dunkel +System.Label=System +Enable.Write.Access.Button=Schreibzugriff aktivieren +DISM.Tools.Theme.Label=DISMTools Theme Designer + +[Updater.Designer.Main] +DISM.Tools.Update.Label=DISMTools-Updateprüfung – Version +ProductUpdates.Label=Produktaktualisierungen +Update.Button=Update +View.Release.Notes.Link=Release Notes anzeigen +VersionInfo.Label=Versionsinformationen +Close.Open.Message=Bitte schließen Sie alle geöffneten DISMTools-Fenster, während Sie alle geladenen Projekte speichern, und klicken Sie dann auf {quot;}Update{quot;} +NewVersion.Label=Es steht eine neue Version zum Herunterladen und Installieren zur Verfügung: +Progress.Label=Fortschritt +CheckingUpdates.Label=Überprüfen nach Updates +Launch.Ready.CheckBox=Starten, wenn bereit +Finishing.Update.Label=Fertigstellung der Update-Installation +InstallingUpdate.Label=Installieren des Updates +Prepare.Update.Install.Label=Vorbereitung der Update-Installation +Downloading.Update.Label=Herunterladen des Updates +Update.Take.Time.Label=Die Installation des Updates kann einige Zeit in Anspruch nehmen. +Wait.Update.Label=Bitte warten Sie, während wir Ihre Kopie von DISMTools aktualisieren. Dies kann einige Zeit dauern. +Updating.DISM.Tools.Label=Aktualisieren von DISMTools +Launch.Button=Start +Version.Come.New.Message=Diese Version enthält möglicherweise neue Einstellungen, die Sie zuvor möglicherweise nicht festgelegt haben. Ihre alte Einstellungsdatei wird auf diese Version migriert. +DISM.Tools.Updated.Label=DISMTools wurde erfolgreich aktualisiert. Sie können jetzt die neuen Funktionen dieser Version genießen. +UpdateComplete.Label=Update abgeschlossen + +[PEHelper.Designer.Main] +WhatWant.Label=Was möchten Sie tun? +Install.Operating.Link=Installieren Sie ein Betriebssystem +Restart.Install.Media.Link=Neustart auf Installationsmedien +StartPXE.Link=Starten Sie einen PXE-Helferserver für die Netzwerkinstallation +Exit.Button=Ende +Explore.Contents.Disc.Link=Inhalte dieser Disc erkunden +Prepare.System.Image.Link=System für die Imagefassung vorbereiten +PE.Helper.Message=PE-Helferskripte und -Komponenten (c) 2024-2026 CodingWonders SoftwareCompilation Scripts (c) 2022 CT Tech Group LLCFOG PowerShell API (c) 2020 JJ Fullmer +StartPXE.Label=Starten Sie einen PXE-Helferserver für die Netzwerkinstallation +Back.Button=Zurück +Copy.Install.Image.Link=InstallationsImage auf WDS-Server kopieren +Copy.Boot.Image.Link=Boot-Image auf WDS-Server kopieren +StartPXE.PXEFOG.Link=Start PXE Helper Server für FOG +StartPXE.PXE.Windows.Link=Start PXE Helper Server für Windows-Bereitstellungsdienste +DISM.Tools.PE.Label=DISMTools Vorinstallationsumgebung + +[PEHelper.Designer.ServerPort] +Ok.Button=OK +Cancel.Button=Abbrechen +Components.Disc.Rely.Message=Serverkomponenten auf dieser Disc sind auf Ports angewiesen, um Anfragen von Clients abzuhören. Wenn ein Port von einem anderen Programm oder Dienst verwendet wird, können Sie diesen Dialog verwenden, um einen anderen Port für die Serverkomponenten anzugeben.{crlf;}{crlf;}Der hier angegebene Port wird verwendet, bis Sie das Hauptmenü schließen. Wenn Sie auf „OK“ klicken, wird die Serverkomponente über diesen Port gestartet. Andernfalls wird es entweder über den Standardport oder den zuvor konfigurierten Port gestartet. +Port.Server.Label=Verwenden Sie den folgenden Port für Serverkomponenten: +Default.Button=Standard +Check.Button=Überprüfen Sie, ob dieser Port verwendet wird +ServerComponents.Label=Geben Sie einen Port für Serverkomponenten an + +[PEHelper.Designer.Sysprep] +Responsibility.Message=Das Sysprep-Vorbereitungstool, das für die Vorbereitung von Systemen für die Imagefassung verantwortlich ist, kann in 2 Modi betrieben werden: Automatischer Modus und Manueller Modus.{crlf;}{crlf;}- Der automatische Modus führt Prüfungen durch und bereitet Ihren Computer automatisch vor und verallgemeinert ihn, wenn diese Prüfungen bestanden werden. Sie müssen nicht mit dem Tool interagieren, es sei denn, die Prüfungen schlagen fehl oder werden mit Warnungen abgeschlossen. Es wird auch ein Standardsatz von Optionen für Sysprep verwendet{crlf;}- Im manuellen Modus können Sie die Starteinstellungen von Sysprep konfigurieren und jeden Schritt des Tools in Ihrem eigenen Tempo durchgehen. Dies wird für fortgeschrittene Benutzer empfohlen{crlf;}{crlf;}Wählen Sie den Modus aus, den Sie verwenden möchten: +Cancel.Link=Start dieses Tools abbrechen +ManualMode.Link=Start im manuellen Modus (erweitert) +AutomaticMode.Link=Start im Automatikmodus (empfohlen) +CaptureImage.CheckBox=Image nach der Vorbereitung des Systems erfassen +CopyRegistry.CheckBox=Registrierungsänderungen und andere Einstellungen in neue Benutzerprofile kopieren +PrepareCapture.Label=System für die Imagefassung vorbereiten + +[PEHelper.Designer.WDSArch] +Okbutton.Button=OK +CancelButton.Button=Abbrechen +Architecture.Label=Zielarchitektur: +Architecture.Label.Label=Architektur für Ziel-WDS-Boot-Image angeben + +[PEHelper.Designer.WDSGroup] +Ok.Button=OK +Cancel.Button=Abbrechen +Action.Choose.Label=Aktion wählen: +Refresh.Button=Aktualisieren +Upload.RadioButton=Laden Sie dieses Image in die folgende WDS-Imagegruppe hoch: +CreateGroup.RadioButton=Erstelle die folgende WDS-Imagegruppe für mich und lade dieses Image dort hoch: +Already.Exists.Label=Diese Gruppe existiert bereits. +SpecifyGroup.Button=Geben Sie eine Gruppe in Ihrem WDS-Server an + +[PEHelper.Sysprep] +Responsibility.Message=Das Sysprep-Vorbereitungstool, das für die Vorbereitung von Systemen für die Imagefassung verantwortlich ist, kann in 2 Modi betrieben werden: Automatischer Modus und Manueller Modus.{crlf;}{crlf;}- Der automatische Modus führt Prüfungen durch und bereitet Ihren Computer automatisch vor und verallgemeinert ihn, wenn diese Prüfungen bestanden werden. Sie müssen nicht mit dem Tool interagieren, es sei denn, die Prüfungen schlagen fehl oder werden mit Warnungen abgeschlossen. Es wird auch ein Standardsatz von Optionen für Sysprep verwendet{crlf;}- Im manuellen Modus können Sie die Starteinstellungen von Sysprep konfigurieren und jeden Schritt des Tools in Ihrem eigenen Tempo durchgehen. Dies wird für fortgeschrittene Benutzer empfohlen{crlf;}{crlf;}Wählen Sie den Modus aus, den Sie verwenden möchten: +AutomaticMode.Link=Start im Automatikmodus (empfohlen) +ManualMode.Link=Start im manuellen Modus (erweitert) +Cancel.Link=Start dieses Tools abbrechen +CaptureImage.CheckBox=Image nach der Vorbereitung des Systems erfassen +CopyRegistry.CheckBox=Registrierungsänderungen und andere aktuelle Einstellungen für neue Benutzerprofile kopieren + +[Progress.LogText] +Of.Word={space;}von{space;} +Creating.Project.Structure=Projektstruktur erstellen +Project.Created.Successfully=Projekt erfolgreich erstellt. +An.Error.Has.Occurred.Please.Read.The.Details=Es ist ein Fehler aufgetreten. Bitte lesen Sie die Details unten:{space;} +Debugging.Information=Debuginformationen:{space;} +Appending.Mount.Directory.To.Specified.Target.Image=Anhängen des Mount-Verzeichnisses an das angegebene Ziel-Image +Options=Optionen: +Source.Image.Directory=- Quell-Imageverzeichnis:{space;} +Destination.Image.File=- Ziel-Imagedatei:{space;} +Destination.Image.Name=- Ziel-Imagename:{space;} +Destination.Image.Description=- Ziel-Imagebeschreibung:{space;} +None.Specified=(keine angegeben) +Configuration.List.File.Not.Specified=- Konfigurationslistendatei: nicht angegeben +Configuration.List.File=- Konfigurationslistendatei:{space;} +WARNING.The.Configuration.List.File.Does.Not.Exist={space;}{space;}{space;}WARNUNG: Die Konfigurationslistendatei existiert nicht im Dateisystem. Datei überspringen +Append.Image.With.WIMBOOT.Configuration=- Image mit WIMBoot-Konfiguration anhängen?{space;} +Yes=Ja +No=Nein +Make.Image.Bootable=- Image bootfähig machen?{space;} +Verify.Image.Integrity=- Image-Integrität überprüfen?{space;} +Check.For.File.Errors=- Auf Dateifehler prüfen?{space;} +Use.The.Reparse.Point.Tag.Fix=- Verwenden Sie den Fix des Reparse-Point-Tags?{space;} +Capture.Extended.Attributes=- Erweiterte Attribute erfassen?{space;} +Gathering.Error.Level=Erfassungsfehlerstufe +Error.Level.0x={space;}{space;}{space;}{space;}Fehlerstufe: 0x +Error.Level={space;}{space;}{space;}{space;}Fehlerebene:{space;} +Applying.Image=Image anwenden +Source.Image.File=- Quell-Imagedatei:{space;} +Index.To.Apply=- Zu anwendender Index:{space;} +Target.Directory=- Zielverzeichnis:{space;} +Split.FFU.SFU.File.Pattern.Not.Specified.Not=- Split-FFU-Dateimuster (SFU): nicht angegeben/verwendet keine SFU-Datei +Split.FFU.SFU.File.Pattern=- Split FFU (SFU) Dateimuster:{space;} +Verify.Image.Integrity.Yes=- Image-Integrität überprüfen? Ja +Verify.Image.Integrity.No=- Image-Integrität überprüfen? Nein +Check.For.File.Errors.Yes=- Auf Dateifehler prüfen? Ja +Check.For.File.Errors.No=- Auf Dateifehler prüfen? Nein +Use.Reparse.Point.Tag.Fix.Yes=- Verwenden Sie den Fix für das Wiederholungspunkt-Tag? Ja +Use.Reparse.Point.Tag.Fix.No=- Verwenden Sie den Fix für das Wiederholungspunkt-Tag? Nein +Split.WIM.SWM.File.Pattern.Not.Specified.Not=- Split WIM (SWM)-Dateimuster: nicht angegeben/verwendet keine SWM-Datei +Split.WIM.SWM.File.Pattern=- Split WIM (SWM) Dateimuster:{space;} +Validate.For.Trusted.Desktop.Yes=- Für Trusted Desktop validieren? Ja +Validate.For.Trusted.Desktop.No.Not.Supported=- Für vertrauenswürdigen Desktop validieren? Nein/Nicht unterstützt +Apply.Using.WIMBOOT.Configuration.Yes=- Mit der WIMBoot-Konfiguration anwenden? Ja +Apply.Using.WIMBOOT.Configuration.No=- Mit der WIMBoot-Konfiguration anwenden? Nein +Use.Compact.Mode.Yes=- Kompakten Modus verwenden? Ja +Use.Compact.Mode.No=- Kompakten Modus verwenden? Nein +Apply.Using.Extended.Attributes.Yes=- Mit erweiterten Attributen anwenden? Ja +Apply.Using.Extended.Attributes.No=- Mit erweiterten Attributen anwenden? Nein +Capturing.Directory=Verzeichnis erfassen +Source.Directory=- Quellverzeichnis:{space;} +Destination.Image=- Ziel-Image:{space;} +Captured.Image.Name=- Name des aufgenommenen Images: {space;} +Captured.Image.Description.None.Specified=- Beschreibung des aufgenommenen Images: keine angegeben +Captured.Image.Description=- Beschreibung des aufgenommenen Images: {space;} +Compression.Type.None=- CompressionType: keine +Compression.Type.Default=- CompressionType: Standard +Capturing.Image=Image aufnehmen +Compression.Type.Fast=- CompressionType: schnell +Compression.Type.Maximum=- CompressionType: maximal +Mark.Image.As.Bootable.Yes=- Image als bootfähig markieren? Ja +Mark.Image.As.Bootable.No=- Image als bootfähig markieren? Nein +Check.Image.Integrity.Yes=- Image-Integrität prüfen? Ja +Check.Image.Integrity.No=- Image-Integrität prüfen? Nein +Verify.File.Errors.Yes=- Dateifehler überprüfen? Ja +Verify.File.Errors.No=- Dateifehler überprüfen? Nein +Use.The.Reparse.Point.Tag.Fix.Yes=- Verwenden Sie den Reparse Point-Tag-Fix? Ja +Use.The.Reparse.Point.Tag.Fix.No=– Verwenden Sie den Reparse Point-Tag-Fix? Nein +Append.With.WIMBOOT.Configuration.Yes=- Mit WIMBoot-Konfiguration anhängen? Ja +Append.With.WIMBOOT.Configuration.No=- Mit WIMBoot-Konfiguration anhängen? Nein +Capture.Extended.Attributes.Yes=- Erweiterte Attribute erfassen? Ja +Capture.Extended.Attributes.No=- Erweiterte Attribute erfassen? Nein +Cleaning.Up.Mount.Points=Bereinigung der Montagepunkte +This.Can.Take.Some.Time.Depending.On.The=Dies kann einige Zeit dauern, abhängig von den an dieses System angeschlossenen Laufwerken. +Saving.Changes=Änderungen speichern +Mount.Directory=- Verzeichnis einbinden: {space;} +Removing.Volume.Images.From.File=Entfernen von Volume-Imagen aus der Datei +Source.Image=- Quell-Image:{space;} +Removing.Volume.Images=Entfernen von VolumenImagen +Error.Level.2={space;}Fehlerebene:{space;} +Error.Level.0x.2={space;}Fehlerstufe: 0x +Exporting.The.Specified.Image.To.A.Destination.Image=Exportieren des angegebenen Images in ein Ziel-Image +Source.Image.Index=- Quell-Imageindex:{space;} +Compression.Type.No.Compression=- CompressionType: keine Komprimierung +Compression.Type.Fast.Compression=- CompressionType: schnelle Komprimierung +Compression.Type.Maximum.Compression=- CompressionType: maximale Komprimierung +Compression.Type.ESD.Conversion.Recovery=- CompressionType: ESD-Konvertierung (Wiederherstellung) +Mark.The.Image.As.Bootable=- Image als bootfähig markieren?{space;} +Check.Image.Integrity.Before.Exporting.The.Image=- Image-Integrität prüfen, bevor das Image exportiert wird?{space;} +NOTE.The.Source.Image.Contains.An.Asterisk.Sign=HINWEIS: Das Quell-Image enthält ein Sternchen (*) im Dateinamen, um alle SWM-Dateien zusammenzuführen +Mounting.Image=Mounten von Image +Image.File=- Imagedatei:{space;} +Image.Index=- Imageindex:{space;} +Mount.Point=- Mount-Punkt:{space;} +Mount.Image.With.Read.Only.Permissions.Yes=- Image mit schreibgeschützten Berechtigungen mounten? Ja +Mount.Image.With.Read.Only.Permissions.No=- Image mit schreibgeschützten Berechtigungen mounten? Nein +Optimize.Mount.Time.Yes=- Mount-Zeit optimieren? Ja +Optimize.Mount.Time.No=- Mount-Zeit optimieren? Nein +Optimizing.Windows.Image=Optimierung des Windows-Images +Source.Image.To.Optimize=- Quell-Image zur Optimierung: {space;} +Partition.To.Optimize=- Zu optimierende Partition:{space;} +Default.Partition.In.The.FFU.Will.Be.Optimized={space;}(Standardpartition in der FFU wird optimiert) +Getting.Error.Level=Fehlerstufe abrufen +Optimization.Mode=- Optimierungsmodus:{space;} +Reduce.Online.Configuration.Time=Reduzieren Sie die Online-Konfigurationszeit +Prepare.Image.For.WIMBOOT.System=Image für WIMBoot-System vorbereiten +Reloading.Servicing.Session=Wartungssitzung neu laden +Splitting.FFU.File.Into.SFU.Files=Aufteilen einer FFU-Datei in SFU-Dateien +Source.Image.File.To.Split=- Quell-Imagedatei zum Aufteilen: {space;} +Maximum.Size.Of.The.Split.Images.In.MB=- Maximale Größe der geteilten Image (in MB):{space;} +Name.And.Path.Of.The.Target.SFU.File=- Name und Pfad der Ziel-SFU-Datei:{space;} +Check.Integrity.Before.Splitting.This.Image=- Integrität prüfen, bevor dieses Image aufgeteilt wird?{space;} +Do.Note.That.If.The.Image.Contains.A=Beachten Sie, dass, wenn das Image eine große Datei enthält, die nicht in die maximale Größe passt, eine SFU-Datei größer sein kann als der Rest, um sie unterzubringen. +Splitting.WIM.File.Into.SWM.Files=Aufteilen einer WIM-Datei in SWM-Dateien +Name.And.Path.Of.The.Target.SWM.File=- Name und Pfad der Ziel-SWM-Datei:{space;} +Do.Note.That.If.The.Image.Contains.A.2=Beachten Sie, dass, wenn das Image eine große Datei enthält, die nicht in die maximale Größe passt, eine SWM-Datei größer sein kann als der Rest, um sie unterzubringen. +Unmounting.Image.File.From.Mount.Point=Imagedatei vom Mount-Punkt aushängen +Unmount.Operation.Commit=- Unmount-Vorgang: Commit +Unmount.Operation.Discard=- Unmount-Vorgang: Verwerfen +Append.Changes.To.New.Index.Yes=- Änderungen an neuen Index anhängen? Ja +Append.Changes.To.New.Index.No=- Änderungen an neuen Index anhängen? Nein +Package.Name=- Paketname:{space;} +Package.Description=- Paketbeschreibung:{space;} +Package.Release.Type=- Paketfreigabetyp: {space;} +Package.Is.Applicable.To.This.Image=- Paket ist auf dieses Image anwendbar?{space;} +Package.Is.Already.Installed=- Paket ist bereits installiert?{space;} +Total.Number.Of.Packages=Gesamtzahl der Pakete:{space;} +Exception=Ausnahme{space;} +Has.Occurred.While.Enumerating.Packages.Enumerating.Packages.In={space;}ist beim Aufzählen von Paketen aufgetreten. Aufzählung von Paketen im oberen Ordner +Total.Number.Of.Packages.1=Gesamtzahl der Pakete: 1 +Adding.Packages.To.Mounted.Image=Hinzufügen von Paketen zum gemounteten Image +Package.Source=- Paketquelle:{space;} +Addition.Operation.Recursive=- Additionsoperation: rekursiv +Addition.Operation.Selective=- Additionsoperation: selektiv +Ignore.Applicability.Checks.Yes=- Anwendbarkeitsprüfungen ignorieren? Ja +Ignore.Applicability.Checks.No=- Anwendbarkeitsprüfungen ignorieren? Nein +Prevent.Package.Addition.If.Online.Actions.Need.To=- Paketzusatz verhindern, wenn Online-Aktionen ausgeführt werden müssen? Ja +NOTE.If.The.Mounted.Image.Requires.That.Online=HINWEIS: Wenn das gemountete Image die Durchführung von Online-Aktionen erfordert, kann die Installation aller Pakete fehlschlagen; der Vorgang kann jedoch dennoch erfolgreich sein +Prevent.Package.Addition.If.Online.Actions.Need.To.2=- Paketzusatz verhindern, wenn Online-Aktionen ausgeführt werden müssen? Nein +Commit.Image.After.Operations.Are.Done.Yes=- Image festschreiben, nachdem die Operationen abgeschlossen sind? Ja +Commit.Image.After.Operations.Are.Done.No=- Image festschreiben, nachdem die Operationen abgeschlossen sind? Nein +Enumerating.Packages.To.Add.Please.Wait=Aufzählen der hinzuzufügenden Pakete. Bitte warten +Processing=Verarbeitung{space;} +Packages={space;}Pakete +Some.Packages.Require.A.System.Restart.To.Be=Einige Pakete erfordern einen Systemneustart, um vollständig verarbeitet zu werden. Speichern Sie Ihre Arbeit, schließen Sie Ihre Programme und starten Sie neu, wenn Sie bereit sind +Package=Paket{space;} +Package.Is.Already.Added.Skipping.Installation.Of.This=Paket ist bereits hinzugefügt. Überspringen der Installation dieses Pakets +Package.Is.Not.Applicable.To.This.Image.Skipping=Package ist auf dieses Image nicht anwendbar. Überspringen der Installation dieses Pakets +The.Package.About.To.Be.Added.Is.A=Das Paket, das hinzugefügt werden soll, ist eine MSU-Datei. Weiterführend +Processing.Package=Verarbeitungspaket +Error.Level.3={space;}Fehlerebene:{space;} +Gathering.Error.Level.For.Selected.Packages=Erfassungsfehlerstufe für ausgewählte Pakete +Package.No=- Paket-Nr.{space;} +The.Package.About.To.Be.Added.Is.A.2=Das Paket, das hinzugefügt werden soll, ist eine Microsoft Update Manifest (MUM)-Datei. +Removing.Packages.From.Mounted.Image=Entfernen von Paketen aus dem gemounteten Image +Enumerating.Packages.To.Remove.Please.Wait=Aufzählen der zu entfernenden Pakete. Bitte warten +Amount.Of.Packages.To.Remove=Anzahl der zu entfernenden Pakete: {space;} +Package.State.Installed=- Paketstatus: installiert +Package.State.An.Uninstall.Is.Pending=- Paketstatus: Eine Deinstallation steht aus +Package.State.An.Install.Is.Pending=- Paketstatus: Eine Installation steht aus +Processing.Package.Removal=Verarbeitung der Paketentfernung +This.Package.Can.T.Be.Removed.Skipping.Removal=Dieses Paket kann nicht entfernt werden. Überspringen der Entfernung dieses Pakets +Package.State=- Paketstatus: {space;} +Enabling.Features=Aktivieren von Funktionen +Use.Parent.Package.To.Enable.Features.Yes=- Übergeordnetes Paket verwenden, um Funktionen zu aktivieren? Ja +Use.Parent.Package.To.Enable.Features.No=– Übergeordnetes Paket verwenden, um Funktionen zu aktivieren? Nein +Parent.Package.Name.Not.Specified=- Name des übergeordneten Pakets: nicht angegeben +Parent.Package.Name=- Name des übergeordneten Pakets: {space;} +Use.Feature.Source.Yes=- Feature-Quelle verwenden? Ja +Use.Feature.Source.No=- Feature-Quelle verwenden? Nein +Feature.Source.Not.Specified=- Feature-Quelle: nicht angegeben +Feature.Source=- Feature-Quelle:{space;} +Enable.All.Parent.Features.Yes=- Alle übergeordneten Funktionen aktivieren? Ja +Enable.All.Parent.Features.No=- Alle übergeordneten Funktionen aktivieren? Nein +Contact.Windows.Update.Yes=- Kontakt Windows Update? Ja +Contact.Windows.Update.No.The.System.Is.In=- Kontakt Windows Update? Nein, das System befindet sich im abgesicherten Modus +Contact.Windows.Update.No.This.Is.Not.An=- Kontakt Windows Update? Nein, dies ist keine Online-Installation +Contact.Windows.Update.No=- Kontakt Windows Update? Nein +Commit.Image.After.Enabling.Features.Yes=- Image nach dem Aktivieren der Funktionen festschreiben? Ja +Commit.Image.After.Enabling.Features.No=- Image nach dem Aktivieren der Funktionen festschreiben? Nein +Enumerating.Features.To.Enable=Aufzählung der zu aktivierenden Funktionen +Total.Number.Of.Features.To.Enable=Gesamtzahl der zu aktivierenden Funktionen:{space;} +Feature=Funktion{space;} +Feature.Name=- Feature-Name:{space;} +Feature.Description=- Feature-Beschreibung:{space;} +Gathering.Error.Level.For.Selected.Features=Erfassungsfehlerstufe für ausgewählte Funktionen +Feature.No=- Feature-Nr.{space;} +Some.Features.Require.A.System.Restart.To.Be=Einige Funktionen erfordern einen Systemneustart, um vollständig verarbeitet zu werden. Speichern Sie Ihre Arbeit, schließen Sie Ihre Programme und starten Sie neu, wenn Sie bereit sind +Disabling.Features=Deaktivieren von Funktionen +Use.Parent.Package.To.Disable.Features.Yes=- Übergeordnetes Paket verwenden, um Funktionen zu deaktivieren? Ja +Use.Parent.Package.To.Disable.Features.No=– Übergeordnetes Paket verwenden, um Funktionen zu deaktivieren? Nein +Remove.Feature.Manifest.Yes=- Feature-Manifest entfernen? Ja +Remove.Feature.Manifest.No=- Feature-Manifest entfernen? Nein +Enumerating.Features.To.Disable=Aufzählung der zu deaktivierenden Funktionen +Total.Number.Of.Features.To.Disable=Gesamtzahl der zu deaktivierenden Funktionen:{space;} +Reverting.Pending.Servicing.Actions=Backsetzen ausstehender Wartungsaktionen +Cleaning.Up.Service.Pack.Backup.Files=Bereinigen von Service Pack-Sicherungsdateien +Hide.Service.Packs.From.The.Installed.Updates.List=- Service Packs aus der Liste der installierten Updates ausblenden?{space;} +Cleaning.Up.The.Component.Store=Reinigen des Komponentenspeichers +Perform.Superseded.Component.Base.Reset=- Führen Sie einen Reset der Basis der ersetzten Komponente durch?{space;} +Defer.Long.Running.Operations=- Lang andauernde Operationen verschieben?{space;} +Analyzing.The.Component.Store=Analysieren des Komponentenspeichers +Checking.The.Component.Store.Health=Überprüfen des Zustands des Komponentenspeichers +Scanning.The.Component.Store=Scannen des Komponentenspeichers +Repairing.The.Component.Store=Reparatur des Komponentenspeichers +Use.Different.Source=- Andere Quelle verwenden?{space;} +Yes.2=Ja ( +Limit.Windows.Update.Access=- Windows Update-Zugriff einschränken?{space;} +No.This.Is.Not.An.Online.Installation=Nein, dies ist keine Online-Installation +The.System.Is.In.Safe.Mode=, das System befindet sich im abgesicherten Modus +Adding.Provisioning.Package.To.The.Image=Hinzufügen eines Bereitstellungspakets zum Image +Provisioning.Package=- Provisioning-Paket:{space;} +Catalog.File=- Catalogdatei:{space;} +None.Specified.2=keine angegeben +Commit.Image.After.Adding.Provisioning.Package=- Image nach dem Hinzufügen des Bereitstellungspakets festschreiben?{space;} +Adding.Provisioned.APPX.Packages=Hinzufügen bereitgestellter AppX-Pakete +Use.A.License.File.For.APPX.Packages.Yes=- Verwenden Sie eine Lizenzdatei für AppX-Pakete? Ja +License.File=- Lizenzdatei:{space;} +Use.A.License.File.For.APPX.Packages.No=– Verwenden Sie eine Lizenzdatei für AppX-Pakete? Nein +License.File.Not.Using=- Lizenzdatei: nicht verwenden +Use.A.Custom.Data.File.For.APPX.Packages=– Verwenden Sie eine benutzerdefinierte Datendatei für AppX-Pakete? Ja +Custom.Data.File=- Benutzerdefinierte Datendatei:{space;} +Use.A.Custom.Data.File.For.APPX.Packages.2=- Verwenden Sie eine benutzerdefinierte Datendatei für AppX-Pakete? Nein +Custom.Data.File.Not.Using=- Benutzerdefinierte Datendatei: wird nicht verwendet +Use.All.Regions.For.APPX.Packages.Yes=- Alle Regionen für AppX-Pakete verwenden? Ja +Package.Regions.All=- Paketregionen: alle +Use.All.Regions.For.APPX.Packages.No=- Alle Regionen für AppX-Pakete verwenden? Nein +Package.Regions=- Paketregionen:{space;} +Commit.Image.After.Adding.APPX.Packages.Yes=- Image nach dem Hinzufügen von AppX-Paketen festschreiben? Ja +Commit.Image.After.Adding.APPX.Packages.No=- Image nach dem Hinzufügen von AppX-Paketen festschreiben? Nein +Enumerating.APPX.Packages.To.Add=Aufzählung der hinzuzufügenden AppX-Pakete +Total.Number.Of.Packages.To.Add=Gesamtzahl der hinzuzufügenden Pakete:{space;} +APPX.Package.File=- AppX-Paketdatei:{space;} +Application.Name=- Anwendungsname: {space;} +Application.Publisher=- Anwendungsverleger:{space;} +Application.Version=- Anwendungsversion:{space;} +The.Application.About.To.Be.Added.Is.An=Die Anwendung, die hinzugefügt werden soll, ist eine verschlüsselte Datei. Da das Programm die aktive Installation verwaltet, wird ein PowerShell-Kommando ausgeführt. +The.Application.About.To.Be.Added.Is.An.2=Die Anwendung, die hinzugefügt werden soll, ist eine verschlüsselte Datei. Verschlüsselte Pakete können nur zu aktiven Installationen hinzugefügt werden. Dieses Paket überspringen +Warning.The.License.File.Does.Not.Exist.Continuing=Warnung: Die Lizenzdatei existiert nicht. Weiter ohne einen +Do.Note.That.If.This.App.Requires.A={={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}. Beachten Sie, dass die Addition dieser App möglicherweise fehlschlägt, wenn sie eine Lizenzdatei benötigt. +Also.This.May.Compromise.The.Image={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Außerdem kann dies das Image kompromittieren. +The.Following.Dependency.Packages.Will.Be.Installed.Alongside=- Die folgenden Abhängigkeitspakete werden neben dieser Anwendung installiert: +Dependency={space;}{space;}{space;}{space;}- Abhängigkeit:{space;} +Warning.The.Dependency=Warnung: die Abhängigkeit +Does.Not.Exist.In.The.File.System.Skipping=existiert nicht im Dateisystem. Abhängigkeit überspringen +Warning.The.Custom.Data.File.Does.Not.Exist=Warnung: Die benutzerdefinierte Datendatei existiert nicht. Weiter ohne einen +Gathering.Error.Level.For.Selected.APPX.Packages=Erfassungsfehlerstufe für ausgewählte AppX-Pakete +Application.Is.Registered.To.A.User.No=- Die Anwendung ist bei einem Benutzer registriert? Nein +Application.Is.Registered.To.A.User.Yes=- Die Anwendung ist bei einem Benutzer registriert? Ja +The.Removal.Of.This.Application.May.Require.You={space;}{space;}Das Entfernen dieser Anwendung erfordert möglicherweise, dass Sie PowerShell verwenden, um sie vollständig zu entfernen +A.PowerShell.Helper.Will.Be.Used.To.Remove=Ein PowerShell-Helfer wird zum Entfernen von AppX-Paketen verwendet. Bitte warten +Log.Off.For.The.Deprovisioning.Of.Applications.To=Abmelden, damit die Deprovisionierung der Anwendungen vollständig durchgeführt werden kann. +Removing.Provisioned.APPX.Packages=Entfernen bereitgestellter AppX-Pakete +Enumerating.APPX.Packages.To.Remove=Aufzählung der zu entfernenden AppX-Pakete +Total.Number.Of.Packages.To.Remove=Gesamtzahl der zu entfernenden Pakete:{space;} +Display.Name=- Anzeigename: {space;} +Setting.The.Keyboard.Layered.Driver=Einstellen des Tastatur-Layer-Treibers +Current.Keyboard.Layered.Driver=- Aktueller Tastatur-Layered-Treiber: {space;} +New.Keyboard.Layered.Driver=- Neuer Tastatur-Layered-Treiber:{space;} +Adding.Capabilities.To.Mounted.Image=Hinzufügen von Funktionen zum gemounteten Image +Use.A.Source.For.Capability.Addition=- Verwenden Sie eine Quelle für die Erweiterung von Fähigkeiten?{space;} +Capability.Source=- Capability-Quelle:{space;} +No.Source.Has.Been.Provided=Es wurde keine Quelle angegeben +Limit.Access.To.Windows.Update=- Zugriff auf Windows Update beschränken?{space;} +Commit.Image.After.Adding.Capabilities=- Image nach dem Hinzufügen von Funktionen festschreiben?{space;} +Warning.The.Specified.Source.Does.Not.Exist.In=Warnung: Die angegebene Quelle existiert nicht im Dateisystem und wird übersprungen +Enumerating.Capabilities.To.Add.Please.Wait=Aufzählen der hinzuzufügenden Funktionen. Bitte warten +Total.Number.Of.Capabilities=Gesamtzahl der Fähigkeiten:{space;} +Capability=Fähigkeit{space;} +Capability.Identity=- Fähigkeitsidentität:{space;} +Capability.Name=- Fähigkeitsname:{space;} +Capability.Description=- Fähigkeitsbeschreibung:{space;} +Gathering.Error.Level.For.Selected.Capabilities=Erfassungsfehlerstufe für ausgewählte Funktionen +Capability.No=- Fähigkeitsnr.{space;} +Some.Capabilities.Require.A.System.Restart.To.Be=Einige Funktionen erfordern einen Systemneustart, um vollständig verarbeitet zu werden. Speichern Sie Ihre Arbeit, schließen Sie Ihre Programme und starten Sie neu, wenn Sie bereit sind +Removing.Capabilities.From.Mounted.Image=Entfernen von Funktionen aus dem gemounteten Image +Enumerating.Capabilities.To.Remove.Please.Wait=Aufzählen der zu entfernenden Capabilities. Bitte warten +Setting.The.New.Image.Edition=Einstellen der neuen Imageausgabe +New.Edition=- Neue Ausgabe:{space;} +Will.The.EULA.Be.Copied=- Wird die EULA kopiert?{space;} +Yes.To.The.Following.Destination=Ja, zum folgenden Ziel:{space;} +Will.The.EULA.Be.Accepted=- Wird die EULA akzeptiert?{space;} +Yes.With.The.Following.Product.Key=Ja, mit dem folgenden Produktschlüssel:{space;} +Setting.The.New.Product.Key=Einstellen des neuen Produktschlüssels +New.Product.Key=- Neuer Produktschlüssel:{space;} +Adding.Driver.Packages.To.Mounted.Image=Hinzufügen von Treiberpaketen zum gemounteten Image +Force.Installation.Of.Unsigned.Drivers=- Installation von nicht signierten Treibern erzwingen?{space;} +Commit.Image.After.Adding.Driver.Packages=- Image nach dem Hinzufügen von Treiberpaketen festschreiben?{space;} +Warning.The.Option.To.Force.Installation.Of.Unsigned=Warnung: Die Option zum Erzwingen der Installation nicht signierter Treiber wurde überprüft. Beachten Sie, dass nicht signierte Treiber zu Instabilität im resultierenden Windows-Image führen können. +Enumerating.Drivers.To.Add.Please.Wait=Aufzählung der hinzuzufügenden Treiber. Bitte warten +Total.Number.Of.Drivers=Gesamtzahl der Treiber:{space;} +Driver=Treiber{space;} +Hardware.Description=- Hardwarebeschreibung: {space;} +Hardware.ID=- Hardware-ID:{space;} +Additional.IDs=- Zusätzliche IDs +Compatible.IDs={space;}{space;}- Kompatible IDs:{space;} +Excluded.IDs={space;}{space;}- Ausgeschlossene IDs:{space;} +Hardware.Manufacturer=- Hardwarehersteller:{space;} +Hardware.Architecture=- Hardwarearchitektur:{space;} +This.Driver.File.Targets.More.Than.10.Devices=Diese Treiberdatei zielt auf mehr als 10 Geräte ab. Um die Erstellung großer Protokolldateien zu vermeiden, zeigen wir keine Informationen zu diesem Treiberpaket an und fahren trotzdem fort. +If.You.Want.To.Get.Information.Of.This=Wenn Sie Informationen zu diesem Treiberpaket erhalten möchten, gehen Sie zu Kommandos > Treiber > Treiberinformationen abrufen > Ich möchte Informationen zu Treiberdateien erhalten und geben Sie diese Treiberdatei an: +We.Couldn.T.Get.Information.Of.This.Driver=Wir konnten keine Informationen zu diesem Treiberpaket erhalten. Trotzdem weitermachen +The.Driver.Package.Currently.About.To.Be.Processed=Das Treiberpaket, das derzeit verarbeitet werden soll, ist ein Ordner, daher können keine Informationen darüber abgerufen werden. Trotzdem weitermachen +This.Folder.Will.Be.Scanned.Recursively.Driver.Addition=Dieser Ordner wird rekursiv gescannt. Das Hinzufügen eines Treibers kann länger dauern +Gathering.Error.Level.For.Selected.Drivers=Erfassungsfehlerstufe für ausgewählte Treiber +Driver.No=- Treibernummer.{space;} +Removing.Driver.Packages.From.Mounted.Image=Entfernen von Treiberpaketen aus dem gemounteten Image +Getting.Image.Drivers.This.May.Take.Some.Time=Imagetreiber abrufen. Dies kann einige Zeit dauern +Enumerating.Drivers.To.Remove.Please.Wait=Aufzählung der zu entfernenden Treiber. Bitte warten +Exporting.Drivers.To.Specified.Folder=Exportieren von Treibern in den angegebenen Ordner +Export.Target=- Ziel exportieren:{space;} +Export.All.Drivers.Or.Just.Those.With.Matching=- Alle Treiber exportieren oder nur diejenigen mit passenden Klassennamen?{space;} +All.Drivers=Alle Treiber +Drivers.With.Matching.Class.Name=Treiber mit passendem Klassennamen +If.Not.All.Drivers.Are.Exported.Which.Class=- Wenn nicht alle Treiber exportiert werden, welcher Klassenname wird für die zu exportierenden Treiber verwendet?{space;} +Driver.S.Will.Be.Exported.To.The.Destination={space;}treiber(e) werden zum Ziel exportiert +Exporting.Driver.File=Treiberdatei exportieren{space;} +Getting.Image.Drivers=Imagetreiber abrufen +Importing.Third.Party.Drivers=Importieren von Treibern von Drittanbietern +Driver.Import.Source.Windows.Image=- Treiberimportquelle: Windows-Image ( +Driver.Import.Source.Active.Installation=- Treiberimportquelle: aktive Installation +Driver.Import.Source.Offline.Installation=- Treiberimportquelle: Offline-Installation ( +Creating.Temporary.Folder.For.Driver.Exports=Erstellen eines temporären Ordners für Treiberexporte +The.Temporary.Folder.Could.Not.Be.Created.See=Der temporäre Ordner konnte nicht erstellt werden. Die Gründe hierfür finden Sie weiter unten: +Exporting.Third.Party.Drivers.From.Import.Source=Exportieren von Treibern von Drittanbietern aus der Importquelle +Importing.Third.Party.Drivers.From.The.Temporary.Export=Importieren von Treibern von Drittanbietern aus dem temporären Exportverzeichnis in das Zielimage +Deleting.Temporary.Export.Directory=Löschen des temporären Exportverzeichnisses +We.Couldn.T.Delete.The.Temporary.Export.Directory=Wir konnten das temporäre Exportverzeichnis nicht löschen. Sie müssen das {space;} löschen +Export.Temp=export_temp +Directory.Manually={space;}Verzeichnis manuell. +Published.Name=- Veröffentlichter Name:{space;} +Provider.Name=- Providername: {space;} +Class.Name=- Klassenname:{space;} +Class.Description=- Klassenbeschreibung:{space;} +Class.GUID=- Klasse GUID:{space;} +Version.And.Date=- Version und Datum:{space;} +Is.Part.Of.The.Windows.Distribution=- Ist Teil der Windows-Distribution?{space;} +Is.Critical.To.The.Boot.Process=- Ist für den Boot-Prozess kritisch?{space;} +Warning.This.Driver.Package.Is.Part.Of.The=Warnung: Dieses Treiberpaket ist Teil der Windows-Distribution. Einige Bereiche funktionieren möglicherweise nicht mehr, nachdem dieser Treiber entfernt wurde +Warning.This.Driver.Package.Is.Critical.To.The=Warnung: Dieses Treiberpaket ist für den Bootvorgang von entscheidender Bedeutung. Das Ziel-Image startet möglicherweise nicht mehr und funktioniert nicht mehr richtig, nachdem dieser Treiber entfernt wurde +Applying.Unattended.Answer.File.Options=Anwenden einer unbeaufsichtigten Antwortdatei. Optionen: +Unattended.Answer.File=- Unbeaufsichtigte Antwortdatei:{space;} +Creating.Directories.And.Copying.Files=Erstellen von Verzeichnissen und Kopieren von Dateien +The.Unattended.Answer.File.Has.Been.Successfully.Copied=Die unbeaufsichtigte Antwortdatei wurde erfolgreich kopiert. +Setting.The.Windows.PE.Target.Path=Festlegen des Windows PE-Zielpfads +New.Target.Path=- Neuer Zielpfad:{space;} +Setting.The.Windows.PE.Scratch.Space=Einstellen des Windows PE-Scratch-Spaces +New.Scratch.Space.Amount=- Neue Scratch-Größe: {space;} +Setting.The.Amount.Of.Days.An.Uninstall.Can=Festlegen der Anzahl der Tage, an denen eine Deinstallation erfolgen kann +Number.Of.Days=Anzahl der Tage:{space;} +Removing.The.Ability.To.Revert.To.An.Old=Entfernen der Möglichkeit, zu einer alten Windows-Installation zurückzukehren +Preparing.Operating.System.Rollback=Vorbereiten des Betriebssystem-Rollbacks +Converting.Image=Image konvertieren +Index.To.Convert=- Zu konvertierender Index:{space;} +Image.Conversion.Mode.Windows.Imaging.WIM.Electronic.Software=- Imagekonvertierungsmodus: Windows Imaging (WIM) --> Electronic Software Distribution (ESD) +Image.Conversion.Mode.Electronic.Software.Distribution.ESD.Windows=- Imagekonvertierungsmodus: Electronic Software Distribution (ESD) --> Windows Imaging (WIM) +Merging.SWM.Files.Into.A.WIM.File=Zusammenführen von SWM-Dateien zu einer WIM-Datei +Target.Index=- Zielindex:{space;} +Switching.Image.Indexes=Umschalten von Image-Index +Target.Mount.Directory=- Ziel-Mount-Verzeichnis: {space;} +Target.Image.Index=- Ziel-Imageindex:{space;} +Commit.Source.Index.Yes=- Quellindex festschreiben? Ja +Commit.Source.Index.No=- Quellindex festschreiben? Nein +Could.Not.Commit.Changes.To.The.Image.Discarding=Änderungen am Image konnten nicht festgeschrieben werden. Änderungen verwerfen +Mounting.Image.Index=Mounten von Image (Index:{space;} +Replacing.FFU.File=Ersetzen der FFU-Datei{space;} +With={space;}mit{space;} +The.FFU.File.Has.Been.Successfully.Replaced=Die FFU-Datei wurde erfolgreich ersetzt. +The.FFU.File.Could.Not.Be.Replaced=Die FFU-Datei konnte nicht ersetzt werden:{space;} +Warning.The.Contents.Of.The.Log.Window.Could=Warnung: Der Inhalt des Protokollfensters konnte nicht in der Protokolldatei gespeichert werden. Grund: {space;} +The.Volume.Images.Have.Been.Deleted.If.You=Die Volume-Image wurden gelöscht. Wenn Sie dieses Image erneut in ein DISMTools-Projekt einbinden möchten, wählen Sie {space;} +Mount.Image=Image mounten +Option.Or.Use.This.Command.If.You.Want={space;}option, oder verwenden Sie dieses Kommando, wenn Sie ihn an anderer Stelle mounten möchten: +DISM.Mount.Image.Imagefile={space;}{space;}dism /mount-image /imagefile: +Index.Preferred.Index.Mountdir.Preferred.Mountpoint={space;}/index: /mountdir: +The.Specified.Image.Is.Already.Mounted.This.Command=Das angegebene Image ist bereits gemountet. Dieses Kommando funktioniert für {space;} +Orphaned=verwaist +Images={space;}Images +The.Program.Tried.To.Save.Changes.To.An=Das Programm hat versucht, Änderungen an einem Image zu speichern, das schreibgeschützt gemountet wurde.{space;} +To.Solve.This.Close.This.Dialog.And.Click=Um dies zu lösen, schließen Sie diesen Dialog und klicken Sie auf {space;} +Tools.Remount.Image.With.Write.Permissions=Tools > Image mit Schreibberechtigungen erneut mounten +Do.Note.That.If.The.Image.Came.From=Beachten Sie, dass Sie, wenn das Image von einem Installationsmedium stammt, möglicherweise die Quelldatei kopieren müssen, um Änderungen daran vorzunehmen. +The.Program.Tried.To.Unmount.The.Image.But=Das Programm hat versucht, das Image auszuhängen, aber einige Anwendungen oder Prozesse haben Dateien oder Verzeichnisse des Images geöffnet. +Make.Sure.No.Application.Or.Process.Is.Using=Stellen Sie sicher, dass keine Anwendung oder kein Prozess die Verzeichnisse oder Dateien des Images verwendet. +If.The.Error.Occurred.At.The.End.Of=Wenn der Fehler am Ende des Vorgangs aufgetreten ist (z. B. bei 100 %) und Sie versucht haben, die Änderungen zu speichern, sind sie möglicherweise bereits gespeichert und Sie können Änderungen sicher weiterhin verwerfen. +The.Mounted.Image.Cannot.Be.Committed.Back.Into=Das gemountete Image kann nicht wieder in die Quelldatei übernommen werden. +A.Partial.Unmount.Might.Have.Happened.Or.The=Ein teilweises Unmounten könnte stattgefunden haben oder das Image wurde noch gemountet. +If.The.Image.Was.Unmounted.Whilst.Saving.Changes=Wenn das Image beim Speichern der Änderungen ausgehängt wurde, war der Commit wahrscheinlich erfolgreich. Bitte validieren Sie dies. Wenn dies der Fall ist, fahren Sie mit dem Aushängen des Images fort und verwerfen Sie Änderungen. +The.Source.File.Comes.From.A.Read.Only=Die Quelldatei stammt aus einer schreibgeschützten Quelle. Sie können es nicht mit Lese-/Schreibberechtigungen mounten. +Please.Re.Specify.The.Image.In.The.Mount=Bitte geben Sie das Image im Mount-Dialog erneut an, während Sie das {space;} überprüfen +Read.Only=Nur lesen +Check.Box.You.Can.Also.Try.Copying.The={space;}Kontrollkästchen. Sie können auch versuchen, das Quell-Image in einen Ordner mit Lese-/Schreibberechtigungen zu kopieren. +There.Is.Essential.Data.That.Was.Not.Picked=Es gibt wesentliche Daten, die von der Operation nicht intern ausgewählt wurden. Dies kann ein Fehler in der Software sein oder eine Funktion kann unvollständig sein. +No.Packages.Have.Been.Added.Successfully.Try.Looking=Es wurden keine Pakete erfolgreich hinzugefügt. Versuchen Sie, die Fehlercodes im Internet nachzuschlagen +No.Packages.Have.Been.Removed.Successfully.Try.Looking=Keine Pakete wurden erfolgreich entfernt. Versuchen Sie, die Fehlercodes im Internet nachzuschlagen +No.Features.Have.Been.Enabled.Successfully.Try.Looking=Keine Features wurden erfolgreich aktiviert. Versuchen Sie, die Fehlercodes im Internet nachzuschlagen +No.Features.Have.Been.Disabled.Successfully.Try.Looking=Keine Features wurden erfolgreich deaktiviert. Versuchen Sie, die Fehlercodes im Internet nachzuschlagen +Either.This.Operation.Has.Failed.Or.Some.Drivers=Entweder ist diese Operation fehlgeschlagen oder einige Treiber wurden nicht installiert. Erwägen Sie, dieses Projekt oder diesen Modus neu zu laden, um zu sehen, ob es Treiberänderungen gibt. +If.There.Are.Driver.Changes.Consider.Reading.The=Wenn es Treiberänderungen gibt, sollten Sie die Treiberinstallationsprotokolle lesen, die im INF-Verzeichnis des Ziel-Images gespeichert sind. Andernfalls exportieren Sie die Treiber, die Sie hinzufügen möchten, aus dem Quell-Image und fügen Sie sie manuell zum Ziel-Image hinzu. +You.Can.Also.Manually.Customize.The.Export.Directory=Sie können das Exportverzeichnis auch manuell anpassen, indem Sie die Treiber löschen, die Sie nicht benötigen. Dies kann eine weitere Möglichkeit sein, dieses Problem zu beheben, Sie müssen jedoch den Treiberzugabevorgang vorübergehend anhalten, bevor er das Exportverzeichnis scannt (dies kann durch Auswahl einer beliebigen Option aus dem DISM-Eingabeaufforderungsfenster erfolgen, die beim Ausführen einer Operation angezeigt wird) +The.Program.Has.Suffered.A.Keyboard.Interrupt.Or=Das Programm wurde von einer Tastaturunterbrechung oder einem erzwungenen Programmschluss unterbrochen. Die Operation wurde abgesagt. Wenn Sie es versehentlich getan haben, können Sie es erneut ausführen +The.Microsoft.Edge.Components.Have.Already.Been.Installed=Die Microsoft Edge-Komponenten wurden in diesem Image bereits installiert. Hier gibt es nichts zu tun. +The.Microsoft.Edge.Browser.Has.Already.Been.Installed=Der Microsoft Edge-Browser wurde in diesem Image bereits installiert. Hier gibt es nichts zu tun. +The.Microsoft.Edge.WebView2.Component.Has.Already.Been=Die Microsoft Edge WebView2-Komponente wurde bereits in diesem Image installiert. Hier gibt es nichts zu tun. +The.Operation.Could.Not.Be.Performed.Because.This=Die Operation konnte nicht ausgeführt werden, da für dieses Image Online-Operationen ausstehen. Das Anwenden und Hochfahren des Images könnte dieses Problem beheben. +The.Rollback.Process.Has.Started.Your.System.Needs=Der Rollback-Prozess wurde gestartet. Ihr System muss neu gestartet werden, um fortfahren zu können. Es wird in 10 Sekunden automatisch neu gestartet. Stellen Sie sicher, dass Sie Ihre Arbeit gespeichert haben. +The.Specified.Operation.Completed.Successfully.But.Requires.A=Die angegebene Operation wurde erfolgreich abgeschlossen, erfordert jedoch einen Neustart, um vollständig angewendet zu werden. Speichern Sie Ihre Arbeit und starten Sie sie neu, wenn Sie bereit sind +This.Error.Has.Not.Yet.Been.Added.To=Dieser Fehler wurde der Datenbank noch nicht hinzugefügt, daher kann jetzt keine nützliche Beschreibung angezeigt werden. Versuchen Sie, das Kommando manuell auszuführen. Wenn Sie denselben Fehler sehen, suchen Sie im Internet danach. +For.Detailed.Information.Consider.Reading.The.DISM.Operation=Für detaillierte Informationen lesen Sie die DISM-Operationsprotokolle. +Cancelling.Background.Processes=Abbrechen von Hintergrundprozessen +The.Image.Registry.Hives.Need.To.Be.Unloaded=Die Imageregistrierungs-Hives müssen entladen werden, bevor die Aufgabe weiter ausgeführt werden kann. +System.Editor.Was.Not.Found=Systemeditor wurde nicht gefunden +The.Log.File.Was.Not.Found=Die Protokolldatei wurde nicht gefunden diff --git a/language/en-US.ini b/language/en-US.ini new file mode 100644 index 000000000..dae89ec36 --- /dev/null +++ b/language/en-US.ini @@ -0,0 +1,6916 @@ +[LanguageFileInformation] +LanguageAuthor=DISMTools +LanguageCode=en-US +LanguageName=English + +[ADDSJoinDialog.ChangePage] +Finish.Label=Finish +Next.Button=Next + +[DomainJoin.DNS] +Site.Local.Address.Label=- {0} -- Site-Local Address; it is no longer in use +MalformedAddress.Label=- {0} -- Malformed Address +AddressSyntax.Message=Address Syntax Validation Results:{crlf;}- Invalid Addresses: {0}{crlf;}- IPv4 Addresses: {1}{crlf;}- Global IPv6 Addresses: {2}{crlf;}- Link-Local IPv6 Addresses: {3}{crlf;}- Unique Local IPv6 Addresses: {4}{crlf;}{crlf;}- Valid/Invalid Address Ratio: {5}%{crlf;}{6}{crlf;}These addresses will be configured in the unattended answer file. +InvalidAddresses.Label={crlf;}Some addresses are invalid. Here's why: {crlf;}{crlf;}{0}{crlf;} +AddressValidation.Title=DNS Address Validation Results +Verification.Done.Label=The verification has finished. +Verification.Done.Message=The verification has finished.{crlf;}{crlf;}{0} + +[DomainJoin.Messages] +PrimarySuffix.Required=A primary domain suffix must be provided for DNS +InterfaceAlias.Message=An interface alias must be provided for DNS. These are the names of the network adapters installed on your system +No.DNSServer.None.Label=No DNS server addresses have been provided +DomainName.Label=A domain name must be specified +User.Name.Label=A user name must be specified +Password.User.Message=A password for the specified user, {quot;}{0}{quot;}, must be specified as per security policies imposed by the domain controller. +User.Appear.Exist.Message=The specified user, {0}, does not appear to exist in the provided domain. You may not be able to sign in with this user unless you create it first.{crlf;}{crlf;}Do you want to continue? +Verify.Typed.Message=Please verify the information that you typed. If you incorrectly typed a field, the client device may not join the domain.{crlf;}{crlf;}The client device will also not join the domain if it will run home editions of Windows.{crlf;}{crlf;}Are you sure that these settings are correct? +VerifySettings.Title=Verify Settings +Domain.Settings.Message=Domain settings were added successfully to the answer file. You can further modify these components in the System components section. +Add.Domain.Settings.Label=Could not add domain settings. +Dnsshort.DomainName.Message=DNS (short for Domain Name System) is a server role that automatically translates IP addresses to human-readable names.{crlf;}{crlf;}When you use this wizard, DISMTools assumes that either you or your system administrator have set up DNS on your network. If not, cancel this wizard and set it up. +UserDisabled.Message=The selected user is not enabled in the domain. The user will not be able to sign into target devices unless it's re-enabled. +AccountDisabled.Title=Account Disabled +Computer.Belong.Domain.Label=This computer does not belong to a domain. +Provide.Domain.Label=Please provide a domain for which to test domain name resolution. +Nslookupoutput.Label=NSLOOKUP output:{crlf;}{crlf;}{0} +DomainResolution.Title=Domain name resolution results + +[ActiveInstallWarn] +Active.Install.Label=About active installation management + +[ActiveInstall] +Enter.Online.Message=You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation.{crlf;}{crlf;}Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program.{crlf;}{crlf;}If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable.{crlf;}{crlf;}We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible) +ProjectUnloaded.Label=The current project will be unloaded. +Continue.Button=Continue +Cancel.Button=Cancel + +[AddCapabilities] +AddCapabilities.Label=Add capabilities +Image.Task.Header.Label={0} +Source.Label=Source: +Ok.Button=OK +Cancel.Button=Cancel +Browse.Button=Browse... +SelectAll.Button=Select all +SelectNone.Button=Select none +Detect.Group.Policy.Button=Detect from group policy +Capabilities.Group=Capabilities +Options.Group=Options +DifferentSource.CheckBox=Specify different source for capability installs +WindowsUpdate.CheckBox=Limit access to Windows Update +Capability.Column=Capability +State.Column=State + +[AddCaps.AddCap] +CommitImage.CheckBox=Commit image after adding capabilities + +[AddCapabilities.Initialize] +UnsupportedImage.Message=This action is not supported on this image + +[AddCapabilities.Validation] +SourceRequired.Message=Some capabilities in this image require specifying a source for them to be enabled. The specified source is not valid for this operation. +Source.Required.Message=Please specify a valid source and try again. +Source.Message=Please make sure the source exists in the file system and try again. +Source.Exist.File.Message=The specified source does not exist in the file system. Make sure it exists and try again. +Source.Required.No.Message=There is no source specified. Specify a source and try again. +Selected.None.Message=There aren't any selected capabilities to install. Please select some capabilities and try again. + +[AddDrivers] +Folder.Label=Folder +Title.Label=Add drivers +Image.Task.Header.Label={0} +Drivers.Required.Message=Please specify the drivers to add by using the buttons below or by dropping them to the list below: +Scan.Driver.Message=You can let the program scan the driver folders present on the list below recursively and add them as well. To do so, tick the entries you'd like to be scanned: +Ok.Button=OK +Cancel.Button=Cancel +AddFile.Button=Add file... +AddFolder.Button=Add folder... +Remove.Entries.Button=Remove all entries +Remove.Selected.Entry.Button=Remove selected entry +Force.Install.CheckBox=Force installation of unsigned drivers +CommitImage.CheckBox=Commit image after adding drivers +DriverFiles.Group=Driver files +DriverFolders.Group=Driver folders +Options.Group=Options +FileFolder.Column=File/Folder +Type.Column=Type +DriverPackage.Title=Specify the driver package to add +DriverFolder.Description=Specify the folder containing driver packages. You will then be able to specify if it needs to be scanned recursively: + +[AddDrivers.Actions] +Package.Folder.Message=The package specified is a folder. You can let DISM scan it recursively to add all drivers in it, or you can specify the drivers to add manually.{crlf;}{crlf;}- To let DISM scan this folder recursively, click Yes{crlf;}- To pick the drivers in this folder manually, click No{crlf;}- To skip adding this folder, click Cancel +Packages.None.Message=There are no driver packages in the specified folder + +[AddDrivers.DragDrop] +Package.Folder.Message=The package specified is a folder. You can let DISM scan it recursively to add all drivers in it, or you can specify the drivers to add manually.{crlf;}{crlf;}- To let DISM scan this folder recursively, click Yes{crlf;}- To pick the drivers in this folder manually, click No{crlf;}- To skip adding this folder, click Cancel +Folder.Label=Folder +File.Item=File + +[AddDrivers.FileOk] +File.Label=File + +[AddDrivers.Validation] +DriverPackages.None.Message=There are no selected driver packages to install. Please specify the driver packages you'd like to install and try again. + +[AddListEntry] +Entry.Label=Entry: +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel + +[AddPackage] +AddPackages.Label=Add packages +PackageSource.Label=Package source: +PackageOperation.Label=Package operation: +Browse.Button=Browse... +SelectAll.Button=Select all +SelectNone.Button=Select none +Update.Manifest.Button=Add update manifest... +Cancel.Button=Cancel +Ok.Button=OK +Packages.Choose.RadioButton=Choose which packages to add: +Ignore.CheckBox=Ignore applicability checks (not recommended) +CommitImage.CheckBox=Commit image after adding packages +Packages.Group=Packages +Options.Group=Options +Dir.CAB.Required.Label=Please specify a directory where CAB or MSU files are located. +CabFolder.Description=Specify the folder that contains CAB or MSU packages: + +[AddPkg] +ScanRecursive.RadioButton=Scan folder recursively for packages +Skip.Online.Install.CheckBox=Skip package installation if online operations are pending + +[AddPackage.CountItems] +Folder.Contain.Label=This folder does not contain any packages. Please use a different source and try again +Folder.Contains.Label=This folder contains {0} package. +Folder.Packages.Label=This folder contains {0} packages. + +[AddPackage.GatherPackages] +Scanning.Dir.Label=Scanning directory for packages. Please wait... + +[AddPackage.Validation] +Packages.Message=Please select packages to add, and try again. You can also continue with letting DISM scan applicable packages +PackagesSelected.Title=No packages selected + +[AppxProvision] +Add.Prov.Item=Add provisioned AppX packages +Packages.Required.Message=Please add packed or unpacked AppX packages by using the buttons below, or by dropping them to the list view below: +Package.Message=An AppX package may need some dependencies for it to be installed correctly. If so, you can specify a list of dependencies now: +StubPreference.Item=Stub preference: +Multiple.App.Regions.Item=To specify multiple app regions, separate them with a semicolon (;) +Entry.List.View.Message=Select an entry in the list view to show the details of an app and to configure addition settings +AddFile.Item=Add file +AddFolder.Item=Add folder +Remove.Entries.Item=Remove all entries +Remove.Dependencies.Item=Remove all dependencies +RemoveDependency.Item=Remove dependency +AddDependency.Item=Add dependency... +Browse.Button=Browse... +Remove.Selected.Entry.Item=Remove selected entry +Cancel.Button=Cancel +Ok.Button=OK +CustomDataFile.Item=Custom data file: +CommitImage.Item=Commit image after adding AppX packages +CustomData.File.Title=Specify a custom data file +AppxDependencies.Item=AppX dependencies +AppxRegions.Item=AppX regions +LicenseFile.Title=Specify a license file +App.Regions.Form.Message=App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To learn more about these codes, click here +Help.Link=click here +FileFolder.Column=File/Folder +Type.Column=Type +ApplicationName.Column=Application name +App.Publisher.Column=Application publisher +App.Version.Column=Application version +LicenseFile.CheckBox=License file: +App.Available.CheckBox=Make app available for all regions +Configure.Stub.Item=Do not configure stub preference +Publisher.Label=Publisher: {0} +Version.Label=Version: {0} +Preview.Label=Preview +Folder.Required.Description=Please specify a folder containing unpacked AppX files: +Install.Stub.Package.Item=Install application as a stub package +Install.Full.Package.Item=Install application as a full package + +[AppxProvision.MultiSelect] +Selection.Label=Multiple selection +CommonProps.Label=View the common properties of all selected applications + +[AppxProvision.DragDrop] +Dir.Contains.App.Message=The following directory:{crlf;}{quot;}{0}{quot;}{crlf;}contains application packages. Do you want to process them as well?{crlf;}{crlf;}NOTE: this will scan this directory recursively, so it may take longer for this operation to complete +File.Dropped.Isn.Message=The file that has been dropped here isn't an application package. +Add.Prov.Title=Add provisioned AppX packages + +[AppxProvision.StoreLogo] +ReadFailed.Message=Could not get application store logo assets from this package - cannot read from manifest +Add.Title=Add provisioned AppX packages + +[AppxProvision.Init] +UnsupportedImage.Message=This action is not supported on this image + +[AppxProvision.Scan] +Unpacked.Encrypted.Label=Unpacked (Encrypted) +PackedEncrypted.Label=Packed (Encrypted) +Unpacked.Encrypted.Item=Unpacked (Encrypted) +Encrypted.App.Label=Encrypted application +ListItem.Label=Encrypted application +PackedEncrypted.Item=Packed (Encrypted) +Package.Encrypted.Message=The package:{crlf;}{crlf;}{0}{crlf;}{crlf;}is an encrypted application package. Neither DISMTools nor DISM support adding these application types. If you'd like to add it, you can do so, after the image is applied and booted to. +Folder.Message=This folder doesn't seem to contain an AppX package structure. It will not be added to the list +Add.Title=Add provisioned AppX packages +Package.Add.Message=The package you want to add is already added to the list, and all its properties match with the properties of the package specified. We won't add the specified package +Unpacked.Item=Unpacked +Packed.Item=Packed +Package.Already.Message=The package you want to add is already added to the list, but it contains a newer version.{crlf;}{crlf;}Do you want to replace the entry in the list with the updated package specified? +ItemSub.Item=Unpacked +ListItem.Item=Unpacked +Package.Added.Message=The package you want to add is already added to the list, but it comes from a different developer or publisher.{crlf;}{crlf;}Do note that applications redistributed by third-party publishers or developers can cause damage to the Windows image.{crlf;}{crlf;}Do you want to replace the entry in the list with the package specified? + +[AppxProvision.Tooltip] +TempStoreassets.Label=\temp\storeassets\ +Logo.Assets.File.Label=The logo assets for this file could not be detected +Enlarge.View.Label=Click here to enlarge the view +Logo.Assets.File.Item=The logo assets for this file could not be detected + +[AppxProvision.Validation] +Packages.Required.Message=Please specify packed or unpacked AppX packages and try again. +Add.Prov.Title=Add provisioned AppX packages +LicenseFile.Required.Message=Please specify a license file and try again. You can also continue without one, but this may compromise the image. +LicenseNotFound.Message=The license file specified was not found. Make sure it exists on the specified location and try again. +CustomData.Required.Message=Please specify a custom data file and try again. You can also continue without one. +CustomData.File.Message=The custom data file specified was not found. Make sure it exists on the specified location and try again. + +[ProvPackage] +Add.Packages.Label=Add provisioning packages +Image.Task.Header.Label={0} +PackagePath.Label=Package path: +Action.Treverted.Add.Message=This action can't be reverted. Once you add a provisioning package, you won't be able to remove it from your Windows image. +CatalogPath.Label=Catalog path: +Ok.Button=OK +Cancel.Button=Cancel +Browse.Button=Browse... +CommitImage.CheckBox=Commit image after adding this provisioning package + +[ProvPackage.Validation] +PackageNotFound.Message=The specified provisioning package does not exist. Make sure it exists in the file system and try again. +CatalogNotFound.Message=The catalog file specified doesn't exist. We won't use this file if you proceed.{crlf;}{crlf;}Do you want to continue? +PackageRequired.Message=No provisioning package has been specified. Please specify a provisioning package to add and try again. + +[AppInstaller] +DownloadPackage.Button=Downloading application package... +Wait.Message=Please wait while DISMTools downloads the application package to add it to this image. This can take some time, depending on your network connection speed. +StatusLbl.Label=Please wait... +TransferDetails.Group=Transfer details +DownloadURL.Label=Download URL: +DownloadSpeed.Label=Download speed: unknown +Cancel.Button=Cancel +Wait.Label=Please wait... +EtaUnknown.Label=Estimated time remaining: unknown + +[AppInstaller.Error] +DownloadFailed.Message=An error occurred while downloading the file: {0} + +[AppInstaller.Progress] +MainPackage.Label=Downloading main application package... ({0} of {1} downloaded) + +[AppInstaller.Status] +DownloadSpeed.Label=Download speed: {0}/s +EtaSeconds.Label=Estimated time remaining: {0} seconds + +[AppDrive] +Bytes.Label=bytes (~ +Target.Disk.Button=Specify target disk... +Refresh.Button=Refresh +Ok.Button=OK +Cancel.Button=Cancel +DeviceID.Column=Device ID +Model.Column=Model +Partitions.Column=Partitions +Size.Column=Size +Destination.Disk.Id.Label=Destination disk ID (\\.\PHYSICALDRIVE(n)): + +[ApplyUnattend] +UnattendAnswer.File.Label=Apply unattended answer file +Image.Task.Header.Label={0} +AnswerFile.Label=Answer file: +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel + +[ApplyUnattend.Validation] +AnswerFile.Choose.Message=Either no unattended answer file has been specified or the specified file does not exist. Please verify that it exists, and try again. + +[AutoReload] +Wait.Message=Please wait while DISMTools reloads the servicing session of orphaned images. This can take some time. Once complete, this dialog will close. +ImageFile.Label=Image file: +Image.Mount.Point.Label=Image mount point: +ImageInfo.Group=Image information + +[AutoReload.Bg] +ReloadSucceeded.Message=Reloading mounted image... (succeeded: {0}, failed: {1}, skipped: {2}) + +[AutoReload.Background] +ProcessCompleted.Message=This process has completed + +[AutoReload.Progress] +Preparing.Images.Label=Preparing to reload images... + +[ActiveDirectory.DnsZone] +SelectZone.Message=Please select a DNS zone and try again. +Selected.Too.Long.Message=The selected DNS zone is no longer active because of either an expiration or a shut down. Choose another zone and try again. +ZonesLoaded.Message=DNS zones could not be obtained. + +[BGProcDetails.VisibleChanged] +Gathering.Image.Label=Gathering image information... +Processes.Take.Time.Label=These processes may take some time to complete + +[BGProcNotify] +Project.Loaded.Done.Label=This project has been loaded successfully +Gathering.Image.Label=The program is now gathering image information in the background. This may take some time. + +[BgProcs.Settings] +Advanced.Process.Label=Advanced background process settings +Additional.Label=Configure additional settings for background processes: + +[BgProcesses] +SkipNonRemovable.CheckBox=Skip packages with non-removable policies set +DetectAllDrivers.CheckBox=Detect all image drivers +Skip.Framework.CheckBox=Skip framework packages, and remove them from the listings if they were detected +Run.CheckBox=Run all background processes after performing a task +Ok.Button=OK +Cancel.Button=Cancel +Enhance.App.Detect.Message=Enhance detection of all installed AppX packages of an active installation with PowerShell helpers + +[BgProcesses.Validation] +DetectDrivers.Message=The program will now detect the drivers of the image according to the options you've specified. This may take some time. + +[BG.Procs] +Re.Still.Gathering.Label=We're still gathering image information +Finish.Process.Begin.Message=Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer.{crlf;}{crlf;}You can check the status of this background process at any time by clicking the icon on the bottom left. +Ok.Button=OK + +[Casters.Applicability] +Yes.Button=Yes +No.Button=No + +[Casters.DISMArchitecture] +Unknown.Label=Unknown +Neutral.Label=Neutral + +[Casters.Cast.DISM] +Present.Label=Not present +DisablePending.Label=Disable Pending +Staged.Label=Disabled +Removed.Label=Removed +Installed.Label=Enabled +EnablePending.Label=Enable Pending +Superseded.Label=Superseded +Partially.Installed.Label=Partially Installed +UninstallPending.Label=Uninstall Pending +Uninstalled.Label=Uninstalled +InstallPending.Label=Install Pending +CriticalUpdate.Label=Critical update +Driver.Label=Driver +FeaturePack.Label=Feature Pack +Foundation.Package.Label=Foundation package +Hotfix.Label=Hotfix +LanguagePack.Label=Language pack +LocalPack.Label=Local pack +DemandPack.Label=On Demand pack +Other.Label=Other +Product.Label=Product +SecurityUpdate.Label=Security update +ServicePack.Label=Service Pack +SoftwareUpdate.Label=Software update +Update.Label=Update +UpdateRollup.Label=Update rollup +NotRequired.Label=A restart is not required +May.Required.Label=A restart may be required +Required.Label=A restart is required + +[Casters.OfflineInstall] +FullyOffline.Message=A boot up to the target image may be required to fully install this package + +[Casters.SignatureStatus] +Unknown.Label=Unknown +UnsignedValidity.Message=Unsigned. Please check the validity and expiration date of the signing certificate +Signed.Label=Signed + +[Casters.CastDriveType] +Fixed.Label=Fixed +Network.Label=Network +Removable.Label=Removable +Unknown.Label=Unknown + +[HttpServer.Messages] +Root.Dir.Exist.Message=Root directory {quot;}{0}{quot;} does not exist in the file system. The server cannot be started. +TourServer.Label=Tour Server + +[ThemeDesigner.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[Designer.ActiveInstall] +Continue.Button=Continue +Cancel.Button=Cancel +Enter.Online.Message=You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation.{crlf;}{crlf;}Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program.{crlf;}{crlf;}If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable.{crlf;}{crlf;}We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible) +ProjectUnloaded.Label=The current project will be unloaded. +Active.Install.Label=About active installation management + +[Designer.AddCapabilities] +Ok.Button=OK +Cancel.Button=Cancel +Capabilities.Group=Capabilities +SelectAll.Button=Select all +SelectNone.Button=Select none +Capability.Column=Capability +State.Column=State +Options.Group=Options +Browse.Button=Browse... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +DifferentSource.CheckBox=Specify different source for capability installs +Detect.Group.Policy.Button=Detect from group policy +SourceHint.Description=Specify the source to use for capability addition: +AddCapabilities.Label=Add capabilities + +[Designer.AddCaps] +CommitImage.CheckBox=Commit image after adding capabilities + +[Designer.AddDrivers] +Ok.Button=OK +Cancel.Button=Cancel +DriverFiles.Group=Driver files +Drivers.Required.Message=Please specify the drivers to add by using the buttons below or by dropping them to the list below: +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Type +DriverFolders.Group=Driver folders +Scan.Driver.Message=You can let the program scan the driver folders present on the list below recursively and add them as well. To do so, tick the entries you'd like to be scanned: +Options.Group=Options +CommitImage.CheckBox=Commit image after adding drivers +Force.Install.CheckBox=Force installation of unsigned drivers +Driver.Files.Inf.Filter=Driver files|*.inf +DriverPackage.Title=Specify the driver package to add +DriverFolder.Description=Specify the folder containing driver packages. You will then be able to specify if it needs to be scanned recursively: +AddDrivers.Label=Add drivers + +[Designer.AddEdgeBrowser] +Ok.Button=OK +Cancel.Button=Cancel +Microsoft.Label=Add Microsoft Edge Browser + +[Designer.AddEdgeFull] +Ok.Button=OK +Cancel.Button=Cancel +Microsoft.Label=Add Microsoft Edge + +[Designer.Add.Edge] +Ok.Button=OK +Cancel.Button=Cancel +Microsoft.Web.Label=Add Microsoft Edge WebView + +[Designer.Add.List] +Ok.Button=OK +Cancel.Button=Cancel +Browse.Button=Browse... +Entry.Label=Entry: +AllFiles.Filter=All files|*.* +AddEntry.Label=Add entry + +[Designer.AddPackage] +Ok.Button=OK +Cancel.Button=Cancel +Packages.Group=Packages +Folder.Contains.Pkgnum.Label=This folder contains packages. +SelectAll.Button=Select all +SelectNone.Button=Select none +Packages.Choose.RadioButton=Choose which packages to add: +Browse.Button=Browse... +PackageOperation.Label=Package operation: +PackageSource.Label=Package source: +Options.Group=Options +Save.Image.Packages.CheckBox=Save image after adding packages +Ignore.CheckBox=Ignore applicability checks (not recommended) +Update.Manifest.Button=Add update manifest... +AddPackages.Label=Add packages +CabFolder.Description=Specify the folder containing CAB or MSU packages: + +[Designer.AddPkg] +ScanRecursive.RadioButton=Scan folder recursively for packages +Skip.Online.Install.CheckBox=Skip package installation if online operations are pending + +[Designer.AppxProvision] +Ok.Button=OK +Cancel.Button=Cancel +Entry.List.View.Message=Select an entry in the list view to show the details of an app and to configure addition settings +AppxVersion.Label=AppxVersion +AppxPublisher.Label=AppxPublisher +AppxTitle.Label=AppxTitle +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Type +ApplicationName.Column=Application name +App.Publisher.Column=Application publisher +App.Version.Column=Application version +Packages.Required.Message=Please add packed or unpacked AppX packages by using the buttons below, or by dropping them to the list view below: +AppxDependencies.Group=AppX dependencies +Remove.Dependencies.Button=Remove all dependencies +RemoveDependency.Button=Remove dependency +AddDependency.Button=Add dependency... +Package.Message=An AppX package may need some dependencies for it to be installed correctly. If so, you can specify a list of dependencies now: +CustomDataFile.CheckBox=Custom data file: +Browse.Button=Browse... +AppxRegions.Group=AppX regions +App.Available.CheckBox=Make app available for all regions +App.Regions.Form.Message=App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To learn more about these codes, click here +Multiple.App.Regions.Label=To specify multiple app regions, separate them with a semicolon (;) +CommitImage.CheckBox=Commit image after adding AppX packages +Files.Title=Specify the AppX files to add provisioning for +DependencyFiles.Filter=Dependency files|*.appx;*.msix +Xmllicenses.Filter=XML licenses|*.xml +LicenseFile.Title=Specify a license file +CustomData.Filter=All files|*.* +CustomData.File.Title=Specify a custom data file +LicenseFile.CheckBox=License file: +Configure.Stub.Item=Do not configure stub preference +StubPreference.Label=Stub preference: +Value.Button=... +Add.Prov.Label=Add provisioned AppX packages +MSIX.Packages.Filter=Applications|*.appx;*.appxbundle;*.msix;*.msixbundle|Application Installer package|*.appinstaller +Browse.Dependencies.Title=Browse for files applications depend on +Folder.Required.Description=Please specify a folder containing unpacked AppX files: +Install.Stub.Package.Item=Install application as a stub package +Install.Full.Package.Item=Install application as a full package + +[Designer.ProvPackage] +Ok.Button=OK +Cancel.Button=Cancel +PackagePath.Label=Package path: +Browse.Button=Browse... +Action.Treverted.Add.Message=This action can't be reverted. Once you add a provisioning package, you won't be able to remove it from your Windows image. +Package.Ppkg.Filter=Provisioning package|*.ppkg +CatalogPath.Label=Catalog path: +Catalog.File.Cat.Filter=Catalog file|*.cat +Add.Packages.Label=Add provisioning packages +CommitImage.CheckBox=Commit image after adding this provisioning package + +[Designer.DomainJoin] +DnstoolsBtn.Button=... +Nicsettings.Group=NIC Settings +Verify.DNS.Label=Verify DNS Address Syntax +Default.Adapter.Same.Message=By default, this adapter will use the same domain suffix you specified above. You can change it later +ManualAdapter.RadioButton=Specify a network adapter manually: +Address.First.Line.Message=The address in the first line will be the primary DNS server address, and any other addresses will become alternative server addresses. You can put both IPv4 and IPv6 addresses. +DNSServer.Addresses.Label=DNS Server Addresses (put each address in its own line): +PrimarySuffix.Label=Primary Domain Suffix: +InterfaceAlias.Label=Interface Alias: +Domain.Suffix.Added.Message=This domain suffix will be added to the list of DNS suffixes. You can add more to the list of suffixes later. +DNSSettings.Label=Configure DNS settings for network adapters +Type.Security.Account.Label=Type the Security Account Manager (SAM) name of the user account in the domain: +Organizational.Unit.Label=Organizational unit: +User.Label=User: +SAM.Account.Label=SAM account name of selected user object: +Org.Unit.Account.Message=If the desired account is not in any organizational unit, but rather in a container, or somewhere else; click the following button to pick it: +Pick.Account.Object.Button=Pick account object... +User.Manually.Item=Specify a user manually +Pick.User.Org.Item=Pick the following user from organizational units in my domain +Pick.User.Object.Item=Pick the following user object from anywhere in my domain +User.Principal.Name.Label=User Principal Name (Windows 2000): +Logon.Path.Pre.Label=Logon Path (pre-Windows 2000): +Domain.Auto.Detected.Message=A domain name could not be obtained automatically because this device does not belong to a domain. +Ask.Admin.Provide.Message=Contact your system administrator to provide authentication information used to join the domain. The account name specified here will be the initial account of the domain-joined system and it will pull initial group policies from the domain controller.{crlf;}{crlf;}To finish setting up target devices to join this domain, click Finish. +Password.Label=Password: +UserAccount.Label=User Account: +DomainName.Label=Domain Name: +Domain.Auth.Label=Provide domain and authentication information +Wizard.Helps.Set.Description=This wizard helps you set up your unattended answer file to make a device join a domain powered by Active Directory Domain Services (AD DS). +Join.Active.Dir.Label=Join an Active Directory domain +WhatDNS.Link=What is DNS? +Back.Button=Back +Next.Button=Next +Cancel.Button=Cancel +Help.Button=Help +Test.Dnsresolution.Label=Test DNS resolution +DNSZone.Domain.Choose.Label=Choose DNS zone... (domain controllers only) +Domain.Services.Wizard.Label=Domain Services Wizard +PickAdapter.RadioButton=Pick from a network adapter in this system: + +[Designer.AppInstaller] +Wait.Message=Please wait while DISMTools downloads the application package to add it to this image. This can take some time, depending on your network connection speed. +StatusLbl.Label=Status +TransferDetails.Group=Transfer details +TimeRemaining.Label=Estimated time remaining: +DownloadSpeed.Label=Download speed: +DownloadURL.Label=Download URL: +Cancel.Button=Cancel +Wait.Label=Please wait... +CopyURI.Button=Copy +DownloadPackage.Button=Downloading application package... + +[Designer.AppDrive] +Ok.Button=OK +Cancel.Button=Cancel +Refresh.Button=Refresh +DeviceID.Column=Device ID +Model.Column=Model +Partitions.Column=Partitions +Size.Column=Size +Target.Disk.Button=Specify target disk... +Destination.Disk.Id.Label=Destination disk ID (\\.\PHYSICALDRIVE(n)): + +[Designer.ApplyUnattend] +Ok.Button=OK +Cancel.Button=Cancel +Browse.Button=Browse... +AnswerFile.Label=Answer file: +Answer.Files.XML.Filter=Answer files|*.xml +Copy.AnswerFile.CheckBox=Copy answer file to image Sysprep directory +LeaveUnchecked.Message=Leave this option unchecked if you specify an answer file that causes conflicts with Sysprep if you enter audit mode. +UnattendAnswer.File.Label=Apply unattended answer file + +[Designer.AutoReloadForm] +Wait.Message=Please wait while DISMTools reloads the servicing session of orphaned images. This can take some time. Once complete, this dialog will close. +ImageInfo.Group=Image information +Image.Mount.Point.Label=Image mount point: +ImageFile.Label=Image file: +Wait.Label=Please wait... +DISMTools.Label=DISMTools + +[Designer.BgprocDetails] +Gathering.Image.Label=Gathering image information... +InfoTask.Label= +Processes.Take.Time.Label=These processes may take some time to complete. +DISMTools.Label=DISMTools + +[Designer.BgprocFailure] +Ok.Button=OK +Run.Issues.Message=We have run into some issues while getting the information about this Windows image. This may be due to incompatibilities caused by this image and system components, by modifications to the image, or by program bugs.{crlf;}{crlf;}Please look at the list below to see which tasks failed and why: +Failed.Bg.Procs.Label=Failed background processes + +[Designer.BgprocNotify] +Project.Loaded.Done.Label=This project has been loaded successfully +Gathering.Image.Label=The program is now gathering image information in the background. This may take some time. + +[Designer.BgProcesses] +Okbutton.Button=OK +Cancel.Button=Cancel +Enhance.App.Detect.CheckBox=Enhance detection of installed AppX packages of an active installation with PowerShell helpers +SkipNonRemovable.CheckBox=Skip packages with non-removable policies set +DetectAllDrivers.CheckBox=Detect all image drivers +Skip.Framework.CheckBox=Skip framework packages, and remove them from the listings if they were detected +Run.CheckBox=Run all background processes after performing a task + +[Designer.BgProcsSettings] +Additional.Label=Configure additional settings for background processes: +Advanced.Process.Label=Advanced background process settings + +[Designer.BgProcessesBusy] +Ok.Button=OK +Finish.Process.Begin.Message=Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer.{crlf;}{crlf;}You can check the status of this background process at any time by clicking the icon on the bottom left. +Re.Still.Gathering.Label=We're still gathering image information +DISMTools.Label=DISMTools + +[Designer.CapabilityFilter] +Apply.Button=Apply +Clear.Button=Clear +Name.Label=Name: +State.Label=State: +AnyState.Item=Any state +Installed.Item=Installed +Install.Pending.Item=Installation Pending +Removed.Item=Removed +FilterInfo.Prompt.Label=Filter capability information by: +FilterInfo.Title=Filter capability information + +[Designer.DISMComponents] +Ok.Button=OK +Component.Column=Component +Version.Column=Version +Dismcomponents.Label=DISM Components + +[Designer.DNSZones] +Ok.Button=OK +CancelButton.Button=Cancel +OfferedZones.Message=This server offers the following DNS zones you can choose from. Pick a DNS zone from the list below and click OK: +ZoneName.Column=Zone Name +DnsserverName.Column=DNS Server Name +DomainServices.Column=Integrated with Domain Services? +ZoneType.Column=Zone Type +Refresh.Button=Refresh +DNSZone.Choose.Label=Choose DNS Zone + +[Designer.DisableFeat] +Ok.Button=OK +Cancel.Button=Cancel +Options.Group=Options +Lookup.Button=Lookup... +PackageName.Label=Package name: +Remove.Feature.CheckBox=Remove feature without removing manifest +ParentPackage.CheckBox=Specify parent package name for features +Features.Group=Features +FeatureName.Column=Feature name +State.Column=State +DisableFeatures.Label=Disable features + +[Designer.DriverFileInfo] +Ok.Button=OK +Copy.Button=Copy +Property.Column=Property +Value.Column=Value +Driver.File.Label=Information of driver file: +Driver.File.Label.Label=Driver file information + +[Designer.DriverFilter] +Apply.Button=Apply +Clear.Button=Clear +FilterPrompt.Label=Filter driver information by: +PublishedName.Item=Published Name +Original.File.Name.Item=Original File Name +ProviderName.Item=Provider Name +ClassName.Item=Class Name +InboxStatus.Item=Inbox Status +Boot.Critical.Status.Item=Boot-Critical Status +SignatureStatus.Item=Signature Status +Date.Item=Date +MonthName.Label=Month Name +Year.Item=Year +Month.Item=Month +Released.Item=Released on +NotReleased.Item=Not released on +ReleasedBefore.Item=Released before +ReleasedOnBefore.Item=Released on or before +ReleasedAfter.Item=Released after +ReleasedOnAfter.Item=Released on or after +Date.Label=Date: +Search.Signed.CheckBox=The drivers I'm searching for are signed +SignatureStatus.Label=Signature Status: +Search.BootCritical.CheckBox=The drivers I'm searching for are critical to the boot process +Boot.Critical.Status.Label=Boot-Critical Status: +Search.Inbox.CheckBox=The drivers I'm searching for are part of the Windows distribution +InboxStatus.Label=Inbox Status: +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +ProviderName.Label=Provider Name: +Original.File.Name.Label=Original File Name: +PublishedName.Label=Published Name: +Driver.Searches.Choose.Label=Choose a filter to use for driver searches. +Title=Filter driver information + +[Designer.DriverFilePicker] +Ok.Button=OK +Cancel.Button=Cancel +RecursiveListing.Message=Below is a recursive listing of all drivers in the directory you are specifying. From this list, pick the drivers you want to add and click OK. +Refresh.Button=Refresh +DirectoryStatus.Label=Directory status +Driver.Files.Choose.Label=Choose driver files in directory + +[Designer.EnableFeat] +Ok.Button=OK +Cancel.Button=Cancel +Features.Group=Features +FeatureName.Column=Feature name +State.Column=State +Options.Group=Options +Detect.Group.Policy.Button=Detect from group policy +Browse.Button=Browse... +Lookup.Button=Lookup... +FeatureSource.Label=Feature source: +PackageName.Label=Package name: +Contact.Win.Update.CheckBox=Contact Windows Update for online images +ParentFeatures.CheckBox=Enable all parent features +Feature.Source.CheckBox=Specify feature source +ParentPackage.CheckBox=Specify parent package name for features +SourceFolder.Description=Specify a folder which will act as the feature source: +EnableFeatures.Label=Enable features +CommitImage.CheckBox=Commit image after enabling features + +[Designer.EnvVars] +Save.Changes.Label=Save all changes +Intro.Message=This tool lets you view and manage the environment variables of this target image. Click the Save button to save any changes made to the environment variables. +TargetSystem.Label=Environment variables for the target system +Name.Column=Name +Value.Column=Value +Remove.Machine.Label=Remove machine variable +Add.Machine.Variable.Button=Add machine variable... +DefaultUser.Label=Environment variables for default user profiles +Remove.User.Variable.Label=Remove user variable +Add.User.Variable.Button=Add user variable... +SaveVariable.Label=Save Variable +Scope.Label=Scope: +Hierarchical.Values.Message=This variable is hierarchical. Values added to the system variable will be either prepended to or replaced by the user variable when the user profile is loaded. +Variables.Location.Label=* Environment variables contained within this value are not expanded. +Value.Label=Value: +Name.Label=Name: +VariableInfo.Label=Environment Variable Information: +Copy.Default.User.Label=Copy to default user scope +Copy.Machine.Scope.Label=Copy to machine scope +Move.Machine.Scope.Label=Move to machine scope +Move.Default.User.Label=Move to default user scope +SystemVariables.Label=System Environment Variable Management + +[Designer.ExceptionForm] +Sorry.Inconvenience.Message=We are sorry for the inconvenience, but DISMTools has run into an error that it couldn't handle and we need your help in order to continue.Here is the error information if you need it: +Help.Us.Fix.Label=Please help us fix this issue +ReportIssue.Label=Report this issue +Continue.Running.Message=You may be able to continue running the program by clicking Continue. However, if this error is displayed for a second time, you can forcefully close the program by clicking Exit. Do note that changes made to projects, as well as changes in the Recents list, will not be saved.{crlf;}{crlf;}What do you want to do? +Reporting.Issue.Message=When reporting this issue, PLEASE paste the exception information on the left. Otherwise, standard closure policies will be applied which imply closing your issue after (at least) 4 hours. +Continue.Button=Continue +Exit.Button=Exit +Copy.Inspect.Logs.Button=Copy and Inspect Logs +DISM.Tools.Internal.Label=DISMTools - Internal Error +Problem.Prevention.Message=In order to prevent this problem from happening again, we would like to know more about it by reporting an issue on the GitHub repository. You will need a GitHub account to report feedback. + +[Designer.ExportDrivers] +Ok.Button=OK +Cancel.Button=Cancel +ExportTarget.Label=Export target: +Browse.Button=Browse... +DriversPath.Description=Please specify the path where the drivers will be exported to: +Driver.Mode.Group=Driver Export Mode +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +Matching.Drivers.RadioButton=Export drivers with the following matching class name to the destination: +Image.Drivers.RadioButton=Export all image drivers to the destination +ExportDrivers.Label=Export drivers + +[Designer.FFUApply] +Ok.Button=OK +Cancel.Button=Cancel +Source.Group=Source +Browse.Button=Browse... +Mounted.Image.Label=Use mounted image +SourceImageFile.Label=Source image file: +SfufilePattern.Group=SFU file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Naming pattern: +Destination.Group=Destination +DriveDetails.Label=Drive Details: +DestinationDrive.Label=Destination drive: +Specify.Button=Specify... +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +Source.Image.Required.Title=Please specify the source image to apply +Reference.Sfufiles.CheckBox=Reference SFU files +File.Label=Apply a FFU file + +[Designer.FFUCapture] +Ok.Button=OK +Cancel.Button=Cancel +Source.Group=Source +DriveDetails.Label=Drive Details: +SourceDrive.Label=Source drive: +Specify.Button=Specify... +Destination.Group=Destination +Browse.Button=Browse... +Destination.ImageFile.Label=Destination image file: +Options.Group=Options +Description.Goes.Label=(Description goes here) +None.Item=none +Default.Item=default +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +File.Label=Capture a FFU file + +[Designer.FFUInfoDialog] +Ok.Button=OK +Cancel.Button=Cancel +Ffuheader.Tab=FFU Header +Value.Label= +CompressionType.Label=Compression Type: +Ffuversion.Label=FFU Version: +Physical.Disk.Path.Label=Physical Disk Path: +Vhdstorage.Device.ID.Label=VHD Storage Device ID: +MountedVHDID.Label=Mounted VHD ID: +MountedVhdpath.Label=Mounted VHD path: +MountedVHD.Tab=Mounted VHD +Selected.Partition.Label=Information about the selected partition: +Mounted.FFU.Message=This mounted FFU file contains the following partitions. To show details of a specific partition, select it from the list below: +Manifest.Tab=Manifest +Full.Flash.Utility.Label=Full Flash Utility (FFU) Information + +[Designer.FFUOptimize] +Ok.Button=OK +Cancel.Button=Cancel +Browse.Button=Browse... +ImageFile.Label=Image file to optimize: +Default.Partition.CheckBox=Optimize a partition other than the default partition in the specified FFU file +PartitionNumber.Label=Partition number: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +OpenFile.Title=Please specify the source image to apply +Ffuimages.Label=Optimize FFU images + +[Designer.FFUSplit] +Ok.Button=OK +Cancel.Button=Cancel +Integrity.CheckBox=Check image integrity +Browse.Button=Browse... +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Maximum.Size.Images.Label=Maximum size of split images (in MB): +Name.Path.Destination.Label=Name and path of the destination split image: +Source.Image.Label=Source image to split: +Sfufiles.Filter=SFU files|*.sfu +Target.Location.Title=Specify the target location of the split images: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +Source.WIM.File.Title=Specify the source WIM file to split: +SplitFfuimages.Label=Split FFU images + +[Designer.FeatureFilter] +Apply.Button=Apply +Clear.Button=Clear +Filter.Feature.Prompt.Label=Filter feature information by: +Name.Label=Name: +State.Label=State: +AnyState.Item=Any state +Enabled.Item=Enabled +Enablement.Pending.Item=Enablement Pending +Disabled.Item=Disabled +Disablement.Pending.Item=Disablement Pending +Filter.Feature.Title=Filter feature information + +[Designer.Get.AppX] +PackageName.Label=Package name: +DynamicValue.Label= +Display.Name.Label=Application display name: +Architecture.Label=Architecture: +ResourceID.Label=Resource ID: +Version.Label=Version: +Registered.User.Label=Is registered to any user? +Install.Dir.Label=Installation directory: +Package.Manifest.Label=Package manifest location: +StoreLogo.Asset.Dir.Label=Store logo asset directory: +Main.StoreLogo.Asset.Label=Main store logo asset: +Asset.Guessed.DISM.Message=This asset has been guessed by DISMTools based on its size, which can lead to an incorrect result. If that happens, please report an issue on the GitHub repository +Asset.One.IM.Link=This asset is not the one I'm looking for +AppX.Package.Label=AppX package information +Installed.AppX.Label=Select an installed AppX package on the left to view its information here +Save.Button=Save... +AppX.Package.Get.Label=Get AppX package information + +[Designer.CapabilityInfo] +Ready.Label=Ready +Identity.Column=Capability identity +State.Column=State +Identity.Label=Capability identity: +DynamicValue.Label= +CapabilityName.Label=Capability name: +CapabilityState.Label=Capability state: +DisplayName.Label=Display name: +Description.Label=Capability description: +Sizes.Label=Sizes: +CapabilityInfo.Label=Capability information +Save.Button=Save... +Look.Item.Online.Button=Look this item online +Get.Label=Get capability information + +[Designer.GetCapInfo] +SelectCapability.Label=Select an installed capability on the left to view its information here + +[Designer.GetDriverInfo] +View.Driver.File.Button=View driver file information +Change.Button=Change +Bg.Procs.Notice.Message=You have configured the background processes to not show all drivers present in this image, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in. +Save.Button=Save... +Status.Label=Status +PublishedName.Column=Published name +Original.File.Name.Column=Original file name +PublishedName.Label=Published name: +DynamicValue.Label= +Original.File.Name.Label=Original file name: +ProviderName.Label=Provider name: +ClassName.Label=Class name: +ClassDescription.Label=Class description: +ClassGUID.Label=Class GUID: +Catalog.File.Path.Label=Catalog file path: +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Is critical to the boot process? +Version.Label=Version: +Date.Label=Date: +Driver.Signature.Label=Driver signature status: +DriverInfo.Label=Driver information +Installed.Driver.View.Label=Select an installed driver to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddDriver.Button=Add driver... +Hardware.Description.Label=Hardware description: +HardwareID.Label=Hardware ID: +AdditionalIds.Label=Additional IDs: +CompatibleIds.Label=Compatible IDs: +ExcludeIds.Label=Exclude IDs: +Hardware.Manufacturer.Label=Hardware manufacturer: +Architecture.Label=Architecture: +JumpTarget.Label=Jump to target: +HardwareTargets.Label=Hardware targets +Add.DriverPackage.Label=Add or select a driver package to view its information here +GoBack.Link=<- Go back +Help.AddDrivers.Message=Click here to get information about drivers that you want to add to the Windows image you're servicing before proceeding with the driver addition process +Get.Drivers.Message=Click here to get information about drivers that you've installed or that came with the Windows image you're servicing +InstalledDriver.Link=I want to get information about installed drivers in the image +Iwant.Link=I want to get information about driver files +Get.Label=What do you want to get information about? +Driver.Files.Inf.Filter=Driver files|*.inf +Locate.Driver.Files.Title=Locate driver files +Driver.Label=Get driver information + +[Designer.GetFeatureInfo] +FeatureName.Column=Feature name +FeatureState.Column=Feature state +FeatureName.Label=Feature name: +DynamicValue.Label= +DisplayName.Label=Display name: +Description.Label=Feature description: +RestartRequired.Label=Is a restart required? +FeatureState.Label=Feature state: +CustomProps.Label=Custom properties: +FeatureInfo.Label=Feature information +Installed.Left.Label=Select an installed feature on the left to view its information here +Ready.Label=Ready +Save.Button=Save... +Look.Item.Online.Button=Look this item online +Get.Feature.Label=Get feature information + +[Designer.Get.Img] +WIM.Files.Wimvirtual.Filter=WIM files|*.wim|Virtual Hard Disk files|*.vhd, *.vhdx|ESD files|*.esd|SWM files|*.swm|Full Flash Utility files|*.ffu +Image.Title=Specify the image to get the information from +Index.Column=Index +ImageName.Column=Image name +Pick.Button=Pick... +Browse.Button=Browse... +AnotherImage.RadioButton=Another image +CurrentlyMounted.RadioButton=Currently mounted image +List.Indexes.ImageFile.Label=List of indexes of image file: +ImageFile.Label=Image file to get information from: +ImageVersion.Label=Image version: +DynamicValue.Label= +ImageName.Label=Image name: +ImageDescription.Label=Image description: +ImageSize.Label=Image size: +Supports.WIM.Boot.Label=Supports WIMBoot? +Architecture.Label=Architecture: +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Service Pack level: +InstallationType.Label=Installation type: +Edition.Label=Edition: +ProductType.Label=Product type: +ProductSuite.Label=Product suite: +System.Root.Dir.Label=System root directory: +FileCount.Label=File count: +Dates.Label=Dates: +Installed.Languages.Label=Installed languages: +ImageInfo.Label=Image information +Index.List.View.Label=Select an index on the list view on the left to view its information here +Save.Button=Save... +Image.Label=Get image information + +[Designer.GetPkgInfo] +AddPackages.Help.Message=Click here to get information about packages that you want to add to the Windows image you're servicing before proceeding with the package addition process +Get.Packages.Message=Click here to get information about packages that you've installed or that came with the Windows image you're servicing +InstalledPackage.Link=I want to get information about installed packages in the image +PackageFile.Link=I want to get information about package files +Get.Label=What do you want to get information about? +Save.Button=Save... +Status.Label=Status +PackageName.Label=Package name: +DynamicValue.Label= +Package.Applicable.Label=Is package applicable? +Copyright.Label=Copyright: +Company.Label=Company: +CreationTime.Label=Creation time: +Description.Label=Description: +InstallClient.Label=Install client: +Install.Package.Name.Label=Install package name: +InstallTime.Label=Install time: +Last.Update.Time.Label=Last update time: +DisplayName.Label=Display name: +ProductName.Label=Product name: +ProductVersion.Label=Product version: +ReleaseType.Label=Release type: +RestartRequired.Label=Is a restart required? +SupportInfo.Label=Support information: +State.Label=State: +Boot.Up.Required.Label=Is a boot up required for full installation? +Capability.Identity.Label=Capability identity: +CustomProps.Label=Custom properties: +Features.Label=Features: +PackageInfo.Label=Package information +Installed.Package.View.Label=Select an installed package to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddPackage.Button=Add package... +Add.Package.File.Label=Add or select a package file to view its information here +GoBack.Link=<- Go back +Cabfiles.Filter=CAB files|*.cab +Locate.Package.Files.Title=Locate package files +Package.Label=Get package information + +[Designer.WinPESettings] +Ok.Button=OK +Windows.Label=These are the Windows PE settings for this image: +Change.Button=Change... +TargetPath.Label=Target path: +ScratchSpace.Label=Scratch space: +Save.Button=Save... +Get.Windows.Pesettings.Label=Get Windows PE settings + +[Designer.ImageFilePicker] +Ok.Button=OK +Cancel.Button=Cancel +ImageFile.Column=Image File +Pick.Windows.ImageFile.Label=Pick Windows image file +MountList.Prompt.Label=Pick the Windows image file that you want to mount from the list below and click OK: + +[Designer.ImageTaskHeader] +ItemText.Title=Item Text + +[Designer.ImgAppend] +Ok.Button=OK +Cancel.Button=Cancel +Options.Group=Options +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Grab.Last.Image.Button=Grab from last image +Browse.Button=Browse... +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +ExtendedAttributes.CheckBox=Capture extended attributes +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +WIM.Boot.Config.CheckBox=Append with WIMBoot configuration +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Destination.ImageFile.Label=Destination image file: +Sources.Destinations.Group=Sources and destinations +Source.Image.Dir.Label=Source image directory: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +AppendImage.Label=Append to an image + +[Designer.ImgApply] +Ok.Button=OK +Cancel.Button=Cancel +Source.Group=Source +Browse.Button=Browse... +Mounted.Image.Label=Use mounted image +SourceImageFile.Label=Source image file: +Options.Group=Options +Extended.Attributes.CheckBox=Apply extended attributes +Image.Compact.Mode.CheckBox=Apply image in compact mode +ImageIndex.Label=Image index: +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Reference.Swmfiles.CheckBox=Reference SWM files +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Verify.CheckBox=Verify +Integrity.CheckBox=Check image integrity +Destination.Group=Destination +Destination.Dir.Label=Destination directory: +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm|ESD files|*.esd +Source.Image.Required.Title=Please specify the source image to apply +SwmfilePattern.Group=SWM file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Naming pattern: +DestinationDir.Description=Please specify the destination directory to apply the image to: +ApplyImage.Label=Apply an image +Validate.Image.CheckBox=Validate image for Trusted Desktop + +[Designer.ImgCapture] +Ok.Button=OK +Cancel.Button=Cancel +Sources.Destinations.Group=Sources and destinations +Browse.Button=Browse... +Destination.ImageFile.Label=Destination image file: +Source.Image.Dir.Label=Source image directory: +Options.Group=Options +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Mount.Dest.Image.CheckBox=Mount destination image for later use +Extended.Attributes.CheckBox=Capture extended attributes +Append.WIM.Boot.CheckBox=Append with WIMBoot configuration +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +CaptureImage.Label=Capture an image + +[Designer.ImgCleanup] +Ok.Button=OK +Cancel.Button=Cancel +Task.Choose.Label=Choose a task: +Revert.Pending.Actions.Item=Revert pending actions +Clean.Up.ServicePack.Item=Clean up Service Pack backup files +Clean.Up.Component.Item=Clean up component store +Analyze.Component.Store.Item=Analyze component store +Check.Component.Store.Item=Check component store +Scan.Comp.Store.Item=Scan component store for corruption +Repair.Component.Store.Item=Repair component store +TaskOptions.Group=Task options +NoOptions.Message=There are no configurable options for this task. However, you should only run this task to try to recover a Windows image that fails to boot. +HideServicePack.CheckBox=Hide service pack from the Installed Updates list +Last.Reset.Base.Label=LastResetBase_UTC +Only.Check.Option.Label=You should only check this option if the base reset takes more than 30 minutes to complete +Superseded.Base.Reset.Label=The superseded components base reset was last run on: +Defer.Long.Running.CheckBox=Defer long-running cleanup operations +Reset.Base.CheckBox=Reset base of superseded components +NoOptions.Label=There are no configurable options for this task. +Browse.Button=Browse... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +Different.Source.CheckBox=Use different source for component repair +Detect.Group.Policy.Button=Detect from group policy +Task.Listed.Label=Select a task listed above to configure its options. +Task.See.Choose.Label=Choose a task to see its description +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +Source.Title=Specify the source from which we will restore the component store health +ImageCleanup.Label=Image cleanup + +[Designer.ImageConvert] +Converted.Message=The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located.{crlf;}{crlf;}Do you want to open the directory where the target image is stored? +Converted.Label=The image has been successfully converted +Yes.Button=Yes +No.Button=No +AppName.Label=DISMTools + +[Designer.ImgExport] +Ok.Button=OK +Cancel.Button=Cancel +Sources.Destinations.Group=Sources and destinations +Browse.Button=Browse... +Destination.ImageFile.Label=Destination image file: +SourceImageFile.Label=Source image file: +Options.Group=Options +Reference.Swmfiles.CheckBox=Reference SWM files +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Naming pattern: +CustomName.CheckBox=Specify a custom name for the destination image +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Recovery.Item=recovery +CompressionType.Label=Destination image compression type: +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Index.Column=Index +ImageName.Column=Image name +ImageDescription.Column=Image description +ImageVersion.Column=Image version +Source.Image.Index.Label=Source image index: +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm +Source.ImageFile.Title=Specify a source image file to export +ExportImage.Label=Export an image +CheckIntegrity.CheckBox=Check integrity before exporting image + +[Designer.ImageIndexDelete] +Ok.Button=OK +Cancel.Button=Cancel +SourceImage.Label=Source image: +Browse.Button=Browse... +Mounted.Image.Button=Use mounted image +VolumeImages.Group=Volume images +Index.Column=Index +ImageName.Column=Image name +Get.Indexes.Image.Label=Getting indexes from the image. Please wait... +Mark.VolumeImages.Message=Please mark the volume images to delete on the left. The image will then have the indexes shown on the right +Integrity.CheckBox=Check image integrity +WIM.Files.Filter=WIM files|*.wim +Source.Image.Remove.Title=Specify the source image to remove volume images from +Remove.Volume.Image.Label=Remove a volume image + +[Designer.ImageIndexSwitch] +Ok.Button=OK +Cancel.Button=Cancel +Indexes.Group=Indexes +Save.Changes.RadioButton=Save changes to index +Index.Label= +Destination.Mount.Label=Destination index to mount: +Unmounting.Source.Label=When unmounting source index, what to do? +Image.Label=Image: +Already.Mounted.Label=This index has already been mounted +Image.Indexes.Label=Switch image indexes +DiscardChanges.RadioButton=Unmount discarding changes + +[Designer.Img.Save] +Status.Label=Status +Wait.Message=Please wait while DISMTools saves the image information to a file. This can take some time, depending on the tasks that are run. +Saving.Image.Button=Saving image information... + +[Designer.ImgMount] +Ok.Button=OK +Cancel.Button=Cancel +Options.Required.Label=Please specify the options to mount an image: +Source.Group=Source +Notewant.ESD.Label=NOTE: if you want to mount an ESD file, you need to convert it to a WIM file first +Convert.Button=Convert +Browse.Button=Browse... +ImageFile.Label=Image file*: +Destination.Group=Destination +MountDirectory.Label=Mount directory*: +Options.Group=Options +Index.Column=Index +ImageName.Column=Image name +ImageDescription.Column=Image description +ImageVersion.Column=Image version +Integrity.CheckBox=Check image integrity +Optimize.Times.CheckBox=Optimize mount times +Mount.Read.CheckBox=Mount with read only permissions +Index.Label=Index*: +Fields.End.Required.Label=The fields that end in * are required +FileSpec.Filter=WIM files|*.wim|ESD files|*.esd|SWM files|*.swm|VHD(X) files|*.vhd;*.vhdx|ISO files|*.iso|Full Flash Utility files|*.ffu +MountImage.Label=Mount an image + +[Designer.ImgOptimize] +Ok.Button=OK +Cancel.Button=Cancel +Path.Mounted.Image.Label=Path of mounted image to optimize: +Pick.Button=Pick... +Mounted.Image.Button=Use mounted image +Image.Optimization.Mode=Image optimization mode +Reduce.Online.RadioButton=Reduce online configuration time that the target OS spends during boot +Image.Again.Label=You may need to optimize the image again if you perform servicing operations after this task. +OfflineImage.RadioButton=Configure an offline image for installation on a WIMBoot system (Windows 8.1 only) +OptimizeImages.Label=Optimize images + +[Designer.Img.SWM] +Ok.Button=OK +Cancel.Button=Cancel +Split.WIM.Files.Filter=Split WIM files|*.swm +Source.Swmfile.Title=Specify the source SWM file to merge +WIM.Files.Filter=WIM files|*.wim +Dest.WIM.File.Title=Specify the destination WIM file to merge the source SWM files to +SourceSwmfile.Label=Source SWM file: +Browse.Button=Browse... +Destination.WIM.File.Label=Destination WIM file: +Notewhen.Specifying.Message=NOTE: when specifying the SWM file, choose the first file. DISMTools will take care of additional SWM files stored in that directory. +LearnHow.Link=Learn how to do it +Source.Group=Source +Options.Group=Options +Index.Column=Index +ImageName.Column=Image name +ImageDescription.Column=Image description +ImageVersion.Column=Image version +Index.Label=Index: +Destination.Group=Destination +MergeSwmfiles.Label=Merge SWM files + +[Designer.ImgSplit] +Ok.Button=OK +Cancel.Button=Cancel +Swmfiles.Filter=SWM files|*.swm +SaveFile.Title=Specify the target location of the split images: +WIM.Files.Filter=WIM files|*.wim +Source.WIM.File.Title=Specify the source WIM file to split: +Source.Image.Label=Source image to split: +Browse.Button=Browse... +Name.Path.Destination.Label=Name and path of the destination split image: +Maximum.Size.Images.Label=Maximum size of split images (in MB): +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Integrity.CheckBox=Check image integrity +SplitImages.Label=Split images + +[Designer.ImgUmount] +Ok.Button=OK +Cancel.Button=Cancel +Options.Required.Label=Please specify the options to unmount this image: +MountDirectory.Group=Mount directory +Pick.Button=Pick... +MountDirectory.Label=Mount directory: +LocatedSomewhere.RadioButton=is located somewhere else +LoadedProject.RadioButton=is loaded in the project +Mount.Dir.Label=The mount directory: +Additional.Options.Group=Additional options +Save.Changes.Unmount.Item=Save changes and unmount +Discard.Changes.Unmount.Item=Discard changes and unmount +Append.Changes.CheckBox=Append changes to another index +Integrity.CheckBox=Check image integrity +UnmountOperation.Label=Unmount operation: +MountDir.Description=Please specify a mount directory: +UnmountImage.Label=Unmount an image + +[Designer.Img.WIM] +Ok.Button=OK +Cancel.Button=Cancel +Source.Group=Source +Browse.Button=Browse... +SourceImageFile.Label=Source image file: +Options.Group=Options +Index.Column=Index +ImageName.Column=Image name +ImageDescription.Column=Image description +ImageVersion.Column=Image version +Index.Label=Index: +Format.Converted.Image.Label=Format of converted image: +Format.Ichoose.Link=Which format do I choose? +Destination.Group=Destination +Destination.ImageFile.Label=Destination image file: +OpenFile.Filter=WIM files|*.wim|ESD files|*.esd +Source.ImageFile.Title=Specify the source image file you want to convert +Target.Image.Stored.Title=Where will the target image be stored? +ConvertImage.Label=Convert image + +[Designer.VistaWarning] +Unsupported.Message=Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled.{crlf;}{crlf;}If you still want to service a Windows Vista image, refer to the {quot;}Compatibility with older Windows versions{quot;} topic in the Help documentation.{crlf;}{crlf;}Do you want to continue? +Windows.Service.Message=The program can't service Windows Vista images +Yes.Button=Yes +No.Button=No +DISMTools.Label=DISMTools + +[Designer.ImportDrivers] +Ok.Button=OK +Cancel.Button=Cancel +Process.Third.Message=This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image +ImportSource.Label=Import source: +Windows.Item=Windows image +Online.Install.Item=Online installation +Offline.Install.Item=Offline installation +ImgFile.Label= +ImageFile.Label=Image file: +Tuse.Target.Label=You can't use the import target as the import source +Pick.Button=Pick... +Windows.Label=Windows image to import drivers from: +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Refresh.Button=Refresh +Offline.Drivers.Label=Offline installation to import drivers from: +Source.Listed.Choose.Label=Choose a source listed above to configure its settings. +ImportDrivers.Label=Import drivers + +[Designer.IncompleteSetupDlg] +Yes.Button=Yes +No.Button=No +SetupIncomplete.Message=Setup is not complete yet, and your custom settings will not be saved. Proceeding will make the program use default settings.Do you want to proceed? +DISMTools.Label=DISMTools + +[Designer.InfoSaveResults] +ReportSaved.Message=The report has been saved to the location you had specified, and its contents will be shown below. +Ok.Button=OK +Display.Content.Web.CheckBox=Display content in Web View +SaveReport.Button=Save report... +Htmlreports.Filter=HTML Reports|*.html +Image.Report.Label=Image information report results + +[Designer.InvalidSettings] +Ok.Button=OK +Scratch.Dir.Status.Label= +Log.File.Status.Label= +Log.Font.Status.Label= +DISM.Executable.Status.Label= +Detected.Label=Invalid settings have been detected +ResetDefaults.Message=The invalid settings have been reset to default values. Check the fields below for more information: +Found.Label=The program has detected invalid settings + +[Designer.ISOCreator] +ISO.File.Message=The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here. +Options.Group=Options +Include.Essential.CheckBox=Include essential drivers from this system +Customize.Environment.Button=Customize Environment... +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Browse.Button=Browse... +Copy.Ventoy.Drives.CheckBox=Copy to Ventoy drives +Unattended.CheckBox=Unattended answer file: +Architecture.Label=Architecture: +Pick.Button=Pick... +Target.Isolocation.Label=Target ISO location: +ImageFile.Add.Label=Image file to add to ISO file: +Mounted.Image.Button=Use mounted image +Newly.Signed.Boot.CheckBox=Use newly-signed boot binaries +Cancel.Button=Cancel +Create.Button=Create +Progress.Group=Progress +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=Status +WIM.Files.Filter=WIM files|*.wim +Isofiles.Filter=ISO files|*.iso +Download.Windows.ADK.Link=Download the Windows ADK +Answer.Files.XML.Filter=Answer files|*.xml +CreateIsofile.Label=Create an ISO file + +[Designer.Main] +File.Label=&File +NewProject.Button=&New project... +Open.Existing.Project.Label=&Open existing project +Manage.Online.Install.Label=&Manage online installation +Manage.Ffline.Button=Manage o&ffline installation... +RecentProjects.Label=Recent projects +SaveProject.Button=&Save project... +Save.Project.Button=Save project &as... +Exit.Label=E&xit +Project.Label=&Project +View.Project.Files.Label=View project files in File Explorer +UnloadProject.Button=Unload project... +Switch.Image.Indexes.Button=Switch image indexes... +ProjectProps.Label=Project properties +ImageProps.Label=Image properties +Commands.Label=Com&mands +ImageManagement.Label=Image management +Append.Capture.Dir.Button=Append capture directory to image... +ApplyFfusfufile.Button=Apply FFU or SFU file... +ApplyWimswmfile.Button=Apply WIM or SWM file... +Capture.Incremental.Button=Capture incremental changes to file... +Capture.Partitions.Button=Capture partitions to FFU file... +Capture.Image.Drive.Button=Capture image of a drive to WIM file... +Delete.Resources.Button=Delete resources from corrupted image... +Apply.Changes.Image.Button=Apply changes to image... +Delete.Volume.Image.Button=Delete volume image from WIM file... +ExportImage.Button=Export image... +Get.Image.Button=Get image information... +Get.WIM.Boot.Button=Get WIMBoot configuration entries... +List.Files.Dirs.Button=List files and directories in image... +MountImage.Button=Mount image... +Optimize.FFU.File.Button=Optimize FFU file... +OptimizeImage.Button=Optimize image... +Remount.Image.Button=Remount image for servicing... +Split.FFU.File.Button=Splt FFU file into SFU files... +Split.WIM.File.Button=Split WIM file into SWM files... +UnmountImage.Button=Unmount image... +Update.WIM.Boot.Button=Update WIMBoot configuration entry... +Apply.Siloed.Prov.Button=Apply siloed provisioning package... +Save.Image.Button=Save image information... +OSPackages.Label=OS packages +GetPackages.Button=Get package information... +AddPackage.Button=Add package... +RemovePackage.Button=Remove package... +GetFeatures.Button=Get feature information... +EnableFeature.Button=Enable feature... +DisableFeature.Button=Disable feature... +CleanupRecovery.Button=Perform cleanup or recovery operations... +ProvPackages.Label=Provisioning packages +Add.Prov.Package.Button=Add provisioning package... +Get.Prov.Package.Button=Get provisioning package information... +Apply.CustomData.Button=Apply custom data image... +AppPackages.Label=App packages +Get.App.Package.Button=Get app package information... +Add.Provisioned.App.Button=Add provisioned app package... +Remove.Prov.App.Button=Remove provisioning for app package... +Optimize.Provisioned.Button=Optimize provisioned packages... +Add.CustomData.File.Button=Add custom data file into app package... +AppMspservicing.Label=App (MSP) servicing +Get.App.Patch.Button=Get application patch information... +Installed.App.Details.Button=Get detailed installed application patch information... +Basic.Installed.App.Button=Get basic installed application patch information... +Get.Detailed.Button=Get detailed Windows Installer (*.msi) application information... +Get.Basic.Windows.Button=Get basic Windows Installer (*.msi) application information... +DefaultApp.Assoc.Label=Default app associations +Export.Default.Button=Export default application associations... +DefaultApp.Assoc.Button=Get default application association information... +Import.Default.Button=Import default application associations... +Remove.Default.Button=Remove default application associations... +Languages.Regional.Label=Languages and regional settings +Intl.Settings.Button=Get international settings and languages... +SetUilanguage.Button=Set UI language... +Set.Default.Button=Set default UI fallback language... +Set.System.Preferred.Button=Set system preferred UI language... +Set.System.Locale.Button=Set system locale... +Set.User.Locale.Button=Set user locale... +Set.Input.Locale.Button=Set input locale... +Set.UI.Button=Set UI language and locales... +Set.Default.Time.Button=Set default time zone... +Set.Default.Languages.Button=Set default languages and locales... +Set.Layered.Driver.Button=Set layered driver... +Generate.Lang.Ini.Button=Generate Lang.ini file... +Set.Default.Setup.Button=Set default Setup language... +Capabilities.Label=Capabilities +AddCapability.Button=Add capability... +Export.Capabilities.Button=Export capabilities into repository... +GetCapabilities.Button=Get capability information... +RemoveCapability.Button=Remove capability... +WindowsEditions.Label=Windows editions +Get.Edition.Button=Get current edition... +Get.Upgrade.Targets.Button=Get upgrade targets... +UpgradeImage.Button=Upgrade image... +SetProductKey.Button=Set product key... +Drivers.Label=Drivers +GetDrivers.Button=Get driver information... +AddDriver.Button=Add driver... +RemoveDriver.Button=Remove driver... +Export.DriverPackages.Button=Export driver packages... +Import.DriverPackages.Button=Import driver packages... +Unattended.Answer.Label=Unattended answer files +Apply.Unattended.Button=Apply unattended answer file... +Remove.Applied.Label=Remove applied answer file +System.Enter.Audit.Label=Make system enter audit mode +WindowsPE.Label=Windows PE servicing +GetSettings.Button=Get settings... +SetScratchSpace.Button=Set scratch space... +Set.Target.Path.Button=Set target path... +OSUninstall.Label=OS uninstall +Get.Uninstall.Window.Button=Get uninstall window... +Initiate.Uninstall.Button=Initiate uninstall... +Remove.Roll.Back.Button=Remove roll back ability... +Set.Uninstall.Window.Button=Set uninstall window... +ReservedStorage.Label=Reserved storage +Set.Reserved.Storage.Button=Set reserved storage state... +Get.Reserved.Storage.Button=Get reserved storage state... +MicrosoftEdge.Label=Microsoft Edge +AddEdge.Button=Add Edge... +Add.Edge.Browser.Button=Add Edge browser... +Add.Edge.Web.Button=Add Edge WebView... +Tools.Label=&Tools +ImageConversion.Label=Image conversion +Wimesd.Label=WIM <-> ESD +MergeSwmfiles.Button=Merge SWM files... +Remount.Image.Write.Label=Remount image with write permissions +CommandConsole.Label=Command Console +Unattended.AnswerFile.Label=Unattended answer file manager +Unattended.Creator.Label=Unattended answer file creator +Manage.Image.Registry.Button=Manage image registry hives... +Manage.System.Button=Manage system services... +Manage.System.Env.Button=Manage system environment variables... +WebResources.Label=Web Resources +Download.Languages.Button=Download Languages and Optional Features ISOs... +Download.FOD.Button=Download Languages and FOD discs for Windows 10... +StartPXE.Button=Start PXE Helper Server for... +Windows.Label=Windows Deployment Services +FOG.Label=FOG +Show.Instructions.Label=Show instructions for FOG Helper Server on UNIX systems +Copy.My.Windows.Button=Copy my Windows image to a WDS server... +Evaluate.Windows.Label=Evaluate Windows UEFI CA 2023 readiness on this system +ReportManager.Label=Report manager +Mounted.Image.Manager.Label=Mounted image manager +Create.Disc.Image.Button=Create disc image... +Create.Testing.Button=Create testing environment... +Config.List.Editor.Label=Configuration list editor +Create.StarterScript.Label=Create a starter script +DesignTheme.Label=Design a theme +Options.Label=Options +Help.Label=&Help +HelpTopics.Label=Help Topics +DISM.Tools.Tour.Label=DISMTools Tour +DISM.Tools.Label=About DISMTools +Join.Discord.Opens.Label=Join the discord (opens in web browser) +Report.Feedback.Opens.Label=Report feedback (opens in web browser) +Open.Diagnostic.Logs.Label=Open diagnostic logs in log viewer +Contribute.Help.System.Label=Contribute to the help system +Branch.Label=Branch +Preview.Label=PREVIEW +Beta.Release.Tooltip=This is a beta release. In it, you will encounter lots of bugs and incomplete features. +Full.Screen.Shortcut.Label=(F11) +Settings.Detected.Label=Invalid settings have been detected +MoreInfo.Label=More information +WhatsThis.Label=What's this? +DISM.Tools.Actions.Label=DISMTools Tour Actions +Tour.Server.Active.Label=Tour Server is active on port 2022 +RestartTour.Label=Restart Tour +Stop.Tour.Server.Label=Stop Tour Server +Video.Content.Loaded.Label=Video content could not be loaded. +LearnMore.Link=Learn more +Retry.Button=Retry +Name.Column=Name +FactDay.Label=Fact of the day +Learn.Watching.Videos.Label=Learn by watching videos +Managing.External.Link=Managing external Windows installations +Managing.Install.Link=Managing your current installation +Get.Started.DISM.Link=Get started with DISMTools and image servicing +Learn.Snew.Link=Learn what's new in this release +Explore.Get.Started.Label=Explore and get started +News.Feed.Loaded.Label=The news feed could not be loaded. +Stay.Up.Date.Label=Stay up-to-date +News.Last.Updated.Label=News last updated: +NewsFeed.Item.Label=Item Feed Text +Item.Feed.Date.Label=Item Feed Date +OS.Label=OS +IP.Address.Config.Label=IP Address Configuration: +Processor.Label=Processor +DomainMembership.Label=Domain Membership: +Memory.Label=Memory +Storage.Label=Storage +DomainStatus.Label=Domain Status +WorkgroupDomain.Label=Workgroup/Domain: +ComputerModel.Label=Computer Model +ComputerName.Label=Computer Name +Rename.Link=Rename +PathName.Column=Path/Name +NewVersion.Available.Link=A new version is available for download and installation. Click here to learn more +RemoveEntry.Link=Remove entry +Manage.Offline.Button.Button=Manage offline installation... +Manage.Online.Install.Link=Manage online installation +Open.Existing.Project.Link=Open existing project... +NewProject.Link=New project... +Begin.Label=Begin +ImageOperations.Group=Image operations +CaptureImage.Button=Capture image... +ApplyImage.Button=Apply image... +Save.Complete.Image.Button=Save complete image information... +Remove.VolumeImages.Button=Remove volume images... +Reload.Servicing.Button=Reload servicing session +Unmount.Image.Button=Unmount image discarding changes +CommitImage.Button=Commit and unmount image +Commit.Changes.Button=Commit current changes +Package.Operations.Group=Package operations +Save.Installed.Button=Save installed package information... +Component.Store.Maint.Button=Perform component store maintenance and cleanup... +Get.Package.Button=Get package information... +Feature.Operations.Group=Feature operations +Save.Feature.Button=Save feature information... +Get.Feature.Button=Get feature information... +AppX.Package.Operations=AppX package operations +Save.Installed.AppX.Button=Save installed AppX package information... +Add.AppX.Package.Button=Add AppX package... +Get.App.Button=Get app information... +Remove.AppX.Package.Button=Remove AppX package... +Capability.Operations.Group=Capability operations +Save.Capability.Button=Save capability information... +Get.Capability.Button=Get capability information... +DriverOperations.Group=Driver operations +Save.Installed.Driver.Button=Save installed driver information... +AddDriverPackage.Button=Add driver package... +Get.Driver.Button=Get driver information... +Windows.Group=Windows PE operations +SaveConfig.Button=Save configuration... +GetConfig.Button=Get configuration... +LearnMore.Button=Learn more... +One.Bg.Procs.Message=One or more background processes did not finish successfully. Some functionality may not be available. +ProjectTasks.Label=Project Tasks +UnloadProject.Link=Unload project +Open.File.Explorer.Link=Open in File Explorer +View.Project.Props.Link=View project properties +UnloadProject.ActionButton=Unload project +View.File.Explorer.Button=View in File Explorer +View.Project.Props.Button=View project properties +Mount.Image.Link=Click here to mount an image +ImgStatus.Label=imgStatus +Location.Label=Location: +ProjPath.Label=projPath +ImagesMounted.Label=Images mounted? +Name.Label=Name: +ProjectName.DynamicLabel= +ImageMounted.Label=No image has been mounted +Mount.Image.Order.Label=You need to mount an image in order to view its information. +Choices.Label=Choices +Pick.Mounted.Image.Link=Pick a mounted image... +MountImage.Link=Mount an image... +ImageTasks.Label=Image Tasks +UnmountImage.Link=Unmount image +View.Image.Props.Link=View image properties +ImageIndex.Label=Image index: +Description.Label=Description: +ImgIndex.Label=imgIndex +MountPoint.Label=Mount point: +MountPoint.Value=mountPoint +Version.Label=Version: +ImgName.Label=imgName +ImgDesc.Label=imgDesc +ImgVersion.Label=imgVersion +Project.Link=PROJECT +Image.Link=IMAGE +Clock.DynamicLabel= +Welcome.Servicing.Label=Welcome to this servicing session +CloseTab.Label=Close tab +SaveProject.Label=Save project +UnloadProject.Label=Unload project +Unload.Project.Tooltip=Unload project from this program +Show.Progress.Window.Label=Show progress window +RefreshView.Label=Refresh view +Expand.Label=Expand +Preparing.Project.Button=Preparing project tree... +Status.Label=Status +View.BgProcesses.Tooltip=View background processes +Ready.Label=Ready +DISM.Tools.Project.Filter=DISMTools project files|*.dtproj +Project.File.Load.Title=Specify the project file to load +Get.Basic.Label=Get basic information (all packages) +Get.Detailed.Specific.Label=Get detailed information (specific package) +MountDir.Description=Please specify the mount directory you want to load into this project: +CommitImage.Label=Commit changes and unmount image +Discard.Changes.Label=Discard changes and unmount image +UnmountSettings.Button=Unmount settings... +View.Package.Dir.Label=View package directory +ViewResources.Label=View resources for +ExpandItem.Label=Expand item +AccessDirectory.Label=Access directory +Copy.Deployment.Tools.Label=Copy deployment tools +AllArchitectures.Label=Of all architectures +Selected.Architecture.Label=Of selected architecture +Xarchitecture.Label=For x86 architecture +Amarkdown.Architecture.Label=For AMD64 architecture +ARM.Label=For ARM architecture +ARM64.Label=For ARM64 architecture +ImageOperations.Label=Image operations +Manage.Label=Manage +Create.Label=Create +Configure.Scratch.Dir.Label=Configure scratch directory +ManageReports.Label=Manage reports +Add.Button=Add +NewFile.Button=New file... +ExistingFile.Button=Existing file... +SaveResource.Button=Save resource... +CopyResource.Label=Copy resource +PngFiles.Filter=PNG files|*.png +Visit.Microsoft.Apps.Label=Visit the Microsoft Apps website +Visit.Microsoft.Label=Visit the Microsoft Store Generation Project website +Iget.Apps.Label=How do I get applications? +MarkdownFiles.Filter=Markdown files|*.md +Get.ImageFile.Button=Get image file information... +Create.Disc.ImageFile.Button=Create disc image with this file... +Upload.Image.My.Button=Upload this image to my WDS server... +ApplyWimswmesd.Button=Apply WIM/SWM/ESD file... +Apply.FFU.File.Button=Apply FFU file... +Capture.Install.Dir.Button=Capture installation directory to WIM file... +Capture.Install.Drive.Button=Capture installation drive to FFU file... +DISMTools.Label=DISMTools + +[Designer.MigrationForm] +Wait.Message=Please wait while DISMTools migrates your old settings file to work on this version. This may take some time. +Wait.Label=Please wait... +DISMTools.Label=DISMTools + +[Designer.MountDirCreation] +Create.Label=Do you want to create the mount directory? +Yes.Button=Yes +No.Button=No +MountImage.Label=Mount an image + +[Designer.MountedImgMgr] +Overview.Images.Message=Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project: +ImageFile.Column=Image file +Index.Column=Index +MountDirectory.Column=Mount directory +Status.Column=Status +Read.Write.Column=Read/write permissions? +LoadProject.Button=Load into project +Value.Button=... +Open.Mount.Dir.Button=Open mount directory +Enable.Write.Button=Enable write permissions +ReloadServicing.Button=Reload servicing +Remove.VolumeImages.Button=Remove volume images... +UnmountImage.Button=Unmount image +Image.Manager.Label=Mounted image manager + +[Designer.MUMAdd] +Ok.Button=OK +Cancel.Button=Cancel +DialogHelp.Message=This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time.{crlf;}{crlf;}Do note that this is for advanced use only and may compromise the target Windows image. +Path.Manifest.File.Label=Path of the manifest file to add: +Browse.Button=Browse... +MUMFiles.Filter=Microsoft Update Manifest (MUM) files|update.mum +Update.Manifest.Label=Add update manifest + +[Designer.NewProj] +Ok.Button=OK +Cancel.Button=Cancel +Options.Required.Label=Please specify the options to create a new project: +Project.Group=Project +Browse.Button=Browse... +Location.Label=Location*: +Name.Label=Name*: +Folder.Store.Description=Please select a folder to store this project: +Fields.End.Required.Label=The fields that end in * are required +Create.Project.Label=Create a new project + +[Designer.NewTestingEnv] +Download.Windows.ADK.Link=Download the Windows ADK +Create.Button=Create +Cancel.Button=Cancel +WizardHelp.Message=This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments.{crlf;}{crlf;}The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file. +Architecture.Label=Architecture: +Env.Architecture.Label=Environment architecture: +Browse.Button=Browse... +Target.Project.Label=Target project location: +Progress.Group=Progress +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=Status +Create.Environment.Label=Create a testing environment + +[Designer.Unattend] +Welcome.Label=Welcome +RegionalConfig.Label=Regional Configuration +Basic.System.Config.Label=Basic System Configuration +TreeNode.Label=Time Zone +DiskConfig.Label=Disk Configuration +ProductKey.Label=Product Key +UserAccounts.Label=User Accounts +VirtualMachine.Support.Label=Virtual Machine Support +Wireless.Networking.Label=Wireless Networking +SystemTelemetry.Label=System Telemetry +PostInstall.Scripts.Label=Post-Installation Scripts +Component.Settings.Label=Component Settings +Finish.Label=Finish +EditorMode.Label=Editor mode +ExpressMode.Label=Express mode +Notereturn.Applying.Label=NOTE: you will return to this wizard after applying the answer file +EditAnswerFile.Link=Edit answer file +Open.Windows.System.Link=Open with Windows System Image Manager +Apply.Unattended.Link=Apply unattended answer file... +Open.Location.File.Link=Open the location of the file +Create.Another.Link=Create another answer file +FileCreated.Message=The unattended answer file has been created at the location you specified. What do you want to do now? +Congratulations.Done.Label=Congratulations! You have finished +Wait.Take.Label=Please wait - this can take some time +Progress.Label=Progress: +Wait.UnattendAnswer.Button=Please wait while your unattended answer file is being created... +Something.Right.Go.Message=If something is not right, you will need to go back to that page in order to change the setting. Do not worry: other settings will be kept intact +WordWrap.CheckBox=Word wrap +ReviewSettings.Label=Review your settings for the unattended answer file +Don.Twant.Add.Label=Don't want to add custom components? Click Next to skip this step. +No.Custom.None.Message=No custom components have been added yet. Click the plus symbol on the top of this section to add a new component. +Learn.Custom.Link=Learn more about custom components in Windows +Pass.Label=Pass: +Component.Label=Component: +Component.Count.Label=Component {{current}} of {{count}} +Learn.Component.Link=Learn more about this component +Screen.Add.Message=In this screen you can add additional components that you want to configure in your unattended answer file. Add new components, specify their passes and their data, and click Next. +Components.Label=Configure additional components +Hide.Script.Windows.CheckBox=Hide script windows +RestartExplorer.CheckBox=Restart Windows Explorer after running the scripts +Import.StarterScript.Button=Import a predefined Starter Script... +ImportScript.Button=Import a Starter Script in file system... +Language.Label=Language: +OpenScript.Button=Open script... +Scripts.Have.None.Message=No scripts have been added to this stage yet. Click the plus symbol on the top of this section to add a new script. +Script.Count.Label=Script {{current}} of {{count}} +System.Config.Link=During system configuration +First.User.Logs.Link=When the first user logs on +Whenever.User.Logs.Link=Whenever a user logs on for the first time +ScriptScreenHelp.Message=In this screen you can configure scripts that will be run during a specific stage of Windows installation. Use the sections below to specify the code for the scripts.{crlf;}{crlf;}If you don't want to configure scripts, click Next. +Run.Install.Label=What will be run after installation? +EnableTelemetry.RadioButton=Enable telemetry +DisableTelemetry.RadioButton=Disable telemetry +ConfigureSettings.CheckBox=I want to configure these settings during installation +Control.Limit.Much.Message=Control and limit how much information is sent to Microsoft and third-parties +WirelessSettings.RadioButton=Configure settings for the wireless network now: +Access.Router.Config.Link=Access router configuration to learn more +Open.Least.Secure.Item=Open (least secure) +Wpapsk.Item=WPA2-PSK +Wpasae.Item=WPA3-SAE +ConnectHidden.CheckBox=Connect even if not broadcasting +Password.Label=Password: +AuthTechnology.Label=Authentication technology: +Technology.Both.Choose.Label=Please choose the technology that both the wireless router and your network adapter support. +SsidnetworkName.Label=SSID (Network Name): +SkipConfig.RadioButton=Skip configuration +Option.Either.Choose.Label=Choose this option if you either don't have a network adapter or plan to use Ethernet +WirelessSettings.Label=Configure wireless network settings and get connected online +Guest.Additions.Message=- Use Guest Additions with Oracle VM VirtualBox{crlf;}- Use VMware Tools with VMware hypervisors{crlf;}- Use VirtIO Guest Tools with QEMU-based hypervisors{crlf;}- Use Parallels Tools with Parallels hypervisors on Macintosh computers +Virtual.Box.Guest.Item=VirtualBox Guest Additions +VmwareTools.Item=VMware Tools +Virt.Ioguest.Tools.Item=VirtIO Guest Tools +ParallelsTools.Item=Parallels Tools +VirtualMachine.Label=Virtual Machine Support: +Iplan.Target.RadioButton=No, I plan on using the target installation on a real system +Iwant.Target.RadioButton=Yes, I want to use the target installation on a virtual machine +Add.Enhanced.Support.Message=Do you want to add enhanced support from your virtual machine solution? +Checking.Option.Target.Label=Checking this option will make the target installation more vulnerable to brute-force attacks +Amount.Failed.Attempts.Label=After the following amount of failed attempts: +UnlockMinutes.Label=After the following amount of minutes, unlock the account: +Lock.Out.Account.Label=Lock out an account... +TimeframeMinutes.Label=Within the following timeframe in minutes: +CustomLockout.RadioButton=Continue with custom Account Lockout policies +DefaultLockout.RadioButton=Continue with default Account Lockout policies +DisablePolicy.CheckBox=Disable policy +AccountLockout.Label=Configure Account Lockout policies for the target system +Days.Label=days +ExpirePassword.RadioButton=Passwords should expire after the following number of days: +Expire42Days.RadioButton=Passwords should expire after 42 days +PasswordsExpire.RadioButton=Passwords should expire after a certain amount of days (not recommended by NIST) +NeverExpire.RadioButton=Passwords should never expire +PasswordsExpire.Label=Should passwords expire? +AccountName.Label=Account name: +Account.Label=Account 1: +Account.Option2.CheckBox=Account 2: +Account.Option3.CheckBox=Account 3: +Account.Option4.CheckBox=Account 4: +Account.Option5.CheckBox=Account 5: +UserList.Label=User accounts: +AccountGroup.Label=Account group: +AccountPassword.Label=Account password: +Account.Display.Name.Label=Account display name: +FirstLog.Group=First log on +Log.Built.Admin.RadioButton=Log on to the built-in administrator account, with password: +Log.First.Admin.RadioButton=Log on to the first administrator account created +Auto.Login.Admin.CheckBox=Log on automatically to an Administrator account +ObscurePasswords.CheckBox=Obscure passwords with Base64 +Ask.Microsoft.CheckBox=Ask for a Microsoft account interactively +Target.Install.Label=Who will use the target installation? +FirmwareProductKey.CheckBox=Get product key from firmware (modern systems only) +Product.Label=Please make sure that the product key you enter is valid +DISM.Tools.Cannot.Label=DISMTools cannot verify whether product keys can be valid for activation +Type.Each.Character.Label=(Type each character of the product key, including the dashes) +ProductKey.Custom.Label=Product Key: +Detect.Image.Edition.Button=Detect from image edition +Copy.Button=Copy +Only.Generic.Key.Label=You should only use this generic key with the edition you want to deploy +ProductKey.Generic.Label=Product Key: +ProductKey.Edition.Label=Use the product key for this edition: +CustomProductKey.RadioButton=Use a custom product key +GenericKey.RadioButton=Use a generic product key (no activation capabilities) +ProductKey.Type.Label=Type your product key for operating system installation +RecoveryPartition.Label=Windows Recovery Environment partition size (in MB): +InstallRecoveryEnv.CheckBox=Install a Recovery Environment +EFI.System.Label=EFI System Partition (ESP) size (in MB): +MBR.RadioButton=MBR +GPT.RadioButton=GPT +PartitionTable.Label=Partition table: +Skip.Disk.Config.Label=Uncheck this only if you want to set up disk configuration now. +DiskLayout.Label=Configure the disk and partition layout of the target system +Time.Label=Time +CurrentTime.Label=Time +Time.Selected.Zone.Label=Current time (selected time zone): +Time.UTC.Label=Current time (UTC): +Set.Time.Zone.RadioButton=Set a time zone manually: +Windows.Decide.RadioButton=Let Windows decide my time zone based on the regional configurations I set earlier +Configure.Time.Zone.Label=Configure time zone settings +DesktopX86.Item=x86 (Desktop 32-Bit) +DesktopX64.Item=x64 (Desktop 64-Bit) +Armwindows.Item=ARM64 (Windows on ARM) +UseConfigSet.CheckBox=Use a configuration set or distribution share +Windows.Set.Random.CheckBox=Let Windows set a random computer name +Config.Set.Message=Make sure that the configuration set or distribution share has been created before copying the resulting unattended answer file to an ISO file and installing the operating system. You can create configuration sets or distribution shares with the Windows System Image Manager (SIM) +Script.Sets.Name.RadioButton=Have the following script configure the name (advanced): +Get.Computer.Name.Button=Get computer name +ComputerName.Label=Computer name: +Type.Computer.Name.Label=Please type a computer name +Check.Option.Only.Message=Check this option only if the target system does not have any network capabilities. You can configure local users in the User Accounts section +BypassNetwork.CheckBox=Bypass Mandatory Network Connection +BypassRequirements.CheckBox=Bypass System Requirements +Windows11.Label=Windows 11 settings: +System.Architec.Label=Please select the system architecture that is supported by the target Windows image to apply +Processor.Architecture.Label=Processor architecture: +BasicSettings.Label=Configure basic system settings +Configure.Settings.Label=You will need to configure these settings during the setup process +SystemLanguage.Label=System language: +SystemLocale.Label=System locale: +HomeLocation.Label=Home location: +Keyboard.Layout.IME.Label=Keyboard layout/IME: +Country.EEA.Choose.Button=Choose country from the EEA +Additional.Layouts.Button=Additional layouts +ConfigureLater.RadioButton=Configure these settings later +SettingsNow.RadioButton=Configure these settings now: +LanguageKeyboard.Label=Configure your language, keyboard layout, and other regional settings +Copy.Linux.Mac.Link=Copy Linux and macOS versions of the unattended answer file generator program... +OnlineGenerator.Link=Answer file generator (online version) +Welcome.Unattended.Label=Welcome to the unattended answer file creation wizard +CreationHelp.Message=The unattended answer file creation wizard lets you create unattended answer files using intuitive interfaces. This wizard is suitable for those people who have never created unattended answer files before or do not want to use a text editor.{crlf;}{crlf;}In this wizard, you will be able to configure regional settings, user accounts, wireless settings, virtual machine support, and more. If you need to add more functionality to your file after creating it, you can use the Editor mode, which you can access by clicking the button on the bottom left.{crlf;}{crlf;}Special thanks to Christoph Schneegans for making the library that makes this wizard possible. You can also use his generator website to configure more settings, like tweaks or Windows Defender Application Control rules.{crlf;}{crlf;}{crlf;}To begin creating your answer file, click Next. +AvailableNow.Label=Not available for now! +NewOverwrite.Label=New (overwrites existing content) +Open.Button=Open... +Save.Button=Save as... +WordWrap.Label=Word wrap +Help.Label=Help +NormalizeSpacing.Label=Normalize spacing +NormalizeSpacing.Tooltip=Makes the spacing consistent by replacing tabs with spaces +WizardHelp.Label=If you haven't created unattended answer files before, use this wizard to create one. +Join.Target.Device.Button=Join target device to domain... +BackButton.Button=Back +NextButton.Button=Next +Cancel.Button=Cancel +Help.Button=Help +Answer.Files.XML.Filter=Answer files|*.xml +Gen.Download.Complete.Title=UnattendGen download complete +EditorMode.Filter=Answer files|*.xml +Power.Shell.Scripts.Filter=PowerShell scripts|*.ps1;*.psm1|Batch scripts|*.bat;*.cmd|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript files|*.js;*.jse +OpenScript.Title=Open script +Path.Description=Specify the path on which you want to store Linux and macOS versions of UnattendGen: +DISM.Tools.Starter.Filter=DISMTools Starter Scripts|*.dtss +Pick.StarterScript.Title=Pick a Starter Script +CreationHelp.Label=Unattended answer file creation wizard +TimeZone.Label=Time zone: +ScriptRun.Description=To configure a script to run at a specific stage, click the stage: +ComputerName.RadioButton=Choose a computer name yourself (recommended) +SelfContained.Message=The self-contained version of UnattendGen has been successfully downloaded. DISMTools will use this version from now on + +[Designer.NewUnattend.LocalAccounts] +OnlyNow.Label=Uncheck this only if you want to set up local accounts now + +[Designer.NewsFeedCard] +Item.Title=Feed Item Title +ItemDate.Label=Item Date + +[Designer.OfflineDriveList] +Ok.Button=OK +Cancel.Button=Cancel +Refresh.Button=Refresh +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Disk.Choose.Label=Choose a disk +Begin.Install.Message=To begin performing offline installation management, please choose a disk shown in the list below. If additional disks that contain Windows installations have been added or removed, simply click the Refresh button. + +[Designer.OneDriveExclusion] +Exclude.Button=Exclude +CancelButton.Button=Cancel +Tool.Help.Exclude.Message=This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude.{crlf;}{crlf;}NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool. +Re.Ready.Label=When you're ready, click Exclude. +Path.Exclude.Label=Path to exclude OneDrive folders from: +Browse.Button=Browse... +UserFolderPath.Description=Choose a path that contains user folders: +Exclude.User.Label=Exclude user OneDrive folders + +[Designer.Options] +Ok.Button=OK +Cancel.Button=Cancel +DISM.Executable.Filter=DISM executable|dism.exe +Dismexecutable.Title=Specify the DISM executable to use +CheckUpdates.CheckBox=Check for updates +Remount.Mounted.CheckBox=Remount mounted images in need of a servicing session reload +Behavior.OnStartup.Label=Set options you would like to perform when the program starts up: +Settings.Aren.Label=These settings aren't applicable to non-portable installations +FileIcons.Projects.CheckBox=Set custom file icons for DISMTools projects +Open.Starter.Scripts.Label=Open starter scripts with the Starter Script Editor +Set.File.Assoc.Button=Set file associations +Open.My.Projects.Label=Open my projects with this copy of DISMTools +Manage.File.Assoc.Label=Manage file associations for DISMTools components: +AdvancedSettings.Button=Advanced settings +Learn.Background.Link=Learn more about background processes +Uses.Bg.Procs.Message=The program uses background processes to gather complete image information, like modification dates, installed packages, features present; and more +Every.Time.Project.Item=Every time a project has been loaded successfully +Once.Item=Once +Notify.Label=When should the program notify you about background processes being started? +Notify.Me.CheckBox=Notify me when background processes have started +Reports.Allow.Shown.Label=Some reports do not allow being shown as a table. +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +List.Item=list +Table.Item=table +ExampleReport.Label=Example report: +LogView.Label=Log view: +Show.Command.Output.CheckBox=Show command output in English +Enough.Space.Selected.Label=You may not have enough space on the selected scratch directory for some operations. +ScdirSpace.Label= +Space.Left.Selected.Label=Space left on selected scratch directory: +Browse.Button=Browse... +ScratchDirectory.Label=Scratch directory: +Scratch.Dir.Message=The program will use the scratch directory provided by the project if one is loaded. If you are in the online or offline installation management modes, the program will use its scratch directory +Scratch.Dir.Required.Label=Please specify the scratch directory to be used for DISM operations: +Scratch.Dir.CheckBox=Use a scratch directory +Always.Save.CheckBox=Always save complete information for the following elements: +SettingsConsider.Label=Choose the settings the program should consider when saving image information: +Installed.Packages.CheckBox=Installed packages +InstalledDrivers.CheckBox=Installed drivers +Capabilities.CheckBox=Capabilities +Features.CheckBox=Features +Installed.AppX.CheckBox=Installed AppX packages +Checked.Computer.Message=When this option is checked, your computer will not restart automatically; even when quietly performing operations. +QuietOperations.Message=When quietly performing operations, the program will hide information and progress output. Error messages will still be shown.{crlf;}This option will not be used when getting information of, for example, packages or features.{crlf;}Also, when performing image servicing, your computer may restart automatically. +Skip.System.Restart.CheckBox=Skip system restart +Quietly.Image.Ops.CheckBox=Quietly perform image operations +Log.File.Display.Message=The log file should display errors, warnings and information messages after performing an image operation. +Errors.Warnings.Label=Errors, warnings and information messages (Log level 3) +Image.Ops.Message=When performing image operations in the command line, specify the {quot;}/LogPath{quot;} argument to save the image operation log to the target log file. +Log.File.Level.Label=Log file level: +Operation.Log.File.Label=Operation log file: +Classic.RadioButton=Classic +Modern.RadioButton=Modern +Secondary.Progress.Label=Secondary progress panel style: +Font.Readable.Log.Message=This font may not be readable on log windows. While you can still use it, we recommend monospaced fonts for increased readability. +Preview.Label=Preview: +Log.Window.Font.Label=Log window font: +Uppercase.Menus.CheckBox=Use uppercase menus +System.Setting.Item=Use system setting +LightMode.Item=Light mode +DarkMode.Item=Dark mode +Language.Label=Language: +ColorMode.Label=Color mode: +SettingsFile.Item=Settings file +Registry.Item=Registry +Enable.Disable.Message=The program will enable or disable certain features according to what the DISM version supports. How is it going to affect my usage of this program, and which features will be disabled accordingly? +View.DISM.Button=View DISM component versions +Dismver.Label= +SaveSettings.Label=Save settings on: +Version.Label=Version: +Dismexecutable.Path.Label=DISM executable path: +ResetPreferences.Label=Reset preferences +LogSFD.Filter=All files|*.* +Location.Log.File.Title=Specify the location of the log file +Program.Label=Program +Personalization.Label=Personalization +Logs.Label=Logs +ImageOperations.Label=Image operations +Scratch.Dir.Label=Scratch directory +ProgramOutput.Label=Program output +BgProcesses.Label=Background processes +FileAssociations.Label=File associations +StartupOptions.Label=Startup options +ShutdownOptions.Label=Shutdown options +Difference.Between.Link=What is the difference between display names and friendly display names? +PackageName.Label=Package Name: +RaymanJungle.Label=UbisoftEntertainment.RaymanJungleRun_1.2.0.88_x86__dbgk1hhpxymar +DisplayName.Label=Display Name: +Display.Name.Only.Item=Display name only +Display.Name.Friendly.Item=Display name, then friendly display name +Friendly.Display.Name.Item=Friendly display name only +Example.Label=Example: +Remove.AppX.Label=When removing AppX packages, show display names using this format: +Only.Available.Message=This is only available when managing active installations.{crlf;}When getting information about AppX packages, DISMTools can map the IDs and names of the local accounts in this system to tell you which users an application is registered to more precisely. +Map.System.Accounts.CheckBox=Map system accounts to application registration information +Show.Dates.Human.CheckBox=Show dates in a human-readable format +PreventSleep.CheckBox=Prevent the machine from sleeping while performing image operations +Saving.Image.Label=Saving image information +Help.Me.Understand.Link=Help me understand AI feature tolerance levels +Turn.Off.Many.Item=Turn off as many AI features in search engines as possible. I can't stand these +Me.Control.AI.Item=Let me control the AI features in my search engine +Turn.Many.Aifeatures.Item=Turn on as many AI features in search engines as possible +AIFeature.Label=Artificial Intelligence (AI) feature tolerance: +Search.Engine.Web.Label=Search Engine to use for web searches: +Searching.Image.Online.Label=Searching image information online +Learn.Message=If you want to learn more about an item online, you can leverage Web search. Choose the settings the program should consider for web searches: +RunNow.Button=Run now +Behavior.OnClose.Label=Set options you would like to perform when the program closes: +Automatically.Clean.CheckBox=Automatically clean up mount points (launches a separate process) +InstallService.Button=Install Service +EnableService.Button=Enable Service +DisableService.Button=Disable Service +DeleteService.Button=Delete Service +ServiceStatus.Group=Service Status +Installed.Label=Installed? +InstallationPath.Label=Installation Path: +Automatic.Image.Reload.Label=Automatic Image Reload service +Still.See.Standard.Message=You may still see the standard servicing session reload procedures from DISMTools take place for images that the service could not reload the servicing sessions for. +Automatic.Image.Message=The Automatic Image Reload service can help you have your Windows images ready for servicing by reloading their servicing sessions on system startup. You can control the service here: +ColorThemes.Group=Color Themes +DesignThemes.Button=Design your themes +LightMode.Label=Light Mode: +Own.Themes.Label=You can also make your own themes. +Change.Color.Theme.Label=You can have the program change the color theme according to your preferred color mode. +DarkMode.Label=Dark Mode: +Show.Date.Time.CheckBox=Show date and time on the project view +LogCustomization.Label=Log customization +Show.Log.View.CheckBox=Show log view on the progress panel by default +Show.Me.Logs.Link=Show me where these logs are stored +Disable.Dyna.Log.CheckBox=Disable DynaLog logging +Dyna.Log.Logging.Label=DynaLog logging control +Dyna.Log.Logging.Message=DynaLog logging provides a method for saving diagnostic logs that can be used to help fix program issues, in case you encounter them. You can disable the logger using the toggle below, but it's not recommended.{crlf;}{crlf;}Disable logging only if it causes a performance overhead on your computer. Clicking the toggle will apply this setting automatically. +SystemEditor.Label=System Editor +Editor.Open.Log.Label=Editor to open log files with: +Default.Op.Logs.Message=By default, operation logs are opened with Notepad in the event of an operation error. However, if you want to open them with a different program, specify it below: +ProgramsEXE.Filter=Programs|*.exe +Editor.Title=Specify the editor to use +Options.Label=Options +Set.Custom.CheckBox=Set custom file icons for starter scripts +ScratchDir.Description=Specify the scratch directory the program should use: +Custom.Scratch.RadioButton=Use the specified scratch directory +Project.Scratch.RadioButton=Use the project or program scratch directory +Auto.Create.Logs.CheckBox=Automatically create logs for each operation performed + +[Designer.OrphanedMount] +Ok.Button=OK +Cancel.Button=Cancel +Project.Has.Orphans.Message=The project that has been loaded contains an orphaned image (an image which needs to be remounted){crlf;}The image will be remounted when you click {quot;}OK{quot;}. This should not affect your modifications to the image, and should also not take a long time.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +Servicing.Session.Label=This image needs a servicing session reload +DISMTools.Label=DISMTools + +[Designer.NoRollbackError] +Ok.Button=OK +Old.Versions.None.Message=No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything. +Troll.Back.Older.Label=You can't roll back to an older version +DISMTools.Label=DISMTools + +[Designer.PXEServerPort] +Ok.Button=OK +Cancel.Button=Cancel +Other.Message=Use this dialog to specify a different port for server components during this session if the default port is in use by a program or a service and the server components don't work correctly as a result.{crlf;}{crlf;}If you click Cancel, the selected server component will be launched using the default port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[Designer.PECustomizer] +Ok.Button=OK +Cancel.Button=Cancel +Customize.Session.Label=Customize the Preinstallation Environment for this session: +Wallpaper.Group=Wallpaper +Browse.Button=Browse... +My.Desktop.CheckBox=Use my current desktop background +Path.Custom.Wallpaper.Label=Path to custom wallpaper (JPG files only): +Show.Version.Top.CheckBox=Show version information on the top-left corner of the primary screen +Display.Images.CheckBox=Display images and groups in a WDS server in a graphical view +Show.Report.Hardware.Message=Show a report with hardware IDs of unknown devices when launching the Driver Installation Module +Default.Partitio.Table.Label=Default partition table override: +Partition.Table.Item=Do not use a partition table override +Default.Mbrpartition.Item=Default to using a MBR partition table regardless of the firmware type +Default.Gptpartition.Item=Default to using a GPT partition table regardless of the firmware type +Partition.Table.Message=Partition table overrides affect both disk configuration and boot file creation procedures taken. +SecureBoot.Label=On supported UEFI systems with Secure Boot and Windows UEFI CA 2023 certificates: +Ask.Me.Version.Item=Ask me which version of the boot binary to use +Connection.Attempts.Label=Amount of connection attempts that should be considered when connecting to a WDS server: +ConnectionAttempts.Label=connection attempt(s) +JpgfilesJpg.Filter=JPG files|*.jpg +CopyAnswerFiles.Message=Copy unattended answer files specified in the ISO creator to the Sysprep directory of the target system +Port.Used.PXE.Label=Port to be used by PXE Helper clients to send requests by default: +Pick.Default.Keyboard.Label=Pick the default keyboard layout to use in the Preinstallation Environment from the list below: +LayoutCode.Column=Layout Code +LayoutName.Column=Layout Name +Layout.Code.Selected.Label=Layout code of selected keyboard layout: +Save.Default.Policies.Label=Save to default policies +General.Tab=General +PXEs.Tab=PXE Helpers +KeyboardLayouts.Tab=Keyboard Layouts +Option.Only.Take.Label=This option will only take effect on images that don't have any answer files applied. +Unattended.Deployments.Tab=Unattended Deployments +Unattended.AnswerFile.Label=If an unattended answer file exists in both the ISO file and the Windows image file: +Ask.Me.Resolve.Item=Ask me how to resolve the conflict +Assuming.Each.Answer.Message=Assuming what each of the answer files will do is not a good idea because you don't expect what each file will have in different operating system deployment runs.{crlf;}{crlf;}Therefore, you should manually review each of the answer files when you encounter conflicts. Or, if your Windows image contains an answer file, don't include one with your ISO file, as the one from the Windows image will automatically be applied during setup.{crlf;}{crlf;}If you use bootable media creation solutions, such as Rufus, configure them so they don't override your answer file. +CustomizePE.Label=Customize Preinstallation Environment +KeyboardOverride.CheckBox=Override keyboard layouts used by target images with the one I select here + +[Designer.PECustomizer.Conflict] +ISO.Item=Handle the conflict by using the answer file of the ISO file +WindowsImage.Item=Handle the conflict by using the answer file of the Windows image file + +[Designer.PECustomizer.BootSign] +Windows.UEFI.CA.Item=Default to boot binaries signed with Windows UEFI CA 2023, if available on my target image +Windows.Production.PCA.Item=Default to boot binaries signed with Microsoft Windows Production PCA 2011 + +[Designer.PkgNameLookup] +Ok.Button=OK +Cancel.Button=Cancel +ParentPackage.Label=Name of parent package: +Get.Package.Names.Label=Getting package names. Please wait... +Installed.Package.Label=Installed package names + +[Designer.PkgParentLookup] +Names.Installed.Label=Names of installed packages in the mounted image: + +[Designer.Wait] +Wait.Label=Please wait... +Action.Label=Action + +[Designer.PrgAbout] +Ok.Button=OK +DISM.Tools.Version.Label=DISMTools - version {0} +DISM.Tools.Lets.Label=DISMTools lets you deploy, manage, and service Windows images with ease, thanks to a GUI. +Build.Date.Goes.Label=Build date goes here +ResourcesUsed.Label=These resources and components were used in the creation of this program: +Resources.Label=Resources +Fluency.Label=Fluency +Icons.Link=Icons8 +Sqlserver.Icon.Color.Label=SQL Server icon (Color) +Utilities.Label=Utilities +Zip.Label=7-Zip +VisitWebsite.Link=Visit website +Help.Documentation.Label=Help documentation +Scintila.Netnu.Get.Label=Scintila.NET (NuGet package) +Managed.Dismnu.Get.Label=ManagedDism (NuGet package) +Command.Help.Source.Label=Command Help source +Microsoft.Link=Microsoft +BrandingAssets.Label=Branding assets +DarkUI.Label=DarkUI +Windows.Label=Windows Home Server 2011 +Whatsnew.Link=WHAT'S NEW +Licenses.Link=LICENSES +Credits.Link=CREDITS +CheckUpdates.Label=Check for updates +AboutProgram.Label=About this program + +[Designer.PrgSetup] +Set.Up.DISM.Label=Set up DISMTools +Back.Button=Back +Next.Button=Next +Cancel.Button=Cancel +DISM.Tools.Free.Message=DISMTools is a free and open-source, project-driven GUI for DISM operations. To begin setting things up, click Next. +Welcome.DISM.Tools.Label=Welcome to DISMTools +Secondary.Progress.Label=Secondary progress panel style: +Log.Window.Font.Label=Log window font: +Language.Label=Language: +ColorMode.Label=Color mode: +System.Setting.ThemeItem=Use system setting +LightMode.Item=Light mode +DarkMode.Item=Dark mode +Font.Readable.Log.Message=This font may not be readable on log windows. While you can still use it, we recommend monospaced fonts for increased readability. +Classic.RadioButton=Classic +Modern.RadioButton=Modern +Yours.Customize.Message=Make it yours. Customize this program to your liking and click Next. These settings can be configured at any time in the {quot;}Personalization{quot;} section in the Options window +CustomizeProgram.Label=Customize this program +Default.Log.File.Button=Use default log file +Browse.Button=Browse... +LogFile.Label=Log file: +Log.File.Display.Message=The log file should display errors, warnings and information messages after performing an image operation. +Errors.Warnings.Label=Errors, warnings and information messages (Log level 3) +Auto.Create.Logs.CheckBox=Automatically create logs in the program's log directory +Log.Settings.Message=Specify the log settings and click Next. Depending on the content level you specify, we will log more or less information. This setting can be configured at any time in the {quot;}Logs{quot;} section in the Options window +Log.Label=What should we log when you perform an operation? +Windows.ADK.Module.Label=Module for Windows Assessment and Deployment Kit (ADK) compatibility +WimlibModule.Label=Module for wimlib-imagex compatibility +Install.Button=Install +Module.Install.Isn.Message=If a module you want to install isn't listed here, it may not be compatible with the version of this software, and updating might help.{crlf;}{crlf;}You can perform module management at any time in the {quot;}Modules{quot;} section in Tools > Options, and configure more of modules' settings. +DISM.Tools.Supports.Message=DISMTools supports modules, which extend this program and enhance its capabilities. The following modules are compatible with this version: +ExtendProgram.Label=Extend this program +Configure.Settings.Button=Configure more settings +Anything.Like.Label=Is there anything else you would like to configure? +Settings.Available.Message=The settings available to you are more than what you've just configured. If you wish to change more of these, click the button below. We'll also make those settings persistent. +Done.Setting.Up.Message=You have finished setting up the basics to use DISMTools the way you wanted. Click {quot;}Finish{quot;}, and we'll make your settings persistent. +SetupComplete.Label=Setup is complete +Stay.Up.Date.Label=Stay up to date to receive new features and an improved experience +Get.Started.DISM.Label=Get started with DISMTools and image servicing, so you can get around quicker +GetStarted.Button=Get started +CheckUpdates.Button=Check for updates +Ve.Set.Things.Label=Now that you've set things up, we recommend you do the following things: +Perform.Steps.Time.Label=You can perform these steps at any time. +SaveFile.Filter=All files|*.* +Log.File.Title=Specify the log file + +[Designer.Progress] +Image.Operations.Label=Image operations in progress... +Wait.Tasks.Label=Please wait while the following tasks are done. This may take some time. +Cancel.Button=Cancel +CurrentTask.Label=currentTask +AllTasks.Label=allTasks +Tasks.Tcont.Label=Tasks: {currentTCont} of {taskCount} +ShowLog.Label=Show log +Show.Dismlog.File.Link=Show DISM log file (advanced) +Progress.Label=Progress + +[Designer.ProjProps] +Ok.Button=OK +Cancel.Button=Cancel +ProjectGUID.Label=Project GUID: +CreationDate.Label=Creation date: +Location.Label=Location: +ProjGuid.Label=projGuid +ProjTzdata.Label=projTZData +ProjPath.Label=projPath +ProjName.Label=projName +Name.Label=Name: +RemountImg.Label=Reload +Recover.Label=Recover +MountDirectory.Label=Mount directory: +Installed.Languages.Label=Installed languages: +FileFormat.Label=File format: +ModificationDate.Label=Modification date: +FileCount.Label=File count: +DirectoryCount.Label=Directory count: +System.Root.Dir.Label=System root directory: +ProductSuite.Label=Product suite: +ProductType.Label=Product type: +Edition.Label=Edition: +ServicePackLevel.Label=Service Pack level: +ServicePackBuild.Label=Service Pack build: +HAL.Label=HAL: +Architecture.Label=Architecture: +Supports.WIM.Boot.Label=Supports WIMBoot? +ImageStatus.Label=Image status: +ImageIndex.Label=Image index: +Size.Label=Size: +Description.Label=Description: +Version.Label=Version: +ImageFile.Label=Image file: +ImgFormat.Label=imgFormat +ImgModification.Label=imgModification +ImgCreation.Label=imgCreation +ImgFiles.Label=imgFiles +ImgDirs.Label=imgDirs +Img.Sys.Root.Label=imgSysRoot +ImgPsuite.Label=imgPSuite +ImgPtype.Label=imgPType +ImgEdition.Label=imgEdition +ImgSplvl.Label=imgSPLvl +ImgSpbuild.Label=imgSPBuild +ImgHal.Label=imgHal +Img.Mount.Dir.Label=imgMountDir +ImgArch.Label=imgArch +Img.WIM.Boot.Label=imgWimBootStatus +Img.Mounted.Status.Label=imgMountedStatus +ImgSize.Label=imgSize +Img.Mounted.Desc.Label=imgMountedDesc +Img.Mounted.Name.Label=imgMountedName +ImgVersion.Label=imgVersion +ImgIndex.Label=imgIndex +ImgName.Label=imgName +Getting.Project.Image.Label=Getting project and image information. Please wait... +View.Ffuinformation.Label=View FFU information +Remount.Write.Label=Remount with write permissions +ImgRW.Label=imgRW +Image.Rwpermissions.Label=Image R/W permissions: +InstallationType.Label=Installation type: +Img.Inst.Type.Label=imgInstType +Image.Present.Project.Label=Image present on project? +ImgStatus.Label=imgStatus +Many.Cannot.Seen.Message=Many properties cannot be seen because an image has not yet been mounted. Once you mount it, detailed information will be shown here. Click here to mount an image +Props.Label=Properties + +[Designer.ProjectValues] +Old.File.Label=Old project file: +ExitButton.Button=Exit +Independent.Values.Group=Independent values +ImageLang.Label=ImageLang: +Image.Read.Write.Label=ImageReadWrite: +Image.Epoch.Modify.Label=ImageEpochModify: +Image.Epoch.Create.Label=ImageEpochCreate: +ImageFileCount.Value=ImageFileCount: +Image.Dir.Count.Label=ImageDirCount: +Image.Sys.Root.Label=ImageSysRoot: +ImagePsuite.Label=ImagePSuite: +ImagePtype.Label=ImagePType: +ImageEdition.Value=ImageEdition: +ImageSplevel.Label=ImageSPLevel: +ImageSpbuild.Label=ImageSPBuild: +ImageHal.Label=ImageHal: +ImageArch.Label=ImageArch: +Image.WIM.Boot.Label=ImageWIMBoot: +ImageDescription.Label=ImageDescription: +ImageName.Label=ImageName: +ImageVersion.Label=ImageVersion: +Image.Mount.Point.Label=ImageMountPoint: +ImageIndex.Label=ImageIndex: +ImageFile.Label=ImageFile: +Epoch.Creation.Time.Label=EpochCreationTime: +Location.Label=Location: +Name.Label=Name: +ImageFile.Languages.Label=Image file languages +ImageFileDates.Label=Image file creation and modification dates stored in Unix time (GMT+0) +Verify.Image.Read.Label=Verify if image has read-write permissions +ImageFileCount.Label=Image file count +Image.Dir.Label.Label=Image directory count +Image.System.Root.Label=Image system root directory (\WINDOWS) +Image.Product.Suite.Label=Image product suite +Image.Product.Type.Label=Image product type +ImageEdition.Label=Image edition +ServicePackLevel.Label=Image Service Pack level (SP1, SP2, SP3...) +ServicePackBuild.Label=Image Service Pack build +HAL.Label=Image HAL (Hardware Abstraction Layer, hal.dll) +Mounted.Image.Arch.Label=Mounted image architecture (x86, amd64...) +Verify.Image.Supports.Label=Verify if image supports WIMBoot (Win8.1 only) +MountedDescription.Label=Mounted image friendly description +Mounted.Image.Friendly.Label=Mounted image friendly name +Image.Version.Grab.Label=Image version (grab version from ntoskrnl.exe) +ImageFile.Mount.Point.Label=Image file mount point +ImageFileIndex.Label=Mounted image file index +Mounted.ImageFile.Name.Label=Mounted image file name +Creation.Time.Unix.Label=Project creation time in Unix time (GMT+0) +ProjectLocation.Label=Project location +ProjectName.Label=Project name +Independent.Values.Message=Get independent values by piping {quot;}findstr{quot;} to the {quot;}type{quot;} command. Also pass the {quot;}/b{quot;} switch only to show matches on the beginning. +New.File.Label=New project file: +ContinueButton.Button=Continue +ProjectValues.Label=Project values + +[Designer.ServiceGroups] +Ok.Button=OK +Windows.Message=This Windows image contains the following registered groups for the system's service host. Note that the groups displayed here may not be the same as the groups defined by the services in the Service Control Manager (SCM). +GroupName.Column=Group Name +ServicesGroup.Column=Services in group +ServiceName.Column=Service Name +DisplayName.Column=Display Name +Type.Column=Type +Total.Label=Total +Registered.Svc.Host.Label=Registered Service Host groups in image + +[Designer.RegistryPanel] +Tool.Lets.Load.Message=This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here: +Load.Button=Load +Ntuserdatdefault.User.Label=NTUSER.DAT (Default User) +Open.Button=Open +Default.Label=DEFAULT +System.Label=SYSTEM +Software.Label=SOFTWARE +Load.Custom.Hive=Load Custom Hive +Unload.Button=Unload +Browse.Button=Browse... +PathRegistry.Label=Path in the registry: +HiveLocation.Label=Hive location: +Load.Different.Label=If you want to load a different registry hive, specify its path and click Load: +Image.Hives.Label=Image registry hives + +[Designer.ReloadProject] +Ok.Button=OK +Cancel.Button=Cancel +ImageUnavailable.Message=The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click {quot;}OK{quot;} to reload this project.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +ImageMissing.Label=This image is no longer available +DISMTools.Label=DISMTools + +[Designer.RemCapabilities] +Ok.Button=OK +Cancel.Button=Cancel +Capability.Column=Capability +State.Column=State +Remove.Label=Remove capabilities + +[Designer.RemDrivers] +Ok.Button=OK +Cancel.Button=Cancel +PublishedName.Column=Published name +Original.File.Name.Column=Original file name +ProviderName.Column=Provider name +ClassName.Column=Class name +Part.Windows.Column=Part of the Windows distribution? +BootCritical.Column=Is boot-critical? +Version.Column=Version +Date.Column=Date +DriverPackages.Wish.Label=Specify the driver packages you wish to remove and click OK: +Hide.Boot.Critical.CheckBox=Hide boot-critical drivers +Hide.Drivers.Part.CheckBox=Hide drivers part of the Windows distribution +RemoveDrivers.Label=Remove drivers + +[Designer.RemPackage] +Ok.Button=OK +Cancel.Button=Cancel +PackageRemoval.Group=Package removal +Browse.Button=Browse... +Note.May.Message=NOTE: the program may show packages that weren't added in the first place. However, if a package is not added, the program will skip it. +PackageSource.Label=Package source: +Package.Files.RadioButton=Specify package files: +Package.Names.RadioButton=Specify package names: +PackageSource.Description=Please specify a package source: +RemovePackages.Label=Remove packages + +[Designer.RemoveAppx] +Ok.Button=OK +Cancel.Button=Cancel +PackageName.Column=Package name +App.Display.Name.Column=Application display name +Architecture.Column=Architecture +ResourceID.Column=Resource ID +Version.Column=Version +Registered.User.Column=Registered to any user? +Prov.Label=Remove provisioned AppX packages + +[Designer.ScriptBrowser] +Ok.Button=OK +Cancel.Button=Cancel +Create.Starter.Button=Create your own starter scripts... +Name.Column=Name +System.Config.Item=During System Configuration +First.User.Logs.Item=When the first user logs on +Whenever.User.Logs.Item=Whenever a user logs on for the first time +Scripts.Defined.User.Item=Scripts defined by the user +Stage.Type.Choose.Label=Choose a stage or script type: +EnlargePreview.Label=Enlarge preview +Export.Code.File.Button=Export script code to a file... +Okinsert.Label=Click OK to insert this script. Existing script contents will be replaced by this script. +ScriptCode.Label=Script Code: +Language.Label=Language: +Language.Value.Label=Language: {0} +Description.Label=Script Description +ScriptName.Label=Script Name +View.Label=Select a script to view its information. +StarterScripts.Help.Message=These predefined starter scripts can help you get the most out of your Windows image when using this unattended answer file. These scripts have been curated and tested by the developers.{crlf;}{crlf;}To get started, select a starter script from the list on the left.{crlf;}{crlf;}If you have a starter script that isn't included in this set of scripts, you can load it from the file system instead. +Export.Code.Title=Export Script Code +Leave.Full.Screen.Label=To leave full screen mode, click the button on the right or press ESC. +GoBack.Label=Go back +LoadStarterScript.Label=Load a predefined Starter Script + +[Designer.SaveProject] +Yes.Button=Yes +No.Button=No +Cancel.Button=Cancel +SaveChanges.Label=Do you want to save the changes of this project? +Shutdown.Message=If you shut down or restart your system without unmounting the images, you will need to reload the servicing session. +AppName.Label=DISMTools + +[Designer.ScriptReorder] +Ok.Button=OK +Cancel.Button=Cancel +Dialog.Alter.Order.Message=Use this dialog to alter the order with which the scripts will be run. Click OK to save the changes. Items at the top of the list are the first scripts that will run, whilst those at the bottom of the list are the last that will run. +ScriptCode.Label=Script Code: +Script.Column=Script # +ScriptOrder.Label=Script Order: +WordWrap.CheckBox=Word Wrap +Scripts.Stage.Label=Reorder scripts for this stage + +[Designer.Services] +Intro.Message=This tool lets you view and manage the services of this target image. Click Save service changes to save any changes made to the Windows services. +ServiceName.Column=Service Name +DisplayName.Column=Display Name +Description.Column=Description +StartType.Column=Start Type +Type.Column=Type +ServiceInfo.Tab=Service Information +DelayedStart.CheckBox=Delayed Start +Description.Label=Service Description: +User.Flags.Label=User Service Flags: +ServiceType.Label=Service Type: +Start.Type.Label=Service Start Type: +Object.Name.Label=Service Object Name: +Image.Path.Label=Service Image Path: +Display.Name.Label=Service Display Name: +ServiceName.Label=Service Name: +Required.Privileges.Tab=Required Privileges +PrivilegeName.Column=Privilege Name +PrivilegeName.Display.Column=Privilege Display Name +Privilege.Description.Column=Privilege Description +ErrorControl.Tab=Error Control +FailureActions.Group=Failure Actions +FutureErrors.Label=On Future Errors: +NdError.Label=On 2nd Error: +ResetErrorCount.Label=Reset Error Count after the following minutes: +StError.Label=On 1st Error: +Error.Windows.Label=On service error, what should Windows do? +Dependencies.Tab=Service Dependencies +ServiceGroups.Tab=Service Groups +RegisteredHosts.Label=Get registered service host groups +Services.Belong.Group=Services that belong to this group +Part.Group.Label=This service is part of group: +Save.Changes.Label=Save service changes +ProgressLabel.Label=Please wait... +Reload.Label=Reload +SelectService.Label=No service has been selected. Select a service above to view details. +Save.Button=Save service information... +MarkdownFiles.Filter=Markdown files|*.md +RestoreService.Label=Restore service +DeleteService.Label=Delete service +System.Label=System Service Management + +[Designer.ServiceMgmt] +Restart.Minutes.Label=Restart Service after the following minutes: +Dependent.Services.Label=The following services depend on this service: +Dependencies.Label=This service depends on the following services: + +[Designer.ImageEdition] +Ok.Button=OK +Cancel.Button=Cancel +Target.Upgrade.Label=Target edition to upgrade to: +ServerOptions.Group=Active server installation options +Browse.Button=Browse... +AcceptEULA.RadioButton=Accept the End-User License Agreement (EULA) and use the following product key: +Copy.EndUser.RadioButton=Copy the End-User License Agreement (EULA) to the following location: +Set.Image.Label=Set image edition + +[Designer.SetLayeredDriver] +Ok.Button=OK +Cancel.Button=Cancel +Intro.Message=This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK +CurrentDriver.Label=Current keyboard layered driver: +NewDriver.Label=New keyboard layered driver: +Driver.Already.Label=This driver has already been set +Title=Set keyboard layered driver + +[Designer.OSRollback] +Ok.Button=OK +Cancel.Button=Cancel +Default.OS.Message=By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date.{crlf;}{crlf;}Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60. +Amount.Days.Revert.Label=Amount of days you have to revert to the old Windows version: +OSUninstall.Label=Set operating system uninstall window + +[Designer.SetProductKey] +Ok.Button=OK +Cancel.Button=Cancel +Type.ProductKey.Label=Type the product key that you want to set to your Windows image, including the dashes: +ValidateKey.Button=Validate key +Check.ProductKey.Message=If you want to check if your product key is valid for the Windows image, click Validate key. This will also check the syntax of your key. +SetProductKey.Label=Set product key + +[Designer.Scratch] +Ok.Button=OK +Cancel.Button=Cancel +ScratchSpace.Label=Scratch space: +AmountWritable.Message=The scratch space is the amount of writable space available on the Windows PE system volume when its contents are copied to memory. Please specify a scratch space amount and click OK. +MB.Label=MB +ScratchSpace.Amount.Label=An invalid scratch space amount has been detected +Set.Windows.Pescratch.Label=Set Windows PE scratch space + +[Designer.SetTargetPath] +Ok.Button=OK +Cancel.Button=Cancel +Target.Dir.Message=The target path is a directory where the Windows PE files will be copied to in order to boot to the environment. Please specify a target path and click OK. +TargetPath.Label=Target path: +Windows.Petarget.Label=Set Windows PE target path + +[Designer.SettingsResetDlg] +Yes.Button=Yes +No.Button=No +ProceedReset.Message=If you proceed, the settings will be reset to their default values. Once this process is complete, you'll return to the main program window.Do you want to proceed? +Form.Label=Reset preferences + +[Designer.SingleImageIndex] +Know.Indexes.Message=To know more about the indexes of an image, or some of its specific properties, go to {quot;}Commands > Image management > Get image information{quot;}, or click here +Ok.Button=OK +Cannot.Switch.Message=You cannot switch to other indexes. If you want to save the image changes, you can do so using a new, separate index. +Image.Seems.Only.Label=This image seems to have only one index +DISMTools.Label=DISMTools + +[Designer.SplashScreen] +VersionLabel.Label=Version +DISM.Tools.Starting.Button=DISMTools - Starting up... + +[Designer.UnattendMgr] +ProjectPath.Label=Project path: +Browse.Button=Browse... +FileName.Column=File name +Created.Column=Created +LastModified.Column=Last modified +LastAccessed.Column=Last accessed +ApplyImage.Button=Apply to image... +Open.File.Location.Button=Open file location +OpenFile.Button=Open file +Unattended.AnswerFile.Label=Unattended answer file manager + +[Designer.WimScriptEditor] +Config.List.Allows.Message=The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon. +Compression.Exclusion.List=Compression exclusion list +Edit.Button=Edit... +Add.Button=Add... +Remove.Button=Remove +Exclusion.Exception.List=Exclusion exception list +ExclusionList.Group=Exclusion list +New.Label=New +Open.Button=Open... +Save.Button=Save as... +Toggle.Word.Wrap.Label=Toggle word wrap +Help.Label=Help +Tools.Label=Tools +Exclude.User.One.Button=Exclude user OneDrive folders... +Inifiles.Filter=INI files|*.ini +Config.List.Load.Title=Specify the configuration list to load +Wimscript.Filter=INI files|*.ini +Location.Save.Config.Title=Specify the location to save the configuration list to +ConfigList.Label=DISM Configuration List Editor + +[Designer.WDSImageGroup] +Ok.Button=OK +Cancel.Button=Cancel +Action.Choose.Label=Choose an action: +Refresh.Button=Refresh +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[Designer.WDSImageCopy] +Ok.Button=OK +Cancel.Button=Cancel +Pick.Button=Pick... +Browse.Button=Browse... +ImageFile.Server.Label=Image file to copy to server: +Mounted.Image.Button=Use mounted image +Images.Added.Group.Label=The images will be added to the following group: +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Pick.Server.Groups.Button=Pick from server groups... +SelectAll.Button=Select all +ClearSelection.Button=Clear selection +Progress.Group=Progress +Re.Ready.OK.Label=Once you're ready, click OK. +Status.Label=Status +WIM.Files.Filter=WIM files|*.wim +Image.Win.Deploy.Label=Copy an image to Windows Deployment Services + +[Designer.WimFileSource] +ImageFile.Label=Image file +ImageIndex.Label=Image index + +[DisableFeat] +DisableFeatures.Label=Disable features +Image.Task.Header.Label={0} +PackageName.Label=Package name: +Features.Group=Features +Options.Group=Options +Lookup.Button=Lookup... +Ok.Button=OK +Cancel.Button=Cancel +FeatureName.Column=Feature name +State.Column=State +ParentPackage.CheckBox=Specify parent package name for features +Remove.Feature.CheckBox=Remove feature without removing manifest + +[DisableFeat.Validation] +Features.Message=Please select features to disable, and try again. +FeaturesSelected.Title=No features selected + +[DismComponents] +Title.Label=DISM Components +Component.Column=Component +Version.Column=Version +Ok.Button=OK + +[DriverFileInfo] +Driver.File.Label=Driver file information +Driver.File.Label.Label=Information of driver file: {0} +Property.Column=Property +Value.Column=Value +Ok.Button=OK +Copy.Button=Copy +PublishedName.Label=Published name +Original.File.Name.Label=Original file name +Critical.Boot.Process.Label=Is critical to the boot process? +Yes.Button=Yes +No.Button=No +Part.Windows.Label=Is part of the Windows distribution? +ListItem.Button=Yes +Version.Label=Version +ClassName.Label=Class name +ClassDescription.Label=Class description +ClassGUID.Label=Class GUID +ProviderName.Label=Provider name +Date.Label=Date +SignatureStatus.Label=Signature status +CatalogFile.Label=Catalog file + +[DriverFileInfo.Messages] +Hresult.Label=(HRESULT: {lbrace;}0{rbrace;}) + +[DriverFilter.Classes] +AudioProcessing.Message=Includes Audio processing objects (APOs). For more info, see Windows Audio Processing Objects. +Battery.Devices.UPS.Label=Includes battery devices and UPS devices. +Windows.Message=(Windows Server 2003 and later versions) Includes all biometric-based personal identification devices. +Windows.Label=(Windows XP SP1 and later versions) Includes all Bluetooth devices. +Camera.Message=(Windows 10 version 1709 and later versions) Includes universal camera drivers. +Cd.Rom.Drives.Message=Includes CD-ROM drives, including SCSI CD-ROM drives. By default, the system's CD-ROM class installer also installs a system-supplied CD audio driver and CD-ROM changer driver as Plug and Play filters. +Hard.Disk.Drives.Label=Includes hard disk drives. See also the HDC and SCSIAdapter classes. +VideoAdapters.Message=Includes video adapters. Drivers for this class include display drivers and video miniport drivers. +Extension.Message=(Windows 10 and later versions) Includes all devices requiring customizations. For more information, see Using an Extension INF File. +Floppy.Disk.Drive.Label=Includes floppy disk drive controllers. +Floppy.Disk.Drives.Label=Includes floppy disk drives. +Includes.Hard.Message=Includes hard disk controllers, including ATA/ATAPI controllers but not SCSI and RAID disk controllers. +InputDevices.Message=Includes interactive input devices that are operated by the system-supplied HID class driver. Includes USB devices that comply with the USB HID Standard and non-USB devices that use a HID minidriver. For more information, see HIDClass Device Setup Class. See also the Keyboard or Mouse classes. +ControlDevices.Message=Includes devices that control the operation of multifunction IEEE 1284.4 peripheral devices. +Dot.Print.Functions.Message=Includes Dot4 print functions. A Dot4 print function is a function on a Dot4 device and has a single child device, which is a member of the Printer device setup class. +Ieeedevices.Support.Message=Includes IEEE 1394 devices that support the IEC-61883 protocol device class. The 61883 component includes the 61883.sys protocol driver that transmits various audio and video data streams over the 1394 bus. These currently include standard/high/low quality DV, MPEG2, DSS, and Audio. The IEC-61883 specifications define these data streams. +Ieeedevices.Support.Label=Includes IEEE 1394 devices that support the AVC protocol device class. +SBP2.Message=Includes IEEE 1394 devices that support the SBP2 protocol device class. +HostControllers.Message=Includes 1394 host controllers connected on a PCI bus, but not 1394 peripherals. Drivers for this class are system-supplied. +Still.Image.Capture.Label=Includes still-image capture devices, digital cameras, and scanners. +InfraredDevices.Message=Includes infrared devices. Drivers for this class include Serial-IR and Fast-IR NDIS miniports, but see also the Network Adapter class for other NDIS network adapter miniports. +Keyboards.Message=Includes all keyboards. That is, it must also be specified in the (secondary) INF for an enumerated child HID keyboard device. +ScsimediaChanger.Label=Includes SCSI media changer devices. +Memory.Devices.Such.Label=Includes memory devices, such as flash memory cards. +Modem.Devices.INF.Message=Includes modem devices. An INF file for a device of this class specifies the features and configuration of the device and stores this information in the registry. An INF file for a device of this class can also be used to install device drivers for a controllerless modem or a software modem. These devices split the functionality between the modem device and the device driver. For more information about modem INF files and Microsoft Windows Driver Model (WDM) modem devices, see Overview of Modem INF Files and Adding WDM Modem Support. +Display.Monitors.INF.Message=Includes display monitors. An INF for a device of this class installs no device drivers, but instead specifies the features of a particular monitor to be stored in the registry for use by drivers of video adapters. (Monitors are enumerated as the child devices of display adapters.) +Mouse.Devices.Message=Includes all mouse devices and other kinds of pointing devices, such as trackballs. That is, this class must also be specified in the (secondary) INF for an enumerated child HID mouse device. +Combo.Cards.Such.Message=Includes combo cards, such as a PCMCIA modem and network card adapter. The driver for such a Plug and Play multifunction device is installed under this class and enumerates the modem and network card separately as its child devices. +Audio.Dvdmultimedia.Message=Includes Audio and DVD multimedia devices, joystick ports, and full-motion video capture devices. +MultiportSerial.Message=Includes intelligent multiport serial cards, but not peripheral devices that connect to its ports. It doesn't include unintelligent (16550-type) multiport serial controllers or single-port serial controllers (see the Ports class). +NetworkAdapter.Message=Consists of network adapter drivers. These drivers must either call NdisMRegisterMiniportDriver or NetAdapterCreate. Drivers that don't use NDIS or NetAdapter should use a different setup class. +Includes.Network.Message=Includes network and/or print providers. NetClient components are deprecated in Windows 8.1, Windows Server 2012 R2, and later. +Network.Services.Such.Label=Includes network services, such as redirectors and servers. +NdisprotocolsCo.Message=Includes NDIS protocols CoNDIS stand-alone call managers, and CoNDIS clients, in addition to higher level drivers in transport stacks. +SecureDevices.Message=Includes devices that accelerate secure socket layer (SSL) cryptographic processing. +PcmciacardBus.Message=Includes PCMCIA and CardBus host controllers, but not PCMCIA or CardBus peripherals. Drivers for this class are system-supplied. +Serial.Parallel.Port.Message=Includes serial and parallel port devices. See also the MultiportSerial class. +Printers.Admin.Hit.Label=Includes printers. As an IT admin, hit them with a baseball bat. +Includes.SCSI.Message=Includes SCSI/1394-enumerated printers. Drivers for this class provide printer communication for a specific bus. +ProcessorTypes.Label=Includes processor types. +ScsihostBus.Message=Includes SCSI Host Bus Adapters (HBAs), disk-array, and NVMe controllers. +Includes.Trusted.Message=Includes Trusted Platform Module chips. A TPM is a secure cryptoprocessor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. Any new manufactured device must implement and enable TPM 2.0 by default. For more information, see TPM Recommendations. +Includes.Sensor.Label=Includes sensor and location devices, such as GPS devices. +Smart.Card.Readers.Label=Includes smart card readers. +Virtual.Child.Device.Message=Includes virtual child device to encapsulate software components. For more information, see Adding Software Components with an INF file. +Storage.Disks.Label=Storage disks utilizing a multi-queue storage stack. +Includes.Storage.Message=Includes storage volumes as defined by the system-supplied logical volume manager and class drivers that create device objects to represent storage volumes, such as the system disk class driver. +HalsSystem.Message=Includes HALs, system buses, system bridges, the system ACPI driver, and the system volume manager driver. +Tape.Drives.Including.Label=Includes tape drives, including all tape miniclass drivers. +Usbdevice.Includes.Message=USBDevice includes all USB devices that don't belong to another class. This class isn't used for USB host controllers and hubs; drivers for these devices are provided by the operating system and should use the USB class described in System-Defined Device Setup Classes Reserved for System Use. +WindowsCeactive.Message=Includes Windows CE ActiveSync devices. The WCEUSBS setup class supports communication between a personal computer and a device that is compatible with the Windows CE ActiveSync driver (generally, PocketPC devices) over USB. +Wpddevices.Label=Includes WPD devices. + +[DriverFilter.Month] +January.Label=January +February.Label=February +March.Label=March +April.Label=April +Value.Label=May +June.Label=June +July.Label=July +August.Label=August +September.Label=September +October.Label=October +November.Label=November +December.Label=December + +[Driver.Manual] +Driver.Files.Choose.Label=Choose driver files in directory +RecursiveListing.Message=Below is a recursive listing of all drivers in the directory you are specifying. From this list, pick the drivers you want to add and click OK. +Ok.Button=OK +Cancel.Button=Cancel +Refresh.Button=Refresh + +[Driver.Manual.Scan] +Scanning.Driver.Dir.Label=Scanning directory...{crlf;}Driver files found thus far: {0} +Dir.Complete.Driver.Label=Directory scan complete.{crlf;}Driver files found: {0} + +[DriverFilePicker.Validation] +File.Label=File + +[DynaViewer.Main] +EventsFiltering.Message=Please wait while the events are being filtered... Change filters to cancel current operation. + +[DynaViewer.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[DynaViewer.EventProps] +Field.Empty.Caller.Message=The above field can be empty if the caller does not have a parent, or if the logging system was called by the method in the program with the GetParentCaller parameter set to false.{crlf;}{crlf;}As a developer, you can log events without getting the parent caller like this:{crlf;}{crlf;} DynaLog.LogMessage({quot;}Event Message{quot;}, False) +Parent.Caller.Title=Event Parent Caller + +[EnableFeat.EnableFeature] +EnableFeatures.Label=Enable features +Image.Task.Header.Label={0} +PackageName.Label=Package name: +FeatureSource.Label=Feature source: +Lookup.Button=Lookup... +Browse.Button=Browse... +Detect.Group.Policy.Button=Detect from group policy +Cancel.Button=Cancel +Ok.Button=OK +Features.Group=Features +Options.Group=Options +ParentPackage.CheckBox=Specify parent package name for features +Source.CheckBox=Specify feature source +ParentFeatures.CheckBox=Enable all parent features +Contact.Win.Update.CheckBox=Contact Windows Update for online images +FeatureName.Column=Feature name +State.Column=State +SourceFolder.Description=Specify a folder which will act as the feature source: +CommitImage.CheckBox=Commit image after enabling features + +[EnableFeat.Validation] +Features.Message=Please select features to enable, and try again. +FeaturesSelected.Title=No features selected +Features.Image.Message=Some features in this image require specifying a source for them to be enabled. The specified source is not valid for this operation. +Source.Required.Message=Please specify a valid source and try again. +Source.Message=Please make sure the source exists in the file system and try again. +EnableFeatures.Message=Enable features +Source.Message.Message=The specified source is not valid. Please specify a valid source and try again +EnableFeatures.Title=Enable features + +[EnvVars.Management] +Removed.Label=(will be removed) +InfoLoaded.Message=Environment variable information has been successfully saved to the registry of the target image.{crlf;}{crlf;}A backup of the previous variable configuration has been saved to your desktop should you need it in case modifications do not go as planned.{crlf;}{crlf;}Simply load the target image's SYSTEM hive and import this registry file. +InfoSaved.Message=Environment variable information could not be saved to the registry of the target image. + +[EnvVars.Info] +Machine.Field=Machine +User.Field=User + +[EnvVars.Helper] +CurrentInfo.Message=Current environment variable information for the system scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? +BackupSaved.Title=Environment variable information could not be backed up +UserBackup.Message=Current environment variable information for the user scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? + +[Exception] +DISM.Tools.Internal.Label=DISMTools - Internal Error +Sorry.Inconvenience.Message=We are sorry for the inconvenience, but DISMTools has run into an error that it couldn't handle and we need your help in order to continue.{crlf;}{crlf;}Here is the error information if you need it: +Help.Us.Fix.Label=Please help us fix this issue +Reporting.Issue.Message=When reporting this issue, PLEASE paste the exception information on the left. Otherwise, standard closure policies will be applied which imply closing your issue after (at least) 4 hours. +Continue.Running.Message=You may be able to continue running the program by clicking Continue. However, if this error is displayed for a second time, you can forcefully close the program by clicking Exit. Do note that changes made to projects, as well as changes in the Recents list, will not be saved.{crlf;}{crlf;}What do you want to do? +ReportIssue.Label=Report this issue +Continue.Button=Continue +Exit.Button=Exit +Copied.Clipboard.Label=This information has been copied to the clipboard. +Ll.Copy.Label=You'll need to copy this information manually. +Problem.Prevention.Message=In order to prevent this problem from happening again, we would like to know more about it by reporting an issue on the GitHub repository. You will need a GitHub account to report feedback. + +[ExportDrivers] +Title.Label=Export drivers +Image.Task.Header.Label={0} +ExportTarget.Label=Export target: +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel +DriversPath.Description=Please specify the path where the drivers will be exported to: + +[ExportDrivers.Validation] +Target.Required.Message=Please specify a target to export the drivers to and make sure that the specified target exists. + +[FfuApply] +NamingPattern.Required.Label=Please specify the naming pattern of the SFU files + +[FfuApply.ScanSFUPattern] +Source.File.Required.Message=Please specify a source FFU file. This will let you use the SFU files for later image application +ApplyImage.Message=Apply an image +Naming.Returns.Item=This naming pattern returns {0} SFU files +Naming.Returns.Label=This naming pattern returns {0} SFU files + +[FfuApply.Validation] +ImageFile.Message=The specified image file is not valid. Please specify a valid image and try again. + +[FfuCapture] +No.Compression.None.Message=No compression will be applied for FFU files. Choose this option if you want to split the resulting file. +Default.Compression.Item=Default compression will be applied for FFU files. + +[FfuSplit] +SplitFfuimages.Label=Split FFU images +Image.Task.Header.Label={0} +Source.Image.Label=Source image to split: +Name.Path.Destination.Label=Name and path of the destination split image: +Maximum.Size.Images.Label=Maximum size of split images (in MB): +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel +Integrity.CheckBox=Check image integrity +Source.File.Title=Specify the source FFU file to split: +Target.Location.Title=Specify the target location of the split images: + +[FfuSplit.Validation] +Name.Required.Message=Please specify a name and path for the target SFU file and try again. Also, make sure that the target path exists. +Source.File.Required.Message=Please specify a source FFU file and try again. Also, make sure that it exists. + +[Get.AppX] +AppX.Package.Label=Get AppX package information +Image.Task.Header.Label={0} +AppX.Package.Label.Label=AppX package information +Installed.AppX.Label=Select an installed AppX package on the left to view its information here +PackageName.Label=Package name: +Display.Name.Label=Application display name: +Architecture.Label=Architecture: +ResourceID.Label=Resource ID: +Version.Label=Version: +Registered.User.Label=Is registered to any user? +Install.Dir.Label=Installation directory: +Package.Manifest.Label=Package manifest location: +StoreLogo.Asset.Dir.Label=Store logo asset directory: +Main.StoreLogo.Asset.Label=Main store logo asset: +Asset.Guessed.DISM.Message=This asset has been guessed by DISMTools based on its size, which can lead to an incorrect result. If that happens, please report an issue on the GitHub repository +Asset.One.IM.Link=This asset is not the one I'm looking for +Save.Button=Save... +Type.Search.Label=Type here to search for an application... + +[Get.AppX.PackageList] +Yes.Button=Yes +No.Button=No + +[CapabilityInfo] +Get.Label=Get capability information +Image.Task.Header.Label={0} +Ready.Label=Ready +Identity.Label=Capability identity: +CapabilityName.Label=Capability name: +CapabilityState.Label=Capability state: +DisplayName.Label=Display name: +CapabilityInfo.Label=Capability information +Description.Label=Capability description: +Sizes.Label=Sizes: +Identity.Column=Capability identity +State.Column=State +Save.Button=Save... +Type.Search.Label=Type here to search for a capability... +Wait.Background.Message=Background processes need to have completed before showing feature information. We'll wait until they have completed +Waiting.Background.Label=Waiting for background processes to finish... +Prepare.Cap.Item=Preparing to get capability information... +GettingInfo.Item=Getting information from {quot;}{0}{quot;}... +ReadableSize.Suffix=(~{0}) +Download.Size.Bytes.Label=Download size: {0} bytes{1}{crlf;}Install size: {2} bytes{3} +Get.Reason.Message=Could not get capability information. Reason: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Ready +Build.Query.Assistant.Label=Build query with the Assistant... + +[GetCapInfo] +SelectCapability.Label=Select an installed capability on the left to view its information here + +[GetDriverInfo] +Driver.Label=Get driver information +Get.Label=What do you want to get information about? +Get.Drivers.Message=Click here to get information about drivers that you've installed or that came with the Windows image you're servicing +AddDrivers.Help.Message=Click here to get information about drivers that you want to add to the Windows image you're servicing before proceeding with the driver addition process +Ready.Label=Ready +Add.DriverPackage.Label=Add or select a driver package to view its information here +HardwareTargets.Label=Hardware targets +Hardware.Description.Label=Hardware description: +HardwareID.Label=Hardware ID: +AdditionalIds.Label=Additional IDs: +CompatibleIds.Label=Compatible IDs: +ExcludeIds.Label=Exclude IDs: +Hardware.Manufacturer.Label=Hardware manufacturer: +Architecture.Label=Architecture: +JumpTarget.Label=Jump to target: +PublishedName.Label=Published name: +Original.File.Name.Label=Original file name: +ProviderName.Label=Provider name: +Critical.Boot.Process.Label=Is critical to the boot process? +Version.Label=Version: +ClassName.Label=Class name: +Part.Windows.Label=Part of the Windows distribution? +DriverInfo.Label=Driver information +Installed.Driver.View.Label=Select an installed driver to view its information here +Date.Label=Date: +ClassDescription.Label=Class description: +ClassGUID.Label=Class GUID: +Driver.Signature.Label=Driver signature status: +Catalog.File.Path.Label=Catalog file path: +Bg.Procs.Notice.Message=You have configured the background processes to not show all drivers present in this image, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in. +AddDriver.Button=Add driver... +RemoveSelected.Button=Remove selected +RemoveAll.Button=Remove all +Change.Button=Change +Save.Button=Save... +View.Driver.File.Button=View driver file information +GoBack.Link=<- Go back +InstalledDriver.Link=I want to get information about installed drivers in the image +Iwant.Link=I want to get information about driver files +PublishedName.Column=Published name +Original.File.Name.Column=Original file name +Locate.Driver.Files.Title=Locate driver files +Type.Search.Driver.Button=Type here to search for a driver... +HardwareTarget.Label=Hardware target {0} of {1} +Value.Label= +Yes.Button=Yes +No.Button=No +Value.Button=Yes +Text1.Label=by +Build.Query.Assistant.Label=Build query with the Assistant... + +[DriverInfo.Display] +NoManufacturer.Label=None declared by the hardware manufacturer + +[GetDriverInfo.DriverInfo] +Wait.Background.Message=Background processes need to have completed before showing package information. We'll wait until they have completed +Waiting.Background.Label=Waiting for background processes to finish... +Driver.File.Message=Getting information from driver file {quot;}{0}{quot;}...{crlf;}This may take some time and the program may temporarily freeze +Ready.Item=Ready + +[DriverInfo.Load] +Preparing.Driver.Item=Preparing driver information processes... + +[GetDriverInfo.Hardware] +HardwareTarget.Label=Hardware target 1 of {0} + +[GetDriverInfo.Tooltip] +Previous.Hardware.Message=Previous hardware target +Next.Hardware.Target.Message=Next hardware target +Jump.Specific.Message=Jump to specific hardware target + +[DriverInfo] +Unknown.Label=Unknown + +[GetFeatureInfo] +Get.Feature.Label=Get feature information +Image.Task.Header.Label={0} +Ready.Label=Ready +FeatureName.Label=Feature name: +DisplayName.Label=Display name: +Description.Label=Feature description: +RestartRequired.Label=Is a restart required? +FeatureInfo.Label=Feature information +Installed.Left.Label=Select an installed feature on the left to view its information here +FeatureState.Label=Feature state: +CustomProps.Label=Custom properties: +FeatureName.Column=Feature name +FeatureState.Column=Feature state +Save.Button=Save... +Type.Search.Label=Type here to search for a feature... +Wait.Background.Message=Background processes need to have completed before showing feature information. We'll wait until they have completed +Waiting.Background.Label=Waiting for background processes to finish... +Preparing.Item=Preparing to get feature information... +GettingInfo.Item=Getting information from {quot;}{0}{quot;}... +Expand.Entry.Label=Please select or expand an entry. +None.Label=None +Reason.Message=Could not get feature information. Reason: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Ready +Build.Query.Assistant.Label=Build query with the Assistant... + +[FeatureInfo.PathSelection] +SelectedValue.Message=No value has been defined. If the selected item has subitems, expand it. + +[ImageInfo] +Get.Image.Label=Get image information +Image.Task.Header.Label={0} +ImageFile.Get.Label=Image file to get information from: +List.Indexes.ImageFile.Label=List of indexes of image file: +ImageVersion.Label=Image version: +ImageName.Label=Image name: +ImageDescription.Label=Image description: +ImageSize.Label=Image size: +Supports.WIM.Boot.Label=Supports WIMBoot? +Architecture.Label=Architecture: +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Service Pack level: +InstallationType.Label=Installation type: +Edition.Label=Edition: +ProductType.Label=Product type: +ProductSuite.Label=Product suite: +System.Root.Dir.Label=System root directory: +FileCount.Label=File count: +Dates.Label=Dates: +Installed.Languages.Label=Installed languages: +ImageInfo.Label=Image information +Index.List.View.Label=Select an index on the list view on the left to view its information here +CurrentlyMounted.RadioButton=Currently mounted image +AnotherImage.RadioButton=Another image +Browse.Button=Browse... +Save.Button=Save... +Pick.Button=Pick... +Index.Column=Index +ImageName.Column=Image name +Image.Get.Title=Specify the image to get the information from +Bytes.Label={0} bytes (~{1}) + +[ImageInfo.FeatureUpdate] +FeatureUpdate.Label=(feature update: +Text1.Label=) + +[ImageInfo.DisplayImageInfo] +UndefinedImage.Label=Undefined by the image +FilesDirectories.Label={0} files in {1} directories +Date.Created.Modified.Label=Date created: {0}{crlf;}Date modified: {1} + +[ImageInfo.GetImageInfo] +Gather.ImageFile.Message=Could not gather information of this image file. Reason:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImageInfo.LanguageList] +Display.Name.Open.Label=( +Default.Label=, default +Display.Name.Close.Label=) + +[AppxPackages.Info.Messages] +Get.Label=Could not get some information about this application. + +[DriverFilter.Messages] +Class.Name.Message=This class name is not valid. + +[InfoSave.Results.Messages] +HtmlFailed.Message=Conversion to HTML has failed due to the following error: {0}{crlf;}{crlf;}Do you want to open this file in a text editor? +ConversionError.Label=Conversion error + +[GetPkgInfo] +Package.Label=Get package information +Image.Task.Header.Label={0} +Get.Label=What do you want to get information about? +Get.Packages.Message=Click here to get information about packages that you've installed or that came with the Windows image you're servicing +AddPackages.Help.Message=Click here to get information about packages that you want to add to the Windows image you're servicing before proceeding with the package addition process +Ready.Label=Ready +Add.Package.File.Label=Add or select a package file to view its information here +PackageInfo.Label=Package information +PackageName.Label=Package name: +Package.Applicable.Label=Is package applicable? +Copyright.Label=Copyright: +ProductVersion.Label=Product version: +ReleaseType.Label=Release type: +Company.Label=Company: +CreationTime.Label=Creation time: +InstallTime.Label=Install time: +Last.Update.Time.Label=Last update time: +Install.Package.Name.Label=Install package name: +Installed.Package.View.Label=Select an installed package to view its information here +DisplayName.Label=Display name: +Description.Label=Description: +ProductName.Label=Product name: +InstallClient.Label=Install client: +RestartRequired.Label=Is a restart required? +SupportInfo.Label=Support information: +State.Label=State: +Boot.Up.Required.Label=Is a boot up required for full installation? +CustomProps.Label=Custom properties: +Features.Label=Features: +Capability.Identity.Label=Capability identity: +GoBack.Link=<- Go back +AddPackage.Button=Add package... +RemoveSelected.Button=Remove selected +RemoveAll.Button=Remove all +Save.Button=Save... +Iwant.Link=I want to get information about installed packages in the image +PackageFile.Link=I want to get information about package files +Locate.Package.Files.Title=Locate package files +Type.Search.Package.Label=Type here to search for a package... + +[PackageInfo.Display] +None.Label=None + +[PackageInfo.File] +Wait.Background.Message=Background processes need to have completed before showing package information. We'll wait until they have completed +Waiting.Background.Label=Waiting for background processes to finish... +Preparing.Item=Preparing package information processes... +Loading.Package.Message=Getting information from package file {quot;}{0}{quot;}...{crlf;}This may take some time and the program may temporarily freeze +Ready.Item=Ready + +[GetPkgInfo.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[GetPkgInfo.PackageList] +Wait.Background.Message=Background processes need to have completed before showing package information. We'll wait until they have completed +Waiting.Background.Label=Waiting for background processes to finish... +Preparing.Package.Item=Preparing to get package information... +GettingInfo.Item=Getting information from {quot;}{0}{quot;}... +Expand.Entry.Label=Please select or expand an entry. +None.Label=None +Ready.Item=Ready + +[GetPkgInfo.PropertyPath] +SelectedValue.Message=No value has been defined. If the selected item has subitems, expand it. + +[WinPESettings] +Get.Windows.Pesettings.Label=Get Windows PE settings +Windows.Label=These are the Windows PE settings for this image: +TargetPath.Label=Target path: +ScratchSpace.Label=Scratch space: +Change.Button=Change... +Ok.Button=OK +Save.Button=Save... + +[WinPESettings.GetPESettings] +GetValue.Label=Could not get value +GetValue.Message=Could not get value + +[Help.QuickHelp] +QuickHelp.Message=Quick Help + +[PEHelper.ServerPort] +Already.Message=The specified port, {0}, is already in use. +InvalidPort.Message=The specified port, {0}, is not in use. + +[ISOCreator] +Status.Message=Status +Creating.ISO.Message=Creating ISO file. This can take some time. Please wait... +IsofileCreated.Message=The ISO file has been created +CreateIsofile.Label=Create an ISO file +ISO.File.Message=The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here. +Re.Ready.Create.Label=Once you're ready, click the Create button. +ImageFile.Add.Label=Image file to add to ISO file: +Architecture.Label=Architecture: +Target.Isolocation.Label=Target ISO location: +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Browse.Button=Browse... +Pick.Button=Pick... +Mounted.Image.Button=Use mounted image +Customize.Environment.Button=Customize Environment... +Create.Button=Create +Cancel.Button=Cancel +Options.Group=Options +Progress.Group=Progress +Download.Windows.ADK.Link=Download the Windows ADK +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Unattended.CheckBox=Unattended answer file: +Copy.Ventoy.Drives.CheckBox=Copy to Ventoy drives +Newly.Signed.Boot.CheckBox=Use newly-signed boot binaries +Include.Essential.CheckBox=Include essential drivers from this system +Https.Learn.Message=https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install +Create.ISO.Message=This option will create ISO files that contain EFI boot binaries that are signed with the {quot;}Windows UEFI CA 2023{quot;} certificate.{crlf;}{crlf;} +Computers.UEFI.Message=Some computers that use UEFI may not boot correctly to this ISO file with the updated boot binaries. Because of this, it is recommended that you check your test equipment for compatibility with these binaries. +Run.Power.Shell.Message=Run the PowerShell command described in the Help documentation for the ISO creator to determine whether a device has this certificate installed. +Doubts.Recommend.Message=If you have any doubts, we recommend that you leave this option unchecked. +Have.Detected.Message=We have detected that, currently, this system does not support Windows UEFI CA 2023 boot binaries. If you continue with ISO creation, you may not be able to boot to the resulting ISO file on this system. +Windows.Title=Windows UEFI CA 2023 information +Check.Option.Storage.Message=When you check this option, storage controllers and network adapter drivers from this machine will be included{crlf;}in your ISO file. They will also be applied to the image file once deployed. +AvailableADK.Message=If available in your installed Assessment and Deployment Kit, your ISO file will use boot binaries signed with Windows UEFI CA 2023.{crlf;}This option is designed for target systems that support Secure Boot and have the latest boot certificates in the allowlist database (DB). + +[ISOCreator.Background] +Isofile.Created.Done.Message=The ISO file has been created successfully +Failed.Create.Message=Failed to create the ISO file + +[ISOCreator.GetImageInfo] +Gather.ImageFile.Message=Could not gather information of this image file. Reason:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ISOCreator.Links] +Https.Learn.Message=https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install + +[ISOCreator.Validation] +Either.Source.Message=Either the source image file does not exist or you haven't provided any image file. Please specify a valid image file and try again. +TargetISO.Required.Message=The target ISO hasn't been specified. Please specify a location for the ISO file and try again. +Saved.Message=Make sure that you have saved all your changes before continuing.{crlf;}{crlf;}If you have not done so, click No, save your image, and start the process again. You don't have to close this window.{crlf;}{crlf;}Do you want to create an ISO with this file? +Target.ISO.Message=The target ISO already exists. Do you want to replace it? + +[ImageAppxPackage.RegStatus] +Yes.Button=Yes +No.Button=No + +[ImageDriver.DriverInbox] +Yes.Button=Yes +No.Button=No + +[ImgAppend] +AppendImage.Label=Append to an image +Image.Task.Header.Label={0} +Path.Config.File.Label=Path of configuration file: +Source.Image.Dir.Label=Source image directory: +Dest.Image.Description.Label=Destination image description: +Destination.ImageFile.Label=Destination image file: +Destination.Image.Name.Label=Destination image name: +Ok.Button=OK +Cancel.Button=Cancel +Browse.Button=Browse... +Grab.Last.Image.Button=Grab from last image +Create.Button=Create... +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +WIM.Boot.Config.CheckBox=Append with WIMBoot configuration +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Verify.Image.CheckBox=Verify image integrity +Check.File.Errors.CheckBox=Check for file errors +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +ExtendedAttributes.CheckBox=Capture extended attributes +Sources.Destinations.Group=Sources and destinations +Options.Group=Options + +[ImgAppend.Tooltip] +Grab.Name.Last.Message=Grab the name of the last index of the target image + +[ImgAppend.Validation] +SourceImage.Required.Message=Please specify a source image directory and try again. +ImageFile.Required.Message=Please specify a destination image file and try again. +NameDestination.Message=Please specify a name for the destination image file and try again. +Either.Config.List.Message=Either no configuration list file has been specified or the configuration list file could not be detected in your file system. Would you like to continue without any configuration list file? + +[ImgApply] +ApplyImage.Label=Apply an image +Image.Task.Header.Label={0} +SourceImageFile.Label=Source image file: +ImageIndex.Label=Image index: +NamingPattern.Label=Naming pattern: +Integrity.CheckBox=Check image integrity +Verify.CheckBox=Verify +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Reference.Swmfiles.CheckBox=Reference SWM files +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Image.Compact.Mode.CheckBox=Apply image in compact mode +Extended.Attributes.CheckBox=Apply extended attributes +Browse.Button=Browse... +Name.Image.Button=Use name of the image +ScanPattern.Button=Scan pattern +Mounted.Image.Label=Use mounted image +Ok.Button=OK +Cancel.Button=Cancel +Destination.Dir.Label=Destination directory: +Source.Group=Source +Options.Group=Options +Destination.Group=Destination +SwmfilePattern.Group=SWM file pattern +NamingPattern.Required.Label=Please specify the naming pattern of the SWM files +Validate.Image.CheckBox=Validate image for Trusted Desktop + +[ImgApply.GetIndexes] +Gather.ImageFile.Message=Could not gather information of this image file. Reason:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgApply.ScanSwmPattern] +Source.WIM.Required.Message=Please specify a source WIM file. This will let you use the SWM files for later image application +ApplyImage.Message=Apply an image +Naming.Returns.Item=This naming pattern returns {0} SWM files +Naming.Returns.Label=This naming pattern returns {0} SWM files + +[ImgApply.Validation] +ImageFile.Message=The specified image file is not valid. Please specify a valid image and try again. + +[ImgCapture] +CaptureImage.Label=Capture an image +Destination.ImageFile.Label=Destination image file: +Source.Image.Dir.Label=Source image directory: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Path.Config.File.Label=Path of configuration file: +CompressionType.Label=Destination image compression type: +Sources.Destinations.Group=Sources and destinations +Options.Group=Options +Browse.Button=Browse... +Create.Button=Create... +Ok.Button=OK +Cancel.Button=Cancel +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Verify.Image.CheckBox=Verify image integrity +Check.File.Errors.CheckBox=Check for file errors +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Append.WIM.Boot.CheckBox=Append with WIMBoot configuration +Extended.Attributes.CheckBox=Capture extended attributes +Mount.Dest.Image.CheckBox=Mount destination image for later use +No.Compression.None.Item=No compression will be applied to the destination image. +Fast.Compression.Item=Fast compression will be applied. This is the default option. +MaxCompression.Message=Maximum compression will be applied. This will take the most time, but will result in a smaller image. + +[ImgCleanup] +ImageCleanup.Label=Image cleanup +Task.Choose.Label=Choose a task: +Text4.Label=Choose a task to see its description +NoOptions.Message=There are no configurable options for this task. However, you should only run this task to try to recover a Windows image that fails to boot. +Superseded.Base.Reset.Label=The superseded components base reset was last run on: +Only.Check.Option.Label=You should only check this option if the base reset takes more than 30 minutes to complete +NoOptions.Label=There are no configurable options for this task. +Source.Label=Source: +Task.Listed.Label=Select a task listed above to configure its options. +TaskOptions.Group=Task options +Ok.Button=OK +Cancel.Button=Cancel +Revert.Pending.Actions.Item=Revert pending actions +Clean.Up.ServicePack.Item=Clean up Service Pack backup files +Clean.Up.Component.Item=Clean up component store +Analyze.Component.Store.Item=Analyze component store +Check.Component.Store.Item=Check component store +Scan.Comp.Store.Item=Scan component store for corruption +Repair.Component.Store.Item=Repair component store +Source.Title=Specify the source from which we will restore the component store health +Browse.Button=Browse... +Detect.Group.Policy.Button=Detect from group policy +HideServicePack.CheckBox=Hide service pack from the Installed Updates list +Reset.Base.CheckBox=Reset base of superseded components +Defer.Long.Running.CheckBox=Defer long-running cleanup operations +Different.Source.CheckBox=Use different source for component repair +WindowsUpdate.CheckBox=Limit access to Windows Update +Last.Reset.Base.Label=LastResetBase_UTC +Get.Last.Base.Message=Could not get last base reset date. It is possible that no base resets were made +Last.Reset.Base.Item=LastResetBase_UTC +Get.Last.Base.Item=Could not get last base reset date. It is possible that no base resets were made +Get.Last.Base.Label=Could not get last base reset date +Task.See.Choose.Label=Choose a task to see its description +Experience.Boot.Message=If you experience a boot failure, this option can try to recover the system by reverting all pending actions from previous servicing operations +Removes.Backup.Files.Item=Removes backup files created during the installation of a service pack +Cleans.Up.Superseded.Item=Cleans up the superseded components and reduces the size of the component store +Creates.Report.Comp.Item=Creates a report of the component store, including its size +Checks.Whether.Image.Message=Checks whether the image has been flagged as corrupted by a failed process and whether the corruption can be repaired +Scans.Image.Message=Scans the image for component store corruption, but does not perform repair options automatically +Scans.Image.Component.Item=Scans the image for component store corruption and performs repair operations automatically + +[ImgCleanup.Validation] +Source.Has.None.Message=No valid source has been provided for component store repair. +Provide.Source.Try.Message=Please provide a source and try again. +Please.Make.Message=Please make sure the specified source exists in the file system and try again. +ImageCleanup.Message=Image cleanup + +[ImageConversion.Success] +Image.Done.Converted.Label=The image has been successfully converted +ConversionDone.Message=The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located.{crlf;}{crlf;}Do you want to open the directory where the target image is stored? +Yes.Button=Yes +No.Button=No + +[ImgExport] +ExportImage.Label=Export an image +Destination.ImageFile.Label=Destination image file: +SourceImageFile.Label=Source image file: +NamingPattern.Label=Naming pattern: +CompressionType.Label=Destination image compression type: +Source.Image.Index.Label=Source image index: +Reference.Swmfiles.CheckBox=Reference SWM files +CustomName.CheckBox=Specify a custom name for the destination image +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Ok.Button=OK +Cancel.Button=Cancel +Browse.Button=Browse... +Name.Image.Button=Use name of the image +ScanPattern.Button=Scan pattern +Sources.Destinations.Group=Sources and destinations +Options.Group=Options +Source.ImageFile.Title=Specify a source image file to export +Index.Column=Index +ImageName.Column=Image name +ImageDescription.Column=Image description +ImageVersion.Column=Image version +No.Compression.None.Item=No compression will be applied to the destination image. +Fast.Compression.Item=Fast compression will be applied. This is the default option. +MaxCompression.Message=Maximum compression will be applied. This will take the most time, but will result in a smaller image. +Compression.Level.Message=The compression level for push-button reset images will be applied. This requires exporting the image as an ESD file. +NamingPattern.Required.Label=Please specify the naming pattern of the SWM files +CheckIntegrity.CheckBox=Check integrity before exporting image + +[ImgExport.ScanSwmPattern] +Source.WIM.Required.Message=Please specify a source WIM file. This will let you use the SWM files for later image application +Naming.Returns.Item=This naming pattern returns {0} SWM files +Naming.Returns.Label=This naming pattern returns {0} SWM files + +[ImgExport.Validation] +SourceImageFile.Message=Please specify a source image file to export and try again +ImageFile.Required.Message=Please specify a destination image file and try again + +[ImageIndexDelete] +Remove.Volume.Image.Label=Remove a volume image +Image.Task.Header.Label={0} +SourceImage.Label=Source image: +Mark.VolumeImages.Message=Please mark the volume images to delete on the left. The image will then have the indexes shown on the right +Get.Indexes.Image.Label=Getting indexes from the image. Please wait... +Browse.Button=Browse... +Mounted.Image.Button=Use mounted image +Ok.Button=OK +Cancel.Button=Cancel +Integrity.CheckBox=Check image integrity +Index.Column=Index +ImageName.Column=Image name +Columns0.Column=Index +Columns1.Column=Image name +VolumeImages.Group=Volume images + +[ImageIndexDelete.IndexInfo] +Image.Only.Contains.Message=This image only contains 1 index. You can't remove volume images from this file +Remove.Volume.Image.Title=Remove a volume image + +[ImageIndexDelete.Validation] +SelectImages.Message=Please select volume images to remove from this image, and try again. +Remove.Volume.Image.Title=Remove a volume image +ImageMounted.Message=The program has detected that this image is mounted. In order to remove volume images from a file, it needs to be unmounted. You can remount it later, if you want.{crlf;}{crlf;}Do note that this will unmount the image without saving changes. Make sure all your changes have been saved before proceeding.{crlf;}{crlf;}Do you want to unmount this image? + +[ImageIndexSwitch] +Image.Indexes.Label=Switch image indexes +Image.Task.Header.Label={0} +Image.Label=Image: +Unmounting.Source.Label=When unmounting source index, what to do? +Destination.Mount.Label=Destination index to mount: +Already.Mounted.Label=This index has already been mounted +Ok.Button=OK +Cancel.Button=Cancel +Indexes.Group=Indexes +Save.Changes.RadioButton=Save changes to index +DiscardChanges.RadioButton=Unmount discarding changes + +[ImageIndexSwitch.Initialize] +Getting.Image.Indexes.Label=Getting image indexes... + +[ImageInfoSave] +Saving.Image.Button=Saving image information... +Wait.Message=Please wait while DISMTools saves the image information to a file. This can take some time, depending on the tasks that are run. +Wait.Label=Please wait... +Wait.Background.Message=Background processes need to have completed before getting information. We'll wait until they have completed +Waiting.Bg.Procs.Item=Waiting for background processes to finish... +Create.Target.Reason.Message=Could not create the save target. Reason: +OperationFailed.Message=The operation has failed +PackageInfo.Label=Package information +FeatureInfo.Label=Feature information +AppX.Package.Label=AppX package information +CapabilityInfo.Label=Capability information +DriverInfo.Label=Driver information +Desea.Obtener.Message=¿Desea obtener información completa acerca de los paquetes presentes? Esto tardará más tiempo. +Statement3.Message=¿Desea obtener información completa acerca de las características presentes? Esto tardará más tiempo. +Statement4.Message=¿Desea obtener información completa acerca de los paquetes AppX presentes? Esto tardará más tiempo. +Statement5.Message=¿Desea obtener información completa acerca de las funcionalidades presentes? Esto tardará más tiempo. +Statement6.Message=¿Desea obtener información completa acerca de los controladores presentes? Esto tardará más tiempo. +BgProcessDetect.Message=You have configured background processes to not detect all drivers, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in.{crlf;}{crlf;} +Setting.Applied.Task.Message=This setting is also applied to this task, but you can get the information of all drivers now. Do note that this can take a long time, depending on the amount of first-party drivers. +Get.Message=Do you want to get the information of all drivers, including drivers part of the Windows distribution? +SavingContents.Message=Saving contents... + +[ImageInfoSave.AppxInfo] +Preparing.Package.Message=Preparing AppX package information processes... +Basic.Ready.Message=The program has obtained basic information of the installed AppX packages of this image. You can also get complete information of such AppX packages and save it in the report.{crlf;}{crlf;} +May.Take.Long.Message=Do note that this will take longer depending on the number of installed AppX packages. +Prompt.Label=Do you want to get this information and save it in the report? +Package.Message=AppX package information +Getting.Message=Getting information of AppX packages... (AppX package {0} of {1}) +Packages.Obtained.Message=AppX packages have been obtained +Saving.Installed.Message=Saving installed AppX packages... + +[ImgInfo.Capabilities] +Preparing.Message=Preparing capability information processes... +Basic.Ready.Message=The program has obtained basic information of the installed capabilities of this image. You can also get complete information of such capabilities and save it in the report.{crlf;}{crlf;} +May.Take.Long.Message=Do note that this will take longer depending on the number of installed capabilities. +Save.Prompt.Label=Do you want to get this information and save it in the report? +CapabilityInfo.Message=Capability information +Loaded.Message=Capabilities have been obtained +Loading.Capability.Message=Getting information of capabilities... (capability {0} of {1}) +Saving.Message=Saving installed capabilities... + +[ImgInfo.DriverFiles] +Preparing.Message=Preparing driver information processes... +Loading.Driver.Message=Getting information from driver files... (driver file {0} of {1}) + +[ImageInfoSave.Drivers] +Preparing.Message=Preparing driver information processes... +Basic.Ready.Message=The program has obtained basic information of the installed drivers of this image. You can also get complete information of such drivers and save it in the report.{crlf;}{crlf;} +May.Take.Long.Message=Do note that this will take longer depending on the number of installed drivers. +Prompt.Label=Do you want to get this information and save it in the report? +DriverInfo.Message=Driver information +Setting.Applied.Task.Message=This setting is also applied to this task, but you can get the information of all drivers now. Do note that this can take a long time, depending on the amount of first-party drivers. +Get.Message=Do you want to get the information of all drivers, including drivers part of the Windows distribution? +DriversObtained.Message=Drivers have been obtained +Get.Driver.Message=Getting information of drivers... (driver {0} of {1}) +SaveDrivers.Message=Saving installed drivers... + +[ImageInfoSave.GetDriverInfo] +BgProcessDetect.Message=You have configured background processes to not detect all drivers, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in.{crlf;}{crlf;} + +[ImgInfo.Features] +Preparing.Feature.Message=Preparing feature information processes... +Loading.Feature.Message=Getting information of features... (feature {0} of {1}) + +[ImageInfoSave.Features] +Basic.Ready.Message=The program has obtained basic information of the installed features of this image. You can also get complete information of such features and save it in the report.{crlf;}{crlf;} +May.Take.Long.Message=Do note that this will take longer depending on the number of installed features. +Prompt.Label=Do you want to get this information and save it in the report? +FeatureInfo.Message=Feature information +FeaturesObtained.Message=Features have been obtained +SaveFeatures.Message=Saving installed features... + +[ImageInfoSave.Image] +Getting.Image.Message=Getting image information... (image {0} of {1}) + +[ImgInfo.PkgFiles] +Preparing.Package.Message=Preparing package information processes... + +[ImgInfo.PackageFiles] +Loading.Package.Message=Getting information from package files... (package file {0} of {1}) + +[ImgInfo.Packages] +Preparing.Package.Message=Preparing package information processes... +Loading.Package.Message=Getting information of packages... (package {0} of {1}) + +[ImageInfoSave.Packages] +Basic.Ready.Message=The program has obtained basic information of the installed packages of this image. You can also get complete information of such packages and save it in the report.{crlf;}{crlf;} +May.Take.Long.Message=Do note that this will take longer depending on the number of installed packages. +Prompt.Label=Do you want to get this information and save it in the report? +PackageInfo.Message=Package information +PackagesObtained.Message=Packages have been obtained +SavePackages.Message=Saving installed packages... + +[ImageInfoSave.WinPE] +Prepare.Message=Preparing to get Windows PE configuration... +Get.Target.Message=Getting Windows PE target path... +Get.Scratch.Message=Getting Windows PE scratch space... + +[ImageInfoSave.Report] +Get.Message=The program could not get information about this task. See below for reasons why: +Exception.Label=Exception: +ExceptionMessage=Exception message: +ErrorCode.Label=Error code: +ImageInfo.Label=Image information +Active.Install.Label=Active installation information: +Name.Label=Name: +Boot.Point.Mount.Label=Boot point (mount point): +Version.Label=Version: +Offline.Install.Label=Offline installation information: +OfflineVersion.Label=- Version: +ImageFile.Get.Label=Image file to get information from: +InfoSummary.Label=Information summary for +ImageS.Label=image(s): +Version.Column=Version +ImageName.Label=Image name +ImageDescription=Image description +ImageSize.Label=Image size +Architecture.Label=Architecture +HAL.Label=HAL +ServicePackBuild.Label=Service Pack build +ServicePackLevel.Label=Service Pack level +InstallationType.Label=Installation type +Edition.Label=Edition +ProductType.Label=Product type +ProductSuite.Label=Product suite +System.Root.Dir.Label=System root directory +Languages.Label=Languages +DateCreation.Label=Date of creation +DateModification.Label=Date of modification +Default.Label=(default) +Bytes.Label=bytes (~ +UndefinedImage.Label=Undefined by the image +PackageInfo.Label=Package information +Active.Install.Label.Label=active installation +PackageS.Label=package(s): +PackageName.Label=Package name +Applicable.Label=Applicable? +Copyright.Label=Copyright +Company.Label=Company +CreationTime.Label=Creation time +Description=Description +InstallClient.Label=Install client +Install.Package.Name.Label=Install package name +InstallTime.Label=Install time +Last.Update.Time.Label=Last update time +DisplayName.Label=Display name +ProductName.Label=Product name +ProductVersion.Label=Product version +ReleaseType.Label=Release type +RestartRequired.Label=Restart required? +SupportInfo.Label=Support information +PackageState.Label=Package state +Boot.Up.Required.Label=Boot up required? +Capability.Identity.Label=Capability identity +CustomProps.Label=Custom properties +Features.Label=Features +None.Label=None +Preposterous.Time.Date.Label=- **Preposterous time and date** +PackageInfo.Ready.Label=Complete package information has been gathered. +Package.Release.Type.Label=Package release type +Package.Install.Time.Label=Package install time +PackageInfo.Missing.Label=Complete package information has not been gathered +Package.File.Label=Package file information +Amount.Package.Files.Label=Amount of package files to get information about: +FeatureInfo.Label=Feature information +FeatureCount.Suffix=feature(s): +FeatureName.Label=Feature name +FeatureState.Label=Feature state +Web.Label=On The Web +Look.Item.Online.Label=Look this item online +FeatureInfo.Ready.Label=Complete feature information has been gathered +FeatureInfo.Missing.Label=Complete feature information has not been gathered +AppX.Package.Label=AppX package information +Task.Supported.Win.Message=This task is not supported on the specified Windows image. Check that it contains Windows 8 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +AppXPackages.Label=AppX package(s): +App.Display.Name.Label=Application display name +ResourceID.Label=Resource ID +RegisteredUser.Label=Registered to a user? +Install.Location.Label=Installation location +Package.Manifest.Label=Package manifest location +StoreLogo.Asset.Dir.Label=Store logo asset directory +Main.StoreLogo.Asset.Label=Main store logo asset +Yes.Button=Yes +No.Button=No +Unknown.Label=Unknown +Notemain.StoreLogo.Message=NOTE: main store logo asset locations are a guess, and may not be the assets you're looking for. If that happens, report an issue on the GitHub repo using the +StoreLogo.Asset.Label=Store logo asset preview issue +Template.Provide.Message=template. Then, provide the package name, the expected asset and the obtained asset. +CapabilityInfo.Label=Capability information +Task.Supported.Message=This task is not supported on the specified Windows image. Check that it contains Windows 10 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +CapabilityIes.Label=capability/ies: +CapabilityName.Label=Capability name +CapabilityState.Label=Capability state +DownloadSize.Label=Download size +InstallationSize.Label=Installation size +BytesSuffix.Label=bytes +CapabilityInfo.Ready.Label=Complete capability information has been gathered +CapabilityInfo.Missing.Label=Complete capability information has not been gathered +DriverInfo.Label=Driver information +Box.Driver.Label=In-box driver information +WasSaved.Label=was saved +Saved.Label=was not saved +DriverS.Label=driver(s): +PublishedName.Label=Published name +Original.File.Name.Label=Original file name +ProviderName.Label=Provider name +ClassName.Label=Class name +ClassDescription=Class description +ClassGUID.Label=Class GUID +Catalog.File.Path.Label=Catalog file path +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Critical to the boot process? +Date.Label=Date +SignatureStatus.Label=Signature status +DriverInfo.Ready.Label=Complete driver information has been gathered +DriverInfo.Missing.Label=Complete driver information has not been gathered +DriverPackage.Label=Driver package information +DriverPackageS.Label=driver package(s): +DriverPackage.Driver.Label=Driver package +Value.Label=of +HardwareTargets.Label=hardware target(s): +Hardware.Description=Hardware description +HardwareID.Label=Hardware ID +CompatibleIds.Label=Compatible IDs +ExcludeIds.Label=Exclude IDs +Hardware.Manufacturer.Label=Hardware manufacturer +None.Declared.Label=None declared by the manufacturer +File.Contains.Hardware.Label=This file contains no hardware targets. It could be invalid. +Windows.Label=Windows PE configuration +UnsupportedWin.Message=This task is not supported on the specified Windows image. Check that it is a Windows PE image. Skipping task... +Target.Path.Get.Label=Target path: could not get value +ScratchSpace.Get.Value.Label=Scratch space: could not get value +TargetPath.Label=Target path: +GetValue.Label=could not get value +ScratchSpace.Label=Scratch space: +ServiceInfo.Label=Service Information +Getting.Service.Label=Getting service information... +Service.Default.Label=service(s) in default control set: +ServiceName.Label=Service Name +DisplayName.Column=Display Name +StartType.Label=Start Type +ServiceType.Label=Service Type +Overview.Svc.Label=Saving information overview of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Detailed.Svc.Label=Saving detailed information of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Undefined.Label=Undefined +Per.User.Service.Label=Not a per-user service +InfoService.Label=Information for service: {lbrace;}0{rbrace;} +Service.Display.Name.Label=Service Display Name: {lbrace;}0{rbrace;} +Service.Description=Service Description: {lbrace;}0{rbrace;} +ImagePath.Label=Image Path: {lbrace;}0{rbrace;} +ObjectName.Label=Object Name: {lbrace;}0{rbrace;} +StartType.Option0.Label=Start Type: {lbrace;}0{rbrace;} +DelayedStart.Label=Delayed Start? {lbrace;}0{rbrace;} +ServiceType.Option0.Label=Service Type: {lbrace;}0{rbrace;} +Per.User.Flags.Label=Per-user Service Flags: {lbrace;}0{rbrace;} +Group.Label=Group: {lbrace;}0{rbrace;} +WindowsNt.Label=Windows NT® privileges: +PrivilegeName.Label=Privilege Name +Privilege.Display.Name.Label=Privilege Display Name +Privilege.Description=Privilege Description +ErrorControl.Label=Error Control: +ServiceError.Label=On service error: {lbrace;}0{rbrace;} +Failure.Action.First.Label=Failure action on first error: {lbrace;}0{rbrace;} +Failure.Action.Second.Label=Failure action on second error: {lbrace;}0{rbrace;} +Failure.Errors.Label=Failure action on subsequent errors: {lbrace;}0{rbrace;} +ResetErrorCount.Label=Reset error count after the following minutes: {lbrace;}0{rbrace;} minute(s) +Restart.Service.Message=Restart service after the following minutes: {lbrace;}0{rbrace;} minute(s) ({lbrace;}1{rbrace;} seconds) after first failure, {lbrace;}2{rbrace;} minute(s) ({lbrace;}3{rbrace;} seconds) after second failure, {lbrace;}4{rbrace;} minute(s) ({lbrace;}5{rbrace;} seconds) after subsequent failures +Dependencies.Label=Dependencies: +Name.Column=Name +Type.Label=Type +Dependents.Label=Dependents: +ServicesFound.Label=No services were found. +DISM.Tools.Image.Title=DISMTools Image Information Report +Automatically.Message=This is an automatically generated report created by DISMTools. It can be viewed at any time to check image information. +Report.Contains.Message=This report contains information about the tasks that you wanted to get information about, which are reflected below this message. +Process.Primarily.Message=This process primarily uses the DISM API to get information. If you want to get information of the API operations, this file does not include it. However, you can get that information from the log file stored in the standard location of: +TaskDetails.Label=Task details +ProcessesStarted.Label=Processes started at: +Report.File.Target.Label=Report file target: +Tasks.Get.Complete.Label=Information tasks: get complete image information +Tasks.Get.Image.Label=Information tasks: get image file information +Tasks.Get.Installed.Label=Information tasks: get installed package information +Tasks.Get.Package.Label=Information tasks: get package file information +Tasks.Get.Feature.Label=Information tasks: get feature information +TaskInstalled.Label=Information tasks: get installed AppX package information +Tasks.Get.Capability.Label=Information tasks: get capability information +Tasks.Get.Driver.Label=Information tasks: get installed driver information +Tasks.Get.Label.Label=Information tasks: get driver package information +Tasks.Get.Windows.Label=Information tasks: get Windows PE configuration +Tasks.Get.Services.Label=Information tasks: get services from default control set +WeEnded.Label=We have ended at +NiceDay.Label=. Have a nice day! +Complete.AppX.Label=Complete AppX package information has been gathered +AppxInfo.Ready2.Label=Complete AppX package information has not been gathered + +[ImgMount] +MountImage.Label=Mount an image +Options.Required.Label=Please specify the options to mount an image: +ImageFile.Label=Image file*: +ESD.Label=esd +Convert.File.WIM.Label=You need to convert this file to a WIM file in order to mount it +Convert.Button=Convert +SWM.Label=swm +Merge.Swmfiles.Item=You need to merge the SWM files to a WIM file in order to mount it +Merge.Item=Merge +MountDirectory.Label=Mount directory*: +Index.Label=Index*: +Fields.End.Required.Label=The fields that end in * are required +Source.Group=Source +Destination.Group=Destination +Options.Group=Options +Browse.Button=Browse... +Cancel.Button=Cancel +Ok.Button=OK +Index.Column=Index +ImageName.Column=Image name +ImageDescription.Column=Image description +ImageVersion.Column=Image version +Mount.Read.CheckBox=Mount with read only permissions +Optimize.Times.CheckBox=Optimize mount times +Integrity.CheckBox=Check image integrity +Image.Already.Message=This image is already mounted, and cannot be mounted again. If you want to mount it to the directory you wanted, unmount the image from its original mount directory (saving the changes if you want) and open this dialog afterwards + +[ImgMount.Actions] +Convert.Button=Convert +Convert.Image.WIM.Message=You need to convert this image to a WIM file in order to mount it +Merge.Swmfiles.Message=You need to merge the SWM files to a WIM file in order to mount it +Swm.Merge.Required.Message=You need to merge the SWM files to a WIM file in order to mount it + +[ImgMount.GetIndexes] +Gather.ImageFile.Message=Could not gather information of this image file. Reason:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgMount.Validation] +Create.Dir.Reason.Message=Could not create mount directory. Reason: {0}; {1} +MountImage.Title=Mount an image + +[AppxPackages.Add.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Add provisioned AppX packages + +[AppxPackages.Remove.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Remove provisioned AppX packages + +[ImageConversion.WimToEsd] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Drivers.Export] +Class.Name.Message=This class name is not valid. + +[ImageOps.Editions.Set] +DirectoryMissing.Message=Either no directory has been specified or it does not exist. +ProductKey.Message=The product key has been typed incorrectly + +[FFU.Apply.Messages] +Destination.Disk.Message=Make sure that the destination disk is as large or larger than the specified FFU file when mounted. If the destination disk is larger than the FFU's expanded partitions, please extend partitions to their full extent. + +[FFU.Capture.Messages] +Source.Drive.Exist.Label=The specified source drive does not exist. +Source.Drive.Message=The source drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? +Provide.Dest.Path.Label=Please provide a destination path for the FFU file. +Provide.Name.Dest.Label=Please provide a name for the destination FFU file. + +[FFU.Optimize.Messages] +Path.Image.Required.Message=Please specify the path of the image you want to optimize and try again. Also, make sure that that path exists. + +[ImageConversion.SwmToWim] +Get.Index.Image.Label=Could not get index information for this image file + +[ImgSplit] +SplitImages.Label=Split images +Image.Task.Header.Label={0} +Source.Image.Label=Source image to split: +Name.Path.Destination.Label=Name and path of the destination split image: +Maximum.Size.Images.Label=Maximum size of split images (in MB): +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel +Integrity.CheckBox=Check image integrity +Source.WIM.File.Title=Specify the source WIM file to split: +Target.Location.Title=Specify the target location of the split images: + +[ImgSplit.Validation] +Name.Required.Message=Please specify a name and path for the target SWM file and try again. Also, make sure that the target path exists. +Source.WIM.Required.Message=Please specify a source WIM file and try again. Also, make sure that it exists. + +[Img.Swm] +MergeSwmfiles.Label=Merge SWM files +Image.Task.Header.Label={0} +SourceSwmfile.Label=Source SWM file: +Notewhen.Specifying.Message=NOTE: when specifying the SWM file, choose the first file. DISMTools will take care of additional SWM files stored in that directory. +Destination.WIM.File.Label=Destination WIM file: +Index.Label=Index: +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel +LearnHow.Link=Learn how to do it +Index.Column=Index +ImageName.Column=Image name +ImageDescription.Column=Image description +ImageVersion.Column=Image version +Source.Swmfile.Title=Specify the source SWM file to merge +Dest.WIM.File.Title=Specify the destination WIM file to merge the source SWM files to + +[ImgUMount] +UnmountImage.Label=Unmount an image +Options.Required.Label=Please specify the options to unmount this image: +Dir.Label=The mount directory: +MountDirectory.Label=Mount directory: +UnmountOperation.Label=Unmount operation: +Integrity.CheckBox=Check image integrity +Append.Changes.CheckBox=Append changes to another index +Pick.Button=Pick... +Ok.Button=OK +Cancel.Button=Cancel +Dir.Required.Description=Please specify a mount directory: +LoadedProject.RadioButton=is loaded in the project +LocatedSomewhere.RadioButton=is located somewhere else +Save.Changes.Unmount.Item=Save changes and unmount +Discard.Changes.Unmount.Item=Discard changes and unmount +MountDirectory.Group=Mount directory +Additional.Options.Group=Additional options + +[ImgUMount.Validation] +Dir.Invalid.Message=The specified directory isn't a valid mount directory. +Dir.Missing.Message=The mount directory doesn't exist. + +[Img.WIM] +ConvertImage.Label=Convert image +Image.Task.Header.Label={0} +SourceImageFile.Label=Source image file: +Format.Converted.Image.Label=Format of converted image: +Destination.ImageFile.Label=Destination image file: +Index.Label=Index: +Format.Ichoose.Link=Which format do I choose? +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel +Index.Column=Index +ImageName.Column=Image name +ImageDescription.Column=Image description +ImageVersion.Column=Image version +Source.Group=Source +Options.Group=Options +Destination.Group=Destination +Source.ImageFile.Title=Specify the source image file you want to convert +Target.Image.Stored.Title=Where will the target image be stored? + +[Img.Win] +Service.Windows.Message=The program can't service Windows Vista images +Unsupported.Message=Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled.{crlf;}{crlf;}If you still want to service a Windows Vista image, refer to the {quot;}Compatibility with older Windows versions{quot;} topic in the Help documentation.{crlf;}{crlf;}Do you want to continue? +Yes.Button=Yes +No.Button=No + +[ImportDrivers] +Title.Label=Import drivers +Process.Third.Message=This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image +ImportSource.Label=Import source: +Source.Doesn.Tany.Label=This source doesn't have any additional settings available. +Source.Listed.Choose.Label=Choose a source listed above to configure its settings. +Windows.Label=Windows image to import drivers from: +Tuse.Target.Label=You can't use the import target as the import source +Offline.Drivers.Label=Offline installation to import drivers from: +ImageFile.Label=Image file: +Pick.Button=Pick... +Refresh.Button=Refresh +Ok.Button=OK +Cancel.Button=Cancel +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Windows.Item=Windows image +Online.Install.Item=Online installation +Offline.Install.Item=Offline installation + +[IncompleteSetup] +SetupIncomplete.Message=Setup is not complete yet, and your custom settings will not be saved. Proceeding will make the program use default settings.{crlf;}{crlf;}Do you want to proceed? +Yes.Button=Yes +No.Button=No + +[InfoSaveResults] +Image.Report.Label=Image information report results +ReportSaved.Message=The report has been saved to the location you had specified, and its contents will be shown below. +SaveReport.Button=Save report... + +[InfoSaveResults.Actions] +Ok.Button=OK + +[Settings.Dialog] +Detected.Label=Invalid settings have been detected +Reset.Default.Message=The invalid settings have been reset to default values. Check the fields below for more information: +Ok.Button=OK +Dismexecutable.Exist.Item=The specified DISM executable does not exist: {crlf;}{quot;}{0}{quot;} +DISM.Executable.Label=The DISM executable setting seems to be in order +Log.Font.Exist.Item=The specified log font does not exist in this system: {crlf;}{quot;}{0}{quot;} +Log.Font.Setting.Label=The log font setting seems to be in order +Log.File.Exist.Item=The specified log file does not exist: {crlf;}{quot;}{0}{quot;} +Log.File.Setting.Label=The log file setting seems to be in order +Scratch.Dir.Exist.Item=The specified scratch directory does not exist: {crlf;}{quot;}{0}{quot;} +Scratch.Dir.Set.Label=The scratch directory setting seems to be in order + +[InvalidSettings] +Found.Label=The program has detected invalid settings + +[MUMAdditionDialog] +Add.Update.Manifest.Label=Add update manifest +DialogHelp.Message=This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time.{crlf;}{crlf;} +Note.Advanced.Only.Message=Do note that this is for advanced use only and may compromise the target Windows image. +Path.Manifest.File.Label=Path of the manifest file to add: +Browse.Button=Browse... +Cancel.Button=Cancel +Ok.Button=OK + +[Main] +Props.Label=Properties +ProjProps.Label=Properties +Getting.Package.Names.Label=Getting package names... +Getting.Feature.Names.Label=Getting feature names and their state... +Wait.Label=Getting package names... +Get.Cap.Names.Label=Getting capability names and their state... +Loading.DriverPackages.Label=Getting installed driver packages... + +[Main.ADKCopierBW.Background] +ToolsCopied.Label=Deployment tools were copied to the project successfully +Deployment.Tools.Aren.Item=Deployment tools aren't present on this system +Deployment.Tools.Copied.Item=Deployment tools could not be copied + +[Main.ADKCopy] +Prepare.Deploy.Tools.Label=Preparing to copy deployment tools...{0} +Architecture.Label=(architecture {0} of 4) +Copying.Deployment.Label=Copying deployment tools for architecture ({0}, {1}%{2})... +Progress.Architecture.Label=, architecture {0} of 4 + +[Main.Actions] +UnsupportedImage.Message=This action is not supported on this image + +[Main.BgProcesses] +ImageCompleted.Label=Image processes have completed + +[Main.ChangeImgStatus] +No.Button=No +Yes.Button=Yes + +[Main.CheckForUpdates] +CheckingUpdates.Link=Checking for updates... +NewVersion.Available.Link=A new version is available for download and installation. Click here to learn more +Learn.Link=Click here to learn more + +[Main.CommandLineHelp] +Pass.Arguments.Message=You can pass command line arguments like this:{crlf;}{crlf;} DISMTools.exe {crlf;}{crlf;}The command line arguments that are available to you are the following:{crlf;}{crlf;} /setup{crlf;} Shows the initial setup wizard and reconfigures the program{crlf;} /load={crlf;} Loads a project file. You need to provide an absolute path for a project file, like this:{crlf;} DISMTools.exe /load={quot;}C:\foo\bar.dtproj{quot;}{crlf;} /online{crlf;} Enters the online installation management mode{crlf;} /offline:{crlf;} Enters the offline installation management mode. You need to provide a drive, like this:{crlf;} DISMTools.exe /offline:E:\{crlf;} /migrate{crlf;} Forces setting migration. While you can use this parameter, it should be used by the update system{crlf;} /nomig{crlf;} Skips setting migration. This parameter speeds up testing{crlf;} /noupd{crlf;} Disables update checks. Don't use this parameter unless you're testing a change{crlf;} /exp{crlf;} Enables program experiments if there are any{crlf;}{crlf;}DISMTools will continue starting up after you close this help message. +DISM.Tools.Title=DISMTools command line arguments + +[Main.CopyAsset] +Copied.Clipboard.Label=The asset has been copied to the clipboard +CopySuccessful.Title=Copy successful + +[Main.ComputerInfo] +Build.Label=build +SystemMemory.Label=of system memory +UsedOut.Label=used out of +Part.Domain.Label=Not part of a domain +PartDomain.Label=Part of a domain +Backup.Domain.Label=Backup domain controller +Primary.Domain.Label=Primary domain controller +ConnectedNetwork.Label=Not connected to a network +Manual.Label=Manual +Automatic.Assigned.Label=Automatic (assigned by DHCP) + +[Main.EndOfflineMgmt] +Bg.Procs.Still.Message=Background processes are still gathering information about this image. Do you want to cancel them? +Cancelling.Bg.Procs.Button=Cancelling background processes. Please wait... + +[Main.EndOffline] +Ready.Item=Ready +Yes.Button=Yes + +[Main.EndOnlineMgmt] +Bg.Procs.Still.Message=Background processes are still gathering information about this image. Do you want to cancel them? +Cancelling.Bg.Procs.Button=Cancelling background processes. Please wait... + +[Main.EndOnline] +Ready.Item=Ready +Yes.Button=Yes + +[Main.GetArguments] +Project.Message=The project could not be opened because this file does not exist:{crlf;}{crlf;}{0}{crlf;}{crlf;}If the project was moved, open its .dtproj file from the new location. If it has not been created yet, create the project again and choose a folder where you have write access. + +[Main.ExternalTools] +Error.Title=Tool launch error +NotFound.Message=Could not start {0} because its executable was not found:{crlf;}{crlf;}{1}{crlf;}{crlf;}Repair or reinstall DISMTools, then try again. +StartFailed.Message=Could not start {0}.{crlf;}{crlf;}Reason: {1}{crlf;}{crlf;}Repair or reinstall DISMTools if the problem persists. + +[Main.ReportManager] +Error.Title=Report manager +ProjectRequired.Message=Load or create a DISMTools project first. Project reports are stored in the reports folder inside the project. +OpenFailed.Message=Could not open the project reports folder:{crlf;}{crlf;}{0}{crlf;}{crlf;}Reason: {1} + +[Main.SaveProjectAs] +Save.Button=Save +Unavailable.Message=Save Project As is unavailable because no regular DISMTools project is loaded. Open or create a project first. +InvalidDestination.Message=Choose a different project name or location. A project cannot be saved inside itself. +DestinationExists.Message=The destination project folder is not empty:{crlf;}{crlf;}{0}{crlf;}{crlf;}Choose another name or location. +OpenCopyFailed.Message=The project copy was created, but DISMTools could not open it:{crlf;}{crlf;}{0} +Error.Message=Could not save the project as a copy.{crlf;}{crlf;}Destination:{crlf;}{0}{crlf;}{crlf;}Reason:{crlf;}{1} +Error.Title=Save project as + +[Main.Get.Basic] +Online.Install.Label=(Online installation) +Offline.Install.Item=(Offline installation) +Offline.Install.Label=(Offline installation) + +[Main.GetCapabilities] +Cap.Names.Their.Label=Getting capability names and their state... + +[Main.GetCapabilities.Actions] +UnsupportedImage.Message=This action is not supported on this image + +[Main.GetDrivers] +Loading.DriverPackages.Label=Getting installed driver packages... + +[Main.GetFeatures] +Getting.Feature.Names.Label=Getting feature names and their state... + +[Main.Get.OS] +Days.Go.Back.Message=You have {0} days to go back to the old version of Windows.{crlf;}{crlf;}To increase or decrease this uninstall window, go to Commands > OS uninstall > Set uninstall window...{crlf;}To initiate the OS rollback, go to Commands > OS uninstall > Initiate uninstall...{crlf;}To remove the ability to revert to the old version, go to Commands > OS uninstall > Remove roll back ability... + +[Main.OSUninstallWindow] +OnlineOnly.Message=This action is only supported on online installations + +[Main.GetPackages] +Getting.Package.Names.Label=Getting package names... + +[Main.GetProvAppx] +Getting.Package.Names.Label=Getting package names... + +[Main.ProvAppx] +UnsupportedImage.Message=This action is not supported on this image + +[Main.GetTargetEditions] +CurrentEdition.Message=The current edition is {quot;}{0}{quot;}{crlf;} +ProductKey.Upgrade.Message=If you have a product key, you may be able to upgrade this Windows image to a higher edition. +Windows.Message=Windows PE images cannot be upgraded to higher editions. +Suitable.ProductKey.Message=If you have a suitable product key, you can upgrade this Windows image to one of the following editions:{crlf;}{crlf;} +Image.Cannot.Message=This image cannot be upgraded to higher editions because it is in its highest edition + +[Main.HideChildDescs] +Ready.Label=Ready +Cancelling.Bg.Procs.Item=Cancelling background processes. Please wait... + +[Main.HideParentDesc] +Ready.Label=Ready +Cancelling.Bg.Procs.Item=Cancelling background processes. Please wait... + +[Main.InitDynaLog] +Beware.Custom.Themes.Title=Beware of custom themes +DISM.Tools.Detected.Message=DISMTools has detected that a custom theme has been set on this system. Some custom themes make the program not look correctly, so it's recommended to switch to the default theme. + +[Main.StartOSUninstall] +ReadCarefully.Message={0}, please read this message carefully before proceeding.{crlf;}{crlf;}If you have installed programs after the upgrade, proceeding with the rollback process may remove them. Make sure you have backed up their settings in case you need to reinstall them later on. Also, back up your files in case they are affected by the rollback process.{crlf;}{crlf;}Next, don't get locked out. If you have set a password for your current user, make sure you know it. Otherwise, you may not be able to log in.{crlf;}{crlf;}Finally, thanks for trying this version of Windows.{crlf;}{crlf;}Do you want to start the rollback process? + +[Main.OSUninstall] +OnlineOnly.Message=This action is only supported on online installations + +[Main.Interface] +File.Label=&File +Project.Label=&Project +Commands.Label=Com&mands +Tools.Label=&Tools +Help.Label=&Help +Settings.Detected.Label=Invalid settings have been detected +NewProject.Button=&New project... +Open.Existing.Project.Label=&Open existing project +Manage.Online.Install.Label=&Manage online installation +Manage.Ffline.Button=Manage o&ffline installation... +RecentProjects.Label=Recent projects +SaveProject.Button=&Save project... +SaveProjectas.Button=Save project &as... +Exit.Label=E&xit +View.Project.Files.Label=View project files in File Explorer +UnloadProject.Button=Unload project... +Switch.Image.Indexes.Button=Switch image indexes... +ProjectProps.Label=Project properties +ImageProps.Label=Image properties +ImageManagement.Label=Image management +OSPackages.Label=OS packages +ProvPackages.Label=Provisioning packages +AppxPackages.Label=AppX packages +AppMspservicing.Label=App (MSP) servicing +DefaultApp.Assoc.Label=Default app associations +Languages.Regional.Label=Languages and regional settings +Capabilities.Label=Capabilities +Windows.Label=Windows editions +Drivers.Label=Drivers +Unattended.Answer.Label=Unattended answer files +WindowsPE.Label=Windows PE servicing +OSUninstall.Label=OS uninstall +ReservedStorage.Label=Reserved storage +Append.Capture.Dir.Button=Append capture directory to image... +ApplyFfusfufile.Button=Apply FFU or SFU file... +ApplyWimswmfile.Button=Apply WIM or SWM file... +Capture.Incremental.Button=Capture incremental changes to file... +Capture.Partitions.Button=Capture partitions to FFU file... +Capture.Image.Drive.Button=Capture image of a drive to WIM file... +Delete.Resources.Button=Delete resources from corrupted image... +Apply.Changes.Image.Button=Apply changes to image... +Delete.VolumeImages.Button=Delete volume images from WIM file... +ExportImage.Button=Export image... +Get.Image.Button=Get image information... +Get.WIM.Boot.Button=Get WIMBoot configuration entries... +List.Files.Dirs.Button=List files and directories in image... +MountImage.Button=Mount image... +Optimize.FFU.File.Button=Optimize FFU file... +OptimizeImage.Button=Optimize image... +Remount.Image.Button=Remount image for servicing... +Split.FFU.File.Button=Split FFU file into SFU files... +Split.WIM.File.Button=Split WIM file into SWM files... +UnmountImage.Button=Unmount image... +Update.WIM.Boot.Button=Update WIMBoot configuration entry... +Apply.Siloed.Prov.Button=Apply siloed provisioning package... +Save.Image.Button=Save image information... +GetPackages.Button=Get package information... +AddPackage.Button=Add package... +RemovePackage.Button=Remove package... +GetFeatures.Button=Get feature information... +EnableFeature.Button=Enable feature... +DisableFeature.Button=Disable feature... +CleanupRecovery.Button=Perform cleanup or recovery operations... +Add.Prov.Package.Button=Add provisioning package... +Get.Prov.Package.Button=Get provisioning package information... +Apply.CustomData.Button=Apply custom data image... +Get.App.Package.Button=Get app package information... +Add.Provisioned.App.Button=Add provisioned app package... +Remove.Prov.App.Button=Remove provisioning for app package... +Optimize.Provisioned.Button=Optimize provisioned packages... +Add.CustomData.File.Button=Add custom data file into app package... +Get.App.Patch.Button=Get application patch information... +Detailed.App.Patch.Button=Get detailed application patch information... +Basic.Installed.App.Button=Get basic installed application patch information... +Get.Detailed.Button=Get detailed Windows Installer (*.msi) application information... +Get.Basic.Windows.Button=Get basic Windows Installer (*.msi) application information... +Export.Default.Button=Export default application associations... +DefaultApp.Assoc.Button=Get default application association information... +Import.Default.Button=Import default application associations... +Remove.Default.Button=Remove default application associations... +Intl.Settings.Button=Get international settings and languages... +SetUilanguage.Button=Set UI language... +Set.Default.Button=Set default UI fallback language... +Set.System.Preferred.Button=Set system preferred UI language... +Set.System.Locale.Button=Set system locale... +Set.User.Locale.Button=Set user locale... +Set.Input.Locale.Button=Set input locale... +Set.UI.Button=Set UI language and locales... +Set.Default.Time.Button=Set default time zone... +Set.Default.Languages.Button=Set default languages and locales... +Set.Layered.Driver.Button=Set layered driver... +Generate.Lang.Ini.Button=Generate Lang.ini file... +Set.Default.Setup.Button=Set default Setup language... +AddCapability.Button=Add capability... +Export.Capabilities.Button=Export capabilities into repository... +GetCapabilities.Button=Get capability information... +RemoveCapability.Button=Remove capability... +Get.Edition.Button=Get current edition... +Get.Upgrade.Targets.Button=Get upgrade targets... +UpgradeImage.Button=Upgrade image... +SetProductKey.Button=Set product key... +GetDrivers.Button=Get driver information... +AddDriver.Button=Add driver... +RemoveDriver.Button=Remove driver... +Export.DriverPackages.Button=Export driver packages... +Import.DriverPackages.Button=Import driver packages... +Apply.Unattended.Button=Apply unattended answer file... +GetSettings.Button=Get settings... +SetScratchSpace.Button=Set scratch space... +Set.Target.Path.Button=Set target path... +Get.Uninstall.Window.Button=Get uninstall window... +Initiate.Uninstall.Button=Initiate uninstall... +Remove.Roll.Back.Button=Remove roll back ability... +Set.Uninstall.Window.Button=Set uninstall window... +Set.Reserved.Storage.Button=Set reserved storage state... +Get.Reserved.Storage.Button=Get reserved storage state... +AddEdge.Button=Add Edge... +Add.Edge.Browser.Button=Add Edge browser... +Add.Edge.Web.Button=Add Edge WebView... +ImageConversion.Label=Image conversion +MergeSwmfiles.Button=Merge SWM files... +Remount.Image.Write.Label=Remount image with write permissions +CommandConsole.Label=Command Console +Unattended.AnswerFile.Label=Unattended answer file manager +Unattended.Creator.Label=Unattended answer file creator +Manage.Image.Registry.Button=Manage image registry hives... +WebResources.Label=Web Resources +Download.Languages.Button=Download Languages and Optional Features ISOs... +Download.FOD.Button=Download Languages and FOD discs for Windows 10... +ReportManager.Label=Report manager +Mounted.Image.Manager.Label=Mounted image manager +Create.Disc.Image.Button=Create disc image... +Create.Testing.Button=Create a testing environment... +Config.List.Editor.Label=Configuration list editor +Options.Label=Options +HelpTopics.Label=Help Topics +DISM.Tools.Label=About DISMTools +MoreInfo.Label=More information +WhatsThis.Label=What's this? +Report.Feedback.Opens.Label=Report feedback (opens in web browser) +Contribute.Help.System.Label=Contribute to the help system +TourActions.Label=Tour Actions +Tour.Server.Active.Label=Tour Server is active on port {0} +RestartTour.Label=Restart Tour +Stop.Tour.Server.Label=Stop Tour Server +Begin.Label=Begin +NewProject.Link=New project... +Open.Existing.Project.Link=Open existing project... +Manage.Online.Install.Link=Manage online installation +Manage.Offline.Button.Button=Manage offline installation... +RemoveEntry.Link=Remove entry +CloseTab.Label=Close tab +SaveProject.Label=Save project +UnloadProject.Label=Unload project +Unload.Project.Tooltip=Unload project from this program +Show.Progress.Window.Label=Show progress window +RefreshView.Label=Refresh view +Expand.Label=Expand +NewVersion.Available.Link=A new version is available for download and installation. Click here to learn more +Get.Basic.Label=Get basic information (all packages) +Get.Detailed.Specific.Label=Get detailed information (specific package) +CommitImage.Label=Commit changes and unmount image +Discard.Changes.Label=Discard changes and unmount image +UnmountSettings.Button=Unmount settings... +View.Package.Dir.Label=View package directory +Get.ImageFile.Button=Get image file information... +Save.Complete.Image.Button=Save complete image information... +Create.Disc.ImageFile.Button=Create disc image with this file... +Project.File.Load.Title=Specify the project file to load +MountDir.Description=Please specify the mount directory you want to load into this project: +Image.Processes.Label=Image processes have completed +Ready.Label=Ready +AccessDirectory.Label=Access directory +Copy.Deployment.Tools.Label=Copy deployment tools +AllArchitectures.Label=Of all architectures +Selected.Architecture.Label=Of selected architecture +Xarchitecture.Label=For x86 architecture +Amarkdown.Architecture.Label=For AMD64 architecture +ARM.Label=For ARM architecture +ARM64.Label=For ARM64 architecture +ImageOperations.Label=Image operations +Remove.VolumeImages.Button=Remove volume images... +Manage.Label=Manage +Create.Label=Create +Configure.Scratch.Dir.Label=Configure scratch directory +ManageReports.Label=Manage reports +Add.Button=Add +NewFile.Button=New file... +ExistingFile.Button=Existing file... +SaveResource.Button=Save resource... +CopyResource.Label=Copy resource +Visit.Microsoft.Apps.Label=Visit the Microsoft Apps website +Visit.Microsoft.Label=Visit the Microsoft Store Generation Project website +Iget.Apps.Label=How do I get applications? +Welcome.Servicing.Label=Welcome to this servicing session +Project.Link=PROJECT +Image.Link=IMAGE +Name.Label=Name: +Location.Label=Location: +ImagesMounted.Label=Images mounted? +Mount.Image.Link=Click here to mount an image +ProjectTasks.Label=Project Tasks +View.Project.Props.Link=View project properties +Open.File.Explorer.Link=Open in File Explorer +UnloadProject.Link=Unload project +ImageMounted.Label=No image has been mounted +Mount.Image.Order.Label=You need to mount an image in order to view its information +Choices.Label=Choices +MountImage.Link=Mount an image... +Pick.Mounted.Image.Link=Pick a mounted image... +ImageIndex.Label=Image index: +MountPoint.Label=Mount point: +Version.Label=Version: +Description.Label=Description: +ImageTasks.Label=Image Tasks +View.Image.Props.Link=View image properties +UnmountImage.Link=Unmount image +ImageOperations.Group=Image operations +Commit.Changes.Button=Commit current changes +CommitImage.Button=Commit and unmount image +Unmount.Image.Button=Unmount image discarding changes +Reload.Servicing.Button=Reload servicing session +ApplyImage.Button=Apply image... +CaptureImage.Button=Capture image... +Package.Operations.Group=Package operations +Get.Package.Button=Get package information... +Save.Installed.Button=Save installed package information... +Component.Store.Maint.Button=Perform component store maintenance and cleanup... +Feature.Operations.Group=Feature operations +Get.Feature.Button=Get feature information... +Save.Feature.Button=Save feature information... +AppX.Package.Operations=AppX package operations +Add.AppX.Package.Button=Add AppX package... +Get.App.Button=Get app information... +Save.Installed.AppX.Button=Save installed AppX package information... +Remove.AppX.Package.Button=Remove AppX package... +Capability.Operations.Group=Capability operations +Get.Capability.Button=Get capability information... +Save.Capability.Button=Save capability information... +DriverOperations.Group=Driver operations +AddDriverPackage.Button=Add driver package... +Get.Driver.Button=Get driver information... +Save.Installed.Driver.Button=Save installed driver information... +Windows.Group=Windows PE operations +GetConfig.Button=Get configuration +SaveConfig.Button=Save configuration... +Yes.Button=Yes +No.Button=No +Offline.Management.Button=Yes +Rename.Link=Rename +DomainMembership.Label=Domain Membership: +WorkgroupDomain.Label=Workgroup/Domain: +IP.Address.Config.Label=IP Address Configuration: +Explore.Get.Started.Label=Explore and get started +Stay.Up.Date.Label=Stay up-to-date +FactDay.Label=Fact of the day +Learn.Snew.Link=Learn what's new in this release +Get.Started.DISM.Link=Get started with DISMTools and image servicing +Manage.Install.Link=Manage your current installation +Manage.External.Link=Manage external Windows installations +Learn.Watching.Videos.Label=Learn by watching videos +Video.Content.Loaded.Label=Video content could not be loaded. +News.Feed.Loaded.Label=The news feed could not be loaded. +LearnMore.Link=Learn more +Retry.Button=Retry + +[Main.Links] +Props.Label=Properties +ProjProps.Label=Properties + +[Main.Messages] +IE.Emulation.Changed.Message=Modified Internet Explorer emulation settings for DISMTools. You will need to restart DISMTools in order to start video playback +DISM.Tools.Modify.Message=DISMTools could not modify Internet Explorer emulation settings. Video playback will not start. +Items.Present.None.Label=No items are present in the Recents list. +Incompatible.Win7.Message=This program is incompatible with Windows 7 and Server 2008 R2.{crlf;}This program uses the DISM API, which requires files from the Assessment and Deployment Kit (ADK). However, support for Windows 7 is not included.{crlf;}{crlf;}The program will be closed. +Requires.NET.Message=This program requires .NET Framework 4.8 to function.{crlf;}You can download it from: dotnet.microsoft.com. Install the framework and run the program again. You may need to restart your system{crlf;}{crlf;}The program will be closed. +Run.Admin.Message=This program must be run as an administrator.{crlf;}There are certain software configurations in which Windows will run this program without admin privileges, so you must ask for them manually.{crlf;}{crlf;}Right-click the executable, and select {quot;}Run as administrator{quot;} +DISM.Tools.Detected.Message=DISMTools has detected that a higher display scaling setting has been set. This can make the program look incorrectly.{crlf;}{crlf;}We recommend that you lower your scaling setting to 125% (120 DPI) or less, unless you have a small display panel set to a large resolution. +Higher.Display.Scaling.Title=Higher display scaling setting detected +DISM.Tools.Found.Message=DISMTools has found a possible Assessment and Deployment Kit installed on your system. However, it is not being detected. Do you want to fix it? +Possible.ADK.Title=Possible ADK installed on your system +SafeMode.Prompt=This computer has booted into Safe Mode. This mode is designed for live operating system recovery.{crlf;}{crlf;}DISMTools can automatically load the online installation management mode so that you can start attempting repairs.{crlf;}{crlf;}Do you want to load the online installation management mode? +Windows.Title=Windows is in Safe Mode +Tour.Prompt=Is this your first time using DISMTools? If so, we can help you get started with the Tour.{crlf;}{crlf;}With the Tour, you can make your first Windows image and test it afterwards. You can follow the tour at any pace you prefer, and you can access it at any time by going to the Help menu.{crlf;}{crlf;}Do you want to launch the Tour now? +Getting.Started.DISM.Title=Getting Started with DISMTools +DISM.Tools.Running.Message=DISMTools has detected that it is running on a Windows Server Core system. Some functionality may not work as expected. +ServerCore.Title=Windows Server Core detected +Project.DISM.Tools.Label=The specified project is not a DISMTools project. +DownloadFailed.Label=We couldn't download WIM Explorer Setup. Reason:{crlf;}{0} +PrepareFailed.Label=We couldn't prepare WIM Explorer Setup. Reason:{crlf;}{0} +AnswerFile.Removed.Label=Answer file removed successfully. +BackgroundBusy.Message=Background processes need to finish before loading the service manager. +Background.Finish.Message=Background processes need to finish before loading the environment variable manager. +Secure.Boot.Enabled.Label=Secure Boot is not enabled on this machine. +Secure.Boot.Status.Title=Secure Boot status +Secure.Boot=Secure Boot is enabled on this machine but does not contain Windows UEFI CA 2023 in its database. Make sure your computer receives the Secure Boot updates before Microsoft Windows Production PCA 2011 certificates expire in June 2026. +Update.Secure.Boot.Message=An update to Secure Boot to support Windows UEFI CA 2023 is in progress. +Secure.Enabled=Secure Boot is enabled on this machine and contains Windows UEFI CA 2023 in its database. +Determine.Status.Label=We could not determine the status of the Windows UEFI CA 2023 update. + +[Main.Messages.Validation] +Cannot.Load.Project.Message=Cannot load the project. Reason: the project was not found. It may have been moved or its folder may have been deleted. +Project.Load.Error.Title=Project load error + +[Main.News] +LearnMore.Link=Learn more +Last.Updated.Label=News last updated: + +[Main.News.Error] +NoDetails.Message=No additional news feed error details are available. Try refreshing the news feed. + +[Main.News.Load] +Retry.Button=Retry + +[Main.OfflineManagement] +OfflineInstall.Label=Offline installation - DISMTools +Install.Label=(Offline installation) +Image.Registry.Message=The image registry control panel needs to be closed before loading this mode. +Yes.Button=Yes + +[Main.OnlineManagement.Start] +Install.DISM.Tools.Label=Online installation - DISMTools +Install.Label=(Online installation) +Yes.Button=Yes + +[Main.Project.Load] +LoadingProject.Label=Loading project: {quot;}{0}{quot;} +Project.Label=Project: {quot;}{0}{quot;} +Adkdeployment.Tools.Label=ADK Deployment Tools +DeploymentTools.X86.Label=Deployment Tools (x86) +Deployment.Tools.Label=Deployment Tools (AMD64) +DeploymentTools.ARM.Label=Deployment Tools (ARM) +DeploymentTools.ARM64.Label=Deployment Tools (ARM64) +MountPoint.Label=Mount point +Unattended.Answer.Label=Unattended answer files +ScratchDirectory.Label=Scratch directory +ProjectReports.Label=Project reports + +[Main.Project.Load.Guard] +Image.Registry.Message=The image registry control panel needs to be closed before loading projects. + +[Main.Project.Unload] +Bg.Procs.Still.Message=Background processes are still gathering information about this image. Do you want to cancel them? +Cancelling.Bg.Procs.Button=Cancelling background processes. Please wait... +Ready.Item=Ready + +[Main.ProjectTree.AfterCollapse] +Collapse.Label=Collapse +CollapseItem.Label=Collapse item +Expand.Item=Expand +ExpandItem=Expand item +ExpandCollapse.Item=Expand +ExpandTool.ExpandItem=Expand item + +[Main.ProjectTree.AfterExpand] +Collapse.Label=Collapse +CollapseItem.Label=Collapse item +Expand.Item=Expand +ExpandItem=Expand item + +[Main.ProjectTree.AfterSelect] +Collapse.Label=Collapse +CollapseItem.Label=Collapse item +Expand.Item=Expand +ExpandItem=Expand item + +[Main.RegistryPanel] +Control.Active.Message=This control panel is not available on active installations. + +[Main.Registry.Actions] +Load.Project.Mode.Message=You need to load a project or mode to manage registry hives. + +[Main.RemoveOSUninstall] +ReadCarefully.Message={0}, please read this message carefully before proceeding.{crlf;}{crlf;}If you have used this new Windows version for some time and have determined that no issues are present, you can remove the ability to initiate a rollback.{crlf;}{crlf;}This won't delete the files from the old installation, so you need to use Disk Cleanup (cleanmgr) if you want to free up some space.{crlf;}{crlf;}Do you want to remove the ability to roll back to an older version of Windows? +OnlineOnly.Message=This action is only supported on online installations + +[Main.Run.BgProcesses] +RunningProcesses.Label=Running processes +Getting.Basic.Image.Label=Getting basic image information... +AdvancedImageInfo.Label=Getting advanced image information... +Getting.Image.Packages.Label=Getting image packages... +Getting.Image.Features.Label=Getting image features... +Get.Image.Provisioned.Label=Getting image provisioned AppX packages (Metro-style applications)... +Get.Image.Features.Label=Getting image Features on Demand (capabilities)... +Getting.Image.Drivers.Label=Getting image drivers... +Running.Pending.Tasks.Label=Running pending tasks. This may take some time... + +[Main.SaveAsset] +Saved.Location.Label=The asset has been saved to the location you specified +SaveSuccessful.Title=Save successful + +[Main.ShowChildDescs] +Adds.Additional.Item=Adds an additional image to a .wim file +Applies.Full.Flash.Item=Applies a Full Flash Utility or split FFU to a physical drive +Applies.Windows.Image.Item=Applies a Windows image or split WIM to a partition +Captures.Incremen.File.Item=Captures incremental file changes on the specific WIM file to {quot;}custom.wim{quot;} +Captures.Image.Drive.Item=Captures an image of a drive's partitions to a new FFU file +Captures.Image.New.Item=Captures an image of a drive to a new WIM file +Deletes.Resources.Item=Deletes all resources associated with a corrupted mounted image +Applies.Changes.Made.Item=Applies the changes made to the mounted image +Deletes.Volume.Image.Item=Deletes a volume image from a WIM file +Exports.Copy.Image.Item=Exports a copy of the image to another file +Displays.Images.Item=Displays information about the images contained in a WIM, FFU, VHD or VHDX file +Displays.List.Wimffu.Item=Displays a list of WIM, FFU, VHD or VHDX images that are currently mounted +Displays.WIM.Boot.Item=Displays WIMBoot configuration entries for the specified disk volume +Displays.List.Files.Item=Displays a list of files and folders in an image +Mounts.Image.Wimffu.Item=Mounts an image from a WIM, FFU, VHD or VHDX to make it available for servicing +Optimizes.Ffuimage.Item=Optimizes a FFU image to make it faster to deploy +Optimizes.Image.Faster.Item=Optimizes an image to make it faster to deploy +Remounts.Mounted.Image.Item=Remounts a mounted image that is inaccessible to make it available for servicing +Splits.Full.Flash.Item=Splits a Full Flash Utility (FFU) file into read-only split FFU (.sfu) files +Splits.Existing.WIM.Item=Splits an existing WIM file into read-only split WIM (.swm) files +Unmounts.Wimffuvhd.Item=Unmounts the WIM, FFU, VHD or VHDX file and either commits or discards its changes +Updates.WIM.Boot.Item=Updates the WIMBoot configuration entry +Applies.Siloed.Prov.Item=Applies siloed provisioning packages to the image +Displays.Message=Displays information about all packages in the image or in the installation or any package file you want to add +Installs.Cabmsu.Package.Item=Installs a .cab or .msu package in the image +Removes.Cabfile.Package.Item=Removes a .cab file package from the image +Displays.Installed.Item=Displays information about the installed features in an image or an online installation +Enables.Updates.Feature.Item=Enables or updates the specified feature in the image +Disables.Feature.Image.Item=Disables the specified feature in the image +Performs.Cleanup.Item=Performs cleanup or recovery operations on the image +Adds.Applicable.Item=Adds an applicable payload of a provisioning package to the image +Gets.Infomation.Prov.Item=Gets infomation of a provisioning package +Dehydrat.Files.Containe.Item=Dehydrates files contained in the custom data image to save space +Displays.App.Item=Displays information about app packages in an image +Addsone.App.Item=Adds one or more app packages to the image +Removes.Prov.App.Item=Removes provisioning for app packages from the image +Optimizes.Total.Size.Item=Optimizes the total size of provisioned app packages on the image +Addscustom.Data.File.Item=Adds a custom data file into the specified app package +Displays.Msppatches.Item=Displays information of MSP patches applicable to the offline image +Command42.Item=Displays information about installed MSP patches +Displays.Item=Displays information about all applied MSP patches for all applications installed on the image +Displays.Specific.Item=Displays information about a specific installed Windows Installer application +Command45.Item=Displays information about all Windows Installer applications in the image +Exports.Default.Item=Exports default application associations from a running OS to an XML file +Displays.List.Item=Displays the list of default application associations set in the image +Imports.Set.DefaultApp.Item=Imports a set of default application associations from an XML file to an image +Removes.Default.Item=Removes default application associations from the image +Displays.Intl.Item=Displays information about international settings and languages +Sets.Default.Uilanguage.Item=Sets the default UI language +Sets.Fallback.Default.Item=Sets the fallback default language for the system UI +Sets.System.Preferred.Item=Sets the {quot;}System Preferred{quot;} UI language +Sets.Language.Non.Item=Sets the language for non-Unicode programs and font settings in the image +Sets.Standards.Formats.Item=Sets the {quot;}standards and formats{quot;} language (user locale) in the image +Sets.Input.Locales.Item=Sets the input locales and keyboard layouts to use in the image +Sets.Default.System.Message=Sets the default system UI language, the language for non-Unicode programs, the user locale, and the keyboard layouts to the language in the image +Sets.Default.Time.Item=Sets the default time zone in the image +Sets.Default.Message=Sets the default language for the UI and non-Unicode programs, locales for the user and input, keyboard layouts and time zone values in the image +Specifies.Keyboard.Item=Specifies a keyboard driver for Japanese and Korean keyboards +Generates.Lang.Ini.Item=Generates a Lang.ini file, used by Setup to define the language packs inside the image and out +Defines.Default.Item=Defines the default language that will be used by Setup +Addscapability.Image.Item=Adds a capability to an image +Exports.Set.Caps.Item=Exports a set of capabilities into a new repository +Gets.Installed.Item=Gets information about the installed capabilities of an image or an active installation +Removes.Capability.Item=Removes a capability from the image +Displays.Edition.Image.Item=Displays the edition of the image +Displays.Editions.Image.Item=Displays the editions the image can be upgraded to +Changes.Image.Higher.Item=Changes an image to a higher edition +Enters.ProductKey.Item=Enters the product key for the current edition +Displays.Driver.Message=Displays information about the driver packages you specify or the installed drivers in the image or in the installation +Addsthird.Party.Driver.Item=Adds third-party driver packages to the image +Removes.ThirdParty.Item=Removes third-party drivers from the image +Exports.ThirdParty.Item=Exports all third-party driver packages from the image to a destination path +Imports.ThirdParty.Message=Imports all third-party drivers from a specified source to this image to provide the same hardware compatibility +Applies.Unattend.Item=Applies an Unattend.xml file to the image +Displays.List.Windows.Item=Displays a list of Windows PE settings in the WinPE image +Retrieves.Configured.Item=Retrieves the configured amount of the Windows PE system volume scratch space +Retrieves.Target.Path.Item=Retrieves the target path of the Windows PE image +Sets.Available.Item=Sets the available scratch space (in MB) +Sets.Location.Win.Item=Sets the location of the WinPE image on the disk (for hard disk boot scenarios) +Gets.Number.Days.Item=Gets the number of days an uninstall can be initiated after an upgrade +Reverts.PC.Item=Reverts a PC to a previous installation +Removes.Ability.Roll.Item=Removes the ability to roll back a PC to a previous installation +Sets.Number.Days.Item=Sets the number of days an uninstall can be initiated after an upgrade +Gets.State.Reserved.Item=Gets the current state of reserved storage +Sets.State.Reserved.Item=Sets the state of reserved storage +Adds.Microsoft.Item=Adds the Microsoft Edge Browser and WebView2 component to the image +Command91.Item=Adds the Microsoft Edge Browser to the image +Addsmicrosoft.Edge.Web.Item=Adds the Microsoft Edge WebView2 component to the image +Saves.Complete.Image.Message=Saves complete image information to the file you want. Depending on the settings you had specified, you may be asked some questions during the process +Creates.New.DISM.Item=Creates a new DISMTools project. The current project will be unloaded after creating it +Opens.Existing.DISM.Item=Opens an existing DISMTools project. The current project will be unloaded +Enters.Online.Install.Item=Enters online installation management mode +Saves.Changes.Project.Item=Saves the changes of this project +Saves.Project.Another.Item=Saves this project on another location +Closes.Project.Message=Closes the program. If a project is loaded, you will be asked whether or not you would like to save it +Opens.File.Explorer.Item=Opens the File Explorer to view the project files +Unloads.Project.Message=Unloads this project. If changes were made, you will be asked whether or not you would like to save it +Switches.Mounted.Image.Item=Switches the mounted image index +Launches.Project.Item=Launches the project section of the project properties dialog +Launches.Image.Section.Item=Launches the image section of the project properties dialog +ImageFormat.Item=Performs image format conversion from WIM to ESD and vice versa +Merges.Two.SWM.Item=Merges two or more SWM files into a single WIM file +Remounts.Image.Read.Item=Remounts the image with read-write permissions to allow making modifications to it +Opens.Command.Console.Item=Opens the Command Console +Lets.Manage.Item=Lets you manage unattended answer files for this project +Lets.Manage.Project.Item=Lets you manage project reports +Shows.Overview.Mounted.Item=Shows an overview of the mounted images +Configures.Settings.Item=Configures settings for the program +Opens.Help.Topics.Item=Opens the help topics for this program +Opens.Glossary.Don.Item=Opens the glossary, if you don't understand a concept +Shows.Command.Help.Item=Shows the Command Help, letting you use commands to perform the same actions +Shows.Item=Shows program information +Lets.Report.Feedback.Item=Lets you report feedback through a new GitHub issue (a GitHub account is needed) +Opens.Git.Hub.Message=Opens the GitHub repository containing the help documentation contents, to which you can contribute (a GitHub account is needed) + +[Main.ShowParentDesc] +View.Options.Related.Item=View options related to files, like creating or opening projects +View.Options.Project.Item=View options related to this project, like viewing its properties +View.Options.Image.Item=View options related to image management, deployment and/or servicing +View.Options.Additional.Item=View options related to additional tools, like the Command Console +View.Options.Help.Item=View options related to help topics, glossary, command help and product information + +[Main.Tooltips] +RefreshInfo.Label=Refresh information +Change.Network.Config.Label=Change network configuration +Other.Win.Administ.Label=Other Windows administrative tools +Change.Wallpaper.Label=Click here to change your wallpaper +NetBiosname.Label=NetBIOS name: {lbrace;}0{rbrace;} +Show.New.Fact.Label=Show a new fact + +[Main.UpdateChecker] +Couldn.Tdownload.Message=We couldn't download the update checker. Reason:{crlf;}{0} +CheckUpdates.Title=Check for updates + +[Main.UpdateProjProps] +Yes.Button=Yes +No.Button=No + +[Migration] +Wait.Message=Please wait while DISMTools migrates your old settings file to work on this version. This may take some time. +Wait.Label=Please wait... + +[Migration.Background] +Loading.Old.Settings.Message=Loading old settings file... +Saving.New.Settings.Message=Saving new settings file... +Done.Message=Done + +[MountDirCreation] +Create.Label=Do you want to create the mount directory? +Yes.Button=Yes +No.Button=No + +[MountedImgMgr] +Image.Manager.Item=Mounted image manager +Overview.Images.Message=Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project: +ImageFile.Column=Image file +Index.Column=Index +MountDirectory.Column=Mount directory +Status.Column=Status +Read.Write.Column=Read/write permissions? +UnmountImage.Button=Unmount image +ReloadServicing.Button=Reload servicing +Enable.Write.Button=Enable write permissions +Open.Mount.Dir.Button=Open mount directory +Remove.VolumeImages.Button=Remove volume images... +LoadProject.Button=Load into project +Repair.Component.Store.Item=Repair component store +Yes.Button=Yes + +[NewProj] +Create.Project.Label=Create a new project +Image.Task.Header.Label={0} +Options.Required.Label=Please specify the options to create a new project: +Name.Label=Name*: +Location.Label=Location*: +Fields.End.Required.Label=The fields that end in * are required +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel +Project.Group=Project +Folder.Store.Description=Please select a folder to store this project: + +[NewProj.Validation] +Dir.Exist.Create.Message=The directory: {crlf;}{quot;}{0}{quot;}{crlf;}does not exist. Do you want to create it? +Create.Project.Dir.Message=We could not create the project directory for you due to: {crlf;}{0}; {1} + +[NewTestingEnv] +Status.Message=Status +Creating.Project.Message=Creating project. This can take some time. Please wait... +ProjectCreated.Message=The project has been created +Create.Environment.Label=Create a testing environment +WizardHelp.Message=This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments.{crlf;}{crlf;} +Re.Ready.Create.Label=Once you're ready, click the Create button. +Env.Architecture.Label=Environment architecture: +Architecture.Label=Architecture: +Target.Project.Label=Target project location: +Other.Things.Project.Message=You can do other things while the project is being created. Come back here anytime for an updated status. +Browse.Button=Browse... +Create.Button=Create +Cancel.Button=Cancel +Progress.Group=Progress +Download.Windows.ADK.Link=Download the Windows ADK +Https.Learn.Message=https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install +ProjectTemplate.Message=The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file. + +[NewTestingEnv.Background] +Project.Created.Done.Message=The project has been created successfully +Failed.Create.Message=Failed to create the project + +[NewTestingEnv.Links] +Https.Learn.Message=https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install + +[Unattend.Messages] +Requires.Netruntime.Message=This wizard requires the .NET 10 Runtime to be installed to use the built-in version of the generator program. You can download it from:{crlf;}{crlf;}dotnet.microsoft.com{crlf;}{crlf;}If you don't want to download .NET, you can download the self-contained version of the generator program. Downloading it will take some time, depending on your network connection speed.{crlf;}{crlf;}Do you want to use the self-contained version? +Netruntime.Missing.Title=.NET Runtime missing +GeneratorExit.Message=The unattended answer file generator could not generate the file. Here is the error code if you are interested:{crlf;}{crlf;}Error code: {0} +Generator.Message=The unattended answer file generator could not generate the file. Here is the error code if you are interested:{crlf;}{crlf;}Error: {0} +Reuse.Settings.Ve.Message=Do you want to reuse the settings you've used in this answer file for the new one? +Load.Project.Order.Label=You need to load a project in order to apply this file. +PrepareFailed.Label=We couldn't prepare UnattendGen Self-Contained Setup. Reason:{crlf;}{0} +OpenFile.Label=Could not open file: {0} +SaveFile.Label=Could not save file: {0} +ProductKey.Copied.Done.Label=The product key was copied successfully to your clipboard. +Copy.Key.Clipboard.Label=We could not copy the key to your clipboard. Error message: {0} +Component.Already.Message=This component is already reserved for proper OS installation. If you overwrite this component with your data, OS installation may not give you expected results. +ComponentUse.Title=Component in use +Cross.Platform.Label=Cross-platform versions of UnattendGen are now copied to {0} +ImportOverwrite.Message=Importing this script will overwrite any existing data in the current post-installation script. It is best that you create a new entry before proceeding. Do you want to continue? +ProductKey.None.Label=There is no product key for the {quot;}{0}{quot;} edition. + +[NewUnattend.Validation] +Gen.Error.Title=UnattendGen error + +[Unattend.Mode] +ExpressMode.Title=Express mode +WizardHelp.Description=If you haven't created unattended answer files before, use this wizard to create one +EditorMode.Title=Editor mode +CreateUnattended.Description=Create your unattended answer files from scratch and save them anywhere + +[Unattend.Progress] +Preparing.Generate.Label=Preparing to generate file... +Saving.User.Settings.Label=Saving user settings... +GenerateAnswerFile.Label=Generating unattended answer file... +Deleting.Temporary.Label=Deleting temporary files... +Generation.Completed.Label=Generation has completed + +[UnattendWizard.Review] +Configs.UnattendAnswer.Label=Current configurations for the unattended answer file: + +[Unattend.Tooltips] +Uses.Name.Computer.Message=Uses the name of your computer as the computer name of the unattended answer file.{crlf;}Only use this if the system you want to target is this one +Attempt.Grab.Message=Click here to attempt to grab the edition of the currently loaded image. This will help you use a suitable product key for said Windows image. +AutoChoose.Message=Choose this option to automatically configure the target location to one of the countries in the European Economic Area (EEA). This will let you{crlf;}configure settings in the target system that you would not be able to when using a region outside the EEA. After Setup is complete, you can reconfigure{crlf;}the region to your current location. +Check.Field.Customize.Label=Check this field to customize this user's display name +RearrangeScripts.Label=Rearrange post-installation scripts... + +[Unattend.Validation] +Arch.Try.Label=Please select an architecture and try again +ValidationError.Title=Validation error +Computer.Name.Error.Title=Computer name error +Script.Has.None.Label=No script has been passed for the computer name +Type.ProductKey.Label=Please type a product key and try again +ProductKeyError.Title=Product Key error +Type.Product.Label=Please type all of the product key and try again +ProductKey.Entered.Ill.Label=The product key entered:{crlf;}{crlf;}{0}{crlf;}{crlf;}is ill-formed. Please type it again +Problem.One.Message=There is a problem with one or more of the users specified. Here are the reasons why:{crlf;}{crlf;}{0}{crlf;}{crlf;}Try again after fixing the aforementioned problems +User.Accounts.Error.Title=User Accounts error +Least.One.Account.Message=At least one account must be part of the Administrators user group. Please configure the user groups accordingly and try again +Problem.Wireless.Message=There is a problem with the specified wireless settings. Make sure that you have specified a network name and try again +WirelessError.Title=Wireless Networks error + +[OS.No] +Troll.Back.Older.Label=You can't roll back to an older version +Old.Versions.None.Message=No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything. +Ok.Button=OK + +[OfflineDriveList] +Disk.Choose.Label=Choose a disk +Begin.Install.Message=To begin performing offline installation management, please choose a disk shown in the list below. This list will be updated automatically every minute, or when you click the Refresh button. +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Refresh.Button=Refresh +Ok.Button=OK +Cancel.Button=Cancel + +[OneDriveExclusion] +Exclude.User.Label=Exclude user OneDrive folders +Tool.Help.Exclude.Message=This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude.{crlf;}{crlf;}NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool. +Path.Exclude.Label=Path to exclude OneDrive folders from: +Re.Ready.Label=When you're ready, click Exclude. +Browse.Button=Browse... +Exclude.Button=Exclude +Cancel.Button=Cancel +UserFolderPath.Description=Choose a path that contains user folders: + +[OneDriveExclusion.Folders] +Excluding.User.Label=Excluding user OneDrive folders... + +[OneDriveExclusion.Valid] +User.Folders.Label=User OneDrive folders have been excluded and will be added to the configuration list. + +[Options] +Title.Label=Options +Program.Label=Program +Personalization.Label=Personalization +Logs.Label=Logs +ImageOperations.Label=Image operations +ScratchDirectory.Label=Scratch directory +ProgramOutput.Label=Program output +BgProcesses.Label=Background processes +FileAssociations.Label=File associations +StartupOptions.Label=Startup options +ShutdownOptions.Label=Shutdown options +Dismexecutable.Path.Label=DISM executable path: +Version.Label=Version: +SaveSettings.Label=Save settings on: +ColorMode.Label=Color mode: +Language.Label=Language: +Settings.Log.Required.Label=Please specify the settings for the log window: +Log.Window.Font.Label=Log window font: +Preview.Label=Preview: +Operation.Log.File.Label=Operation log file: +Image.Ops.Message=When performing image operations in the command line, specify the {quot;}/LogPath{quot;} argument to save the image operation log to the target log file. +Log.File.Level.Label=Log file level: +QuietOperations.Message=When quietly performing operations, the program will hide information and progress output. Error messages will still be shown.{crlf;}This option will not be used when getting information of, for example, packages or features.{crlf;}Also, when performing image servicing, your computer may restart automatically. +Checked.Computer.Message=When this option is checked, your computer will not restart automatically; even when quietly performing operations +Scratch.Dir.Required.Label=Please specify the scratch directory to be used for DISM operations: +ScratchDirectory.Input.Label=Scratch directory: +Space.Left.Selected.Label=Space left on selected scratch directory: +LogView.Label=Log view: +ExampleReport.Label=Example report: +Reports.Allow.Shown.Label=Some reports do not allow being shown as a table. +Notify.Label=When should the program notify you about background processes being started? +Uses.Bg.Procs.Message=The program uses background processes to gather complete image information, like modification dates, installed packages, features present; and more +Manage.File.Assoc.Label=Manage file associations for DISMTools components: +Behavior.OnStartup.Label=Set options you would like to perform when the program starts up: +Scratch.Dir.Message=The program will use the scratch directory provided by the project if one is loaded. If you are in the online or offline installation management modes, the program will use its scratch directory +Secondary.Progress.Label=Secondary progress panel style: +Settings.Aren.Label=These settings aren't applicable to non-portable installations +Font.Readable.Log.Message=This font may not be readable on log windows. While you can still use it, we recommend monospaced fonts for increased readability. +SettingsConsider.Label=Choose the settings the program should consider when saving image information: +Browse.Button=Browse... +View.DISM.Button=View DISM component versions +Set.File.Assoc.Button=Set file associations +AdvancedSettings.Button=Advanced settings +Cancel.Button=Cancel +Ok.Button=OK +ResetPreferences.Label=Reset preferences +Quietly.Image.Ops.CheckBox=Quietly perform image operations +Skip.System.Restart.CheckBox=Skip system restart +Scratch.Dir.CheckBox=Use a scratch directory +Show.Command.Output.CheckBox=Show command output in English +Notify.Me.CheckBox=Notify me when background processes have started +Show.Log.View.CheckBox=Show log view on the progress panel by default +Uppercase.Menus.CheckBox=Use uppercase menus +Set.Custom.File.CheckBox=Set custom file icons for DISMTools projects +Remount.Mounted.CheckBox=Remount mounted images in need of a servicing session reload +CheckUpdates.CheckBox=Check for updates +Always.Save.CheckBox=Always save complete information for the following elements: +Installed.Packages.CheckBox=Installed packages +Features.CheckBox=Features +Installed.AppX.CheckBox=Installed AppX packages +Capabilities.CheckBox=Capabilities +InstalledDrivers.CheckBox=Installed drivers +Automatically.Clean.CheckBox=Automatically clean up mount points (launches a separate process) +Dismexecutable.Title=Specify the DISM executable to use +LogCustomization.Label=Log customization +Behavior.OnClose.Label=Set options you would like to perform when the program closes: +Saving.Image.Item=Saving image information +Enable.Disable.Message=The program will enable or disable certain features according to what the DISM version supports. How is it going to affect my usage of this program, and which features will be disabled accordingly? +Going.Affect.My=How is it going to affect my usage of this program, and which features will be disabled accordingly? +Learn.Background.Link=Learn more about background processes +Location.Log.File.Title=Specify the location of the log file +Modern.RadioButton=Modern +Classic.RadioButton=Classic +Dyna.Log.Logging.Message=DynaLog logging provides a method for saving diagnostic logs that can be used to help fix program issues, in case you encounter them. You can disable the logger using the toggle below, but it's not recommended.{crlf;}{crlf;} +Disable.Logging.Only.Message=Disable logging only if it causes a performance overhead on your computer. Clicking the toggle will apply this setting automatically. +Default.Op.Logs.Message=By default, operation logs are opened with Notepad in the event of an operation error. However, if you want to open them with a different program, specify it below: +Dyna.Log.Logging.Label=DynaLog logging control +Editor.Open.Log.Label=Editor to open log files with: +SystemEditor.Label=System Editor +Editor.Title=Specify the editor to use +Show.Me.Logs.Link=Show me where these logs are stored +Disable.Dyna.Log.CheckBox=Disable DynaLog logging +SettingsFile.Item=Settings file +Registry.Item=Registry +System.Setting.Item=Use system setting +LightMode.Item=Light mode +DarkMode.Item=Dark mode +List.Item=list +Table.Item=table +Every.Time.Project.Item=Every time a project has been loaded successfully +Freqs1.Item=Once +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +LogPreview.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}{crlf;}------------------------------------------- | --------{crlf;}Feature Name | State{crlf;}------------------------------------------- | --------{crlf;}TFTP | Disabled{crlf;}LegacyComponents | Enabled{crlf;}DirectPlay | Enabled{crlf;}SimpleTCP | Disabled{crlf;}Windows-Identity-Foundation | Disabled{crlf;}NetFx3 | Enabled +Selected.Search.Message=The selected search engine, {1}{2}{1}, exceeds the current AI tolerance setting, {1}{3}{1}. If you continue with this search engine, AI tolerance will be increased after applying the settings.{0}{0}If you decide not to continue with this search engine, DISMTools will use the first search engine that stays within tolerance boundaries.{0}{0}Do you want to continue with this search engine? +Aitolerance.Exceeded.Title=AI Tolerance Exceeded +Auto.Create.Logs.CheckBox=Automatically create logs for each operation performed +Project.Scratch.RadioButton=Use the project or program scratch directory +Custom.Scratch.RadioButton=Use the specified scratch directory +ScratchDir.Description=Specify the scratch directory the program should use: + +[Options.Actions] +DISM.Components.Message=The DISM components directory could not be found. If you have all components in the same folder of the DISM executable, please create a {quot;}dism{quot;} folder and try again. + +[Options.AutoReloadService] +DISM.Tools.Automatic.Label=DISMTools Automatic Image Reload service +AutoReload.Description=This service automatically reloads the servicing sessions of all mounted images on this computer. Feel free to disable this service if you don't need it. +ServiceInstalled.Label=The service could not be installed. + +[Options.AIRServiceInfo] +Yes.Button=Yes +No.Button=No + +[Options.GetRootSpace] +Scratch.Dir.Required.Label=Please specify a scratch directory. +EnoughSpace.Label=You have enough space on the selected scratch directory +GB.Item={0} GB +Enough.Message=You don't have enough space on the selected scratch directory to perform image operations. Try freeing some space from the drive +EnoughSpace.SomeOps.Item=You may not have enough space on the selected scratch directory for some operations. +EnoughSpace.Directory.Item=You have enough space on the selected scratch directory +Free.Unavailable.Item=Could not get available free space. Continue at your own risk +Have.Enough.Item=You have enough space on the selected scratch directory + +[Options.LogLevel] +Level1.Label=Errors (Log level 1) +Errors.Description.Label=The log file should only display errors after performing an image operation. +Level2.Item=Errors and warnings (Log level 2) +Level2.Description.Item=The log file should display errors and warnings after performing an image operation. +Level2Messages.Item=Errors, warnings and information messages (Log level 3) +Level3.Description.Message=The log file should display errors, warnings and information messages after performing an image operation. +Level2Debug.Item=Errors, warnings, information and debug messages (Log level 4) +Level4.Description.Message=The log file should display errors, warnings, information and debug messages after performing an image operation. + +[Options.QuickHelp] +DISM.Tools.Enable.Message=DISMTools will enable or disable certain features if they are not compatible with the specified DISM executable, the current Windows image, or both.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}For example, if DISMTools detects a Windows 7 image, a Windows 7 version of DISM, or both, it will disable AppX package and capability servicing because they are not compatible with that platform and tooling.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}DISMTools can also disable features based on other image parameters, such as the edition. This usually happens with Windows PE images. +AppX.Package.Display.Message=AppX package display names are the part of package family names that does not contain package specific details, such as architecture, version, or publisher hash.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}AppX package {lbrace;}1{rbrace;}friendly display names{lbrace;}1{rbrace;} are the names you see in the Start menu. They are read from application identity information in the manifest or from embedded strings in resources.pri.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}If DISMTools cannot get the friendly display name, it will show the application display name. +Configure.Search.Message=When you configure search engine settings, you can choose how much tolerance DISMTools should have for artificial intelligence, AI, features in a search engine.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Turn off as many AI features as possible{lbrace;}1{rbrace;} lets you pick from search engines where AI features are disabled or not implemented by default.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Let me control the AI features in my search engine{lbrace;}1{rbrace;} adds search engines that have AI features enabled by default, but can be controlled through URL parameters or engine settings.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Turn on as many AI features as possible{lbrace;}1{rbrace;} lets you pick from all available search engines, including AI based engines or engines that promote dedicated AI modes.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Usually, the second option is the most balanced choice. For a more privacy focused experience, turn these features off. +Bg.Procs.Allow.Message=Background processes allow DISMTools to collect information about the Windows image you are working with and enable most tasks. Examples include operating system packages and features in a Windows image.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}These processes are used not only when getting image file information, but also when managing online or offline installations. + +[OrphanedMount] +Image.Servicing.Label=This image needs a servicing session reload +Project.Has.Orphans.Message=The project that has been loaded contains an orphaned image (an image which needs to be remounted){crlf;}The image will be remounted when you click {quot;}OK{quot;}. This should not affect your modifications to the image, and should also not take a long time.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +Ok.Button=OK +Cancel.Button=Cancel + +[PECustomizer.Tooltips] +DefaultPolicies.Message=Default policies allow you to make the settings you specify here permanent.{crlf;}This also includes any wallpapers you specify here. + +[PEHelper.Main] +WhatWant.Label=What do you want to do? +StartServer.Label=Start a PXE Helper Server for Network Installation +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartServer.Network.Link=Start a PXE Helper Server for Network Installation +Prepare.System.Image.Link=Prepare System for Image Capture +Back.Button=Back +Explore.Contents.Disc.Link=Explore contents of this disc +StartServer.Fog.Link=Start PXE Helper Server for FOG +StartServer.Wds.Link=Start PXE Helper Server for Windows Deployment Services +Copy.Boot.Image.Link=Copy boot image to WDS server... +Exit.Button=Exit + +[PEHelper.Restart] +Warning.Message=This will restart your computer. Make sure you have configured your computer to boot via installation media. Do you want to restart? + +[PEHelper.Process] +ExitCode.Message=Process exited with code 0x{0}:{crlf;}{crlf;}{1} + +[PEHelper.PXE] +ChangePort.Tooltip=Hold down SHIFT to change the port used by this PXE Helper Server + +[ISOFiles.PECustomizer] +PoliciesSaved.Message=Policies could not be saved. +Wallpaper.Exist.Message=The specified wallpaper does not exist. +Wallpaper.Supported.Message=The specified wallpaper is not supported. Only JPG files are supported. +WallpaperOverride.Message=By continuing with this wallpaper you will be overriding a background you may have already stored in your user data folder. That background will be reused the next time you launch DISMTools. + +[Panels.ImageOps.WimToEsd] +Files.Filter=files|*. + +[Panels.ImageOps.ExportImage] +Esdfiles.Filter=ESD files|*.esd + +[Panels.ImageOps.MountImage] +WIM.Files.Filter=WIM files|*.wim + +[Panels.Packages.Add] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation + +[Panels.Packages.Remove] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation +CurrentLimit.SecondMessage=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.SecondDetail=Current program limitation + +[Panels.Unattend.Scripts] +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd +Power.Shell.Filter=PowerShell Scripts|*.ps1 +AllFiles.Filter=All Files|*.* +AllFiles.SecondFilter=All Files|*.* + +[ConfigLists.AddEntry] +Start.Backslash.Message=The entry can't start with a backslash if it contains wildcard characters + +[Options.Messages] +Dismexecutable.Path.Message=The DISM executable path was not specified. Please specify one and try again +DISM.Executable.Message=The DISM executable does not exist in the file system. Please verify the file still exists and try again +Log.File.Label=The log file was not specified. Please specify one and try again +Tried.Create.Message=The program tried to create the specified log file, but has failed. Please try again +ScratchDir.Message=The scratch directory was not specified. Please specify one and try again +ServiceEnabled.Label=The service could not be enabled. +ServiceDisabled.Label=The service could not be disabled. +ServiceRemoved.Label=The service could not be removed. +Tried.Scratch.Message=The program tried to create the specified scratch directory, but has failed. Please try again + +[ISOFiles.Creator.Messages] +Windows.Message=The Windows ADK was not found on your system. Do you want DISMTools to download and install the latest one for you? Note that you'll need around 4 GB on your system. + +[ISOFiles.WDSImageGroup] +Image.Label=The specified WDS image group could not be created. +Get.Image.Groups.Label=Could not get image groups. + +[PECustomizer.Messages] +Default.Policies.Saved.Label=Default policies have been saved. +Policies.SaveFailed.Message=Default policies could not be saved. + +[ISOFiles.PXEServerPort] +Already.Label=The specified port, {0}, is already in use. +Port.Label=The specified port, {0}, is not in use. + +[ImageOps.Append.Messages] +Grab.Last.Image.Label=Could not grab last image name. Error information:{crlf;}{crlf;}{0} + +[ImageOps.Capture.Messages] +Provide.Source.Dir.Label=Please provide a source directory or drive to capture. +SourcePrepWarning.Message=The source directory or drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? + +[ImageOps.Export.Messages] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Mount.Messages] +Copied.Image.Message=The copied installation image will be selected automatically for you, if found... +Extraction.Succeeded.Label=Extraction succeeded +Windows.Message=The Windows images in the specified ISO file were not copied to your local disk. Copy any WIM or ESD files from the sources folder of your ISO file. +Extraction.Succeeded.Message=Extraction succeeded + +[ImageOps.Optimize.Messages] +Mount.Dir.Required.Message=Please specify the mount directory of the image you want to optimize and try again. Also, make sure that that path exists. + +[Package.Parent] +Installed.Package.Label=Installed package names +Installed.Package.Names=Names of installed packages in the mounted image: +Name.ParentPackage.Label=Name of parent package: +Get.Package.Names.Label=Getting package names. Please wait... +Ok.Button=OK +Cancel.Button=Cancel + +[PkgNameLookup.Validation] +Package.Required.Message=Please specify a package name, and try again. +Installed.Package.Title=Installed package names +Package.Seem.Message=The specified package name does not seem to be in the image. Please specify an available entry, and try again + +[Wait] +NotAvailable.Label=Not available +ProjectValue.Label=Not available +Wait.Label=Please wait... + +[MountedImagePicker] +Ok.Button=OK +Cancel.Button=Cancel + +[MountedImagePicker.Pick] +Title.Label=Pick image +Image.List.Label=Pick an image from the list below: +ImageFile.Column=Image file +Index.Column=Index +MountDirectory.Column=Mount directory + +[PrgAbout] +AboutProgram.Label=About this program +DISM.Tools.Version.Label=DISMTools - version {0}{1} +DISM.Tools.Lets.Label=DISMTools lets you deploy, manage, and service Windows images with ease, thanks to a GUI +ResourcesUsed.Label=These resources and components were used in the creation of this program: +Resources.Label=Resources +Fluency.Label=Fluency +Sqlserver.Icon.Color.Label=SQL Server icon (Color) +Utilities.Label=Utilities +Zip.Label=7-Zip +Help.Documentation.Label=Help documentation +Command.Help.Source.Label=Command Help source +Scintilla.Netnu.Get.Label=Scintilla.NET (NuGet package) +Pre.Label=pre +BuiltMsbuild.Label=Built on {0} by msbuild +Managed.Dismnu.Get.Label=ManagedDism (NuGet package) +BrandingAssets.Label=Branding assets +Windows.Label=Windows Home Server 2011 +Credits.Link=CREDITS +Licenses.Link=LICENSES +Whatsnew.Link=WHAT'S NEW +Icons.Link=Icons8 +VisitWebsite.Link=Visit website +Microsoft.Link=Microsoft +Ok.Button=OK +CheckUpdates.Label=Check for updates + +[PrgAbout.Resources] +DISM.Tools.Free.Message=- DISMTools{crlf;}{crlf;}This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or at your option any later version.{crlf;}{crlf;}This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. {crlf;}{crlf;}You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.{crlf;}{crlf;}- Scintilla.NET{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2017, Jacob Slusser, https://github.com/jacobslusser,{crlf;}Copyright (c) 2020-2022 VPKSoft{crlf;}Copyright (c) 2023 desjarlais{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- ManagedDism{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2016{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- DarkUI{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2017 Robin{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- 7-Zip{crlf;}{crlf;} 7-Zip{crlf;} ~~~~~{crlf;} License for use and distribution{crlf;} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{crlf;}{crlf;} 7-Zip Copyright (C) 1999-2025 Igor Pavlov.{crlf;}{crlf;} The licenses for files are:{crlf;}{crlf;} - 7z.dll:{crlf;} - The {quot;}GNU LGPL{quot;} as main license for most of the code{crlf;} - The {quot;}GNU LGPL{quot;} with {quot;}unRAR license restriction{quot;} for some code{crlf;} - The {quot;}BSD 3-clause License{quot;} for some code{crlf;} - The {quot;}BSD 2-clause License{quot;} for some code{crlf;} - All other files: the {quot;}GNU LGPL{quot;}.{crlf;}{crlf;} Redistributions in binary form must reproduce related license information from this file.{crlf;}{crlf;} Note:{crlf;} You can use 7-Zip on any computer, including a computer in a commercial{crlf;} organization. You don't need to register or pay for 7-Zip.{crlf;}{crlf;}{crlf;}GNU LGPL information{crlf;}--------------------{crlf;}{crlf;} This library is free software; you can redistribute it and/or{crlf;} modify it under the terms of the GNU Lesser General Public{crlf;} License as published by the Free Software Foundation; either{crlf;} version 2.1 of the License, or (at your option) any later version.{crlf;}{crlf;} This library is distributed in the hope that it will be useful,{crlf;} but WITHOUT ANY WARRANTY; without even the implied warranty of{crlf;} MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU{crlf;} Lesser General Public License for more details.{crlf;}{crlf;} You can receive a copy of the GNU Lesser General Public License from{crlf;} http://www.gnu.org/{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 3-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 3-clause License{quot;} is used for the following code in 7z.dll{crlf;} 1) LZFSE data decompression.{crlf;} That code was derived from the code in the {quot;}LZFSE compression library{quot;} developed by Apple Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;} 2) ZSTD data decompression.{crlf;} that code was developed using original zstd decoder code as reference code.{crlf;} The original zstd decoder code was developed by Facebook Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;}{crlf;} Copyright (c) 2015-2016, Apple Inc. All rights reserved.{crlf;} Copyright (c) Facebook, Inc. All rights reserved.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 3-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}3. Neither the name of the copyright holder nor the names of its contributors may{crlf;} be used to endorse or promote products derived from this software without{crlf;} specific prior written permission.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 2-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 2-clause License{quot;} is used for the XXH64 code in 7-Zip.{crlf;}{crlf;} XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.{crlf;}{crlf;} Copyright (c) 2012-2021 Yann Collet.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 2-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}unRAR license restriction{crlf;}-------------------------{crlf;}{crlf;}The decompression engine for RAR archives was developed using source{crlf;}code of unRAR program.{crlf;}All copyrights to original unRAR code are owned by Alexander Roshal.{crlf;}{crlf;}The license for original unRAR code has the following restriction:{crlf;}{crlf;} The unRAR sources cannot be used to re-create the RAR compression algorithm,{crlf;} which is proprietary. Distribution of modified unRAR sources in separate form{crlf;} or as a part of other software is permitted, provided that it is clearly{crlf;} stated in the documentation and source comments that the code may{crlf;} not be used to develop a RAR (WinRAR) compatible archiver.{crlf;}{crlf;}--{crlf;}{crlf;}{crlf;}- UnpEax{crlf;}{crlf;}This software uses a modified version of UnpEax, now designed to extract only the AppX manifest file and Store logo assets, and converted to .NET Framework 4.8 and C# 5 to make it compatible with Visual Studio 2012 and newer.{crlf;}{crlf;}Original version: (c) 2020. LioneL Christopher Chetty (https://github.com/dalion619/UnpEax){crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2020 LioneL Christopher Chetty{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Unattended answer file generator{crlf;}{crlf;}The unattended answer file creation wizard is based on the technology of Christoph Schneegans' answer file generator website, with some modifications made to some files of its core library.{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2024 Christoph Schneegans{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Markdig{crlf;}{crlf;}Copyright (c) 2018-2019, Alexandre Mutel{crlf;}All rights reserved.{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}- Compilation scripts for the PE Helper{crlf;}{crlf;}The compilation and pre-processor scripts for the Preinstallation Environment (PE) Helper are modified copies of such scripts from the Windows Utility (https://github.com/ChrisTitusTech/winutil). Original license:{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2022 CT Tech Group LLC{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Windows API Code Pack{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2009 - 2010 Microsoft Corporation, then modifications by Jacob Slusser 2014, Peter William Wagner 2017 - 2024{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- INI File Parser{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2008 Ricardo Amores Hernández{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Active Directory Object Picker{crlf;}{crlf;}Microsoft Public License (MS-PL){crlf;}{crlf;}The initial project was originally created by Armand du Plessis in 2004 and now is extended and maintained by Tulpep.{crlf;}{crlf;}This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.{crlf;}{crlf;}1. Definitions{crlf;}The terms {quot;}reproduce,{quot;} {quot;}reproduction,{quot;} {quot;}derivative works,{quot;} and {quot;}distribution{quot;} have the same meaning here as under U.S. copyright law.{crlf;}A {quot;}contribution{quot;} is the original software, or any additions or changes to the software.{crlf;}A {quot;}contributor{quot;} is any person that distributes its contribution under this license.{crlf;}{quot;}Licensed patents{quot;} are a contributor's patent claims that read directly on its contribution.{crlf;}{crlf;}2. Grant of Rights{crlf;}(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.{crlf;}(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.{crlf;}{crlf;}3. Conditions and Limitations{crlf;}(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.{crlf;}(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.{crlf;}(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.{crlf;}(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.{crlf;}(E) The software is licensed {quot;}as-is.{quot;} You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. +PreviewChanges.Message=Overall changes:{crlf;}{crlf;}-- Bugfixes in preview releases{crlf;}{crlf;}- Fixed an issue where removed features would appear in the wrong place{crlf;}- Fixed a minor UI issue where the proper user principal name (UPN) would not be shown when selecting a user in the ADDS domain join wizard{crlf;}- Fixed a minor UI issue where the NT logon path of a domain user would not be shown when launching the ADDS domain join wizard for the first time{crlf;}- Fixed some HiDPI issues{crlf;}- Fixed an issue where, when managing the active installation, the version's revision number would sometimes not coincide with the actual revision number{crlf;}- Fixed an issue where information about a Windows image would be cleared after adding or removing packages{crlf;}- Fixed an issue where the program would throw an exception if it couldn't create the logs directory (#344, thanks @Low351){crlf;}- Fixed an issue where GraphoView would not display information about a selected Windows image if the WDS group it belongs to only has 1 image{crlf;}- Fixed an issue where capture compression type options were not being used when performing FFU captures{crlf;}- Fixed an issue where the program would throw an exception when performing multiple driver exports by class name{crlf;}- Fixed an exception (#350, thanks @TackleBarry80){crlf;}- Registry hives that were unloaded externally no longer cause errors when unloading them from the image registry control panel{crlf;}- Non-PowerShell-based endpoints no longer throw CORS issues when calling WDS Helper Server APIs{crlf;}- Fixed an issue where App Installer download errors would not appear in the foreground{crlf;}- Fixed an issue where tutorial videos would not be playable{crlf;}- The WDS Helper client message for downloading unattended answer files no longer shows at all times{crlf;}- Fixed an issue where the program would throw an exception when saving Windows PE configuration of an offline Windows PE installation{crlf;}- Fixed an issue where the full date string was not displaying correctly when accessing image properties with Windows representations of dates turned off{crlf;}- When adding a boot image to the WDS server, the service start is now requested only when it is not running{crlf;}- Fixed an exception that would happen when adding certain AppX packages (#365, #366, thanks @charlezmmonroe-byte){crlf;}{crlf;}-- New features{crlf;}{crlf;}- The Sysprep Preparation Tool has seen support for `CopyProfile` and can now remove AppX packages from the reference system{crlf;}- Guards have been added to prevent running the PE Helper on a PXE environment, and to warn when running the PXE Helpers on a non-PXE environment{crlf;}- The autorun menu now has options to browse disc contents and copy the boot image to a WDS server{crlf;}- The DISMTools Preinstallation Environment can now be configured via policies{crlf;}- You can now view images and groups in a WDS server graphically{crlf;}- When launching the Driver Installation Module, the Preinstallation Environment can now tell you the hardware IDs of unknown devices{crlf;}- HotInstall can now export SCSI adapters to install them in the DTPE image{crlf;}- If a non-sysprepped volume is selected in the image capture script, it will now warn you{crlf;}- A new task has been added to copy installation images to a Windows Deployment Services (WDS) server{crlf;}- From the Autorun application you can now specify the WDS image group to upload the image to{crlf;}- The Autorun application and HotInstall have seen HiDPI improvements{crlf;}- Partition table overrides can now be used when deploying images with the WDS Helper{crlf;}- PXE Helper Servers can now be started using a different port by holding down SHIFT and performing an action in the following places:{crlf;} - From the Autorun application{crlf;} - From the Tools > Start PXE Helper Server for... menu in the main program{crlf;}- The architecture for the WDS boot image is now picked graphically{crlf;}- The default set of DISMTools Preinstallation Environment backgrounds has been overhauled{crlf;}- The WDS Helper Client now detects the assigned volume letter for the image share more reliably{crlf;}- ISO file creation results are now displayed in a notification{crlf;}- You can now configure the keyboard layout in the Preinstallation Environment graphically{crlf;}- If the Sysprep Preparation Tool was invoked before capturing the image, temporary files and boot entries are now removed if the capture succeeds. The resulting Windows image will still not contain any of those items{crlf;}- The version reporter watermark in the DISMTools Preinstallation Environment can now detect when the environment has booted via a network{crlf;}- The PE Helper can now include your target system's essential drivers (storage controllers and network adapters) in the DISMTools Preinstallation Environment{crlf;}- The ISO creation wizard will let you specify a save location if you clicked OK without having specified one{crlf;}- You can now specify scripts written in VBScript and JScript{crlf;}- The {quot;}Enable Batch script file locks{quot;} starter script has been introduced{crlf;}- The {quot;}Remove MAX_PATH length limit{quot;} starter script has been introduced{crlf;}- The {quot;}Show and Hide System Desktop icons{quot;} starter script has been introduced{crlf;}- The {quot;}Set File Explorer Launch Folder{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Windows Admin Center/Azure Arc banner{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Shutdown Event Tracker{quot;} starter script has been introduced{crlf;}- The {quot;}Refresh Windows Explorer{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Start Menu Appearance{quot;} starter script has been introduced{crlf;}- The {quot;}Disable warnings for unsigned RDP files{quot;} starter script has been introduced{crlf;}- The {quot;}Configure PowerShell execution policy{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Power Plan Values{quot;} starter script has been introduced{crlf;}- The {quot;}Invoke Windows Utility Configuration{quot;} starter script has been updated{crlf;}- The {quot;}Restore classic context menu in Windows 11{quot;} starter script has been introduced{crlf;}- The Starter Script Editor has seen several improvements:{crlf;} - The Starter Script Editor has received dark mode support{crlf;} - The Starter Script Editor now detects read-only starter scripts and removes such attribute when saving them{crlf;} - Spacing in script code can now be normalized{crlf;}- Organizational units and users in OUs are now sorted alphabetically in the ADDS domain join wizard{crlf;}- The ADDS domain join wizard will now let you continue if you had selected an account that does not require a password{crlf;}- A task has been added to copy a pre-configured answer file to an image so that it boots to Audit mode automatically{crlf;}- The ADDS domain join wizard has seen a couple of improvements:{crlf;} - The wizard will no longer let you continue when you specify a domain account that does not exist{crlf;} - You can now test domain name resolution by invoking nslookup{crlf;} - You can now pick account objects from anywhere in your domain{crlf;}- When applying answer files you can now choose whether to copy them to the target image's Sysprep folder{crlf;}- You can now enlarge the preview area for starter script code{crlf;}- You can now configure account display names independently from account names{crlf;}- Post-installation scripts can now be reordered{crlf;}- Batch scripts with NT extensions are no longer supported{crlf;}- Service information can now be saved to a report, whether you manage a Windows image or an installation{crlf;}- Services can now be removed{crlf;}- The image information saver is now run asynchronously{crlf;}- When information about a package file can't be obtained, DISMTools will now continue processing the rest of the queue{crlf;}- Filter assistants have been added to the feature, capability, and driver information dialogs to allow you to build queries more easily{crlf;}- A new automatic image reload service is now included, to let you have all your images reloaded on system startup{crlf;}- You can now export drivers by class name{crlf;}- Image capture tasks will now warn you when source installations have not been prepared with Sysprep{crlf;}- A new task has been added to optimize Windows images{crlf;}- Support for Full Flash Utility (FFU) has been introduced. Variations of the image application, capture, split, and optimization have been introduced with FFU support{crlf;}- From the project view you can now perform commit operations to FFU files using a workaround{crlf;}- You can now get installed driver information from Windows 7 images{crlf;}- Projects and installation management modes now load and unload much faster{crlf;}- Removing provisioned AppX packages from the online installation management mode is much more reliable now{crlf;}- You can now access WIM and FFU variants of the image capture and application tasks much more easily{crlf;}- After extracting images from ISO files, the program will now let you select the most suitable installation image from it{crlf;}- You can now view information specific to FFU files when viewing mounted image properties{crlf;}- When downloading packages from App Installer files you can now copy the URLs to the main application package{crlf;}- When exporting drivers by class name or when filtering installed drivers by class name, you can now choose from third-party classes provided by third-party drivers in your Windows image or installation{crlf;}- You can now export drivers from Windows 7 images and installations{crlf;}- Saving service changes is much faster now{crlf;}- Questions asked by the image information saver are no longer asked in the background{crlf;}- FFU file commit operations are now carried out when saving changes to mounted FFU files after performing image tasks such as adding packages or enabling features{crlf;}- An option has been added to prevent the machine from sleeping while performing image operations{crlf;}- Help documentation has seen a major visual refresh{crlf;}- File associations are now set for the Starter Script Editor{crlf;}- The home screen has seen a visual overhaul{crlf;}- 7-Zip has been updated to version 26.01{crlf;}- CODE: setting load and save functionality has been revamped{crlf;}- The Starter Script Editor and the theme designer can now be invoked from the Tools menu{crlf;}- In portable installations, file associations can now be toggled for the Starter Script Editor{crlf;}- The DynaLog log viewer has received support for event log filters{crlf;}- Date properties can now be displayed in a Windows-native format{crlf;}- Markdig has been updated to version 1.3.1{crlf;}- Scintilla.NET has been updated to version 6.1.2{crlf;}- The managed DISM API has been updated to version 6.0.0{crlf;}- Windows API Code Pack has been updated to version 8.0.15.2{crlf;}{crlf;}-- Removed features{crlf;}{crlf;}- The WDS preparation script has been removed in favor of the WDS Helper{crlf;}{crlf;}Changes made since last preview:{crlf;}{crlf;}-- Bugfixes{crlf;}{crlf;}- Fixed accuracy issues when performing Windows UEFI CA 2023 readiness checks on systems that were deployed using updated boot loaders{crlf;}- Fixed an issue where background processes would fail with {quot;}The parameter is incorrect{quot;} in some cases{crlf;}{crlf;}-- New features{crlf;}{crlf;}- UnattendGen has been updated to the latest version, now requiring .NET 10{crlf;}- The news feed previewer has seen several improvements{crlf;}- The Preinstallation Environment Helper now detects answer files created by Rufus, and lets you act on answer file conflicts + +[PrgAbout.Tooltip] +Text1.Label=Check out the project's official subreddit +Join.Coding.Wonders.Label=Join the CodingWonders Software Discord server +Project.MDL.Label=Check out the project's discussion on the My Digital Life forums +Project.GitHub.Label=Check out the project's repository on GitHub + +[PrgAbout.UpdateCheck] +Couldn.Tdownload.Message=We couldn't download the update checker. Reason:{crlf;}{0} + +[PrgSetup] +Set.Up.DISM.Label=Set up DISMTools +Welcome.DISM.Tools.Label=Welcome to DISMTools +DISM.Tools.Free.Message=DISMTools is a free and open-source, project-driven GUI for DISM operations. To begin setting things up, click Next. +Yours.Customize.Message=Make it yours. Customize this program to your liking and click Next. These settings can be configured at any time in the {quot;}Personalization{quot;} section in the Options window +CustomizeProgram.Label=Customize this program +ColorMode.Label=Color mode: +Language.Label=Language: +Log.Window.Font.Label=Log window font: +LogFile.Label=Log file: +Log.Settings.Message=Specify the log settings and click Next. Depending on the content level you specify, we will log more or less information. This setting can be configured at any time in the {quot;}Logs{quot;} section in the Options window +Log.Label=What should we log when you perform an operation? +Anything.Like.Label=Is there anything else you would like to configure? +Settings.Available.Message=The settings available to you are more than what you've just configured. If you wish to change more of these, click the button below. We'll also make those settings persistent. +Perform.Steps.Time.Label=You can perform these steps at any time. +Done.Setting.Up.Message=You have finished setting up the basics to use DISMTools the way you wanted. Click {quot;}Finish{quot;}, and we'll make your settings persistent. +SetupComplete.Label=Setup is complete +Ve.Set.Things.Label=Now that you've set things up, we recommend you do the following things: +Stay.Up.Date.Label=Stay up to date to receive new features and an improved experience +Get.Started.DISM.Label=Get started with DISMTools and image servicing, so you can get around quicker +Secondary.Progress.Label=Secondary progress panel style: +Font.Readable.Log.Message=This font may not be readable on log windows. While you can still use it, we recommend monospaced fonts for increased readability. +Back.Button=Back +Cancel.Button=Cancel +Browse.Button=Browse... +Default.Log.File.Button=Use default log file +Configure.Settings.Button=Configure more settings +GetStarted.Button=Get started +CheckUpdates.Button=Check for updates +Auto.Create.Logs.CheckBox=Automatically create logs in the program's log directory +Modern.RadioButton=Modern +Classic.RadioButton=Classic +Log.File.Title=Specify the log file +System.Setting.Item=Use system setting +LightMode.Item=Light mode +DarkMode.Item=Dark mode + +[PrgSetup.Actions] +UpdateChecker.Title=Check for updates + +[PrgSetup.Dialogs] +SaveFile.Filter=All files|*.* + +[PrgSetup.LogLevel] +Errors.Label=Errors (Log level 1) +File.Only.Display.Label=The log file should only display errors after performing an image operation. +Errors.Warnings.Label=Errors and warnings (Log level 2) +File.Display.Errors.Label=The log file should display errors and warnings after performing an image operation. +Errors.Messages.Label=Errors, warnings and information messages (Log level 3) +File.Display.Errors.Message=The log file should display errors, warnings and information messages after performing an image operation. +Errors.Warnings.Debug.Label=Errors, warnings, information and debug messages (Log level 4) +Level3.Message=The log file should display errors, warnings, information and debug messages after performing an image operation. + +[PrgSetup.Next] +Finish.Label=Finish + +[PrgSetup.Next.Actions] +Folder.Log.File.Message=The folder the log file will be stored on doesn't exist. Make sure it exists and try again. +Next.Button=Next + +[PrgSetup.ToolTip] +Minimize.Label=Minimize +Close.Label=Close +GoBack.Label=Go back + +[PrgSetup.Validation] +DownloadFailure.Message=We couldn't download the update checker. Reason:{crlf;}{0} + +[Progress] +Tasks.Label=Tasks: {0}/{1} +Progress.Label=Progress +Image.Operations.Label=Image operations in progress... +Wait.Tasks.Label=Please wait while the following tasks are done. This may take some time. +Cancel.Button=Cancel +ShowLog.Label=Show log +HideLog.Label=Hide log +Show.Dismlog.File.Link=Show DISM log file (advanced) +Wait.Label=Please wait... +CurrentTask.Label=Please wait... +Performing.Image.Ops.Button=Performing image operations. Please wait... +TaskCount.Label=Tasks: 1/{0} + +[Progress.AddCapabilities] +Add.Capabilities.Button=Adding capabilities... +PrepareAdd.Button=Preparing to add capabilities... +Add.Capabilities.Item=Adding capabilities... +AddingCapability.Item=Adding capability {0} of {1}... + +[Progress.AddDrivers] +AddingDrivers.Button=Adding drivers... +Preparing.Drivers.Button=Preparing to add drivers... +AddingDrivers.Item=Adding drivers... +AddingDriver.Item=Adding driver {0} of {1}... + +[Progress.AddPackages] +AddingPackages.Button=Adding packages... +Preparing.Packages.Button=Preparing to add packages... +AddingPackages.Item=Adding {0} packages... +AddingPackage.Item=Adding package {0} of {1}... + +[Progress.Packages.AddRecursive] +Gathering.Error.Level.Button=Gathering error level... + +[Progress.ProvAppx.Add] +AddingPackages.Button=Adding AppX packages... +Preparing.Button=Preparing to add provisioned AppX packages... +AddingPackages.Item=Adding AppX packages... +AddingPackage.Item=Adding package {0} of {1}... + +[Progress.ProvPackage.Add] +AddingPackage.Button=Adding provisioning package... +Image.Button=Adding provisioning package to the image... + +[Progress.AppendImage] +AppendingImage.Button=Appending to image... +Appending.Mount.Dir.Button=Appending specified mount directory to the specified target image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.ApplyFfuImage] +ApplyingImage.Button=Applying image... +Applying.Image.Dest.Button=Applying specified image to the specified destination... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.ApplyImage] +ApplyingImage.Button=Applying image... +Applying.Image.Dest.Button=Applying specified image to the specified destination... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.ApplyUnattend] +ApplyAnswerFile.Button=Applying unattended answer file... +Applying.Answer.Button=Applying specified unattended answer file to the target image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.Background] +Ready.Label=Ready +Perform.Image.Label=Could not perform image operations +Error.Has.Message=An error has occurred, which stopped the image operations. Please read the log below for more information. +Ok.Button=OK +Ready.Item=Ready + +[Progress.CaptureFfuImage] +CapturingImage.Button=Capturing image... +CaptureDir.Button=Capturing specified directory into a new image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.CaptureImage] +CapturingImage.Button=Capturing image... +CaptureDir.Button=Capturing specified directory into a new image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.CleanupImage] +Cleaning.Up.Image.Button=Cleaning up the image... +RevertPending.Button=Reverting pending servicing actions... +Cleaning.Up.ServicePack.Item=Cleaning up Service Pack backup files... +Cleaning.Up.Component.Item=Cleaning up the component store... +Analyzing.Component.Item=Analyzing the component store... +Checking.Comp.Store.Item=Checking the component store health... +Scanning.Component.Item=Scanning the component store... +Repairing.Component.Item=Repairing the component store... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.CleanupMounts] +Cleaning.Up.Mount.Button=Cleaning up mount points... +Gathering.Error.Level.Item=Gathering error level... +Deleting.Corrupted.Button=Deleting resources from old or corrupted images... + +[Progress.Close] +Ready.Label=Ready + +[Progress.CommitImage] +CommittingImage.Button=Committing image... +Saving.Changes.Image.Button=Saving changes to the image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.ConvertImage] +ConvertingImage.Button=Converting image... +Converting.Image.Button=Converting specified image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.CreateProject] +CreatingProject.Label=Creating project: {quot;}{0}{quot;} +CreateProject.Button=Creating DISMTools project structure... + +[Progress.DisableFeatures] +Disabling.Button=Disabling features... +PrepareDisable.Button=Preparing to disable features... +Disabling.Item=Disabling features... +DisablingFeature.Item=Disabling feature {0} of {1}... + +[Progress.EnableFeatures] +EnablingFeatures.Button=Enabling features... +PrepareEnable.Button=Preparing to enable features... +EnablingFeatures.Item=Enabling features... +EnablingFeature.Item=Enabling feature {0} of {1}... + +[Progress.ExportDrivers] +ExportingDrivers.Button=Exporting drivers... +ExportThirdParty.Button=Exporting third-party drivers to the specified folder... + +[Progress.ExportImage] +ExportingImage.Button=Exporting image... +Exporting.Image.Button=Exporting specified image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.GetTasks] +Tasks.Label=Tasks: 1/{0} + +[Progress.ImportDrivers] +ImportingDrivers.Button=Importing drivers... +PrepareImport.Button=Preparing to import third-party drivers... +ExportThirdParty.Item=Exporting third-party drivers from driver import source... +ImportThirdParty.Item=Importing third-party drivers to destination image... + +[Progress.OSUninstall] +Uninstalling.Version.Button=Uninstalling this version of Windows... + +[Progress.StartRollback] +Preparing.OSRollback.Button=Preparing operating system rollback... + +[Progress.Log] +HideLog.Label=Hide log +ShowLog.Item=Show log + +[Progress.Logs.Operation] +Label=Operation Logs + +[Progress.Logs.DismOutput] +Label=DISM Output + +[Progress.MergeSWM] +MergingSwmfiles.Button=Merging SWM files... +Merging.Swmfiles.WIM.Button=Merging SWM files into a WIM file... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.MountImage] +MountingImage.Button=Mounting image... +Mounting.Image.Button=Mounting specified image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.Operation] +OptimizingImage.Label=Optimizing image... +Optimizing.Windows.Label=Optimizing Windows image... +UpgradingImage.Label=Upgrading the image... +Setting.New.Image.Label=Setting the new image edition... +Setting.ProductKey.Label=Setting the product key... +Setting.New.ProductKey.Label=Setting the new product key... +Replacing.FFU.Files.Label=Replacing FFU files... +Replacing.Original.FFU.Label=Replacing original FFU file with modified FFU file... + +[Progress.RemountImage] +RemountingImage.Button=Remounting image... +ReloadSession.Button=Reloading servicing session for mounted image... +Gathering.Error.Level.Item=Gathering error level... + +[Progress.RemoveCapabilities] +Remove.Capabilities.Button=Removing capabilities... +Remove.Capabilities.Item=Removing capabilities... +Capability.Item=Removing capability {0} of {1}... + +[Progress.RemoveCaps] +Preparing.Button=Preparing to remove capabilities... + +[Progress.RemoveDrivers] +RemovingDrivers.Button=Removing drivers... +Preparing.Drivers.Button=Preparing to remove drivers... +RemovingDrivers.Item=Removing drivers... +RemovingDriver.Item=Removing driver {0} of {1}... + +[Progress.RemoveRollback] +RemoveRollback.Button=Removing OS rollback ability... +RemoveRevert.Button=Removing the ability to revert to an old installation of Windows... + +[Progress.RemovePackages] +RemovingPackages.Button=Removing packages... +PrepareRemove.Button=Preparing to remove packages... +RemovingPackages.Item=Removing packages... +RemovingPackage.Item=Removing package {0} of {1}... + +[Progress.ProvAppx.Remove] +RemovingPackages.Button=Removing AppX packages... +Preparing.Button=Preparing to remove provisioned AppX packages... +RemovingPackages.Item=Removing AppX packages... +RemovingPackage.Item=Removing package {0} of {1}... + +[Progress.RemoveVolumes] +DeletingImages.Button=Deleting images... +Prepare.Remove.Button=Preparing to remove volume images... +Volume.Image.Item=Removing volume image {quot;}{0}{quot;}... + +[Progress.LayeredDriver] +SettingDriver.Button=Setting layered driver... +Setting.Keyboard.Button=Setting keyboard layered driver... + +[Progress.RollbackWindow] +SetWindow.Button=Setting the uninstall window... +SetDays.Button=Setting the amount of days in which an uninstall can happen... + +[Progress.ScratchSpace] +Setting.ScratchSpace.Button=Setting the scratch space... +SetScratchSpace.Button=Setting the Windows PE scratch space... + +[Progress.SetTargetPath] +Setting.Target.Button=Setting the target path... +Setting.Windows.Button=Setting the Windows PE target path... + +[Progress.SplitFfuImage] +SplittingImage.Button=Splitting image... +Splitting.File.Button=Splitting FFU file... + +[Progress.SplitImage] +SplittingImage.Button=Splitting image... +Splitting.WIM.File.Button=Splitting WIM file... + +[Progress.SwitchIndexes] +Switching.Image.Button=Switching image indexes... +Unmounting.Source.Button=Unmounting source index... +Gathering.Error.Level.Item=Gathering error level... +Unmounting.Source.Index.Item=Unmounting source index... +CurrentTask.Item=Gathering error level... +Mounting.Target.Index.Item=Mounting target index... + +[Progress.UnmountImage] +UnmountingImage.Button=Unmounting image... +Unmounting.ImageFile.Button=Unmounting image file... +Gathering.Error.Level.Item=Gathering error level... + +[ProgressReporter] +Progress.Label=Progress + +[ProjProps] +Bytes.Item={0} bytes (~{1}) +Getting.Project.Image.Label=Getting project and image information. Please wait... +Name.Label=Name: +Location.Label=Location: +Creation.Time.Date.Label=Creation time and date: +ProjectGUID.Label=Project GUID: +MountDirectory.Label=Mount directory: +ImageIndex.Label=Image index: +ImageFile.Label=Image file: +Image.Present.Project.Label=Image present on project? +ImageStatus.Label=Image status: +Version.Label=Version: +Description.Label=Description: +Size.Label=Size: +Supports.WIM.Boot.Label=Supports WIMBoot? +Architecture.Label=Architecture: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Service Pack level: +Edition.Label=Edition: +ProductType.Label=Product type: +ProductSuite.Label=Product suite: +System.Root.Dir.Label=System root directory: +DirectoryCount.Label=Directory count: +FileCount.Label=File count: +CreationDate.Label=Creation date: +ModificationDate.Label=Modification date: +Installed.Languages.Label=Installed languages: +FileFormat.Label=File format: +Image.Rwpermissions.Label=Image R/W permissions: +Recover.Label=Recover +Reload.Label=Reload +Remount.Write.Label=Remount with write permissions +Ok.Button=OK +Cancel.Button=Cancel +Many.Cannot.Seen.Message=Many properties cannot be seen because an image has not yet been mounted. Once you mount it, detailed information will be shown here. Click here to mount an image +Props.Label=Properties +Yes.Button=Yes +No.Button=No +ImgMount.Label=Not available +ImgIndex.Label=Not available +ImgName.Label=Not available +NotAvailable.Label=Not available +ImgVersion.Label=Not available +ImgMounted.Label=Not available +ImgSize.Label=Not available +ImgWIM.Label=Not available +ImgHal.Label=Not available +ImgSP.Label=Not available +ImgEdition.Label=Not available +ImgP.Label=Not available +ImgSys.Label=Not available +ImgDirs.Label=Not available +ImgFiles.Label=Not available +ImgCreation.Label=Not available +ImgModification.Label=Not available +ImgFormat.Label=Not available +ImgRW.Label=Not available + +[ProjectProps.FeatureUpdate] +FeatureUpdate.Label={crlf;}(feature update: {0}) + +[ProjectProps.Image] +UndefinedImage.Label=Undefined by the image +OpenParenthesis.Label=( +Default.Label=, default +CloseParenthesis.Label=) +File.Label={0} file + +[ProjProps.Tooltip] +Hardware.Abstraction.Label=Hardware Abstraction Layer + +[ServiceGroups] +ServiceGroup.Label={lbrace;}0{rbrace;} service(s) in group +RegisteredHost.Label={lbrace;}0{rbrace;} service(s) are registered in the service host. + +[RegistryPanel] +Image.Hives.Label=Image registry hives +Load.Label=Load +Unload.Label=Unload +Open.Button=Open +Tool.Lets.Load.Message=This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here: +Ntuserdatdefault.User.Label=NTUSER.DAT (Default User) +Load.Different.Label=If you want to load a different registry hive, specify its path and click Load: +HiveLocation.Label=Hive location: +PathRegistry.Label=Path in the registry: +Browse.Button=Browse... +Load.Custom.Hive=Load Custom Hive + +[RegistryPanel.Close] +HivesNeedUnload.Message=The registry hives need to be unloaded to close this window. Do you want to unload them now? +HivesNotUnloaded.Message=Some hives could not be unloaded. Please unload them before closing this window. + +[ReloadProject] +ImageMissing.Label=This image is no longer available +ImageUnavailable.Message=The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click {quot;}OK{quot;} to reload this project.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +Ok.Button=OK +Cancel.Button=Cancel + +[RemCapabilities] +Remove.Label=Remove capabilities +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Cancel +Capability.Column=Capability +State.Column=State + +[RemCapabilities.Initialize] +UnsupportedImage.Message=This action is not supported on this image + +[RemCapabilities.Validation] +Selected.None.Message=There aren't any selected capabilities to remove. Please select some capabilities and try again. + +[RemDrivers] +RemoveDrivers.Label=Remove drivers +Image.Task.Header.Label={0} +DriverPackages.Wish.Label=Specify the driver packages you wish to remove and click OK: +Hide.Boot.Critical.CheckBox=Hide boot-critical drivers +Hide.Drivers.Part.CheckBox=Hide drivers part of the Windows distribution +Ok.Button=OK +Cancel.Button=Cancel +PublishedName.Column=Published name +Original.File.Name.Column=Original file name +ProviderName.Column=Provider name +ClassName.Column=Class name +Part.Windows.Column=Part of the Windows distribution? +BootCritical.Column=Is boot-critical? +Version.Column=Version +Date.Column=Date +Loading.DriverPackages.Label=Getting installed driver packages... + +[RemDrivers.Validation] +Yes.Button=Yes +Selected.Boot.Message=You have selected driver packages that are boot-critical. Proceeding with the removal of such packages may leave the target image unbootable. +WantContinue.Message=Do you want to continue? +CheckedItems.Button=Yes +Selected.Part.Message=You have selected driver packages that are part of the Windows distribution. Proceeding may leave certain parts of Windows that depend on these drivers inaccessible. +ContinueQuestion.Message=Do you want to continue? +Packages.Required.Message=Please specify the driver packages you wish to remove and try again + +[RemPackage] +RemovePackages.Label=Remove packages +Image.Task.Header.Label={0} +PackageSource.Label=Package source: +Note.May.Message=NOTE: the program may show packages that weren't added in the first place. However, if a package is not added, the program will skip it. +PackageRemoval.Group=Package removal +Package.Names.RadioButton=Specify package names: +Package.Files.RadioButton=Specify package files: +Browse.Button=Browse... +Cancel.Button=Cancel +Ok.Button=OK +PackageSource.Description=Please specify a package source: +Couldn.Tscan.Message=We couldn't scan the package source for CAB files. Please try again. +DISMTools.Title=DISMTools + +[RemPackage.Validation] +No.Packages.Selected.Message=Please select packages to remove, and try again. +Packages.Selected.None.Title=No packages selected + +[RemoveAppx] +Prov.Label=Remove provisioned AppX packages +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Cancel +PackageName.Column=Package name +App.Display.Name.Column=Application display name +Architecture.Column=Architecture +ResourceID.Column=Resource ID +Version.Column=Version +Registered.User.Column=Registered to any user? +ViewResources.Label=View resources of {0} + +[RemoveAppx.Init] +UnsupportedImage.Message=This action is not supported on this image + +[RemoveAppx.Validation] +Packages.Required.Message=Please specify AppX packages to remove and try again. +Prov.Title=Remove provisioned AppX packages +DesktopExperience.Message=The Desktop Experience (DesktopExperience) feature needs to be enabled in order to remove AppX packages in Windows Server Core/Nano Server images.{crlf;}{crlf;}Enable this feature, boot to the image, and try again. + +[SaveProject] +SaveChanges.Label=Do you want to save the changes of this project? +ShutdownRestart.Message=If you shut down or restart your system without unmounting the images, you will need to reload the servicing session. +Yes.Button=Yes +No.Button=No +Cancel.Button=Cancel + +[ScriptReorder] +Script.Label=Script {lbrace;}0{rbrace;} +Move.Selected.Top.Label=Move selected script to the top +Move.Selected.Previous.Label=Move selected script to the previous position +Move.Selected.Next.Label=Move selected script to the next position +Move.Selected.Bottom.Label=Move selected script to the bottom + +[ServiceManagement.Display] +MinuteS.Label={0} minute(s) +Undefined.Label=Undefined +Per.User.Label=Not a per-user service +Undefined.Group.Label= + +[Services.Display] +MinutesSeconds.Message={0} minute(s) ({1} seconds) after first failure, {2} minute(s) ({3} seconds) after second failure, {4} minute(s) ({5} seconds) after subsequent failures + +[Services.Messages] +StartType.Message=The selected start type is unsupported for services of this type. The selected service may not work correctly or at all if you continue with this start type.{crlf;}{crlf;}Do you want to reset this start type to its current value? +System.Done.Message=System service information has been successfully saved to the registry of the target image.{crlf;}{crlf;}A backup of the previous service configuration has been saved to your desktop should you need it in case service modifications do not go as planned.{crlf;}{crlf;}Simply load the target image's SYSTEM hive and import this registry file. +UnsavedClose.Message=Some changes have been made. Closing this window will discard all your changes to Windows services. Do you want to discard these changes? +UnsavedReload.Message=Some changes have been made. Reloading service information will discard all your changes to Windows services. Do you want to discard these changes? +RemoveService.Title=Remove service +Scheduled.Deletion.Message=The service has been successfully scheduled for deletion. The removal of this service will take place when you save the changes. Should you ever need this service back, please import the service information backup that will be made during the save process. +InfoSaved.Message=System service information could not be saved to the registry of the target image. + +[ServiceMgmt.Messages] +Continui.Removal.Svc.Message=Continuing with the removal of this service can cause the target system to become either unstable or unbootable. Do you want to continue? + +[ServiceManagement.Progress] +Saving.Label=Saving service information... ({0}/{1}, {2}%) + +[ServiceManagement.StartTypes] +BootLoader.Label=Boot Loader +Iosystem.Label=I/O System +Automatic.Label=Automatic +Manual.Label=Manual +Disabled.Label=Disabled + +[ImageEdition] +Title.Label=Set image edition +Image.Task.Header.Label={0} +Target.Upgrade.Label=Target edition to upgrade to: +ServerOptions.Group=Active server installation options +Copy.EndUser.RadioButton=Copy the End-User License Agreement (EULA) to the following location: +AcceptEULA.RadioButton=Accept the End-User License Agreement (EULA) and use the following product key: +Browse.Button=Browse... +Ok.Button=OK +Cancel.Button=Cancel + +[ImageEdition.Initialize] +Image.Cannot.Message=This image cannot be upgraded to higher editions because it is in its highest edition +Windows.Message=Windows PE images cannot be upgraded to higher editions. + +[SetImageKey] +SetProductKey.Label=Set product key +Image.Task.Header.Label={0} +Type.ProductKey.Label=Type the product key that you want to set to your Windows image, including the dashes: +Check.ProductKey.Message=If you want to check if your product key is valid for the Windows image, click Validate key. This will also check the syntax of your key. +ValidateKey.Button=Validate key +Ok.Button=OK +Cancel.Button=Cancel + +[SetImageKey.Initialize] +Windows.Message=Windows PE images cannot be upgraded to higher editions. + +[SetImageKey.Messages] +ProductKey.Has.Label=The product key has not been typed correctly. +ProductKey.Windows.Label=The product key is valid for this Windows image. +ProductKey.Valid.Message=The product key has been typed correctly, but is not valid for this Windows image. + +[SetImageKey.Validation] +ProductKey.Valid.Message=The product key has been typed correctly, but we could not check if it's valid for this Windows image. + +[SetLayeredDriver] +UnknownInstalled.Label=Unknown/Not installed +PC.Enhanced.Label=PC/AT Enhanced Keyboard (101/102-Key) +DriverKorean.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 2) +Korean.Keyboard.Key.Item=Korean Keyboard (103/106 Key) +Japanese.Keyboard.Key.Item=Japanese Keyboard (106/109 Key) + +[SetLayeredDriver.KoreanPC] +Keyboard101.Type1.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 1) +Keyboard101.Type3.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 3) + +[LayeredDriver.Set] +Title=Set keyboard layered driver +Image.Task.Header.Label={0} +Intro.Message=This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK +CurrentDriver.Label=Current keyboard layered driver: +NewDriver.Label=New keyboard layered driver: +Driver.Already.Label=This driver has already been set +Ok.Button=OK +Cancel.Button=Cancel + +[OSRollback] +OSUninstall.Label=Set operating system uninstall window +Image.Task.Header.Label={0} +Default.OS.Message=By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date.{crlf;}{crlf;}Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60. +Amount.Days.Revert.Label=Amount of days you have to revert to the old Windows version: +Ok.Button=OK +Cancel.Button=Cancel + +[RollbackWindow.Init] +OnlineOnly.Message=This action is only supported on online installations + +[OSRollback.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[PE.Scratch] +Window.Title=Set Windows PE scratch space +Header.Title={0} +Description.Message=The scratch space is the amount of writable space available on the Windows PE system volume when its contents are copied to memory. Please specify a scratch space amount and click OK. +Space.Label=Scratch space: +Ok.Button=OK +Cancel.Button=Cancel + +[PETargetPath.Target] +Set.Windows.Petarget.Label=Set Windows PE target path +Image.Task.Header.Label={0} +Target.Dir.Message=The target path is a directory where the Windows PE files will be copied to in order to boot to the environment. Please specify a target path and click OK. +TargetPath.Label=Target path: +Ok.Button=OK +Cancel.Button=Cancel + +[PETargetPath.Validation] +Target.Least.Message=The target path must be at least 3 characters and no longer than 32 characters +Target.Start.Message=The target path must start with any letter other than A or B +DriveLetterFormat.Message=A drive letter must be followed by : +AbsolutePath.Message=The target path must be absolute, and must not contain relative elements +Target.Contain.Message=The target path must not contain spaces or quotation marks + +[SettingsReset] +ResetPreferences.Label=Reset preferences +ProceedReset.Message=If you proceed, the settings will be reset to their default values. Once this process is complete, you'll return to the main program window.{crlf;}{crlf;}Do you want to proceed? +Yes.Button=Yes +No.Button=No + +[Single.Image] +Image.Seems.Only.Item=This image seems to have only one index +Cannot.Switch.Index.Message=You cannot switch to other indexes. If you want to save the image changes, you can do so using a new, separate index. +Know.Indexes.Message=To know more about the indexes of an image, or some of its specific properties, go to {quot;}Commands > Image management > Get image information{quot;}, or click here +Here.LinkText=here +Ok.Button=OK + +[SplashScreen] +Version.Label=Version {lbrace;}0{rbrace;}.{lbrace;}1{rbrace;}.{lbrace;}2{rbrace;} + +[StarterScript] +AlreadyCreated.Message=The starter script had been created with an earlier version of the Starter Script Editor and will be saved with properties that will make it compatible with the current format. After this is done, the starter script will no longer be compatible with earlier versions of DISMTools or the Starter Script Editor.{crlf;}{crlf;}Do you want to save this file? +Editor.Label=Starter Script Editor +Dialog.Title=Starter Script Editor +SaveError.Label=Save Error +DebugEditor.Label=DISMTools Starter Script Editor version {0} ({1}_DEBUG){crlf;}{crlf;}{2} +About.Label=About +Editor.Message=DISMTools Starter Script Editor version {0}{crlf;}{crlf;}{1} +DebugVersion.Message=DISMTools Starter Script Editor version {0}_NET2REL ({1}_DEBUG){crlf;}{crlf;}{2} +Version.Message=DISMTools Starter Script Editor version {0}_NET2REL{crlf;}{crlf;}{1} +ImportExisting.Label=Import Existing Script +Unrecognized.Label=Unrecognized script +ReadFailed.Label=Could not read file contents +FileMissing.Label=The script file does not exist. +ReadOnlyFile.Message=This script file has been loaded with read-only privileges. If you make changes to this script, you must save them to a new script file or enable write access for this script. +SaveFailed.Message=Changes could not be saved to the script file. Make sure write access is present in the file. {crlf;}{crlf;}{0}{crlf;}{crlf;}To enable write access for this file, use the respective button in the toolbar. +SaveChanges.Label=Do you want to save the changes to your script file? +Name.Required.Label=You must provide a name for this starter script. +Description.Required.Label=You must provide a description for this starter script. +SaveChanges.Message=Do you want to save the changes to your script file? +ImportSelected.Message=Importing the selected script will replace existing contents of your script. +SupportedScript.Label=This script is not supported by the Starter Script Editor. +LoadFailed.Label=The contents of the script could not be loaded. +WriteAccess.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +NonMonospace.Message=You have selected a non-monospaced font. Text may not look correctly. Do you want to continue? +Name.Required.Message=You must provide a name for this starter script. +Description.Required.Message=You must provide a description for this starter script. +Window.Title=Starter Script Editor - {lbrace;}0{rbrace;} +Window.Default=Starter Script Editor +CheckScript.Message=Check this option if this script contains settings that can be configured by the user{crlf;}after importing the starter script from the Starter Script Browser. + +[Tools.ThemeDesigner.Main] +Color.Rgbclick.Label=Current Color: RGB({0}, {1}, {2}). Click to copy to clipboard + +[ThemeDesigner.Messages] +Loaded.Read.Only.Message=This theme has been loaded with read-only privileges. If you make changes, you must save them to a new file or enable write access. +Provide.Name.Label=You must provide a name for the theme. +Saved.Done.Label=The theme has been saved successfully at the specified location. +SaveTheme.Label=Could not save the theme. +Enable.Write.Access.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +ThemeDesigner.Label=Theme Designer +Name.Missing.Label=Theme name missing +SaveSuccess.Label=Save Success +SaveError.Label=Save Error +DISM.Tools.Designer.Label=DISMTools Theme Designer version {0}{crlf;}{crlf;}{1}. {2} +About.Label=About +About.Version.Message=DISMTools Theme Designer version {0}_NET2REL{crlf;}{crlf;}{1}. {2} +StarterScript.Editor.Label=Starter Script Editor + +[DynaViewer.Messages] +FileExist.Label=The file {quot;}{0}{quot;} does not exist. +File.NotFound.Message=The file {quot;}{0}{quot;} does not exist. +Log.Version.Label=DynaLog Log Viewer (DynaViewer) version {0}{crlf;}{crlf;}{1} +About.Version.Message=DynaLog Log Viewer (DynaViewer) version {0}_NET2REL{crlf;}{crlf;}{1} +Regex.Failure.Label=Regular expression failure +RegexInvalid.Message=The regular expression, {1} , has not been written correctly. The cheatsheet can help you with the queries.{0}{0} Error message: {2} + +[DynaViewer] +Proced.Entries.Double.Label=Processed entries: {lbrace;}0{rbrace;}. Double-click an entry to get its information. +Regex.Expressions.Label=Use regular expressions +MatchCase.Label=Match case +Processed.Entries.Message=Processed entries: {lbrace;}0{rbrace;}{lbrace;}1{rbrace;}. Double-click an entry to get its information. +FilteredEntries.Suffix=; Filtered entries: {lbrace;}0{rbrace;} + +[ThemeDesigner.Main] +Window.Title=DISMTools Theme Designer - {lbrace;}0{rbrace;} +Window.DefaultTitle=DISMTools Theme Designer + +[Unattend.Scripts] +ImportDone.Message=After this script is imported, please check its code for any options that you can set. That way you can customize its behavior. +Loaded.Message=The starter scripts could not be loaded. +Refreshed.Message=The starter scripts could not be refreshed. + +[UnattendMgr] +Unattended.AnswerFile.Label=Unattended answer file manager +ProjectPath.Label=Project path: +Browse.Button=Browse... +OpenFile.Button=Open file +Open.File.Location.Button=Open file location +ApplyImage.Button=Apply to image... +FileName.Column=File name +Created.Column=Created +LastModified.Column=Last modified +LastAccessed.Column=Last accessed + +[Unattend.Scan] +FolderMissing.Message=The folder path does not exist +ElementsFound.Message=Search concluded with no elements found + +[Updater.Main] +Minimize.Label=Minimize +Close.Label=Close +DISM.Tools.Update.Label=DISMTools Update Check System - Version {0} +UpdateInfo.Label=Update information +Downloading.Update.Label=Downloading the update +Prepare.Update.Install.Label=Preparing update installation +InstallingUpdate.Label=Installing the update +Downloading.Download.Label=Downloading the update ({0}%) +Preparing.Install.Item=Preparing update installation (80%) +Preparing.Install.Label=Preparing update installation ({0}%) +Prepare.Update.Install.Item=Preparing update installation (100%) +Installing.Update.Item=Installing the update (0%) +Installing.Update.Label=Installing the update ({0}%) +InstallingComplete.Item=Installing the update (100%) + +[Updater.Main.Messages] +BranchRequired.Message=The branch parameter is necessary to be able to check for updates +Couldn.Tfetch.Label=We couldn't fetch the necessary update information. Reason:{crlf;}{0} +Updates.Available.None.Label=There aren't any updates available + +[Updater.Main.Validation] +CurrentVersion.Warning=Your current version of DISMTools may no longer work correctly if you continue using it. It is recommended that you download the latest version manually and extract/install it manually.{crlf;}{crlf;}Do not worry. Your settings are kept intact. + +[Utilities.WMIHelper] +Wmierror.Message=WMI Error + +[WDSImageCopy.ImageInfo] +Gather.ImageFile.Message=Could not gather information of this image file. Reason:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[WDSImageCopy.Messages] +Either.Source.Message=Either the source image file does not exist or you haven't provided any image file. Please specify a valid image file and try again. +Group.Has.None.Message=No group has been specified. Please specify a new or an existing WDS group and try again. +Images.Have.None.Label=No images have been selected for addition to your WDS server. +Image.Add.Message=Make sure that the image you are adding has been prepared with Sysprep.{crlf;}{crlf;}If you have not done so, click No, prepare the image, and start the process again. You don't have to close this window.{crlf;}{crlf;}Do you want to add this image to your WDS server? +Wizard.Support.Message=This wizard does not support this computer. Make sure that this computer is running Windows Server and that it has the Windows Deployment Services role installed. +Boot.Image.Detected.Message=A boot image has been detected. You should not use these as installation images in your server. +UploadSuccessful.Label=The images were uploaded successfully. +Images.Uploaded.Done.Label=The images were not uploaded successfully. + +[WDSImageCopy.Progress] +UploadingImages.Label=Uploading images... +Image.Uploads.Done.Label=Image uploads done. + +[WimScriptEditor] +ConfigList.Title=DISM Configuration List Editor +Config.List.Allows.Message=The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon. +ExclusionList.Group=Exclusion list +Exclusion.Exception.List=Exclusion exception list +Compression.Exclusion.List=Compression exclusion list +Add.Button=Add... +Edit.Button=Edit... +Remove.Button=Remove +Config.List.Load.Title=Specify the configuration list to load +Location.Save.Config.Title=Specify the location to save the configuration list to +New.Tooltip=New +Open.Button=Open... +Save.Button=Save... +Toggle.Word.Wrap.Tooltip=Toggle word wrap +Help.Tooltip=Help +Tools.Label=Tools +Exclude.User.One.Button=Exclude user OneDrive folders... +New.Config.List.Label=New configuration list - DISM Configuration List Editor +ConfigList.FileTitle={0} - DISM Configuration List Editor +AddList.Label=Add {0} entry +AddEntry.Label=Add {0} entry + +[WimScriptEditor.Actions] +Save.Config.List.Prompt=Do you want to save this configuration list file? +ConfigList.Title={0} - DISM Configuration List Editor +ConfigList.FileTitle={0}{1} - DISM Configuration List Editor + +[WimScriptEditor.Close] +Save.Config.List.Prompt=Do you want to save this configuration list file? +ConfigList.FileTitle={0}{1} - DISM Configuration List Editor +ConfigList.Title={0} - DISM Configuration List Editor + +[WimScriptEditor.Editor] +ConfigList.Title={0} - DISM Configuration List Editor +ConfigList.ModifiedTitle={0} (modified) - DISM Configuration List Editor + +[WimScriptEditor.OpenFile] +ConfigList.Title={0} - DISM Configuration List Editor + +[WimScriptEditor.Content] +ConfigList.Title={0} - DISM Configuration List Editor +ConfigList.ModifiedTitle={0} (modified) - DISM Configuration List Editor + +[WindowsImage.MountMode] +Yes.Button=Yes +No.Button=No + +[WindowsImage.MountStatus] +Ok.Button=OK +NeedsRemount.Label=Needs Remount +Invalid.Label=Invalid + +[WindowsServices.Helper] +Service.Backed.Message=Current service information could not be backed up. Backups are used in case of a mistake during service management. You may continue, but at your own risk.{crlf;}{crlf;}The target image may not work correctly or at all after configuration, and you will not be able to recover it using previous service configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current service information? +Service.Backed.Up.Title=Service information could not be backed up + +[PEHelper.WDSImageGroup] +CreateFailed.Message=The specified WDS image group could not be created. +LoadFailed.Message=Could not get image groups. + +SpecifyGroup.Button=Specify a group in your WDS server... +Action.Choose.Label=Choose an action: +Already.Exists.Label=This group already exists. +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Refresh.Button=Refresh +Ok.Button=OK +Cancel.Button=Cancel + +[Casters.OfflineInstall.Boot] +Required.Message=A boot up to the target image is required to fully install this package +NotRequired.Message=A boot up to the target image is not required to fully install this package + +[PrgSetup.LogPreview] +Packages.Add.Message=Adding packages to the mounted image...{crlf;}- Package source: C:\w100-glb{crlf;}- Addition operation: selective{crlf;}- Ignore applicability checks? No{crlf;}- Prevent package addition if online actions need to be performed? No{crlf;}- Commit image after operations are done? Yes{crlf;}Enumerating packages to add. Please wait...{crlf;}Total number of packages: 128{crlf;}{crlf;}Processing 128 packages...{crlf;}Package 1 of 128 + +[Options.LogPreview] +Packages.Add.Message=Adding packages to the mounted image...{crlf;}- Package source: C:\w100-glb{crlf;}- Addition operation: selective{crlf;}- Ignore applicability checks? No{crlf;}- Prevent package addition if online actions need to be performed? No{crlf;}- Commit image after operations are done? Yes{crlf;}Enumerating packages to add. Please wait...{crlf;}Total number of packages: 128{crlf;}{crlf;}Processing 128 packages...{crlf;}Package 1 of 128 + +[PrgSetup.ProgressPreview] +Wait.Label=Please wait... +ImageIndexes.Message=Getting image indexes... + +[Options.ProgressPreview] +Wait.Label=Please wait... +ImageIndexes.Message=Getting image indexes... + +[DynaViewer.Designer.Main] +Dyna.Log.File.Label=DynaLog Log File: +LogFiles.Filter=Log Files|*.log +Dyna.Log.Event=DynaLog Event Logs +EventTimestamp.Column=Event Timestamp +ProcessID.Column=Process ID +EventCaller.Column=Event Caller +Message.Column=Message +Browse.Button=Browse... +Refresh.Button=Refresh +Processed.Entries.Label=Number of processed entries: +About.ActionButton=About +LightCM.Label=Light +DarkCM.Label=Dark +SystemCM.Label=System +ColorMode.Button=Color Mode +PID.Label=PID: +EventCaller.Label=Event Caller: +Options.Heading.Label=Options: +RegexCB.Label=.* +Regex.Failure.Btn.Label=! +Aa.Label=Aa +Message.Label=Message: +Dyna.Log.Viewer.Label=DynaLog Log Viewer + +[DynaViewer.Designer.EventProps] +Num.Events.Label=Information for event of : +EventTimestamp.Label=Event Timestamp: +MethodCallers.Group=Method Callers +Field.Empty.Link=Why can the field above be empty? +Method.Function.Label=The method/function described above was called by method/function: +Logged.Method.Function.Label=The event was logged by method/function: +PID.Label=PID: +EventMessage.Label=Event Message: +NextEvent.Label=&Next Event +PreviousEvent.Label=&Previous Event +EventProps.Label=Event Properties + +[DynaViewer.Designer.Regex] +CheatsheetHelp.Label=Use the following cheatsheet when performing message queries with regular expressions: +CharacterClasses.Message=Character Classes:{crlf;}. Any character except newline{crlf;}\d Digit [0-9]{crlf;}\D Non-digit{crlf;}\w Word character [A-Za-z0-9_]{crlf;}\W Non-word character{crlf;}\s Whitespace{crlf;}\S Non-whitespace{crlf;}[abc] Any of a, b, or c{crlf;}[^abc] Not a, b, or c{crlf;}[a-z] Lowercase letter{crlf;}{crlf;}Quantifiers:{crlf;}{crlf;}* 0 or more{crlf;}- 1 or more{crlf;}{crlf;}? 0 or 1{crlf;}{lbrace;}n{rbrace;} Exactly n times{crlf;}{lbrace;}n,{rbrace;} n or more times{crlf;}{lbrace;}n,m{rbrace;} Between n and m times{crlf;}{crlf;}Anchors:{crlf;}^ Start of string/line{crlf;}$ End of string/line{crlf;}\b Word boundary{crlf;}\B Not a word boundary{crlf;}{crlf;}Groups:{crlf;}(abc) Capturing group{crlf;}(?:abc) Non-capturing group{crlf;}(?) Named group{crlf;}\1 Backreference group 1{crlf;}{crlf;}Common Examples:{crlf;}^\d+$ Only digits{crlf;}^[A-Za-z]+$ Only letters{crlf;}^\w+@\w+.\w+$ Basic email{crlf;}^\d{lbrace;}4{rbrace;}-\d{lbrace;}2{rbrace;}-\d{lbrace;}2{rbrace;}$ Date YYYY-MM-DD +PinTop.CheckBox=Pin to top +RegexCheatsheet.Label=Regular Expression Cheatsheet + +[StarterScript.Designer.Main] +New.StarterScript.Ctrl.Label=New Starter Script (Ctrl + N) +Open.StarterScript.Label=Open Starter Script File... (Ctrl + O) +Save.StarterScript.Label=Save Starter Script File... (Ctrl + S) +Save.StarterScript.Tooltip=Save Starter Script File... (Ctrl + S){crlf;}Hold down SHIFT while clicking the icon to specify the target version for the starter script while saving. +About.ToolButton=About... +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +SaveScript.Ctrl.Shift.Label=Save Starter Script File as... (Ctrl + Shift + S) +Enable.Write.Access.Button=Enable write access... +Configure.Target.Button=Configure target script version... +Change.Editor.Font.Button=Change Editor Font... +NormalizeSpacing.Button=Normalize Spacing +Starter.Scripts.Message=Starter Scripts allow you to run commands when installing Windows images with your unattended answer file. Use this application to create your own starter scripts that you can share with other people, or modify existing starter scripts to suit your needs.{crlf;}{crlf;}Use the buttons in the toolbar to create, open, and save starter scripts. +LineColumn.Label=Line, Column +WordWrap.CheckBox=Word Wrap +Import.Existing.Button=Import Existing Script... +ScriptCode.Label=Script Code: +ScriptLanguage.Label=Script Language: +Script.Description.Label=Script Description: +ScriptName.Label=Script Name: +ScriptOptions.CheckBox=Script contains configurable options +Starter.Scripts.Dtss.Filter=Starter Scripts|*.dtss +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd|PowerShell scripts|*.ps1|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript Scripts|*.js;*.jse +Import.Existing.Script.Title=Import Existing Script +StarterScript.Editor.Label=Starter Script Editor + +[StarterScript.Designer.Version] +Ok.Button=OK +Cancel.Button=Cancel +ConfiguredScript.Message=This starter script can be configured to work with specific versions of DISMTools and the Starter Script Editor. Choose the version that you want to target with this script and click OK: +Target.Future08.RadioButton=This starter script targets DISMTools 0.8 and future versions +Target.Legacy073.RadioButton=This starter script targets DISMTools 0.7.3 +TargetVersion.Label=Choose target version for this script + +[ThemeDesigner.Designer.Main] +ThemeColors.Group=Theme Colors +OptionFour.Label=4 +OptionThree.Label=3 +OptionTwo.Label=2 +OptionOne.Label=1 +Change.Button=Change... +Bg.Color.Inner.Label=Background Color for Inner Sections: +ForegroundColor.Label=Foreground Color: +Inactive.Colors.Label=(Inactive colors are calculated by the theme engine) +AccentColors.Label=Accent Colors: +BackgroundColor.Label=Background Color: +DISM.Tools.Dark.CheckBox=DISMTools should use dark mode glyphs +ThemeName.Label=Theme Name: +See.Changes.Live.Label=See your changes live on the preview section below: +NewTheme.Label=New Theme +Open.Theme.File.Button=Open Theme File... +Save.Theme.File.Button=Save theme file... +About.Button=About... +Value.Option4.Label=4 +Value.Option3.Label=3 +Value.Option2.Label=2 +Heuristic.Reasoning.Message=Heuristic reasoning is reasoning not regarded as final and strict but as provisional and plausible only, whose purpose is to discover the solution of the present problem. We are often obliged to use heuristic reasoning. We shall attain complete certainty when we shall obtain the complete solution, but before obtaining certainty we must often be satisfied with a more or less plausible guess. We may need the provisional before we attain the final. +Inactivecontrol.Label=INACTIVE CONTROL +Activecontrol.Label=ACTIVE CONTROL +Label.Inner.Section.Label=Label in Inner Section +Value.Option1.Label=1 +TestControl.Label=Test Control 1 +Theme.Files.Ini.Filter=Theme Files|*.ini +SaveFile.Filter=Theme Files|*.ini +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +Enable.Write.Access.Button=Enable write access... +DISM.Tools.Theme.Label=DISMTools Theme Designer + +[Updater.Designer.Main] +DISM.Tools.Update.Label=DISMTools Update Check System - Version +ProductUpdates.Label=Product updates +Update.Button=Update +View.Release.Notes.Link=View release notes +VersionInfo.Label=Version information +Close.Open.Message=Please close any open DISMTools windows, while saving any projects loaded, and then click {quot;}Update{quot;} +NewVersion.Label=There is a new version available to download and install: +Progress.Label=Progress +CheckingUpdates.Label=Checking for updates... +Launch.Ready.CheckBox=Launch when ready +Finishing.Update.Label=Finishing update installation +InstallingUpdate.Label=Installing the update +Prepare.Update.Install.Label=Preparing update installation +Downloading.Update.Label=Downloading the update +Update.Take.Time.Label=The update may take some time to install. +Wait.Update.Label=Please wait while we update your copy of DISMTools. This may take some time. +Updating.DISM.Tools.Label=Updating DISMTools... +Launch.Button=Launch +Version.Come.New.Message=This version may come with new settings you may not have set previously. Your old settings file will be migrated to this version. +DISM.Tools.Updated.Label=DISMTools has been updated successfully. You can now enjoy the new features of this release. +UpdateComplete.Label=Update complete + +[PEHelper.Designer.Main] +WhatWant.Label=What do you want to do? +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartPXE.Link=Start a PXE Helper Server for Network Installation +Exit.Button=Exit +Explore.Contents.Disc.Link=Explore contents of this disc +Prepare.System.Image.Link=Prepare System for Image Capture +PE.Helper.Message=PE Helper Scripts and Components (c) 2024-2026 CodingWonders SoftwareCompilation Scripts (c) 2022 CT Tech Group LLCFOG PowerShell API (c) 2020 JJ Fullmer +StartPXE.Label=Start a PXE Helper Server for Network Installation +Back.Button=Back +Copy.Install.Image.Link=Copy installation image to WDS server +Copy.Boot.Image.Link=Copy boot image to WDS server +StartPXE.PXEFOG.Link=Start PXE Helper Server for FOG +StartPXE.PXE.Windows.Link=Start PXE Helper Server for Windows Deployment Services +DISM.Tools.PE.Label=DISMTools Preinstallation Environment + +[PEHelper.Designer.ServerPort] +Ok.Button=OK +Cancel.Button=Cancel +Components.Disc.Rely.Message=Server components in this disc rely on ports to listen to requests from clients. If a port is in use by another program or service, you can use this dialog to specify a different port for the server components.{crlf;}{crlf;}The port you specify here will be used until you close the main menu. When you click OK, the server component will be launched using that port. Otherwise, it will be launched using either the default port or the previously configured port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[PEHelper.Designer.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +Cancel.Link=Cancel launch of this tool +ManualMode.Link=Launch in Manual mode (advanced) +AutomaticMode.Link=Launch in Automatic mode (recommended) +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other preferences to new user profiles +PrepareCapture.Label=Prepare System for Image Capture + +[PEHelper.Designer.WDSArch] +Okbutton.Button=OK +CancelButton.Button=Cancel +Architecture.Label=Target architecture: +Architecture.Label.Label=Specify architecture for target WDS boot image + +[PEHelper.Designer.WDSGroup] +Ok.Button=OK +Cancel.Button=Cancel +Action.Choose.Label=Choose an action: +Refresh.Button=Refresh +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[PEHelper.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +AutomaticMode.Link=Launch in Automatic mode (recommended) +ManualMode.Link=Launch in Manual mode (advanced) +Cancel.Link=Cancel launch of this tool +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other current preferences for new user profiles + +[Progress.LogText] +Of.Word={space;}of{space;} +Creating.Project.Structure=Creating project structure... +Project.Created.Successfully=Project created successfully. +An.Error.Has.Occurred.Please.Read.The.Details=An error has occurred. Please read the details below:{space;} +Debugging.Information=Debugging information:{space;} +Appending.Mount.Directory.To.Specified.Target.Image=Appending mount directory to specified target image... +Options=Options: +Source.Image.Directory=- Source image directory:{space;} +Destination.Image.File=- Destination image file:{space;} +Destination.Image.Name=- Destination image name:{space;} +Destination.Image.Description=- Destination image description:{space;} +None.Specified=(none specified) +Configuration.List.File.Not.Specified=- Configuration list file: not specified +Configuration.List.File=- Configuration list file:{space;} +WARNING.The.Configuration.List.File.Does.Not.Exist={space;}{space;}{space;}WARNING: the configuration list file does not exist in the file system. Skipping file... +Append.Image.With.WIMBOOT.Configuration=- Append image with WIMBoot configuration?{space;} +Yes=Yes +No=No +Make.Image.Bootable=- Make image bootable?{space;} +Verify.Image.Integrity=- Verify image integrity?{space;} +Check.For.File.Errors=- Check for file errors?{space;} +Use.The.Reparse.Point.Tag.Fix=- Use the reparse point tag fix?{space;} +Capture.Extended.Attributes=- Capture extended attributes?{space;} +Gathering.Error.Level=Gathering error level... +Error.Level.0x={space;}{space;}{space;}{space;}Error level : 0x +Error.Level={space;}{space;}{space;}{space;}Error level :{space;} +Applying.Image=Applying image... +Source.Image.File=- Source image file:{space;} +Index.To.Apply=- Index to apply:{space;} +Target.Directory=- Target directory:{space;} +Split.FFU.SFU.File.Pattern.Not.Specified.Not=- Split FFU (SFU) file pattern: not specified/not using SFU file +Split.FFU.SFU.File.Pattern=- Split FFU (SFU) file pattern:{space;} +Verify.Image.Integrity.Yes=- Verify image integrity? Yes +Verify.Image.Integrity.No=- Verify image integrity? No +Check.For.File.Errors.Yes=- Check for file errors? Yes +Check.For.File.Errors.No=- Check for file errors? No +Use.Reparse.Point.Tag.Fix.Yes=- Use reparse point tag fix? Yes +Use.Reparse.Point.Tag.Fix.No=- Use reparse point tag fix? No +Split.WIM.SWM.File.Pattern.Not.Specified.Not=- Split WIM (SWM) file pattern: not specified/not using SWM file +Split.WIM.SWM.File.Pattern=- Split WIM (SWM) file pattern:{space;} +Validate.For.Trusted.Desktop.Yes=- Validate for Trusted Desktop? Yes +Validate.For.Trusted.Desktop.No.Not.Supported=- Validate for Trusted Desktop? No/Not supported +Apply.Using.WIMBOOT.Configuration.Yes=- Apply using WIMBoot configuration? Yes +Apply.Using.WIMBOOT.Configuration.No=- Apply using WIMBoot configuration? No +Use.Compact.Mode.Yes=- Use Compact mode? Yes +Use.Compact.Mode.No=- Use Compact mode? No +Apply.Using.Extended.Attributes.Yes=- Apply using extended attributes? Yes +Apply.Using.Extended.Attributes.No=- Apply using extended attributes? No +Capturing.Directory=Capturing directory... +Source.Directory=- Source directory:{space;} +Destination.Image=- Destination image:{space;} +Captured.Image.Name=- Captured image name:{space;} +Captured.Image.Description.None.Specified=- Captured image description: none specified +Captured.Image.Description=- Captured image description:{space;} +Compression.Type.None=- Compression type: none +Compression.Type.Default=- Compression type: default +Capturing.Image=Capturing image... +Compression.Type.Fast=- Compression type: fast +Compression.Type.Maximum=- Compression type: maximum +Mark.Image.As.Bootable.Yes=- Mark image as bootable? Yes +Mark.Image.As.Bootable.No=- Mark image as bootable? No +Check.Image.Integrity.Yes=- Check image integrity? Yes +Check.Image.Integrity.No=- Check image integrity? No +Verify.File.Errors.Yes=- Verify file errors? Yes +Verify.File.Errors.No=- Verify file errors? No +Use.The.Reparse.Point.Tag.Fix.Yes=- Use the Reparse Point tag fix? Yes +Use.The.Reparse.Point.Tag.Fix.No=- Use the Reparse Point tag fix? No +Append.With.WIMBOOT.Configuration.Yes=- Append with WIMBoot configuration? Yes +Append.With.WIMBOOT.Configuration.No=- Append with WIMBoot configuration? No +Capture.Extended.Attributes.Yes=- Capture extended attributes? Yes +Capture.Extended.Attributes.No=- Capture extended attributes? No +Cleaning.Up.Mount.Points=Cleaning up mount points... +This.Can.Take.Some.Time.Depending.On.The=This can take some time, depending on the drives connected to this system. +Saving.Changes=Saving changes... +Mount.Directory=- Mount directory:{space;} +Removing.Volume.Images.From.File=Removing volume images from file... +Source.Image=- Source image:{space;} +Removing.Volume.Images=Removing volume images... +Error.Level.2={space;}Error level :{space;} +Error.Level.0x.2={space;}Error level : 0x +Exporting.The.Specified.Image.To.A.Destination.Image=Exporting the specified image to a destination image... +Source.Image.Index=- Source image index:{space;} +Compression.Type.No.Compression=- Compression type: no compression +Compression.Type.Fast.Compression=- Compression type: fast compression +Compression.Type.Maximum.Compression=- Compression type: maximum compression +Compression.Type.ESD.Conversion.Recovery=- Compression type: ESD conversion (recovery) +Mark.The.Image.As.Bootable=- Mark the image as bootable?{space;} +Check.Image.Integrity.Before.Exporting.The.Image=- Check image integrity before exporting the image?{space;} +NOTE.The.Source.Image.Contains.An.Asterisk.Sign=NOTE: the source image contains an asterisk sign (*) in the file name to merge all SWM files +Mounting.Image=Mounting image... +Image.File=- Image file:{space;} +Image.Index=- Image index:{space;} +Mount.Point=- Mount point:{space;} +Mount.Image.With.Read.Only.Permissions.Yes=- Mount image with read-only permissions? Yes +Mount.Image.With.Read.Only.Permissions.No=- Mount image with read-only permissions? No +Optimize.Mount.Time.Yes=- Optimize mount time? Yes +Optimize.Mount.Time.No=- Optimize mount time? No +Optimizing.Windows.Image=Optimizing Windows image... +Source.Image.To.Optimize=- Source image to optimize:{space;} +Partition.To.Optimize=- Partition to optimize:{space;} +Default.Partition.In.The.FFU.Will.Be.Optimized={space;}(Default partition in the FFU will be optimized) +Getting.Error.Level=Getting error level... +Optimization.Mode=- Optimization mode:{space;} +Reduce.Online.Configuration.Time=Reduce online configuration time +Prepare.Image.For.WIMBOOT.System=Prepare image for WIMBoot system +Reloading.Servicing.Session=Reloading servicing session... +Splitting.FFU.File.Into.SFU.Files=Splitting FFU file into SFU files... +Source.Image.File.To.Split=- Source image file to split:{space;} +Maximum.Size.Of.The.Split.Images.In.MB=- Maximum size of the split images (in MB):{space;} +Name.And.Path.Of.The.Target.SFU.File=- Name and path of the target SFU file:{space;} +Check.Integrity.Before.Splitting.This.Image=- Check integrity before splitting this image?{space;} +Do.Note.That.If.The.Image.Contains.A=Do note that, if the image contains a large file that can't fit within the maximum size, a SFU file may be larger than the rest, to accommodate it. +Splitting.WIM.File.Into.SWM.Files=Splitting WIM file into SWM files... +Name.And.Path.Of.The.Target.SWM.File=- Name and path of the target SWM file:{space;} +Do.Note.That.If.The.Image.Contains.A.2=Do note that, if the image contains a large file that can't fit within the maximum size, a SWM file may be larger than the rest, to accommodate it. +Unmounting.Image.File.From.Mount.Point=Unmounting image file from mount point... +Unmount.Operation.Commit=- Unmount operation: Commit +Unmount.Operation.Discard=- Unmount operation: Discard +Append.Changes.To.New.Index.Yes=- Append changes to new index? Yes +Append.Changes.To.New.Index.No=- Append changes to new index? No +Package.Name=- Package name:{space;} +Package.Description=- Package description:{space;} +Package.Release.Type=- Package release type:{space;} +Package.Is.Applicable.To.This.Image=- Package is applicable to this image?{space;} +Package.Is.Already.Installed=- Package is already installed?{space;} +Total.Number.Of.Packages=Total number of packages:{space;} +Exception=Exception{space;} +Has.Occurred.While.Enumerating.Packages.Enumerating.Packages.In={space;}has occurred while enumerating packages. Enumerating packages in the top folder... +Total.Number.Of.Packages.1=Total number of packages: 1 +Adding.Packages.To.Mounted.Image=Adding packages to mounted image... +Package.Source=- Package source:{space;} +Addition.Operation.Recursive=- Addition operation: recursive +Addition.Operation.Selective=- Addition operation: selective +Ignore.Applicability.Checks.Yes=- Ignore applicability checks? Yes +Ignore.Applicability.Checks.No=- Ignore applicability checks? No +Prevent.Package.Addition.If.Online.Actions.Need.To=- Prevent package addition if online actions need to be performed? Yes +NOTE.If.The.Mounted.Image.Requires.That.Online=NOTE: if the mounted image requires that online actions be performed, all packages might fail installation; but the operation might still be successful +Prevent.Package.Addition.If.Online.Actions.Need.To.2=- Prevent package addition if online actions need to be performed? No +Commit.Image.After.Operations.Are.Done.Yes=- Commit image after operations are done? Yes +Commit.Image.After.Operations.Are.Done.No=- Commit image after operations are done? No +Enumerating.Packages.To.Add.Please.Wait=Enumerating packages to add. Please wait... +Processing=Processing{space;} +Packages={space;}packages... +Some.Packages.Require.A.System.Restart.To.Be=Some packages require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Package=Package{space;} +Package.Is.Already.Added.Skipping.Installation.Of.This=Package is already added. Skipping installation of this package... +Package.Is.Not.Applicable.To.This.Image.Skipping=Package is not applicable to this image. Skipping installation of this package... +The.Package.About.To.Be.Added.Is.A=The package about to be added is a MSU file. Continuing... +Processing.Package=Processing package... +Error.Level.3={space;}Error level:{space;} +Gathering.Error.Level.For.Selected.Packages=Gathering error level for selected packages... +Package.No=- Package no.{space;} +The.Package.About.To.Be.Added.Is.A.2=The package about to be added is a Microsoft Update Manifest (MUM) file. +Removing.Packages.From.Mounted.Image=Removing packages from mounted image... +Enumerating.Packages.To.Remove.Please.Wait=Enumerating packages to remove. Please wait... +Amount.Of.Packages.To.Remove=Amount of packages to remove:{space;} +Package.State.Installed=- Package state: installed +Package.State.An.Uninstall.Is.Pending=- Package state: an uninstall is pending +Package.State.An.Install.Is.Pending=- Package state: an install is pending +Processing.Package.Removal=Processing package removal... +This.Package.Can.T.Be.Removed.Skipping.Removal=This package can't be removed. Skipping removal of this package... +Package.State=- Package state:{space;} +Enabling.Features=Enabling features... +Use.Parent.Package.To.Enable.Features.Yes=- Use parent package to enable features? Yes +Use.Parent.Package.To.Enable.Features.No=- Use parent package to enable features? No +Parent.Package.Name.Not.Specified=- Parent package name: not specified +Parent.Package.Name=- Parent package name:{space;} +Use.Feature.Source.Yes=- Use feature source? Yes +Use.Feature.Source.No=- Use feature source? No +Feature.Source.Not.Specified=- Feature source: not specified +Feature.Source=- Feature source:{space;} +Enable.All.Parent.Features.Yes=- Enable all parent features? Yes +Enable.All.Parent.Features.No=- Enable all parent features? No +Contact.Windows.Update.Yes=- Contact Windows Update? Yes +Contact.Windows.Update.No.The.System.Is.In=- Contact Windows Update? No, the system is in Safe Mode +Contact.Windows.Update.No.This.Is.Not.An=- Contact Windows Update? No, this is not an online installation +Contact.Windows.Update.No=- Contact Windows Update? No +Commit.Image.After.Enabling.Features.Yes=- Commit image after enabling features? Yes +Commit.Image.After.Enabling.Features.No=- Commit image after enabling features? No +Enumerating.Features.To.Enable=Enumerating features to enable... +Total.Number.Of.Features.To.Enable=Total number of features to enable:{space;} +Feature=Feature{space;} +Feature.Name=- Feature name:{space;} +Feature.Description=- Feature description:{space;} +Gathering.Error.Level.For.Selected.Features=Gathering error level for selected features... +Feature.No=- Feature no.{space;} +Some.Features.Require.A.System.Restart.To.Be=Some features require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Disabling.Features=Disabling features... +Use.Parent.Package.To.Disable.Features.Yes=- Use parent package to disable features? Yes +Use.Parent.Package.To.Disable.Features.No=- Use parent package to disable features? No +Remove.Feature.Manifest.Yes=- Remove feature manifest? Yes +Remove.Feature.Manifest.No=- Remove feature manifest? No +Enumerating.Features.To.Disable=Enumerating features to disable... +Total.Number.Of.Features.To.Disable=Total number of features to disable:{space;} +Reverting.Pending.Servicing.Actions=Reverting pending servicing actions... +Cleaning.Up.Service.Pack.Backup.Files=Cleaning up Service Pack backup files... +Hide.Service.Packs.From.The.Installed.Updates.List=- Hide Service Packs from the Installed Updates list?{space;} +Cleaning.Up.The.Component.Store=Cleaning up the component store... +Perform.Superseded.Component.Base.Reset=- Perform superseded component base reset?{space;} +Defer.Long.Running.Operations=- Defer long-running operations?{space;} +Analyzing.The.Component.Store=Analyzing the component store... +Checking.The.Component.Store.Health=Checking the component store health... +Scanning.The.Component.Store=Scanning the component store... +Repairing.The.Component.Store=Repairing the component store... +Use.Different.Source=- Use different source?{space;} +Yes.2=Yes ( +Limit.Windows.Update.Access=- Limit Windows Update access?{space;} +No.This.Is.Not.An.Online.Installation=No, this is not an online installation +The.System.Is.In.Safe.Mode=, the system is in Safe Mode +Adding.Provisioning.Package.To.The.Image=Adding provisioning package to the image... +Provisioning.Package=- Provisioning package:{space;} +Catalog.File=- Catalog file:{space;} +None.Specified.2=none specified +Commit.Image.After.Adding.Provisioning.Package=- Commit image after adding provisioning package?{space;} +Adding.Provisioned.APPX.Packages=Adding provisioned AppX packages... +Use.A.License.File.For.APPX.Packages.Yes=- Use a license file for AppX packages? Yes +License.File=- License file:{space;} +Use.A.License.File.For.APPX.Packages.No=- Use a license file for AppX packages? No +License.File.Not.Using=- License file: not using +Use.A.Custom.Data.File.For.APPX.Packages=- Use a custom data file for AppX packages? Yes +Custom.Data.File=- Custom data file:{space;} +Use.A.Custom.Data.File.For.APPX.Packages.2=- Use a custom data file for AppX packages? No +Custom.Data.File.Not.Using=- Custom data file: not using +Use.All.Regions.For.APPX.Packages.Yes=- Use all regions for AppX packages? Yes +Package.Regions.All=- Package regions: all +Use.All.Regions.For.APPX.Packages.No=- Use all regions for AppX packages? No +Package.Regions=- Package regions:{space;} +Commit.Image.After.Adding.APPX.Packages.Yes=- Commit image after adding AppX packages? Yes +Commit.Image.After.Adding.APPX.Packages.No=- Commit image after adding AppX packages? No +Enumerating.APPX.Packages.To.Add=Enumerating AppX packages to add... +Total.Number.Of.Packages.To.Add=Total number of packages to add:{space;} +APPX.Package.File=- AppX package file:{space;} +Application.Name=- Application name:{space;} +Application.Publisher=- Application publisher:{space;} +Application.Version=- Application version:{space;} +The.Application.About.To.Be.Added.Is.An=The application about to be added is an encrypted file. Since the program is managing the active installation, a PowerShell command will be run. +The.Application.About.To.Be.Added.Is.An.2=The application about to be added is an encrypted file. Encrypted packages can only be added to active installations. Skipping this package... +Warning.The.License.File.Does.Not.Exist.Continuing=Warning: the license file does not exist. Continuing without one... +Do.Note.That.If.This.App.Requires.A={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Do note that, if this app requires a license file, it may fail addition. +Also.This.May.Compromise.The.Image={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Also, this may compromise the image. +The.Following.Dependency.Packages.Will.Be.Installed.Alongside=- The following dependency packages will be installed alongside this application: +Dependency={space;}{space;}{space;}{space;}- Dependency:{space;} +Warning.The.Dependency=Warning: the dependency +Does.Not.Exist.In.The.File.System.Skipping=does not exist in the file system. Skipping dependency... +Warning.The.Custom.Data.File.Does.Not.Exist=Warning: the custom data file does not exist. Continuing without one... +Gathering.Error.Level.For.Selected.APPX.Packages=Gathering error level for selected AppX packages... +Application.Is.Registered.To.A.User.No=- Application is registered to a user? No +Application.Is.Registered.To.A.User.Yes=- Application is registered to a user? Yes +The.Removal.Of.This.Application.May.Require.You={space;}{space;}The removal of this application may require you to use PowerShell to completely remove it +A.PowerShell.Helper.Will.Be.Used.To.Remove=A PowerShell helper will be used to remove AppX packages. Please wait... +Log.Off.For.The.Deprovisioning.Of.Applications.To=Log off for the deprovisioning of applications to be fully carried out. +Removing.Provisioned.APPX.Packages=Removing provisioned AppX packages... +Enumerating.APPX.Packages.To.Remove=Enumerating AppX packages to remove... +Total.Number.Of.Packages.To.Remove=Total number of packages to remove:{space;} +Display.Name=- Display name:{space;} +Setting.The.Keyboard.Layered.Driver=Setting the keyboard layered driver... +Current.Keyboard.Layered.Driver=- Current keyboard layered driver:{space;} +New.Keyboard.Layered.Driver=- New keyboard layered driver:{space;} +Adding.Capabilities.To.Mounted.Image=Adding capabilities to mounted image... +Use.A.Source.For.Capability.Addition=- Use a source for capability addition?{space;} +Capability.Source=- Capability source:{space;} +No.Source.Has.Been.Provided=No source has been provided +Limit.Access.To.Windows.Update=- Limit access to Windows Update?{space;} +Commit.Image.After.Adding.Capabilities=- Commit image after adding capabilities?{space;} +Warning.The.Specified.Source.Does.Not.Exist.In=Warning: the specified source does not exist in the file system, and it will be skipped +Enumerating.Capabilities.To.Add.Please.Wait=Enumerating capabilities to add. Please wait... +Total.Number.Of.Capabilities=Total number of capabilities:{space;} +Capability=Capability{space;} +Capability.Identity=- Capability identity:{space;} +Capability.Name=- Capability name:{space;} +Capability.Description=- Capability description:{space;} +Gathering.Error.Level.For.Selected.Capabilities=Gathering error level for selected capabilities... +Capability.No=- Capability no.{space;} +Some.Capabilities.Require.A.System.Restart.To.Be=Some capabilities require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Removing.Capabilities.From.Mounted.Image=Removing capabilities from mounted image... +Enumerating.Capabilities.To.Remove.Please.Wait=Enumerating capabilities to remove. Please wait... +Setting.The.New.Image.Edition=Setting the new image edition... +New.Edition=- New edition:{space;} +Will.The.EULA.Be.Copied=- Will the EULA be copied?{space;} +Yes.To.The.Following.Destination=Yes, to the following destination:{space;} +Will.The.EULA.Be.Accepted=- Will the EULA be accepted?{space;} +Yes.With.The.Following.Product.Key=Yes, with the following product key:{space;} +Setting.The.New.Product.Key=Setting the new product key... +New.Product.Key=- New product key:{space;} +Adding.Driver.Packages.To.Mounted.Image=Adding driver packages to mounted image... +Force.Installation.Of.Unsigned.Drivers=- Force installation of unsigned drivers?{space;} +Commit.Image.After.Adding.Driver.Packages=- Commit image after adding driver packages?{space;} +Warning.The.Option.To.Force.Installation.Of.Unsigned=Warning: the option to force installation of unsigned drivers has been checked. Do note that unsigned drivers might cause instability on the resulting Windows image. +Enumerating.Drivers.To.Add.Please.Wait=Enumerating drivers to add. Please wait... +Total.Number.Of.Drivers=Total number of drivers:{space;} +Driver=Driver{space;} +Hardware.Description=- Hardware description:{space;} +Hardware.ID=- Hardware ID:{space;} +Additional.IDs=- Additional IDs +Compatible.IDs={space;}{space;}- Compatible IDs:{space;} +Excluded.IDs={space;}{space;}- Excluded IDs:{space;} +Hardware.Manufacturer=- Hardware manufacturer:{space;} +Hardware.Architecture=- Hardware architecture:{space;} +This.Driver.File.Targets.More.Than.10.Devices=This driver file targets more than 10 devices. To avoid creating log files large in size, we will not show information of this driver package, and will proceed anyway. +If.You.Want.To.Get.Information.Of.This=If you want to get information of this driver package, go to Commands > Drivers > Get driver information > I want to get information about driver files, and specify this driver file: +We.Couldn.T.Get.Information.Of.This.Driver=We couldn't get information of this driver package. Proceeding anyway... +The.Driver.Package.Currently.About.To.Be.Processed=The driver package currently about to be processed is a folder, so information about it can't be obtained. Proceeding anyway... +This.Folder.Will.Be.Scanned.Recursively.Driver.Addition=This folder will be scanned recursively. Driver addition may take a longer time... +Gathering.Error.Level.For.Selected.Drivers=Gathering error level for selected drivers... +Driver.No=- Driver no.{space;} +Removing.Driver.Packages.From.Mounted.Image=Removing driver packages from mounted image... +Getting.Image.Drivers.This.May.Take.Some.Time=Getting image drivers. This may take some time... +Enumerating.Drivers.To.Remove.Please.Wait=Enumerating drivers to remove. Please wait... +Exporting.Drivers.To.Specified.Folder=Exporting drivers to specified folder... +Export.Target=- Export target:{space;} +Export.All.Drivers.Or.Just.Those.With.Matching=- Export all drivers, or just those with matching class names?{space;} +All.Drivers=All Drivers +Drivers.With.Matching.Class.Name=Drivers with matching class name +If.Not.All.Drivers.Are.Exported.Which.Class=- If not all drivers are exported, which class name is used for drivers that will be exported?{space;} +Driver.S.Will.Be.Exported.To.The.Destination={space;}driver(s) will be exported to the destination +Exporting.Driver.File=Exporting driver file{space;} +Getting.Image.Drivers=Getting image drivers... +Importing.Third.Party.Drivers=Importing third party drivers... +Driver.Import.Source.Windows.Image=- Driver import source: Windows image ( +Driver.Import.Source.Active.Installation=- Driver import source: active installation +Driver.Import.Source.Offline.Installation=- Driver import source: offline installation ( +Creating.Temporary.Folder.For.Driver.Exports=Creating temporary folder for driver exports... +The.Temporary.Folder.Could.Not.Be.Created.See=The temporary folder could not be created. See below for reasons why: +Exporting.Third.Party.Drivers.From.Import.Source=Exporting third-party drivers from import source... +Importing.Third.Party.Drivers.From.The.Temporary.Export=Importing third-party drivers from the temporary export directory to the destination image... +Deleting.Temporary.Export.Directory=Deleting temporary export directory... +We.Couldn.T.Delete.The.Temporary.Export.Directory=We couldn't delete the temporary export directory. You'll need to delete the{space;} +Export.Temp=export_temp +Directory.Manually={space;}directory manually. +Published.Name=- Published name:{space;} +Provider.Name=- Provider name:{space;} +Class.Name=- Class name:{space;} +Class.Description=- Class description:{space;} +Class.GUID=- Class GUID:{space;} +Version.And.Date=- Version and date:{space;} +Is.Part.Of.The.Windows.Distribution=- Is part of the Windows distribution?{space;} +Is.Critical.To.The.Boot.Process=- Is critical to the boot process?{space;} +Warning.This.Driver.Package.Is.Part.Of.The=Warning: this driver package is part of the Windows distribution. Some areas may no longer work after this driver has been removed +Warning.This.Driver.Package.Is.Critical.To.The=Warning: this driver package is critical to the boot process. The target image may no longer boot or work correctly after this driver has been removed +Applying.Unattended.Answer.File.Options=Applying unattended answer file. Options: +Unattended.Answer.File=- Unattended answer file:{space;} +Creating.Directories.And.Copying.Files=Creating directories and copying files... +The.Unattended.Answer.File.Has.Been.Successfully.Copied=The unattended answer file has been successfully copied. +Setting.The.Windows.PE.Target.Path=Setting the Windows PE target path... +New.Target.Path=- New target path:{space;} +Setting.The.Windows.PE.Scratch.Space=Setting the Windows PE scratch space... +New.Scratch.Space.Amount=- New scratch space amount:{space;} +Setting.The.Amount.Of.Days.An.Uninstall.Can=Setting the amount of days an uninstall can happen... +Number.Of.Days=Number of days:{space;} +Removing.The.Ability.To.Revert.To.An.Old=Removing the ability to revert to an old installation of Windows... +Preparing.Operating.System.Rollback=Preparing operating system rollback... +Converting.Image=Converting image... +Index.To.Convert=- Index to convert:{space;} +Image.Conversion.Mode.Windows.Imaging.WIM.Electronic.Software=- Image conversion mode: Windows Imaging (WIM) --> Electronic Software Distribution (ESD) +Image.Conversion.Mode.Electronic.Software.Distribution.ESD.Windows=- Image conversion mode: Electronic Software Distribution (ESD) --> Windows Imaging (WIM) +Merging.SWM.Files.Into.A.WIM.File=Merging SWM files into a WIM file... +Target.Index=- Target index:{space;} +Switching.Image.Indexes=Switching image indexes... +Target.Mount.Directory=- Target mount directory:{space;} +Target.Image.Index=- Target image index:{space;} +Commit.Source.Index.Yes=- Commit source index? Yes +Commit.Source.Index.No=- Commit source index? No +Could.Not.Commit.Changes.To.The.Image.Discarding=Could not commit changes to the image. Discarding changes... +Mounting.Image.Index=Mounting image (index:{space;} +Replacing.FFU.File=Replacing FFU file{space;} +With={space;}with{space;} +The.FFU.File.Has.Been.Successfully.Replaced=The FFU file has been successfully replaced. +The.FFU.File.Could.Not.Be.Replaced=The FFU file could not be replaced:{space;} +Warning.The.Contents.Of.The.Log.Window.Could=Warning: the contents of the log window could not be saved to the log file. Reason:{space;} +The.Volume.Images.Have.Been.Deleted.If.You=The volume images have been deleted. If you want to remount this image into a DISMTools project, choose the{space;} +Mount.Image=Mount image +Option.Or.Use.This.Command.If.You.Want={space;}option, or use this command if you want to mount it elsewhere: +DISM.Mount.Image.Imagefile={space;}{space;}dism /mount-image /imagefile: +Index.Preferred.Index.Mountdir.Preferred.Mountpoint={space;}/index: /mountdir: +The.Specified.Image.Is.Already.Mounted.This.Command=The specified image is already mounted. This command works for{space;} +Orphaned=orphaned +Images={space;}images +The.Program.Tried.To.Save.Changes.To.An=The program tried to save changes to an image that was mounted as read-only.{space;} +To.Solve.This.Close.This.Dialog.And.Click=To solve this, close this dialog, and click{space;} +Tools.Remount.Image.With.Write.Permissions=Tools > Remount image with write permissions +Do.Note.That.If.The.Image.Came.From=Do note that, if the image came from an installation medium, you may need to copy the source file to perform modifications to it. +The.Program.Tried.To.Unmount.The.Image.But=The program tried to unmount the image, but some applications or processes have opened files or directories of the image. +Make.Sure.No.Application.Or.Process.Is.Using=Make sure no application or process is using the directories or files of the image. +If.The.Error.Occurred.At.The.End.Of=If the error occurred at the end of the operation (e.g., at 100%), and you were trying to save the changes; they might already be saved, and can be safe to continue discarding changes. +The.Mounted.Image.Cannot.Be.Committed.Back.Into=The mounted image cannot be committed back into the source file. +A.Partial.Unmount.Might.Have.Happened.Or.The=A partial unmount might have happened, or the image was still being mounted. +If.The.Image.Was.Unmounted.Whilst.Saving.Changes=If the image was unmounted whilst saving changes, the commit probably succeeded. Please validate this. If this is the case, proceed with unmounting the image discarding changes. +The.Source.File.Comes.From.A.Read.Only=The source file comes from a read-only source. You cannot mount it with read-write permissions. +Please.Re.Specify.The.Image.In.The.Mount=Please re-specify the image in the mount dialog whilst checking the{space;} +Read.Only=Read-only +Check.Box.You.Can.Also.Try.Copying.The={space;}check box. You can also try copying the source image to a folder with read-write permissions. +There.Is.Essential.Data.That.Was.Not.Picked=There is essential data that was not picked internally by the operation. This may be a bug in the software or a feature may be incomplete. +No.Packages.Have.Been.Added.Successfully.Try.Looking=No packages have been added successfully. Try looking up the error codes on the Internet +No.Packages.Have.Been.Removed.Successfully.Try.Looking=No packages have been removed successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Enabled.Successfully.Try.Looking=No features have been enabled successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Disabled.Successfully.Try.Looking=No features have been disabled successfully. Try looking up the error codes on the Internet +Either.This.Operation.Has.Failed.Or.Some.Drivers=Either this operation has failed or some drivers were not installed. Consider reloading this project or mode to see whether there are driver changes. +If.There.Are.Driver.Changes.Consider.Reading.The=If there are driver changes, consider reading the driver installation logs, stored in the INF directory of the target image. Otherwise, export the drivers you want to add from the source image and add them to the target image manually. +You.Can.Also.Manually.Customize.The.Export.Directory=You can also manually customize the export directory by deleting the drivers you don't need. This may be another way to fix this problem, but you will need to temporarily pause the driver addition procedure before it scans the export directory (this can be done by selecting anything from the DISM command prompt window that appears when performing an operation) +The.Program.Has.Suffered.A.Keyboard.Interrupt.Or=The program has suffered a keyboard interrupt, or a forced program closure. The operation has been cancelled. If you have done it accidentally, you may run it again +The.Microsoft.Edge.Components.Have.Already.Been.Installed=The Microsoft Edge components have already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.Browser.Has.Already.Been.Installed=The Microsoft Edge browser has already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.WebView2.Component.Has.Already.Been=The Microsoft Edge WebView2 component has already been installed in this image. There isn't anything to do here. +The.Operation.Could.Not.Be.Performed.Because.This=The operation could not be performed because this image has pending online operations. Applying and booting up the image might fix this issue. +The.Rollback.Process.Has.Started.Your.System.Needs=The rollback process has started. Your system needs to be restarted in order to continue. It will restart automatically in 10 seconds. Make sure you have saved your work. +The.Specified.Operation.Completed.Successfully.But.Requires.A=The specified operation completed successfully, but requires a restart in order to be fully applied. Save your work and restart when ready +This.Error.Has.Not.Yet.Been.Added.To=This error has not yet been added to the database, so a useful description can't be shown now. Try running the command manually and, if you see the same error, try looking it up on the Internet. +For.Detailed.Information.Consider.Reading.The.DISM.Operation=For detailed information, consider reading the DISM operation logs. +Cancelling.Background.Processes=Cancelling background processes... +The.Image.Registry.Hives.Need.To.Be.Unloaded=The image registry hives need to be unloaded before continuing to perform the task. +System.Editor.Was.Not.Found=System editor was not found +The.Log.File.Was.Not.Found=The log file was not found diff --git a/language/es-ES.ini b/language/es-ES.ini new file mode 100644 index 000000000..d39c2d85a --- /dev/null +++ b/language/es-ES.ini @@ -0,0 +1,6916 @@ +[LanguageFileInformation] +LanguageAuthor=DISMTools +LanguageCode=es-ES +LanguageName=Español + +[ADDSJoinDialog.ChangePage] +Finish.Label=Finalizar +Next.Button=Siguiente + +[DomainJoin.DNS] +Site.Local.Address.Label=- {0} -- Dirección Site-Local; ya no se usa +MalformedAddress.Label=- {0} -- Dirección con formato incorrecto +AddressSyntax.Message=Resultados de validación de sintaxis de direcciones:{crlf;}- Direcciones no válidas: {0}{crlf;}- Direcciones IPv4: {1}{crlf;}- Direcciones IPv6 globales: {2}{crlf;}- Direcciones IPv6 Link-Local: {3}{crlf;}- Direcciones IPv6 Unique Local: {4}{crlf;}{crlf;}- Proporción válidas/no válidas: {5}%{crlf;}{6}{crlf;}Estas direcciones se configurarán en el archivo de respuesta desatendida. +InvalidAddresses.Label={crlf;}Algunas direcciones no son válidas. Motivo: {crlf;}{crlf;}{0}{crlf;} +AddressValidation.Title=Resultados de validación de direcciones DNS +Verification.Done.Label=La verificación ha finalizado. +Verification.Done.Message=La verificación ha finalizado.{crlf;}{crlf;}{0} + +[DomainJoin.Messages] +PrimarySuffix.Required=Debe proporcionarse un sufijo de dominio principal para DNS +InterfaceAlias.Message=Debe proporcionarse un alias de interfaz para DNS. Son los nombres de los adaptadores de red instalados en el sistema +No.DNSServer.None.Label=No se han proporcionado direcciones de servidores DNS +DomainName.Label=Debe especificarse un nombre de dominio +User.Name.Label=Debe especificarse un nombre de usuario +Password.User.Message=Debe especificarse una contraseña para el usuario indicado, {quot;}{0}{quot;}, según las directivas de seguridad impuestas por el controlador de dominio. +User.Appear.Exist.Message=El usuario indicado, {0}, no parece existir en el dominio proporcionado. Es posible que no pueda iniciar sesión con este usuario a menos que lo cree primero.{crlf;}{crlf;}¿Desea continuar? +Verify.Typed.Message=Revise la información que ha escrito. Si algún campo está mal escrito, el dispositivo cliente podría no unirse al dominio.{crlf;}{crlf;}El dispositivo cliente tampoco se unirá al dominio si ejecuta ediciones Home de Windows.{crlf;}{crlf;}¿Está seguro de que esta configuración es correcta? +VerifySettings.Title=Verificar configuración +Domain.Settings.Message=La configuración del dominio se añadió correctamente al archivo de respuesta. Puede modificar estos componentes en la sección Componentes del sistema. +Add.Domain.Settings.Label=No se pudo añadir la configuración del dominio. +Dnsshort.DomainName.Message=DNS, abreviatura de Domain Name System, es un rol de servidor que traduce automáticamente direcciones IP a nombres legibles.{crlf;}{crlf;}Al usar este asistente, DISMTools asume que usted o el administrador del sistema han configurado DNS en la red. Si no es así, cancele este asistente y configúrelo. +UserDisabled.Message=El usuario seleccionado no está habilitado en el dominio. No podrá iniciar sesión en los dispositivos de destino a menos que se vuelva a habilitar. +AccountDisabled.Title=Cuenta deshabilitada +Computer.Belong.Domain.Label=Este equipo no pertenece a un dominio. +Provide.Domain.Label=Proporcione un dominio para probar la resolución de nombres de dominio. +Nslookupoutput.Label=Salida de NSLOOKUP:{crlf;}{crlf;}{0} +DomainResolution.Title=Resultados de resolución de nombres de dominio + +[ActiveInstallWarn] +Active.Install.Label=Acerca de la administración de instalaciones activas + +[ActiveInstall] +Enter.Online.Message=Está a punto de entrar en el modo de administración de instalaciones en línea, que le permite realizar cambios a su instalación activa de Windows.{crlf;}{crlf;}Dado a que este modo le permite modificar su instalación, debería ser extremadamente cuidadoso al realizar tareas con este programa.{crlf;}{crlf;}Si realiza una operación a una imagen en línea sin tener cuidado, puede romperla, a tal punto que la instalación no pueda iniciar.{crlf;}{crlf;}Nosotros NO SOMOS RESPONSABLES de cualquier daño producido a su instalación activa. Si se queda con un sistema que no puede iniciar, debería reinstalar Windows (haciendo una copia de seguridad de sus archivos en primer lugar, si es posible) +ProjectUnloaded.Label=El proyecto actual será descargado. +Continue.Button=Continuar +Cancel.Button=Cancelar + +[AddCapabilities] +AddCapabilities.Label=Añadir funcionalidades +Image.Task.Header.Label={0} +Source.Label=Origen: +Ok.Button=Aceptar +Cancel.Button=Cancelar +Browse.Button=Examinar... +SelectAll.Button=Seleccionar todas +SelectNone.Button=Seleccionar ninguna +Detect.Group.Policy.Button=Detectar políticas de grupo +Capabilities.Group=Funcionalidades +Options.Group=Opciones +DifferentSource.CheckBox=Especificar un origen diferente para la instalación de funcionalidades +WindowsUpdate.CheckBox=Limitar acceso a Windows Update +Capability.Column=Funcionalidad +State.Column=Estado + +[AddCaps.AddCap] +CommitImage.CheckBox=Guardar imagen tras añadir funcionalidades + +[AddCapabilities.Initialize] +UnsupportedImage.Message=Esta acción no está soportada en esta imagen + +[AddCapabilities.Validation] +SourceRequired.Message=Algunas funcionalidades en esta imagen requieren especificar un origen para ser habilitadas. El origen especificado no es válido para esta operación +Source.Required.Message=Especifique un origen válido e inténtelo de nuevo. +Source.Message=Asegúrese de que el origen exista en el sistema de archivos e inténtelo de nuevo. +Source.Exist.File.Message=El origen especificado no existe en el sistema de archivos. Asegúrese de que existe e inténtelo de nuevo. +Source.Required.No.Message=No se ha especificado un origen. Especifique un origen e inténtelo de nuevo. +Selected.None.Message=No hay funcionalidades seleccionadas para instalar. Seleccione algunas de ellas e inténtelo de nuevo. + +[AddDrivers] +Folder.Label=Carpeta +Title.Label=Añadir controladores +Image.Task.Header.Label={0} +Drivers.Required.Message=Especifique los controladores a añadir usando los botones de abajo o colocándolos en la lista de abajo: +Scan.Driver.Message=Puede dejar que el programa escanee las carpetas de controladores presentes en la lista de abajo de forma recursiva y añadirlos también. Para hacerlo, marque las entradas que le gustaría que fuesen escaneadas: +Ok.Button=Aceptar +Cancel.Button=Cancelar +AddFile.Button=Añadir archivo... +AddFolder.Button=Añadir carpeta... +Remove.Entries.Button=Eliminar todas las entradas +Remove.Selected.Entry.Button=Eliminar entrada seleccionada +Force.Install.CheckBox=Forzar instalación de controladores no firmados +CommitImage.CheckBox=Guardar imagen tras añadir controladores +DriverFiles.Group=Archivos de controladores +DriverFolders.Group=Carpetas de controladores +Options.Group=Opciones +FileFolder.Column=Archivo/Carpeta +Type.Column=Tipo +DriverPackage.Title=Especifique el paquete de controlador a añadir +DriverFolder.Description=Especifique la carpeta que contiene paquetes de controladores. Luego podrá especificar si necesita ser escaneada de forma recursiva: + +[AddDrivers.Actions] +Package.Folder.Message=El paquete especificado es una carpeta. Puede dejar que DISM la escanee de forma recursiva para añadir todos los controladores en ella, o puede especificar los controladores a añadir manualmente.{crlf;}{crlf;}- Para dejar que DISM escanee esta carpeta de forma recursiva, haga clic en Sí{crlf;}- Para escoger los controladores en esta carpeta manualmente, haga clic en No{crlf;}- Para omitir la adición de esta carpeta, haga clic en Cancelar +Packages.None.Message=No hay paquetes de controladores en la carpeta espcificada + +[AddDrivers.DragDrop] +Package.Folder.Message=El paquete especificado es una carpeta. Puede dejar que DISM la escanee de forma recursiva para añadir todos los controladores en ella, o puede especificar los controladores a añadir manualmente.{crlf;}{crlf;}- Para dejar que DISM escanee esta carpeta de forma recursiva, haga clic en Sí{crlf;}- Para escoger los controladores en esta carpeta manualmente, haga clic en No{crlf;}- Para omitir la adición de esta carpeta, haga clic en Cancelar +Folder.Label=Carpeta +File.Item=Archivo + +[AddDrivers.FileOk] +File.Label=Archivo + +[AddDrivers.Validation] +DriverPackages.None.Message=No hay paquetes de controladores seleccionados para instalar. Especifique los paquetes de controladores que le gustaría instalar e inténtelo de nuevo. + +[AddListEntry] +Entry.Label=Entrada: +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[AddPackage] +AddPackages.Label=Añadir paquetes +PackageSource.Label=Origen de paquetes: +PackageOperation.Label=Operación de paquete: +Browse.Button=Examinar... +SelectAll.Button=Todos los paquetes +SelectNone.Button=Ningún paquete +Update.Manifest.Button=Añadir manifiesto de actualización... +Cancel.Button=Cancelar +Ok.Button=Aceptar +Packages.Choose.RadioButton=Elegir qué paquetes añadir: +Ignore.CheckBox=Ignorar comprobaciones de aplicabilidad (no recomendado) +CommitImage.CheckBox=Guardar imagen tras añadir paquetes +Packages.Group=Paquetes +Options.Group=Opciones +Dir.CAB.Required.Label=Especifique el directorio donde se encuentran archivos CAB o MSU. +CabFolder.Description=Especifique la carpeta que contenga paquetes CAB o MSU: + +[AddPkg] +ScanRecursive.RadioButton=Escanear carpeta de forma recursiva por paquetes +Skip.Online.Install.CheckBox=Omitir instalación de paquetes si operaciones en línea deben realizarse + +[AddPackage.CountItems] +Folder.Contain.Label=Esta carpeta no contiene ningún paquete. Utilice un origen diferente e inténtelo de nuevo +Folder.Contains.Label=Esta carpeta contiene {0} paquete. +Folder.Packages.Label=Esta carpeta contiene {0} paquetes. + +[AddPackage.GatherPackages] +Scanning.Dir.Label=Escaneando directorio por paquetes. Espere... + +[AddPackage.Validation] +Packages.Message=Seleccione paquetes a añadir, e inténtelo de nuevo. También puede continuar dejando que DISM escanee paquetes aplicables +PackagesSelected.Title=No hay paquetes seleccionados + +[AppxProvision] +Add.Prov.Item=Añadir paquetes aprovisionados AppX +Packages.Required.Message=Añada archivos AppX empaquetados o desempaquetados usando los botones de abajo, o soltándolos en la lista de abajo: +Package.Message=Un paquete AppX podría necesitar algunas dependencias para que sea instalado correctamente. Si es así, puede especificarlas ahora: +StubPreference.Item=Preferencia de talón: +Multiple.App.Regions.Item=Para especificar regiones de aplicación múltiples, sepáralos con un punto y coma (;) +Entry.List.View.Message=Seleccione una entrada en la lista para mostrar los detalles de una aplicación y para configurar opciones de adición +AddFile.Item=Añadir archivo +AddFolder.Item=Añadir carpeta +Remove.Entries.Item=Eliminar todas las entradas +Remove.Dependencies.Item=Eliminar todas las dependencias +RemoveDependency.Item=Eliminar dependencia +AddDependency.Item=Añadir dependencia... +Browse.Button=Examinar... +Remove.Selected.Entry.Item=Eliminar entrada seleccionada +Cancel.Button=Cancelar +Ok.Button=Aceptar +CustomDataFile.Item=Archivo de datos: +CommitImage.Item=Guardar imagen tras añadir paquetes AppX +CustomData.File.Title=Especificar un archivo de datos personalizados +AppxDependencies.Item=Dependencias de aplicaciones +AppxRegions.Item=Regiones de aplicaciones +LicenseFile.Title=Especificar un archivo de licencia +App.Regions.Form.Message=Las regiones de aplicaciones deben estar en el formato de códigos ISO 3166-1 Alpha 2 o Alpha 3. Saber más acerca de estos códigos +Help.Link=Saber más acerca de estos códigos +FileFolder.Column=Archivo/Carpeta +Type.Column=Tipo +ApplicationName.Column=Nombre de aplicación +App.Publisher.Column=Publicador de aplicación +App.Version.Column=Versión de aplicación +LicenseFile.CheckBox=Archivo de licencia: +App.Available.CheckBox=Hacer aplicación disponible para todas las regiones +Configure.Stub.Item=No configurar preferencia de talón +Publisher.Label=Publicador: {0} +Version.Label=Versión: {0} +Preview.Label=Vista previa +Folder.Required.Description=Especifique un directorio contenedor de archivos de una aplicación AppX: +Install.Stub.Package.Item=Instalar aplicación como un paquete talón +Install.Full.Package.Item=Instalar aplicación como un paquete completo + +[AppxProvision.MultiSelect] +Selection.Label=Selección múltiple +CommonProps.Label=Vea las propiedades comunes de todas las aplicaciones seleccionadas + +[AppxProvision.DragDrop] +Dir.Contains.App.Message=El siguiente directorio:{crlf;}{quot;}{0}{quot;}{crlf;}contiene paquetes de aplicación. ¿Desea procesarlos también?{crlf;}{crlf;}NOTA: esto escaneará este directorio de una forma recursiva, así que esta operación podría tardar más tiempo en completar +File.Dropped.Isn.Message=El archivo que se ha soltado aquí no es un paquete de aplicación. +Add.Prov.Title=Añadir paquetes aprovisionados AppX + +[AppxProvision.StoreLogo] +ReadFailed.Message=No se pudo obtener recursos de logotipos de este paquete - no se puede leer el manifiesto +Add.Title=Añadir paquetes aprovisionados AppX + +[AppxProvision.Init] +UnsupportedImage.Message=Esta acción no está soportada en esta imagen + +[AppxProvision.Scan] +Unpacked.Encrypted.Label=Desempaquetado (Encriptado) +PackedEncrypted.Label=Empaquetado (Encriptado) +Unpacked.Encrypted.Item=Desempaquetado (Encriptado) +Encrypted.App.Label=Aplicación encriptada +ListItem.Label=Aplicación encriptada +PackedEncrypted.Item=Empaquetado (Encriptado) +Package.Encrypted.Message=El paquete:{crlf;}{crlf;}{0}{crlf;}{crlf;}es un paquete de aplicación encriptado. Ni DISMTools ni DISM soportan añadir estos tipos de aplicaciones. Si le gustaría añadirlo, puede hacerlo, después de que la imagen se haya aplicado e iniciado. +Folder.Message=Esta carpeta no parece contener una estructura de un paquete AppX. No será añadida a la lista +Add.Title=Añadir paquetes aprovisionados AppX +Package.Add.Message=El paquete que desea añadir ya está añadido a la lista, y todas sus propiedades coinciden con las propiedades del paquete especificado. No añadiremos el paquete especificado +Unpacked.Item=Desempaquetado +Packed.Item=Empaquetado +Package.Already.Message=El paquete que desea añadir ya está añadido a la lista, pero contiene una nueva versión.{crlf;}{crlf;}¿Desea reemplazar la entrada en la lista por el paquete actualizado especificado? +ItemSub.Item=Desempaquetado +ListItem.Item=Desempaquetado +Package.Added.Message=El paquete que desea añadir ya está añadido a la lista, pero proviene de un desarrollador o publicador distinto.{crlf;}{crlf;}Dese cuenta de que las aplicaciones redistribuidas por publicadores o desarrolladores de terceros pueden dañar la imagen de Windows.{crlf;}{crlf;}¿Desea reemplazar la entrada en la lista por el paquete especificado? + +[AppxProvision.Tooltip] +TempStoreassets.Label=\temp\storeassets\ +Logo.Assets.File.Label=Los recursos de este archivo no pudieron ser detectados +Enlarge.View.Label=Haga clic para agrandar la vista +Logo.Assets.File.Item=Los recursos de este archivo no pudieron ser detectados + +[AppxProvision.Validation] +Packages.Required.Message=Especifique archivos AppX empaquetados o desempaquetados e inténtelo de nuevo. +Add.Prov.Title=Añadir paquetes aprovisionados AppX +LicenseFile.Required.Message=Especifique un archivo de licencia e inténtelo de nuevo. También puede continuar sin uno, pero esta acción podría comprometer la imagen. +LicenseNotFound.Message=El archivo de licencia especificado no se ha encontrado. Asegúrese de que exista en la ubicación especificada e inténtelo de nuevo. +CustomData.Required.Message=Especifique un archivo de datos personalizados e inténtelo de nuevo. También puede continuar sin uno +CustomData.File.Message=El archivo de datos personalizados especificado no se ha encontrado. Asegúrese de que exista en la ubicación especificada e inténtelo de nuevo. + +[ProvPackage] +Add.Packages.Label=Añadir paquete de aprovisionamiento +Image.Task.Header.Label={0} +PackagePath.Label=Ruta de paquete: +Action.Treverted.Add.Message=Esta acción no puede ser revertida. Cuando añada un paquete de aprovisionamiento, no lo podrá eliminar de la imagen de Windows. +CatalogPath.Label=Ruta de catálogo: +Ok.Button=Aceptar +Cancel.Button=Cancelar +Browse.Button=Examinar... +CommitImage.CheckBox=Guardar imagen tras añadir este paquete de aprovisionamiento + +[ProvPackage.Validation] +PackageNotFound.Message=El paquete de aprovisionamiento especificado no existe. Asegúrese de que exista en el sistema de archivos e inténtelo de nuevo. +CatalogNotFound.Message=El archivo de catálogo especificado no existe. No usaremos este archivo si continúa.{crlf;}{crlf;}¿Desea continuar? +PackageRequired.Message=No se ha especificado un paquete de aprovisionamiento. Especifique un paquete de aprovisionamiento a añadir e inténtelo de nuevo. + +[AppInstaller] +DownloadPackage.Button=Descargando paquete de aplicación... +Wait.Message=Espere mientras DISMTools descarga el paquete de aplicación para añadirlo a esta imagen. Esto puede llevar algo de tiempo, dependiendo de la velocidad de su conexión de red. +StatusLbl.Label=Espere... +TransferDetails.Group=Detalles de la transferencia +DownloadURL.Label=URL de descarga: +DownloadSpeed.Label=Velocidad de descarga: desconocida +Cancel.Button=Cancelar +Wait.Label=Espere... +EtaUnknown.Label=Tiempo restante estimado: desconocido + +[AppInstaller.Error] +DownloadFailed.Message=Se produjo un error al descargar el archivo: {0} + +[AppInstaller.Progress] +MainPackage.Label=Descargando paquete de aplicación principal... ({0} de {1} descargados) + +[AppInstaller.Status] +DownloadSpeed.Label=Velocidad de descarga: {0}/s +EtaSeconds.Label=Tiempo restante estimado: {0} segundos + +[AppDrive] +Bytes.Label=bytes (~ +Target.Disk.Button=Especificar disco de destino... +Refresh.Button=Actualizar +Ok.Button=Aceptar +Cancel.Button=Cancelar +DeviceID.Column=ID de dispositivo +Model.Column=Modelo +Partitions.Column=Particiones +Size.Column=Tamaño +Destination.Disk.Id.Label=ID de disco (\\.\PHYSICALDRIVE(n)): + +[ApplyUnattend] +UnattendAnswer.File.Label=Aplicar archivo de respuesta desatendida +Image.Task.Header.Label={0} +AnswerFile.Label=Archivo de respuesta: +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[ApplyUnattend.Validation] +AnswerFile.Choose.Message=O ningún archivo de respuesta desatendida se ha especificado o el archivo especificado no existe. Verifique de que existe, e inténtelo de nuevo. + +[AutoReload] +Wait.Message=Espere mientras DISMTools recarga la sesión de servicio de las imágenes huérfanas. Esto puede llevar algo de tiempo. Una vez completado, este diálogo se cerrará. +ImageFile.Label=Archivo de imagen: +Image.Mount.Point.Label=Punto de montaje de la imagen: +ImageInfo.Group=Información de la imagen + +[AutoReload.Bg] +ReloadSucceeded.Message=Recargando imagen montada... (satisfactorias: {0}, fallidas: {1}, omitidas: {2}) + +[AutoReload.Background] +ProcessCompleted.Message=Este proceso ha completado + +[AutoReload.Progress] +Preparing.Images.Label=Preparándonos para recargar imágenes... + +[ActiveDirectory.DnsZone] +SelectZone.Message=Please select a DNS zone and try again. +Selected.Too.Long.Message=The selected DNS zone is no longer active because of either an expiration or a shut down. Choose another zone and try again. +ZonesLoaded.Message=DNS zones could not be obtained. + +[BGProcDetails.VisibleChanged] +Gathering.Image.Label=Recopilando información de la imagen... +Processes.Take.Time.Label=Estos procesos podrían tardar algo de tiempo en completar + +[BGProcNotify] +Project.Loaded.Done.Label=Este proyecto ha sido cargado satisfactoriamente +Gathering.Image.Label=El programa está recopilando información de la imagen en segundo plano. Esto podría llevar algo de tiempo. + +[BgProcs.Settings] +Advanced.Process.Label=Configuraciones avanzadas de procesos en segundo plano +Additional.Label=Configure opciones adicionales para los procesos en segundo plano: + +[BgProcesses] +SkipNonRemovable.CheckBox=Omitir paquetes no removibles +DetectAllDrivers.CheckBox=Detectar todos los controladores de la imagen +Skip.Framework.CheckBox=Omitir paquetes de marcos de trabajo, y eliminarlos de los listados si fueron detectados +Run.CheckBox=Ejecutar todos los procesos en segundo plano tras realizar una operación +Ok.Button=Aceptar +Cancel.Button=Cancelar +Enhance.App.Detect.Message=Mejorar la detección de todos los paquetes AppX instalados en una instalación activa con ayudantes de PowerShell + +[BgProcesses.Validation] +DetectDrivers.Message=El programa va a detectar los controladores de la imagen atendiendo a las opciones que ha especificado. Esto puede llevar un tiempo. + +[BG.Procs] +Re.Still.Gathering.Label=Aún estamos recopilando información de la imagen +Finish.Process.Begin.Message=Cuando terminemos este proceso, puede comenzar a realizar operaciones con la imagen. Esto suele tardar unos minutos, pero esto puede depender en la imagen y el rendimiento de su equipo.{crlf;}{crlf;}Puede comprobar el estado de este proceso en segundo plano en cualquier momento haciendo clic en el icono en la parte inferior izquierda. +Ok.Button=Aceptar + +[Casters.Applicability] +Yes.Button=Sí +No.Button=No + +[Casters.DISMArchitecture] +Unknown.Label=Desconocida +Neutral.Label=Neutral + +[Casters.Cast.DISM] +Present.Label=No presente +DisablePending.Label=Deshabilitación pendiente +Staged.Label=Deshabilitado +Removed.Label=Eliminado +Installed.Label=Habilitado +EnablePending.Label=Habilitación pendiente +Superseded.Label=Sustituido +Partially.Installed.Label=Instalado parcialmente +UninstallPending.Label=Desinstalación pendiente +Uninstalled.Label=Desinstalado +InstallPending.Label=Instalación pendiente +CriticalUpdate.Label=Actualización crítica +Driver.Label=Controlador +FeaturePack.Label=Paquete de características +Foundation.Package.Label=Paquete de fundación +Hotfix.Label=Corrección de fallos +LanguagePack.Label=Paquete de idiomas +LocalPack.Label=Paquete local +DemandPack.Label=Paquete de funcionalidad +Other.Label=Otros +Product.Label=Producto +SecurityUpdate.Label=Actualización de seguridad +ServicePack.Label=Service Pack +SoftwareUpdate.Label=Actualización de software +Update.Label=Actualización +UpdateRollup.Label=Actualización acumulativa +NotRequired.Label=No se requiere un reinicio +May.Required.Label=Puede requerirse un reinicio +Required.Label=Se requiere un reinicio + +[Casters.OfflineInstall] +FullyOffline.Message=Se podría requerir un arranque a la imagen de destino para instalar este paquete por completo + +[Casters.SignatureStatus] +Unknown.Label=Desconocido +UnsignedValidity.Message=No firmado. Compruebe la validez y la fecha de expiración del certificado del controlador +Signed.Label=Firmado + +[Casters.CastDriveType] +Fixed.Label=Fijo +Network.Label=Red +Removable.Label=Removible +Unknown.Label=Desconocido + +[HttpServer.Messages] +Root.Dir.Exist.Message=Root directory {quot;}{0}{quot;} does not exist in the file system. The server cannot be started. +TourServer.Label=Tour Server + +[ThemeDesigner.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[Designer.ActiveInstall] +Continue.Button=Continue +Cancel.Button=Cancelar +Enter.Online.Message=You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation.{crlf;}{crlf;}Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program.{crlf;}{crlf;}If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable.{crlf;}{crlf;}We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible) +ProjectUnloaded.Label=The current project will be unloaded. +Active.Install.Label=About active installation management + +[Designer.AddCapabilities] +Ok.Button=OK +Cancel.Button=Cancelar +Capabilities.Group=Capacidades +SelectAll.Button=Select all +SelectNone.Button=Select none +Capability.Column=Capability +State.Column=Estado +Options.Group=Opciones +Browse.Button=Examinar... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +DifferentSource.CheckBox=Specify different source for capability installs +Detect.Group.Policy.Button=Detect from group policy +SourceHint.Description=Specify the source to use for capability addition: +AddCapabilities.Label=Add capabilities + +[Designer.AddCaps] +CommitImage.CheckBox=Commit image after adding capabilities + +[Designer.AddDrivers] +Ok.Button=OK +Cancel.Button=Cancelar +DriverFiles.Group=Driver files +Drivers.Required.Message=Please specify the drivers to add by using the buttons below or by dropping them to the list below: +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Tipo +DriverFolders.Group=Driver folders +Scan.Driver.Message=You can let the program scan the driver folders present on the list below recursively and add them as well. To do so, tick the entries you'd like to be scanned: +Options.Group=Opciones +CommitImage.CheckBox=Commit image after adding drivers +Force.Install.CheckBox=Force installation of unsigned drivers +Driver.Files.Inf.Filter=Driver files|*.inf +DriverPackage.Title=Specify the driver package to add +DriverFolder.Description=Specify the folder containing driver packages. You will then be able to specify if it needs to be scanned recursively: +AddDrivers.Label=Add drivers + +[Designer.AddEdgeBrowser] +Ok.Button=OK +Cancel.Button=Cancelar +Microsoft.Label=Add Microsoft Edge Browser + +[Designer.AddEdgeFull] +Ok.Button=OK +Cancel.Button=Cancelar +Microsoft.Label=Add Microsoft Edge + +[Designer.Add.Edge] +Ok.Button=OK +Cancel.Button=Cancelar +Microsoft.Web.Label=Add Microsoft Edge WebView + +[Designer.Add.List] +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Examinar... +Entry.Label=Entry: +AllFiles.Filter=All files|*.* +AddEntry.Label=Add entry + +[Designer.AddPackage] +Ok.Button=OK +Cancel.Button=Cancelar +Packages.Group=Paquetes +Folder.Contains.Pkgnum.Label=This folder contains packages. +SelectAll.Button=Select all +SelectNone.Button=Select none +Packages.Choose.RadioButton=Choose which packages to add: +Browse.Button=Examinar... +PackageOperation.Label=Package operation: +PackageSource.Label=Package source: +Options.Group=Opciones +Save.Image.Packages.CheckBox=Save image after adding packages +Ignore.CheckBox=Ignore applicability checks (not recommended) +Update.Manifest.Button=Add update manifest... +AddPackages.Label=Add packages +CabFolder.Description=Specify the folder containing CAB or MSU packages: + +[Designer.AddPkg] +ScanRecursive.RadioButton=Scan folder recursively for packages +Skip.Online.Install.CheckBox=Skip package installation if online operations are pending + +[Designer.AppxProvision] +Ok.Button=OK +Cancel.Button=Cancelar +Entry.List.View.Message=Select an entry in the list view to show the details of an app and to configure addition settings +AppxVersion.Label=AppxVersion +AppxPublisher.Label=AppxPublisher +AppxTitle.Label=AppxTitle +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Tipo +ApplicationName.Column=Application name +App.Publisher.Column=Application publisher +App.Version.Column=Application version +Packages.Required.Message=Please add packed or unpacked AppX packages by using the buttons below, or by dropping them to the list view below: +AppxDependencies.Group=AppX dependencies +Remove.Dependencies.Button=Remove all dependencies +RemoveDependency.Button=Remove dependency +AddDependency.Button=Add dependency... +Package.Message=An AppX package may need some dependencies for it to be installed correctly. If so, you can specify a list of dependencies now: +CustomDataFile.CheckBox=Custom data file: +Browse.Button=Examinar... +AppxRegions.Group=AppX regions +App.Available.CheckBox=Make app available for all regions +App.Regions.Form.Message=App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To learn more about these codes, click here +Multiple.App.Regions.Label=To specify multiple app regions, separate them with a semicolon (;) +CommitImage.CheckBox=Commit image after adding AppX packages +Files.Title=Specify the AppX files to add provisioning for +DependencyFiles.Filter=Dependency files|*.appx;*.msix +Xmllicenses.Filter=XML licenses|*.xml +LicenseFile.Title=Specify a license file +CustomData.Filter=All files|*.* +CustomData.File.Title=Specify a custom data file +LicenseFile.CheckBox=License file: +Configure.Stub.Item=Do not configure stub preference +StubPreference.Label=Stub preference: +Value.Button=... +Add.Prov.Label=Add provisioned AppX packages +MSIX.Packages.Filter=Applications|*.appx;*.appxbundle;*.msix;*.msixbundle|Application Installer package|*.appinstaller +Browse.Dependencies.Title=Browse for files applications depend on +Folder.Required.Description=Please specify a folder containing unpacked AppX files: +Install.Stub.Package.Item=Install application as a stub package +Install.Full.Package.Item=Install application as a full package + +[Designer.ProvPackage] +Ok.Button=OK +Cancel.Button=Cancelar +PackagePath.Label=Package path: +Browse.Button=Examinar... +Action.Treverted.Add.Message=This action can't be reverted. Once you add a provisioning package, you won't be able to remove it from your Windows image. +Package.Ppkg.Filter=Provisioning package|*.ppkg +CatalogPath.Label=Catalog path: +Catalog.File.Cat.Filter=Catalog file|*.cat +Add.Packages.Label=Add provisioning packages +CommitImage.CheckBox=Commit image after adding this provisioning package + +[Designer.DomainJoin] +DnstoolsBtn.Button=... +Nicsettings.Group=NIC Settings +Verify.DNS.Label=Verify DNS Address Syntax +Default.Adapter.Same.Message=By default, this adapter will use the same domain suffix you specified above. You can change it later +ManualAdapter.RadioButton=Specify a network adapter manually: +Address.First.Line.Message=The address in the first line will be the primary DNS server address, and any other addresses will become alternative server addresses. You can put both IPv4 and IPv6 addresses. +DNSServer.Addresses.Label=DNS Server Addresses (put each address in its own line): +PrimarySuffix.Label=Primary Domain Suffix: +InterfaceAlias.Label=Interface Alias: +Domain.Suffix.Added.Message=This domain suffix will be added to the list of DNS suffixes. You can add more to the list of suffixes later. +DNSSettings.Label=Configure DNS settings for network adapters +Type.Security.Account.Label=Type the Security Account Manager (SAM) name of the user account in the domain: +Organizational.Unit.Label=Organizational unit: +User.Label=User: +SAM.Account.Label=SAM account name of selected user object: +Org.Unit.Account.Message=If the desired account is not in any organizational unit, but rather in a container, or somewhere else; click the following button to pick it: +Pick.Account.Object.Button=Pick account object... +User.Manually.Item=Specify a user manually +Pick.User.Org.Item=Pick the following user from organizational units in my domain +Pick.User.Object.Item=Pick the following user object from anywhere in my domain +User.Principal.Name.Label=User Principal Name (Windows 2000): +Logon.Path.Pre.Label=Logon Path (pre-Windows 2000): +Domain.Auto.Detected.Message=A domain name could not be obtained automatically because this device does not belong to a domain. +Ask.Admin.Provide.Message=Contact your system administrator to provide authentication information used to join the domain. The account name specified here will be the initial account of the domain-joined system and it will pull initial group policies from the domain controller.{crlf;}{crlf;}To finish setting up target devices to join this domain, click Finish. +Password.Label=Password: +UserAccount.Label=User Account: +DomainName.Label=Domain Name: +Domain.Auth.Label=Provide domain and authentication information +Wizard.Helps.Set.Description=This wizard helps you set up your unattended answer file to make a device join a domain powered by Active Directory Domain Services (AD DS). +Join.Active.Dir.Label=Join an Active Directory domain +WhatDNS.Link=What is DNS? +Back.Button=Atrás +Next.Button=Next +Cancel.Button=Cancelar +Help.Button=Ayuda +Test.Dnsresolution.Label=Test DNS resolution +DNSZone.Domain.Choose.Label=Choose DNS zone... (domain controllers only) +Domain.Services.Wizard.Label=Domain Services Wizard +PickAdapter.RadioButton=Pick from a network adapter in this system: + +[Designer.AppInstaller] +Wait.Message=Please wait while DISMTools downloads the application package to add it to this image. This can take some time, depending on your network connection speed. +StatusLbl.Label=Estado +TransferDetails.Group=Transfer details +TimeRemaining.Label=Estimated time remaining: +DownloadSpeed.Label=Download speed: +DownloadURL.Label=Download URL: +Cancel.Button=Cancelar +Wait.Label=Espere... +CopyURI.Button=Copy +DownloadPackage.Button=Downloading application package... + +[Designer.AppDrive] +Ok.Button=OK +Cancel.Button=Cancelar +Refresh.Button=Actualizar +DeviceID.Column=Device ID +Model.Column=Model +Partitions.Column=Partitions +Size.Column=Tamaño +Target.Disk.Button=Specify target disk... +Destination.Disk.Id.Label=Destination disk ID (\\.\PHYSICALDRIVE(n)): + +[Designer.ApplyUnattend] +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Examinar... +AnswerFile.Label=Answer file: +Answer.Files.XML.Filter=Answer files|*.xml +Copy.AnswerFile.CheckBox=Copy answer file to image Sysprep directory +LeaveUnchecked.Message=Leave this option unchecked if you specify an answer file that causes conflicts with Sysprep if you enter audit mode. +UnattendAnswer.File.Label=Apply unattended answer file + +[Designer.AutoReloadForm] +Wait.Message=Please wait while DISMTools reloads the servicing session of orphaned images. This can take some time. Once complete, this dialog will close. +ImageInfo.Group=Información de imagen +Image.Mount.Point.Label=Image mount point: +ImageFile.Label=Image file: +Wait.Label=Espere... +DISMTools.Label=DISMTools + +[Designer.BgprocDetails] +Gathering.Image.Label=Gathering image information... +InfoTask.Label= +Processes.Take.Time.Label=These processes may take some time to complete. +DISMTools.Label=DISMTools + +[Designer.BgprocFailure] +Ok.Button=OK +Run.Issues.Message=We have run into some issues while getting the information about this Windows image. This may be due to incompatibilities caused by this image and system components, by modifications to the image, or by program bugs.{crlf;}{crlf;}Please look at the list below to see which tasks failed and why: +Failed.Bg.Procs.Label=Failed background processes + +[Designer.BgprocNotify] +Project.Loaded.Done.Label=This project has been loaded successfully +Gathering.Image.Label=The program is now gathering image information in the background. This may take some time. + +[Designer.BgProcesses] +Okbutton.Button=OK +Cancel.Button=Cancelar +Enhance.App.Detect.CheckBox=Enhance detection of installed AppX packages of an active installation with PowerShell helpers +SkipNonRemovable.CheckBox=Skip packages with non-removable policies set +DetectAllDrivers.CheckBox=Detect all image drivers +Skip.Framework.CheckBox=Skip framework packages, and remove them from the listings if they were detected +Run.CheckBox=Run all background processes after performing a task + +[Designer.BgProcsSettings] +Additional.Label=Configure additional settings for background processes: +Advanced.Process.Label=Advanced background process settings + +[Designer.BgProcessesBusy] +Ok.Button=OK +Finish.Process.Begin.Message=Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer.{crlf;}{crlf;}You can check the status of this background process at any time by clicking the icon on the bottom left. +Re.Still.Gathering.Label=We're still gathering image information +DISMTools.Label=DISMTools + +[Designer.CapabilityFilter] +Apply.Button=Aplicar +Clear.Button=Clear +Name.Label=Nombre: +State.Label=Estado: +AnyState.Item=Any state +Installed.Item=Installed +Install.Pending.Item=Installation Pending +Removed.Item=Removed +FilterInfo.Prompt.Label=Filter capability information by: +FilterInfo.Title=Filter capability information + +[Designer.DISMComponents] +Ok.Button=OK +Component.Column=Component +Version.Column=Version +Dismcomponents.Label=DISM Components + +[Designer.DNSZones] +Ok.Button=OK +CancelButton.Button=Cancelar +OfferedZones.Message=This server offers the following DNS zones you can choose from. Pick a DNS zone from the list below and click OK: +ZoneName.Column=Zone Name +DnsserverName.Column=DNS Server Name +DomainServices.Column=Integrated with Domain Services? +ZoneType.Column=Zone Type +Refresh.Button=Actualizar +DNSZone.Choose.Label=Choose DNS Zone + +[Designer.DisableFeat] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Group=Opciones +Lookup.Button=Lookup... +PackageName.Label=Nombre del paquete: +Remove.Feature.CheckBox=Remove feature without removing manifest +ParentPackage.CheckBox=Specify parent package name for features +Features.Group=Características +FeatureName.Column=Nombre de característica +State.Column=Estado +DisableFeatures.Label=Disable features + +[Designer.DriverFileInfo] +Ok.Button=OK +Copy.Button=Copy +Property.Column=Property +Value.Column=Valor +Driver.File.Label=Information of driver file: +Driver.File.Label.Label=Driver file information + +[Designer.DriverFilter] +Apply.Button=Aplicar +Clear.Button=Clear +FilterPrompt.Label=Filter driver information by: +PublishedName.Item=Published Name +Original.File.Name.Item=Original File Name +ProviderName.Item=Provider Name +ClassName.Item=Class Name +InboxStatus.Item=Inbox Status +Boot.Critical.Status.Item=Boot-Critical Status +SignatureStatus.Item=Signature Status +Date.Item=Fecha +MonthName.Label=Month Name +Year.Item=Year +Month.Item=Month +Released.Item=Released on +NotReleased.Item=Not released on +ReleasedBefore.Item=Released before +ReleasedOnBefore.Item=Released on or before +ReleasedAfter.Item=Released after +ReleasedOnAfter.Item=Released on or after +Date.Label=Date: +Search.Signed.CheckBox=The drivers I'm searching for are signed +SignatureStatus.Label=Signature Status: +Search.BootCritical.CheckBox=The drivers I'm searching for are critical to the boot process +Boot.Critical.Status.Label=Boot-Critical Status: +Search.Inbox.CheckBox=The drivers I'm searching for are part of the Windows distribution +InboxStatus.Label=Inbox Status: +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +ProviderName.Label=Provider Name: +Original.File.Name.Label=Original File Name: +PublishedName.Label=Published Name: +Driver.Searches.Choose.Label=Choose a filter to use for driver searches. +Title=Filter driver information + +[Designer.DriverFilePicker] +Ok.Button=OK +Cancel.Button=Cancelar +RecursiveListing.Message=Below is a recursive listing of all drivers in the directory you are specifying. From this list, pick the drivers you want to add and click OK. +Refresh.Button=Actualizar +DirectoryStatus.Label=Directory status +Driver.Files.Choose.Label=Choose driver files in directory + +[Designer.EnableFeat] +Ok.Button=OK +Cancel.Button=Cancelar +Features.Group=Características +FeatureName.Column=Nombre de característica +State.Column=Estado +Options.Group=Opciones +Detect.Group.Policy.Button=Detect from group policy +Browse.Button=Examinar... +Lookup.Button=Lookup... +FeatureSource.Label=Feature source: +PackageName.Label=Nombre del paquete: +Contact.Win.Update.CheckBox=Contact Windows Update for online images +ParentFeatures.CheckBox=Enable all parent features +Feature.Source.CheckBox=Specify feature source +ParentPackage.CheckBox=Specify parent package name for features +SourceFolder.Description=Specify a folder which will act as the feature source: +EnableFeatures.Label=Enable features +CommitImage.CheckBox=Commit image after enabling features + +[Designer.EnvVars] +Save.Changes.Label=Save all changes +Intro.Message=This tool lets you view and manage the environment variables of this target image. Click the Save button to save any changes made to the environment variables. +TargetSystem.Label=Environment variables for the target system +Name.Column=Nombre +Value.Column=Valor +Remove.Machine.Label=Remove machine variable +Add.Machine.Variable.Button=Add machine variable... +DefaultUser.Label=Environment variables for default user profiles +Remove.User.Variable.Label=Remove user variable +Add.User.Variable.Button=Add user variable... +SaveVariable.Label=Save Variable +Scope.Label=Scope: +Hierarchical.Values.Message=This variable is hierarchical. Values added to the system variable will be either prepended to or replaced by the user variable when the user profile is loaded. +Variables.Location.Label=* Environment variables contained within this value are not expanded. +Value.Label=Value: +Name.Label=Nombre: +VariableInfo.Label=Environment Variable Information: +Copy.Default.User.Label=Copy to default user scope +Copy.Machine.Scope.Label=Copy to machine scope +Move.Machine.Scope.Label=Move to machine scope +Move.Default.User.Label=Move to default user scope +SystemVariables.Label=System Environment Variable Management + +[Designer.ExceptionForm] +Sorry.Inconvenience.Message=We are sorry for the inconvenience, but DISMTools has run into an error that it couldn't handle and we need your help in order to continue.Here is the error information if you need it: +Help.Us.Fix.Label=Please help us fix this issue +ReportIssue.Label=Report this issue +Continue.Running.Message=You may be able to continue running the program by clicking Continue. However, if this error is displayed for a second time, you can forcefully close the program by clicking Exit. Do note that changes made to projects, as well as changes in the Recents list, will not be saved.{crlf;}{crlf;}What do you want to do? +Reporting.Issue.Message=When reporting this issue, PLEASE paste the exception information on the left. Otherwise, standard closure policies will be applied which imply closing your issue after (at least) 4 hours. +Continue.Button=Continue +Exit.Button=Salir +Copy.Inspect.Logs.Button=Copy and Inspect Logs +DISM.Tools.Internal.Label=DISMTools - Internal Error +Problem.Prevention.Message=In order to prevent this problem from happening again, we would like to know more about it by reporting an issue on the GitHub repository. You will need a GitHub account to report feedback. + +[Designer.ExportDrivers] +Ok.Button=OK +Cancel.Button=Cancelar +ExportTarget.Label=Export target: +Browse.Button=Examinar... +DriversPath.Description=Please specify the path where the drivers will be exported to: +Driver.Mode.Group=Driver Export Mode +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +Matching.Drivers.RadioButton=Export drivers with the following matching class name to the destination: +Image.Drivers.RadioButton=Export all image drivers to the destination +ExportDrivers.Label=Export drivers + +[Designer.FFUApply] +Ok.Button=OK +Cancel.Button=Cancelar +Source.Group=Origen +Browse.Button=Examinar... +Mounted.Image.Label=Usar imagen montada +SourceImageFile.Label=Archivo de imagen de origen: +SfufilePattern.Group=SFU file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Patrón de nombre: +Destination.Group=Destino +DriveDetails.Label=Drive Details: +DestinationDrive.Label=Destination drive: +Specify.Button=Specify... +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +Source.Image.Required.Title=Please specify the source image to apply +Reference.Sfufiles.CheckBox=Reference SFU files +File.Label=Apply a FFU file + +[Designer.FFUCapture] +Ok.Button=OK +Cancel.Button=Cancelar +Source.Group=Origen +DriveDetails.Label=Drive Details: +SourceDrive.Label=Source drive: +Specify.Button=Specify... +Destination.Group=Destino +Browse.Button=Examinar... +Destination.ImageFile.Label=Archivo de imagen de destino: +Options.Group=Opciones +Description.Goes.Label=(Description goes here) +None.Item=none +Default.Item=default +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +File.Label=Capture a FFU file + +[Designer.FFUInfoDialog] +Ok.Button=OK +Cancel.Button=Cancelar +Ffuheader.Tab=FFU Header +Value.Label= +CompressionType.Label=Compression Type: +Ffuversion.Label=FFU Version: +Physical.Disk.Path.Label=Physical Disk Path: +Vhdstorage.Device.ID.Label=VHD Storage Device ID: +MountedVHDID.Label=Mounted VHD ID: +MountedVhdpath.Label=Mounted VHD path: +MountedVHD.Tab=Mounted VHD +Selected.Partition.Label=Information about the selected partition: +Mounted.FFU.Message=This mounted FFU file contains the following partitions. To show details of a specific partition, select it from the list below: +Manifest.Tab=Manifest +Full.Flash.Utility.Label=Full Flash Utility (FFU) Information + +[Designer.FFUOptimize] +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Examinar... +ImageFile.Label=Image file to optimize: +Default.Partition.CheckBox=Optimize a partition other than the default partition in the specified FFU file +PartitionNumber.Label=Partition number: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +OpenFile.Title=Please specify the source image to apply +Ffuimages.Label=Optimize FFU images + +[Designer.FFUSplit] +Ok.Button=OK +Cancel.Button=Cancelar +Integrity.CheckBox=Comprobar integridad de la imagen +Browse.Button=Examinar... +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Maximum.Size.Images.Label=Maximum size of split images (in MB): +Name.Path.Destination.Label=Name and path of the destination split image: +Source.Image.Label=Source image to split: +Sfufiles.Filter=SFU files|*.sfu +Target.Location.Title=Specify the target location of the split images: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +Source.WIM.File.Title=Specify the source WIM file to split: +SplitFfuimages.Label=Split FFU images + +[Designer.FeatureFilter] +Apply.Button=Aplicar +Clear.Button=Clear +Filter.Feature.Prompt.Label=Filter feature information by: +Name.Label=Nombre: +State.Label=Estado: +AnyState.Item=Any state +Enabled.Item=Habilitado +Enablement.Pending.Item=Enablement Pending +Disabled.Item=Deshabilitado +Disablement.Pending.Item=Disablement Pending +Filter.Feature.Title=Filter feature information + +[Designer.Get.AppX] +PackageName.Label=Nombre del paquete: +DynamicValue.Label= +Display.Name.Label=Application display name: +Architecture.Label=Arquitectura: +ResourceID.Label=Resource ID: +Version.Label=Versión: +Registered.User.Label=Is registered to any user? +Install.Dir.Label=Installation directory: +Package.Manifest.Label=Package manifest location: +StoreLogo.Asset.Dir.Label=Store logo asset directory: +Main.StoreLogo.Asset.Label=Main store logo asset: +Asset.Guessed.DISM.Message=This asset has been guessed by DISMTools based on its size, which can lead to an incorrect result. If that happens, please report an issue on the GitHub repository +Asset.One.IM.Link=This asset is not the one I'm looking for +AppX.Package.Label=AppX package information +Installed.AppX.Label=Select an installed AppX package on the left to view its information here +Save.Button=Guardar... +AppX.Package.Get.Label=Get AppX package information + +[Designer.CapabilityInfo] +Ready.Label=Ready +Identity.Column=Capability identity +State.Column=Estado +Identity.Label=Capability identity: +DynamicValue.Label= +CapabilityName.Label=Capability name: +CapabilityState.Label=Capability state: +DisplayName.Label=Nombre para mostrar: +Description.Label=Capability description: +Sizes.Label=Sizes: +CapabilityInfo.Label=Capability information +Save.Button=Guardar... +Look.Item.Online.Button=Buscar este elemento en línea +Get.Label=Get capability information + +[Designer.GetCapInfo] +SelectCapability.Label=Select an installed capability on the left to view its information here + +[Designer.GetDriverInfo] +View.Driver.File.Button=View driver file information +Change.Button=Change +Bg.Procs.Notice.Message=You have configured the background processes to not show all drivers present in this image, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in. +Save.Button=Guardar... +Status.Label=Estado +PublishedName.Column=Published name +Original.File.Name.Column=Nombre de archivo original +PublishedName.Label=Published name: +DynamicValue.Label= +Original.File.Name.Label=Original file name: +ProviderName.Label=Provider name: +ClassName.Label=Class name: +ClassDescription.Label=Class description: +ClassGUID.Label=Class GUID: +Catalog.File.Path.Label=Catalog file path: +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Is critical to the boot process? +Version.Label=Versión: +Date.Label=Date: +Driver.Signature.Label=Driver signature status: +DriverInfo.Label=Driver information +Installed.Driver.View.Label=Select an installed driver to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddDriver.Button=Add driver... +Hardware.Description.Label=Hardware description: +HardwareID.Label=Hardware ID: +AdditionalIds.Label=Additional IDs: +CompatibleIds.Label=Compatible IDs: +ExcludeIds.Label=Exclude IDs: +Hardware.Manufacturer.Label=Hardware manufacturer: +Architecture.Label=Arquitectura: +JumpTarget.Label=Jump to target: +HardwareTargets.Label=Hardware targets +Add.DriverPackage.Label=Add or select a driver package to view its information here +GoBack.Link=<- Go back +Help.AddDrivers.Message=Click here to get information about drivers that you want to add to the Windows image you're servicing before proceeding with the driver addition process +Get.Drivers.Message=Click here to get information about drivers that you've installed or that came with the Windows image you're servicing +InstalledDriver.Link=I want to get information about installed drivers in the image +Iwant.Link=I want to get information about driver files +Get.Label=What do you want to get information about? +Driver.Files.Inf.Filter=Driver files|*.inf +Locate.Driver.Files.Title=Locate driver files +Driver.Label=Get driver information + +[Designer.GetFeatureInfo] +FeatureName.Column=Nombre de característica +FeatureState.Column=Feature state +FeatureName.Label=Feature name: +DynamicValue.Label= +DisplayName.Label=Nombre para mostrar: +Description.Label=Feature description: +RestartRequired.Label=Is a restart required? +FeatureState.Label=Feature state: +CustomProps.Label=Custom properties: +FeatureInfo.Label=Feature information +Installed.Left.Label=Select an installed feature on the left to view its information here +Ready.Label=Ready +Save.Button=Guardar... +Look.Item.Online.Button=Buscar este elemento en línea +Get.Feature.Label=Get feature information + +[Designer.Get.Img] +WIM.Files.Wimvirtual.Filter=WIM files|*.wim|Virtual Hard Disk files|*.vhd, *.vhdx|ESD files|*.esd|SWM files|*.swm|Full Flash Utility files|*.ffu +Image.Title=Specify the image to get the information from +Index.Column=Índice +ImageName.Column=Nombre de imagen +Pick.Button=Elegir... +Browse.Button=Examinar... +AnotherImage.RadioButton=Another image +CurrentlyMounted.RadioButton=Currently mounted image +List.Indexes.ImageFile.Label=List of indexes of image file: +ImageFile.Label=Image file to get information from: +ImageVersion.Label=Image version: +DynamicValue.Label= +ImageName.Label=Image name: +ImageDescription.Label=Image description: +ImageSize.Label=Image size: +Supports.WIM.Boot.Label=Supports WIMBoot? +Architecture.Label=Arquitectura: +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Service Pack level: +InstallationType.Label=Installation type: +Edition.Label=Edition: +ProductType.Label=Product type: +ProductSuite.Label=Product suite: +System.Root.Dir.Label=System root directory: +FileCount.Label=File count: +Dates.Label=Dates: +Installed.Languages.Label=Installed languages: +ImageInfo.Label=Información de imagen +Index.List.View.Label=Select an index on the list view on the left to view its information here +Save.Button=Guardar... +Image.Label=Get image information + +[Designer.GetPkgInfo] +AddPackages.Help.Message=Click here to get information about packages that you want to add to the Windows image you're servicing before proceeding with the package addition process +Get.Packages.Message=Click here to get information about packages that you've installed or that came with the Windows image you're servicing +InstalledPackage.Link=I want to get information about installed packages in the image +PackageFile.Link=I want to get information about package files +Get.Label=What do you want to get information about? +Save.Button=Guardar... +Status.Label=Estado +PackageName.Label=Nombre del paquete: +DynamicValue.Label= +Package.Applicable.Label=Is package applicable? +Copyright.Label=Copyright: +Company.Label=Company: +CreationTime.Label=Creation time: +Description.Label=Descripción: +InstallClient.Label=Install client: +Install.Package.Name.Label=Install package name: +InstallTime.Label=Install time: +Last.Update.Time.Label=Last update time: +DisplayName.Label=Nombre para mostrar: +ProductName.Label=Product name: +ProductVersion.Label=Product version: +ReleaseType.Label=Release type: +RestartRequired.Label=Is a restart required? +SupportInfo.Label=Support information: +State.Label=Estado: +Boot.Up.Required.Label=Is a boot up required for full installation? +Capability.Identity.Label=Capability identity: +CustomProps.Label=Custom properties: +Features.Label=Features: +PackageInfo.Label=Información del paquete +Installed.Package.View.Label=Select an installed package to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddPackage.Button=Add package... +Add.Package.File.Label=Add or select a package file to view its information here +GoBack.Link=<- Go back +Cabfiles.Filter=CAB files|*.cab +Locate.Package.Files.Title=Locate package files +Package.Label=Get package information + +[Designer.WinPESettings] +Ok.Button=OK +Windows.Label=These are the Windows PE settings for this image: +Change.Button=Cambiar... +TargetPath.Label=Target path: +ScratchSpace.Label=Scratch space: +Save.Button=Guardar... +Get.Windows.Pesettings.Label=Get Windows PE settings + +[Designer.ImageFilePicker] +Ok.Button=OK +Cancel.Button=Cancelar +ImageFile.Column=Image File +Pick.Windows.ImageFile.Label=Pick Windows image file +MountList.Prompt.Label=Pick the Windows image file that you want to mount from the list below and click OK: + +[Designer.ImageTaskHeader] +ItemText.Title=Item Text + +[Designer.ImgAppend] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Group=Opciones +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Grab.Last.Image.Button=Grab from last image +Browse.Button=Examinar... +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +ExtendedAttributes.CheckBox=Capture extended attributes +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +WIM.Boot.Config.CheckBox=Append with WIMBoot configuration +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Destination.ImageFile.Label=Archivo de imagen de destino: +Sources.Destinations.Group=Sources and destinations +Source.Image.Dir.Label=Source image directory: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +AppendImage.Label=Append to an image + +[Designer.ImgApply] +Ok.Button=OK +Cancel.Button=Cancelar +Source.Group=Origen +Browse.Button=Examinar... +Mounted.Image.Label=Usar imagen montada +SourceImageFile.Label=Archivo de imagen de origen: +Options.Group=Opciones +Extended.Attributes.CheckBox=Apply extended attributes +Image.Compact.Mode.CheckBox=Apply image in compact mode +ImageIndex.Label=Image index: +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Reference.Swmfiles.CheckBox=Reference SWM files +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Verify.CheckBox=Verify +Integrity.CheckBox=Comprobar integridad de la imagen +Destination.Group=Destino +Destination.Dir.Label=Destination directory: +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm|ESD files|*.esd +Source.Image.Required.Title=Please specify the source image to apply +SwmfilePattern.Group=SWM file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Patrón de nombre: +DestinationDir.Description=Please specify the destination directory to apply the image to: +ApplyImage.Label=Apply an image +Validate.Image.CheckBox=Validate image for Trusted Desktop + +[Designer.ImgCapture] +Ok.Button=OK +Cancel.Button=Cancelar +Sources.Destinations.Group=Sources and destinations +Browse.Button=Examinar... +Destination.ImageFile.Label=Archivo de imagen de destino: +Source.Image.Dir.Label=Source image directory: +Options.Group=Opciones +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Mount.Dest.Image.CheckBox=Mount destination image for later use +Extended.Attributes.CheckBox=Capture extended attributes +Append.WIM.Boot.CheckBox=Append with WIMBoot configuration +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +CaptureImage.Label=Capture an image + +[Designer.ImgCleanup] +Ok.Button=OK +Cancel.Button=Cancelar +Task.Choose.Label=Choose a task: +Revert.Pending.Actions.Item=Revert pending actions +Clean.Up.ServicePack.Item=Clean up Service Pack backup files +Clean.Up.Component.Item=Clean up component store +Analyze.Component.Store.Item=Analyze component store +Check.Component.Store.Item=Check component store +Scan.Comp.Store.Item=Scan component store for corruption +Repair.Component.Store.Item=Repair component store +TaskOptions.Group=Task options +NoOptions.Message=There are no configurable options for this task. However, you should only run this task to try to recover a Windows image that fails to boot. +HideServicePack.CheckBox=Hide service pack from the Installed Updates list +Last.Reset.Base.Label=LastResetBase_UTC +Only.Check.Option.Label=You should only check this option if the base reset takes more than 30 minutes to complete +Superseded.Base.Reset.Label=The superseded components base reset was last run on: +Defer.Long.Running.CheckBox=Defer long-running cleanup operations +Reset.Base.CheckBox=Reset base of superseded components +NoOptions.Label=There are no configurable options for this task. +Browse.Button=Examinar... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +Different.Source.CheckBox=Use different source for component repair +Detect.Group.Policy.Button=Detect from group policy +Task.Listed.Label=Select a task listed above to configure its options. +Task.See.Choose.Label=Choose a task to see its description +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +Source.Title=Specify the source from which we will restore the component store health +ImageCleanup.Label=Image cleanup + +[Designer.ImageConvert] +Converted.Message=The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located.{crlf;}{crlf;}Do you want to open the directory where the target image is stored? +Converted.Label=The image has been successfully converted +Yes.Button=Yes +No.Button=No +AppName.Label=DISMTools + +[Designer.ImgExport] +Ok.Button=OK +Cancel.Button=Cancelar +Sources.Destinations.Group=Sources and destinations +Browse.Button=Examinar... +Destination.ImageFile.Label=Archivo de imagen de destino: +SourceImageFile.Label=Archivo de imagen de origen: +Options.Group=Opciones +Reference.Swmfiles.CheckBox=Reference SWM files +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Patrón de nombre: +CustomName.CheckBox=Specify a custom name for the destination image +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Recovery.Item=recovery +CompressionType.Label=Destination image compression type: +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Index.Column=Índice +ImageName.Column=Nombre de imagen +ImageDescription.Column=Descripción de imagen +ImageVersion.Column=Versión de imagen +Source.Image.Index.Label=Source image index: +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm +Source.ImageFile.Title=Specify a source image file to export +ExportImage.Label=Export an image +CheckIntegrity.CheckBox=Check integrity before exporting image + +[Designer.ImageIndexDelete] +Ok.Button=OK +Cancel.Button=Cancelar +SourceImage.Label=Source image: +Browse.Button=Examinar... +Mounted.Image.Button=Usar imagen montada +VolumeImages.Group=Volume images +Index.Column=Índice +ImageName.Column=Nombre de imagen +Get.Indexes.Image.Label=Getting indexes from the image. Please wait... +Mark.VolumeImages.Message=Please mark the volume images to delete on the left. The image will then have the indexes shown on the right +Integrity.CheckBox=Comprobar integridad de la imagen +WIM.Files.Filter=WIM files|*.wim +Source.Image.Remove.Title=Specify the source image to remove volume images from +Remove.Volume.Image.Label=Remove a volume image + +[Designer.ImageIndexSwitch] +Ok.Button=OK +Cancel.Button=Cancelar +Indexes.Group=Indexes +Save.Changes.RadioButton=Save changes to index +Index.Label= +Destination.Mount.Label=Destination index to mount: +Unmounting.Source.Label=When unmounting source index, what to do? +Image.Label=Image: +Already.Mounted.Label=This index has already been mounted +Image.Indexes.Label=Switch image indexes +DiscardChanges.RadioButton=Unmount discarding changes + +[Designer.Img.Save] +Status.Label=Estado +Wait.Message=Please wait while DISMTools saves the image information to a file. This can take some time, depending on the tasks that are run. +Saving.Image.Button=Saving image information... + +[Designer.ImgMount] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Required.Label=Please specify the options to mount an image: +Source.Group=Origen +Notewant.ESD.Label=NOTE: if you want to mount an ESD file, you need to convert it to a WIM file first +Convert.Button=Convert +Browse.Button=Examinar... +ImageFile.Label=Image file*: +Destination.Group=Destino +MountDirectory.Label=Mount directory*: +Options.Group=Opciones +Index.Column=Índice +ImageName.Column=Nombre de imagen +ImageDescription.Column=Descripción de imagen +ImageVersion.Column=Versión de imagen +Integrity.CheckBox=Comprobar integridad de la imagen +Optimize.Times.CheckBox=Optimize mount times +Mount.Read.CheckBox=Mount with read only permissions +Index.Label=Index*: +Fields.End.Required.Label=The fields that end in * are required +FileSpec.Filter=WIM files|*.wim|ESD files|*.esd|SWM files|*.swm|VHD(X) files|*.vhd;*.vhdx|ISO files|*.iso|Full Flash Utility files|*.ffu +MountImage.Label=Mount an image + +[Designer.ImgOptimize] +Ok.Button=OK +Cancel.Button=Cancelar +Path.Mounted.Image.Label=Path of mounted image to optimize: +Pick.Button=Elegir... +Mounted.Image.Button=Usar imagen montada +Image.Optimization.Mode=Image optimization mode +Reduce.Online.RadioButton=Reduce online configuration time that the target OS spends during boot +Image.Again.Label=You may need to optimize the image again if you perform servicing operations after this task. +OfflineImage.RadioButton=Configure an offline image for installation on a WIMBoot system (Windows 8.1 only) +OptimizeImages.Label=Optimize images + +[Designer.Img.SWM] +Ok.Button=OK +Cancel.Button=Cancelar +Split.WIM.Files.Filter=Split WIM files|*.swm +Source.Swmfile.Title=Specify the source SWM file to merge +WIM.Files.Filter=WIM files|*.wim +Dest.WIM.File.Title=Specify the destination WIM file to merge the source SWM files to +SourceSwmfile.Label=Source SWM file: +Browse.Button=Examinar... +Destination.WIM.File.Label=Destination WIM file: +Notewhen.Specifying.Message=NOTE: when specifying the SWM file, choose the first file. DISMTools will take care of additional SWM files stored in that directory. +LearnHow.Link=Learn how to do it +Source.Group=Origen +Options.Group=Opciones +Index.Column=Índice +ImageName.Column=Nombre de imagen +ImageDescription.Column=Descripción de imagen +ImageVersion.Column=Versión de imagen +Index.Label=Index: +Destination.Group=Destino +MergeSwmfiles.Label=Merge SWM files + +[Designer.ImgSplit] +Ok.Button=OK +Cancel.Button=Cancelar +Swmfiles.Filter=SWM files|*.swm +SaveFile.Title=Specify the target location of the split images: +WIM.Files.Filter=WIM files|*.wim +Source.WIM.File.Title=Specify the source WIM file to split: +Source.Image.Label=Source image to split: +Browse.Button=Examinar... +Name.Path.Destination.Label=Name and path of the destination split image: +Maximum.Size.Images.Label=Maximum size of split images (in MB): +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Integrity.CheckBox=Comprobar integridad de la imagen +SplitImages.Label=Split images + +[Designer.ImgUmount] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Required.Label=Please specify the options to unmount this image: +MountDirectory.Group=Mount directory +Pick.Button=Elegir... +MountDirectory.Label=Mount directory: +LocatedSomewhere.RadioButton=is located somewhere else +LoadedProject.RadioButton=is loaded in the project +Mount.Dir.Label=The mount directory: +Additional.Options.Group=Additional options +Save.Changes.Unmount.Item=Save changes and unmount +Discard.Changes.Unmount.Item=Discard changes and unmount +Append.Changes.CheckBox=Append changes to another index +Integrity.CheckBox=Comprobar integridad de la imagen +UnmountOperation.Label=Unmount operation: +MountDir.Description=Please specify a mount directory: +UnmountImage.Label=Unmount an image + +[Designer.Img.WIM] +Ok.Button=OK +Cancel.Button=Cancelar +Source.Group=Origen +Browse.Button=Examinar... +SourceImageFile.Label=Archivo de imagen de origen: +Options.Group=Opciones +Index.Column=Índice +ImageName.Column=Nombre de imagen +ImageDescription.Column=Descripción de imagen +ImageVersion.Column=Versión de imagen +Index.Label=Index: +Format.Converted.Image.Label=Format of converted image: +Format.Ichoose.Link=Which format do I choose? +Destination.Group=Destino +Destination.ImageFile.Label=Archivo de imagen de destino: +OpenFile.Filter=WIM files|*.wim|ESD files|*.esd +Source.ImageFile.Title=Specify the source image file you want to convert +Target.Image.Stored.Title=Where will the target image be stored? +ConvertImage.Label=Convert image + +[Designer.VistaWarning] +Unsupported.Message=Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled.{crlf;}{crlf;}If you still want to service a Windows Vista image, refer to the {quot;}Compatibility with older Windows versions{quot;} topic in the Help documentation.{crlf;}{crlf;}Do you want to continue? +Windows.Service.Message=The program can't service Windows Vista images +Yes.Button=Yes +No.Button=No +DISMTools.Label=DISMTools + +[Designer.ImportDrivers] +Ok.Button=OK +Cancel.Button=Cancelar +Process.Third.Message=This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image +ImportSource.Label=Import source: +Windows.Item=Windows image +Online.Install.Item=Online installation +Offline.Install.Item=Offline installation +ImgFile.Label= +ImageFile.Label=Image file: +Tuse.Target.Label=You can't use the import target as the import source +Pick.Button=Elegir... +Windows.Label=Windows image to import drivers from: +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Refresh.Button=Actualizar +Offline.Drivers.Label=Offline installation to import drivers from: +Source.Listed.Choose.Label=Choose a source listed above to configure its settings. +ImportDrivers.Label=Import drivers + +[Designer.IncompleteSetupDlg] +Yes.Button=Yes +No.Button=No +SetupIncomplete.Message=Setup is not complete yet, and your custom settings will not be saved. Proceeding will make the program use default settings.Do you want to proceed? +DISMTools.Label=DISMTools + +[Designer.InfoSaveResults] +ReportSaved.Message=The report has been saved to the location you had specified, and its contents will be shown below. +Ok.Button=OK +Display.Content.Web.CheckBox=Display content in Web View +SaveReport.Button=Save report... +Htmlreports.Filter=HTML Reports|*.html +Image.Report.Label=Image information report results + +[Designer.InvalidSettings] +Ok.Button=OK +Scratch.Dir.Status.Label= +Log.File.Status.Label= +Log.Font.Status.Label= +DISM.Executable.Status.Label= +Detected.Label=Invalid settings have been detected +ResetDefaults.Message=The invalid settings have been reset to default values. Check the fields below for more information: +Found.Label=The program has detected invalid settings + +[Designer.ISOCreator] +ISO.File.Message=The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here. +Options.Group=Opciones +Include.Essential.CheckBox=Include essential drivers from this system +Customize.Environment.Button=Customize Environment... +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Browse.Button=Examinar... +Copy.Ventoy.Drives.CheckBox=Copy to Ventoy drives +Unattended.CheckBox=Unattended answer file: +Architecture.Label=Arquitectura: +Pick.Button=Elegir... +Target.Isolocation.Label=Target ISO location: +ImageFile.Add.Label=Image file to add to ISO file: +Mounted.Image.Button=Usar imagen montada +Newly.Signed.Boot.CheckBox=Use newly-signed boot binaries +Cancel.Button=Cancelar +Create.Button=Create +Progress.Group=Progreso +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=Estado +WIM.Files.Filter=WIM files|*.wim +Isofiles.Filter=ISO files|*.iso +Download.Windows.ADK.Link=Download the Windows ADK +Answer.Files.XML.Filter=Answer files|*.xml +CreateIsofile.Label=Create an ISO file + +[Designer.Main] +File.Label=&File +NewProject.Button=&New project... +Open.Existing.Project.Label=&Open existing project +Manage.Online.Install.Label=&Manage online installation +Manage.Ffline.Button=Manage o&ffline installation... +RecentProjects.Label=Recent projects +SaveProject.Button=&Save project... +Save.Project.Button=Save project &as... +Exit.Label=E&xit +Project.Label=&Project +View.Project.Files.Label=View project files in File Explorer +UnloadProject.Button=Unload project... +Switch.Image.Indexes.Button=Switch image indexes... +ProjectProps.Label=Project properties +ImageProps.Label=Image properties +Commands.Label=Com&mands +ImageManagement.Label=Image management +Append.Capture.Dir.Button=Append capture directory to image... +ApplyFfusfufile.Button=Apply FFU or SFU file... +ApplyWimswmfile.Button=Apply WIM or SWM file... +Capture.Incremental.Button=Capture incremental changes to file... +Capture.Partitions.Button=Capture partitions to FFU file... +Capture.Image.Drive.Button=Capture image of a drive to WIM file... +Delete.Resources.Button=Delete resources from corrupted image... +Apply.Changes.Image.Button=Apply changes to image... +Delete.Volume.Image.Button=Delete volume image from WIM file... +ExportImage.Button=Export image... +Get.Image.Button=Get image information... +Get.WIM.Boot.Button=Get WIMBoot configuration entries... +List.Files.Dirs.Button=List files and directories in image... +MountImage.Button=Mount image... +Optimize.FFU.File.Button=Optimize FFU file... +OptimizeImage.Button=Optimize image... +Remount.Image.Button=Remount image for servicing... +Split.FFU.File.Button=Splt FFU file into SFU files... +Split.WIM.File.Button=Split WIM file into SWM files... +UnmountImage.Button=Unmount image... +Update.WIM.Boot.Button=Update WIMBoot configuration entry... +Apply.Siloed.Prov.Button=Apply siloed provisioning package... +Save.Image.Button=Save image information... +OSPackages.Label=OS packages +GetPackages.Button=Get package information... +AddPackage.Button=Add package... +RemovePackage.Button=Remove package... +GetFeatures.Button=Get feature information... +EnableFeature.Button=Enable feature... +DisableFeature.Button=Disable feature... +CleanupRecovery.Button=Perform cleanup or recovery operations... +ProvPackages.Label=Provisioning packages +Add.Prov.Package.Button=Add provisioning package... +Get.Prov.Package.Button=Get provisioning package information... +Apply.CustomData.Button=Apply custom data image... +AppPackages.Label=App packages +Get.App.Package.Button=Get app package information... +Add.Provisioned.App.Button=Add provisioned app package... +Remove.Prov.App.Button=Remove provisioning for app package... +Optimize.Provisioned.Button=Optimize provisioned packages... +Add.CustomData.File.Button=Add custom data file into app package... +AppMspservicing.Label=App (MSP) servicing +Get.App.Patch.Button=Get application patch information... +Installed.App.Details.Button=Get detailed installed application patch information... +Basic.Installed.App.Button=Get basic installed application patch information... +Get.Detailed.Button=Get detailed Windows Installer (*.msi) application information... +Get.Basic.Windows.Button=Get basic Windows Installer (*.msi) application information... +DefaultApp.Assoc.Label=Default app associations +Export.Default.Button=Export default application associations... +DefaultApp.Assoc.Button=Get default application association information... +Import.Default.Button=Import default application associations... +Remove.Default.Button=Remove default application associations... +Languages.Regional.Label=Languages and regional settings +Intl.Settings.Button=Get international settings and languages... +SetUilanguage.Button=Set UI language... +Set.Default.Button=Establecer idioma de reserva predeterminado de la interfaz de usuario... +Set.System.Preferred.Button=Set system preferred UI language... +Set.System.Locale.Button=Set system locale... +Set.User.Locale.Button=Set user locale... +Set.Input.Locale.Button=Set input locale... +Set.UI.Button=Set UI language and locales... +Set.Default.Time.Button=Set default time zone... +Set.Default.Languages.Button=Set default languages and locales... +Set.Layered.Driver.Button=Set layered driver... +Generate.Lang.Ini.Button=Generate Lang.ini file... +Set.Default.Setup.Button=Set default Setup language... +Capabilities.Label=Capacidades +AddCapability.Button=Add capability... +Export.Capabilities.Button=Export capabilities into repository... +GetCapabilities.Button=Get capability information... +RemoveCapability.Button=Remove capability... +WindowsEditions.Label=Windows editions +Get.Edition.Button=Get current edition... +Get.Upgrade.Targets.Button=Get upgrade targets... +UpgradeImage.Button=Upgrade image... +SetProductKey.Button=Set product key... +Drivers.Label=Controladores +GetDrivers.Button=Get driver information... +AddDriver.Button=Add driver... +RemoveDriver.Button=Remove driver... +Export.DriverPackages.Button=Export driver packages... +Import.DriverPackages.Button=Import driver packages... +Unattended.Answer.Label=Unattended answer files +Apply.Unattended.Button=Apply unattended answer file... +Remove.Applied.Label=Remove applied answer file +System.Enter.Audit.Label=Make system enter audit mode +WindowsPE.Label=Windows PE servicing +GetSettings.Button=Get settings... +SetScratchSpace.Button=Set scratch space... +Set.Target.Path.Button=Set target path... +OSUninstall.Label=OS uninstall +Get.Uninstall.Window.Button=Get uninstall window... +Initiate.Uninstall.Button=Initiate uninstall... +Remove.Roll.Back.Button=Remove roll back ability... +Set.Uninstall.Window.Button=Set uninstall window... +ReservedStorage.Label=Reserved storage +Set.Reserved.Storage.Button=Set reserved storage state... +Get.Reserved.Storage.Button=Get reserved storage state... +MicrosoftEdge.Label=Microsoft Edge +AddEdge.Button=Add Edge... +Add.Edge.Browser.Button=Add Edge browser... +Add.Edge.Web.Button=Add Edge WebView... +Tools.Label=&Tools +ImageConversion.Label=Image conversion +Wimesd.Label=WIM <-> ESD +MergeSwmfiles.Button=Merge SWM files... +Remount.Image.Write.Label=Remount image with write permissions +CommandConsole.Label=Command Console +Unattended.AnswerFile.Label=Unattended answer file manager +Unattended.Creator.Label=Unattended answer file creator +Manage.Image.Registry.Button=Manage image registry hives... +Manage.System.Button=Manage system services... +Manage.System.Env.Button=Manage system environment variables... +WebResources.Label=Web Resources +Download.Languages.Button=Download Languages and Optional Features ISOs... +Download.FOD.Button=Download Languages and FOD discs for Windows 10... +StartPXE.Button=Start PXE Helper Server for... +Windows.Label=Windows Deployment Services +FOG.Label=FOG +Show.Instructions.Label=Show instructions for FOG Helper Server on UNIX systems +Copy.My.Windows.Button=Copy my Windows image to a WDS server... +Evaluate.Windows.Label=Evaluate Windows UEFI CA 2023 readiness on this system +ReportManager.Label=Report manager +Mounted.Image.Manager.Label=Mounted image manager +Create.Disc.Image.Button=Create disc image... +Create.Testing.Button=Create testing environment... +Config.List.Editor.Label=Configuration list editor +Create.StarterScript.Label=Create a starter script +DesignTheme.Label=Design a theme +Options.Label=Opciones +Help.Label=&Help +HelpTopics.Label=Help Topics +DISM.Tools.Tour.Label=DISMTools Tour +DISM.Tools.Label=About DISMTools +Join.Discord.Opens.Label=Join the discord (opens in web browser) +Report.Feedback.Opens.Label=Enviar comentarios (se abre en el navegador web) +Open.Diagnostic.Logs.Label=Open diagnostic logs in log viewer +Contribute.Help.System.Label=Contribute to the help system +Branch.Label=Branch +Preview.Label=PREVIEW +Beta.Release.Tooltip=This is a beta release. In it, you will encounter lots of bugs and incomplete features. +Full.Screen.Shortcut.Label=(F11) +Settings.Detected.Label=Invalid settings have been detected +MoreInfo.Label=More information +WhatsThis.Label=What's this? +DISM.Tools.Actions.Label=DISMTools Tour Actions +Tour.Server.Active.Label=Tour Server is active on port 2022 +RestartTour.Label=Restart Tour +Stop.Tour.Server.Label=Stop Tour Server +Video.Content.Loaded.Label=Video content could not be loaded. +LearnMore.Link=Saber más +Retry.Button=Reintentar +Name.Column=Nombre +FactDay.Label=Fact of the day +Learn.Watching.Videos.Label=Learn by watching videos +Managing.External.Link=Managing external Windows installations +Managing.Install.Link=Managing your current installation +Get.Started.DISM.Link=Get started with DISMTools and image servicing +Learn.Snew.Link=Learn what's new in this release +Explore.Get.Started.Label=Explore and get started +News.Feed.Loaded.Label=The news feed could not be loaded. +Stay.Up.Date.Label=Stay up-to-date +News.Last.Updated.Label=Última actualización de noticias: +NewsFeed.Item.Label=Texto de la noticia +Item.Feed.Date.Label=Fecha de la noticia +OS.Label=OS +IP.Address.Config.Label=IP Address Configuration: +Processor.Label=Processor +DomainMembership.Label=Domain Membership: +Memory.Label=Memory +Storage.Label=Storage +DomainStatus.Label=Domain Status +WorkgroupDomain.Label=Workgroup/Domain: +ComputerModel.Label=Computer Model +ComputerName.Label=Computer Name +Rename.Link=Rename +PathName.Column=Path/Name +NewVersion.Available.Link=A new version is available for download and installation. Click here to learn more +RemoveEntry.Link=Remove entry +Manage.Offline.Button.Button=Manage offline installation... +Manage.Online.Install.Link=Manage online installation +Open.Existing.Project.Link=Open existing project... +NewProject.Link=New project... +Begin.Label=Begin +ImageOperations.Group=Image operations +CaptureImage.Button=Capture image... +ApplyImage.Button=Apply image... +Save.Complete.Image.Button=Save complete image information... +Remove.VolumeImages.Button=Remove volume images... +Reload.Servicing.Button=Reload servicing session +Unmount.Image.Button=Unmount image discarding changes +CommitImage.Button=Commit and unmount image +Commit.Changes.Button=Commit current changes +Package.Operations.Group=Package operations +Save.Installed.Button=Save installed package information... +Component.Store.Maint.Button=Perform component store maintenance and cleanup... +Get.Package.Button=Get package information... +Feature.Operations.Group=Feature operations +Save.Feature.Button=Save feature information... +Get.Feature.Button=Get feature information... +AppX.Package.Operations=AppX package operations +Save.Installed.AppX.Button=Save installed AppX package information... +Add.AppX.Package.Button=Add AppX package... +Get.App.Button=Get app information... +Remove.AppX.Package.Button=Remove AppX package... +Capability.Operations.Group=Capability operations +Save.Capability.Button=Save capability information... +Get.Capability.Button=Get capability information... +DriverOperations.Group=Driver operations +Save.Installed.Driver.Button=Save installed driver information... +AddDriverPackage.Button=Add driver package... +Get.Driver.Button=Get driver information... +Windows.Group=Windows PE operations +SaveConfig.Button=Save configuration... +GetConfig.Button=Get configuration... +LearnMore.Button=Learn more... +One.Bg.Procs.Message=One or more background processes did not finish successfully. Some functionality may not be available. +ProjectTasks.Label=Project Tasks +UnloadProject.Link=Descargar proyecto +Open.File.Explorer.Link=Open in File Explorer +View.Project.Props.Link=View project properties +UnloadProject.ActionButton=Descargar proyecto +View.File.Explorer.Button=View in File Explorer +View.Project.Props.Button=View project properties +Mount.Image.Link=Click here to mount an image +ImgStatus.Label=imgStatus +Location.Label=Location: +ProjPath.Label=projPath +ImagesMounted.Label=Images mounted? +Name.Label=Nombre: +ProjectName.DynamicLabel= +ImageMounted.Label=No image has been mounted +Mount.Image.Order.Label=You need to mount an image in order to view its information. +Choices.Label=Choices +Pick.Mounted.Image.Link=Pick a mounted image... +MountImage.Link=Mount an image... +ImageTasks.Label=Image Tasks +UnmountImage.Link=Unmount image +View.Image.Props.Link=View image properties +ImageIndex.Label=Image index: +Description.Label=Descripción: +ImgIndex.Label=imgIndex +MountPoint.Label=Mount point: +MountPoint.Value=mountPoint +Version.Label=Versión: +ImgName.Label=imgName +ImgDesc.Label=imgDesc +ImgVersion.Label=imgVersion +Project.Link=PROJECT +Image.Link=IMAGE +Clock.DynamicLabel= +Welcome.Servicing.Label=Welcome to this servicing session +CloseTab.Label=Close tab +SaveProject.Label=Save project +UnloadProject.Label=Descargar proyecto +Unload.Project.Tooltip=Unload project from this program +Show.Progress.Window.Label=Show progress window +RefreshView.Label=Refresh view +Expand.Label=Expand +Preparing.Project.Button=Preparing project tree... +Status.Label=Estado +View.BgProcesses.Tooltip=View background processes +Ready.Label=Ready +DISM.Tools.Project.Filter=DISMTools project files|*.dtproj +Project.File.Load.Title=Specify the project file to load +Get.Basic.Label=Get basic information (all packages) +Get.Detailed.Specific.Label=Get detailed information (specific package) +MountDir.Description=Please specify the mount directory you want to load into this project: +CommitImage.Label=Commit changes and unmount image +Discard.Changes.Label=Discard changes and unmount image +UnmountSettings.Button=Unmount settings... +View.Package.Dir.Label=View package directory +ViewResources.Label=View resources for +ExpandItem.Label=Expand item +AccessDirectory.Label=Access directory +Copy.Deployment.Tools.Label=Copy deployment tools +AllArchitectures.Label=Of all architectures +Selected.Architecture.Label=Of selected architecture +Xarchitecture.Label=For x86 architecture +Amarkdown.Architecture.Label=For AMD64 architecture +ARM.Label=For ARM architecture +ARM64.Label=For ARM64 architecture +ImageOperations.Label=Image operations +Manage.Label=Manage +Create.Label=Create +Configure.Scratch.Dir.Label=Configure scratch directory +ManageReports.Label=Manage reports +Add.Button=Agregar +NewFile.Button=New file... +ExistingFile.Button=Existing file... +SaveResource.Button=Save resource... +CopyResource.Label=Copy resource +PngFiles.Filter=PNG files|*.png +Visit.Microsoft.Apps.Label=Visit the Microsoft Apps website +Visit.Microsoft.Label=Visit the Microsoft Store Generation Project website +Iget.Apps.Label=How do I get applications? +MarkdownFiles.Filter=Markdown files|*.md +Get.ImageFile.Button=Get image file information... +Create.Disc.ImageFile.Button=Create disc image with this file... +Upload.Image.My.Button=Upload this image to my WDS server... +ApplyWimswmesd.Button=Apply WIM/SWM/ESD file... +Apply.FFU.File.Button=Apply FFU file... +Capture.Install.Dir.Button=Capture installation directory to WIM file... +Capture.Install.Drive.Button=Capture installation drive to FFU file... +DISMTools.Label=DISMTools + +[Designer.MigrationForm] +Wait.Message=Please wait while DISMTools migrates your old settings file to work on this version. This may take some time. +Wait.Label=Espere... +DISMTools.Label=DISMTools + +[Designer.MountDirCreation] +Create.Label=Do you want to create the mount directory? +Yes.Button=Yes +No.Button=No +MountImage.Label=Mount an image + +[Designer.MountedImgMgr] +Overview.Images.Message=Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project: +ImageFile.Column=Image file +Index.Column=Índice +MountDirectory.Column=Mount directory +Status.Column=Estado +Read.Write.Column=Read/write permissions? +LoadProject.Button=Load into project +Value.Button=... +Open.Mount.Dir.Button=Open mount directory +Enable.Write.Button=Enable write permissions +ReloadServicing.Button=Reload servicing +Remove.VolumeImages.Button=Remove volume images... +UnmountImage.Button=Unmount image +Image.Manager.Label=Mounted image manager + +[Designer.MUMAdd] +Ok.Button=OK +Cancel.Button=Cancelar +DialogHelp.Message=This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time.{crlf;}{crlf;}Do note that this is for advanced use only and may compromise the target Windows image. +Path.Manifest.File.Label=Path of the manifest file to add: +Browse.Button=Examinar... +MUMFiles.Filter=Microsoft Update Manifest (MUM) files|update.mum +Update.Manifest.Label=Add update manifest + +[Designer.NewProj] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Required.Label=Please specify the options to create a new project: +Project.Group=Proyecto +Browse.Button=Examinar... +Location.Label=Location*: +Name.Label=Name*: +Folder.Store.Description=Please select a folder to store this project: +Fields.End.Required.Label=The fields that end in * are required +Create.Project.Label=Create a new project + +[Designer.NewTestingEnv] +Download.Windows.ADK.Link=Download the Windows ADK +Create.Button=Create +Cancel.Button=Cancelar +WizardHelp.Message=This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments.{crlf;}{crlf;}The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file. +Architecture.Label=Arquitectura: +Env.Architecture.Label=Environment architecture: +Browse.Button=Examinar... +Target.Project.Label=Target project location: +Progress.Group=Progreso +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=Estado +Create.Environment.Label=Create a testing environment + +[Designer.Unattend] +Welcome.Label=Welcome +RegionalConfig.Label=Regional Configuration +Basic.System.Config.Label=Basic System Configuration +TreeNode.Label=Time Zone +DiskConfig.Label=Disk Configuration +ProductKey.Label=Product Key +UserAccounts.Label=User Accounts +VirtualMachine.Support.Label=Virtual Machine Support +Wireless.Networking.Label=Wireless Networking +SystemTelemetry.Label=System Telemetry +PostInstall.Scripts.Label=Post-Installation Scripts +Component.Settings.Label=Component Settings +Finish.Label=Finish +EditorMode.Label=Editor mode +ExpressMode.Label=Express mode +Notereturn.Applying.Label=NOTE: you will return to this wizard after applying the answer file +EditAnswerFile.Link=Edit answer file +Open.Windows.System.Link=Open with Windows System Image Manager +Apply.Unattended.Link=Apply unattended answer file... +Open.Location.File.Link=Open the location of the file +Create.Another.Link=Create another answer file +FileCreated.Message=The unattended answer file has been created at the location you specified. What do you want to do now? +Congratulations.Done.Label=Congratulations! You have finished +Wait.Take.Label=Please wait - this can take some time +Progress.Label=Progress: +Wait.UnattendAnswer.Button=Please wait while your unattended answer file is being created... +Something.Right.Go.Message=If something is not right, you will need to go back to that page in order to change the setting. Do not worry: other settings will be kept intact +WordWrap.CheckBox=Word wrap +ReviewSettings.Label=Review your settings for the unattended answer file +Don.Twant.Add.Label=Don't want to add custom components? Click Next to skip this step. +No.Custom.None.Message=No custom components have been added yet. Click the plus symbol on the top of this section to add a new component. +Learn.Custom.Link=Learn more about custom components in Windows +Pass.Label=Pass: +Component.Label=Component: +Component.Count.Label=Component {{current}} of {{count}} +Learn.Component.Link=Learn more about this component +Screen.Add.Message=In this screen you can add additional components that you want to configure in your unattended answer file. Add new components, specify their passes and their data, and click Next. +Components.Label=Configure additional components +Hide.Script.Windows.CheckBox=Hide script windows +RestartExplorer.CheckBox=Restart Windows Explorer after running the scripts +Import.StarterScript.Button=Import a predefined Starter Script... +ImportScript.Button=Import a Starter Script in file system... +Language.Label=Language: +OpenScript.Button=Open script... +Scripts.Have.None.Message=No scripts have been added to this stage yet. Click the plus symbol on the top of this section to add a new script. +Script.Count.Label=Script {{current}} of {{count}} +System.Config.Link=During system configuration +First.User.Logs.Link=When the first user logs on +Whenever.User.Logs.Link=Whenever a user logs on for the first time +ScriptScreenHelp.Message=In this screen you can configure scripts that will be run during a specific stage of Windows installation. Use the sections below to specify the code for the scripts.{crlf;}{crlf;}If you don't want to configure scripts, click Next. +Run.Install.Label=What will be run after installation? +EnableTelemetry.RadioButton=Enable telemetry +DisableTelemetry.RadioButton=Disable telemetry +ConfigureSettings.CheckBox=I want to configure these settings during installation +Control.Limit.Much.Message=Control and limit how much information is sent to Microsoft and third-parties +WirelessSettings.RadioButton=Configure settings for the wireless network now: +Access.Router.Config.Link=Access router configuration to learn more +Open.Least.Secure.Item=Open (least secure) +Wpapsk.Item=WPA2-PSK +Wpasae.Item=WPA3-SAE +ConnectHidden.CheckBox=Connect even if not broadcasting +Password.Label=Password: +AuthTechnology.Label=Authentication technology: +Technology.Both.Choose.Label=Please choose the technology that both the wireless router and your network adapter support. +SsidnetworkName.Label=SSID (Network Name): +SkipConfig.RadioButton=Skip configuration +Option.Either.Choose.Label=Choose this option if you either don't have a network adapter or plan to use Ethernet +WirelessSettings.Label=Configure wireless network settings and get connected online +Guest.Additions.Message=- Use Guest Additions with Oracle VM VirtualBox{crlf;}- Use VMware Tools with VMware hypervisors{crlf;}- Use VirtIO Guest Tools with QEMU-based hypervisors{crlf;}- Use Parallels Tools with Parallels hypervisors on Macintosh computers +Virtual.Box.Guest.Item=VirtualBox Guest Additions +VmwareTools.Item=VMware Tools +Virt.Ioguest.Tools.Item=VirtIO Guest Tools +ParallelsTools.Item=Parallels Tools +VirtualMachine.Label=Virtual Machine Support: +Iplan.Target.RadioButton=No, I plan on using the target installation on a real system +Iwant.Target.RadioButton=Yes, I want to use the target installation on a virtual machine +Add.Enhanced.Support.Message=Do you want to add enhanced support from your virtual machine solution? +Checking.Option.Target.Label=Checking this option will make the target installation more vulnerable to brute-force attacks +Amount.Failed.Attempts.Label=After the following amount of failed attempts: +UnlockMinutes.Label=After the following amount of minutes, unlock the account: +Lock.Out.Account.Label=Lock out an account... +TimeframeMinutes.Label=Within the following timeframe in minutes: +CustomLockout.RadioButton=Continue with custom Account Lockout policies +DefaultLockout.RadioButton=Continue with default Account Lockout policies +DisablePolicy.CheckBox=Disable policy +AccountLockout.Label=Configure Account Lockout policies for the target system +Days.Label=days +ExpirePassword.RadioButton=Passwords should expire after the following number of days: +Expire42Days.RadioButton=Passwords should expire after 42 days +PasswordsExpire.RadioButton=Passwords should expire after a certain amount of days (not recommended by NIST) +NeverExpire.RadioButton=Passwords should never expire +PasswordsExpire.Label=Should passwords expire? +AccountName.Label=Account name: +Account.Label=Account 1: +Account.Option2.CheckBox=Account 2: +Account.Option3.CheckBox=Account 3: +Account.Option4.CheckBox=Account 4: +Account.Option5.CheckBox=Account 5: +UserList.Label=User accounts: +AccountGroup.Label=Account group: +AccountPassword.Label=Account password: +Account.Display.Name.Label=Account display name: +FirstLog.Group=First log on +Log.Built.Admin.RadioButton=Log on to the built-in administrator account, with password: +Log.First.Admin.RadioButton=Log on to the first administrator account created +Auto.Login.Admin.CheckBox=Log on automatically to an Administrator account +ObscurePasswords.CheckBox=Obscure passwords with Base64 +Ask.Microsoft.CheckBox=Ask for a Microsoft account interactively +Target.Install.Label=Who will use the target installation? +FirmwareProductKey.CheckBox=Get product key from firmware (modern systems only) +Product.Label=Please make sure that the product key you enter is valid +DISM.Tools.Cannot.Label=DISMTools cannot verify whether product keys can be valid for activation +Type.Each.Character.Label=(Type each character of the product key, including the dashes) +ProductKey.Custom.Label=Product Key: +Detect.Image.Edition.Button=Detect from image edition +Copy.Button=Copy +Only.Generic.Key.Label=You should only use this generic key with the edition you want to deploy +ProductKey.Generic.Label=Product Key: +ProductKey.Edition.Label=Use the product key for this edition: +CustomProductKey.RadioButton=Use a custom product key +GenericKey.RadioButton=Use a generic product key (no activation capabilities) +ProductKey.Type.Label=Type your product key for operating system installation +RecoveryPartition.Label=Windows Recovery Environment partition size (in MB): +InstallRecoveryEnv.CheckBox=Install a Recovery Environment +EFI.System.Label=EFI System Partition (ESP) size (in MB): +MBR.RadioButton=MBR +GPT.RadioButton=GPT +PartitionTable.Label=Partition table: +Skip.Disk.Config.Label=Uncheck this only if you want to set up disk configuration now. +DiskLayout.Label=Configure the disk and partition layout of the target system +Time.Label=Time +CurrentTime.Label=Time +Time.Selected.Zone.Label=Current time (selected time zone): +Time.UTC.Label=Current time (UTC): +Set.Time.Zone.RadioButton=Set a time zone manually: +Windows.Decide.RadioButton=Let Windows decide my time zone based on the regional configurations I set earlier +Configure.Time.Zone.Label=Configure time zone settings +DesktopX86.Item=x86 (Desktop 32-Bit) +DesktopX64.Item=x64 (Desktop 64-Bit) +Armwindows.Item=ARM64 (Windows on ARM) +UseConfigSet.CheckBox=Use a configuration set or distribution share +Windows.Set.Random.CheckBox=Let Windows set a random computer name +Config.Set.Message=Make sure that the configuration set or distribution share has been created before copying the resulting unattended answer file to an ISO file and installing the operating system. You can create configuration sets or distribution shares with the Windows System Image Manager (SIM) +Script.Sets.Name.RadioButton=Have the following script configure the name (advanced): +Get.Computer.Name.Button=Get computer name +ComputerName.Label=Computer name: +Type.Computer.Name.Label=Please type a computer name +Check.Option.Only.Message=Check this option only if the target system does not have any network capabilities. You can configure local users in the User Accounts section +BypassNetwork.CheckBox=Bypass Mandatory Network Connection +BypassRequirements.CheckBox=Bypass System Requirements +Windows11.Label=Windows 11 settings: +System.Architec.Label=Please select the system architecture that is supported by the target Windows image to apply +Processor.Architecture.Label=Processor architecture: +BasicSettings.Label=Configure basic system settings +Configure.Settings.Label=You will need to configure these settings during the setup process +SystemLanguage.Label=System language: +SystemLocale.Label=System locale: +HomeLocation.Label=Home location: +Keyboard.Layout.IME.Label=Keyboard layout/IME: +Country.EEA.Choose.Button=Choose country from the EEA +Additional.Layouts.Button=Additional layouts +ConfigureLater.RadioButton=Configure these settings later +SettingsNow.RadioButton=Configure these settings now: +LanguageKeyboard.Label=Configure your language, keyboard layout, and other regional settings +Copy.Linux.Mac.Link=Copy Linux and macOS versions of the unattended answer file generator program... +OnlineGenerator.Link=Answer file generator (online version) +Welcome.Unattended.Label=Welcome to the unattended answer file creation wizard +CreationHelp.Message=The unattended answer file creation wizard lets you create unattended answer files using intuitive interfaces. This wizard is suitable for those people who have never created unattended answer files before or do not want to use a text editor.{crlf;}{crlf;}In this wizard, you will be able to configure regional settings, user accounts, wireless settings, virtual machine support, and more. If you need to add more functionality to your file after creating it, you can use the Editor mode, which you can access by clicking the button on the bottom left.{crlf;}{crlf;}Special thanks to Christoph Schneegans for making the library that makes this wizard possible. You can also use his generator website to configure more settings, like tweaks or Windows Defender Application Control rules.{crlf;}{crlf;}{crlf;}To begin creating your answer file, click Next. +AvailableNow.Label=Not available for now! +NewOverwrite.Label=New (overwrites existing content) +Open.Button=Open... +Save.Button=Save as... +WordWrap.Label=Word wrap +Help.Label=Ayuda +NormalizeSpacing.Label=Normalize spacing +NormalizeSpacing.Tooltip=Makes the spacing consistent by replacing tabs with spaces +WizardHelp.Label=If you haven't created unattended answer files before, use this wizard to create one. +Join.Target.Device.Button=Join target device to domain... +BackButton.Button=Atrás +NextButton.Button=Next +Cancel.Button=Cancelar +Help.Button=Ayuda +Answer.Files.XML.Filter=Answer files|*.xml +Gen.Download.Complete.Title=UnattendGen download complete +EditorMode.Filter=Answer files|*.xml +Power.Shell.Scripts.Filter=PowerShell scripts|*.ps1;*.psm1|Batch scripts|*.bat;*.cmd|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript files|*.js;*.jse +OpenScript.Title=Open script +Path.Description=Specify the path on which you want to store Linux and macOS versions of UnattendGen: +DISM.Tools.Starter.Filter=DISMTools Starter Scripts|*.dtss +Pick.StarterScript.Title=Pick a Starter Script +CreationHelp.Label=Unattended answer file creation wizard +TimeZone.Label=Time zone: +ScriptRun.Description=To configure a script to run at a specific stage, click the stage: +ComputerName.RadioButton=Choose a computer name yourself (recommended) +SelfContained.Message=The self-contained version of UnattendGen has been successfully downloaded. DISMTools will use this version from now on + +[Designer.NewUnattend.LocalAccounts] +OnlyNow.Label=Uncheck this only if you want to set up local accounts now + +[Designer.NewsFeedCard] +Item.Title=Título de la noticia +ItemDate.Label=Fecha de la noticia + +[Designer.OfflineDriveList] +Ok.Button=OK +Cancel.Button=Cancelar +Refresh.Button=Actualizar +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Disk.Choose.Label=Choose a disk +Begin.Install.Message=To begin performing offline installation management, please choose a disk shown in the list below. If additional disks that contain Windows installations have been added or removed, simply click the Refresh button. + +[Designer.OneDriveExclusion] +Exclude.Button=Exclude +CancelButton.Button=Cancelar +Tool.Help.Exclude.Message=This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude.{crlf;}{crlf;}NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool. +Re.Ready.Label=When you're ready, click Exclude. +Path.Exclude.Label=Path to exclude OneDrive folders from: +Browse.Button=Examinar... +UserFolderPath.Description=Choose a path that contains user folders: +Exclude.User.Label=Exclude user OneDrive folders + +[Designer.Options] +Ok.Button=Aceptar +Cancel.Button=Cancelar +DISM.Executable.Filter=DISM executable|dism.exe +Dismexecutable.Title=Especifique el ejecutable de DISM a usar +CheckUpdates.CheckBox=Comprobar actualizaciones +Remount.Mounted.CheckBox=Remontar imágenes montadas que necesitan una recarga de su sesión de servicio +Behavior.OnStartup.Label=Establezca las opciones que le gustaría realizar cuando el programa inicie: +Settings.Aren.Label=Estas configuraciones no son aplicables a instalaciones no portátiles +FileIcons.Projects.CheckBox=Set custom file icons for DISMTools projects +Open.Starter.Scripts.Label=Abrir scripts de inicio con el Editor de scripts de inicio +Set.File.Assoc.Button=Establecer asociaciones +Open.My.Projects.Label=Open my projects with this copy of DISMTools +Manage.File.Assoc.Label=Administre asociaciones de archivos para componentes de DISMTools +AdvancedSettings.Button=Opciones avanzadas +Learn.Background.Link=Conocer más sobre los procesos en segundo plano +Uses.Bg.Procs.Message=El programa utiliza procesos en segundo plano para recopilar información completa de la imagen, como fechas de modificación, paquetes instalados, características presentes; y más +Every.Time.Project.Item=Cada vez que un proyecto ha sido cargado satisfactoriamente +Once.Item=Una vez +Notify.Label=¿Cuándo debería el programa notificarle acerca de procesos en segundo plano siendo iniciados? +Notify.Me.CheckBox=Notificarme cuando los procesos en segundo plano se hayan iniciado +Reports.Allow.Shown.Label=Algunos informes no permiten ser mostrados como una tabla. +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +List.Item=lista +Table.Item=tabla +ExampleReport.Label=Informe de prueba: +LogView.Label=Vista de registro: +Show.Command.Output.CheckBox=Mostrar salida del programa en inglés +Enough.Space.Selected.Label=Puede que no haya suficiente espacio en el directorio temporal seleccionado para algunas operaciones. +ScdirSpace.Label= +Space.Left.Selected.Label=Espacio disponible en directorio temporal: +Browse.Button=Examinar... +ScratchDirectory.Label=Directorio temporal +Scratch.Dir.Message=El programa usará el directorio temporal proporcionado por el proyecto si se cargó alguno. Si está en los modos de administración de instalaciones en línea o fuera de línea, el programa utilizará su directorio temporal +Scratch.Dir.Required.Label=Especifique el directorio temporal a ser usado en operaciones de DISM: +Scratch.Dir.CheckBox=Usar un directorio temporal +Always.Save.CheckBox=Siempre guardar información completa para los siguientes elementos: +SettingsConsider.Label=Escoja las opciones que el programa debería considerar al guardar información de la imagen: +Installed.Packages.CheckBox=Paquetes instalados +InstalledDrivers.CheckBox=Controladores instalados +Capabilities.CheckBox=Funcionalidades +Features.CheckBox=Características +Installed.AppX.CheckBox=Paquetes AppX instalados +Checked.Computer.Message=Cuando esta opción está marcada, su sistema no se reiniciará automáticamente; incluso si se realizan operaciones silenciosamente +QuietOperations.Message=Cuando se realizan operaciones silenciosamente, el programa ocultará información y salida del progreso.{crlf;}Esta opción no se usará al obtener información de, por ejemplo, paquetes o características.{crlf;}También, al realizar un servicio de imágenes, su sistema podría reiniciarse automáticamente. +Skip.System.Restart.CheckBox=Omitir reinicio del sistema +Quietly.Image.Ops.CheckBox=Realizar operaciones silenciosamente +Log.File.Display.Message=El archivo de registro debe mostrar errores, advertencias y mensajes de información después de realizar una operación de imagen. +Errors.Warnings.Label=Errores, advertencias y mensajes de información (nivel de registro 3) +Image.Ops.Message=Cuando se realizan operaciones en la línea de comandos, especifique el argumento {quot;}/LogPath{quot;} para guardar el registro de operaciones en el archivo de destino +Log.File.Level.Label=Nivel de registro: +Operation.Log.File.Label=Archivo de registro: +Classic.RadioButton=Clásico +Modern.RadioButton=Moderno +Secondary.Progress.Label=Estilo del panel de progreso secundario: +Font.Readable.Log.Message=Esta fuente podría no ser legible en ventanas de registro. Aunque todavía pueda utilizarla, le recomendamos fuentes monoespaciadas para una legibilidad aumentada. +Preview.Label=Vista previa: +Log.Window.Font.Label=Fuente: +Uppercase.Menus.CheckBox=Usar menús en mayúscula +System.Setting.Item=Usar configuración del sistema +LightMode.Item=Modo claro +DarkMode.Item=Modo oscuro +Language.Label=Idioma: +ColorMode.Label=Modo de color: +SettingsFile.Item=Archivo de configuración +Registry.Item=Registro +Enable.Disable.Message=El programa habilitará o deshabilitará algunas características atendiendo a lo que soporte la versión de DISM. ¿Cómo va a afectar esto mi uso del programa, y qué características serán deshabilitadas? +View.DISM.Button=Ver versiones de componentes +Dismver.Label= +SaveSettings.Label=Guardar configuraciones en: +Version.Label=Versión: +Dismexecutable.Path.Label=Ruta del ejecutable: +ResetPreferences.Label=Restablecer preferencias +LogSFD.Filter=All files|*.* +Location.Log.File.Title=Especifique la ubicación del archivo de registro +Program.Label=Programa +Personalization.Label=Personalización +Logs.Label=Registros +ImageOperations.Label=Operaciones +Scratch.Dir.Label=Directorio temporal +ProgramOutput.Label=Salida del programa +BgProcesses.Label=Procesos en segundo plano +FileAssociations.Label=Asociaciones de archivos +StartupOptions.Label=Opciones de inicio +ShutdownOptions.Label=Opciones de cierre +Difference.Between.Link=¿Cuál es la diferencia entre los nombres para mostrar y los nombres descriptivos? +PackageName.Label=Nombre del paquete: +RaymanJungle.Label=UbisoftEntertainment.RaymanJungleRun_1.2.0.88_x86__dbgk1hhpxymar +DisplayName.Label=Nombre para mostrar: +Display.Name.Only.Item=Solo nombre para mostrar +Display.Name.Friendly.Item=Nombre para mostrar y después nombre descriptivo +Friendly.Display.Name.Item=Solo nombre descriptivo +Example.Label=Ejemplo: +Remove.AppX.Label=When removing AppX packages, show display names using this format: +Only.Available.Message=This is only available when managing active installations.{crlf;}When getting information about AppX packages, DISMTools can map the IDs and names of the local accounts in this system to tell you which users an application is registered to more precisely. +Map.System.Accounts.CheckBox=Asignar cuentas del sistema a la información de registro de aplicaciones +Show.Dates.Human.CheckBox=Mostrar fechas en un formato legible +PreventSleep.CheckBox=Evitar que el equipo entre en suspensión durante las operaciones de imagen +Saving.Image.Label=Guardado de información de imagen +Help.Me.Understand.Link=Ayúdame a entender los niveles de tolerancia de funciones de IA +Turn.Off.Many.Item=Desactivar tantas funciones de IA en los motores de búsqueda como sea posible. No las soporto +Me.Control.AI.Item=Permitirme controlar las funciones de IA en mi motor de búsqueda +Turn.Many.Aifeatures.Item=Activar tantas funciones de IA en los motores de búsqueda como sea posible +AIFeature.Label=Tolerancia de funciones de inteligencia artificial (IA): +Search.Engine.Web.Label=Motor de búsqueda para búsquedas web: +Searching.Image.Online.Label=Búsqueda de información de imagen en línea +Learn.Message=Si desea obtener más información sobre un elemento en línea, puede usar la búsqueda web. Elija la configuración que el programa debe considerar para las búsquedas web: +RunNow.Button=Ejecutar ahora +Behavior.OnClose.Label=Establezca las opciones que le gustaría realizar cuando el programa se cierra: +Automatically.Clean.CheckBox=Limpiar puntos de montaje automáticamente (inicia un proceso separado) +InstallService.Button=Instalar servicio +EnableService.Button=Habilitar servicio +DisableService.Button=Deshabilitar servicio +DeleteService.Button=Eliminar servicio +ServiceStatus.Group=Estado del servicio +Installed.Label=¿Instalado? +InstallationPath.Label=Ruta de instalación: +Automatic.Image.Reload.Label=Servicio de recarga automática de imágenes +Still.See.Standard.Message=Es posible que aún vea los procedimientos estándar de recarga de sesiones de mantenimiento de DISMTools para las imágenes cuyas sesiones de mantenimiento no pudo recargar el servicio. +Automatic.Image.Message=El servicio de recarga automática de imágenes puede ayudarle a tener sus imágenes de Windows listas para el mantenimiento recargando sus sesiones de mantenimiento al iniciar el sistema. Puede controlar el servicio aquí: +ColorThemes.Group=Temas de color +DesignThemes.Button=Diseñar sus temas +LightMode.Label=Modo claro: +Own.Themes.Label=También puede crear sus propios temas. +Change.Color.Theme.Label=Puede hacer que el programa cambie el tema de color según su modo de color preferido. +DarkMode.Label=Modo oscuro: +Show.Date.Time.CheckBox=Mostrar fecha y hora en la vista del proyecto +LogCustomization.Label=Personalización del registro +Show.Log.View.CheckBox=Mostrar vista de registro en el panel de progreso por defecto +Show.Me.Logs.Link=Muéstrame dónde se guardan estos registros +Disable.Dyna.Log.CheckBox=Desactivar el registro de DynaLog +Dyna.Log.Logging.Label=Control de registro de DynaLog +Dyna.Log.Logging.Message=DynaLog proporciona un método para guardar registros de diagnóstico que pueden ser utilizados para ayudar a solucionar problemas del programa, en caso de que los encuentre. Puede desactivar el registro usando el interruptor de abajo, pero no es recomendable.{crlf;}{crlf;} +SystemEditor.Label=Editor del sistema +Editor.Open.Log.Label=Editor con el que se abrirán archivos de registro: +Default.Op.Logs.Message=Por defecto, los registros de operación se abren con el Bloc de notas en caso de un error de operación. Sin embargo, si desea abrirlos con un programa diferente, especifíquelo a continuación: +ProgramsEXE.Filter=Programs|*.exe +Editor.Title=Especifique el editor a usar +Options.Label=Opciones +Set.Custom.CheckBox=Establecer iconos de archivo personalizados para scripts de inicio +ScratchDir.Description=Especifique el directorio temporal que debería usar el programa: +Custom.Scratch.RadioButton=Utilizar el directorio temporal especificado +Project.Scratch.RadioButton=Utilizar el directorio temporal del proyecto o del programa +Auto.Create.Logs.CheckBox=Crear registros para cada operación realizada automáticamente + +[Designer.OrphanedMount] +Ok.Button=OK +Cancel.Button=Cancelar +Project.Has.Orphans.Message=The project that has been loaded contains an orphaned image (an image which needs to be remounted){crlf;}The image will be remounted when you click {quot;}OK{quot;}. This should not affect your modifications to the image, and should also not take a long time.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +Servicing.Session.Label=This image needs a servicing session reload +DISMTools.Label=DISMTools + +[Designer.NoRollbackError] +Ok.Button=OK +Old.Versions.None.Message=No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything. +Troll.Back.Older.Label=You can't roll back to an older version +DISMTools.Label=DISMTools + +[Designer.PXEServerPort] +Ok.Button=OK +Cancel.Button=Cancelar +Other.Message=Use this dialog to specify a different port for server components during this session if the default port is in use by a program or a service and the server components don't work correctly as a result.{crlf;}{crlf;}If you click Cancel, the selected server component will be launched using the default port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[Designer.PECustomizer] +Ok.Button=OK +Cancel.Button=Cancelar +Customize.Session.Label=Customize the Preinstallation Environment for this session: +Wallpaper.Group=Wallpaper +Browse.Button=Examinar... +My.Desktop.CheckBox=Use my current desktop background +Path.Custom.Wallpaper.Label=Path to custom wallpaper (JPG files only): +Show.Version.Top.CheckBox=Show version information on the top-left corner of the primary screen +Display.Images.CheckBox=Display images and groups in a WDS server in a graphical view +Show.Report.Hardware.Message=Show a report with hardware IDs of unknown devices when launching the Driver Installation Module +Default.Partitio.Table.Label=Default partition table override: +Partition.Table.Item=Do not use a partition table override +Default.Mbrpartition.Item=Default to using a MBR partition table regardless of the firmware type +Default.Gptpartition.Item=Default to using a GPT partition table regardless of the firmware type +Partition.Table.Message=Partition table overrides affect both disk configuration and boot file creation procedures taken. +SecureBoot.Label=On supported UEFI systems with Secure Boot and Windows UEFI CA 2023 certificates: +Ask.Me.Version.Item=Ask me which version of the boot binary to use +Connection.Attempts.Label=Amount of connection attempts that should be considered when connecting to a WDS server: +ConnectionAttempts.Label=connection attempt(s) +JpgfilesJpg.Filter=JPG files|*.jpg +CopyAnswerFiles.Message=Copy unattended answer files specified in the ISO creator to the Sysprep directory of the target system +Port.Used.PXE.Label=Port to be used by PXE Helper clients to send requests by default: +Pick.Default.Keyboard.Label=Pick the default keyboard layout to use in the Preinstallation Environment from the list below: +LayoutCode.Column=Layout Code +LayoutName.Column=Layout Name +Layout.Code.Selected.Label=Layout code of selected keyboard layout: +Save.Default.Policies.Label=Save to default policies +General.Tab=General +PXEs.Tab=PXE Helpers +KeyboardLayouts.Tab=Keyboard Layouts +Option.Only.Take.Label=This option will only take effect on images that don't have any answer files applied. +Unattended.Deployments.Tab=Unattended Deployments +Unattended.AnswerFile.Label=If an unattended answer file exists in both the ISO file and the Windows image file: +Ask.Me.Resolve.Item=Ask me how to resolve the conflict +Assuming.Each.Answer.Message=Assuming what each of the answer files will do is not a good idea because you don't expect what each file will have in different operating system deployment runs.{crlf;}{crlf;}Therefore, you should manually review each of the answer files when you encounter conflicts. Or, if your Windows image contains an answer file, don't include one with your ISO file, as the one from the Windows image will automatically be applied during setup.{crlf;}{crlf;}If you use bootable media creation solutions, such as Rufus, configure them so they don't override your answer file. +CustomizePE.Label=Customize Preinstallation Environment +KeyboardOverride.CheckBox=Override keyboard layouts used by target images with the one I select here + +[Designer.PECustomizer.Conflict] +ISO.Item=Handle the conflict by using the answer file of the ISO file +WindowsImage.Item=Handle the conflict by using the answer file of the Windows image file + +[Designer.PECustomizer.BootSign] +Windows.UEFI.CA.Item=Default to boot binaries signed with Windows UEFI CA 2023, if available on my target image +Windows.Production.PCA.Item=Default to boot binaries signed with Microsoft Windows Production PCA 2011 + +[Designer.PkgNameLookup] +Ok.Button=OK +Cancel.Button=Cancelar +ParentPackage.Label=Name of parent package: +Get.Package.Names.Label=Getting package names. Please wait... +Installed.Package.Label=Installed package names + +[Designer.PkgParentLookup] +Names.Installed.Label=Names of installed packages in the mounted image: + +[Designer.Wait] +Wait.Label=Espere... +Action.Label=Action + +[Designer.PrgAbout] +Ok.Button=OK +DISM.Tools.Version.Label=DISMTools - version {0} +DISM.Tools.Lets.Label=DISMTools lets you deploy, manage, and service Windows images with ease, thanks to a GUI. +Build.Date.Goes.Label=Build date goes here +ResourcesUsed.Label=These resources and components were used in the creation of this program: +Resources.Label=Resources +Fluency.Label=Fluency +Icons.Link=Icons8 +Sqlserver.Icon.Color.Label=SQL Server icon (Color) +Utilities.Label=Utilities +Zip.Label=7-Zip +VisitWebsite.Link=Visitar sitio web +Help.Documentation.Label=Help documentation +Scintila.Netnu.Get.Label=Scintila.NET (NuGet package) +Managed.Dismnu.Get.Label=ManagedDism (NuGet package) +Command.Help.Source.Label=Command Help source +Microsoft.Link=Microsoft +BrandingAssets.Label=Branding assets +DarkUI.Label=DarkUI +Windows.Label=Windows Home Server 2011 +Whatsnew.Link=WHAT'S NEW +Licenses.Link=LICENSES +Credits.Link=CREDITS +CheckUpdates.Label=Check for updates +AboutProgram.Label=About this program + +[Designer.PrgSetup] +Set.Up.DISM.Label=Configurar DISMTools +Back.Button=Atrás +Next.Button=Siguiente +Cancel.Button=Cancelar +DISM.Tools.Free.Message=DISMTools es una interfaz gráfica basada en proyectos, gratuita y de código abierto. Para comenzar a configurar el programa, haga clic en Siguiente. +Welcome.DISM.Tools.Label=Bienvenido a DISMTools +Secondary.Progress.Label=Estilo del panel de progreso secundario: +Log.Window.Font.Label=Fuente de la ventana de registro: +Language.Label=Idioma: +ColorMode.Label=Modo de color: +System.Setting.ThemeItem=Usar configuración del sistema +LightMode.Item=Modo claro +DarkMode.Item=Modo oscuro +Font.Readable.Log.Message=Esta fuente podría no ser legible en ventanas de registro. Aunque todavía pueda utilizarla, le recomendamos fuentes monoespaciadas para una legibilidad aumentada. +Classic.RadioButton=Clásico +Modern.RadioButton=Moderno +Yours.Customize.Message=Hágalo suyo. Personalice este programa a su gusto y haga clic en Siguiente. Estas opciones pueden ser configuradas en cualquier momento en la sección {quot;}Personalización{quot;} de la ventana Opciones +CustomizeProgram.Label=Personalice este programa +Default.Log.File.Button=Utilizar archivo de registro predeterminado +Browse.Button=Examinar... +LogFile.Label=Archivo de registro: +Log.File.Display.Message=El archivo de registro debe mostrar errores, advertencias y mensajes de información tras realizar una operación. +Errors.Warnings.Label=Errores, advertencias y mensajes de información (Nivel 3) +Auto.Create.Logs.CheckBox=Crear archivos de registro automáticamente en la carpeta de registros del programa +Log.Settings.Message=Especifique las opciones del registro y haga clic en Siguiente. Dependiendo del nivel de contenido que especifique, registraremos más o menos información. Esta opción puede ser configurada en cualquier momento en la sección {quot;}Registro{quot;} de la ventana Opciones +Log.Label=¿Qué deberíamos registrar cuando realice una operación? +Windows.ADK.Module.Label=Módulo de compatibilidad con Windows Assessment and Deployment Kit (ADK) +WimlibModule.Label=Módulo de compatibilidad con wimlib-imagex +Install.Button=Instalar +Module.Install.Isn.Message=Si un módulo que quiere instalar no aparece aquí, puede que no sea compatible con esta versión del programa. Actualizar DISMTools puede hacer que aparezcan más módulos compatibles. +DISM.Tools.Supports.Message=DISMTools admite módulos que amplían el programa y mejoran sus capacidades. Los siguientes módulos son compatibles con esta versión del programa. +ExtendProgram.Label=Ampliar este programa +Configure.Settings.Button=Configurar más opciones +Anything.Like.Label=¿Hay algo más que quiera configurar? +Settings.Available.Message=Las opciones disponibles son más de las que acaba de configurar. Si desea cambiarlas, haga clic en el botón de abajo. También guardaremos esas preferencias. +Done.Setting.Up.Message=Ha terminado de configurar las opciones básicas para utilizar DISMTools como quiso. Haga clic en {quot;}Finalizar{quot;}, y guardaremos sus preferencias. +SetupComplete.Label=Configuración completa +Stay.Up.Date.Label=Manténgase al día para recibir nuevas características y una experiencia mejorada +Get.Started.DISM.Label=Aprenda DISMTools y el servicio de imágenes para poder manejarse mejor +GetStarted.Button=Comenzar +CheckUpdates.Button=Comprobar actualizaciones +Ve.Set.Things.Label=Ahora que ha configurado el programa, le recomendamos que haga lo siguiente: +Perform.Steps.Time.Label=Puede realizar estos pasos en cualquier momento. +SaveFile.Filter=Todos los archivos|*.* +Log.File.Title=Especifique el archivo de registro + +[Designer.Progress] +Image.Operations.Label=Image operations in progress... +Wait.Tasks.Label=Please wait while the following tasks are done. This may take some time. +Cancel.Button=Cancelar +CurrentTask.Label=currentTask +AllTasks.Label=allTasks +Tasks.Tcont.Label=Tasks: {currentTCont} of {taskCount} +ShowLog.Label=Show log +Show.Dismlog.File.Link=Show DISM log file (advanced) +Progress.Label=Progreso + +[Designer.ProjProps] +Ok.Button=OK +Cancel.Button=Cancelar +ProjectGUID.Label=Project GUID: +CreationDate.Label=Creation date: +Location.Label=Location: +ProjGuid.Label=projGuid +ProjTzdata.Label=projTZData +ProjPath.Label=projPath +ProjName.Label=projName +Name.Label=Nombre: +RemountImg.Label=Reload +Recover.Label=Recover +MountDirectory.Label=Mount directory: +Installed.Languages.Label=Installed languages: +FileFormat.Label=File format: +ModificationDate.Label=Modification date: +FileCount.Label=File count: +DirectoryCount.Label=Directory count: +System.Root.Dir.Label=System root directory: +ProductSuite.Label=Product suite: +ProductType.Label=Product type: +Edition.Label=Edition: +ServicePackLevel.Label=Service Pack level: +ServicePackBuild.Label=Service Pack build: +HAL.Label=HAL: +Architecture.Label=Arquitectura: +Supports.WIM.Boot.Label=Supports WIMBoot? +ImageStatus.Label=Image status: +ImageIndex.Label=Image index: +Size.Label=Size: +Description.Label=Descripción: +Version.Label=Versión: +ImageFile.Label=Image file: +ImgFormat.Label=imgFormat +ImgModification.Label=imgModification +ImgCreation.Label=imgCreation +ImgFiles.Label=imgFiles +ImgDirs.Label=imgDirs +Img.Sys.Root.Label=imgSysRoot +ImgPsuite.Label=imgPSuite +ImgPtype.Label=imgPType +ImgEdition.Label=imgEdition +ImgSplvl.Label=imgSPLvl +ImgSpbuild.Label=imgSPBuild +ImgHal.Label=imgHal +Img.Mount.Dir.Label=imgMountDir +ImgArch.Label=imgArch +Img.WIM.Boot.Label=imgWimBootStatus +Img.Mounted.Status.Label=imgMountedStatus +ImgSize.Label=imgSize +Img.Mounted.Desc.Label=imgMountedDesc +Img.Mounted.Name.Label=imgMountedName +ImgVersion.Label=imgVersion +ImgIndex.Label=imgIndex +ImgName.Label=imgName +Getting.Project.Image.Label=Getting project and image information. Please wait... +View.Ffuinformation.Label=View FFU information +Remount.Write.Label=Remount with write permissions +ImgRW.Label=imgRW +Image.Rwpermissions.Label=Image R/W permissions: +InstallationType.Label=Installation type: +Img.Inst.Type.Label=imgInstType +Image.Present.Project.Label=Image present on project? +ImgStatus.Label=imgStatus +Many.Cannot.Seen.Message=Many properties cannot be seen because an image has not yet been mounted. Once you mount it, detailed information will be shown here. Click here to mount an image +Props.Label=Properties + +[Designer.ProjectValues] +Old.File.Label=Old project file: +ExitButton.Button=Salir +Independent.Values.Group=Independent values +ImageLang.Label=ImageLang: +Image.Read.Write.Label=ImageReadWrite: +Image.Epoch.Modify.Label=ImageEpochModify: +Image.Epoch.Create.Label=ImageEpochCreate: +ImageFileCount.Value=ImageFileCount: +Image.Dir.Count.Label=ImageDirCount: +Image.Sys.Root.Label=ImageSysRoot: +ImagePsuite.Label=ImagePSuite: +ImagePtype.Label=ImagePType: +ImageEdition.Value=ImageEdition: +ImageSplevel.Label=ImageSPLevel: +ImageSpbuild.Label=ImageSPBuild: +ImageHal.Label=ImageHal: +ImageArch.Label=ImageArch: +Image.WIM.Boot.Label=ImageWIMBoot: +ImageDescription.Label=ImageDescription: +ImageName.Label=ImageName: +ImageVersion.Label=ImageVersion: +Image.Mount.Point.Label=ImageMountPoint: +ImageIndex.Label=ImageIndex: +ImageFile.Label=ImageFile: +Epoch.Creation.Time.Label=EpochCreationTime: +Location.Label=Location: +Name.Label=Nombre: +ImageFile.Languages.Label=Image file languages +ImageFileDates.Label=Image file creation and modification dates stored in Unix time (GMT+0) +Verify.Image.Read.Label=Verify if image has read-write permissions +ImageFileCount.Label=Image file count +Image.Dir.Label.Label=Image directory count +Image.System.Root.Label=Image system root directory (\WINDOWS) +Image.Product.Suite.Label=Image product suite +Image.Product.Type.Label=Image product type +ImageEdition.Label=Image edition +ServicePackLevel.Label=Image Service Pack level (SP1, SP2, SP3...) +ServicePackBuild.Label=Image Service Pack build +HAL.Label=Image HAL (Hardware Abstraction Layer, hal.dll) +Mounted.Image.Arch.Label=Mounted image architecture (x86, amd64...) +Verify.Image.Supports.Label=Verify if image supports WIMBoot (Win8.1 only) +MountedDescription.Label=Mounted image friendly description +Mounted.Image.Friendly.Label=Mounted image friendly name +Image.Version.Grab.Label=Image version (grab version from ntoskrnl.exe) +ImageFile.Mount.Point.Label=Image file mount point +ImageFileIndex.Label=Mounted image file index +Mounted.ImageFile.Name.Label=Mounted image file name +Creation.Time.Unix.Label=Project creation time in Unix time (GMT+0) +ProjectLocation.Label=Project location +ProjectName.Label=Project name +Independent.Values.Message=Get independent values by piping {quot;}findstr{quot;} to the {quot;}type{quot;} command. Also pass the {quot;}/b{quot;} switch only to show matches on the beginning. +New.File.Label=New project file: +ContinueButton.Button=Continue +ProjectValues.Label=Project values + +[Designer.ServiceGroups] +Ok.Button=OK +Windows.Message=This Windows image contains the following registered groups for the system's service host. Note that the groups displayed here may not be the same as the groups defined by the services in the Service Control Manager (SCM). +GroupName.Column=Group Name +ServicesGroup.Column=Services in group +ServiceName.Column=Nombre del servicio +DisplayName.Column=Nombre para mostrar +Type.Column=Tipo +Total.Label=Total +Registered.Svc.Host.Label=Registered Service Host groups in image + +[Designer.RegistryPanel] +Tool.Lets.Load.Message=This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here: +Load.Button=Cargar +Ntuserdatdefault.User.Label=NTUSER.DAT (Default User) +Open.Button=Abrir +Default.Label=DEFAULT +System.Label=SYSTEM +Software.Label=SOFTWARE +Load.Custom.Hive=Load Custom Hive +Unload.Button=Unload +Browse.Button=Examinar... +PathRegistry.Label=Path in the registry: +HiveLocation.Label=Hive location: +Load.Different.Label=If you want to load a different registry hive, specify its path and click Load: +Image.Hives.Label=Image registry hives + +[Designer.ReloadProject] +Ok.Button=OK +Cancel.Button=Cancelar +ImageUnavailable.Message=The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click {quot;}OK{quot;} to reload this project.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +ImageMissing.Label=This image is no longer available +DISMTools.Label=DISMTools + +[Designer.RemCapabilities] +Ok.Button=OK +Cancel.Button=Cancelar +Capability.Column=Capability +State.Column=Estado +Remove.Label=Remove capabilities + +[Designer.RemDrivers] +Ok.Button=OK +Cancel.Button=Cancelar +PublishedName.Column=Published name +Original.File.Name.Column=Nombre de archivo original +ProviderName.Column=Provider name +ClassName.Column=Class name +Part.Windows.Column=Part of the Windows distribution? +BootCritical.Column=Is boot-critical? +Version.Column=Version +Date.Column=Fecha +DriverPackages.Wish.Label=Specify the driver packages you wish to remove and click OK: +Hide.Boot.Critical.CheckBox=Hide boot-critical drivers +Hide.Drivers.Part.CheckBox=Hide drivers part of the Windows distribution +RemoveDrivers.Label=Remove drivers + +[Designer.RemPackage] +Ok.Button=OK +Cancel.Button=Cancelar +PackageRemoval.Group=Package removal +Browse.Button=Examinar... +Note.May.Message=NOTE: the program may show packages that weren't added in the first place. However, if a package is not added, the program will skip it. +PackageSource.Label=Package source: +Package.Files.RadioButton=Specify package files: +Package.Names.RadioButton=Specify package names: +PackageSource.Description=Please specify a package source: +RemovePackages.Label=Remove packages + +[Designer.RemoveAppx] +Ok.Button=OK +Cancel.Button=Cancelar +PackageName.Column=Package name +App.Display.Name.Column=Application display name +Architecture.Column=Architecture +ResourceID.Column=Resource ID +Version.Column=Version +Registered.User.Column=Registered to any user? +Prov.Label=Remove provisioned AppX packages + +[Designer.ScriptBrowser] +Ok.Button=OK +Cancel.Button=Cancelar +Create.Starter.Button=Create your own starter scripts... +Name.Column=Nombre +System.Config.Item=During System Configuration +First.User.Logs.Item=When the first user logs on +Whenever.User.Logs.Item=Whenever a user logs on for the first time +Scripts.Defined.User.Item=Scripts defined by the user +Stage.Type.Choose.Label=Choose a stage or script type: +EnlargePreview.Label=Enlarge preview +Export.Code.File.Button=Export script code to a file... +Okinsert.Label=Click OK to insert this script. Existing script contents will be replaced by this script. +ScriptCode.Label=Script Code: +Language.Label=Language: +Language.Value.Label=Language: {0} +Description.Label=Script Description +ScriptName.Label=Script Name +View.Label=Select a script to view its information. +StarterScripts.Help.Message=These predefined starter scripts can help you get the most out of your Windows image when using this unattended answer file. These scripts have been curated and tested by the developers.{crlf;}{crlf;}To get started, select a starter script from the list on the left.{crlf;}{crlf;}If you have a starter script that isn't included in this set of scripts, you can load it from the file system instead. +Export.Code.Title=Export Script Code +Leave.Full.Screen.Label=To leave full screen mode, click the button on the right or press ESC. +GoBack.Label=Go back +LoadStarterScript.Label=Load a predefined Starter Script + +[Designer.SaveProject] +Yes.Button=Yes +No.Button=No +Cancel.Button=Cancelar +SaveChanges.Label=Do you want to save the changes of this project? +Shutdown.Message=If you shut down or restart your system without unmounting the images, you will need to reload the servicing session. +AppName.Label=DISMTools + +[Designer.ScriptReorder] +Ok.Button=OK +Cancel.Button=Cancelar +Dialog.Alter.Order.Message=Use this dialog to alter the order with which the scripts will be run. Click OK to save the changes. Items at the top of the list are the first scripts that will run, whilst those at the bottom of the list are the last that will run. +ScriptCode.Label=Script Code: +Script.Column=Script # +ScriptOrder.Label=Script Order: +WordWrap.CheckBox=Word Wrap +Scripts.Stage.Label=Reorder scripts for this stage + +[Designer.Services] +Intro.Message=This tool lets you view and manage the services of this target image. Click Save service changes to save any changes made to the Windows services. +ServiceName.Column=Nombre del servicio +DisplayName.Column=Nombre para mostrar +Description.Column=Description +StartType.Column=Start Type +Type.Column=Tipo +ServiceInfo.Tab=Service Information +DelayedStart.CheckBox=Delayed Start +Description.Label=Service Description: +User.Flags.Label=User Service Flags: +ServiceType.Label=Service Type: +Start.Type.Label=Service Start Type: +Object.Name.Label=Service Object Name: +Image.Path.Label=Service Image Path: +Display.Name.Label=Service Display Name: +ServiceName.Label=Service Name: +Required.Privileges.Tab=Required Privileges +PrivilegeName.Column=Privilege Name +PrivilegeName.Display.Column=Privilege Display Name +Privilege.Description.Column=Privilege Description +ErrorControl.Tab=Error Control +FailureActions.Group=Failure Actions +FutureErrors.Label=On Future Errors: +NdError.Label=On 2nd Error: +ResetErrorCount.Label=Reset Error Count after the following minutes: +StError.Label=On 1st Error: +Error.Windows.Label=On service error, what should Windows do? +Dependencies.Tab=Service Dependencies +ServiceGroups.Tab=Service Groups +RegisteredHosts.Label=Get registered service host groups +Services.Belong.Group=Services that belong to this group +Part.Group.Label=This service is part of group: +Save.Changes.Label=Save service changes +ProgressLabel.Label=Espere... +Reload.Label=Reload +SelectService.Label=No service has been selected. Select a service above to view details. +Save.Button=Save service information... +MarkdownFiles.Filter=Markdown files|*.md +RestoreService.Label=Restore service +DeleteService.Label=Delete service +System.Label=System Service Management + +[Designer.ServiceMgmt] +Restart.Minutes.Label=Restart Service after the following minutes: +Dependent.Services.Label=The following services depend on this service: +Dependencies.Label=This service depends on the following services: + +[Designer.ImageEdition] +Ok.Button=OK +Cancel.Button=Cancelar +Target.Upgrade.Label=Target edition to upgrade to: +ServerOptions.Group=Active server installation options +Browse.Button=Examinar... +AcceptEULA.RadioButton=Accept the End-User License Agreement (EULA) and use the following product key: +Copy.EndUser.RadioButton=Copy the End-User License Agreement (EULA) to the following location: +Set.Image.Label=Set image edition + +[Designer.SetLayeredDriver] +Ok.Button=OK +Cancel.Button=Cancelar +Intro.Message=This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK +CurrentDriver.Label=Current keyboard layered driver: +NewDriver.Label=New keyboard layered driver: +Driver.Already.Label=This driver has already been set +Title=Set keyboard layered driver + +[Designer.OSRollback] +Ok.Button=OK +Cancel.Button=Cancelar +Default.OS.Message=By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date.{crlf;}{crlf;}Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60. +Amount.Days.Revert.Label=Amount of days you have to revert to the old Windows version: +OSUninstall.Label=Set operating system uninstall window + +[Designer.SetProductKey] +Ok.Button=OK +Cancel.Button=Cancelar +Type.ProductKey.Label=Type the product key that you want to set to your Windows image, including the dashes: +ValidateKey.Button=Validate key +Check.ProductKey.Message=If you want to check if your product key is valid for the Windows image, click Validate key. This will also check the syntax of your key. +SetProductKey.Label=Set product key + +[Designer.Scratch] +Ok.Button=OK +Cancel.Button=Cancelar +ScratchSpace.Label=Scratch space: +AmountWritable.Message=The scratch space is the amount of writable space available on the Windows PE system volume when its contents are copied to memory. Please specify a scratch space amount and click OK. +MB.Label=MB +ScratchSpace.Amount.Label=An invalid scratch space amount has been detected +Set.Windows.Pescratch.Label=Set Windows PE scratch space + +[Designer.SetTargetPath] +Ok.Button=OK +Cancel.Button=Cancelar +Target.Dir.Message=The target path is a directory where the Windows PE files will be copied to in order to boot to the environment. Please specify a target path and click OK. +TargetPath.Label=Target path: +Windows.Petarget.Label=Set Windows PE target path + +[Designer.SettingsResetDlg] +Yes.Button=Yes +No.Button=No +ProceedReset.Message=If you proceed, the settings will be reset to their default values. Once this process is complete, you'll return to the main program window.Do you want to proceed? +Form.Label=Reset preferences + +[Designer.SingleImageIndex] +Know.Indexes.Message=To know more about the indexes of an image, or some of its specific properties, go to {quot;}Commands > Image management > Get image information{quot;}, or click here +Ok.Button=OK +Cannot.Switch.Message=You cannot switch to other indexes. If you want to save the image changes, you can do so using a new, separate index. +Image.Seems.Only.Label=This image seems to have only one index +DISMTools.Label=DISMTools + +[Designer.SplashScreen] +VersionLabel.Label=Version +DISM.Tools.Starting.Button=DISMTools - Starting up... + +[Designer.UnattendMgr] +ProjectPath.Label=Project path: +Browse.Button=Examinar... +FileName.Column=Nombre de archivo +Created.Column=Created +LastModified.Column=Last modified +LastAccessed.Column=Last accessed +ApplyImage.Button=Apply to image... +Open.File.Location.Button=Open file location +OpenFile.Button=Open file +Unattended.AnswerFile.Label=Unattended answer file manager + +[Designer.WimScriptEditor] +Config.List.Allows.Message=The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon. +Compression.Exclusion.List=Compression exclusion list +Edit.Button=Edit... +Add.Button=Add... +Remove.Button=Quitar +Exclusion.Exception.List=Exclusion exception list +ExclusionList.Group=Exclusion list +New.Label=New +Open.Button=Open... +Save.Button=Save as... +Toggle.Word.Wrap.Label=Toggle word wrap +Help.Label=Ayuda +Tools.Label=Herramientas +Exclude.User.One.Button=Exclude user OneDrive folders... +Inifiles.Filter=INI files|*.ini +Config.List.Load.Title=Specify the configuration list to load +Wimscript.Filter=INI files|*.ini +Location.Save.Config.Title=Specify the location to save the configuration list to +ConfigList.Label=DISM Configuration List Editor + +[Designer.WDSImageGroup] +Ok.Button=OK +Cancel.Button=Cancelar +Action.Choose.Label=Choose an action: +Refresh.Button=Actualizar +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[Designer.WDSImageCopy] +Ok.Button=OK +Cancel.Button=Cancelar +Pick.Button=Elegir... +Browse.Button=Examinar... +ImageFile.Server.Label=Image file to copy to server: +Mounted.Image.Button=Usar imagen montada +Images.Added.Group.Label=The images will be added to the following group: +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Pick.Server.Groups.Button=Pick from server groups... +SelectAll.Button=Select all +ClearSelection.Button=Clear selection +Progress.Group=Progreso +Re.Ready.OK.Label=Once you're ready, click OK. +Status.Label=Estado +WIM.Files.Filter=WIM files|*.wim +Image.Win.Deploy.Label=Copy an image to Windows Deployment Services + +[Designer.WimFileSource] +ImageFile.Label=Image file +ImageIndex.Label=Image index + +[DisableFeat] +DisableFeatures.Label=Deshabilitar características +Image.Task.Header.Label={0} +PackageName.Label=Paquete: +Features.Group=Características +Options.Group=Opciones +Lookup.Button=Consultar +Ok.Button=Aceptar +Cancel.Button=Cancelar +FeatureName.Column=Nombre de característica +State.Column=Estado +ParentPackage.CheckBox=Especificar nombre de paquete principal para las características +Remove.Feature.CheckBox=Eliminar característica sin eliminar manifiesto + +[DisableFeat.Validation] +Features.Message=Seleccione las características a deshabilitar, e inténtelo de nuevo +FeaturesSelected.Title=No hay características seleccionadas + +[DismComponents] +Title.Label=Componentes de DISM +Component.Column=Componente +Version.Column=Versión +Ok.Button=Aceptar + +[DriverFileInfo] +Driver.File.Label=Información del archivo de controlador +Driver.File.Label.Label=Información del archivo de controlador: {0} +Property.Column=Propiedad +Value.Column=Valor +Ok.Button=Aceptar +Copy.Button=Copiar +PublishedName.Label=Nombre publicado +Original.File.Name.Label=Nombre original del archivo +Critical.Boot.Process.Label=¿Es crítico para el arranque? +Yes.Button=Sí +No.Button=No +Part.Windows.Label=¿Es parte de la distribución de Windows? +ListItem.Button=Sí +Version.Label=Versión +ClassName.Label=Nombre de clase +ClassDescription.Label=Descripción de clase +ClassGUID.Label=GUID de clase +ProviderName.Label=Nombre del proveedor +Date.Label=Fecha +SignatureStatus.Label=Estado de firma del controlador +CatalogFile.Label=Archivo de catálogo + +[DriverFileInfo.Messages] +Hresult.Label=(HRESULT: {lbrace;}0{rbrace;}) + +[DriverFilter.Classes] +AudioProcessing.Message=Includes Audio processing objects (APOs). For more info, see Windows Audio Processing Objects. +Battery.Devices.UPS.Label=Includes battery devices and UPS devices. +Windows.Message=(Windows Server 2003 and later versions) Includes all biometric-based personal identification devices. +Windows.Label=(Windows XP SP1 and later versions) Includes all Bluetooth devices. +Camera.Message=(Windows 10 version 1709 and later versions) Includes universal camera drivers. +Cd.Rom.Drives.Message=Includes CD-ROM drives, including SCSI CD-ROM drives. By default, the system's CD-ROM class installer also installs a system-supplied CD audio driver and CD-ROM changer driver as Plug and Play filters. +Hard.Disk.Drives.Label=Includes hard disk drives. See also the HDC and SCSIAdapter classes. +VideoAdapters.Message=Includes video adapters. Drivers for this class include display drivers and video miniport drivers. +Extension.Message=(Windows 10 and later versions) Includes all devices requiring customizations. For more information, see Using an Extension INF File. +Floppy.Disk.Drive.Label=Includes floppy disk drive controllers. +Floppy.Disk.Drives.Label=Includes floppy disk drives. +Includes.Hard.Message=Includes hard disk controllers, including ATA/ATAPI controllers but not SCSI and RAID disk controllers. +InputDevices.Message=Includes interactive input devices that are operated by the system-supplied HID class driver. Includes USB devices that comply with the USB HID Standard and non-USB devices that use a HID minidriver. For more information, see HIDClass Device Setup Class. See also the Keyboard or Mouse classes. +ControlDevices.Message=Includes devices that control the operation of multifunction IEEE 1284.4 peripheral devices. +Dot.Print.Functions.Message=Includes Dot4 print functions. A Dot4 print function is a function on a Dot4 device and has a single child device, which is a member of the Printer device setup class. +Ieeedevices.Support.Message=Includes IEEE 1394 devices that support the IEC-61883 protocol device class. The 61883 component includes the 61883.sys protocol driver that transmits various audio and video data streams over the 1394 bus. These currently include standard/high/low quality DV, MPEG2, DSS, and Audio. The IEC-61883 specifications define these data streams. +Ieeedevices.Support.Label=Includes IEEE 1394 devices that support the AVC protocol device class. +SBP2.Message=Includes IEEE 1394 devices that support the SBP2 protocol device class. +HostControllers.Message=Includes 1394 host controllers connected on a PCI bus, but not 1394 peripherals. Drivers for this class are system-supplied. +Still.Image.Capture.Label=Includes still-image capture devices, digital cameras, and scanners. +InfraredDevices.Message=Includes infrared devices. Drivers for this class include Serial-IR and Fast-IR NDIS miniports, but see also the Network Adapter class for other NDIS network adapter miniports. +Keyboards.Message=Includes all keyboards. That is, it must also be specified in the (secondary) INF for an enumerated child HID keyboard device. +ScsimediaChanger.Label=Includes SCSI media changer devices. +Memory.Devices.Such.Label=Includes memory devices, such as flash memory cards. +Modem.Devices.INF.Message=Includes modem devices. An INF file for a device of this class specifies the features and configuration of the device and stores this information in the registry. An INF file for a device of this class can also be used to install device drivers for a controllerless modem or a software modem. These devices split the functionality between the modem device and the device driver. For more information about modem INF files and Microsoft Windows Driver Model (WDM) modem devices, see Overview of Modem INF Files and Adding WDM Modem Support. +Display.Monitors.INF.Message=Includes display monitors. An INF for a device of this class installs no device drivers, but instead specifies the features of a particular monitor to be stored in the registry for use by drivers of video adapters. (Monitors are enumerated as the child devices of display adapters.) +Mouse.Devices.Message=Includes all mouse devices and other kinds of pointing devices, such as trackballs. That is, this class must also be specified in the (secondary) INF for an enumerated child HID mouse device. +Combo.Cards.Such.Message=Includes combo cards, such as a PCMCIA modem and network card adapter. The driver for such a Plug and Play multifunction device is installed under this class and enumerates the modem and network card separately as its child devices. +Audio.Dvdmultimedia.Message=Includes Audio and DVD multimedia devices, joystick ports, and full-motion video capture devices. +MultiportSerial.Message=Includes intelligent multiport serial cards, but not peripheral devices that connect to its ports. It doesn't include unintelligent (16550-type) multiport serial controllers or single-port serial controllers (see the Ports class). +NetworkAdapter.Message=Consists of network adapter drivers. These drivers must either call NdisMRegisterMiniportDriver or NetAdapterCreate. Drivers that don't use NDIS or NetAdapter should use a different setup class. +Includes.Network.Message=Includes network and/or print providers. NetClient components are deprecated in Windows 8.1, Windows Server 2012 R2, and later. +Network.Services.Such.Label=Includes network services, such as redirectors and servers. +NdisprotocolsCo.Message=Includes NDIS protocols CoNDIS stand-alone call managers, and CoNDIS clients, in addition to higher level drivers in transport stacks. +SecureDevices.Message=Includes devices that accelerate secure socket layer (SSL) cryptographic processing. +PcmciacardBus.Message=Includes PCMCIA and CardBus host controllers, but not PCMCIA or CardBus peripherals. Drivers for this class are system-supplied. +Serial.Parallel.Port.Message=Includes serial and parallel port devices. See also the MultiportSerial class. +Printers.Admin.Hit.Label=Includes printers. As an IT admin, hit them with a baseball bat. +Includes.SCSI.Message=Includes SCSI/1394-enumerated printers. Drivers for this class provide printer communication for a specific bus. +ProcessorTypes.Label=Includes processor types. +ScsihostBus.Message=Includes SCSI Host Bus Adapters (HBAs), disk-array, and NVMe controllers. +Includes.Trusted.Message=Includes Trusted Platform Module chips. A TPM is a secure cryptoprocessor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. Any new manufactured device must implement and enable TPM 2.0 by default. For more information, see TPM Recommendations. +Includes.Sensor.Label=Includes sensor and location devices, such as GPS devices. +Smart.Card.Readers.Label=Includes smart card readers. +Virtual.Child.Device.Message=Includes virtual child device to encapsulate software components. For more information, see Adding Software Components with an INF file. +Storage.Disks.Label=Storage disks utilizing a multi-queue storage stack. +Includes.Storage.Message=Includes storage volumes as defined by the system-supplied logical volume manager and class drivers that create device objects to represent storage volumes, such as the system disk class driver. +HalsSystem.Message=Includes HALs, system buses, system bridges, the system ACPI driver, and the system volume manager driver. +Tape.Drives.Including.Label=Includes tape drives, including all tape miniclass drivers. +Usbdevice.Includes.Message=USBDevice includes all USB devices that don't belong to another class. This class isn't used for USB host controllers and hubs; drivers for these devices are provided by the operating system and should use the USB class described in System-Defined Device Setup Classes Reserved for System Use. +WindowsCeactive.Message=Includes Windows CE ActiveSync devices. The WCEUSBS setup class supports communication between a personal computer and a device that is compatible with the Windows CE ActiveSync driver (generally, PocketPC devices) over USB. +Wpddevices.Label=Includes WPD devices. + +[DriverFilter.Month] +January.Label=January +February.Label=February +March.Label=March +April.Label=April +Value.Label=May +June.Label=June +July.Label=July +August.Label=August +September.Label=September +October.Label=October +November.Label=November +December.Label=December + +[Driver.Manual] +Driver.Files.Choose.Label=Escoja archivos de controladores en directorio +RecursiveListing.Message=Debajo se muestra un listado recursivo de todos los controladores en el directorio que está especificando. Escoja los controladores que quiera añadir de esta lista y haga clic en Aceptar. +Ok.Button=Aceptar +Cancel.Button=Cancelar +Refresh.Button=Actualizar + +[Driver.Manual.Scan] +Scanning.Driver.Dir.Label=Escaneando directorio...{crlf;}Archivos de controladores encontrados por ahora: {0} +Dir.Complete.Driver.Label=Escaneo del directorio completado.{crlf;}Archivos de controladores encontrados: {0} + +[DriverFilePicker.Validation] +File.Label=Archivo + +[DynaViewer.Main] +EventsFiltering.Message=Please wait while the events are being filtered... Change filters to cancel current operation. + +[DynaViewer.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[DynaViewer.EventProps] +Field.Empty.Caller.Message=The above field can be empty if the caller does not have a parent, or if the logging system was called by the method in the program with the GetParentCaller parameter set to false.{crlf;}{crlf;}As a developer, you can log events without getting the parent caller like this:{crlf;}{crlf;} DynaLog.LogMessage({quot;}Event Message{quot;}, False) +Parent.Caller.Title=Event Parent Caller + +[EnableFeat.EnableFeature] +EnableFeatures.Label=Habilitar característica +Image.Task.Header.Label={0} +PackageName.Label=Paquete: +FeatureSource.Label=Origen: +Lookup.Button=Consultar +Browse.Button=Examinar... +Detect.Group.Policy.Button=Detectar políticas de grupo +Cancel.Button=Cancelar +Ok.Button=Aceptar +Features.Group=Características +Options.Group=Opciones +ParentPackage.CheckBox=Especificar nombre de paquete principal para características +Source.CheckBox=Especificar origen de características +ParentFeatures.CheckBox=Habilitar todas las características principales +Contact.Win.Update.CheckBox=Contactar Windows Update para instalaciones activas +FeatureName.Column=Nombre de característica +State.Column=Estado +SourceFolder.Description=Especifique una carpeta que actuará como origen de las características: +CommitImage.CheckBox=Guardar imagen tras habilitar características + +[EnableFeat.Validation] +Features.Message=Seleccione las características a habilitar, e inténtelo de nuevo. +FeaturesSelected.Title=No se ha seleccionado ninguna característica +Features.Image.Message=Algunas características en esta imagen requieren especificar un origen para ser habilitadas. El origen especificado no es válido para esta operación +Source.Required.Message=Especifique un origen válido e inténtelo de nuevo. +Source.Message=Asegúrese de que el origen exista en el sistema de archivos e inténtelo de nuevo. +EnableFeatures.Message=Habilitar características +Source.Message.Message=El origen especificado no es válido. Especifique uno válido e inténtelo de nuevo +EnableFeatures.Title=Habilitar características + +[EnvVars.Management] +Removed.Label=(will be removed) +InfoLoaded.Message=Environment variable information has been successfully saved to the registry of the target image.{crlf;}{crlf;}A backup of the previous variable configuration has been saved to your desktop should you need it in case modifications do not go as planned.{crlf;}{crlf;}Simply load the target image's SYSTEM hive and import this registry file. +InfoSaved.Message=Environment variable information could not be saved to the registry of the target image. + +[EnvVars.Info] +Machine.Field=Equipo +User.Field=Usuario + +[EnvVars.Helper] +CurrentInfo.Message=Current environment variable information for the system scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? +BackupSaved.Title=Environment variable information could not be backed up +UserBackup.Message=Current environment variable information for the user scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? + +[Exception] +DISM.Tools.Internal.Label=DISMTools - Error interno +Sorry.Inconvenience.Message=Lo sentimos por el inconveniente, pero DISMTools ha sufrido un error que no pudo controlar y necesitamos su ayuda para poder continuar.{crlf;}{crlf;}Aquí tiene la información del error por si lo necesita: +Help.Us.Fix.Label=Por favor, ayúdenos a corregir este problema +Reporting.Issue.Message=Cuando reporte este error, le rogamos que pegue la información de la excepción en la izquierda. De otra manera, se aplicarán políticas de cierre estándar que implican cerrar tu propuesta después de (al menos) 4 horas. +Continue.Running.Message=Podrá ser capaz de continuar con la ejecución del programa haciendo clic en Continuar. En cambio, si este error se muestra por una segunda vez, puede cerrar el programa forzadamente haciendo clic en Salir. Dese cuenta de que los cambios de proyectos y de la lista de Recientes no se guardarán.{crlf;}{crlf;}¿Qué le gustaría hacer? +ReportIssue.Label=Reportar este problema +Continue.Button=Continuar +Exit.Button=Salir +Copied.Clipboard.Label=Esta información ha sido copiada al portapapeles. +Ll.Copy.Label=Deberá copiar esta información manualmente. +Problem.Prevention.Message=Para evitar que este problema ocurra de nuevo, nos gustaría saber más acerca de él reportando un error en el repositorio de GitHub. Necesitará una cuenta de GitHub para enviar comentarios. + +[ExportDrivers] +Title.Label=Exportar controladores +Image.Task.Header.Label={0} +ExportTarget.Label=Destino de exportación: +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar +DriversPath.Description=Especifique la ruta a la que los controladores serán exportados: + +[ExportDrivers.Validation] +Target.Required.Message=Especifique un destino al que exportar los controladores y asegúrese de que el destino especificado existe. + +[FfuApply] +NamingPattern.Required.Label=Especifique la nomenclatura del patrón de los archivos SFU + +[FfuApply.ScanSFUPattern] +Source.File.Required.Message=Especifique el arhivo FFU de origen. Esto le permitirá usar los archivos SFU para la aplicación posterior de la imagen +ApplyImage.Message=Aplicar una imagen +Naming.Returns.Item=Esta nomenclatura de patrón devuelve {0} archivos SFU +Naming.Returns.Label=Esta nomenclatura de patrón devuelve {0} archivos SFU + +[FfuApply.Validation] +ImageFile.Message=El archivo de imagen especificado no es válido. Especifique una imagen válida e inténtelo de nuevo. + +[FfuCapture] +No.Compression.None.Message=No compression will be applied for FFU files. Choose this option if you want to split the resulting file. +Default.Compression.Item=Default compression will be applied for FFU files. + +[FfuSplit] +SplitFfuimages.Label=Dividir imágenes FFU +Image.Task.Header.Label={0} +Source.Image.Label=Imagen de origen a dividir: +Name.Path.Destination.Label=Nombre y ruta de la imagen dividida de destino: +Maximum.Size.Images.Label=Tamaño máximo de imágenes divididas (en MB): +LargeFile.Note.Message=Para acomodar un archivo grande de la imagen, una imagen dividida puede ocupar más tamaño del especificado +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar +Integrity.CheckBox=Comprobar integridad de la imagen +Source.File.Title=Especifique el archivo FFU de origen a dividir: +Target.Location.Title=Especifique la ubicación de destino de las imágenes divididas: + +[FfuSplit.Validation] +Name.Required.Message=Especifique un nombre y un directorio para el archivo SFU de destino e inténtelo de nuevo. Asegúrese también de que el directorio de destino exista. +Source.File.Required.Message=Especifique un archivo FFU de origen e inténtelo de nuevo. Asegúrese también de que el archivo exista. + +[Get.AppX] +AppX.Package.Label=Obtener información de paquetes AppX +Image.Task.Header.Label={0} +AppX.Package.Label.Label=Información de paquete AppX +Installed.AppX.Label=Seleccione un paquete AppX instalado en la izquierda para ver su información aquí +PackageName.Label=Nombre de paquete: +Display.Name.Label=Nombre de aplicación a mostrar: +Architecture.Label=Arquitectura: +ResourceID.Label=ID de recurso: +Version.Label=Versión: +Registered.User.Label=¿Está registrado a algún usuario? +Install.Dir.Label=Directorio de instalación: +Package.Manifest.Label=Ubicación del manifiesto del paquete: +StoreLogo.Asset.Dir.Label=Directorio de recursos de logotipos de Tienda: +Main.StoreLogo.Asset.Label=Recurso de logotipos de Tienda principal: +Asset.Guessed.DISM.Message=Este recurso ha sido averiguado por DISMTools por su tamaño, lo que puede llevar a un resultado incorrecto. Si eso ocurre, informe de un problema en el repositorio de GitHub +Asset.One.IM.Link=Este recurso no es el que estaba buscando +Save.Button=Guardar... +Type.Search.Label=Escriba aquí para buscar una aplicación... + +[Get.AppX.PackageList] +Yes.Button=Sí +No.Button=No + +[CapabilityInfo] +Get.Label=Obtener información de funcionalidades +Image.Task.Header.Label={0} +Ready.Label=Listo +Identity.Label=Identidad de la funcionalidad: +CapabilityName.Label=Nombre de la funcionalidad: +CapabilityState.Label=Estado de la funcionalidad: +DisplayName.Label=Nombre para mostrar +CapabilityInfo.Label=Información de la funcionalidad +Description.Label=Descripción de la funcionalidad +Sizes.Label=Tamaños: +Identity.Column=Identidad de funcionalidad +State.Column=Estado +Save.Button=Guardar... +Type.Search.Label=Escriba aquí para buscar una funcionalidad... +Wait.Background.Message=Los procesos en segundo plano deben haber completado antes de obtener información de la característica. Esperaremos hasta que hayan completado +Waiting.Background.Label=Esperando a que terminen los procesos en segundo plano... +Prepare.Cap.Item=Preparándonos para obtener información de la funcionalidad... +GettingInfo.Item=Obteniendo información de {quot;}{0}{quot;}... +ReadableSize.Suffix=(~{0}) +Download.Size.Bytes.Label=Tamaño de descarga: {0} bytes{1}{crlf;}Tamaño de instalación: {2} bytes{3} +Get.Reason.Message=No pudimos obtener información de la funcionalidad. Motivo: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Listo +Build.Query.Assistant.Label=Crear consulta con el asistente... + +[GetCapInfo] +SelectCapability.Label=Seleccione una funcionalidad instalada en la izquierda para ver su información aquí + +[GetDriverInfo] +Driver.Label=Obtener información de controladores +Get.Label=¿Acerca de qué le gustaría obtener información? +Get.Drivers.Message=Haga clic aquí para obtener información de controladores que ha instalado o que vengan con la imagen de Windows a la que está dando servicio +AddDrivers.Help.Message=Haga clic aquí para obtener información de controladores que le gustaría añadir a la imagen de Windows a la que está dando servicio antes de proceder con el proceso de adición de controladores +Ready.Label=Listo +Add.DriverPackage.Label=Añada o seleccione un paquete de controlador para ver su información aquí +HardwareTargets.Label=Hardware de destino +Hardware.Description.Label=Descripción de hardware: +HardwareID.Label=ID de hardware: +AdditionalIds.Label=Identificadores adicionales: +CompatibleIds.Label=Identificadores compatibles: +ExcludeIds.Label=Identificadores excluidos: +Hardware.Manufacturer.Label=Fabricante de hardware: +Architecture.Label=Arquitectura: +JumpTarget.Label=Saltar a hardware: +PublishedName.Label=Nombre publicado: +Original.File.Name.Label=Nombre de archivo original: +ProviderName.Label=Nombre de proveedor: +Critical.Boot.Process.Label=¿Es crítico para el proceso de arranque? +Version.Label=Versión: +ClassName.Label=Nombre de clase: +Part.Windows.Label=¿Es parte de la distribución de Windows? +DriverInfo.Label=Información del controlador +Installed.Driver.View.Label=Seleccione un controlador instalado para obtener su información aquí +Date.Label=Fecha: +ClassDescription.Label=Descripción de clase: +ClassGUID.Label=Identificador GUID de clase: +Driver.Signature.Label=Estado de firma del controlador: +Catalog.File.Path.Label=Ruta del archivo de catálogo: +Bg.Procs.Notice.Message=Ha configurado los procesos en segundo plano de manera que no se muestren todos los controladores de esta imagen, que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa. +AddDriver.Button=Añadir controlador... +RemoveSelected.Button=Eliminar selección +RemoveAll.Button=Eliminar todos +Change.Button=Cambiar +Save.Button=Guardar... +View.Driver.File.Button=Ver información del archivo de controladores +GoBack.Link=<- Atrás +InstalledDriver.Link=Deseo obtener información acerca de controladores instalados en la imagen +Iwant.Link=Deseo obtener información acerca de archivos de controladores +PublishedName.Column=Nombre publicado +Original.File.Name.Column=Nombre de archivo original +Locate.Driver.Files.Title=Ubique los archivos de controladores +Type.Search.Driver.Button=Escriba aquí para buscar un controlador... +HardwareTarget.Label=Hardware de destino {0} de {1} +Value.Label= +Yes.Button=Sí +No.Button=No +Value.Button=Sí +Text1.Label=por +Build.Query.Assistant.Label=Crear consulta con el asistente... + +[DriverInfo.Display] +NoManufacturer.Label=Ninguno declarado por el fabricante del hardware + +[GetDriverInfo.DriverInfo] +Wait.Background.Message=Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado +Waiting.Background.Label=Esperando a que terminen los procesos en segundo plano... +Driver.File.Message=Obteniendo información del archivo de controlador {quot;}{0}{quot;}...{crlf;}Esto puede llevar algo de tiempo y el programa podría congelarse temporalmente +Ready.Item=Listo + +[DriverInfo.Load] +Preparing.Driver.Item=Preparando procesos de información de controladores... + +[GetDriverInfo.Hardware] +HardwareTarget.Label=Hardware de destino 1 de {0} + +[GetDriverInfo.Tooltip] +Previous.Hardware.Message=Anterior hardware de destino +Next.Hardware.Target.Message=Siguiente hardware de destino +Jump.Specific.Message=Saltar a hardware de destino específico + +[DriverInfo] +Unknown.Label=Desconocido + +[GetFeatureInfo] +Get.Feature.Label=Obtener información de características +Image.Task.Header.Label={0} +Ready.Label=Listo +FeatureName.Label=Nombre de característica: +DisplayName.Label=Nombre para mostrar: +Description.Label=Descripción de la característica: +RestartRequired.Label=¿Se requiere un reinicio? +FeatureInfo.Label=Información de la característica +Installed.Left.Label=Seleccione una característica instalada en la izquierda para ver su información aquí +FeatureState.Label=Estado de la característica +CustomProps.Label=Propiedades personalizadas: +FeatureName.Column=Nombre de característica +FeatureState.Column=Estado +Save.Button=Guardar... +Type.Search.Label=Escriba aquí para buscar una característica... +Wait.Background.Message=Los procesos en segundo plano deben haber completado antes de obtener información de la característica. Esperaremos hasta que hayan completado +Waiting.Background.Label=Esperando a que terminen los procesos en segundo plano... +Preparing.Item=Preparándonos para obtener información de la característica... +GettingInfo.Item=Obteniendo información de {quot;}{0}{quot;}... +Expand.Entry.Label=Por favor, seleccione o expanda una entrada. +None.Label=Ninguna +Reason.Message=No pudimos obtener información de la característica. Motivo: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Listo +Build.Query.Assistant.Label=Crear consulta con el asistente... + +[FeatureInfo.PathSelection] +SelectedValue.Message=No se ha definido un valor. Si el elemento seleccionado tiene elementos secundarios, expándalo. + +[ImageInfo] +Get.Image.Label=Obtener información de la imagen +Image.Task.Header.Label={0} +ImageFile.Get.Label=Archivo de imagen del que obtener información: +List.Indexes.ImageFile.Label=Listado de índices del archivo de imagen: +ImageVersion.Label=Versión de la imagen: +ImageName.Label=Nombre de la imagen: +ImageDescription.Label=Descripción de la imagen: +ImageSize.Label=Tamaño de la imagen: +Supports.WIM.Boot.Label=¿Soporta WIMBoot? +Architecture.Label=Arquitectura: +HAL.Label=HAL: +ServicePackBuild.Label=Compilación de Service Pack: +ServicePackLevel.Label=Nivel de Service Pack: +InstallationType.Label=Tipo de instalación: +Edition.Label=Edición: +ProductType.Label=Tipo de producto: +ProductSuite.Label=Suite de producto: +System.Root.Dir.Label=Directorio raíz del sistema: +FileCount.Label=Número de archivos: +Dates.Label=Fechas: +Installed.Languages.Label=Idiomas instalados: +ImageInfo.Label=Información de la imagen +Index.List.View.Label=Seleccione un índice del listado de la izquierda para ver su información aquí +CurrentlyMounted.RadioButton=Imagen montada actualmente +AnotherImage.RadioButton=Otra imagen +Browse.Button=Examinar... +Save.Button=Guardar... +Pick.Button=Escoger... +Index.Column=Índice +ImageName.Column=Nombre de imagen +Image.Get.Title=Especifique la imagen de la que obtener información +Bytes.Label={0} bytes (~{1}) + +[ImageInfo.FeatureUpdate] +FeatureUpdate.Label=(actualización de características: +Text1.Label=) + +[ImageInfo.DisplayImageInfo] +UndefinedImage.Label=No definida por la imagen +FilesDirectories.Label={0} archivos en {1} directorios +Date.Created.Modified.Label=Fecha de creación: {0}{crlf;}Fecha de modificación: {1} + +[ImageInfo.GetImageInfo] +Gather.ImageFile.Message=No pudimos obtener información de este archivo de imagen. Razón:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImageInfo.LanguageList] +Display.Name.Open.Label=( +Default.Label=, predeterminado +Display.Name.Close.Label=) + +[AppxPackages.Info.Messages] +Get.Label=Could not get some information about this application. + +[DriverFilter.Messages] +Class.Name.Message=This class name is not valid. + +[InfoSave.Results.Messages] +HtmlFailed.Message=Conversion to HTML has failed due to the following error: {0}{crlf;}{crlf;}Do you want to open this file in a text editor? +ConversionError.Label=Conversion error + +[GetPkgInfo] +Package.Label=Obtener información de paquetes +Image.Task.Header.Label={0} +Get.Label=¿Acerca de qué le gustaría obtener información? +Get.Packages.Message=Haga clic aquí para obtener información de paquetes que ha instalado o que vengan con la imagen de Windows a la que está dando servicio +AddPackages.Help.Message=Haga clic aquí para obtener información de paquetes que le gustaría añadir a la imagen de Windows a la que está dando servicio antes de proceder con el proceso de adición de paquetes +Ready.Label=Listo +Add.Package.File.Label=Añada o seleccione un archivo de paquete para ver su información aquí +PackageInfo.Label=Información de paquete +PackageName.Label=Nombre de paquete: +Package.Applicable.Label=¿El paquete es aplicable? +Copyright.Label=Copyright: +ProductVersion.Label=Versión de producto: +ReleaseType.Label=Tipo de paquete: +Company.Label=Compañía: +CreationTime.Label=Tiempo de creación: +InstallTime.Label=Tiempo de instalación: +Last.Update.Time.Label=Último tiempo de actualización: +Install.Package.Name.Label=Nombre del paquete de instalación: +Installed.Package.View.Label=Seleccione un paquete instalado para ver su información aquí +DisplayName.Label=Nombre a mostrar: +Description.Label=Descripción: +ProductName.Label=Nombre de producto: +InstallClient.Label=Cliente de instalación: +RestartRequired.Label=¿Se requiere un reinicio? +SupportInfo.Label=Información de soporte: +State.Label=Estado: +Boot.Up.Required.Label=¿Se requiere un arranque para una instalación completa? +CustomProps.Label=Propiedades personalizadas: +Features.Label=Características: +Capability.Identity.Label=Identidad de funcionalidad: +GoBack.Link=<- Atrás +AddPackage.Button=Añadir paquete... +RemoveSelected.Button=Eliminar selección +RemoveAll.Button=Eliminar todo +Save.Button=Guardar... +Iwant.Link=Deseo obtener información acerca de paquetes instalados en la imagen +PackageFile.Link=Deseo obtener información acerca de archivos de paquetes +Locate.Package.Files.Title=Ubique los archivos de paquetes +Type.Search.Package.Label=Escriba aquí para buscar un paquete... + +[PackageInfo.Display] +None.Label=Ninguna + +[PackageInfo.File] +Wait.Background.Message=Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado +Waiting.Background.Label=Esperando a que terminen los procesos en segundo plano... +Preparing.Item=Preparando procesos de información de paquetes... +Loading.Package.Message=Obteniendo información del archivo de paquete {quot;}{0}{quot;}...{crlf;}Esto puede llevar algo de tiempo y el programa podría congelarse temporalmente +Ready.Item=Listo + +[GetPkgInfo.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[GetPkgInfo.PackageList] +Wait.Background.Message=Los procesos en segundo plano deben haber completado antes de obtener información del paquete. Esperaremos hasta que hayan completado +Waiting.Background.Label=Esperando a que terminen los procesos en segundo plano... +Preparing.Package.Item=Preparándonos para obtener información del paquete... +GettingInfo.Item=Obteniendo información de {quot;}{0}{quot;}... +Expand.Entry.Label=Por favor, seleccione o expanda una entrada. +None.Label=Ninguna +Ready.Item=Listo + +[GetPkgInfo.PropertyPath] +SelectedValue.Message=No se ha definido un valor. Si el elemento seleccionado tiene elementos secundarios, expándalo. + +[WinPESettings] +Get.Windows.Pesettings.Label=Obtener configuraciones de Windows PE +Windows.Label=Estas son las configuraciones de Windows PE para esta imagen: +TargetPath.Label=Carpeta de destino: +ScratchSpace.Label=Espacio temporal: +Change.Button=Cambiar... +Ok.Button=Aceptar +Save.Button=Guardar... + +[WinPESettings.GetPESettings] +GetValue.Label=No se pudo obtener el valor +GetValue.Message=No se pudo obtener el valor + +[Help.QuickHelp] +QuickHelp.Message=Quick Help + +[PEHelper.ServerPort] +Already.Message=The specified port, {0}, is already in use. +InvalidPort.Message=The specified port, {0}, is not in use. + +[ISOCreator] +Status.Message=Estado +Creating.ISO.Message=Creando archivo ISO. Esto puede llevar algo de tiempo. Espere... +IsofileCreated.Message=El archivo ISO ha sido creado +CreateIsofile.Label=Crear un archivo ISO +ISO.File.Message=El asistente de creación de archivos ISO le permite crear un archivo de imagen de disco rápidamente y que puede utilizar para probar los cambios hechos a su imagen de Windows. Un Entorno de Preinstalación (PE) personalizado será creado. Este entorno realizará configuración del disco automáticamente y aplicará la imagen que especifique aquí. +Re.Ready.Create.Label=Cuando esté listo, haga clic en Crear. +ImageFile.Add.Label=Archivo de imagen a añadir al archivo ISO: +Architecture.Label=Arquitectura: +Target.Isolocation.Label=Ubicación del archivo ISO de destino: +Other.Things.Message=Puede hacer otras cosas mientras se crea el archivo ISO. Vuelva aquí para ver un estado actualizado. +Browse.Button=Examinar... +Pick.Button=Escoger... +Mounted.Image.Button=Usar imagen montada +Customize.Environment.Button=Personalizar entorno... +Create.Button=Crear +Cancel.Button=Cancelar +Options.Group=Opciones +Progress.Group=Progreso +Download.Windows.ADK.Link=Descargar el ADK de Windows +ImageName.Column=Nombre de la imagen +ImageDescription.Column=Descripción de la imagen +ImageVersion.Column=Versión +Image.Architecture.Column=Arquitectura +Unattended.CheckBox=Archivo de respuesta: +Copy.Ventoy.Drives.CheckBox=Copiar a discos Ventoy +Newly.Signed.Boot.CheckBox=Utilizar archivos de arranque firmados con nuevos certificados +Include.Essential.CheckBox=Incluir controladores esenciales de este sistema +Https.Learn.Message=https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install +Create.ISO.Message=Esta opción creará archivos ISO que contengan archivos de arranque EFI firmados con el certificado {quot;}Windows UEFI CA 2023{quot;}{crlf;}{crlf;} +Computers.UEFI.Message=Algunos equipos que utilicen UEFI podrán no iniciar correctamente este archivo ISO con los archivos de arranque actualizados. Debido a esto, es recomendable que compruebe sus dispositivos de prueba para ver si son compatibles con estos archivos. +Run.Power.Shell.Message=Ejecute el comando de PowerShell descrito en la Ayuda para el creador de archivos ISO (en inglés) para determinar si un equipo tiene este certificado instalado. +Doubts.Recommend.Message=Si tiene dudas, le recomendamos que deje esta opción sin marcar. +Have.Detected.Message=Hemos detectado que, actualmente, su sistema no soporta archivos de arranque Windows UEFI CA 2023. Si continúa con la creación de archivos ISO, podría no ser capaz de arrancar a archivos ISO resultantes en este sistema. +Windows.Title=Información sobre Windows UEFI CA 2023 +Check.Option.Storage.Message=When you check this option, storage controllers and network adapter drivers from this machine will be included{crlf;}in your ISO file. They will also be applied to the image file once deployed. +AvailableADK.Message=If available in your installed Assessment and Deployment Kit, your ISO file will use boot binaries signed with Windows UEFI CA 2023.{crlf;}This option is designed for target systems that support Secure Boot and have the latest boot certificates in the allowlist database (DB). + +[ISOCreator.Background] +Isofile.Created.Done.Message=El archivo ISO ha sido creado satisfactoriamente +Failed.Create.Message=No pudimos crear el archivo ISO + +[ISOCreator.GetImageInfo] +Gather.ImageFile.Message=No pudimos obtener información de este archivo de imagen. Razón:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ISOCreator.Links] +Https.Learn.Message=https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install + +[ISOCreator.Validation] +Either.Source.Message=El archivo de imagen de origen no existe o no ha especificado un archivo. Especifique un archivo de imagen válido e inténtelo de nuevo. +TargetISO.Required.Message=El archivo ISO de destino no se ha especificado. Especifique una ubicación para el archivo ISO e inténtelo de nuevo. +Saved.Message=Asegúrese de que haya guardado todos sus cambios antes de continuar.{crlf;}{crlf;}Si no lo ha hecho, haga clic en No, guarde su imagen, y comience el proceso de nuevo. No tiene que cerrar esta ventana.{crlf;}{crlf;}¿Desea crear un archivo ISO con esta imagen? +Target.ISO.Message=El archivo ISO ya existe. ¿Desea reemplazarlo? + +[ImageAppxPackage.RegStatus] +Yes.Button=Sí +No.Button=No + +[ImageDriver.DriverInbox] +Yes.Button=Sí +No.Button=No + +[ImgAppend] +AppendImage.Label=Anexar a una imagen +Image.Task.Header.Label={0} +Path.Config.File.Label=Ruta del archivo de configuración: +Source.Image.Dir.Label=Directorio de la imagen de origen: +Dest.Image.Description.Label=Descripción de la imagen de destino: +Destination.ImageFile.Label=Archivo de imagen de destino: +Destination.Image.Name.Label=Nombre de la imagen de destino: +Ok.Button=Aceptar +Cancel.Button=Cancelar +Browse.Button=Examinar... +Grab.Last.Image.Button=Coger de la última imagen +Create.Button=Crear... +Exclude.Files.Dirs.CheckBox=Excluir algunos archivos y directorios para la imagen de destino +WIM.Boot.Config.CheckBox=Anexar con configuración WIMBoot +Image.Bootable.CheckBox=Hacer imagen arrancable (solo Windows PE) +Verify.Image.CheckBox=Verificar integridad de imagen +Check.File.Errors.CheckBox=Comprobar errores de archivos +Reparse.Point.Tag.CheckBox=Utilizar corrección de etiquetas de puntos de repetición de análisis +ExtendedAttributes.CheckBox=Capturar atributos extendidos +Sources.Destinations.Group=Orígenes y destinos +Options.Group=Opciones + +[ImgAppend.Tooltip] +Grab.Name.Last.Message=Obtener el nombre del último índice de la imagen de destino + +[ImgAppend.Validation] +SourceImage.Required.Message=Por favor, especifique un directorio de imagen de origen e inténtelo de nuevo. +ImageFile.Required.Message=Por favor, especifique un archivo de imagen de destino e inténtelo de nuevo. +NameDestination.Message=Por favor, especifique un nombre para el archivo de imagen de destino e inténtelo de nuevo. +Either.Config.List.Message=Ningún archivo de lista de configuración fue especificado, o no se pudo detectar en su sistema de archivos. ¿Desea continuar sin un archivo de lista de configuración? + +[ImgApply] +ApplyImage.Label=Aplicar una imagen +Image.Task.Header.Label={0} +SourceImageFile.Label=Imagen de origen: +ImageIndex.Label=Índice: +NamingPattern.Label=Nomenclatura: +Integrity.CheckBox=Comprobar integridad de imagen +Verify.CheckBox=Verificar +Reparse.Point.Tag.CheckBox=Utilizar corrección de etiquetas de puntos de repetición de análisis +Reference.Swmfiles.CheckBox=Hacer referencia a archivos SWM +Append.Image.WIM.CheckBox=Aplicar imagen con configuración WIMBoot +Image.Compact.Mode.CheckBox=Aplicar imagen en modo compacto +Extended.Attributes.CheckBox=Aplicar atributos extendidos +Browse.Button=Examinar... +Name.Image.Button=Usar nombre de imagen +ScanPattern.Button=Escanear patrón +Mounted.Image.Label=Usar imagen montada +Ok.Button=Aceptar +Cancel.Button=Cancelar +Destination.Dir.Label=Directorio de destino: +Source.Group=Origen +Options.Group=Opciones +Destination.Group=Destino +SwmfilePattern.Group=Patrón de archivos SWM +NamingPattern.Required.Label=Especifique la nomenclatura del patrón de los archivos SWM +Validate.Image.CheckBox=Validar imagen de Trusted Desktop + +[ImgApply.GetIndexes] +Gather.ImageFile.Message=No pudimos obtener información de este archivo de imagen. Razón:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgApply.ScanSwmPattern] +Source.WIM.Required.Message=Especifique el arhivo WIM de origen. Esto le permitirá usar los archivos SWM para la aplicación posterior de la imagen +ApplyImage.Message=Aplicar una imagen +Naming.Returns.Item=Esta nomenclatura de patrón devuelve {0} archivos SWM +Naming.Returns.Label=Esta nomenclatura de patrón devuelve {0} archivos SWM + +[ImgApply.Validation] +ImageFile.Message=El archivo de imagen especificado no es válido. Especifique una imagen válida e inténtelo de nuevo. + +[ImgCapture] +CaptureImage.Label=Capturar una imagen +Destination.ImageFile.Label=Archivo de imagen de destino: +Source.Image.Dir.Label=Directorio de imagen de origen: +Dest.Image.Description.Label=Descripción de la imagen de destino: +Destination.Image.Name.Label=Nombre de la imagen de destino: +Path.Config.File.Label=Ubicación de archivo de configuración: +CompressionType.Label=Tipo de compresión de imagen de destino: +Sources.Destinations.Group=Orígenes y destinos +Options.Group=Opciones +Browse.Button=Examinar... +Create.Button=Crear... +Ok.Button=Aceptar +Cancel.Button=Cancelar +Exclude.Files.Dirs.CheckBox=Excluir algunos archivos y directorios para la imagen de destino +Image.Bootable.CheckBox=Hacer imagen arrancable (solo Windows PE) +Verify.Image.CheckBox=Verificar integridad de imagen +Check.File.Errors.CheckBox=Comprobar errores de archivos +Reparse.Point.Tag.CheckBox=Utilizar corrección de etiquetas de puntos de repetición de análisis +Append.WIM.Boot.CheckBox=Anexar con configuración WIMBoot +Extended.Attributes.CheckBox=Capturar atributos extendidos +Mount.Dest.Image.CheckBox=Montar imagen de destino para posterior uso +No.Compression.None.Item=No se aplicará compresión a la imagen de destino. +Fast.Compression.Item=Se aplicará compresión rápida. Esta es la opción predeterminada. +MaxCompression.Message=Se aplicará compresión máxima. Esto tardará más tiempo, pero resultará en una imagen más pequeña. + +[ImgCleanup] +ImageCleanup.Label=Limpieza de imagen +Task.Choose.Label=Elija una tarea: +Text4.Label=Elija una tarea para ver su descripción +NoOptions.Message=No hay opciones configurables para esta tarea. Sin embargo, debería ejecutar esta tarea para intentar recuperar una imagen de Windows que no inicia. +Superseded.Base.Reset.Label=El restablecimiento de la base de componentes sustituidos fue ejecutado por última vez en: +Only.Check.Option.Label=Debería marcar esta opción solo si el restablecimiento de la base tarda más de 30 minutos en completar +NoOptions.Label=No hay opciones configurables para esta tarea. +Source.Label=Origen: +Task.Listed.Label=Seleccione una tarea en la lista de arriba para configurar sus opciones. +TaskOptions.Group=Opciones de tarea +Ok.Button=Aceptar +Cancel.Button=Cancelar +Revert.Pending.Actions.Item=Revertir acciones pendientes +Clean.Up.ServicePack.Item=Limpiar archivos de copia de seguridad de Service Pack +Clean.Up.Component.Item=Limpiar almacén de componentes +Analyze.Component.Store.Item=Analizar almacén de componentes +Check.Component.Store.Item=Comprobar almacén de componentes +Scan.Comp.Store.Item=Escanear almacén de componentes para detectar corrupción +Repair.Component.Store.Item=Reparar almacén de componentes +Source.Title=Especifique el origen desde donde restauraremos la salud del almacén de componentes +Browse.Button=Examinar... +Detect.Group.Policy.Button=Detectar políticas de grupo +HideServicePack.CheckBox=Ocultar Service Pack del listado de Actualizaciones instaladas +Reset.Base.CheckBox=Restablecer la base de componentes sustituidos +Defer.Long.Running.CheckBox=Diferir operaciones largas de limpieza +Different.Source.CheckBox=Usar origen diferente para la reparación de componentes +WindowsUpdate.CheckBox=Limitar acceso a Windows Update +Last.Reset.Base.Label=LastResetBase_UTC +Get.Last.Base.Message=No se pudo obtener la fecha de restablecimiento de base. Es posible que no se haya hecho ningún restablecimiento +Last.Reset.Base.Item=LastResetBase_UTC +Get.Last.Base.Item=No se pudo obtener la fecha de restablecimiento de base. Es posible que no se haya hecho ningún restablecimiento +Get.Last.Base.Label=No se pudo obtener la fecha del último restablecimiento de base +Task.See.Choose.Label=Elija una tarea para ver su descripción +Experience.Boot.Message=Si experimenta un error en el arranque, esta opción puede intentar recuperar el sistema revirtiendo todas las acciones pendientes de operaciones de servicio previas +Removes.Backup.Files.Item=Elimina archivos de copia de seguridad creados durante la instalación de un Service Pack +Cleans.Up.Superseded.Item=Limpia los componentes sustituidos y reduce el tamaño del almacén de componentes +Creates.Report.Comp.Item=Crea un informe del almacén de componentes, incluyendo su tamaño +Checks.Whether.Image.Message=Comprueba si la imagen ha sido reportada como corrupta por un proceso fallido y si la corrupción puede ser reparada +Scans.Image.Message=Escanea la imagen para comprobar corrupción en el almacén de componentes, pero no realiza operaciones de reparación automáticamente +Scans.Image.Component.Item=Escanea la imagen para comprobar corrupción en el almacén de componentes y realiza operaciones de reparación automáticamente + +[ImgCleanup.Validation] +Source.Has.None.Message=No se ha proporcionado un origen válido para la reparación del almacén de componentes. +Provide.Source.Try.Message=Proporcione un origen e inténtelo de nuevo +Please.Make.Message=Asegúrese de que el origen especificado exista en el sistema de archivos e inténtelo de nuevo. +ImageCleanup.Message=Limpieza de imagen + +[ImageConversion.Success] +Image.Done.Converted.Label=La imagen ha sido convertida satisfactoriamente +ConversionDone.Message=La imagen especificada ha sido convertida satisfactoriamente al formato de destino. Por si lo desea, el Explorador de archivos puede ser abierto para ver dónde está ubicada la imagen.{crlf;}{crlf;}¿Desea abrir el directorio donde la imagen de destino está almacenada? +Yes.Button=Sí +No.Button=No + +[ImgExport] +ExportImage.Label=Exportar una imagen +Destination.ImageFile.Label=Archivo de imagen de destino: +SourceImageFile.Label=Archivo de imagen de origen: +NamingPattern.Label=Patrón de nomenclatura: +CompressionType.Label=Tipo de compresión de la imagen de destino: +Source.Image.Index.Label=Índice de imagen de origen: +Reference.Swmfiles.CheckBox=Hacer referencia a archivos SWM +CustomName.CheckBox=Especificar un nombre personalizado para la imagen de destino +Image.Bootable.CheckBox=Hacer imagen arrancable (solo Windows PE) +Append.Image.WIM.CheckBox=Exportar la imagen con configuración WIMBoot +Ok.Button=Aceptar +Cancel.Button=Cancelar +Browse.Button=Examinar... +Name.Image.Button=Usar nombre de imagen +ScanPattern.Button=Escanear patrón +Sources.Destinations.Group=Orígenes y destinos +Options.Group=Opciones +Source.ImageFile.Title=Especifique un archivo de imagen de origen a exportar +Index.Column=Índice +ImageName.Column=Nombre de imagen +ImageDescription.Column=Descripción de imagen +ImageVersion.Column=Versión de imagen +No.Compression.None.Item=No se aplicará compresión a la imagen de destino. +Fast.Compression.Item=Se aplicará compresión rápida. Esta es la opción predeterminada. +MaxCompression.Message=Se aplicará compresión máxima. Esto tardará más tiempo, pero resultará en una imagen más pequeña. +Compression.Level.Message=Se aplicará el nivel de compresión de imágenes de restablecimiento por botón. Esto requiere exportar la imagen como un archivo ESD. +NamingPattern.Required.Label=Especifique la nomenclatura del patrón de los archivos SWM +CheckIntegrity.CheckBox=Comprobar integridad antes de exportar la imagen + +[ImgExport.ScanSwmPattern] +Source.WIM.Required.Message=Especifique el arhivo WIM de origen. Esto le permitirá usar los archivos SWM para la aplicación posterior de la imagen +Naming.Returns.Item=Esta nomenclatura de patrón devuelve {0} archivos SWM +Naming.Returns.Label=Esta nomenclatura de patrón devuelve {0} archivos SWM + +[ImgExport.Validation] +SourceImageFile.Message=Por favor, especifique un archivo de imagen de origen e inténtelo de nuevo +ImageFile.Required.Message=Por favor, especifique un archivo de imagen de destino e intente de nuevo + +[ImageIndexDelete] +Remove.Volume.Image.Label=Eliminar una imagen de volumen +Image.Task.Header.Label={0} +SourceImage.Label=Imagen: +Mark.VolumeImages.Message=Marque las imágenes de volumen a eliminar en la parte izquierda. La imagen tendrá luego los índices mostrados en la parte derecha +Get.Indexes.Image.Label=Obteniendo índices de la imagen. Espere... +Browse.Button=Examinar... +Mounted.Image.Button=Usar imagen montada +Ok.Button=Aceptar +Cancel.Button=Cancelar +Integrity.CheckBox=Comprobar integridad de imagen +Index.Column=Índice +ImageName.Column=Nombre de imagen +Columns0.Column=Índice +Columns1.Column=Nombre de imagen +VolumeImages.Group=Imágenes de volumen + +[ImageIndexDelete.IndexInfo] +Image.Only.Contains.Message=Esta imagen solo contiene 1 índice. No puede eliminar imágenes de volumen de este archivo +Remove.Volume.Image.Title=Eliminar una imagen de volumen + +[ImageIndexDelete.Validation] +SelectImages.Message=Seleccione imágenes de volumen para eliminar de esta imagen, e inténtelo de nuevo. +Remove.Volume.Image.Title=Eliminar una imagen de volumen +ImageMounted.Message=El programa ha detectado que esta imagen está montada. Para eliminar imágenes de volumen de este archivo, debe ser desmontado. Puede remontarlo más tarde, si lo desea.{crlf;}{crlf;}Dese cuenta de que esto desmontará la imagen descartando los cambios. Asegúrese de que todos sus cambios hayan sido guardados antes de proceder.{crlf;}{crlf;}¿Desea desmontar esta imagen? + +[ImageIndexSwitch] +Image.Indexes.Label=Cambiar índices de imagen +Image.Task.Header.Label={0} +Image.Label=Imagen: +Unmounting.Source.Label=Al desmontar índice de origen, ¿qué hacer? +Destination.Mount.Label=Índice de destino a montar: +Already.Mounted.Label=Este índice ya está montado +Ok.Button=Aceptar +Cancel.Button=Cancelar +Indexes.Group=Índice +Save.Changes.RadioButton=Guardar cambios en el índice +DiscardChanges.RadioButton=Desmontar descartando cambios + +[ImageIndexSwitch.Initialize] +Getting.Image.Indexes.Label=Obteniendo índices de la imagen... + +[ImageInfoSave] +Saving.Image.Button=Guardando información de la imagen... +Wait.Message=Espere mientras DISMTools guarda la información de la imagen en un archivo. Esto puede llevar algo de tiempo, dependiendo de las tareas que son ejecutadas. +Wait.Label=Espere... +Wait.Background.Message=Los procesos en segundo plano deben haber completado antes de obtener información. Esperaremos hasta que hayan completado +Waiting.Bg.Procs.Item=Esperando a que terminen los procesos en segundo plano... +Create.Target.Reason.Message=No se pudo crear el informe de destino. Razón: +OperationFailed.Message=La operación ha fallado +PackageInfo.Label=Información de paquetes +FeatureInfo.Label=Información de características +AppX.Package.Label=Información de paquetes AppX +CapabilityInfo.Label=Información de funcionalidades +DriverInfo.Label=Información de controladores +Desea.Obtener.Message=¿Desea obtener información completa acerca de los paquetes presentes? Esto tardará más tiempo. +Statement3.Message=¿Desea obtener información completa acerca de las características presentes? Esto tardará más tiempo. +Statement4.Message=¿Desea obtener información completa acerca de los paquetes AppX presentes? Esto tardará más tiempo. +Statement5.Message=¿Desea obtener información completa acerca de las funcionalidades presentes? Esto tardará más tiempo. +Statement6.Message=¿Desea obtener información completa acerca de los controladores presentes? Esto tardará más tiempo. +BgProcessDetect.Message=Ha configurado los procesos en segundo plano para no detectar todos los controladores, lo que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa.{crlf;}{crlf;} +Setting.Applied.Task.Message=Esta configuración también se aplica a esta tarea, pero puede obtener la información de todos los controladores ahora. Dese cuenta de que esto puede llevar mucho tiempo, dependiendo del número de controladores de serie. +Get.Message=¿Desea obtener la información de todos los controladores, incluyendo los controladores que son parte de la distribución de Windows? +SavingContents.Message=Guardando contenidos... + +[ImageInfoSave.AppxInfo] +Preparing.Package.Message=Preparando procesos de información de paquetes AppX... +Basic.Ready.Message=El programa ha obtenido información básica de los paquetes AppX instalados en esta imagen. También puede obtener información completa de dichos paquetes AppX y guardarla en el informe.{crlf;}{crlf;} +May.Take.Long.Message=Dese cuenta de que esto tardará más, dependiendo del número de paquetes AppX instalados. +Prompt.Label=¿Desea obtener esta información y guardarla en el informe? +Package.Message=Información de paquetes AppX +Getting.Message=Obteniendo información de paquetes AppX... (paquete AppX {0} de {1}) +Packages.Obtained.Message=Los paquetes AppX han sido obtenidos +Saving.Installed.Message=Guardando paquetes AppX instalados... + +[ImgInfo.Capabilities] +Preparing.Message=Preparando procesos de información de funcionalidades... +Basic.Ready.Message=El programa ha obtenido información básica de las funcionalidades instaladas en esta imagen. También puede obtener información completa de dichas funcionalidades y guardarla en el informe.{crlf;}{crlf;} +May.Take.Long.Message=Dese cuenta de que esto tardará más, dependiendo del número de funcionalidades instaladas. +Save.Prompt.Label=¿Desea obtener esta información y guardarla en el informe? +CapabilityInfo.Message=Información de funcionalidades +Loaded.Message=Las funcionalidades han sido obtenidas +Loading.Capability.Message=Obteniendo información de funcionalidades... (funcionalidad {0} de {1}) +Saving.Message=Guardando funcionalidades instaladas... + +[ImgInfo.DriverFiles] +Preparing.Message=Preparando procesos de información de controladores... +Loading.Driver.Message=Obteniendo información de archivos de controladores... (archivo de controlador {0} de {1}) + +[ImageInfoSave.Drivers] +Preparing.Message=Preparando procesos de información de controladores... +Basic.Ready.Message=El programa ha obtenido información básica de los controladores instalados en esta imagen. También puede obtener información completa de dichos controladores y guardarla en el informe.{crlf;}{crlf;} +May.Take.Long.Message=Dese cuenta de que esto tardará más, dependiendo del número de controladores instalados. +Prompt.Label=¿Desea obtener esta información y guardarla en el informe? +DriverInfo.Message=Información de controladores +Setting.Applied.Task.Message=Esta configuración también se aplica a esta tarea, pero puede obtener la información de todos los controladores ahora. Dese cuenta de que esto puede llevar mucho tiempo, dependiendo del número de controladores de serie. +Get.Message=¿Desea obtener la información de todos los controladores, incluyendo los controladores que son parte de la distribución de Windows? +DriversObtained.Message=Los controladores han sido obtenidos +Get.Driver.Message=Obteniendo información de controladores... (controlador {0} de {1}) +SaveDrivers.Message=Guardando controladores instalados... + +[ImageInfoSave.GetDriverInfo] +BgProcessDetect.Message=Ha configurado los procesos en segundo plano para no detectar todos los controladores, lo que incluye controladores parte de la distribución de Windows, por lo que podría no ver el controlador que le interesa.{crlf;}{crlf;} + +[ImgInfo.Features] +Preparing.Feature.Message=Preparando procesos de información de características... +Loading.Feature.Message=Obteniendo información de características... (característica {0} de {1}) + +[ImageInfoSave.Features] +Basic.Ready.Message=El programa ha obtenido información básica de las características instaladas en esta imagen. También puede obtener información completa de dichos características y guardarla en el informe.{crlf;}{crlf;} +May.Take.Long.Message=Dese cuenta de que esto tardará más, dependiendo del número de características instalados. +Prompt.Label=¿Desea obtener esta información y guardarla en el informe? +FeatureInfo.Message=Información de características +FeaturesObtained.Message=Las características han sido obtenidas +SaveFeatures.Message=Guardando características instaladas... + +[ImageInfoSave.Image] +Getting.Image.Message=Obteniendo información de la imagen... (imagen {0} de {1}) + +[ImgInfo.PkgFiles] +Preparing.Package.Message=Preparando procesos de información de paquetes... + +[ImgInfo.PackageFiles] +Loading.Package.Message=Obteniendo información de archivos de paquetes... (archivo de paquete {0} de {1}) + +[ImgInfo.Packages] +Preparing.Package.Message=Preparando procesos de información de paquetes... +Loading.Package.Message=Obteniendo información de paquetes... (paquete {0} de {1}) + +[ImageInfoSave.Packages] +Basic.Ready.Message=El programa ha obtenido información básica de los paquetes instalados en esta imagen. También puede obtener información completa de dichos paquetes y guardarla en el informe.{crlf;}{crlf;} +May.Take.Long.Message=Dese cuenta de que esto tardará más, dependiendo del número de paquetes instalados. +Prompt.Label=¿Desea obtener esta información y guardarla en el informe? +PackageInfo.Message=Información de paquetes +PackagesObtained.Message=Los paquetes han sido obtenidos +SavePackages.Message=Guardando paquetes instalados... + +[ImageInfoSave.WinPE] +Prepare.Message=Preparándonos para obtener la configuración de Windows PE... +Get.Target.Message=Obteniendo la ruta de destino de Windows PE... +Get.Scratch.Message=Obteniendo espacio temporal de Windows PE... + +[ImageInfoSave.Report] +Get.Message=The program could not get information about this task. See below for reasons why: +Exception.Label=Exception: +ExceptionMessage=Exception message: +ErrorCode.Label=Error code: +ImageInfo.Label=Información de imagen +Active.Install.Label=Active installation information: +Name.Label=Nombre: +Boot.Point.Mount.Label=Boot point (mount point): +Version.Label=Versión: +Offline.Install.Label=Offline installation information: +OfflineVersion.Label=- Version: +ImageFile.Get.Label=Image file to get information from: +InfoSummary.Label=Information summary for +ImageS.Label=image(s): +Version.Column=Version +ImageName.Label=Nombre de imagen +ImageDescription=Descripción de imagen +ImageSize.Label=Image size +Architecture.Label=Architecture +HAL.Label=HAL +ServicePackBuild.Label=Service Pack build +ServicePackLevel.Label=Service Pack level +InstallationType.Label=Installation type +Edition.Label=Edition +ProductType.Label=Product type +ProductSuite.Label=Product suite +System.Root.Dir.Label=System root directory +Languages.Label=Languages +DateCreation.Label=Date of creation +DateModification.Label=Date of modification +Default.Label=(default) +Bytes.Label=bytes (~ +UndefinedImage.Label=Undefined by the image +PackageInfo.Label=Información del paquete +Active.Install.Label.Label=active installation +PackageS.Label=package(s): +PackageName.Label=Package name +Applicable.Label=Applicable? +Copyright.Label=Copyright +Company.Label=Company +CreationTime.Label=Creation time +Description=Description +InstallClient.Label=Install client +Install.Package.Name.Label=Install package name +InstallTime.Label=Install time +Last.Update.Time.Label=Last update time +DisplayName.Label=Display name +ProductName.Label=Product name +ProductVersion.Label=Product version +ReleaseType.Label=Release type +RestartRequired.Label=Restart required? +SupportInfo.Label=Support information +PackageState.Label=Package state +Boot.Up.Required.Label=Boot up required? +Capability.Identity.Label=Capability identity +CustomProps.Label=Custom properties +Features.Label=Características +None.Label=None +Preposterous.Time.Date.Label=- **Preposterous time and date** +PackageInfo.Ready.Label=Complete package information has been gathered. +Package.Release.Type.Label=Package release type +Package.Install.Time.Label=Package install time +PackageInfo.Missing.Label=Complete package information has not been gathered +Package.File.Label=Package file information +Amount.Package.Files.Label=Amount of package files to get information about: +FeatureInfo.Label=Feature information +FeatureCount.Suffix=feature(s): +FeatureName.Label=Nombre de característica +FeatureState.Label=Feature state +Web.Label=On The Web +Look.Item.Online.Label=Buscar este elemento en línea +FeatureInfo.Ready.Label=Complete feature information has been gathered +FeatureInfo.Missing.Label=Complete feature information has not been gathered +AppX.Package.Label=AppX package information +Task.Supported.Win.Message=This task is not supported on the specified Windows image. Check that it contains Windows 8 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +AppXPackages.Label=AppX package(s): +App.Display.Name.Label=Application display name +ResourceID.Label=Resource ID +RegisteredUser.Label=Registered to a user? +Install.Location.Label=Installation location +Package.Manifest.Label=Package manifest location +StoreLogo.Asset.Dir.Label=Store logo asset directory +Main.StoreLogo.Asset.Label=Main store logo asset +Yes.Button=Yes +No.Button=No +Unknown.Label=Desconocido +Notemain.StoreLogo.Message=NOTE: main store logo asset locations are a guess, and may not be the assets you're looking for. If that happens, report an issue on the GitHub repo using the +StoreLogo.Asset.Label=Store logo asset preview issue +Template.Provide.Message=template. Then, provide the package name, the expected asset and the obtained asset. +CapabilityInfo.Label=Capability information +Task.Supported.Message=This task is not supported on the specified Windows image. Check that it contains Windows 10 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +CapabilityIes.Label=capability/ies: +CapabilityName.Label=Capability name +CapabilityState.Label=Capability state +DownloadSize.Label=Download size +InstallationSize.Label=Installation size +BytesSuffix.Label=bytes +CapabilityInfo.Ready.Label=Complete capability information has been gathered +CapabilityInfo.Missing.Label=Complete capability information has not been gathered +DriverInfo.Label=Driver information +Box.Driver.Label=In-box driver information +WasSaved.Label=was saved +Saved.Label=was not saved +DriverS.Label=driver(s): +PublishedName.Label=Published name +Original.File.Name.Label=Nombre de archivo original +ProviderName.Label=Provider name +ClassName.Label=Class name +ClassDescription=Class description +ClassGUID.Label=Class GUID +Catalog.File.Path.Label=Catalog file path +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Critical to the boot process? +Date.Label=Fecha +SignatureStatus.Label=Signature status +DriverInfo.Ready.Label=Complete driver information has been gathered +DriverInfo.Missing.Label=Complete driver information has not been gathered +DriverPackage.Label=Driver package information +DriverPackageS.Label=driver package(s): +DriverPackage.Driver.Label=Driver package +Value.Label=of +HardwareTargets.Label=hardware target(s): +Hardware.Description=Hardware description +HardwareID.Label=Hardware ID +CompatibleIds.Label=Compatible IDs +ExcludeIds.Label=Exclude IDs +Hardware.Manufacturer.Label=Hardware manufacturer +None.Declared.Label=None declared by the manufacturer +File.Contains.Hardware.Label=This file contains no hardware targets. It could be invalid. +Windows.Label=Windows PE configuration +UnsupportedWin.Message=This task is not supported on the specified Windows image. Check that it is a Windows PE image. Skipping task... +Target.Path.Get.Label=Target path: could not get value +ScratchSpace.Get.Value.Label=Scratch space: could not get value +TargetPath.Label=Target path: +GetValue.Label=could not get value +ScratchSpace.Label=Scratch space: +ServiceInfo.Label=Service Information +Getting.Service.Label=Getting service information... +Service.Default.Label=servicio(s) en el conjunto de control predeterminado: +ServiceName.Label=Nombre del servicio +DisplayName.Column=Nombre para mostrar +StartType.Label=Start Type +ServiceType.Label=Service Type +Overview.Svc.Label=Saving information overview of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Detailed.Svc.Label=Saving detailed information of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Undefined.Label=Undefined +Per.User.Service.Label=Not a per-user service +InfoService.Label=Information for service: {lbrace;}0{rbrace;} +Service.Display.Name.Label=Service Display Name: {lbrace;}0{rbrace;} +Service.Description=Service Description: {lbrace;}0{rbrace;} +ImagePath.Label=Image Path: {lbrace;}0{rbrace;} +ObjectName.Label=Object Name: {lbrace;}0{rbrace;} +StartType.Option0.Label=Start Type: {lbrace;}0{rbrace;} +DelayedStart.Label=Delayed Start? {lbrace;}0{rbrace;} +ServiceType.Option0.Label=Service Type: {lbrace;}0{rbrace;} +Per.User.Flags.Label=Per-user Service Flags: {lbrace;}0{rbrace;} +Group.Label=Group: {lbrace;}0{rbrace;} +WindowsNt.Label=Windows NT® privileges: +PrivilegeName.Label=Privilege Name +Privilege.Display.Name.Label=Privilege Display Name +Privilege.Description=Privilege Description +ErrorControl.Label=Error Control: +ServiceError.Label=On service error: {lbrace;}0{rbrace;} +Failure.Action.First.Label=Failure action on first error: {lbrace;}0{rbrace;} +Failure.Action.Second.Label=Failure action on second error: {lbrace;}0{rbrace;} +Failure.Errors.Label=Failure action on subsequent errors: {lbrace;}0{rbrace;} +ResetErrorCount.Label=Reset error count after the following minutes: {lbrace;}0{rbrace;} minute(s) +Restart.Service.Message=Restart service after the following minutes: {lbrace;}0{rbrace;} minute(s) ({lbrace;}1{rbrace;} seconds) after first failure, {lbrace;}2{rbrace;} minute(s) ({lbrace;}3{rbrace;} seconds) after second failure, {lbrace;}4{rbrace;} minute(s) ({lbrace;}5{rbrace;} seconds) after subsequent failures +Dependencies.Label=Dependencies: +Name.Column=Nombre +Type.Label=Tipo +Dependents.Label=Dependents: +ServicesFound.Label=No services were found. +DISM.Tools.Image.Title=DISMTools Image Information Report +Automatically.Message=This is an automatically generated report created by DISMTools. It can be viewed at any time to check image information. +Report.Contains.Message=This report contains information about the tasks that you wanted to get information about, which are reflected below this message. +Process.Primarily.Message=This process primarily uses the DISM API to get information. If you want to get information of the API operations, this file does not include it. However, you can get that information from the log file stored in the standard location of: +TaskDetails.Label=Task details +ProcessesStarted.Label=Processes started at: +Report.File.Target.Label=Report file target: +Tasks.Get.Complete.Label=Information tasks: get complete image information +Tasks.Get.Image.Label=Information tasks: get image file information +Tasks.Get.Installed.Label=Information tasks: get installed package information +Tasks.Get.Package.Label=Information tasks: get package file information +Tasks.Get.Feature.Label=Information tasks: get feature information +TaskInstalled.Label=Information tasks: get installed AppX package information +Tasks.Get.Capability.Label=Information tasks: get capability information +Tasks.Get.Driver.Label=Information tasks: get installed driver information +Tasks.Get.Label.Label=Information tasks: get driver package information +Tasks.Get.Windows.Label=Information tasks: get Windows PE configuration +Tasks.Get.Services.Label=Information tasks: get services from default control set +WeEnded.Label=We have ended at +NiceDay.Label=. Have a nice day! +Complete.AppX.Label=Complete AppX package information has been gathered +AppxInfo.Ready2.Label=Complete AppX package information has not been gathered + +[ImgMount] +MountImage.Label=Montar una imagen +Options.Required.Label=Especifique las opciones para montar una imagen: +ImageFile.Label=Archivo de imagen*: +ESD.Label=esd +Convert.File.WIM.Label=Necesita convertir este archivo a un archivo WIM para montarlo +Convert.Button=Convertir +SWM.Label=swm +Merge.Swmfiles.Item=Necesita combinar los archivos SWM a un archivo WIM para montarlo +Merge.Item=Combinar +MountDirectory.Label=Directorio de montaje*: +Index.Label=Índice*: +Fields.End.Required.Label=Los campos que terminen en * son necesarios +Source.Group=Origen +Destination.Group=Destino +Options.Group=Opciones +Browse.Button=Examinar... +Cancel.Button=Cancelar +Ok.Button=Aceptar +Index.Column=Índice +ImageName.Column=Nombre de imagen +ImageDescription.Column=Descripción de la imagen +ImageVersion.Column=Versión de la imagen +Mount.Read.CheckBox=Montar con permisos de solo lectura +Optimize.Times.CheckBox=Optimizar tiempos de montaje +Integrity.CheckBox=Comprobar integridad de la imagen +Image.Already.Message=Esta imagen ya está montada, y no puede ser montada de nuevo. Si desea montarla al directorio que deseó, desmonte la imagen de su directorio de montaje original (guardando los cambios si lo prefiere) y abra este diálogo después + +[ImgMount.Actions] +Convert.Button=Convertir +Convert.Image.WIM.Message=Debe convertir esta imagen a un archivo WIM para poder montarla +Merge.Swmfiles.Message=Necesita combinar los archivos SWM a un archivo WIM para montarlo +Swm.Merge.Required.Message=Necesita combinar los archivos SWM a un archivo WIM para montarlo + +[ImgMount.GetIndexes] +Gather.ImageFile.Message=No pudimos obtener información de este archivo de imagen. Razón:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgMount.Validation] +Create.Dir.Reason.Message=No se pudo crear el directorio de montaje. Razón: {0}; {1} +MountImage.Title=Montar una imagen + +[AppxPackages.Add.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Add provisioned AppX packages + +[AppxPackages.Remove.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Remove provisioned AppX packages + +[ImageConversion.WimToEsd] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Drivers.Export] +Class.Name.Message=This class name is not valid. + +[ImageOps.Editions.Set] +DirectoryMissing.Message=Either no directory has been specified or it does not exist. +ProductKey.Message=The product key has been typed incorrectly + +[FFU.Apply.Messages] +Destination.Disk.Message=Make sure that the destination disk is as large or larger than the specified FFU file when mounted. If the destination disk is larger than the FFU's expanded partitions, please extend partitions to their full extent. + +[FFU.Capture.Messages] +Source.Drive.Exist.Label=The specified source drive does not exist. +Source.Drive.Message=The source drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? +Provide.Dest.Path.Label=Please provide a destination path for the FFU file. +Provide.Name.Dest.Label=Please provide a name for the destination FFU file. + +[FFU.Optimize.Messages] +Path.Image.Required.Message=Please specify the path of the image you want to optimize and try again. Also, make sure that that path exists. + +[ImageConversion.SwmToWim] +Get.Index.Image.Label=Could not get index information for this image file + +[ImgSplit] +SplitImages.Label=Dividir imágenes +Image.Task.Header.Label={0} +Source.Image.Label=Imagen de origen a dividir: +Name.Path.Destination.Label=Nombre y ruta de la imagen dividida de destino: +Maximum.Size.Images.Label=Tamaño máximo de imágenes divididas (en MB): +LargeFile.Note.Message=Para acomodar un archivo grande de la imagen, una imagen dividida puede ocupar más tamaño del especificado +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar +Integrity.CheckBox=Comprobar integridad de la imagen +Source.WIM.File.Title=Especifique el archivo WIM de origen a dividir: +Target.Location.Title=Especifique la ubicación de destino de las imágenes divididas: + +[ImgSplit.Validation] +Name.Required.Message=Especifique un nombre y un directorio para el archivo SWM de destino e inténtelo de nuevo. Asegúrese también de que el directorio de destino exista. +Source.WIM.Required.Message=Especifique un archivo WIM de origen e inténtelo de nuevo. Asegúrese también de que el archivo exista. + +[Img.Swm] +MergeSwmfiles.Label=Combinar archivos SWM +Image.Task.Header.Label={0} +SourceSwmfile.Label=Archivo SWM de origen: +Notewhen.Specifying.Message=NOTA: al especificar el archivo SWM, escoja el primer archivo. DISMTools se encargará de los archivos SWM adicionales en ese directorio. +Destination.WIM.File.Label=Archivo WIM de destino: +Index.Label=Índice: +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar +LearnHow.Link=Aprenda cómo hacerlo +Index.Column=Índice +ImageName.Column=Nombre de imagen +ImageDescription.Column=Descripción de imagen +ImageVersion.Column=Versión de imagen +Source.Swmfile.Title=Especifique el archivo SWM de origen a combinar +Dest.WIM.File.Title=Especifique el archivo WIM de destino al que combinar los archivos SWM + +[ImgUMount] +UnmountImage.Label=Desmontar una imagen +Options.Required.Label=Especifique las opciones para desmontar esta imagen: +Dir.Label=El directorio de montaje: +MountDirectory.Label=Directorio de montaje: +UnmountOperation.Label=Operación de desmontaje: +Integrity.CheckBox=Comprobar integridad de la imagen +Append.Changes.CheckBox=Anexar los cambios en otro índice +Pick.Button=Escoger... +Ok.Button=Aceptar +Cancel.Button=Cancelar +Dir.Required.Description=Especifique un directorio de montaje: +LoadedProject.RadioButton=está cargado en el proyecto +LocatedSomewhere.RadioButton=se ubica en otro lugar +Save.Changes.Unmount.Item=Guardar cambios y desmontar +Discard.Changes.Unmount.Item=Descartar cambios y desmontar +MountDirectory.Group=Directorio de montaje +Additional.Options.Group=Opciones adicionales + +[ImgUMount.Validation] +Dir.Invalid.Message=El directorio especificado no es un directorio de montaje válido. +Dir.Missing.Message=El directorio de montaje no existe. + +[Img.WIM] +ConvertImage.Label=Convertir imagen +Image.Task.Header.Label={0} +SourceImageFile.Label=Archivo de imagen de origen: +Format.Converted.Image.Label=Formato de imagen convertida: +Destination.ImageFile.Label=Archivo de imagen de destino: +Index.Label=Índice: +Format.Ichoose.Link=¿Qué formato escojo? +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar +Index.Column=Índice +ImageName.Column=Nombre de imagen +ImageDescription.Column=Descripción de imagen +ImageVersion.Column=Versión de imagen +Source.Group=Origen +Options.Group=Opciones +Destination.Group=Destino +Source.ImageFile.Title=Especifique el archivo de imagen de origen que desea convertir +Target.Image.Stored.Title=¿Dónde se almacenará el archivo de imagen de destino? + +[Img.Win] +Service.Windows.Message=El programa no puede ofrecer servicio a imágenes de Windows Vista +Unsupported.Message=Ni este programa ni DISM soportan ofrecer servicio a imágenes de Windows Vista. DISM puede ofrecer servicio a imágenes de Windows 7 o posterior. Aún puede montar imágenes de Windows Vista, pero todas las opciones serán deshabilitadas.{crlf;}{crlf;}Si todavía desea ofrecer servicio a una imagen de Windows Vista, véase el tópico {quot;}Compatibilidad con versiones antiguas de Windows{quot;} en la documentación de ayuda.{crlf;}{crlf;}¿Desea continuar? +Yes.Button=Sí +No.Button=No + +[ImportDrivers] +Title.Label=Importar controladores +Process.Third.Message=Este proceso importará todos los controladores de terceros del origen que especifique a esta imagen o instalación. Esto asegura que la imagen de destino tenga la misma compatibilidad de hardware de la imagen de origen +ImportSource.Label=Origen de importación: +Source.Doesn.Tany.Label=Este origen no tiene opciones adicionales disponibles. +Source.Listed.Choose.Label=Escoja un origen mostrado arriba para configurar sus opciones. +Windows.Label=Imagen de Windows de la que importar controladores: +Tuse.Target.Label=No puede utilizar el destino de importación como el origen de importación +Offline.Drivers.Label=Instalación fuera de línea de la que importar controladores: +ImageFile.Label=Archivo de imagen: +Pick.Button=Escoger... +Refresh.Button=Actualizar +Ok.Button=Aceptar +Cancel.Button=Cancelar +DriveLetter.Column=Letra de disco +DriveLabel.Column=Etiqueta de disco +DriveType.Column=Tipo de disco +TotalSize.Column=Tamaño total +Available.Free.Space.Column=Espacio libre +DriveFormat.Column=Formato del disco +ContainsWindows.Column=¿Contiene Windows? +Windows.Column=Versión de Windows +Windows.Item=Imagen de Windows +Online.Install.Item=Instalación en línea +Offline.Install.Item=Instalación fuera de línea + +[IncompleteSetup] +SetupIncomplete.Message=No ha terminado de configurar el programa, y sus preferencias no serán guardadas. Si continúa, el programa utilizará configuraciones predeterminadas.{crlf;}{crlf;}¿Desea continuar? +Yes.Button=Sí +No.Button=No + +[InfoSaveResults] +Image.Report.Label=Resultados del informe de información de la imagen +ReportSaved.Message=El informe ha sido guardado en la ubicación que especificó, y sus contenidos serán mostrados abajo. +SaveReport.Button=Guardar informe... + +[InfoSaveResults.Actions] +Ok.Button=Aceptar + +[Settings.Dialog] +Detected.Label=Se han detectado configuraciones inválidas +Reset.Default.Message=Las configuraciones inválidas han sido restablecidas a sus valores predeterminados. Compruebe los campos de abajo para más información: +Ok.Button=Aceptar +Dismexecutable.Exist.Item=El ejecutable de DISM especificado no existe: {crlf;}{quot;}{0}{quot;} +DISM.Executable.Label=La configuración del ejecutable de DISM parece estar bien +Log.Font.Exist.Item=La fuente del registro especificada no existe en este sistema: {crlf;}{quot;}{0}{quot;} +Log.Font.Setting.Label=La configuración de la fuente de registro parece estar bien +Log.File.Exist.Item=El archivo de registro especificado no existe: {crlf;}{quot;}{0}{quot;} +Log.File.Setting.Label=La configuración del archivo de registro parece estar bien +Scratch.Dir.Exist.Item=El directorio temporal especificado no existe: {crlf;}{quot;}{0}{quot;} +Scratch.Dir.Set.Label=La configuración del directorio temporal parece estar bien + +[InvalidSettings] +Found.Label=El programa ha detectado configuraciones inválidas + +[MUMAdditionDialog] +Add.Update.Manifest.Label=Añadir manifiesto de actualización +DialogHelp.Message=Este diálogo le permite añadir un archivo de manifiesto de actualización de Microsoft (MUM) a la imagen de destino. Solo puede especificar uno a la vez.{crlf;}{crlf;} +Note.Advanced.Only.Message=Dese cuenta de que esto es solo para usos avanzados y que podría dañar la imagen de Windows de destino. +Path.Manifest.File.Label=Ubicación del archivo de manifesto a añadir: +Browse.Button=Examinar... +Cancel.Button=Cancelar +Ok.Button=Aceptar + +[Main] +Props.Label=Propiedades +ProjProps.Label=Propiedades +Getting.Package.Names.Label=Obteniendo nombres de paquetes... +Getting.Feature.Names.Label=Obteniendo nombres de características y sus estados... +Wait.Label=Obteniendo nombres de paquetes... +Get.Cap.Names.Label=Obteniendo nombres de funcionalidades y sus estados... +Loading.DriverPackages.Label=Obteniendo paquetes de controladores instalados... + +[Main.ADKCopierBW.Background] +ToolsCopied.Label=Las herramientas de implementación fueron copiadas al proyecto satisfactoriamente +Deployment.Tools.Aren.Item=Las herramientas de implementación no están presentes en este sistema +Deployment.Tools.Copied.Item=Las herramientas de implementación no pudieron ser copiadas + +[Main.ADKCopy] +Prepare.Deploy.Tools.Label=Preparándonos para copiar las herramientas de implementación...{0} +Architecture.Label=(arquitectura {0} de 4) +Copying.Deployment.Label=Copiando herramientas de implementación para la arquitectura ({0}, {1}%{2})... +Progress.Architecture.Label=, arquitectura {0} de 4 + +[Main.Actions] +UnsupportedImage.Message=Esta acción no está soportada en esta imagen + +[Main.BgProcesses] +ImageCompleted.Label=Los procesos de la imagen han completado + +[Main.ChangeImgStatus] +No.Button=No +Yes.Button=Sí + +[Main.CheckForUpdates] +CheckingUpdates.Link=Comprobando actualizaciones... +NewVersion.Available.Link=Hay una nueva versión disponible para su descarga e instalación. Haga clic aquí para saber más +Learn.Link=Haga clic aquí para saber más + +[Main.CommandLineHelp] +Pass.Arguments.Message=You can pass command line arguments like this:{crlf;}{crlf;} DISMTools.exe {crlf;}{crlf;}The command line arguments that are available to you are the following:{crlf;}{crlf;} /setup{crlf;} Shows the initial setup wizard and reconfigures the program{crlf;} /load={crlf;} Loads a project file. You need to provide an absolute path for a project file, like this:{crlf;} DISMTools.exe /load={quot;}C:\foo\bar.dtproj{quot;}{crlf;} /online{crlf;} Enters the online installation management mode{crlf;} /offline:{crlf;} Enters the offline installation management mode. You need to provide a drive, like this:{crlf;} DISMTools.exe /offline:E:\{crlf;} /migrate{crlf;} Forces setting migration. While you can use this parameter, it should be used by the update system{crlf;} /nomig{crlf;} Skips setting migration. This parameter speeds up testing{crlf;} /noupd{crlf;} Disables update checks. Don't use this parameter unless you're testing a change{crlf;} /exp{crlf;} Enables program experiments if there are any{crlf;}{crlf;}DISMTools will continue starting up after you close this help message. +DISM.Tools.Title=DISMTools command line arguments + +[Main.CopyAsset] +Copied.Clipboard.Label=El recurso ha sido copiado al portapapeles +CopySuccessful.Title=Copia satisfactoria + +[Main.ComputerInfo] +Build.Label=compilación +SystemMemory.Label=de memoria de sistema +UsedOut.Label=usados de +Part.Domain.Label=No es parte de un dominio +PartDomain.Label=Es parte de un dominio +Backup.Domain.Label=Controlador de dominio secundario +Primary.Domain.Label=Controlador de dominio primario +ConnectedNetwork.Label=No conectado a una red +Manual.Label=Manual +Automatic.Assigned.Label=Automática (asignada por DHCP) + +[Main.EndOfflineMgmt] +Bg.Procs.Still.Message=Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos? +Cancelling.Bg.Procs.Button=Espere mientras cancelamos los procesos en segundo plano... + +[Main.EndOffline] +Ready.Item=Listo +Yes.Button=Sí + +[Main.EndOnlineMgmt] +Bg.Procs.Still.Message=Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos? +Cancelling.Bg.Procs.Button=Espere mientras cancelamos los procesos en segundo plano... + +[Main.EndOnline] +Ready.Item=Listo +Yes.Button=Sí + +[Main.GetArguments] +Project.Message=No se pudo abrir el proyecto porque este archivo no existe:{crlf;}{crlf;}{0}{crlf;}{crlf;}Si el proyecto se movió, abra su archivo .dtproj desde la nueva ubicación. Si aún no se ha creado, vuelva a crear el proyecto y elija una carpeta en la que tenga permiso de escritura. + +[Main.ExternalTools] +Error.Title=Error al iniciar la herramienta +NotFound.Message=No se pudo iniciar {0} porque no se encontró su archivo ejecutable:{crlf;}{crlf;}{1}{crlf;}{crlf;}Repare o reinstale DISMTools y vuelva a intentarlo. +StartFailed.Message=No se pudo iniciar {0}.{crlf;}{crlf;}Motivo: {1}{crlf;}{crlf;}Repare o reinstale DISMTools si el problema persiste. + +[Main.ReportManager] +Error.Title=Administrador de informes +ProjectRequired.Message=Primero cargue o cree un proyecto de DISMTools. Los informes del proyecto se guardan en la carpeta reports dentro del proyecto. +OpenFailed.Message=No se pudo abrir la carpeta de informes del proyecto:{crlf;}{crlf;}{0}{crlf;}{crlf;}Motivo: {1} + +[Main.SaveProjectAs] +Save.Button=Guardar +Unavailable.Message=Guardar proyecto como no está disponible porque no hay ningún proyecto normal de DISMTools cargado. Abra o cree primero un proyecto. +InvalidDestination.Message=Elija otro nombre de proyecto o ubicación. Un proyecto no se puede guardar dentro de sí mismo. +DestinationExists.Message=La carpeta de destino del proyecto no está vacía:{crlf;}{crlf;}{0}{crlf;}{crlf;}Elija otro nombre o ubicación. +OpenCopyFailed.Message=La copia del proyecto se creó, pero DISMTools no pudo abrirla:{crlf;}{crlf;}{0} +Error.Message=No se pudo guardar el proyecto como una copia.{crlf;}{crlf;}Destino:{crlf;}{0}{crlf;}{crlf;}Motivo:{crlf;}{1} +Error.Title=Guardar proyecto como + +[Main.Get.Basic] +Online.Install.Label=(Instalación activa) +Offline.Install.Item=(Instalación fuera de línea) +Offline.Install.Label=(Instalación fuera de línea) + +[Main.GetCapabilities] +Cap.Names.Their.Label=Obteniendo nombres de funcionalidades y sus estados... + +[Main.GetCapabilities.Actions] +UnsupportedImage.Message=Esta acción no está soportada en esta imagen + +[Main.GetDrivers] +Loading.DriverPackages.Label=Obteniendo paquetes de controladores instalados... + +[Main.GetFeatures] +Getting.Feature.Names.Label=Obteniendo nombres de características y sus estados... + +[Main.Get.OS] +Days.Go.Back.Message=Tiene {0} días para volver a la versión anterior de Windows.{crlf;}{crlf;}Para aumentar o reducir este margen de desinstalación, vaya a Comandos > Desinstalación del sistema operativo > Establecer margen de desinstalación...{crlf;}Para iniciar la desinstalación, vaya a Comandos > Desinstalación del sistema operativo > Iniciar desinstalación...{crlf;}Para eliminar la habilidad de revertir a la versión anterior, vaya a Comandos > Desinstalación del sistema operativo > Eliminar habilidad de desinstalación... + +[Main.OSUninstallWindow] +OnlineOnly.Message=Esta acción solo está soportada en instalaciones activas + +[Main.GetPackages] +Getting.Package.Names.Label=Obteniendo nombres de paquetes... + +[Main.GetProvAppx] +Getting.Package.Names.Label=Obteniendo nombres de paquetes... + +[Main.ProvAppx] +UnsupportedImage.Message=Esta acción no está soportada en esta imagen + +[Main.GetTargetEditions] +CurrentEdition.Message=La edición actual es {quot;}{0}{quot;}{crlf;} +ProductKey.Upgrade.Message=Si cuenta con una clave de producto, podrá actualizar esta imagen de Windows a una edición superior. +Windows.Message=Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores. +Suitable.ProductKey.Message=Si cuenta con una clave de producto apropiada, puede actualizar esta imagen de Windows a una de las siguientes ediciones:{crlf;}{crlf;} +Image.Cannot.Message=Esta imagen no puede ser actualizada a ediciones superiores porque ya tiene la edición más avanzada + +[Main.HideChildDescs] +Ready.Label=Listo +Cancelling.Bg.Procs.Item=Espere mientras cancelamos los procesos en segundo plano... + +[Main.HideParentDesc] +Ready.Label=Listo +Cancelling.Bg.Procs.Item=Espere mientras cancelamos los procesos en segundo plano... + +[Main.InitDynaLog] +Beware.Custom.Themes.Title=Cuidado con temas personalizados +DISM.Tools.Detected.Message=DISMTools ha detectado que se ha establecido un tema personalizado en este sistema. Algunos temas de terceros hacen que el programa tenga errores visuales, así que se recomienda que cambie al tema predeterminado. + +[Main.StartOSUninstall] +ReadCarefully.Message={0}, lea este mensaje antes de proceder.{crlf;}{crlf;}Si ha instalado programas tras la actualización, este proceso podría eliminarlos. Asegúrese de hacer una copia de seguridad de sus configuraciones en el caso de que deba reinstalarlos después. También, haga una copia de seguridad de sus archivos en el caso de que se vean afectados por este proceso.{crlf;}{crlf;}Después, si ha establecido una contraseña, asegúrese de recordarla para ser capaz de iniciar sesión.{crlf;}{crlf;}Finalmente, gracias por probar esta versión de Windows.{crlf;}{crlf;}¿Desea iniciar el proceso de desinstalación? + +[Main.OSUninstall] +OnlineOnly.Message=Esta acción solo está soportada en instalaciones activas + +[Main.Interface] +File.Label=&Archivo +Project.Label=&Proyecto +Commands.Label=Co&mandos +Tools.Label=Her&ramientas +Help.Label=Ay&uda +Settings.Detected.Label=Se han detectado configuraciones inválidas +NewProject.Button=&Nuevo proyecto... +Open.Existing.Project.Label=&Abrir proyecto existente +Manage.Online.Install.Label=Administrar &instalación activa +Manage.Ffline.Button=Administrar instalación &fuera de línea... +RecentProjects.Label=Proyectos recientes +SaveProject.Button=&Guardar proyecto... +SaveProjectas.Button=Guardar proyecto &como... +Exit.Label=Sa&lir +View.Project.Files.Label=Ver archivos del proyecto en el Explorador de archivos +UnloadProject.Button=Descargar proyecto... +Switch.Image.Indexes.Button=Cambiar índices de imagen... +ProjectProps.Label=Propiedades del proyecto +ImageProps.Label=Propiedades de la imagen +ImageManagement.Label=Administración de la imagen +OSPackages.Label=Paquetes del sistema operativo +ProvPackages.Label=Paquetes de aprovisionamiento +AppxPackages.Label=Paquetes AppX +AppMspservicing.Label=Servicio de aplicaciones (MSP) +DefaultApp.Assoc.Label=Asociaciones predeterminadas de aplicaciones +Languages.Regional.Label=Configuración de idiomas y regiones +Capabilities.Label=Funcionalidades +Windows.Label=Ediciones de Windows +Drivers.Label=Controladores +Unattended.Answer.Label=Archivos de respuesta desatendida +WindowsPE.Label=Servicio de Windows PE +OSUninstall.Label=Desinstalación del sistema operativo +ReservedStorage.Label=Almacenamiento reservado +Append.Capture.Dir.Button=Anexar directorio de captura a imagen... +ApplyFfusfufile.Button=Aplicar archivo FFU o SFU... +ApplyWimswmfile.Button=Aplicar archivo WIM o SWM... +Capture.Incremental.Button=Capturar cambios incrementales a un archivo... +Capture.Partitions.Button=Capturar particiones a un archivo FFU... +Capture.Image.Drive.Button=Capturar imagen de un disco a un archivo WIM... +Delete.Resources.Button=Eliminar recursos de una imagen corrupta... +Apply.Changes.Image.Button=Aplicar cambios a la imagen... +Delete.VolumeImages.Button=Eliminar imágenes de volumen de un archivo WIM... +ExportImage.Button=Exportar imagen... +Get.Image.Button=Obtener información de imagen... +Get.WIM.Boot.Button=Obtener entradas de configuración WIMBoot... +List.Files.Dirs.Button=Enumerar archivos y directorios de un archivo WIM... +MountImage.Button=Montar imagen... +Optimize.FFU.File.Button=Optimizar archivo FFU... +OptimizeImage.Button=Optimizar imagen... +Remount.Image.Button=Remontar imagen para su servicio... +Split.FFU.File.Button=Dividir archivo FFU en archivos SFU... +Split.WIM.File.Button=Dividir archivo WIM en archivos SWM... +UnmountImage.Button=Desmontar imagen... +Update.WIM.Boot.Button=Actualizar entradas de configuración WIMBoot... +Apply.Siloed.Prov.Button=Aplicar paquete de aprovisionamiento en silos... +Save.Image.Button=Guardar información de la imagen... +GetPackages.Button=Obtener información de paquetes... +AddPackage.Button=Añadir paquete... +RemovePackage.Button=Eliminar paquete... +GetFeatures.Button=Obtener información de características... +EnableFeature.Button=Habilitar característica... +DisableFeature.Button=Deshabilitar característica... +CleanupRecovery.Button=Realizar operaciones de limpieza o recuperación... +Add.Prov.Package.Button=Añadir paquete de aprovisionamiento... +Get.Prov.Package.Button=Obtener información de paquete de aprovisionamiento... +Apply.CustomData.Button=Aplicar imagen de datos personalizada... +Get.App.Package.Button=Obtener información de paquete AppX... +Add.Provisioned.App.Button=Añadir paquete AppX aprovisionada... +Remove.Prov.App.Button=Eliminar aprovisionamiento para un paquete AppX... +Optimize.Provisioned.Button=Optimizar paquete de aprovisionamiento... +Add.CustomData.File.Button=Añadir archivo de datos personalizado en paquete AppX... +Get.App.Patch.Button=Obtener información de parche de aplicación... +Detailed.App.Patch.Button=Obtener información detallada de parches de aplicación instalados... +Basic.Installed.App.Button=Obtener información básica de parches de aplicación instalados... +Get.Detailed.Button=Obtener información detallada de aplicaciones de Windows Installer (*.msi)... +Get.Basic.Windows.Button=Obtener información básica de aplicaciones de Windows Installer (*.msi)... +Export.Default.Button=Exportar asociaciones de aplicaciones predeterminadas... +DefaultApp.Assoc.Button=Obtener información de asociaciones de aplicaciones predeterminadas... +Import.Default.Button=Importar asociaciones de aplicaciones predeterminadas... +Remove.Default.Button=Eliminar asociaciones de aplicaciones predeterminadas... +Intl.Settings.Button=Obtener configuraciones e idiomas internacionales... +SetUilanguage.Button=Establecer idioma de la interfaz de usuario... +Set.Default.Button=Establecer idioma de reserva predeterminado de la interfaz de usuario... +Set.System.Preferred.Button=Estabñecer idioma de la interfaz de usuario preferido para el sistema... +Set.System.Locale.Button=Establecer zona del sistema... +Set.User.Locale.Button=Establecer zona del usuario... +Set.Input.Locale.Button=Establecer zona de entrada... +Set.UI.Button=Establecer idioma de la interfaz de usuario y zonas... +Set.Default.Time.Button=Establecer zona horaria predeterminada... +Set.Default.Languages.Button=Establecer lenguajes y zonas predeterminadas... +Set.Layered.Driver.Button=Establecer controlador en capas... +Generate.Lang.Ini.Button=Generar archivo Lang.ini... +Set.Default.Setup.Button=Establecer idioma predeterminado del programa de instalación... +AddCapability.Button=Añadir funcionalidad... +Export.Capabilities.Button=Exportar funcionalidades en un repositorio... +GetCapabilities.Button=Obtener información de funcionalidades... +RemoveCapability.Button=Eliminar funcionalidad... +Get.Edition.Button=Obtener edición actual... +Get.Upgrade.Targets.Button=Obtener destinos de actualización... +UpgradeImage.Button=Actualizar imagen... +SetProductKey.Button=Establecer clave de producto... +GetDrivers.Button=Obtener información de controladores... +AddDriver.Button=Añadir controlador... +RemoveDriver.Button=Eliminar controlador... +Export.DriverPackages.Button=Exportar paquetes de controlador... +Import.DriverPackages.Button=Importar paquetes de controlador... +Apply.Unattended.Button=Aplicar archivo de respuesta desatendida... +GetSettings.Button=Obtener configuración... +SetScratchSpace.Button=Establecer espacio temporal... +Set.Target.Path.Button=Establecer ruta de destino... +Get.Uninstall.Window.Button=Obtener margen de desinstalación... +Initiate.Uninstall.Button=Iniciar desinstalación... +Remove.Roll.Back.Button=Eliminar habilidad de desinstalación... +Set.Uninstall.Window.Button=Establecer margen de desinstalación... +Set.Reserved.Storage.Button=Establecer estado de almacenamiento reservado... +Get.Reserved.Storage.Button=Obtener estado de almacenamiento reservado... +AddEdge.Button=Añadir Edge... +Add.Edge.Browser.Button=Añadir navegador Edge... +Add.Edge.Web.Button=Añadir Edge WebView... +ImageConversion.Label=Conversión de imágenes +MergeSwmfiles.Button=Combinar archivos SWM... +Remount.Image.Write.Label=Remontar imagen con permisos de escritura +CommandConsole.Label=Consola de comandos +Unattended.AnswerFile.Label=Administrador de archivos de respuesta desatendida +Unattended.Creator.Label=Creador de archivos de respuesta desatendida +Manage.Image.Registry.Button=Administrar subárboles del registro de la imagen... +WebResources.Label=Recursos web +Download.Languages.Button=Descargar archivos ISO de idiomas y características opcionales... +Download.FOD.Button=Descargar discos de idiomas y características opcionales para Windows 10... +ReportManager.Label=Administrador de informes +Mounted.Image.Manager.Label=Administrador de imágenes montadas +Create.Disc.Image.Button=Crear imagen de disco... +Create.Testing.Button=Crear un entorno de pruebas... +Config.List.Editor.Label=Editor de lista de configuraciones +Options.Label=Opciones +HelpTopics.Label=Ver la ayuda +DISM.Tools.Label=Acerca de DISMTools +MoreInfo.Label=Más información +WhatsThis.Label=¿Qué es esto? +Report.Feedback.Opens.Label=Enviar comentarios (se abre en navegador web) +Contribute.Help.System.Label=Contribuir al sistema de ayuda +TourActions.Label=Acciones del tour +Tour.Server.Active.Label=El servidor del tour está activo en el puerto {0} +RestartTour.Label=Reiniciar tour +Stop.Tour.Server.Label=Detener servidor del tour +Begin.Label=Comenzar +NewProject.Link=Nuevo proyecto... +Open.Existing.Project.Link=Abrir proyecto existente... +Manage.Online.Install.Link=Administrar instalación activa +Manage.Offline.Button.Button=Administrar instalación fuera de línea... +RemoveEntry.Link=Eliminar entrada +CloseTab.Label=Cerrar pestaña +SaveProject.Label=Guardar proyecto +UnloadProject.Label=Descargar proyecto +Unload.Project.Tooltip=Descargar proyecto de este programa +Show.Progress.Window.Label=Mostrar ventana de progreso +RefreshView.Label=Actualizar vista +Expand.Label=Expandir +NewVersion.Available.Link=Hay una nueva versión disponible para su descarga e instalación. Haga clic aquí para saber más +Get.Basic.Label=Obtener información básica (todos los paquetes) +Get.Detailed.Specific.Label=Obtener información detallada (paquete específico) +CommitImage.Label=Guardar cambios y desmontar imagen +Discard.Changes.Label=Descartar cambios y desmontar imagen +UnmountSettings.Button=Configuración de desmontaje... +View.Package.Dir.Label=Ver directorio del paquete +Get.ImageFile.Button=Obtener información del archivo de imagen... +Save.Complete.Image.Button=Guardar información completa de la imagen... +Create.Disc.ImageFile.Button=Crear archivo de disco con este archivo... +Project.File.Load.Title=Especifique el archivo de proyecto a cargar +MountDir.Description=Especifique el directorio de montaje que desea cargar en este proyecto: +Image.Processes.Label=Los procesos de la imagen han completado +Ready.Label=Listo +AccessDirectory.Label=Acceder directorio +Copy.Deployment.Tools.Label=Copiar herramientas de implementación +AllArchitectures.Label=De todas las arquitecturas +Selected.Architecture.Label=De la arquitectura seleccionada +Xarchitecture.Label=Para arquitectura x86 +Amarkdown.Architecture.Label=Para arquitectura AMD64 +ARM.Label=Para arquitectura ARM +ARM64.Label=Para arquitectura ARM64 +ImageOperations.Label=Operaciones de la imagen +Remove.VolumeImages.Button=Eliminar imágenes de volumen... +Manage.Label=Administrar +Create.Label=Crear +Configure.Scratch.Dir.Label=Configurar directorio temporal +ManageReports.Label=Administrar informes +Add.Button=Añadir +NewFile.Button=Nuevo archivo... +ExistingFile.Button=Archivo existente... +SaveResource.Button=Guardar recurso... +CopyResource.Label=Copiar recurso +Visit.Microsoft.Apps.Label=Visitar el sitio web de Aplicaciones de Microsoft +Visit.Microsoft.Label=Visitar el sitio web del proyecto de generación de Microsoft Store +Iget.Apps.Label=¿Cómo puedo obtener aplicaciones? +Welcome.Servicing.Label=Le damos la bienvenida a esta sesión de servicio +Project.Link=PROYECTO +Image.Link=IMAGEN +Name.Label=Nombre: +Location.Label=Ubicación: +ImagesMounted.Label=¿Hay imágenes montadas? +Mount.Image.Link=Haga clic aquí para montar una imagen +ProjectTasks.Label=Tareas del proyecto +View.Project.Props.Link=Ver propiedades del proyecto +Open.File.Explorer.Link=Abrir en el Explorador de Archivos +UnloadProject.Link=Descargar proyecto +ImageMounted.Label=No se ha montado una imagen +Mount.Image.Order.Label=Debe montar una imagen para poder ver su información +Choices.Label=Elecciones +MountImage.Link=Montar una imagen... +Pick.Mounted.Image.Link=Escoger una imagen montada... +ImageIndex.Label=Índice de la imagen: +MountPoint.Label=Punto de montaje: +Version.Label=Versión: +Description.Label=Descripción: +ImageTasks.Label=Tareas de la imagen +View.Image.Props.Link=Ver propiedades de la imagen +UnmountImage.Link=Desmontar imagen +ImageOperations.Group=Operaciones de la imagen +Commit.Changes.Button=Guardar cambios actuales +CommitImage.Button=Guardar cambios y desmontar imagen +Unmount.Image.Button=Desmontar imagen descartando cambios +Reload.Servicing.Button=Recargar sesión de servicio +ApplyImage.Button=Aplicar imagen... +CaptureImage.Button=Capturar imagen... +Package.Operations.Group=Operaciones de paquetes +Get.Package.Button=Obtener información de paquetes... +Save.Installed.Button=Guardar información de paquetes instalados... +Component.Store.Maint.Button=Realizar mantenimiento y limpieza del almacén de componentes... +Feature.Operations.Group=Operaciones de características +Get.Feature.Button=Obtener información de características... +Save.Feature.Button=Guardar información de características... +AppX.Package.Operations=Operaciones de paquetes AppX +Add.AppX.Package.Button=Añadir paquete AppX... +Get.App.Button=Obtener información de aplicaciones... +Save.Installed.AppX.Button=Guardar información de paquetes AppX instalados... +Remove.AppX.Package.Button=Eliminar paquete AppX... +Capability.Operations.Group=Operaciones de funcionalidades +Get.Capability.Button=Obtener información de funcionalidades... +Save.Capability.Button=Guardar información de funcionalidades... +DriverOperations.Group=Operaciones de controladores +AddDriverPackage.Button=Añadir controlador... +Get.Driver.Button=Obtener información de controladores... +Save.Installed.Driver.Button=Guardar información de controladores instalados... +Windows.Group=Operaciones de Windows PE +GetConfig.Button=Obtener configuración +SaveConfig.Button=Guardar configuración... +Yes.Button=Sí +No.Button=No +Offline.Management.Button=Sí +Rename.Link=Cambiar nombre +DomainMembership.Label=Membresía de dominio: +WorkgroupDomain.Label=Grupo de trabajo/dominio: +IP.Address.Config.Label=Configuración de dirección IP: +Explore.Get.Started.Label=Explore y comience +Stay.Up.Date.Label=Manténgase informado +FactDay.Label=Dato del día +Learn.Snew.Link=Aprenda qué hay de nuevo en esta versión +Get.Started.DISM.Link=Comience con DISMTools y con el servicio de imágenes +Manage.Install.Link=Administre su instalación actual +Manage.External.Link=Administre instalaciones externas +Learn.Watching.Videos.Label=Aprenda viendo vídeos (en inglés) +Video.Content.Loaded.Label=No se han podido cargar los vídeos. +News.Feed.Loaded.Label=No se han podido cargar las noticias. +LearnMore.Link=Saber más +Retry.Button=Reintentar + +[Main.Links] +Props.Label=Propiedades +ProjProps.Label=Propiedades + +[Main.Messages] +IE.Emulation.Changed.Message=Modified Internet Explorer emulation settings for DISMTools. You will need to restart DISMTools in order to start video playback +DISM.Tools.Modify.Message=DISMTools could not modify Internet Explorer emulation settings. Video playback will not start. +Items.Present.None.Label=No items are present in the Recents list. +Incompatible.Win7.Message=Este programa no es compatible con Windows 7 ni con Server 2008 R2.{crlf;}Este programa usa la API de DISM, que requiere archivos del Kit de evaluación e implementación (ADK). Sin embargo, no se incluye compatibilidad con Windows 7.{crlf;}{crlf;}El programa se cerrará. +Requires.NET.Message=Este programa requiere .NET Framework 4.8 para funcionar.{crlf;}Puede descargarlo desde: dotnet.microsoft.com. Instale el framework y vuelva a ejecutar el programa. Puede que tenga que reiniciar el sistema.{crlf;}{crlf;}El programa se cerrará. +Run.Admin.Message=Este programa debe ejecutarse como administrador.{crlf;}Hay ciertas configuraciones de software en las que Windows ejecutará este programa sin privilegios de administrador, por lo que debe solicitarlos manualmente.{crlf;}{crlf;}Haga clic con el botón derecho en el ejecutable y seleccione {quot;}Ejecutar como administrador{quot;} +DISM.Tools.Detected.Message=DISMTools ha detectado una configuración de escalado de pantalla alta. Esto puede hacer que el programa se vea incorrectamente.{crlf;}{crlf;}Recomendamos reducir el escalado al 125% (120 DPI) o menos, salvo que tenga una pantalla pequeña configurada con una resolución alta. +Higher.Display.Scaling.Title=Se detectó una configuración de escalado alta +DISM.Tools.Found.Message=DISMTools ha encontrado un posible Kit de evaluación e implementación instalado en el sistema. Sin embargo, no se detecta. ¿Desea corregirlo? +Possible.ADK.Title=Posible ADK instalado en el sistema +SafeMode.Prompt=Este equipo ha arrancado en modo seguro. Este modo está diseñado para la recuperación en vivo del sistema operativo.{crlf;}{crlf;}DISMTools puede cargar automáticamente el modo de administración de instalación en línea para que pueda empezar a intentar reparaciones.{crlf;}{crlf;}¿Desea cargar el modo de administración de instalación en línea? +Windows.Title=Windows está en modo seguro +Tour.Prompt=¿Es la primera vez que usa DISMTools? Si es así, podemos ayudarle a empezar con el Tour.{crlf;}{crlf;}Con el Tour puede crear su primera imagen de Windows y probarla después. Puede seguirlo al ritmo que prefiera y acceder a él en cualquier momento desde el menú Ayuda.{crlf;}{crlf;}¿Desea iniciar el Tour ahora? +Getting.Started.DISM.Title=Primeros pasos con DISMTools +DISM.Tools.Running.Message=DISMTools ha detectado que se está ejecutando en un sistema Windows Server Core. Algunas funciones podrían no comportarse como se espera. +ServerCore.Title=Windows Server Core detectado +Project.DISM.Tools.Label=El proyecto especificado no es un proyecto de DISMTools. +DownloadFailed.Label=No se pudo descargar la instalación de WIM Explorer. Motivo:{crlf;}{0} +PrepareFailed.Label=No se pudo preparar la instalación de WIM Explorer. Motivo:{crlf;}{0} +AnswerFile.Removed.Label=Archivo de respuesta eliminado correctamente. +BackgroundBusy.Message=Los procesos en segundo plano deben finalizar antes de cargar el administrador de servicios. +Background.Finish.Message=Los procesos en segundo plano deben finalizar antes de cargar el administrador de variables de entorno. +Secure.Boot.Enabled.Label=Secure Boot no está habilitado en este equipo. +Secure.Boot.Status.Title=Estado de Secure Boot +Secure.Boot=Secure Boot está habilitado en este equipo, pero no contiene Windows UEFI CA 2023 en su base de datos. Asegúrese de que el equipo reciba las actualizaciones de Secure Boot antes de que expiren los certificados Microsoft Windows Production PCA 2011 en junio de 2026. +Update.Secure.Boot.Message=Hay una actualización de Secure Boot en curso para admitir Windows UEFI CA 2023. +Secure.Enabled=Secure Boot está habilitado en este equipo y contiene Windows UEFI CA 2023 en su base de datos. +Determine.Status.Label=No se pudo determinar el estado de la actualización de Windows UEFI CA 2023. + +[Main.Messages.Validation] +Cannot.Load.Project.Message=No se puede cargar el proyecto. Motivo: no se encontró el proyecto. Puede que se haya movido o que su carpeta se haya eliminado. +Project.Load.Error.Title=Error al cargar el proyecto + +[Main.News] +LearnMore.Link=Saber más +Last.Updated.Label=Última actualización de noticias: + +[Main.News.Error] +NoDetails.Message=No hay detalles adicionales del error de la fuente de noticias. Intenta actualizar la fuente de noticias. + +[Main.News.Load] +Retry.Button=Reintentar + +[Main.OfflineManagement] +OfflineInstall.Label=Instalación fuera de línea - DISMTools +Install.Label=(Instalación fuera de línea) +Image.Registry.Message=El panel de control del registro de la imagen debe ser cerrado antes de cargar este modo. +Yes.Button=Sí + +[Main.OnlineManagement.Start] +Install.DISM.Tools.Label=Instalación activa - DISMTools +Install.Label=(Instalación activa) +Yes.Button=Sí + +[Main.Project.Load] +LoadingProject.Label=Cargando proyecto: {quot;}{0}{quot;} +Project.Label=Proyecto: {quot;}{0}{quot;} +Adkdeployment.Tools.Label=Herramientas de implementación +DeploymentTools.X86.Label=Herramientas de implementación (x86) +Deployment.Tools.Label=Herramientas de implementación (AMD64) +DeploymentTools.ARM.Label=Herramientas de implementación (ARM) +DeploymentTools.ARM64.Label=Herramientas de implementación (ARM64) +MountPoint.Label=Punto de montaje +Unattended.Answer.Label=Archivos de respuesta desatendida +ScratchDirectory.Label=Directorio temporal +ProjectReports.Label=Informes del proyecto + +[Main.Project.Load.Guard] +Image.Registry.Message=El panel de control del registro de la imagen debe ser cerrado antes de cargar proyectos. + +[Main.Project.Unload] +Bg.Procs.Still.Message=Procesos en segundo plano todavía están recopilando información de esta imagen. ¿Desea cancelarlos? +Cancelling.Bg.Procs.Button=Espere mientras cancelamos los procesos en segundo plano... +Ready.Item=Listo + +[Main.ProjectTree.AfterCollapse] +Collapse.Label=Contraer +CollapseItem.Label=Contraer objeto +Expand.Item=Expandir +ExpandItem=Expandir objeto +ExpandCollapse.Item=Expandir +ExpandTool.ExpandItem=Expandir objeto + +[Main.ProjectTree.AfterExpand] +Collapse.Label=Contraer +CollapseItem.Label=Contraer objeto +Expand.Item=Expandir +ExpandItem=Expandir objeto + +[Main.ProjectTree.AfterSelect] +Collapse.Label=Contraer +CollapseItem.Label=Contraer objeto +Expand.Item=Expandir +ExpandItem=Expandir objeto + +[Main.RegistryPanel] +Control.Active.Message=Este panel de control no está disponible en instalaciones activas. + +[Main.Registry.Actions] +Load.Project.Mode.Message=Debe cargar un proyecto o modo para administrar subárboles del registro. + +[Main.RemoveOSUninstall] +ReadCarefully.Message={0}, lea este mensaje antes de proceder.{crlf;}{crlf;}Si ha utilizado esta versión nueva de Windows por un rato y ha determinado que no hay errores, puede eliminar la habilidad para iniciar un restablecimiento a una versión anterior.{crlf;}{crlf;}Esto no eliminará los archivos de la instalación anterior, así que debe utilizar la herramienta de Limpieza de Disco (cleanmgr) si desea liberar algo de espacio.{crlf;}{crlf;}¿Desea eliminar la habilidad para revertir a una versión anterior de Windows? +OnlineOnly.Message=Esta acción solo está soportada en instalaciones activas + +[Main.Run.BgProcesses] +RunningProcesses.Label=Ejecutando procesos +Getting.Basic.Image.Label=Obteniendo información básica de la imagen... +AdvancedImageInfo.Label=Obteniendo información avanzada de la imagen... +Getting.Image.Packages.Label=Obteniendo paquetes de la imagen... +Getting.Image.Features.Label=Obteniendo características de la imagen... +Get.Image.Provisioned.Label=Obteniendo paquetes aprovisionados AppX de la imagen (aplicaciones estilo Metro)... +Get.Image.Features.Label=Obteniendo características opcionales de la imagen (funcionalidades)... +Getting.Image.Drivers.Label=Obteniendo controladores de la imagen... +Running.Pending.Tasks.Label=Ejecutando tareas pendientes. Esto puede llevar algo de tiempo... + +[Main.SaveAsset] +Saved.Location.Label=El recurso ha sido guardado en la ubicación que especificó +SaveSuccessful.Title=Guardado satisfactorio + +[Main.ShowChildDescs] +Adds.Additional.Item=Adds an additional image to a .wim file +Applies.Full.Flash.Item=Applies a Full Flash Utility or split FFU to a physical drive +Applies.Windows.Image.Item=Applies a Windows image or split WIM to a partition +Captures.Incremen.File.Item=Captures incremental file changes on the specific WIM file to {quot;}custom.wim{quot;} +Captures.Image.Drive.Item=Captures an image of a drive's partitions to a new FFU file +Captures.Image.New.Item=Captures an image of a drive to a new WIM file +Deletes.Resources.Item=Deletes all resources associated with a corrupted mounted image +Applies.Changes.Made.Item=Applies the changes made to the mounted image +Deletes.Volume.Image.Item=Deletes a volume image from a WIM file +Exports.Copy.Image.Item=Exports a copy of the image to another file +Displays.Images.Item=Displays information about the images contained in a WIM, FFU, VHD or VHDX file +Displays.List.Wimffu.Item=Displays a list of WIM, FFU, VHD or VHDX images that are currently mounted +Displays.WIM.Boot.Item=Displays WIMBoot configuration entries for the specified disk volume +Displays.List.Files.Item=Displays a list of files and folders in an image +Mounts.Image.Wimffu.Item=Mounts an image from a WIM, FFU, VHD or VHDX to make it available for servicing +Optimizes.Ffuimage.Item=Optimizes a FFU image to make it faster to deploy +Optimizes.Image.Faster.Item=Optimizes an image to make it faster to deploy +Remounts.Mounted.Image.Item=Remounts a mounted image that is inaccessible to make it available for servicing +Splits.Full.Flash.Item=Splits a Full Flash Utility (FFU) file into read-only split FFU (.sfu) files +Splits.Existing.WIM.Item=Splits an existing WIM file into read-only split WIM (.swm) files +Unmounts.Wimffuvhd.Item=Unmounts the WIM, FFU, VHD or VHDX file and either commits or discards its changes +Updates.WIM.Boot.Item=Updates the WIMBoot configuration entry +Applies.Siloed.Prov.Item=Applies siloed provisioning packages to the image +Displays.Message=Displays information about all packages in the image or in the installation or any package file you want to add +Installs.Cabmsu.Package.Item=Installs a .cab or .msu package in the image +Removes.Cabfile.Package.Item=Removes a .cab file package from the image +Displays.Installed.Item=Displays information about the installed features in an image or an online installation +Enables.Updates.Feature.Item=Enables or updates the specified feature in the image +Disables.Feature.Image.Item=Disables the specified feature in the image +Performs.Cleanup.Item=Performs cleanup or recovery operations on the image +Adds.Applicable.Item=Adds an applicable payload of a provisioning package to the image +Gets.Infomation.Prov.Item=Gets infomation of a provisioning package +Dehydrat.Files.Containe.Item=Dehydrates files contained in the custom data image to save space +Displays.App.Item=Displays information about app packages in an image +Addsone.App.Item=Adds one or more app packages to the image +Removes.Prov.App.Item=Removes provisioning for app packages from the image +Optimizes.Total.Size.Item=Optimizes the total size of provisioned app packages on the image +Addscustom.Data.File.Item=Adds a custom data file into the specified app package +Displays.Msppatches.Item=Displays information of MSP patches applicable to the offline image +Command42.Item=Displays information about installed MSP patches +Displays.Item=Displays information about all applied MSP patches for all applications installed on the image +Displays.Specific.Item=Displays information about a specific installed Windows Installer application +Command45.Item=Displays information about all Windows Installer applications in the image +Exports.Default.Item=Exports default application associations from a running OS to an XML file +Displays.List.Item=Displays the list of default application associations set in the image +Imports.Set.DefaultApp.Item=Imports a set of default application associations from an XML file to an image +Removes.Default.Item=Removes default application associations from the image +Displays.Intl.Item=Displays information about international settings and languages +Sets.Default.Uilanguage.Item=Sets the default UI language +Sets.Fallback.Default.Item=Establece el idioma predeterminado de reserva para la interfaz de usuario del sistema +Sets.System.Preferred.Item=Sets the {quot;}System Preferred{quot;} UI language +Sets.Language.Non.Item=Sets the language for non-Unicode programs and font settings in the image +Sets.Standards.Formats.Item=Sets the {quot;}standards and formats{quot;} language (user locale) in the image +Sets.Input.Locales.Item=Sets the input locales and keyboard layouts to use in the image +Sets.Default.System.Message=Sets the default system UI language, the language for non-Unicode programs, the user locale, and the keyboard layouts to the language in the image +Sets.Default.Time.Item=Sets the default time zone in the image +Sets.Default.Message=Sets the default language for the UI and non-Unicode programs, locales for the user and input, keyboard layouts and time zone values in the image +Specifies.Keyboard.Item=Specifies a keyboard driver for Japanese and Korean keyboards +Generates.Lang.Ini.Item=Generates a Lang.ini file, used by Setup to define the language packs inside the image and out +Defines.Default.Item=Defines the default language that will be used by Setup +Addscapability.Image.Item=Adds a capability to an image +Exports.Set.Caps.Item=Exports a set of capabilities into a new repository +Gets.Installed.Item=Gets information about the installed capabilities of an image or an active installation +Removes.Capability.Item=Removes a capability from the image +Displays.Edition.Image.Item=Displays the edition of the image +Displays.Editions.Image.Item=Displays the editions the image can be upgraded to +Changes.Image.Higher.Item=Changes an image to a higher edition +Enters.ProductKey.Item=Enters the product key for the current edition +Displays.Driver.Message=Displays information about the driver packages you specify or the installed drivers in the image or in the installation +Addsthird.Party.Driver.Item=Adds third-party driver packages to the image +Removes.ThirdParty.Item=Removes third-party drivers from the image +Exports.ThirdParty.Item=Exports all third-party driver packages from the image to a destination path +Imports.ThirdParty.Message=Imports all third-party drivers from a specified source to this image to provide the same hardware compatibility +Applies.Unattend.Item=Applies an Unattend.xml file to the image +Displays.List.Windows.Item=Displays a list of Windows PE settings in the WinPE image +Retrieves.Configured.Item=Retrieves the configured amount of the Windows PE system volume scratch space +Retrieves.Target.Path.Item=Retrieves the target path of the Windows PE image +Sets.Available.Item=Sets the available scratch space (in MB) +Sets.Location.Win.Item=Sets the location of the WinPE image on the disk (for hard disk boot scenarios) +Gets.Number.Days.Item=Gets the number of days an uninstall can be initiated after an upgrade +Reverts.PC.Item=Reverts a PC to a previous installation +Removes.Ability.Roll.Item=Removes the ability to roll back a PC to a previous installation +Sets.Number.Days.Item=Sets the number of days an uninstall can be initiated after an upgrade +Gets.State.Reserved.Item=Gets the current state of reserved storage +Sets.State.Reserved.Item=Sets the state of reserved storage +Adds.Microsoft.Item=Adds the Microsoft Edge Browser and WebView2 component to the image +Command91.Item=Adds the Microsoft Edge Browser to the image +Addsmicrosoft.Edge.Web.Item=Adds the Microsoft Edge WebView2 component to the image +Saves.Complete.Image.Message=Saves complete image information to the file you want. Depending on the settings you had specified, you may be asked some questions during the process +Creates.New.DISM.Item=Creates a new DISMTools project. The current project will be unloaded after creating it +Opens.Existing.DISM.Item=Opens an existing DISMTools project. The current project will be unloaded +Enters.Online.Install.Item=Enters online installation management mode +Saves.Changes.Project.Item=Saves the changes of this project +Saves.Project.Another.Item=Saves this project on another location +Closes.Project.Message=Closes the program. If a project is loaded, you will be asked whether or not you would like to save it +Opens.File.Explorer.Item=Opens the File Explorer to view the project files +Unloads.Project.Message=Unloads this project. If changes were made, you will be asked whether or not you would like to save it +Switches.Mounted.Image.Item=Switches the mounted image index +Launches.Project.Item=Launches the project section of the project properties dialog +Launches.Image.Section.Item=Launches the image section of the project properties dialog +ImageFormat.Item=Performs image format conversion from WIM to ESD and vice versa +Merges.Two.SWM.Item=Merges two or more SWM files into a single WIM file +Remounts.Image.Read.Item=Remounts the image with read-write permissions to allow making modifications to it +Opens.Command.Console.Item=Opens the Command Console +Lets.Manage.Item=Lets you manage unattended answer files for this project +Lets.Manage.Project.Item=Lets you manage project reports +Shows.Overview.Mounted.Item=Shows an overview of the mounted images +Configures.Settings.Item=Configures settings for the program +Opens.Help.Topics.Item=Opens the help topics for this program +Opens.Glossary.Don.Item=Opens the glossary, if you don't understand a concept +Shows.Command.Help.Item=Shows the Command Help, letting you use commands to perform the same actions +Shows.Item=Shows program information +Lets.Report.Feedback.Item=Lets you report feedback through a new GitHub issue (a GitHub account is needed) +Opens.Git.Hub.Message=Opens the GitHub repository containing the help documentation contents, to which you can contribute (a GitHub account is needed) + +[Main.ShowParentDesc] +View.Options.Related.Item=View options related to files, like creating or opening projects +View.Options.Project.Item=View options related to this project, like viewing its properties +View.Options.Image.Item=View options related to image management, deployment and/or servicing +View.Options.Additional.Item=View options related to additional tools, like the Command Console +View.Options.Help.Item=View options related to help topics, glossary, command help and product information + +[Main.Tooltips] +RefreshInfo.Label=Refresh information +Change.Network.Config.Label=Change network configuration +Other.Win.Administ.Label=Other Windows administrative tools +Change.Wallpaper.Label=Click here to change your wallpaper +NetBiosname.Label=NetBIOS name: {lbrace;}0{rbrace;} +Show.New.Fact.Label=Show a new fact + +[Main.UpdateChecker] +Couldn.Tdownload.Message=No pudimos descargar el comprobador de actualizaciones. Razón:{crlf;}{0} +CheckUpdates.Title=Comprobar actualizaciones + +[Main.UpdateProjProps] +Yes.Button=Sí +No.Button=No + +[Migration] +Wait.Message=Espere mientras DISMTools migra su archivo antiguo de configuración para que sea compatible con esta versión. Esto puede llevar un tiempo. +Wait.Label=Espere... + +[Migration.Background] +Loading.Old.Settings.Message=Cargando archivo antiguo de configuración... +Saving.New.Settings.Message=Guardando archivo nuevo de configuración... +Done.Message=Terminado + +[MountDirCreation] +Create.Label=¿Desea crear el directorio de montaje? +Yes.Button=Sí +No.Button=No + +[MountedImgMgr] +Image.Manager.Item=Administrador de imágenes montadas +Overview.Images.Message=Este es un resumen de las imágenes que se han montado en este sistema. Puede consultar información sobre ellas, y realizar algunas tareas básicas. En cambio, si desea realizar todas las operaciones posibles con este programa, necesita cargar el directorio de montaje en un proyecto: +ImageFile.Column=Archivo de imagen +Index.Column=Índice +MountDirectory.Column=Directorio de montaje +Status.Column=Estado +Read.Write.Column=¿Permisos de lectura y escritura? +UnmountImage.Button=Desmontar imagen +ReloadServicing.Button=Recargar servicio +Enable.Write.Button=Habilitar escritura +Open.Mount.Dir.Button=Abrir directorio de montaje +Remove.VolumeImages.Button=Eliminar imágenes de volumen... +LoadProject.Button=Cargar en proyecto +Repair.Component.Store.Item=Reparar almacén de componentes +Yes.Button=Sí + +[NewProj] +Create.Project.Label=Crear un nuevo proyecto +Image.Task.Header.Label={0} +Options.Required.Label=Especifique las opciones para crear un nuevo proyecto: +Name.Label=Nombre*: +Location.Label=Ubicación*: +Fields.End.Required.Label=Los campos que terminen en * son necesarios +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar +Project.Group=Proyecto +Folder.Store.Description=Seleccione una carpeta donde almacenar este proyecto: + +[NewProj.Validation] +Dir.Exist.Create.Message=El directorio: {crlf;}{quot;}{0}{quot;}{crlf;}no existe. ¿Desea crearlo? +Create.Project.Dir.Message=No pudimos crear el directorio del proyecto porque: {crlf;}{0}; {1} + +[NewTestingEnv] +Status.Message=Estado +Creating.Project.Message=Creando proyecto. Esto puede llevar algo de tiempo. Espere... +ProjectCreated.Message=El proyecto ha sido creado +Create.Environment.Label=Crear un entorno de pruebas +WizardHelp.Message=Este asistente le creará un entorno que le ayudará a probar sus aplicaciones en entornos de preinstalación de Windows.{crlf;}{crlf;} +Re.Ready.Create.Label=Cuando esté listo, haga clic en Crear. +Env.Architecture.Label=Arquitectura del entorno: +Architecture.Label=Arquitectura: +Target.Project.Label=Ubicación del proyecto: +Other.Things.Project.Message=Puede hacer otras cosas mientras se crea el proyecto. Vuelva aquí para ver un estado actualizado. +Browse.Button=Examinar... +Create.Button=Crear +Cancel.Button=Cancelar +Progress.Group=Progreso +Download.Windows.ADK.Link=Descargar el ADK de Windows +Https.Learn.Message=https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install +ProjectTemplate.Message=El proyecto que será creado contiene una plantilla de solución compatible con todos los entornos, y recursos para crear aplicaciones para entornos de preinstalación de Windows. Puede aprender más acerca de estos proyectos en el archivo LÉAME incluido. + +[NewTestingEnv.Background] +Project.Created.Done.Message=El proyecto ha sido creado satisfactoriamente +Failed.Create.Message=No pudimos crear el proyecto + +[NewTestingEnv.Links] +Https.Learn.Message=https://learn.microsoft.com/es-es/windows-hardware/get-started/adk-install + +[Unattend.Messages] +Requires.Netruntime.Message=Este asistente requiere que .NET 10 Runtime esté instalado para usar la versión integrada del programa generador. Puede descargarlo desde:{crlf;}{crlf;}dotnet.microsoft.com{crlf;}{crlf;}Si no desea descargar .NET, puede descargar la versión autónoma del programa generador. La descarga tardará algún tiempo, según la velocidad de la conexión de red.{crlf;}{crlf;}¿Desea usar la versión autónoma? +Netruntime.Missing.Title=Falta .NET Runtime +GeneratorExit.Message=El generador de archivos de respuesta desatendida no pudo generar el archivo. Este es el código de error por si le interesa:{crlf;}{crlf;}Código de error: {0} +Generator.Message=El generador de archivos de respuesta desatendida no pudo generar el archivo. Este es el error por si le interesa:{crlf;}{crlf;}Error: {0} +Reuse.Settings.Ve.Message=¿Desea reutilizar la configuración que ha usado en este archivo de respuesta para el nuevo? +Load.Project.Order.Label=Debe cargar un proyecto para aplicar este archivo. +PrepareFailed.Label=No se pudo preparar la instalación autónoma de UnattendGen. Motivo:{crlf;}{0} +OpenFile.Label=No se pudo abrir el archivo: {0} +SaveFile.Label=No se pudo guardar el archivo: {0} +ProductKey.Copied.Done.Label=La clave de producto se copió correctamente al portapapeles. +Copy.Key.Clipboard.Label=No se pudo copiar la clave al portapapeles. Mensaje de error: {0} +Component.Already.Message=Este componente ya está reservado para una instalación correcta del sistema operativo. Si lo sobrescribe con sus datos, es posible que la instalación del sistema operativo no dé los resultados esperados. +ComponentUse.Title=Componente en uso +Cross.Platform.Label=Las versiones multiplataforma de UnattendGen se han copiado a {0} +ImportOverwrite.Message=Al importar este script se sobrescribirán los datos existentes en el script posterior a la instalación actual. Es recomendable crear una nueva entrada antes de continuar. ¿Desea continuar? +ProductKey.None.Label=No hay ninguna clave de producto para la edición {quot;}{0}{quot;}. + +[NewUnattend.Validation] +Gen.Error.Title=Error de UnattendGen + +[Unattend.Mode] +ExpressMode.Title=Modo rápido +WizardHelp.Description=Si no ha creado archivos de respuesta desatendida antes, use este asistente para crear uno +EditorMode.Title=Modo editor +CreateUnattended.Description=Cree archivos de respuesta desatendida desde cero y guárdelos en cualquier ubicación + +[Unattend.Progress] +Preparing.Generate.Label=Preparando la generación del archivo... +Saving.User.Settings.Label=Guardando configuración de usuario... +GenerateAnswerFile.Label=Generando archivo de respuesta desatendida... +Deleting.Temporary.Label=Eliminando archivos temporales... +Generation.Completed.Label=La generación ha finalizado + +[UnattendWizard.Review] +Configs.UnattendAnswer.Label=Configuraciones actuales del archivo de respuesta desatendida: + +[Unattend.Tooltips] +Uses.Name.Computer.Message=Usa el nombre de su equipo como nombre de equipo del archivo de respuesta desatendida.{crlf;}Use esto solo si el sistema de destino es este mismo equipo +Attempt.Grab.Message=Haga clic aquí para intentar obtener la edición de la imagen cargada actualmente. Esto le ayudará a usar una clave de producto adecuada para esa imagen de Windows. +AutoChoose.Message=Choose this option to automatically configure the target location to one of the countries in the European Economic Area (EEA). This will let you{crlf;}configure settings in the target system that you would not be able to when using a region outside the EEA. After Setup is complete, you can reconfigure{crlf;}the region to your current location. +Check.Field.Customize.Label=Check this field to customize this user's display name +RearrangeScripts.Label=Rearrange post-installation scripts... + +[Unattend.Validation] +Arch.Try.Label=Seleccione una arquitectura e inténtelo de nuevo +ValidationError.Title=Error de validación +Computer.Name.Error.Title=Error de nombre de equipo +Script.Has.None.Label=No se ha pasado ningún script para el nombre del equipo +Type.ProductKey.Label=Escriba una clave de producto e inténtelo de nuevo +ProductKeyError.Title=Error de clave de producto +Type.Product.Label=Escriba la clave de producto completa e inténtelo de nuevo +ProductKey.Entered.Ill.Label=La clave de producto introducida:{crlf;}{crlf;}{0}{crlf;}{crlf;}tiene un formato incorrecto. Escríbala de nuevo +Problem.One.Message=Hay un problema con uno o varios de los usuarios indicados. Estos son los motivos:{crlf;}{crlf;}{0}{crlf;}{crlf;}Vuelva a intentarlo después de corregir los problemas mencionados +User.Accounts.Error.Title=Error de cuentas de usuario +Least.One.Account.Message=Al menos una cuenta debe formar parte del grupo Administradores. Configure los grupos de usuario en consecuencia e inténtelo de nuevo +Problem.Wireless.Message=Hay un problema con la configuración inalámbrica especificada. Asegúrese de haber indicado un nombre de red e inténtelo de nuevo +WirelessError.Title=Error de redes inalámbricas + +[OS.No] +Troll.Back.Older.Label=No puede revertir a una versión anterior +Old.Versions.None.Message=No se detectaron versiones anteriores porque sus archivos no se encontraron. Podría haber tenido esta versión por más tiempo de lo que le permite el margen de desinstalación, o podría haber eliminado los archivos de la versión anterior (para liberar espacio). No tiene que hacer nada. +Ok.Button=Aceptar + +[OfflineDriveList] +Disk.Choose.Label=Elija un disco +Begin.Install.Message=Para comenzar a realizar el mantenimiento de instalaciones fuera de línea, escoja un disco mostrado en la lista de abajo. Esta lista se actualizará automáticamente cada minuto, o cuando haga clic en el botón Actualizar. +DriveLetter.Column=Letra de disco +DriveLabel.Column=Etiqueta de disco +DriveType.Column=Tipo de disco +TotalSize.Column=Tamaño total +Available.Free.Space.Column=Espacio libre +DriveFormat.Column=Formato del disco +ContainsWindows.Column=¿Contiene Windows? +Windows.Column=Versión de Windows +Refresh.Button=Actualizar +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[OneDriveExclusion] +Exclude.User.Label=Excluir carpetas de OneDrive del usuario +Tool.Help.Exclude.Message=Esta herramienta le ayudará a excluir carpetas de OneDrive del usuario en la lista de configuración en la que esté trabajando. Especifique la ruta a la que desea aplicar el archivo de lista de configuración y haga clic en Excluir.{crlf;}{crlf;}NOTA: una vez ejecutada esta herramienta y excluidas las carpetas de OneDrive del usuario, no debería utilizar la lista de configuración en una imagen distinta a la que especifique aquí. Si desea utilizar la lista en otras imágenes, elimine las carpetas de OneDrive en la lista de configuración y vuelva a ejecutar esta herramienta. +Path.Exclude.Label=Ruta donde excluir las carpetas de OneDrive del usuario: +Re.Ready.Label=Cuando esté listo, haga clic en Excluir. +Browse.Button=Examinar... +Exclude.Button=Excluir +Cancel.Button=Cancelar +UserFolderPath.Description=Escoja una ruta que contenga carpetas de usuario: + +[OneDriveExclusion.Folders] +Excluding.User.Label=Excluyendo carpetas de OneDrive del usuario... + +[OneDriveExclusion.Valid] +User.Folders.Label=Las carpetas de OneDrive del usuario han sido excluidas y serán añadidas a la lista de configuración. + +[Options] +Title.Label=Opciones +Program.Label=Programa +Personalization.Label=Personalización +Logs.Label=Registros +ImageOperations.Label=Operaciones +ScratchDirectory.Label=Directorio temporal +ProgramOutput.Label=Salida del programa +BgProcesses.Label=Procesos en segundo plano +FileAssociations.Label=Asociaciones de archivos +StartupOptions.Label=Opciones de inicio +ShutdownOptions.Label=Opciones de cierre +Dismexecutable.Path.Label=Ruta del ejecutable: +Version.Label=Versión: +SaveSettings.Label=Guardar configuraciones en: +ColorMode.Label=Modo de color: +Language.Label=Idioma: +Settings.Log.Required.Label=Especifique las configuraciones para la ventana de registro: +Log.Window.Font.Label=Fuente: +Preview.Label=Vista previa: +Operation.Log.File.Label=Archivo de registro: +Image.Ops.Message=Cuando se realizan operaciones en la línea de comandos, especifique el argumento {quot;}/LogPath{quot;} para guardar el registro de operaciones en el archivo de destino +Log.File.Level.Label=Nivel de registro: +QuietOperations.Message=Cuando se realizan operaciones silenciosamente, el programa ocultará información y salida del progreso.{crlf;}Esta opción no se usará al obtener información de, por ejemplo, paquetes o características.{crlf;}También, al realizar un servicio de imágenes, su sistema podría reiniciarse automáticamente. +Checked.Computer.Message=Cuando esta opción está marcada, su sistema no se reiniciará automáticamente; incluso si se realizan operaciones silenciosamente +Scratch.Dir.Required.Label=Especifique el directorio temporal a ser usado en operaciones de DISM: +ScratchDirectory.Input.Label=Directorio temporal: +Space.Left.Selected.Label=Espacio disponible en directorio temporal: +LogView.Label=Vista de registro: +ExampleReport.Label=Informe de prueba: +Reports.Allow.Shown.Label=Algunos informes no permiten ser mostrados como una tabla. +Notify.Label=¿Cuándo debería el programa notificarle acerca de procesos en segundo plano siendo iniciados? +Uses.Bg.Procs.Message=El programa utiliza procesos en segundo plano para recopilar información completa de la imagen, como fechas de modificación, paquetes instalados, características presentes; y más +Manage.File.Assoc.Label=Administre asociaciones de archivos para componentes de DISMTools +Behavior.OnStartup.Label=Establezca las opciones que le gustaría realizar cuando el programa inicie: +Scratch.Dir.Message=El programa usará el directorio temporal proporcionado por el proyecto si se cargó alguno. Si está en los modos de administración de instalaciones en línea o fuera de línea, el programa utilizará su directorio temporal +Secondary.Progress.Label=Estilo del panel de progreso secundario: +Settings.Aren.Label=Estas configuraciones no son aplicables a instalaciones no portátiles +Font.Readable.Log.Message=Esta fuente podría no ser legible en ventanas de registro. Aunque todavía pueda utilizarla, le recomendamos fuentes monoespaciadas para una legibilidad aumentada. +SettingsConsider.Label=Escoja las opciones que el programa debería considerar al guardar información de la imagen: +Browse.Button=Examinar... +View.DISM.Button=Ver versiones de componentes +Set.File.Assoc.Button=Establecer asociaciones +AdvancedSettings.Button=Opciones avanzadas +Cancel.Button=Cancelar +Ok.Button=Aceptar +ResetPreferences.Label=Restablecer preferencias +Quietly.Image.Ops.CheckBox=Realizar operaciones silenciosamente +Skip.System.Restart.CheckBox=Omitir reinicio del sistema +Scratch.Dir.CheckBox=Usar un directorio temporal +Show.Command.Output.CheckBox=Mostrar salida del programa en inglés +Notify.Me.CheckBox=Notificarme cuando los procesos en segundo plano se hayan iniciado +Show.Log.View.CheckBox=Mostrar vista de registro en el panel de progreso por defecto +Uppercase.Menus.CheckBox=Usar menús en mayúscula +Set.Custom.File.CheckBox=Establecer iconos personalizados para proyectos de DISMTools +Remount.Mounted.CheckBox=Remontar imágenes montadas que necesitan una recarga de su sesión de servicio +CheckUpdates.CheckBox=Comprobar actualizaciones +Always.Save.CheckBox=Siempre guardar información completa para los siguientes elementos: +Installed.Packages.CheckBox=Paquetes instalados +Features.CheckBox=Características +Installed.AppX.CheckBox=Paquetes AppX instalados +Capabilities.CheckBox=Funcionalidades +InstalledDrivers.CheckBox=Controladores instalados +Automatically.Clean.CheckBox=Limpiar puntos de montaje automáticamente (inicia un proceso separado) +Dismexecutable.Title=Especifique el ejecutable de DISM a usar +LogCustomization.Label=Personalización del registro +Behavior.OnClose.Label=Establezca las opciones que le gustaría realizar cuando el programa se cierra: +Saving.Image.Item=Guardando información de la imagen +Enable.Disable.Message=El programa habilitará o deshabilitará algunas características atendiendo a lo que soporte la versión de DISM. ¿Cómo va a afectar esto mi uso del programa, y qué características serán deshabilitadas? +Going.Affect.My=¿Cómo va a afectar esto mi uso del programa, y qué características serán deshabilitadas? +Learn.Background.Link=Conocer más sobre los procesos en segundo plano +Location.Log.File.Title=Especifique la ubicación del archivo de registro +Modern.RadioButton=Moderno +Classic.RadioButton=Clásico +Dyna.Log.Logging.Message=DynaLog proporciona un método para guardar registros de diagnóstico que pueden ser utilizados para ayudar a solucionar problemas del programa, en caso de que los encuentre. Puede desactivar el registro usando el interruptor de abajo, pero no es recomendable.{crlf;}{crlf;} +Disable.Logging.Only.Message=Desactive el registro solo si causa una sobrecarga de rendimiento en su equipo. Hacer clic en el interruptor aplicará esta configuración automáticamente. +Default.Op.Logs.Message=Por defecto, los registros de operación se abren con el Bloc de notas en caso de un error de operación. Sin embargo, si desea abrirlos con un programa diferente, especifíquelo a continuación: +Dyna.Log.Logging.Label=Control de registro de DynaLog +Editor.Open.Log.Label=Editor con el que se abrirán archivos de registro: +SystemEditor.Label=Editor del sistema +Editor.Title=Especifique el editor a usar +Show.Me.Logs.Link=Muéstrame dónde se guardan estos registros +Disable.Dyna.Log.CheckBox=Desactivar el registro de DynaLog +SettingsFile.Item=Archivo de configuración +Registry.Item=Registro +System.Setting.Item=Usar configuración del sistema +LightMode.Item=Modo claro +DarkMode.Item=Modo oscuro +List.Item=lista +Table.Item=tabla +Every.Time.Project.Item=Cada vez que un proyecto ha sido cargado satisfactoriamente +Freqs1.Item=Una vez +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +LogPreview.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}{crlf;}------------------------------------------- | --------{crlf;}Feature Name | State{crlf;}------------------------------------------- | --------{crlf;}TFTP | Disabled{crlf;}LegacyComponents | Enabled{crlf;}DirectPlay | Enabled{crlf;}SimpleTCP | Disabled{crlf;}Windows-Identity-Foundation | Disabled{crlf;}NetFx3 | Enabled +Selected.Search.Message=The selected search engine, {1}{2}{1}, exceeds the current AI tolerance setting, {1}{3}{1}. If you continue with this search engine, AI tolerance will be increased after applying the settings.{0}{0}If you decide not to continue with this search engine, DISMTools will use the first search engine that stays within tolerance boundaries.{0}{0}Do you want to continue with this search engine? +Aitolerance.Exceeded.Title=AI Tolerance Exceeded +Auto.Create.Logs.CheckBox=Crear registros para cada operación realizada automáticamente +Project.Scratch.RadioButton=Utilizar el directorio temporal del proyecto o del programa +Custom.Scratch.RadioButton=Utilizar el directorio temporal especificado +ScratchDir.Description=Especifique el directorio temporal que debería usar el programa: + +[Options.Actions] +DISM.Components.Message=La carpeta de componentes de DISM no pudo ser encontrada. Si tiene todos los componentes en la misma carpeta del ejecutable de DISM, cree una carpeta {quot;}dism{quot;} e inténtelo de nuevo. + +[Options.AutoReloadService] +DISM.Tools.Automatic.Label=Servicio de recarga automática de imágenes de DISMTools +AutoReload.Description=Este servicio recarga automáticamente las sesiones de mantenimiento de todas las imágenes montadas en este equipo. Puedes desactivar este servicio si no lo necesitas. +ServiceInstalled.Label=No se pudo instalar el servicio. + +[Options.AIRServiceInfo] +Yes.Button=Sí +No.Button=No + +[Options.GetRootSpace] +Scratch.Dir.Required.Label=Especifique un directorio temporal. +EnoughSpace.Label=Hay espacio suficiente en el directorio temporal seleccionado +GB.Item={0} GB +Enough.Message=No hay espacio suficiente en el directorio temporal seleccionado para realizar operaciones con la imagen. Intente liberar algo de espacio en el disco +EnoughSpace.SomeOps.Item=Podría no tener espacio suficiente en el directorio temporal seleccionado para algunas operaciones. +EnoughSpace.Directory.Item=Tiene espacio suficiente en el directorio temporal seleccionado +Free.Unavailable.Item=No pudimos obtener el espacio libre disponible. Continúe bajo su propio riesgo +Have.Enough.Item=Tiene espacio suficiente en el directorio temporal seleccionado + +[Options.LogLevel] +Level1.Label=Errores (Nivel 1) +Errors.Description.Label=El archivo de registro solo debe mostrar errores tras realizar una operación. +Level2.Item=Errores y advertencias (Nivel 2) +Level2.Description.Item=El archivo de registro debe mostrar errores y advertencias tras realizar una operación. +Level2Messages.Item=Errores, advertencias y mensajes de información (Nivel 3) +Level3.Description.Message=El archivo de registro debe mostrar errores, advertencias y mensajes de información tras realizar una operación. +Level2Debug.Item=Errores, advertencias, mensajes de información y de depuración (Nivel 4) +Level4.Description.Message=El archivo de registro debe mostrar errores, advertencias, mensajes de información y de depuración tras realizar una operación. + +[Options.QuickHelp] +DISM.Tools.Enable.Message=DISMTools activará o desactivará ciertas funciones si no son compatibles con el ejecutable de DISM especificado, con la imagen actual de Windows o con ambos.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Por ejemplo, si DISMTools detecta una imagen de Windows 7, una versión de DISM de Windows 7 o ambas cosas, desactivará el mantenimiento de paquetes AppX y capacidades porque no son compatibles con esa plataforma y esas herramientas.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}DISMTools también puede desactivar funciones según otros parámetros de la imagen, como la edición. Esto suele ocurrir con imágenes de Windows PE. +AppX.Package.Display.Message=Los nombres de visualización de paquetes AppX son la parte del nombre de familia del paquete que no contiene detalles específicos, como arquitectura, versión o hash del publicador.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Los {lbrace;}1{rbrace;}nombres descriptivos{lbrace;}1{rbrace;} de paquetes AppX son los nombres que ves en el menú Inicio. Se leen desde la información de identidad de la aplicación en el manifiesto o desde cadenas incrustadas en resources.pri.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Si DISMTools no puede obtener el nombre descriptivo, mostrará el nombre de visualización de la aplicación. +Configure.Search.Message=Al configurar el motor de búsqueda, puedes elegir cuánta tolerancia debe tener DISMTools con las funciones de inteligencia artificial, AI, del motor.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Desactivar tantas funciones de AI como sea posible{lbrace;}1{rbrace;} permite elegir motores donde las funciones de AI están desactivadas o no existen por defecto.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Controlar las funciones de AI en mi motor de búsqueda{lbrace;}1{rbrace;} añade motores que tienen funciones de AI activadas por defecto, pero que pueden controlarse mediante parámetros de URL o ajustes del motor.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Activar tantas funciones de AI como sea posible{lbrace;}1{rbrace;} permite elegir todos los motores disponibles, incluidos motores basados en AI o motores que promocionan modos dedicados de AI.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Normalmente, la segunda opción es la más equilibrada. Para una experiencia más orientada a la privacidad, desactiva estas funciones. +Bg.Procs.Allow.Message=Los procesos en segundo plano permiten que DISMTools recopile información sobre la imagen de Windows con la que trabajas y habilitan la mayoría de las tareas. Algunos ejemplos son los paquetes del sistema operativo y las funciones de una imagen de Windows.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Estos procesos se usan no solo al obtener información de archivos de imagen, sino también al administrar instalaciones en línea o sin conexión. + +[OrphanedMount] +Image.Servicing.Label=Esta imagen necesita una recarga de la sesión de servicio +Project.Has.Orphans.Message=El proyecto que ha sido cargado contiene una imagen huérfana (una imagen que debe ser remontada){crlf;}La imagen será remontada al hacer clic en {quot;}Aceptar{quot;}. Esto no debería afectar las modificaciones a la imagen, y no debería tardar mucho tiempo.{crlf;}{crlf;}NOTA: si hace clic en {quot;}Cancelar{quot;}, el proyecto será descargado +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[PECustomizer.Tooltips] +DefaultPolicies.Message=Default policies allow you to make the settings you specify here permanent.{crlf;}This also includes any wallpapers you specify here. + +[PEHelper.Main] +WhatWant.Label=What do you want to do? +StartServer.Label=Start a PXE Helper Server for Network Installation +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartServer.Network.Link=Start a PXE Helper Server for Network Installation +Prepare.System.Image.Link=Prepare System for Image Capture +Back.Button=Atrás +Explore.Contents.Disc.Link=Explore contents of this disc +StartServer.Fog.Link=Start PXE Helper Server for FOG +StartServer.Wds.Link=Start PXE Helper Server for Windows Deployment Services +Copy.Boot.Image.Link=Copy boot image to WDS server... +Exit.Button=Salir + +[PEHelper.Restart] +Warning.Message=Esto reiniciará el equipo. Asegúrate de haberlo configurado para arrancar desde el medio de instalación. ¿Quieres reiniciarlo? + +[PEHelper.Process] +ExitCode.Message=El proceso finalizó con el código 0x{0}:{crlf;}{crlf;}{1} + +[PEHelper.PXE] +ChangePort.Tooltip=Mantén presionada la tecla MAYÚS para cambiar el puerto utilizado por este servidor auxiliar PXE + +[ISOFiles.PECustomizer] +PoliciesSaved.Message=Policies could not be saved. +Wallpaper.Exist.Message=The specified wallpaper does not exist. +Wallpaper.Supported.Message=The specified wallpaper is not supported. Only JPG files are supported. +WallpaperOverride.Message=By continuing with this wallpaper you will be overriding a background you may have already stored in your user data folder. That background will be reused the next time you launch DISMTools. + +[Panels.ImageOps.WimToEsd] +Files.Filter=files|*. + +[Panels.ImageOps.ExportImage] +Esdfiles.Filter=ESD files|*.esd + +[Panels.ImageOps.MountImage] +WIM.Files.Filter=WIM files|*.wim + +[Panels.Packages.Add] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation + +[Panels.Packages.Remove] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation +CurrentLimit.SecondMessage=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.SecondDetail=Current program limitation + +[Panels.Unattend.Scripts] +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd +Power.Shell.Filter=PowerShell Scripts|*.ps1 +AllFiles.Filter=All Files|*.* +AllFiles.SecondFilter=All Files|*.* + +[ConfigLists.AddEntry] +Start.Backslash.Message=The entry can't start with a backslash if it contains wildcard characters + +[Options.Messages] +Dismexecutable.Path.Message=The DISM executable path was not specified. Please specify one and try again +DISM.Executable.Message=The DISM executable does not exist in the file system. Please verify the file still exists and try again +Log.File.Label=The log file was not specified. Please specify one and try again +Tried.Create.Message=The program tried to create the specified log file, but has failed. Please try again +ScratchDir.Message=The scratch directory was not specified. Please specify one and try again +ServiceEnabled.Label=The service could not be enabled. +ServiceDisabled.Label=The service could not be disabled. +ServiceRemoved.Label=The service could not be removed. +Tried.Scratch.Message=The program tried to create the specified scratch directory, but has failed. Please try again + +[ISOFiles.Creator.Messages] +Windows.Message=The Windows ADK was not found on your system. Do you want DISMTools to download and install the latest one for you? Note that you'll need around 4 GB on your system. + +[ISOFiles.WDSImageGroup] +Image.Label=The specified WDS image group could not be created. +Get.Image.Groups.Label=Could not get image groups. + +[PECustomizer.Messages] +Default.Policies.Saved.Label=Default policies have been saved. +Policies.SaveFailed.Message=Default policies could not be saved. + +[ISOFiles.PXEServerPort] +Already.Label=The specified port, {0}, is already in use. +Port.Label=The specified port, {0}, is not in use. + +[ImageOps.Append.Messages] +Grab.Last.Image.Label=Could not grab last image name. Error information:{crlf;}{crlf;}{0} + +[ImageOps.Capture.Messages] +Provide.Source.Dir.Label=Please provide a source directory or drive to capture. +SourcePrepWarning.Message=The source directory or drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? + +[ImageOps.Export.Messages] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Mount.Messages] +Copied.Image.Message=The copied installation image will be selected automatically for you, if found... +Extraction.Succeeded.Label=Extraction succeeded +Windows.Message=The Windows images in the specified ISO file were not copied to your local disk. Copy any WIM or ESD files from the sources folder of your ISO file. +Extraction.Succeeded.Message=Extraction succeeded + +[ImageOps.Optimize.Messages] +Mount.Dir.Required.Message=Please specify the mount directory of the image you want to optimize and try again. Also, make sure that that path exists. + +[Package.Parent] +Installed.Package.Label=Nombres de paquetes instalados +Installed.Package.Names=Nombres de paquetes instalados en la imagen montada: +Name.ParentPackage.Label=Paquete principal: +Get.Package.Names.Label=Obteniendo nombres de paquetes. Espere... +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[PkgNameLookup.Validation] +Package.Required.Message=Especifique un nombre de paquete, e inténtelo de nuevo. +Installed.Package.Title=Nombres de paquetes instalados +Package.Seem.Message=El paquete especificado no parece estar en la imagen. Especifique una entrada disponible, e inténtelo de nuevo + +[Wait] +NotAvailable.Label=Not available +ProjectValue.Label=Not available +Wait.Label=Espere... + +[MountedImagePicker] +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[MountedImagePicker.Pick] +Title.Label=Escoger imagen +Image.List.Label=Escoja una imagen de la lista de abajo: +ImageFile.Column=Archivo de imagen +Index.Column=Índice +MountDirectory.Column=Directorio de montaje + +[PrgAbout] +AboutProgram.Label=Acerca de este programa +DISM.Tools.Version.Label=DISMTools - versión {0}{1} +DISM.Tools.Lets.Label=DISMTools le permite implementar, administrar, y ofrecer servicio a imágenes de Windows con facilidad, gracias a una GUI +ResourcesUsed.Label=Estos recursos y componentes fueron utilizados en la creación de este programa: +Resources.Label=Recursos +Fluency.Label=Fluency +Sqlserver.Icon.Color.Label=Icono de SQL Server (Color) +Utilities.Label=Utilidades +Zip.Label=7-Zip +Help.Documentation.Label=Documentación de ayuda +Command.Help.Source.Label=Fuente de ayuda de comandos +Scintilla.Netnu.Get.Label=Scintilla.NET (paquete NuGet) +Pre.Label=pre +BuiltMsbuild.Label=Compilado el {0} por msbuild +Managed.Dismnu.Get.Label=ManagedDism (paquete NuGet) +BrandingAssets.Label=Recursos publicitarios +Windows.Label=Windows Home Server 2011 +Credits.Link=CRÉDITOS +Licenses.Link=LICENCIAS +Whatsnew.Link=NOVEDADES +Icons.Link=Icons8 +VisitWebsite.Link=Visitar sitio +Microsoft.Link=Microsoft +Ok.Button=Aceptar +CheckUpdates.Label=Comprobar actualizaciones + +[PrgAbout.Resources] +DISM.Tools.Free.Message=- DISMTools{crlf;}{crlf;}This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or at your option any later version.{crlf;}{crlf;}This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. {crlf;}{crlf;}You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.{crlf;}{crlf;}- Scintilla.NET{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2017, Jacob Slusser, https://github.com/jacobslusser,{crlf;}Copyright (c) 2020-2022 VPKSoft{crlf;}Copyright (c) 2023 desjarlais{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- ManagedDism{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2016{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- DarkUI{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2017 Robin{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- 7-Zip{crlf;}{crlf;} 7-Zip{crlf;} ~~~~~{crlf;} License for use and distribution{crlf;} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{crlf;}{crlf;} 7-Zip Copyright (C) 1999-2025 Igor Pavlov.{crlf;}{crlf;} The licenses for files are:{crlf;}{crlf;} - 7z.dll:{crlf;} - The {quot;}GNU LGPL{quot;} as main license for most of the code{crlf;} - The {quot;}GNU LGPL{quot;} with {quot;}unRAR license restriction{quot;} for some code{crlf;} - The {quot;}BSD 3-clause License{quot;} for some code{crlf;} - The {quot;}BSD 2-clause License{quot;} for some code{crlf;} - All other files: the {quot;}GNU LGPL{quot;}.{crlf;}{crlf;} Redistributions in binary form must reproduce related license information from this file.{crlf;}{crlf;} Note:{crlf;} You can use 7-Zip on any computer, including a computer in a commercial{crlf;} organization. You don't need to register or pay for 7-Zip.{crlf;}{crlf;}{crlf;}GNU LGPL information{crlf;}--------------------{crlf;}{crlf;} This library is free software; you can redistribute it and/or{crlf;} modify it under the terms of the GNU Lesser General Public{crlf;} License as published by the Free Software Foundation; either{crlf;} version 2.1 of the License, or (at your option) any later version.{crlf;}{crlf;} This library is distributed in the hope that it will be useful,{crlf;} but WITHOUT ANY WARRANTY; without even the implied warranty of{crlf;} MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU{crlf;} Lesser General Public License for more details.{crlf;}{crlf;} You can receive a copy of the GNU Lesser General Public License from{crlf;} http://www.gnu.org/{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 3-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 3-clause License{quot;} is used for the following code in 7z.dll{crlf;} 1) LZFSE data decompression.{crlf;} That code was derived from the code in the {quot;}LZFSE compression library{quot;} developed by Apple Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;} 2) ZSTD data decompression.{crlf;} that code was developed using original zstd decoder code as reference code.{crlf;} The original zstd decoder code was developed by Facebook Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;}{crlf;} Copyright (c) 2015-2016, Apple Inc. All rights reserved.{crlf;} Copyright (c) Facebook, Inc. All rights reserved.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 3-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}3. Neither the name of the copyright holder nor the names of its contributors may{crlf;} be used to endorse or promote products derived from this software without{crlf;} specific prior written permission.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 2-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 2-clause License{quot;} is used for the XXH64 code in 7-Zip.{crlf;}{crlf;} XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.{crlf;}{crlf;} Copyright (c) 2012-2021 Yann Collet.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 2-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}unRAR license restriction{crlf;}-------------------------{crlf;}{crlf;}The decompression engine for RAR archives was developed using source{crlf;}code of unRAR program.{crlf;}All copyrights to original unRAR code are owned by Alexander Roshal.{crlf;}{crlf;}The license for original unRAR code has the following restriction:{crlf;}{crlf;} The unRAR sources cannot be used to re-create the RAR compression algorithm,{crlf;} which is proprietary. Distribution of modified unRAR sources in separate form{crlf;} or as a part of other software is permitted, provided that it is clearly{crlf;} stated in the documentation and source comments that the code may{crlf;} not be used to develop a RAR (WinRAR) compatible archiver.{crlf;}{crlf;}--{crlf;}{crlf;}{crlf;}- UnpEax{crlf;}{crlf;}This software uses a modified version of UnpEax, now designed to extract only the AppX manifest file and Store logo assets, and converted to .NET Framework 4.8 and C# 5 to make it compatible with Visual Studio 2012 and newer.{crlf;}{crlf;}Original version: (c) 2020. LioneL Christopher Chetty (https://github.com/dalion619/UnpEax){crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2020 LioneL Christopher Chetty{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Unattended answer file generator{crlf;}{crlf;}The unattended answer file creation wizard is based on the technology of Christoph Schneegans' answer file generator website, with some modifications made to some files of its core library.{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2024 Christoph Schneegans{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Markdig{crlf;}{crlf;}Copyright (c) 2018-2019, Alexandre Mutel{crlf;}All rights reserved.{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}- Compilation scripts for the PE Helper{crlf;}{crlf;}The compilation and pre-processor scripts for the Preinstallation Environment (PE) Helper are modified copies of such scripts from the Windows Utility (https://github.com/ChrisTitusTech/winutil). Original license:{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2022 CT Tech Group LLC{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Windows API Code Pack{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2009 - 2010 Microsoft Corporation, then modifications by Jacob Slusser 2014, Peter William Wagner 2017 - 2024{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- INI File Parser{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2008 Ricardo Amores Hernández{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Active Directory Object Picker{crlf;}{crlf;}Microsoft Public License (MS-PL){crlf;}{crlf;}The initial project was originally created by Armand du Plessis in 2004 and now is extended and maintained by Tulpep.{crlf;}{crlf;}This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.{crlf;}{crlf;}1. Definitions{crlf;}The terms {quot;}reproduce,{quot;} {quot;}reproduction,{quot;} {quot;}derivative works,{quot;} and {quot;}distribution{quot;} have the same meaning here as under U.S. copyright law.{crlf;}A {quot;}contribution{quot;} is the original software, or any additions or changes to the software.{crlf;}A {quot;}contributor{quot;} is any person that distributes its contribution under this license.{crlf;}{quot;}Licensed patents{quot;} are a contributor's patent claims that read directly on its contribution.{crlf;}{crlf;}2. Grant of Rights{crlf;}(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.{crlf;}(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.{crlf;}{crlf;}3. Conditions and Limitations{crlf;}(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.{crlf;}(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.{crlf;}(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.{crlf;}(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.{crlf;}(E) The software is licensed {quot;}as-is.{quot;} You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. +PreviewChanges.Message=Overall changes:{crlf;}{crlf;}-- Bugfixes in preview releases{crlf;}{crlf;}- Fixed an issue where removed features would appear in the wrong place{crlf;}- Fixed a minor UI issue where the proper user principal name (UPN) would not be shown when selecting a user in the ADDS domain join wizard{crlf;}- Fixed a minor UI issue where the NT logon path of a domain user would not be shown when launching the ADDS domain join wizard for the first time{crlf;}- Fixed some HiDPI issues{crlf;}- Fixed an issue where, when managing the active installation, the version's revision number would sometimes not coincide with the actual revision number{crlf;}- Fixed an issue where information about a Windows image would be cleared after adding or removing packages{crlf;}- Fixed an issue where the program would throw an exception if it couldn't create the logs directory (#344, thanks @Low351){crlf;}- Fixed an issue where GraphoView would not display information about a selected Windows image if the WDS group it belongs to only has 1 image{crlf;}- Fixed an issue where capture compression type options were not being used when performing FFU captures{crlf;}- Fixed an issue where the program would throw an exception when performing multiple driver exports by class name{crlf;}- Fixed an exception (#350, thanks @TackleBarry80){crlf;}- Registry hives that were unloaded externally no longer cause errors when unloading them from the image registry control panel{crlf;}- Non-PowerShell-based endpoints no longer throw CORS issues when calling WDS Helper Server APIs{crlf;}- Fixed an issue where App Installer download errors would not appear in the foreground{crlf;}- Fixed an issue where tutorial videos would not be playable{crlf;}- The WDS Helper client message for downloading unattended answer files no longer shows at all times{crlf;}- Fixed an issue where the program would throw an exception when saving Windows PE configuration of an offline Windows PE installation{crlf;}- Fixed an issue where the full date string was not displaying correctly when accessing image properties with Windows representations of dates turned off{crlf;}- When adding a boot image to the WDS server, the service start is now requested only when it is not running{crlf;}- Fixed an exception that would happen when adding certain AppX packages (#365, #366, thanks @charlezmmonroe-byte){crlf;}{crlf;}-- New features{crlf;}{crlf;}- The Sysprep Preparation Tool has seen support for `CopyProfile` and can now remove AppX packages from the reference system{crlf;}- Guards have been added to prevent running the PE Helper on a PXE environment, and to warn when running the PXE Helpers on a non-PXE environment{crlf;}- The autorun menu now has options to browse disc contents and copy the boot image to a WDS server{crlf;}- The DISMTools Preinstallation Environment can now be configured via policies{crlf;}- You can now view images and groups in a WDS server graphically{crlf;}- When launching the Driver Installation Module, the Preinstallation Environment can now tell you the hardware IDs of unknown devices{crlf;}- HotInstall can now export SCSI adapters to install them in the DTPE image{crlf;}- If a non-sysprepped volume is selected in the image capture script, it will now warn you{crlf;}- A new task has been added to copy installation images to a Windows Deployment Services (WDS) server{crlf;}- From the Autorun application you can now specify the WDS image group to upload the image to{crlf;}- The Autorun application and HotInstall have seen HiDPI improvements{crlf;}- Partition table overrides can now be used when deploying images with the WDS Helper{crlf;}- PXE Helper Servers can now be started using a different port by holding down SHIFT and performing an action in the following places:{crlf;} - From the Autorun application{crlf;} - From the Tools > Start PXE Helper Server for... menu in the main program{crlf;}- The architecture for the WDS boot image is now picked graphically{crlf;}- The default set of DISMTools Preinstallation Environment backgrounds has been overhauled{crlf;}- The WDS Helper Client now detects the assigned volume letter for the image share more reliably{crlf;}- ISO file creation results are now displayed in a notification{crlf;}- You can now configure the keyboard layout in the Preinstallation Environment graphically{crlf;}- If the Sysprep Preparation Tool was invoked before capturing the image, temporary files and boot entries are now removed if the capture succeeds. The resulting Windows image will still not contain any of those items{crlf;}- The version reporter watermark in the DISMTools Preinstallation Environment can now detect when the environment has booted via a network{crlf;}- The PE Helper can now include your target system's essential drivers (storage controllers and network adapters) in the DISMTools Preinstallation Environment{crlf;}- The ISO creation wizard will let you specify a save location if you clicked OK without having specified one{crlf;}- You can now specify scripts written in VBScript and JScript{crlf;}- The {quot;}Enable Batch script file locks{quot;} starter script has been introduced{crlf;}- The {quot;}Remove MAX_PATH length limit{quot;} starter script has been introduced{crlf;}- The {quot;}Show and Hide System Desktop icons{quot;} starter script has been introduced{crlf;}- The {quot;}Set File Explorer Launch Folder{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Windows Admin Center/Azure Arc banner{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Shutdown Event Tracker{quot;} starter script has been introduced{crlf;}- The {quot;}Refresh Windows Explorer{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Start Menu Appearance{quot;} starter script has been introduced{crlf;}- The {quot;}Disable warnings for unsigned RDP files{quot;} starter script has been introduced{crlf;}- The {quot;}Configure PowerShell execution policy{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Power Plan Values{quot;} starter script has been introduced{crlf;}- The {quot;}Invoke Windows Utility Configuration{quot;} starter script has been updated{crlf;}- The {quot;}Restore classic context menu in Windows 11{quot;} starter script has been introduced{crlf;}- The Starter Script Editor has seen several improvements:{crlf;} - The Starter Script Editor has received dark mode support{crlf;} - The Starter Script Editor now detects read-only starter scripts and removes such attribute when saving them{crlf;} - Spacing in script code can now be normalized{crlf;}- Organizational units and users in OUs are now sorted alphabetically in the ADDS domain join wizard{crlf;}- The ADDS domain join wizard will now let you continue if you had selected an account that does not require a password{crlf;}- A task has been added to copy a pre-configured answer file to an image so that it boots to Audit mode automatically{crlf;}- The ADDS domain join wizard has seen a couple of improvements:{crlf;} - The wizard will no longer let you continue when you specify a domain account that does not exist{crlf;} - You can now test domain name resolution by invoking nslookup{crlf;} - You can now pick account objects from anywhere in your domain{crlf;}- When applying answer files you can now choose whether to copy them to the target image's Sysprep folder{crlf;}- You can now enlarge the preview area for starter script code{crlf;}- You can now configure account display names independently from account names{crlf;}- Post-installation scripts can now be reordered{crlf;}- Batch scripts with NT extensions are no longer supported{crlf;}- Service information can now be saved to a report, whether you manage a Windows image or an installation{crlf;}- Services can now be removed{crlf;}- The image information saver is now run asynchronously{crlf;}- When information about a package file can't be obtained, DISMTools will now continue processing the rest of the queue{crlf;}- Filter assistants have been added to the feature, capability, and driver information dialogs to allow you to build queries more easily{crlf;}- A new automatic image reload service is now included, to let you have all your images reloaded on system startup{crlf;}- You can now export drivers by class name{crlf;}- Image capture tasks will now warn you when source installations have not been prepared with Sysprep{crlf;}- A new task has been added to optimize Windows images{crlf;}- Support for Full Flash Utility (FFU) has been introduced. Variations of the image application, capture, split, and optimization have been introduced with FFU support{crlf;}- From the project view you can now perform commit operations to FFU files using a workaround{crlf;}- You can now get installed driver information from Windows 7 images{crlf;}- Projects and installation management modes now load and unload much faster{crlf;}- Removing provisioned AppX packages from the online installation management mode is much more reliable now{crlf;}- You can now access WIM and FFU variants of the image capture and application tasks much more easily{crlf;}- After extracting images from ISO files, the program will now let you select the most suitable installation image from it{crlf;}- You can now view information specific to FFU files when viewing mounted image properties{crlf;}- When downloading packages from App Installer files you can now copy the URLs to the main application package{crlf;}- When exporting drivers by class name or when filtering installed drivers by class name, you can now choose from third-party classes provided by third-party drivers in your Windows image or installation{crlf;}- You can now export drivers from Windows 7 images and installations{crlf;}- Saving service changes is much faster now{crlf;}- Questions asked by the image information saver are no longer asked in the background{crlf;}- FFU file commit operations are now carried out when saving changes to mounted FFU files after performing image tasks such as adding packages or enabling features{crlf;}- An option has been added to prevent the machine from sleeping while performing image operations{crlf;}- Help documentation has seen a major visual refresh{crlf;}- File associations are now set for the Starter Script Editor{crlf;}- The home screen has seen a visual overhaul{crlf;}- 7-Zip has been updated to version 26.01{crlf;}- CODE: setting load and save functionality has been revamped{crlf;}- The Starter Script Editor and the theme designer can now be invoked from the Tools menu{crlf;}- In portable installations, file associations can now be toggled for the Starter Script Editor{crlf;}- The DynaLog log viewer has received support for event log filters{crlf;}- Date properties can now be displayed in a Windows-native format{crlf;}- Markdig has been updated to version 1.3.1{crlf;}- Scintilla.NET has been updated to version 6.1.2{crlf;}- The managed DISM API has been updated to version 6.0.0{crlf;}- Windows API Code Pack has been updated to version 8.0.15.2{crlf;}{crlf;}-- Removed features{crlf;}{crlf;}- The WDS preparation script has been removed in favor of the WDS Helper{crlf;}{crlf;}Changes made since last preview:{crlf;}{crlf;}-- Bugfixes{crlf;}{crlf;}- Fixed accuracy issues when performing Windows UEFI CA 2023 readiness checks on systems that were deployed using updated boot loaders{crlf;}- Fixed an issue where background processes would fail with {quot;}The parameter is incorrect{quot;} in some cases{crlf;}{crlf;}-- New features{crlf;}{crlf;}- UnattendGen has been updated to the latest version, now requiring .NET 10{crlf;}- The news feed previewer has seen several improvements{crlf;}- The Preinstallation Environment Helper now detects answer files created by Rufus, and lets you act on answer file conflicts + +[PrgAbout.Tooltip] +Text1.Label=Consulte el subreddit oficial del proyecto +Join.Coding.Wonders.Label=Unirse al servidor Discord de CodingWonders Software +Project.MDL.Label=Consulte la discusión del proyecto en los foros de My Digital Life +Project.GitHub.Label=Consulte el repositorio del proyecto en GitHub + +[PrgAbout.UpdateCheck] +Couldn.Tdownload.Message=No pudimos descargar el comprobador de actualizaciones. Razón:{crlf;}{0} + +[PrgSetup] +Set.Up.DISM.Label=Configurar DISMTools +Welcome.DISM.Tools.Label=Bienvenido a DISMTools +DISM.Tools.Free.Message=DISMTools es una interfaz gráfica basada en proyectos, gratuita y de código abierto. Para comenzar a configurar el programa, haga clic en Siguiente. +Yours.Customize.Message=Hágalo suyo. Personalice este programa a su gusto y haga clic en Siguiente. Estas opciones pueden ser configuradas en cualquier momento en la sección {quot;}Personalización{quot;} de la ventana Opciones +CustomizeProgram.Label=Personalice este programa +ColorMode.Label=Modo de color: +Language.Label=Idioma: +Log.Window.Font.Label=Fuente de la ventana de registro: +LogFile.Label=Archivo de registro: +Log.Settings.Message=Especifique las opciones del registro y haga clic en Siguiente. Dependiendo del nivel de contenido que especifique, registraremos más o menos información. Esta opción puede ser configurada en cualquier momento en la sección {quot;}Registro{quot;} de la ventana Opciones +Log.Label=¿Qué deberíamos registrar cuando realice una operación? +Anything.Like.Label=¿Hay algo más que quiera configurar? +Settings.Available.Message=Las opciones disponibles son más de las que acaba de configurar. Si desea cambiarlas, haga clic en el botón de abajo. También guardaremos esas preferencias. +Perform.Steps.Time.Label=Puede realizar estos pasos en cualquier momento. +Done.Setting.Up.Message=Ha terminado de configurar las opciones básicas para utilizar DISMTools como quiso. Haga clic en {quot;}Finalizar{quot;}, y guardaremos sus preferencias. +SetupComplete.Label=Configuración completa +Ve.Set.Things.Label=Ahora que ha configurado el programa, le recomendamos que haga lo siguiente: +Stay.Up.Date.Label=Manténgase al día para recibir nuevas características y una experiencia mejorada +Get.Started.DISM.Label=Aprenda DISMTools y el servicio de imágenes para poder manejarse mejor +Secondary.Progress.Label=Estilo del panel de progreso secundario: +Font.Readable.Log.Message=Esta fuente podría no ser legible en ventanas de registro. Aunque todavía pueda utilizarla, le recomendamos fuentes monoespaciadas para una legibilidad aumentada. +Back.Button=Atrás +Cancel.Button=Cancelar +Browse.Button=Examinar... +Default.Log.File.Button=Utilizar archivo de registro predeterminado +Configure.Settings.Button=Configurar más opciones +GetStarted.Button=Comenzar +CheckUpdates.Button=Comprobar actualizaciones +Auto.Create.Logs.CheckBox=Crear archivos de registro automáticamente en la carpeta de registros del programa +Modern.RadioButton=Moderno +Classic.RadioButton=Clásico +Log.File.Title=Especifique el archivo de registro +System.Setting.Item=Usar configuración del sistema +LightMode.Item=Modo claro +DarkMode.Item=Modo oscuro + +[PrgSetup.Actions] +UpdateChecker.Title=Comprobar actualizaciones + +[PrgSetup.Dialogs] +SaveFile.Filter=Todos los archivos|*.* + +[PrgSetup.LogLevel] +Errors.Label=Errores (Nivel 1) +File.Only.Display.Label=El archivo de registro solo debe mostrar errores tras realizar una operación. +Errors.Warnings.Label=Errores y advertencias (Nivel 2) +File.Display.Errors.Label=El archivo de registro debe mostrar errores y advertencias tras realizar una operación. +Errors.Messages.Label=Errores, advertencias y mensajes de información (Nivel 3) +File.Display.Errors.Message=El archivo de registro debe mostrar errores, advertencias y mensajes de información tras realizar una operación. +Errors.Warnings.Debug.Label=Errores, advertencias, mensajes de información y de depuración (Nivel 4) +Level3.Message=El archivo de registro debe mostrar errores, advertencias, mensajes de información y de depuración tras realizar una operación. + +[PrgSetup.Next] +Finish.Label=Finalizar + +[PrgSetup.Next.Actions] +Folder.Log.File.Message=La carpeta donde se almacenará el archivo de registro no existe. Asegúrese de que exista e inténtelo de nuevo. +Next.Button=Siguiente + +[PrgSetup.ToolTip] +Minimize.Label=Minimizar +Close.Label=Cerrar +GoBack.Label=Atrás + +[PrgSetup.Validation] +DownloadFailure.Message=No pudimos descargar el comprobador de actualizaciones. Razón:{crlf;}{0} + +[Progress] +Tasks.Label=Tareas: {0}/{1} +Progress.Label=Progreso +Image.Operations.Label=Operaciones en progreso... +Wait.Tasks.Label=Espere mientras las siguientes tareas se realizan. Esto puede llevar algo de tiempo. +Cancel.Button=Cancelar +ShowLog.Label=Mostrar registro +HideLog.Label=Ocultar registro +Show.Dismlog.File.Link=Mostrar archivo de registro de DISM (avanzado) +Wait.Label=Por favor, espere... +CurrentTask.Label=Por favor, espere... +Performing.Image.Ops.Button=Realizando operaciones con la imagen. Espere... +TaskCount.Label=Tareas: 1/{0} + +[Progress.AddCapabilities] +Add.Capabilities.Button=Añadiendo funcionalidades... +PrepareAdd.Button=Preparándonos para añadir funcionalidades... +Add.Capabilities.Item=Añadiendo funcionalidades... +AddingCapability.Item=Añadiendo funcionalidad {0} de {1}... + +[Progress.AddDrivers] +AddingDrivers.Button=Añadiendo controladores... +Preparing.Drivers.Button=Preparándonos para añadir controladores... +AddingDrivers.Item=Añadiendo controladores... +AddingDriver.Item=Añadiendo controlador {0} de {1}... + +[Progress.AddPackages] +AddingPackages.Button=Añadiendo paquetes... +Preparing.Packages.Button=Preparándonos para añadir paquetes... +AddingPackages.Item=Añadiendo {0} paquetes... +AddingPackage.Item=Añadiendo paquete {0} de {1}... + +[Progress.Packages.AddRecursive] +Gathering.Error.Level.Button=Recopilando nivel de error... + +[Progress.ProvAppx.Add] +AddingPackages.Button=Añadiendo paquetes aprovisionados AppX... +Preparing.Button=Preparándonos para añadir paquetes aprovisionados AppX... +AddingPackages.Item=Añadiendo paquetes AppX... +AddingPackage.Item=Añadiendo paquete {0} de {1}... + +[Progress.ProvPackage.Add] +AddingPackage.Button=Añadiendo paquete de aprovisionamiento... +Image.Button=Añadiendo paquete de aprovisionamiento a la imagen... + +[Progress.AppendImage] +AppendingImage.Button=Anexando a la imagen... +Appending.Mount.Dir.Button=Anexando el directorio de montaje especificado a la imagen de destino... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.ApplyFfuImage] +ApplyingImage.Button=Aplicando imagen... +Applying.Image.Dest.Button=Aplicando imagen especificada al destino especificado... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.ApplyImage] +ApplyingImage.Button=Aplicando imagen... +Applying.Image.Dest.Button=Aplicando imagen especificada al destino especificado... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.ApplyUnattend] +ApplyAnswerFile.Button=Aplicando archivo de respuesta desatendida... +Applying.Answer.Button=Aplicando archivo de respuesta desatendida especificado a la imagen de destino... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.Background] +Ready.Label=Listo +Perform.Image.Label=No se pudieron realizar las operaciones +Error.Has.Message=Ha ocurrido un error, el cual detuvo las operaciones. Lea el registro debajo para más información. +Ok.Button=Aceptar +Ready.Item=Listo + +[Progress.CaptureFfuImage] +CapturingImage.Button=Capturando imagen... +CaptureDir.Button=Capturando directorio especificado en una nueva imagen... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.CaptureImage] +CapturingImage.Button=Capturando imagen... +CaptureDir.Button=Capturando directorio especificado en una nueva imagen... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.CleanupImage] +Cleaning.Up.Image.Button=Limpiando la imagen... +RevertPending.Button=Revirtiendo acciones de servicio pendientes... +Cleaning.Up.ServicePack.Item=Limpiando archivos de copia de seguridad del Service Pack... +Cleaning.Up.Component.Item=Limpiando el almacén de componentes... +Analyzing.Component.Item=Analizando el almacén de componentes... +Checking.Comp.Store.Item=Comprobando la salud del almacén de componentes... +Scanning.Component.Item=Escaneando el almacén de componentes... +Repairing.Component.Item=Reparando el almacén de componentes... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.CleanupMounts] +Cleaning.Up.Mount.Button=Limpiando puntos de montaje... +Gathering.Error.Level.Item=Recopilando nivel de error... +Deleting.Corrupted.Button=Eliminando recursos de imágenes antiguas o corruptas... + +[Progress.Close] +Ready.Label=Listo + +[Progress.CommitImage] +CommittingImage.Button=Guardando imagen... +Saving.Changes.Image.Button=Guardando cambios en la imagen... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.ConvertImage] +ConvertingImage.Button=Convirtiendo imagen... +Converting.Image.Button=Convirtiendo imagen especificada +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.CreateProject] +CreatingProject.Label=Creando proyecto: {quot;}{0}{quot;} +CreateProject.Button=Creando estructura del proyecto de DISMTools... + +[Progress.DisableFeatures] +Disabling.Button=Deshabilitando características... +PrepareDisable.Button=Preparándonos para deshabilitar características... +Disabling.Item=Deshabilitando características... +DisablingFeature.Item=Deshabilitando característica {0} de {1}... + +[Progress.EnableFeatures] +EnablingFeatures.Button=Habilitando características... +PrepareEnable.Button=Preparándonos para habilitar características... +EnablingFeatures.Item=Habilitando características... +EnablingFeature.Item=Habilitando característica {0} de {1}... + +[Progress.ExportDrivers] +ExportingDrivers.Button=Exportando controladores... +ExportThirdParty.Button=Exportando controladores de terceros a la carpeta especificada... + +[Progress.ExportImage] +ExportingImage.Button=Exportando imagen... +Exporting.Image.Button=Exportando imagen especificada... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.GetTasks] +Tasks.Label=Tareas: 1/{0} + +[Progress.ImportDrivers] +ImportingDrivers.Button=Importando controladores... +PrepareImport.Button=Preparándonos para importar controladores de terceros... +ExportThirdParty.Item=Exportando controladores de terceros del origen de importación de controladores... +ImportThirdParty.Item=Importando controladores de terceros a la imagen de destino... + +[Progress.OSUninstall] +Uninstalling.Version.Button=Desinstalando esta versión de Windows... + +[Progress.StartRollback] +Preparing.OSRollback.Button=Preparando la desinstalación del sistema operativo... + +[Progress.Log] +HideLog.Label=Ocultar registro +ShowLog.Item=Mostrar registro + +[Progress.Logs.Operation] +Label=Registros de operación + +[Progress.Logs.DismOutput] +Label=Salida de DISM + +[Progress.MergeSWM] +MergingSwmfiles.Button=Combinando archivos SWM... +Merging.Swmfiles.WIM.Button=Combinando archivos SWM en un archivo WIM... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.MountImage] +MountingImage.Button=Montando imagen... +Mounting.Image.Button=Montando imagen especificada... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.Operation] +OptimizingImage.Label=Optimizing image... +Optimizing.Windows.Label=Optimizing Windows image... +UpgradingImage.Label=Upgrading the image... +Setting.New.Image.Label=Setting the new image edition... +Setting.ProductKey.Label=Setting the product key... +Setting.New.ProductKey.Label=Setting the new product key... +Replacing.FFU.Files.Label=Replacing FFU files... +Replacing.Original.FFU.Label=Replacing original FFU file with modified FFU file... + +[Progress.RemountImage] +RemountingImage.Button=Remontando imagen... +ReloadSession.Button=Recargando sesión de servicio para la imagen montada... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[Progress.RemoveCapabilities] +Remove.Capabilities.Button=Eliminando funcionalidades... +Remove.Capabilities.Item=Eliminando funcionalidades... +Capability.Item=Eliminando funcionalidad {0} de {1}... + +[Progress.RemoveCaps] +Preparing.Button=Preparándonos para eliminar funcionalidades... + +[Progress.RemoveDrivers] +RemovingDrivers.Button=Eliminando controladores... +Preparing.Drivers.Button=Preparándonos para eliminar controladores... +RemovingDrivers.Item=Eliminando controladores... +RemovingDriver.Item=Eliminando controlador {0} de {1}... + +[Progress.RemoveRollback] +RemoveRollback.Button=Eliminando la habilidad de desinstalación... +RemoveRevert.Button=Eliminando la habilidad para revertir a una instalación anterior de Windows... + +[Progress.RemovePackages] +RemovingPackages.Button=Eliminando paquetes... +PrepareRemove.Button=Preparándonos para eliminar paquetes... +RemovingPackages.Item=Eliminando paquetes... +RemovingPackage.Item=Eliminando paquete {0} de {1}... + +[Progress.ProvAppx.Remove] +RemovingPackages.Button=Eliminando paquetes AppX... +Preparing.Button=Preparándonos para eliminar paquetes aprovisionados AppX... +RemovingPackages.Item=Eliminando paquetes AppX... +RemovingPackage.Item=Eliminando paquete {0} de {1}... + +[Progress.RemoveVolumes] +DeletingImages.Button=Eliminando imágenes... +Prepare.Remove.Button=Preparando para eliminar imágenes de volumen... +Volume.Image.Item=Eliminando imagen de volumen {quot;}{0}{quot;}... + +[Progress.LayeredDriver] +SettingDriver.Button=Estableciendo controlador superpuesto... +Setting.Keyboard.Button=Estableciendo controlador de teclado superpuesto... + +[Progress.RollbackWindow] +SetWindow.Button=Estableciendo el margen de desinstalación... +SetDays.Button=Estableciendo el número de días en los que puede ocurrir una desinstalación... + +[Progress.ScratchSpace] +Setting.ScratchSpace.Button=Estableciendo el espacio temporal... +SetScratchSpace.Button=Estableciendo el espacio temporal de Windows PE... + +[Progress.SetTargetPath] +Setting.Target.Button=Estableciendo la ruta de destino... +Setting.Windows.Button=Estableciendo la ruta de destino de Windows PE... + +[Progress.SplitFfuImage] +SplittingImage.Button=Dividiendo imagen... +Splitting.File.Button=Dividiendo archivo FFU... + +[Progress.SplitImage] +SplittingImage.Button=Dividiendo imagen... +Splitting.WIM.File.Button=Dividiendo archivo WIM... + +[Progress.SwitchIndexes] +Switching.Image.Button=Cambiando índices de imagen... +Unmounting.Source.Button=Desmontando índice de origen... +Gathering.Error.Level.Item=Recopilando nivel de error... +Unmounting.Source.Index.Item=Desmontando índice de origen... +CurrentTask.Item=Recopilando nivel de error... +Mounting.Target.Index.Item=Montando índice de destino... + +[Progress.UnmountImage] +UnmountingImage.Button=Desmontando imagen... +Unmounting.ImageFile.Button=Desmontando archivo de imagen... +Gathering.Error.Level.Item=Recopilando nivel de error... + +[ProgressReporter] +Progress.Label=Progreso + +[ProjProps] +Bytes.Item={0} bytes (~{1}) +Getting.Project.Image.Label=Obteniendo información del proyecto y la imagen. Espere... +Name.Label=Nombre: +Location.Label=Ubicación: +Creation.Time.Date.Label=Fecha de creación: +ProjectGUID.Label=GUID del proyecto: +MountDirectory.Label=Directorio de montaje: +ImageIndex.Label=Índice de imagen: +ImageFile.Label=Archivo de imagen: +Image.Present.Project.Label=¿La imagen está presente en el proyecto? +ImageStatus.Label=Estado de imagen: +Version.Label=Versión: +Description.Label=Descripción: +Size.Label=Tamaño: +Supports.WIM.Boot.Label=¿Soporta WIMBoot? +Architecture.Label=Arquitectura: +ServicePackBuild.Label=Compilación de Service Pack: +ServicePackLevel.Label=Nivel de Service Pack: +Edition.Label=Edición: +ProductType.Label=Tipo de producto: +ProductSuite.Label=Suite de producto: +System.Root.Dir.Label=Directorio de raíz del sistema: +DirectoryCount.Label=Número de directorios: +FileCount.Label=Número de archivos: +CreationDate.Label=Fecha de creación: +ModificationDate.Label=Fecha de modificación: +Installed.Languages.Label=Idiomas instalados: +FileFormat.Label=Formato de archivo: +Image.Rwpermissions.Label=Permisos de L/E de imagen: +Recover.Label=Recuperar +Reload.Label=Recargar +Remount.Write.Label=Recargar con permisos de escritura +Ok.Button=Aceptar +Cancel.Button=Cancelar +Many.Cannot.Seen.Message=Las propiedades no pueden ser obtenidas porque aún no se ha montado una imagen. Cuando lo haga, información detallada aparecerá aquí. Haga clic aquí para montar una imagen +Props.Label=Propiedades +Yes.Button=Sí +No.Button=No +ImgMount.Label=No disponible +ImgIndex.Label=No disponible +ImgName.Label=No disponible +NotAvailable.Label=No disponible +ImgVersion.Label=No disponible +ImgMounted.Label=No disponible +ImgSize.Label=No disponible +ImgWIM.Label=No disponible +ImgHal.Label=No disponible +ImgSP.Label=No disponible +ImgEdition.Label=No disponible +ImgP.Label=No disponible +ImgSys.Label=No disponible +ImgDirs.Label=No disponible +ImgFiles.Label=No disponible +ImgCreation.Label=No disponible +ImgModification.Label=No disponible +ImgFormat.Label=No disponible +ImgRW.Label=No disponible + +[ProjectProps.FeatureUpdate] +FeatureUpdate.Label={crlf;}(act. de características: {0}) + +[ProjectProps.Image] +UndefinedImage.Label=No definida por la imagen +OpenParenthesis.Label=( +Default.Label=, predeterminado +CloseParenthesis.Label=) +File.Label=Archivo {0} + +[ProjProps.Tooltip] +Hardware.Abstraction.Label=Capa de abstracción de hardware + +[ServiceGroups] +ServiceGroup.Label={lbrace;}0{rbrace;} service(s) in group +RegisteredHost.Label={lbrace;}0{rbrace;} service(s) are registered in the service host. + +[RegistryPanel] +Image.Hives.Label=Subárboles del registro de la imagen +Load.Label=Cargar +Unload.Label=Descargar +Open.Button=Abrir +Tool.Lets.Load.Message=Esta herramienta le permite cargar los subárboles del registro de la imagen que especifique aquí a su sistema local. Esto le permite modificar la configuración de la imagen de Windows. Cuando haya terminado de modificar un subárbol, lo puede descargar aquí: +Ntuserdatdefault.User.Label=NTUSER.DAT (Usuario predeterminado) +Load.Different.Label=Si desea cargar un subárbol del registro distinto, especifique su ubicación y haga clic en Cargar: +HiveLocation.Label=Ubicación del subárbol: +PathRegistry.Label=Ubicación en el registro: +Browse.Button=Examinar... +Load.Custom.Hive=Cargar subárbol personalizado + +[RegistryPanel.Close] +HivesNeedUnload.Message=Los subárboles del registro deben ser descargados para cerrar esta ventana. ¿Desea descargarlos ahora? +HivesNotUnloaded.Message=Algunos subárboles no pudieron ser descargados. Descárguelos antes de cerrar esta ventana. + +[ReloadProject] +ImageMissing.Label=Esta imagen ya no está disponible +ImageUnavailable.Message=La imagen que fue cargada en este proyecto ya no está disponible. Esto puede ocurrir si dicha imagen fue desmontada por un programa externo. Debido a esto, el proyecto debe ser recargado. Haga clic en {quot;}Aceptar{quot;} para recargar este proyecto.{crlf;}{crlf;}NOTA: si hace clic en {quot;}Cancelar{quot;}, el proyecto será descargado +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[RemCapabilities] +Remove.Label=Eliminar funcionalidades +Image.Task.Header.Label={0} +Ok.Button=Aceptar +Cancel.Button=Cancelar +Capability.Column=Funcionalidad +State.Column=Estado + +[RemCapabilities.Initialize] +UnsupportedImage.Message=Esta acción no está soportada en esta imagen + +[RemCapabilities.Validation] +Selected.None.Message=No hay funcionalidades seleccionadas para eliminar. Seleccione algunas de ellas e inténtelo de nuevo. + +[RemDrivers] +RemoveDrivers.Label=Eliminar controladores +Image.Task.Header.Label={0} +DriverPackages.Wish.Label=Especifique los paquetes de controladores que desea eliminar y haga clic en Aceptar: +Hide.Boot.Critical.CheckBox=Ocultar controladores críticos para el arranque +Hide.Drivers.Part.CheckBox=Ocultar controladores que son parte de la distribución de Windows +Ok.Button=Aceptar +Cancel.Button=Cancelar +PublishedName.Column=Nombre publicado +Original.File.Name.Column=Nombre original del archivo +ProviderName.Column=Nombre del proveedor +ClassName.Column=Nombre de clase +Part.Windows.Column=¿Parte de la distribución de Windows? +BootCritical.Column=¿Es crítico para el arranque? +Version.Column=Versión +Date.Column=Fecha +Loading.DriverPackages.Label=Obteniendo paquetes de controladores instalados... + +[RemDrivers.Validation] +Yes.Button=Sí +Selected.Boot.Message=Ha seleccionado paquetes de controladores que son críticos para el arranque. Continuar con la eliminación de dichos paquetes podría dejar la imagen de destino sin poder arrancar. +WantContinue.Message=¿Desea continuar? +CheckedItems.Button=Sí +Selected.Part.Message=Ha seleccionado paquetes de controladores que son parte de la distribución de Windows. Continuar podría dejar algunas partes de Windows que dependan de estos contoladores inaccesibles. +ContinueQuestion.Message=¿Desea continuar? +Packages.Required.Message=Especifique los paquetes de controladores que desea eliminar e inténtelo de nuevo + +[RemPackage] +RemovePackages.Label=Eliminar paquetes +Image.Task.Header.Label={0} +PackageSource.Label=Origen: +Note.May.Message=NOTA: el programa podría mostrar paquetes que no se hayan añadido en primer lugar. Si un paquete no se ha añadido, el programa lo omitirá. +PackageRemoval.Group=Eliminación de paquetes +Package.Names.RadioButton=Especificar nombres de paquetes: +Package.Files.RadioButton=Especificar archivos de paquetes: +Browse.Button=Examinar... +Cancel.Button=Cancelar +Ok.Button=Aceptar +PackageSource.Description=Especifique un origen de paquetes: +Couldn.Tscan.Message=No pudimos escanear el origen de paquetes por archivos CAB. Inténtelo de nuevo. +DISMTools.Title=DISMTools + +[RemPackage.Validation] +No.Packages.Selected.Message=Seleccione paquetes a eliminar, e inténtelo de nuevo. +Packages.Selected.None.Title=No se han seleccionado paquetes + +[RemoveAppx] +Prov.Label=Eliminar paquetes aprovisionados AppX +Image.Task.Header.Label={0} +Ok.Button=Aceptar +Cancel.Button=Cancelar +PackageName.Column=Nombre de paquete +App.Display.Name.Column=Nombre de aplicación +Architecture.Column=Arquitectura +ResourceID.Column=ID de recursos +Version.Column=Versión +Registered.User.Column=¿Registrada a un usuario? +ViewResources.Label=Ver recursos de {0} + +[RemoveAppx.Init] +UnsupportedImage.Message=Esta acción no está soportada en esta imagen + +[RemoveAppx.Validation] +Packages.Required.Message=Especifique paquetes AppX a eliminar e inténtelo de nuevo. +Prov.Title=Eliminar paquetes aprovisionados AppX +DesktopExperience.Message=La característica Experiencia del Escritorio (DesktopExperience) debe estar habilitada para eliminar paquetes AppX en imágenes Windows Server Core/Nano Server.{crlf;}{crlf;}Habilite esta característica, arranque la imagen, e inténtelo de nuevo. + +[SaveProject] +SaveChanges.Label=¿Desea guardar los cambios de este proyecto? +ShutdownRestart.Message=Si apaga o reinicia su sistema sin desmontar las imágenes, necesitará recargar la sesión de servicio. +Yes.Button=Sí +No.Button=No +Cancel.Button=Cancelar + +[ScriptReorder] +Script.Label=Script {lbrace;}0{rbrace;} +Move.Selected.Top.Label=Move selected script to the top +Move.Selected.Previous.Label=Move selected script to the previous position +Move.Selected.Next.Label=Move selected script to the next position +Move.Selected.Bottom.Label=Move selected script to the bottom + +[ServiceManagement.Display] +MinuteS.Label={0} minuto(s) +Undefined.Label=No definido +Per.User.Label=No es un servicio por usuario +Undefined.Group.Label= + +[Services.Display] +MinutesSeconds.Message={0} minuto(s) ({1} segundos) después del primer error, {2} minuto(s) ({3} segundos) después del segundo error, {4} minuto(s) ({5} segundos) después de los errores posteriores + +[Services.Messages] +StartType.Message=El tipo de inicio seleccionado no es compatible con servicios de este tipo. El servicio seleccionado podría no funcionar correctamente o no funcionar si continúa con este tipo de inicio.{crlf;}{crlf;}¿Desea restablecer este tipo de inicio a su valor actual? +System.Done.Message=La información de servicios del sistema se ha guardado correctamente en el registro de la imagen de destino.{crlf;}{crlf;}Se ha guardado una copia de seguridad de la configuración anterior de servicios en el escritorio por si la necesita si las modificaciones no salen según lo previsto.{crlf;}{crlf;}Solo tiene que cargar el subárbol SYSTEM de la imagen de destino e importar este archivo de registro. +UnsavedClose.Message=Se han realizado algunos cambios. Al cerrar esta ventana se descartarán todos los cambios en los servicios de Windows. ¿Desea descartar estos cambios? +UnsavedReload.Message=Se han realizado algunos cambios. Al recargar la información de servicios se descartarán todos los cambios en los servicios de Windows. ¿Desea descartar estos cambios? +RemoveService.Title=Eliminar servicio +Scheduled.Deletion.Message=El servicio se ha programado correctamente para su eliminación. La eliminación se realizará cuando guarde los cambios. Si alguna vez necesita recuperar este servicio, importe la copia de seguridad de información de servicios que se creará durante el proceso de guardado. +InfoSaved.Message=No se pudo guardar la información de servicios del sistema en el registro de la imagen de destino. + +[ServiceMgmt.Messages] +Continui.Removal.Svc.Message=Continuar con la eliminación de este servicio puede hacer que el sistema de destino sea inestable o no pueda arrancar. ¿Desea continuar? + +[ServiceManagement.Progress] +Saving.Label=Guardando información de servicios... ({0}/{1}, {2}%) + +[ServiceManagement.StartTypes] +BootLoader.Label=Cargador de arranque +Iosystem.Label=Sistema de E/S +Automatic.Label=Automático +Manual.Label=Manual +Disabled.Label=Deshabilitado + +[ImageEdition] +Title.Label=Establecer edición de la imagen +Image.Task.Header.Label={0} +Target.Upgrade.Label=Edición a la que actualizar: +ServerOptions.Group=Opciones para instalaciones de servidores +Copy.EndUser.RadioButton=Copiar el Contrato de Licencia de Usuario Final (CLUF) a la siguiente ubicación: +AcceptEULA.RadioButton=Aceptar el Contrato de Licencia de Usuario Final (CLUF) y utilizar la siguiente clave de producto: +Browse.Button=Examinar... +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[ImageEdition.Initialize] +Image.Cannot.Message=Esta imagen no puede ser actualizada a ediciones superiores porque ya tiene la edición más avanzada +Windows.Message=Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores. + +[SetImageKey] +SetProductKey.Label=Establecer clave de producto +Image.Task.Header.Label={0} +Type.ProductKey.Label=Escriba la clave de producto que quiere establecer en la imagen de Windows, incluyendo los guiones: +Check.ProductKey.Message=Si desea comprobar si la clave de producto es válida para la imagen de Windows, haga clic en Validar clave. Esto también comprobará la sintaxis de la clave. +ValidateKey.Button=Validar clave +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[SetImageKey.Initialize] +Windows.Message=Las imágenes de Windows PE no pueden ser actualizadas a ediciones superiores. + +[SetImageKey.Messages] +ProductKey.Has.Label=La clave de producto no se ha escrito correctamente. +ProductKey.Windows.Label=La clave de producto es válida para esta imagen de Windows. +ProductKey.Valid.Message=La clave de producto se ha escrito correctamente, pero no es válida para esta imagen de Windows. + +[SetImageKey.Validation] +ProductKey.Valid.Message=La clave de producto se ha escrito correctamente, pero no hemos podido comprobar si es válida para esta imagen de Windows. + +[SetLayeredDriver] +UnknownInstalled.Label=Unknown/Not installed +PC.Enhanced.Label=PC/AT Enhanced Keyboard (101/102-Key) +DriverKorean.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 2) +Korean.Keyboard.Key.Item=Korean Keyboard (103/106 Key) +Japanese.Keyboard.Key.Item=Japanese Keyboard (106/109 Key) + +[SetLayeredDriver.KoreanPC] +Keyboard101.Type1.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 1) +Keyboard101.Type3.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 3) + +[LayeredDriver.Set] +Title=Establecer controlador de teclado superpuesto +Image.Task.Header.Label={0} +Intro.Message=Esta acción le permitirá establecer un controlador de teclado superpuesto para teclados japoneses y coreanos, debido a que algunos usuarios poseen teclados con teclas adicionales. Simplemente especifique el nuevo controlador superpuesto de la lista y haga clic en Aceptar +CurrentDriver.Label=Controlador de teclado superpuesto actual: +NewDriver.Label=Nuevo controlador de teclado superpuesto: +Driver.Already.Label=Este controlador ya se ha establecido +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[OSRollback] +OSUninstall.Label=Establecer margen de desinstalación del sistema operativo +Image.Task.Header.Label={0} +Default.OS.Message=Por defecto, y tras una actualización del sistema operativo, tiene 10 días para revertir a la versión anterior de Windows. Sin embargo, puede cambiar esta configuración si desea revertir al SO anterior más tarde.{crlf;}{crlf;}Utilice el deslizador numérico para aumentar o reducir el número de días que tiene para revertir a la versión anterior de Windows. Debe estar entre 2 y 60. +Amount.Days.Revert.Label=Número de días que tiene para revertir a la versión anterior de Windows: +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[RollbackWindow.Init] +OnlineOnly.Message=Esta acción solo está soportada en instalaciones activas + +[OSRollback.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[PE.Scratch] +Window.Title=Establecer espacio temporal de Windows PE +Header.Title={0} +Description.Message=El espacio temporal es la cantidad de espacio disponible que se puede escribir en el volumen del sistema de Windows PE cuando sus contenidos son copiados a la memoria. Especifique una cantidad de espacio temporal y haga clic en Aceptar. +Space.Label=Espacio temporal: +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[PETargetPath.Target] +Set.Windows.Petarget.Label=Establecer ruta de destino de Windows PE +Image.Task.Header.Label={0} +Target.Dir.Message=La ruta de destino es una carpeta donde los archivos de Windows PE serán copiados para iniciar el entorno. Especifique una ruta de destino y haga clic en Aceptar. +TargetPath.Label=Ruta de destino: +Ok.Button=Aceptar +Cancel.Button=Cancelar + +[PETargetPath.Validation] +Target.Least.Message=La ruta de destino debe tener al menos 3 caracteres y no más de 32 +Target.Start.Message=La ruta de destino debe empezar con cualquier letra que no sea A o B +DriveLetterFormat.Message=Una letra de disco debe estar seguida por : +AbsolutePath.Message=La ruta de destino debe ser absoluta, y no debe contener elementos relativos +Target.Contain.Message=La ruta de destino no debe contener espacios o comillas + +[SettingsReset] +ResetPreferences.Label=Restablecer preferencias +ProceedReset.Message=Si continúa, las configuraciones serán restablecidas a sus valores predeterminados. Cuando este proceso haya completado, regresará a la ventana principal.{crlf;}{crlf;}¿Desea continuar? +Yes.Button=Sí +No.Button=No + +[Single.Image] +Image.Seems.Only.Item=Esta imagen parece tener solo un índice +Cannot.Switch.Index.Message=No puede cambiar a otros índices. Si desea guardar los cambios de la imagen, puede hacerlo usando un índice nuevo. +Know.Indexes.Message=Para saber más acerca de los índices de una imagen, o algunas de sus propiedades específicas, ve a {quot;}Comandos > Administración de la imagen > Obtener información de imagen{quot;}, o haga clic aquí +Here.LinkText=aquí +Ok.Button=Aceptar + +[SplashScreen] +Version.Label=Version {lbrace;}0{rbrace;}.{lbrace;}1{rbrace;}.{lbrace;}2{rbrace;} + +[StarterScript] +AlreadyCreated.Message=The starter script had been created with an earlier version of the Starter Script Editor and will be saved with properties that will make it compatible with the current format. After this is done, the starter script will no longer be compatible with earlier versions of DISMTools or the Starter Script Editor.{crlf;}{crlf;}Do you want to save this file? +Editor.Label=Starter Script Editor +Dialog.Title=Starter Script Editor +SaveError.Label=Save Error +DebugEditor.Label=DISMTools Starter Script Editor version {0} ({1}_DEBUG){crlf;}{crlf;}{2} +About.Label=Acerca de +Editor.Message=DISMTools Starter Script Editor version {0}{crlf;}{crlf;}{1} +DebugVersion.Message=DISMTools Starter Script Editor version {0}_NET2REL ({1}_DEBUG){crlf;}{crlf;}{2} +Version.Message=DISMTools Starter Script Editor version {0}_NET2REL{crlf;}{crlf;}{1} +ImportExisting.Label=Import Existing Script +Unrecognized.Label=Unrecognized script +ReadFailed.Label=Could not read file contents +FileMissing.Label=The script file does not exist. +ReadOnlyFile.Message=This script file has been loaded with read-only privileges. If you make changes to this script, you must save them to a new script file or enable write access for this script. +SaveFailed.Message=Changes could not be saved to the script file. Make sure write access is present in the file. {crlf;}{crlf;}{0}{crlf;}{crlf;}To enable write access for this file, use the respective button in the toolbar. +SaveChanges.Label=Do you want to save the changes to your script file? +Name.Required.Label=You must provide a name for this starter script. +Description.Required.Label=You must provide a description for this starter script. +SaveChanges.Message=Do you want to save the changes to your script file? +ImportSelected.Message=Importing the selected script will replace existing contents of your script. +SupportedScript.Label=This script is not supported by the Starter Script Editor. +LoadFailed.Label=The contents of the script could not be loaded. +WriteAccess.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +NonMonospace.Message=You have selected a non-monospaced font. Text may not look correctly. Do you want to continue? +Name.Required.Message=You must provide a name for this starter script. +Description.Required.Message=You must provide a description for this starter script. +Window.Title=Starter Script Editor - {lbrace;}0{rbrace;} +Window.Default=Starter Script Editor +CheckScript.Message=Check this option if this script contains settings that can be configured by the user{crlf;}after importing the starter script from the Starter Script Browser. + +[Tools.ThemeDesigner.Main] +Color.Rgbclick.Label=Current Color: RGB({0}, {1}, {2}). Click to copy to clipboard + +[ThemeDesigner.Messages] +Loaded.Read.Only.Message=This theme has been loaded with read-only privileges. If you make changes, you must save them to a new file or enable write access. +Provide.Name.Label=You must provide a name for the theme. +Saved.Done.Label=The theme has been saved successfully at the specified location. +SaveTheme.Label=Could not save the theme. +Enable.Write.Access.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +ThemeDesigner.Label=Theme Designer +Name.Missing.Label=Theme name missing +SaveSuccess.Label=Save Success +SaveError.Label=Save Error +DISM.Tools.Designer.Label=DISMTools Theme Designer version {0}{crlf;}{crlf;}{1}. {2} +About.Label=Acerca de +About.Version.Message=DISMTools Theme Designer version {0}_NET2REL{crlf;}{crlf;}{1}. {2} +StarterScript.Editor.Label=Starter Script Editor + +[DynaViewer.Messages] +FileExist.Label=The file {quot;}{0}{quot;} does not exist. +File.NotFound.Message=The file {quot;}{0}{quot;} does not exist. +Log.Version.Label=DynaLog Log Viewer (DynaViewer) version {0}{crlf;}{crlf;}{1} +About.Version.Message=DynaLog Log Viewer (DynaViewer) version {0}_NET2REL{crlf;}{crlf;}{1} +Regex.Failure.Label=Regular expression failure +RegexInvalid.Message=The regular expression, {1} , has not been written correctly. The cheatsheet can help you with the queries.{0}{0} Error message: {2} + +[DynaViewer] +Proced.Entries.Double.Label=Processed entries: {lbrace;}0{rbrace;}. Double-click an entry to get its information. +Regex.Expressions.Label=Use regular expressions +MatchCase.Label=Match case +Processed.Entries.Message=Processed entries: {lbrace;}0{rbrace;}{lbrace;}1{rbrace;}. Double-click an entry to get its information. +FilteredEntries.Suffix=; Filtered entries: {lbrace;}0{rbrace;} + +[ThemeDesigner.Main] +Window.Title=DISMTools Theme Designer - {lbrace;}0{rbrace;} +Window.DefaultTitle=DISMTools Theme Designer + +[Unattend.Scripts] +ImportDone.Message=After this script is imported, please check its code for any options that you can set. That way you can customize its behavior. +Loaded.Message=The starter scripts could not be loaded. +Refreshed.Message=The starter scripts could not be refreshed. + +[UnattendMgr] +Unattended.AnswerFile.Label=Administrador de archivos de respuesta desatendida +ProjectPath.Label=Ubicación de proyecto: +Browse.Button=Examinar... +OpenFile.Button=Abrir archivo +Open.File.Location.Button=Abrir ubicación del archivo +ApplyImage.Button=Aplicar a una imagen... +FileName.Column=Nombre de archivo +Created.Column=Creado +LastModified.Column=Última modificación +LastAccessed.Column=Último acceso + +[Unattend.Scan] +FolderMissing.Message=La carpeta especificada no existe +ElementsFound.Message=La búsqueda ha finalizado. No se han encontrado elementos + +[Updater.Main] +Minimize.Label=Minimize +Close.Label=Close +DISM.Tools.Update.Label=DISMTools Update Check System - Version {0} +UpdateInfo.Label=Update information +Downloading.Update.Label=Downloading the update +Prepare.Update.Install.Label=Preparing update installation +InstallingUpdate.Label=Installing the update +Downloading.Download.Label=Downloading the update ({0}%) +Preparing.Install.Item=Preparing update installation (80%) +Preparing.Install.Label=Preparing update installation ({0}%) +Prepare.Update.Install.Item=Preparing update installation (100%) +Installing.Update.Item=Installing the update (0%) +Installing.Update.Label=Installing the update ({0}%) +InstallingComplete.Item=Installing the update (100%) + +[Updater.Main.Messages] +BranchRequired.Message=The branch parameter is necessary to be able to check for updates +Couldn.Tfetch.Label=We couldn't fetch the necessary update information. Reason:{crlf;}{0} +Updates.Available.None.Label=There aren't any updates available + +[Updater.Main.Validation] +CurrentVersion.Warning=Your current version of DISMTools may no longer work correctly if you continue using it. It is recommended that you download the latest version manually and extract/install it manually.{crlf;}{crlf;}Do not worry. Your settings are kept intact. + +[Utilities.WMIHelper] +Wmierror.Message=WMI Error + +[WDSImageCopy.ImageInfo] +Gather.ImageFile.Message=No pudimos obtener información de este archivo de imagen. Razón:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[WDSImageCopy.Messages] +Either.Source.Message=El archivo de imagen de origen no existe o no ha proporcionado ningún archivo de imagen. Especifique un archivo de imagen válido e inténtelo de nuevo. +Group.Has.None.Message=No se ha especificado ningún grupo. Especifique un grupo WDS nuevo o existente e inténtelo de nuevo. +Images.Have.None.Label=No se ha seleccionado ninguna imagen para añadirla al servidor WDS. +Image.Add.Message=Asegúrese de que la imagen que va a añadir se haya preparado con Sysprep.{crlf;}{crlf;}Si no lo ha hecho, haga clic en No, prepare la imagen e inicie el proceso de nuevo. No tiene que cerrar esta ventana.{crlf;}{crlf;}¿Desea añadir esta imagen al servidor WDS? +Wizard.Support.Message=Este asistente no es compatible con este equipo. Asegúrese de que el equipo ejecute Windows Server y tenga instalado el rol Servicios de implementación de Windows. +Boot.Image.Detected.Message=Se ha detectado una imagen de arranque. No debería usar estas imágenes como imágenes de instalación en el servidor. +UploadSuccessful.Label=Las imágenes se subieron correctamente. +Images.Uploaded.Done.Label=Las imágenes no se subieron correctamente. + +[WDSImageCopy.Progress] +UploadingImages.Label=Subiendo imágenes... +Image.Uploads.Done.Label=Subida de imágenes completada. + +[WimScriptEditor] +ConfigList.Title=Editor de lista de configuraciones de DISM +Config.List.Allows.Message=El Editor de Lista de configuraciones le permite excluir archivos y/o carpetas durante acciones que le permiten especificar estos archivos, como capturar una imagen. Puede especificar las configuraciones desde la interfaz gráfica, o puede crear el archivo de configuración manualmente. Cuando haya acabado, haga clic en el icono de Guardar. +ExclusionList.Group=Lista de exclusiones +Exclusion.Exception.List=Lista de excepción de exclusiones +Compression.Exclusion.List=Lista de exclusión de compresión +Add.Button=Añadir... +Edit.Button=Editar... +Remove.Button=Eliminar +Config.List.Load.Title=Especifique el archivo de configuración a cargar +Location.Save.Config.Title=Especifique la ubicación donde guardar el archivo de configuración +New.Tooltip=Nuevo +Open.Button=Abrir... +Save.Button=Guardar... +Toggle.Word.Wrap.Tooltip=Cambiar ajuste de línea +Help.Tooltip=Ayuda +Tools.Label=Herramientas +Exclude.User.One.Button=Excluir carpetas de OneDrive del usuario... +New.Config.List.Label=Nueva lista de configuraciones - Editor de lista de configuración de DISM +ConfigList.FileTitle={0} - Editor de lista de configuraciones de DISM +AddList.Label=Añadir entrada de {0} +AddEntry.Label=Añadir entrada de {0} + +[WimScriptEditor.Actions] +Save.Config.List.Prompt=¿Desea guardar este archivo de lista de configuraciones? +ConfigList.Title={0} - Editor de lista de configuraciones de DISM +ConfigList.FileTitle={0}{1} - Editor de lista de configuraciones de DISM + +[WimScriptEditor.Close] +Save.Config.List.Prompt=¿Desea guardar este archivo de lista de configuraciones? +ConfigList.FileTitle={0}{1} - Editor de lista de configuraciones de DISM +ConfigList.Title={0} - Editor de lista de configuraciones de DISM + +[WimScriptEditor.Editor] +ConfigList.Title={0} - Editor de lista de configuraciones de DISM +ConfigList.ModifiedTitle={0} (modificado) - Editor de lista de configuraciones de DISM + +[WimScriptEditor.OpenFile] +ConfigList.Title={0} - Editor de lista de configuraciones de DISM + +[WimScriptEditor.Content] +ConfigList.Title={0} - Editor de lista de configuraciones de DISM +ConfigList.ModifiedTitle={0} (modificado) - Editor de lista de configuraciones de DISM + +[WindowsImage.MountMode] +Yes.Button=Sí +No.Button=No + +[WindowsImage.MountStatus] +Ok.Button=Correcto +NeedsRemount.Label=Necesita recarga +Invalid.Label=Inválido + +[WindowsServices.Helper] +Service.Backed.Message=Current service information could not be backed up. Backups are used in case of a mistake during service management. You may continue, but at your own risk.{crlf;}{crlf;}The target image may not work correctly or at all after configuration, and you will not be able to recover it using previous service configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current service information? +Service.Backed.Up.Title=Service information could not be backed up + +[PEHelper.WDSImageGroup] +CreateFailed.Message=The specified WDS image group could not be created. +LoadFailed.Message=Could not get image groups. + +SpecifyGroup.Button=Specify a group in your WDS server... +Action.Choose.Label=Choose an action: +Already.Exists.Label=This group already exists. +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Refresh.Button=Actualizar +Ok.Button=OK +Cancel.Button=Cancelar + +[Casters.OfflineInstall.Boot] +Required.Message=Se requiere un arranque a la imagen de destino para instalar este paquete por completo +NotRequired.Message=No se requiere un arranque a la imagen de destino para instalar este paquete por completo + +[PrgSetup.LogPreview] +Packages.Add.Message=Agregando paquetes a la imagen montada...{crlf;}- Origen del paquete: C:\w100-glb{crlf;}- Operación de adición: selectiva{crlf;}- ¿Ignorar comprobaciones de aplicabilidad? No{crlf;}- ¿Evitar agregar el paquete si se necesitan acciones en línea? No{crlf;}- ¿Confirmar la imagen después de las operaciones? Sí{crlf;}Enumerando paquetes para agregar. Espere...{crlf;}Número total de paquetes: 128{crlf;}{crlf;}Procesando 128 paquetes...{crlf;}Paquete 1 de 128 + +[Options.LogPreview] +Packages.Add.Message=Agregando paquetes a la imagen montada...{crlf;}- Origen del paquete: C:\w100-glb{crlf;}- Operación de adición: selectiva{crlf;}- ¿Ignorar comprobaciones de aplicabilidad? No{crlf;}- ¿Evitar agregar el paquete si se necesitan acciones en línea? No{crlf;}- ¿Confirmar la imagen después de las operaciones? Sí{crlf;}Enumerando paquetes para agregar. Espere...{crlf;}Número total de paquetes: 128{crlf;}{crlf;}Procesando 128 paquetes...{crlf;}Paquete 1 de 128 + +[PrgSetup.ProgressPreview] +Wait.Label=Espere... +ImageIndexes.Message=Obteniendo índices de la imagen... + +[Options.ProgressPreview] +Wait.Label=Espere... +ImageIndexes.Message=Obteniendo índices de la imagen... + +[DynaViewer.Designer.Main] +Dyna.Log.File.Label=DynaLog Log File: +LogFiles.Filter=Log Files|*.log +Dyna.Log.Event=DynaLog Event Logs +EventTimestamp.Column=Event Timestamp +ProcessID.Column=Process ID +EventCaller.Column=Event Caller +Message.Column=Message +Browse.Button=Examinar... +Refresh.Button=Actualizar +Processed.Entries.Label=Number of processed entries: +About.ActionButton=Acerca de +LightCM.Label=Light +DarkCM.Label=Dark +SystemCM.Label=System +ColorMode.Button=Color Mode +PID.Label=PID: +EventCaller.Label=Event Caller: +Options.Heading.Label=Options: +RegexCB.Label=.* +Regex.Failure.Btn.Label=! +Aa.Label=Aa +Message.Label=Message: +Dyna.Log.Viewer.Label=DynaLog Log Viewer + +[DynaViewer.Designer.EventProps] +Num.Events.Label=Information for event of : +EventTimestamp.Label=Event Timestamp: +MethodCallers.Group=Method Callers +Field.Empty.Link=Why can the field above be empty? +Method.Function.Label=The method/function described above was called by method/function: +Logged.Method.Function.Label=The event was logged by method/function: +PID.Label=PID: +EventMessage.Label=Event Message: +NextEvent.Label=&Next Event +PreviousEvent.Label=&Previous Event +EventProps.Label=Event Properties + +[DynaViewer.Designer.Regex] +CheatsheetHelp.Label=Use the following cheatsheet when performing message queries with regular expressions: +CharacterClasses.Message=Character Classes:{crlf;}. Any character except newline{crlf;}\d Digit [0-9]{crlf;}\D Non-digit{crlf;}\w Word character [A-Za-z0-9_]{crlf;}\W Non-word character{crlf;}\s Whitespace{crlf;}\S Non-whitespace{crlf;}[abc] Any of a, b, or c{crlf;}[^abc] Not a, b, or c{crlf;}[a-z] Lowercase letter{crlf;}{crlf;}Quantifiers:{crlf;}{crlf;}* 0 or more{crlf;}- 1 or more{crlf;}{crlf;}? 0 or 1{crlf;}{lbrace;}n{rbrace;} Exactly n times{crlf;}{lbrace;}n,{rbrace;} n or more times{crlf;}{lbrace;}n,m{rbrace;} Between n and m times{crlf;}{crlf;}Anchors:{crlf;}^ Start of string/line{crlf;}$ End of string/line{crlf;}\b Word boundary{crlf;}\B Not a word boundary{crlf;}{crlf;}Groups:{crlf;}(abc) Capturing group{crlf;}(?:abc) Non-capturing group{crlf;}(?) Named group{crlf;}\1 Backreference group 1{crlf;}{crlf;}Common Examples:{crlf;}^\d+$ Only digits{crlf;}^[A-Za-z]+$ Only letters{crlf;}^\w+@\w+.\w+$ Basic email{crlf;}^\d{lbrace;}4{rbrace;}-\d{lbrace;}2{rbrace;}-\d{lbrace;}2{rbrace;}$ Date YYYY-MM-DD +PinTop.CheckBox=Pin to top +RegexCheatsheet.Label=Regular Expression Cheatsheet + +[StarterScript.Designer.Main] +New.StarterScript.Ctrl.Label=New Starter Script (Ctrl + N) +Open.StarterScript.Label=Open Starter Script File... (Ctrl + O) +Save.StarterScript.Label=Save Starter Script File... (Ctrl + S) +Save.StarterScript.Tooltip=Save Starter Script File... (Ctrl + S){crlf;}Hold down SHIFT while clicking the icon to specify the target version for the starter script while saving. +About.ToolButton=About... +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +SaveScript.Ctrl.Shift.Label=Save Starter Script File as... (Ctrl + Shift + S) +Enable.Write.Access.Button=Enable write access... +Configure.Target.Button=Configure target script version... +Change.Editor.Font.Button=Change Editor Font... +NormalizeSpacing.Button=Normalize Spacing +Starter.Scripts.Message=Starter Scripts allow you to run commands when installing Windows images with your unattended answer file. Use this application to create your own starter scripts that you can share with other people, or modify existing starter scripts to suit your needs.{crlf;}{crlf;}Use the buttons in the toolbar to create, open, and save starter scripts. +LineColumn.Label=Line, Column +WordWrap.CheckBox=Word Wrap +Import.Existing.Button=Import Existing Script... +ScriptCode.Label=Script Code: +ScriptLanguage.Label=Script Language: +Script.Description.Label=Script Description: +ScriptName.Label=Script Name: +ScriptOptions.CheckBox=Script contains configurable options +Starter.Scripts.Dtss.Filter=Starter Scripts|*.dtss +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd|PowerShell scripts|*.ps1|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript Scripts|*.js;*.jse +Import.Existing.Script.Title=Import Existing Script +StarterScript.Editor.Label=Starter Script Editor + +[StarterScript.Designer.Version] +Ok.Button=OK +Cancel.Button=Cancelar +ConfiguredScript.Message=This starter script can be configured to work with specific versions of DISMTools and the Starter Script Editor. Choose the version that you want to target with this script and click OK: +Target.Future08.RadioButton=This starter script targets DISMTools 0.8 and future versions +Target.Legacy073.RadioButton=This starter script targets DISMTools 0.7.3 +TargetVersion.Label=Choose target version for this script + +[ThemeDesigner.Designer.Main] +ThemeColors.Group=Theme Colors +OptionFour.Label=4 +OptionThree.Label=3 +OptionTwo.Label=2 +OptionOne.Label=1 +Change.Button=Cambiar... +Bg.Color.Inner.Label=Background Color for Inner Sections: +ForegroundColor.Label=Foreground Color: +Inactive.Colors.Label=(Inactive colors are calculated by the theme engine) +AccentColors.Label=Accent Colors: +BackgroundColor.Label=Background Color: +DISM.Tools.Dark.CheckBox=DISMTools should use dark mode glyphs +ThemeName.Label=Theme Name: +See.Changes.Live.Label=See your changes live on the preview section below: +NewTheme.Label=New Theme +Open.Theme.File.Button=Open Theme File... +Save.Theme.File.Button=Save theme file... +About.Button=About... +Value.Option4.Label=4 +Value.Option3.Label=3 +Value.Option2.Label=2 +Heuristic.Reasoning.Message=Heuristic reasoning is reasoning not regarded as final and strict but as provisional and plausible only, whose purpose is to discover the solution of the present problem. We are often obliged to use heuristic reasoning. We shall attain complete certainty when we shall obtain the complete solution, but before obtaining certainty we must often be satisfied with a more or less plausible guess. We may need the provisional before we attain the final. +Inactivecontrol.Label=INACTIVE CONTROL +Activecontrol.Label=ACTIVE CONTROL +Label.Inner.Section.Label=Label in Inner Section +Value.Option1.Label=1 +TestControl.Label=Test Control 1 +Theme.Files.Ini.Filter=Theme Files|*.ini +SaveFile.Filter=Theme Files|*.ini +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +Enable.Write.Access.Button=Enable write access... +DISM.Tools.Theme.Label=DISMTools Theme Designer + +[Updater.Designer.Main] +DISM.Tools.Update.Label=DISMTools Update Check System - Version +ProductUpdates.Label=Product updates +Update.Button=Update +View.Release.Notes.Link=View release notes +VersionInfo.Label=Version information +Close.Open.Message=Please close any open DISMTools windows, while saving any projects loaded, and then click {quot;}Update{quot;} +NewVersion.Label=There is a new version available to download and install: +Progress.Label=Progreso +CheckingUpdates.Label=Checking for updates... +Launch.Ready.CheckBox=Launch when ready +Finishing.Update.Label=Finishing update installation +InstallingUpdate.Label=Installing the update +Prepare.Update.Install.Label=Preparing update installation +Downloading.Update.Label=Downloading the update +Update.Take.Time.Label=The update may take some time to install. +Wait.Update.Label=Please wait while we update your copy of DISMTools. This may take some time. +Updating.DISM.Tools.Label=Updating DISMTools... +Launch.Button=Launch +Version.Come.New.Message=This version may come with new settings you may not have set previously. Your old settings file will be migrated to this version. +DISM.Tools.Updated.Label=DISMTools has been updated successfully. You can now enjoy the new features of this release. +UpdateComplete.Label=Update complete + +[PEHelper.Designer.Main] +WhatWant.Label=What do you want to do? +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartPXE.Link=Start a PXE Helper Server for Network Installation +Exit.Button=Salir +Explore.Contents.Disc.Link=Explore contents of this disc +Prepare.System.Image.Link=Prepare System for Image Capture +PE.Helper.Message=PE Helper Scripts and Components (c) 2024-2026 CodingWonders SoftwareCompilation Scripts (c) 2022 CT Tech Group LLCFOG PowerShell API (c) 2020 JJ Fullmer +StartPXE.Label=Start a PXE Helper Server for Network Installation +Back.Button=Atrás +Copy.Install.Image.Link=Copy installation image to WDS server +Copy.Boot.Image.Link=Copy boot image to WDS server +StartPXE.PXEFOG.Link=Start PXE Helper Server for FOG +StartPXE.PXE.Windows.Link=Start PXE Helper Server for Windows Deployment Services +DISM.Tools.PE.Label=DISMTools Preinstallation Environment + +[PEHelper.Designer.ServerPort] +Ok.Button=OK +Cancel.Button=Cancelar +Components.Disc.Rely.Message=Server components in this disc rely on ports to listen to requests from clients. If a port is in use by another program or service, you can use this dialog to specify a different port for the server components.{crlf;}{crlf;}The port you specify here will be used until you close the main menu. When you click OK, the server component will be launched using that port. Otherwise, it will be launched using either the default port or the previously configured port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[PEHelper.Designer.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +Cancel.Link=Cancel launch of this tool +ManualMode.Link=Launch in Manual mode (advanced) +AutomaticMode.Link=Launch in Automatic mode (recommended) +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other preferences to new user profiles +PrepareCapture.Label=Prepare System for Image Capture + +[PEHelper.Designer.WDSArch] +Okbutton.Button=OK +CancelButton.Button=Cancelar +Architecture.Label=Target architecture: +Architecture.Label.Label=Specify architecture for target WDS boot image + +[PEHelper.Designer.WDSGroup] +Ok.Button=OK +Cancel.Button=Cancelar +Action.Choose.Label=Choose an action: +Refresh.Button=Actualizar +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[PEHelper.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +AutomaticMode.Link=Launch in Automatic mode (recommended) +ManualMode.Link=Launch in Manual mode (advanced) +Cancel.Link=Cancel launch of this tool +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other current preferences for new user profiles + +[Progress.LogText] +Of.Word={space;}de{space;} +Creating.Project.Structure=Creando la estructura del proyecto... +Project.Created.Successfully=El proyecto se creó correctamente. +An.Error.Has.Occurred.Please.Read.The.Details=An error has occurred. Please read the details below:{space;} +Debugging.Information=Debugging information:{space;} +Appending.Mount.Directory.To.Specified.Target.Image=Appending mount directory to specified target image... +Options=Opciones: +Source.Image.Directory=- Source image directory:{space;} +Destination.Image.File=- Destination image file:{space;} +Destination.Image.Name=- Destination image name:{space;} +Destination.Image.Description=- Destination image description:{space;} +None.Specified=(ninguno especificado) +Configuration.List.File.Not.Specified=- Configuration list file: not specified +Configuration.List.File=- Configuration list file:{space;} +WARNING.The.Configuration.List.File.Does.Not.Exist={space;}{space;}{space;}WARNING: the configuration list file does not exist in the file system. Skipping file... +Append.Image.With.WIMBOOT.Configuration=- Append image with WIMBoot configuration?{space;} +Yes=Sí +No=No +Make.Image.Bootable=- Make image bootable?{space;} +Verify.Image.Integrity=- Verify image integrity?{space;} +Check.For.File.Errors=- Check for file errors?{space;} +Use.The.Reparse.Point.Tag.Fix=- Use the reparse point tag fix?{space;} +Capture.Extended.Attributes=- Capture extended attributes?{space;} +Gathering.Error.Level=Obteniendo el nivel de error... +Error.Level.0x={space;}{space;}{space;}{space;}Error level : 0x +Error.Level={space;}{space;}{space;}{space;}Error level :{space;} +Applying.Image=Aplicando imagen... +Source.Image.File=- Source image file:{space;} +Index.To.Apply=- Index to apply:{space;} +Target.Directory=- Target directory:{space;} +Split.FFU.SFU.File.Pattern.Not.Specified.Not=- Split FFU (SFU) file pattern: not specified/not using SFU file +Split.FFU.SFU.File.Pattern=- Split FFU (SFU) file pattern:{space;} +Verify.Image.Integrity.Yes=- Verify image integrity? Yes +Verify.Image.Integrity.No=- Verify image integrity? No +Check.For.File.Errors.Yes=- Check for file errors? Yes +Check.For.File.Errors.No=- Check for file errors? No +Use.Reparse.Point.Tag.Fix.Yes=- Use reparse point tag fix? Yes +Use.Reparse.Point.Tag.Fix.No=- Use reparse point tag fix? No +Split.WIM.SWM.File.Pattern.Not.Specified.Not=- Split WIM (SWM) file pattern: not specified/not using SWM file +Split.WIM.SWM.File.Pattern=- Split WIM (SWM) file pattern:{space;} +Validate.For.Trusted.Desktop.Yes=- Validate for Trusted Desktop? Yes +Validate.For.Trusted.Desktop.No.Not.Supported=- Validate for Trusted Desktop? No/Not supported +Apply.Using.WIMBOOT.Configuration.Yes=- Apply using WIMBoot configuration? Yes +Apply.Using.WIMBOOT.Configuration.No=- Apply using WIMBoot configuration? No +Use.Compact.Mode.Yes=- Use Compact mode? Yes +Use.Compact.Mode.No=- Use Compact mode? No +Apply.Using.Extended.Attributes.Yes=- Apply using extended attributes? Yes +Apply.Using.Extended.Attributes.No=- Apply using extended attributes? No +Capturing.Directory=Capturando directorio... +Source.Directory=- Source directory:{space;} +Destination.Image=- Destination image:{space;} +Captured.Image.Name=- Captured image name:{space;} +Captured.Image.Description.None.Specified=- Captured image description: none specified +Captured.Image.Description=- Captured image description:{space;} +Compression.Type.None=- Compression type: none +Compression.Type.Default=- Compression type: default +Capturing.Image=Capturando imagen... +Compression.Type.Fast=- Compression type: fast +Compression.Type.Maximum=- Compression type: maximum +Mark.Image.As.Bootable.Yes=- Mark image as bootable? Yes +Mark.Image.As.Bootable.No=- Mark image as bootable? No +Check.Image.Integrity.Yes=- Check image integrity? Yes +Check.Image.Integrity.No=- Check image integrity? No +Verify.File.Errors.Yes=- Verify file errors? Yes +Verify.File.Errors.No=- Verify file errors? No +Use.The.Reparse.Point.Tag.Fix.Yes=- Use the Reparse Point tag fix? Yes +Use.The.Reparse.Point.Tag.Fix.No=- Use the Reparse Point tag fix? No +Append.With.WIMBOOT.Configuration.Yes=- Append with WIMBoot configuration? Yes +Append.With.WIMBOOT.Configuration.No=- Append with WIMBoot configuration? No +Capture.Extended.Attributes.Yes=- Capture extended attributes? Yes +Capture.Extended.Attributes.No=- Capture extended attributes? No +Cleaning.Up.Mount.Points=Cleaning up mount points... +This.Can.Take.Some.Time.Depending.On.The=This can take some time, depending on the drives connected to this system. +Saving.Changes=Guardando cambios... +Mount.Directory=- Mount directory:{space;} +Removing.Volume.Images.From.File=Removing volume images from file... +Source.Image=- Source image:{space;} +Removing.Volume.Images=Removing volume images... +Error.Level.2={space;}Error level :{space;} +Error.Level.0x.2={space;}Error level : 0x +Exporting.The.Specified.Image.To.A.Destination.Image=Exporting the specified image to a destination image... +Source.Image.Index=- Source image index:{space;} +Compression.Type.No.Compression=- Compression type: no compression +Compression.Type.Fast.Compression=- Compression type: fast compression +Compression.Type.Maximum.Compression=- Compression type: maximum compression +Compression.Type.ESD.Conversion.Recovery=- Compression type: ESD conversion (recovery) +Mark.The.Image.As.Bootable=- Mark the image as bootable?{space;} +Check.Image.Integrity.Before.Exporting.The.Image=- Check image integrity before exporting the image?{space;} +NOTE.The.Source.Image.Contains.An.Asterisk.Sign=NOTE: the source image contains an asterisk sign (*) in the file name to merge all SWM files +Mounting.Image=Montando imagen... +Image.File=- Image file:{space;} +Image.Index=- Image index:{space;} +Mount.Point=- Mount point:{space;} +Mount.Image.With.Read.Only.Permissions.Yes=- Mount image with read-only permissions? Yes +Mount.Image.With.Read.Only.Permissions.No=- Mount image with read-only permissions? No +Optimize.Mount.Time.Yes=- Optimize mount time? Yes +Optimize.Mount.Time.No=- Optimize mount time? No +Optimizing.Windows.Image=Optimizing Windows image... +Source.Image.To.Optimize=- Source image to optimize:{space;} +Partition.To.Optimize=- Partition to optimize:{space;} +Default.Partition.In.The.FFU.Will.Be.Optimized={space;}(Default partition in the FFU will be optimized) +Getting.Error.Level=Getting error level... +Optimization.Mode=- Optimization mode:{space;} +Reduce.Online.Configuration.Time=Reduce online configuration time +Prepare.Image.For.WIMBOOT.System=Prepare image for WIMBoot system +Reloading.Servicing.Session=Reloading servicing session... +Splitting.FFU.File.Into.SFU.Files=Splitting FFU file into SFU files... +Source.Image.File.To.Split=- Source image file to split:{space;} +Maximum.Size.Of.The.Split.Images.In.MB=- Maximum size of the split images (in MB):{space;} +Name.And.Path.Of.The.Target.SFU.File=- Name and path of the target SFU file:{space;} +Check.Integrity.Before.Splitting.This.Image=- Check integrity before splitting this image?{space;} +Do.Note.That.If.The.Image.Contains.A=Do note that, if the image contains a large file that can't fit within the maximum size, a SFU file may be larger than the rest, to accommodate it. +Splitting.WIM.File.Into.SWM.Files=Splitting WIM file into SWM files... +Name.And.Path.Of.The.Target.SWM.File=- Name and path of the target SWM file:{space;} +Do.Note.That.If.The.Image.Contains.A.2=Do note that, if the image contains a large file that can't fit within the maximum size, a SWM file may be larger than the rest, to accommodate it. +Unmounting.Image.File.From.Mount.Point=Unmounting image file from mount point... +Unmount.Operation.Commit=- Unmount operation: Commit +Unmount.Operation.Discard=- Unmount operation: Discard +Append.Changes.To.New.Index.Yes=- Append changes to new index? Yes +Append.Changes.To.New.Index.No=- Append changes to new index? No +Package.Name=- Package name:{space;} +Package.Description=- Package description:{space;} +Package.Release.Type=- Package release type:{space;} +Package.Is.Applicable.To.This.Image=- Package is applicable to this image?{space;} +Package.Is.Already.Installed=- Package is already installed?{space;} +Total.Number.Of.Packages=Total number of packages:{space;} +Exception=Exception{space;} +Has.Occurred.While.Enumerating.Packages.Enumerating.Packages.In={space;}has occurred while enumerating packages. Enumerating packages in the top folder... +Total.Number.Of.Packages.1=Total number of packages: 1 +Adding.Packages.To.Mounted.Image=Adding packages to mounted image... +Package.Source=- Package source:{space;} +Addition.Operation.Recursive=- Addition operation: recursive +Addition.Operation.Selective=- Addition operation: selective +Ignore.Applicability.Checks.Yes=- Ignore applicability checks? Yes +Ignore.Applicability.Checks.No=- Ignore applicability checks? No +Prevent.Package.Addition.If.Online.Actions.Need.To=- Prevent package addition if online actions need to be performed? Yes +NOTE.If.The.Mounted.Image.Requires.That.Online=NOTE: if the mounted image requires that online actions be performed, all packages might fail installation; but the operation might still be successful +Prevent.Package.Addition.If.Online.Actions.Need.To.2=- Prevent package addition if online actions need to be performed? No +Commit.Image.After.Operations.Are.Done.Yes=- Commit image after operations are done? Yes +Commit.Image.After.Operations.Are.Done.No=- Commit image after operations are done? No +Enumerating.Packages.To.Add.Please.Wait=Enumerating packages to add. Please wait... +Processing=Processing{space;} +Packages={space;}packages... +Some.Packages.Require.A.System.Restart.To.Be=Some packages require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Package=Package{space;} +Package.Is.Already.Added.Skipping.Installation.Of.This=Package is already added. Skipping installation of this package... +Package.Is.Not.Applicable.To.This.Image.Skipping=Package is not applicable to this image. Skipping installation of this package... +The.Package.About.To.Be.Added.Is.A=The package about to be added is a MSU file. Continuing... +Processing.Package=Processing package... +Error.Level.3={space;}Error level:{space;} +Gathering.Error.Level.For.Selected.Packages=Gathering error level for selected packages... +Package.No=- Package no.{space;} +The.Package.About.To.Be.Added.Is.A.2=The package about to be added is a Microsoft Update Manifest (MUM) file. +Removing.Packages.From.Mounted.Image=Removing packages from mounted image... +Enumerating.Packages.To.Remove.Please.Wait=Enumerating packages to remove. Please wait... +Amount.Of.Packages.To.Remove=Amount of packages to remove:{space;} +Package.State.Installed=- Package state: installed +Package.State.An.Uninstall.Is.Pending=- Package state: an uninstall is pending +Package.State.An.Install.Is.Pending=- Package state: an install is pending +Processing.Package.Removal=Processing package removal... +This.Package.Can.T.Be.Removed.Skipping.Removal=This package can't be removed. Skipping removal of this package... +Package.State=- Package state:{space;} +Enabling.Features=Enabling features... +Use.Parent.Package.To.Enable.Features.Yes=- Use parent package to enable features? Yes +Use.Parent.Package.To.Enable.Features.No=- Use parent package to enable features? No +Parent.Package.Name.Not.Specified=- Parent package name: not specified +Parent.Package.Name=- Parent package name:{space;} +Use.Feature.Source.Yes=- Use feature source? Yes +Use.Feature.Source.No=- Use feature source? No +Feature.Source.Not.Specified=- Feature source: not specified +Feature.Source=- Feature source:{space;} +Enable.All.Parent.Features.Yes=- Enable all parent features? Yes +Enable.All.Parent.Features.No=- Enable all parent features? No +Contact.Windows.Update.Yes=- Contact Windows Update? Yes +Contact.Windows.Update.No.The.System.Is.In=- Contact Windows Update? No, the system is in Safe Mode +Contact.Windows.Update.No.This.Is.Not.An=- Contact Windows Update? No, this is not an online installation +Contact.Windows.Update.No=- Contact Windows Update? No +Commit.Image.After.Enabling.Features.Yes=- Commit image after enabling features? Yes +Commit.Image.After.Enabling.Features.No=- Commit image after enabling features? No +Enumerating.Features.To.Enable=Enumerating features to enable... +Total.Number.Of.Features.To.Enable=Total number of features to enable:{space;} +Feature=Feature{space;} +Feature.Name=- Feature name:{space;} +Feature.Description=- Feature description:{space;} +Gathering.Error.Level.For.Selected.Features=Gathering error level for selected features... +Feature.No=- Feature no.{space;} +Some.Features.Require.A.System.Restart.To.Be=Some features require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Disabling.Features=Disabling features... +Use.Parent.Package.To.Disable.Features.Yes=- Use parent package to disable features? Yes +Use.Parent.Package.To.Disable.Features.No=- Use parent package to disable features? No +Remove.Feature.Manifest.Yes=- Remove feature manifest? Yes +Remove.Feature.Manifest.No=- Remove feature manifest? No +Enumerating.Features.To.Disable=Enumerating features to disable... +Total.Number.Of.Features.To.Disable=Total number of features to disable:{space;} +Reverting.Pending.Servicing.Actions=Reverting pending servicing actions... +Cleaning.Up.Service.Pack.Backup.Files=Cleaning up Service Pack backup files... +Hide.Service.Packs.From.The.Installed.Updates.List=- Hide Service Packs from the Installed Updates list?{space;} +Cleaning.Up.The.Component.Store=Cleaning up the component store... +Perform.Superseded.Component.Base.Reset=- Perform superseded component base reset?{space;} +Defer.Long.Running.Operations=- Defer long-running operations?{space;} +Analyzing.The.Component.Store=Analyzing the component store... +Checking.The.Component.Store.Health=Checking the component store health... +Scanning.The.Component.Store=Scanning the component store... +Repairing.The.Component.Store=Repairing the component store... +Use.Different.Source=- Use different source?{space;} +Yes.2=Yes ( +Limit.Windows.Update.Access=- Limit Windows Update access?{space;} +No.This.Is.Not.An.Online.Installation=No, this is not an online installation +The.System.Is.In.Safe.Mode=, the system is in Safe Mode +Adding.Provisioning.Package.To.The.Image=Adding provisioning package to the image... +Provisioning.Package=- Provisioning package:{space;} +Catalog.File=- Catalog file:{space;} +None.Specified.2=ninguno especificado +Commit.Image.After.Adding.Provisioning.Package=- Commit image after adding provisioning package?{space;} +Adding.Provisioned.APPX.Packages=Adding provisioned AppX packages... +Use.A.License.File.For.APPX.Packages.Yes=- Use a license file for AppX packages? Yes +License.File=- License file:{space;} +Use.A.License.File.For.APPX.Packages.No=- Use a license file for AppX packages? No +License.File.Not.Using=- License file: not using +Use.A.Custom.Data.File.For.APPX.Packages=- Use a custom data file for AppX packages? Yes +Custom.Data.File=- Custom data file:{space;} +Use.A.Custom.Data.File.For.APPX.Packages.2=- Use a custom data file for AppX packages? No +Custom.Data.File.Not.Using=- Custom data file: not using +Use.All.Regions.For.APPX.Packages.Yes=- Use all regions for AppX packages? Yes +Package.Regions.All=- Package regions: all +Use.All.Regions.For.APPX.Packages.No=- Use all regions for AppX packages? No +Package.Regions=- Package regions:{space;} +Commit.Image.After.Adding.APPX.Packages.Yes=- Commit image after adding AppX packages? Yes +Commit.Image.After.Adding.APPX.Packages.No=- Commit image after adding AppX packages? No +Enumerating.APPX.Packages.To.Add=Enumerating AppX packages to add... +Total.Number.Of.Packages.To.Add=Total number of packages to add:{space;} +APPX.Package.File=- AppX package file:{space;} +Application.Name=- Application name:{space;} +Application.Publisher=- Application publisher:{space;} +Application.Version=- Application version:{space;} +The.Application.About.To.Be.Added.Is.An=The application about to be added is an encrypted file. Since the program is managing the active installation, a PowerShell command will be run. +The.Application.About.To.Be.Added.Is.An.2=The application about to be added is an encrypted file. Encrypted packages can only be added to active installations. Skipping this package... +Warning.The.License.File.Does.Not.Exist.Continuing=Warning: the license file does not exist. Continuing without one... +Do.Note.That.If.This.App.Requires.A={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Do note that, if this app requires a license file, it may fail addition. +Also.This.May.Compromise.The.Image={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Also, this may compromise the image. +The.Following.Dependency.Packages.Will.Be.Installed.Alongside=- The following dependency packages will be installed alongside this application: +Dependency={space;}{space;}{space;}{space;}- Dependency:{space;} +Warning.The.Dependency=Warning: the dependency +Does.Not.Exist.In.The.File.System.Skipping=does not exist in the file system. Skipping dependency... +Warning.The.Custom.Data.File.Does.Not.Exist=Warning: the custom data file does not exist. Continuing without one... +Gathering.Error.Level.For.Selected.APPX.Packages=Gathering error level for selected AppX packages... +Application.Is.Registered.To.A.User.No=- Application is registered to a user? No +Application.Is.Registered.To.A.User.Yes=- Application is registered to a user? Yes +The.Removal.Of.This.Application.May.Require.You={space;}{space;}The removal of this application may require you to use PowerShell to completely remove it +A.PowerShell.Helper.Will.Be.Used.To.Remove=A PowerShell helper will be used to remove AppX packages. Please wait... +Log.Off.For.The.Deprovisioning.Of.Applications.To=Log off for the deprovisioning of applications to be fully carried out. +Removing.Provisioned.APPX.Packages=Removing provisioned AppX packages... +Enumerating.APPX.Packages.To.Remove=Enumerating AppX packages to remove... +Total.Number.Of.Packages.To.Remove=Total number of packages to remove:{space;} +Display.Name=- Display name:{space;} +Setting.The.Keyboard.Layered.Driver=Setting the keyboard layered driver... +Current.Keyboard.Layered.Driver=- Current keyboard layered driver:{space;} +New.Keyboard.Layered.Driver=- New keyboard layered driver:{space;} +Adding.Capabilities.To.Mounted.Image=Adding capabilities to mounted image... +Use.A.Source.For.Capability.Addition=- Use a source for capability addition?{space;} +Capability.Source=- Capability source:{space;} +No.Source.Has.Been.Provided=No source has been provided +Limit.Access.To.Windows.Update=- Limit access to Windows Update?{space;} +Commit.Image.After.Adding.Capabilities=- Commit image after adding capabilities?{space;} +Warning.The.Specified.Source.Does.Not.Exist.In=Warning: the specified source does not exist in the file system, and it will be skipped +Enumerating.Capabilities.To.Add.Please.Wait=Enumerating capabilities to add. Please wait... +Total.Number.Of.Capabilities=Total number of capabilities:{space;} +Capability=Capability{space;} +Capability.Identity=- Capability identity:{space;} +Capability.Name=- Capability name:{space;} +Capability.Description=- Capability description:{space;} +Gathering.Error.Level.For.Selected.Capabilities=Gathering error level for selected capabilities... +Capability.No=- Capability no.{space;} +Some.Capabilities.Require.A.System.Restart.To.Be=Some capabilities require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Removing.Capabilities.From.Mounted.Image=Removing capabilities from mounted image... +Enumerating.Capabilities.To.Remove.Please.Wait=Enumerating capabilities to remove. Please wait... +Setting.The.New.Image.Edition=Setting the new image edition... +New.Edition=- New edition:{space;} +Will.The.EULA.Be.Copied=- Will the EULA be copied?{space;} +Yes.To.The.Following.Destination=Yes, to the following destination:{space;} +Will.The.EULA.Be.Accepted=- Will the EULA be accepted?{space;} +Yes.With.The.Following.Product.Key=Yes, with the following product key:{space;} +Setting.The.New.Product.Key=Setting the new product key... +New.Product.Key=- New product key:{space;} +Adding.Driver.Packages.To.Mounted.Image=Adding driver packages to mounted image... +Force.Installation.Of.Unsigned.Drivers=- Force installation of unsigned drivers?{space;} +Commit.Image.After.Adding.Driver.Packages=- Commit image after adding driver packages?{space;} +Warning.The.Option.To.Force.Installation.Of.Unsigned=Warning: the option to force installation of unsigned drivers has been checked. Do note that unsigned drivers might cause instability on the resulting Windows image. +Enumerating.Drivers.To.Add.Please.Wait=Enumerating drivers to add. Please wait... +Total.Number.Of.Drivers=Total number of drivers:{space;} +Driver=Driver{space;} +Hardware.Description=- Hardware description:{space;} +Hardware.ID=- Hardware ID:{space;} +Additional.IDs=- Additional IDs +Compatible.IDs={space;}{space;}- Compatible IDs:{space;} +Excluded.IDs={space;}{space;}- Excluded IDs:{space;} +Hardware.Manufacturer=- Hardware manufacturer:{space;} +Hardware.Architecture=- Hardware architecture:{space;} +This.Driver.File.Targets.More.Than.10.Devices=This driver file targets more than 10 devices. To avoid creating log files large in size, we will not show information of this driver package, and will proceed anyway. +If.You.Want.To.Get.Information.Of.This=If you want to get information of this driver package, go to Commands > Drivers > Get driver information > I want to get information about driver files, and specify this driver file: +We.Couldn.T.Get.Information.Of.This.Driver=We couldn't get information of this driver package. Proceeding anyway... +The.Driver.Package.Currently.About.To.Be.Processed=The driver package currently about to be processed is a folder, so information about it can't be obtained. Proceeding anyway... +This.Folder.Will.Be.Scanned.Recursively.Driver.Addition=This folder will be scanned recursively. Driver addition may take a longer time... +Gathering.Error.Level.For.Selected.Drivers=Gathering error level for selected drivers... +Driver.No=- Driver no.{space;} +Removing.Driver.Packages.From.Mounted.Image=Removing driver packages from mounted image... +Getting.Image.Drivers.This.May.Take.Some.Time=Getting image drivers. This may take some time... +Enumerating.Drivers.To.Remove.Please.Wait=Enumerating drivers to remove. Please wait... +Exporting.Drivers.To.Specified.Folder=Exporting drivers to specified folder... +Export.Target=- Export target:{space;} +Export.All.Drivers.Or.Just.Those.With.Matching=- Export all drivers, or just those with matching class names?{space;} +All.Drivers=Todos los controladores +Drivers.With.Matching.Class.Name=Drivers with matching class name +If.Not.All.Drivers.Are.Exported.Which.Class=- If not all drivers are exported, which class name is used for drivers that will be exported?{space;} +Driver.S.Will.Be.Exported.To.The.Destination={space;}driver(s) will be exported to the destination +Exporting.Driver.File=Exporting driver file{space;} +Getting.Image.Drivers=Getting image drivers... +Importing.Third.Party.Drivers=Importing third party drivers... +Driver.Import.Source.Windows.Image=- Driver import source: Windows image ( +Driver.Import.Source.Active.Installation=- Driver import source: active installation +Driver.Import.Source.Offline.Installation=- Driver import source: offline installation ( +Creating.Temporary.Folder.For.Driver.Exports=Creating temporary folder for driver exports... +The.Temporary.Folder.Could.Not.Be.Created.See=The temporary folder could not be created. See below for reasons why: +Exporting.Third.Party.Drivers.From.Import.Source=Exporting third-party drivers from import source... +Importing.Third.Party.Drivers.From.The.Temporary.Export=Importing third-party drivers from the temporary export directory to the destination image... +Deleting.Temporary.Export.Directory=Deleting temporary export directory... +We.Couldn.T.Delete.The.Temporary.Export.Directory=We couldn't delete the temporary export directory. You'll need to delete the{space;} +Export.Temp=export_temp +Directory.Manually={space;}directory manually. +Published.Name=- Published name:{space;} +Provider.Name=- Provider name:{space;} +Class.Name=- Class name:{space;} +Class.Description=- Class description:{space;} +Class.GUID=- Class GUID:{space;} +Version.And.Date=- Version and date:{space;} +Is.Part.Of.The.Windows.Distribution=- Is part of the Windows distribution?{space;} +Is.Critical.To.The.Boot.Process=- Is critical to the boot process?{space;} +Warning.This.Driver.Package.Is.Part.Of.The=Warning: this driver package is part of the Windows distribution. Some areas may no longer work after this driver has been removed +Warning.This.Driver.Package.Is.Critical.To.The=Warning: this driver package is critical to the boot process. The target image may no longer boot or work correctly after this driver has been removed +Applying.Unattended.Answer.File.Options=Applying unattended answer file. Options: +Unattended.Answer.File=- Unattended answer file:{space;} +Creating.Directories.And.Copying.Files=Creating directories and copying files... +The.Unattended.Answer.File.Has.Been.Successfully.Copied=The unattended answer file has been successfully copied. +Setting.The.Windows.PE.Target.Path=Setting the Windows PE target path... +New.Target.Path=- New target path:{space;} +Setting.The.Windows.PE.Scratch.Space=Setting the Windows PE scratch space... +New.Scratch.Space.Amount=- New scratch space amount:{space;} +Setting.The.Amount.Of.Days.An.Uninstall.Can=Setting the amount of days an uninstall can happen... +Number.Of.Days=Number of days:{space;} +Removing.The.Ability.To.Revert.To.An.Old=Removing the ability to revert to an old installation of Windows... +Preparing.Operating.System.Rollback=Preparing operating system rollback... +Converting.Image=Converting image... +Index.To.Convert=- Index to convert:{space;} +Image.Conversion.Mode.Windows.Imaging.WIM.Electronic.Software=- Image conversion mode: Windows Imaging (WIM) --> Electronic Software Distribution (ESD) +Image.Conversion.Mode.Electronic.Software.Distribution.ESD.Windows=- Image conversion mode: Electronic Software Distribution (ESD) --> Windows Imaging (WIM) +Merging.SWM.Files.Into.A.WIM.File=Merging SWM files into a WIM file... +Target.Index=- Target index:{space;} +Switching.Image.Indexes=Switching image indexes... +Target.Mount.Directory=- Target mount directory:{space;} +Target.Image.Index=- Target image index:{space;} +Commit.Source.Index.Yes=- Commit source index? Yes +Commit.Source.Index.No=- Commit source index? No +Could.Not.Commit.Changes.To.The.Image.Discarding=Could not commit changes to the image. Discarding changes... +Mounting.Image.Index=Mounting image (index:{space;} +Replacing.FFU.File=Replacing FFU file{space;} +With={space;}with{space;} +The.FFU.File.Has.Been.Successfully.Replaced=The FFU file has been successfully replaced. +The.FFU.File.Could.Not.Be.Replaced=The FFU file could not be replaced:{space;} +Warning.The.Contents.Of.The.Log.Window.Could=Warning: the contents of the log window could not be saved to the log file. Reason:{space;} +The.Volume.Images.Have.Been.Deleted.If.You=The volume images have been deleted. If you want to remount this image into a DISMTools project, choose the{space;} +Mount.Image=Mount image +Option.Or.Use.This.Command.If.You.Want={space;}option, or use this command if you want to mount it elsewhere: +DISM.Mount.Image.Imagefile={space;}{space;}dism /mount-image /imagefile: +Index.Preferred.Index.Mountdir.Preferred.Mountpoint={space;}/index: /mountdir: +The.Specified.Image.Is.Already.Mounted.This.Command=The specified image is already mounted. This command works for{space;} +Orphaned=orphaned +Images={space;}images +The.Program.Tried.To.Save.Changes.To.An=The program tried to save changes to an image that was mounted as read-only.{space;} +To.Solve.This.Close.This.Dialog.And.Click=To solve this, close this dialog, and click{space;} +Tools.Remount.Image.With.Write.Permissions=Tools > Remount image with write permissions +Do.Note.That.If.The.Image.Came.From=Do note that, if the image came from an installation medium, you may need to copy the source file to perform modifications to it. +The.Program.Tried.To.Unmount.The.Image.But=The program tried to unmount the image, but some applications or processes have opened files or directories of the image. +Make.Sure.No.Application.Or.Process.Is.Using=Make sure no application or process is using the directories or files of the image. +If.The.Error.Occurred.At.The.End.Of=If the error occurred at the end of the operation (e.g., at 100%), and you were trying to save the changes; they might already be saved, and can be safe to continue discarding changes. +The.Mounted.Image.Cannot.Be.Committed.Back.Into=The mounted image cannot be committed back into the source file. +A.Partial.Unmount.Might.Have.Happened.Or.The=A partial unmount might have happened, or the image was still being mounted. +If.The.Image.Was.Unmounted.Whilst.Saving.Changes=If the image was unmounted whilst saving changes, the commit probably succeeded. Please validate this. If this is the case, proceed with unmounting the image discarding changes. +The.Source.File.Comes.From.A.Read.Only=The source file comes from a read-only source. You cannot mount it with read-write permissions. +Please.Re.Specify.The.Image.In.The.Mount=Please re-specify the image in the mount dialog whilst checking the{space;} +Read.Only=Solo lectura +Check.Box.You.Can.Also.Try.Copying.The={space;}check box. You can also try copying the source image to a folder with read-write permissions. +There.Is.Essential.Data.That.Was.Not.Picked=There is essential data that was not picked internally by the operation. This may be a bug in the software or a feature may be incomplete. +No.Packages.Have.Been.Added.Successfully.Try.Looking=No packages have been added successfully. Try looking up the error codes on the Internet +No.Packages.Have.Been.Removed.Successfully.Try.Looking=No packages have been removed successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Enabled.Successfully.Try.Looking=No features have been enabled successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Disabled.Successfully.Try.Looking=No features have been disabled successfully. Try looking up the error codes on the Internet +Either.This.Operation.Has.Failed.Or.Some.Drivers=Either this operation has failed or some drivers were not installed. Consider reloading this project or mode to see whether there are driver changes. +If.There.Are.Driver.Changes.Consider.Reading.The=If there are driver changes, consider reading the driver installation logs, stored in the INF directory of the target image. Otherwise, export the drivers you want to add from the source image and add them to the target image manually. +You.Can.Also.Manually.Customize.The.Export.Directory=You can also manually customize the export directory by deleting the drivers you don't need. This may be another way to fix this problem, but you will need to temporarily pause the driver addition procedure before it scans the export directory (this can be done by selecting anything from the DISM command prompt window that appears when performing an operation) +The.Program.Has.Suffered.A.Keyboard.Interrupt.Or=The program has suffered a keyboard interrupt, or a forced program closure. The operation has been cancelled. If you have done it accidentally, you may run it again +The.Microsoft.Edge.Components.Have.Already.Been.Installed=The Microsoft Edge components have already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.Browser.Has.Already.Been.Installed=The Microsoft Edge browser has already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.WebView2.Component.Has.Already.Been=The Microsoft Edge WebView2 component has already been installed in this image. There isn't anything to do here. +The.Operation.Could.Not.Be.Performed.Because.This=The operation could not be performed because this image has pending online operations. Applying and booting up the image might fix this issue. +The.Rollback.Process.Has.Started.Your.System.Needs=The rollback process has started. Your system needs to be restarted in order to continue. It will restart automatically in 10 seconds. Make sure you have saved your work. +The.Specified.Operation.Completed.Successfully.But.Requires.A=The specified operation completed successfully, but requires a restart in order to be fully applied. Save your work and restart when ready +This.Error.Has.Not.Yet.Been.Added.To=This error has not yet been added to the database, so a useful description can't be shown now. Try running the command manually and, if you see the same error, try looking it up on the Internet. +For.Detailed.Information.Consider.Reading.The.DISM.Operation=For detailed information, consider reading the DISM operation logs. +Cancelling.Background.Processes=Cancelando procesos en segundo plano... +The.Image.Registry.Hives.Need.To.Be.Unloaded=The image registry hives need to be unloaded before continuing to perform the task. +System.Editor.Was.Not.Found=System editor was not found +The.Log.File.Was.Not.Found=The log file was not found diff --git a/language/fr-FR.ini b/language/fr-FR.ini new file mode 100644 index 000000000..5cef94ad2 --- /dev/null +++ b/language/fr-FR.ini @@ -0,0 +1,6916 @@ +[LanguageFileInformation] +LanguageAuthor=DISMTools +LanguageCode=fr-FR +LanguageName=Français + +[ADDSJoinDialog.ChangePage] +Finish.Label=Terminer +Next.Button=Suivant + +[DomainJoin.DNS] +Site.Local.Address.Label=- {0} -- Adresse Site-Local ; elle n’est plus utilisée +MalformedAddress.Label=- {0} -- Adresse mal formée +AddressSyntax.Message=Résultats de validation de la syntaxe des adresses :{crlf;}- Adresses non valides : {0}{crlf;}- Adresses IPv4 : {1}{crlf;}- Adresses IPv6 globales : {2}{crlf;}- Adresses IPv6 Link-Local : {3}{crlf;}- Adresses IPv6 Unique Local : {4}{crlf;}{crlf;}- Ratio adresses valides/non valides : {5}%{crlf;}{6}{crlf;}Ces adresses seront configurées dans le fichier de réponses sans assistance. +InvalidAddresses.Label={crlf;}Certaines adresses ne sont pas valides. Voici pourquoi : {crlf;}{crlf;}{0}{crlf;} +AddressValidation.Title=Résultats de validation des adresses DNS +Verification.Done.Label=La vérification est terminée. +Verification.Done.Message=La vérification est terminée.{crlf;}{crlf;}{0} + +[DomainJoin.Messages] +PrimarySuffix.Required=Un suffixe de domaine principal doit être fourni pour le DNS +InterfaceAlias.Message=Un alias d’interface doit être fourni pour le DNS. Il s’agit des noms des cartes réseau installées sur votre système +No.DNSServer.None.Label=Aucune adresse de serveur DNS n’a été fournie +DomainName.Label=Un nom de domaine doit être spécifié +User.Name.Label=Un nom d’utilisateur doit être spécifié +Password.User.Message=Un mot de passe doit être spécifié pour l’utilisateur indiqué, {quot;}{0}{quot;}, conformément aux stratégies de sécurité imposées par le contrôleur de domaine. +User.Appear.Exist.Message=L’utilisateur indiqué, {0}, ne semble pas exister dans le domaine fourni. Vous ne pourrez peut-être pas vous connecter avec cet utilisateur tant que vous ne l’aurez pas créé.{crlf;}{crlf;}Voulez-vous continuer ? +Verify.Typed.Message=Vérifiez les informations que vous avez saisies. Si un champ est incorrect, l’appareil client risque de ne pas rejoindre le domaine.{crlf;}{crlf;}L’appareil client ne rejoindra pas non plus le domaine s’il exécute une édition Famille de Windows.{crlf;}{crlf;}Voulez-vous vraiment utiliser ces paramètres ? +VerifySettings.Title=Vérifier les paramètres +Domain.Settings.Message=Les paramètres du domaine ont été ajoutés au fichier de réponses. Vous pouvez modifier ces composants dans la section Composants système. +Add.Domain.Settings.Label=Impossible d’ajouter les paramètres du domaine. +Dnsshort.DomainName.Message=DNS, pour Domain Name System, est un rôle serveur qui traduit automatiquement les adresses IP en noms lisibles.{crlf;}{crlf;}Lorsque vous utilisez cet assistant, DISMTools suppose que vous ou votre administrateur système avez configuré le DNS sur votre réseau. Si ce n’est pas le cas, annulez cet assistant et configurez-le. +UserDisabled.Message=L’utilisateur sélectionné n’est pas activé dans le domaine. Il ne pourra pas se connecter aux appareils cibles tant qu’il n’aura pas été réactivé. +AccountDisabled.Title=Compte désactivé +Computer.Belong.Domain.Label=Cet ordinateur n’appartient pas à un domaine. +Provide.Domain.Label=Indiquez un domaine pour tester la résolution du nom de domaine. +Nslookupoutput.Label=Sortie NSLOOKUP :{crlf;}{crlf;}{0} +DomainResolution.Title=Résultats de résolution du nom de domaine + +[ActiveInstallWarn] +Active.Install.Label=À propos de la gestion active des installations + +[ActiveInstall] +Enter.Online.Message=Vous êtes sur le point d'entrer dans le mode de gestion de l'installation en ligne, qui vous permet d'apporter des modifications à votre installation Windows active.{crlf;}{crlf;}Étant donné que ce mode vous permet de modifier votre installation, vous devez être extrêmement prudent lorsque vous effectuez des tâches avec ce programme.{crlf;}{crlf;}Si vous effectuez sans précaution une opération sur une image en ligne, vous risquez de la casser, au point de rendre l'installation non amorçable.{crlf;}{crlf;}Nous NE SOMMES PAS RESPONSABLES des dommages causés à votre installation active. Si vous vous retrouvez avec un système non amorçable, vous devez réinstaller Windows (en sauvegardant d'abord vos fichiers, si possible). +ProjectUnloaded.Label=Le projet actuel sera déchargé. +Continue.Button=Continuer +Cancel.Button=Annuler + +[AddCapabilities] +AddCapabilities.Label=Ajouter des capacités +Image.Task.Header.Label={0} +Source.Label=Source : +Ok.Button=OK +Cancel.Button=Annuler +Browse.Button=Parcourir... +SelectAll.Button=Sélectionner tout +SelectNone.Button=Sélectionner aucun +Detect.Group.Policy.Button=Détecter à partir des politiques de groupe +Capabilities.Group=Capacités +Options.Group=Paramètres +DifferentSource.CheckBox=Spécifier une source différente pour l'installation des capacités +WindowsUpdate.CheckBox=Limiter l'accès à Windows Update +Capability.Column=Capacité +State.Column=État + +[AddCaps.AddCap] +CommitImage.CheckBox=Sauvegarder l'image après l'ajout de capacités + +[AddCapabilities.Initialize] +UnsupportedImage.Message=Cette action n'est pas prise en charge sur cette image + +[AddCapabilities.Validation] +SourceRequired.Message=Certaines capacités de cette image nécessitent la spécification d'une source pour être activées. La source spécifiée n'est pas valide pour cette opération. +Source.Required.Message=Veuillez indiquer une source valide et réessayer. +Source.Message=Assurez-vous que la source existe dans le système de fichiers et réessayez. +Source.Exist.File.Message=La source spécifiée n'existe pas dans le système de fichiers. Assurez-vous qu'elle existe et réessayez. +Source.Required.No.Message=Aucune source n'est spécifiée. Indiquez une source et réessayez. +Selected.None.Message=Il n'y a pas de capacités sélectionnées à installer. Veuillez sélectionner des capacités et réessayer. + +[AddDrivers] +Folder.Label=Répertoire +Title.Label=Ajouter des pilotes +Image.Task.Header.Label={0} +Drivers.Required.Message=Veuillez spécifier les pilotes à ajouter en utilisant les boutons ci-dessous ou en les déposant dans la liste ci-dessous : +Scan.Driver.Message=Vous pouvez laisser le programme analyser les répertoires de pilotes présents dans la liste ci-dessous de manière récursive et les ajouter également. Pour ce faire, cochez les entrées que vous souhaitez voir analysées : +Ok.Button=OK +Cancel.Button=Annuler +AddFile.Button=Ajouter un fichier... +AddFolder.Button=Ajouter un répertoire... +Remove.Entries.Button=Supprimer toutes les entrées +Remove.Selected.Entry.Button=Supprimer l'entrée sélectionnée +Force.Install.CheckBox=Forcer l'installation des pilotes non signés +CommitImage.CheckBox=Sauvegarder l'image après l'ajout des pilotes +DriverFiles.Group=Fichiers des pilotes +DriverFolders.Group=Répertoires des pilotes +Options.Group=Paramètres +FileFolder.Column=Fichier/Répertoire +Type.Column=Type +DriverPackage.Title=Spécifier le paquet de pilotes à ajouter +DriverFolder.Description=Indiquez le répertoire contenant les pilotes. Vous pourrez ensuite préciser s'il doit être analysé de manière récursive : + +[AddDrivers.Actions] +Package.Folder.Message=Le paquet de pilotes spécifié est un dossier. Vous pouvez laisser DISM l'analyser de manière récursive pour ajouter tous les pilotes qu'il contient, ou vous pouvez spécifier les pilotes à ajouter manuellement.{crlf;}{crlf;}- Pour laisser DISM analyser ce dossier de manière récursive, cliquez sur Oui{crlf;}- Pour sélectionner manuellement les pilotes de ce dossier, cliquez sur Non{crlf;}- Pour ne pas ajouter ce dossier, cliquez sur Annuler +Packages.None.Message=Il n'y a pas de pilotes dans le répertoire spécifié. + +[AddDrivers.DragDrop] +Package.Folder.Message=Le paquet de pilotes spécifié est un dossier. Vous pouvez laisser DISM l'analyser de manière récursive pour ajouter tous les pilotes qu'il contient, ou vous pouvez spécifier les pilotes à ajouter manuellement.{crlf;}{crlf;}- Pour laisser DISM analyser ce dossier de manière récursive, cliquez sur Oui{crlf;}- Pour sélectionner manuellement les pilotes de ce dossier, cliquez sur Non{crlf;}- Pour ne pas ajouter ce dossier, cliquez sur Annuler +Folder.Label=Répertoire +File.Item=Fichier + +[AddDrivers.FileOk] +File.Label=Fichier + +[AddDrivers.Validation] +DriverPackages.None.Message=Il n'y a pas de pilotes sélectionnés à installer. Veuillez spécifier les paquets de pilotes que vous souhaitez installer et réessayez. + +[AddListEntry] +Entry.Label=Entrée : +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler + +[AddPackage] +AddPackages.Label=Ajouter des paquets +PackageSource.Label=Source des paquets : +PackageOperation.Label=Opération d'ajout des paquets : +Browse.Button=Parcourir... +SelectAll.Button=Sélectionner tout +SelectNone.Button=Sélectionner aucun +Update.Manifest.Button=Ajouter un manifeste de mise à jour... +Cancel.Button=Annuler +Ok.Button=OK +Packages.Choose.RadioButton=Choisissez les paquets à ajouter : +Ignore.CheckBox=Ignorer les contrôles d'applicabilité (non recommandé) +CommitImage.CheckBox=Sauvegarder l'image après l'ajout des paquets +Packages.Group=Paquets +Options.Group=Paramètres +Dir.CAB.Required.Label=Veuillez indiquer un répertoire où se trouvent les fichiers CAB ou MSU. +CabFolder.Description=Indiquez le répertoire qui contient les paquets CAB ou MSU : + +[AddPkg] +ScanRecursive.RadioButton=Analyse récursive du dossier à la recherche des paquets à ajouter +Skip.Online.Install.CheckBox=Sauter l'installation des paquets si les opérations en ligne sont en cours + +[AddPackage.CountItems] +Folder.Contain.Label=Ce répertoire ne contient aucun paquet. Veuillez utiliser une autre source et réessayer +Folder.Contains.Label=Ce répertoire contient {0} paquet. +Folder.Packages.Label=Ce répertoire contient {0} paquets. + +[AddPackage.GatherPackages] +Scanning.Dir.Label=Recherche des paquets dans le répertoire en cours. Veuillez patienter... + +[AddPackage.Validation] +Packages.Message=Veuillez sélectionner les paquets à ajouter et réessayer. Vous pouvez également continuer à laisser DISM analyser les paquets applicables +PackagesSelected.Title=Aucun paquet sélectionné + +[AppxProvision] +Add.Prov.Item=Ajouter des paquets AppX provisionnés +Packages.Required.Message=Veuillez ajouter des paquets AppX emballés ou non emballés en utilisant les boutons ci-dessous, ou en les déposant dans la liste ci-dessous : +Package.Message=Un paquet AppX peut avoir besoin de certaines dépendances pour être installé correctement. Si c'est le cas, vous pouvez spécifier une liste de dépendances maintenant : +StubPreference.Item=Préférence pour le paquet de stub : +Multiple.App.Regions.Item=Pour spécifier plusieurs régions d'application, séparez-les par un point-virgule ( ;) +Entry.List.View.Message=Sélectionnez une entrée dans la liste pour afficher les détails d'une application et pour configurer les paramètres d'ajout. +AddFile.Item=Ajouter un fichier +AddFolder.Item=Ajouter un répertoire +Remove.Entries.Item=Supprimer toutes les entrées +Remove.Dependencies.Item=Supprimer toutes les dépendances +RemoveDependency.Item=Supprimer la dépendance +AddDependency.Item=Ajouter une dépendance... +Browse.Button=Parcourir... +Remove.Selected.Entry.Item=Supprimer l'entrée sélectionnée +Cancel.Button=Annuler +Ok.Button=OK +CustomDataFile.Item=Fichier de données personnalisé : +CommitImage.Item=Sauvegarder l'image après l'ajout de paquets AppX +CustomData.File.Title=Spécifier un fichier de données personnalisé +AppxDependencies.Item=Dépendances AppX +AppxRegions.Item=Régions AppX +LicenseFile.Title=Spécifier un fichier de licence +App.Regions.Form.Message=Les régions d'application doivent être présentées sous la forme de codes ISO 3166-1 Alpha 2 ou Alpha 3. Pour en savoir plus sur ces codes, cliquez ici +Help.Link=cliquez ici +FileFolder.Column=Fichier/Répertoire +Type.Column=Type +ApplicationName.Column=Nom de l'application +App.Publisher.Column=Éditeur de l'application +App.Version.Column=Version de l'application +LicenseFile.CheckBox=Fichier de licence : +App.Available.CheckBox=Mettre l'application à la disposition de toutes les régions +Configure.Stub.Item=Ne pas configurer la préférence de stub +Publisher.Label=Éditeur : {0} +Version.Label=Version : {0} +Preview.Label=Aperçu +Folder.Required.Description=Veuillez spécifier un répertoire contenant les fichiers AppX décompressés : +Install.Stub.Package.Item=Installer l'application en tant que paquet partiel +Install.Full.Package.Item=Installer l'application en tant que paquet complet + +[AppxProvision.MultiSelect] +Selection.Label=Sélection multiple +CommonProps.Label=Voir les propriétés communes de toutes les applications sélectionnées + +[AppxProvision.DragDrop] +Dir.Contains.App.Message=Le répertoire suivant :{crlf;}{quot;}{0}{quot;}{crlf;}contient des paquets d'application. Voulez-vous les traiter également ?{crlf;}{crlf;}REMARQUE : l'analyse de ce répertoire se fera de manière récursive, ce qui peut prolonger la durée de l'opération. +File.Dropped.Isn.Message=Le fichier qui a été déposé ici n'est pas un paquet d'application. +Add.Prov.Title=Ajouter des paquets AppX provisionnés + +[AppxProvision.StoreLogo] +ReadFailed.Message=Impossible d'obtenir les ressources du logo de la boutique d'applications à partir de ce paquet - impossible de lire le manifeste. +Add.Title=Ajouter des paquets AppX provisionnés + +[AppxProvision.Init] +UnsupportedImage.Message=Cette action n'est pas prise en charge sur cette image + +[AppxProvision.Scan] +Unpacked.Encrypted.Label=Décompacté (Crypté) +PackedEncrypted.Label=Compacté (Crypté) +Unpacked.Encrypted.Item=Décompacté (Crypté) +Encrypted.App.Label=Application cryptée +ListItem.Label=Application cryptée +PackedEncrypted.Item=Compacté (Crypté) +Package.Encrypted.Message=Le paquet :{crlf;}{crlf;}{0}{crlf;}{crlf;}est un paquet d'applications cryptées. Ni DISMTools ni DISM ne supportent l'ajout de ces types d'applications. Si vous souhaitez l'ajouter, vous pouvez le faire après l'application de l'image et le démarrage. +Folder.Message=Ce répertoire ne semble pas contenir de structure de paquetage AppX. Il ne sera pas ajouté à la liste +Add.Title=Ajouter des paquets AppX provisionnés +Package.Add.Message=Le paquet que vous souhaitez ajouter est déjà ajouté à la liste et toutes ses propriétés correspondent à celles du paquet spécifié. Nous n'ajouterons pas le paquet spécifié +Unpacked.Item=Décompacté +Packed.Item=Compacté +Package.Already.Message=Le paquet que vous souhaitez ajouter est déjà ajouté à la liste, mais il contient une version plus récente.{crlf;}{crlf;}Voulez-vous remplacer l'entrée de la liste par le paquet mis à jour spécifié ? +ItemSub.Item=Décompacté +ListItem.Item=Décompacté +Package.Added.Message=Le paquet que vous souhaitez ajouter a déjà été ajouté à la liste, mais il provient d'un développeur ou d'un éditeur différent.{crlf;}{crlf;}Notez que les applications redistribuées par des éditeurs ou des développeurs tiers peuvent endommager l'image Windows.{crlf;}{crlf;}Voulez-vous remplacer l'entrée de la liste par le paquet spécifié ? + +[AppxProvision.Tooltip] +TempStoreassets.Label=\temp\storeassets\ +Logo.Assets.File.Label=Le logo de ce fichier n'a pas pu être détecté. +Enlarge.View.Label=Cliquez ici pour agrandir la vue +Logo.Assets.File.Item=Le logo de ce fichier n'a pas pu être détecté. + +[AppxProvision.Validation] +Packages.Required.Message=Veuillez spécifier les paquets AppX comprimés ou non et réessayez. +Add.Prov.Title=Ajouter des paquets AppX provisionnés +LicenseFile.Required.Message=Veuillez indiquer un fichier de licence et réessayer. Vous pouvez également continuer sans licence, mais cela risque de compromettre l'image. +LicenseNotFound.Message=Le fichier de licence spécifié n'a pas été trouvé. Assurez-vous qu'il existe à l'emplacement spécifié et réessayez. +CustomData.Required.Message=Veuillez spécifier un fichier de données personnalisé et réessayer. Vous pouvez également continuer sans fichier. +CustomData.File.Message=Le fichier de données personnalisées spécifié n'a pas été trouvé. Assurez-vous qu'il existe à l'emplacement spécifié et réessayez. + +[ProvPackage] +Add.Packages.Label=Ajouter des paquets de provisionnement +Image.Task.Header.Label={0} +PackagePath.Label=Chemin du paquet : +Action.Treverted.Add.Message=Cette action ne peut pas être annulée. Une fois que vous avez ajouté un package de provisionnement, vous ne pourrez plus le supprimer de votre image Windows. +CatalogPath.Label=Chemin du catalogue : +Ok.Button=OK +Cancel.Button=Annuler +Browse.Button=Parcourir... +CommitImage.CheckBox=Enregistrer l'image après l'ajout de ce paquet de provisionnement + +[ProvPackage.Validation] +PackageNotFound.Message=Le paquet de provisionnement spécifié n'existe pas. Assurez-vous qu'il existe dans le système de fichiers et réessayez. +CatalogNotFound.Message=Le fichier de catalogue spécifié n'existe pas. Nous n'utiliserons pas ce fichier si vous continuez.{crlf;}{crlf;}Voulez-vous continuer ? +PackageRequired.Message=Aucun paquet de provisionnement n'a été spécifié. Veuillez spécifier un paquet de provisionnement à ajouter et réessayer. + +[AppInstaller] +DownloadPackage.Button=Téléchargement du paquet de l'application en cours... +Wait.Message=Veuillez patienter pendant que DISMTools télécharge le paquet d'application pour l'ajouter à cette image. Cela peut prendre un certain temps, en fonction de la vitesse de votre connexion réseau. +StatusLbl.Label=Veuillez patienter... +TransferDetails.Group=Détails du transfert +DownloadURL.Label=URL de téléchargement : +DownloadSpeed.Label=Vitesse de téléchargement : inconnue +Cancel.Button=Annuler +Wait.Label=Veuillez patienter... +EtaUnknown.Label=Temps restant estimé : inconnu + +[AppInstaller.Error] +DownloadFailed.Message=Une erreur s'est produite lors du téléchargement du fichier : {0} + +[AppInstaller.Progress] +MainPackage.Label=Téléchargement de l'application principale en cours... ({0} of {1} téléchargés) + +[AppInstaller.Status] +DownloadSpeed.Label=Vitesse de téléchargement : {0}/s +EtaSeconds.Label=Estimation du temps restant : {0} secondes + +[AppDrive] +Bytes.Label=bytes (~ +Target.Disk.Button=Spécifier le disque cible... +Refresh.Button=Rafraîchir +Ok.Button=OK +Cancel.Button=Annuler +DeviceID.Column=ID de l'appareil +Model.Column=Modèle +Partitions.Column=Partitions +Size.Column=Taille +Destination.Disk.Id.Label=ID de disque de destination (\\.\PHYSICALDRIVE(n)): + +[ApplyUnattend] +UnattendAnswer.File.Label=Appliquer le fichier de réponses sans surveillance +Image.Task.Header.Label={0} +AnswerFile.Label=Fichier de réponse : +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler + +[ApplyUnattend.Validation] +AnswerFile.Choose.Message=Soit aucun fichier de réponse sans surveillance n'a été spécifié, soit le fichier spécifié n'existe pas. Veuillez vérifier qu'il existe et réessayer. + +[AutoReload] +Wait.Message=Veuillez patienter pendant que DISMTools recharge la session d'entretien des images orphelines. Cela peut prendre un certain temps. Une fois terminé, cette boîte de dialogue se fermera. +ImageFile.Label=Fichier image : +Image.Mount.Point.Label=Point de montage de l'image : +ImageInfo.Group=Informations sur l'image + +[AutoReload.Bg] +ReloadSucceeded.Message=Rechargement de l'image montée en cours... (avec succès : {0}, échoué : {1}, ignoré : {2}) + +[AutoReload.Background] +ProcessCompleted.Message=Ce processus s'est achevé + +[AutoReload.Progress] +Preparing.Images.Label=Préparation du rechargement des images en cours... + +[ActiveDirectory.DnsZone] +SelectZone.Message=Please select a DNS zone and try again. +Selected.Too.Long.Message=The selected DNS zone is no longer active because of either an expiration or a shut down. Choose another zone and try again. +ZonesLoaded.Message=DNS zones could not be obtained. + +[BGProcDetails.VisibleChanged] +Gathering.Image.Label=Collecte des informations de l'image en cours... +Processes.Take.Time.Label=Ces processus peuvent prendre un certain temps + +[BGProcNotify] +Project.Loaded.Done.Label=Ce projet a été chargé avec succès +Gathering.Image.Label=Le programme recueille maintenant des informations sur l'image en arrière-plan. Cela peut prendre un certain temps. + +[BgProcs.Settings] +Advanced.Process.Label=Paramètres avancés des processus en arrière plan +Additional.Label=Configurer des paramètres supplémentaires pour les processus en arrière plan : + +[BgProcesses] +SkipNonRemovable.CheckBox=Sauter les paquets dont les politiques ne sont pas supprimées +DetectAllDrivers.CheckBox=Détecter tous les pilotes de l'image +Skip.Framework.CheckBox=Ignorer les paquets cadres et les supprimer de la liste s'ils ont été détectés. +Run.CheckBox=Exécuter tous les processus en arrière plan après l'exécution d'une tâche +Ok.Button=OK +Cancel.Button=Annuler +Enhance.App.Detect.Message=Améliorer la détection de tous les paquets AppX installés dans une installation active grâce aux aides PowerShell + +[BgProcesses.Validation] +DetectDrivers.Message=Le programme va maintenant détecter les pilotes de l'image en fonction des options que vous avez spécifiées. Cela peut prendre un certain temps. + +[BG.Procs] +Re.Still.Gathering.Label=Nous continuons à recueillir des informations de l'image +Finish.Process.Begin.Message=Une fois ce processus terminé, vous pouvez commencer à exécuter les tâches liées à l'image. Cela prend généralement quelques minutes, mais cela peut dépendre de l'image et de la vitesse de votre ordinateur.{crlf;}{crlf;}Vous pouvez à tout moment vérifier l'état de ce processus en arrière plan en cliquant sur l'icône en bas à gauche. +Ok.Button=OK + +[Casters.Applicability] +Yes.Button=Oui +No.Button=Non + +[Casters.DISMArchitecture] +Unknown.Label=Inconnu +Neutral.Label=Neutre + +[Casters.Cast.DISM] +Present.Label=Absente +DisablePending.Label=Invalidité en cours +Staged.Label=Désactivée +Removed.Label=Supprimée +Installed.Label=Activée +EnablePending.Label=Activation en cours +Superseded.Label=Remplacée +Partially.Installed.Label=Partiellement installée +UninstallPending.Label=Désinstallation en cours +Uninstalled.Label=Désinstallé +InstallPending.Label=Installation en cours +CriticalUpdate.Label=Mise à jour critique +Driver.Label=Pilote +FeaturePack.Label=Pack de caractéristiques +Foundation.Package.Label=Paquet de base +Hotfix.Label=Correctif +LanguagePack.Label=Pack linguistique +LocalPack.Label=Paquet local +DemandPack.Label=Paquet de capacités +Other.Label=Autres +Product.Label=Produit +SecurityUpdate.Label=Mise à jour de la sécurité +ServicePack.Label=Service Pack +SoftwareUpdate.Label=Mise à jour du logiciel +Update.Label=Mise à jour +UpdateRollup.Label=Mise à jour cumulative +NotRequired.Label=Un redémarrage n'est pas nécessaire +May.Required.Label=Un redémarrage peut être nécessaire +Required.Label=Un redémarrage est nécessaire + +[Casters.OfflineInstall] +FullyOffline.Message=Un démarrage sur l'image cible peut être nécessaire pour installer complètement ce paquet. + +[Casters.SignatureStatus] +Unknown.Label=Inconnu +UnsignedValidity.Message=Non signé. Veuillez vérifier la validité et la date d'expiration du certificat de signature. +Signed.Label=Signé + +[Casters.CastDriveType] +Fixed.Label=Fixe +Network.Label=Réseau +Removable.Label=Amovible +Unknown.Label=Inconnu + +[HttpServer.Messages] +Root.Dir.Exist.Message=Root directory {quot;}{0}{quot;} does not exist in the file system. The server cannot be started. +TourServer.Label=Tour Server + +[ThemeDesigner.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[Designer.ActiveInstall] +Continue.Button=Continue +Cancel.Button=Annuler +Enter.Online.Message=You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation.{crlf;}{crlf;}Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program.{crlf;}{crlf;}If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable.{crlf;}{crlf;}We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible) +ProjectUnloaded.Label=The current project will be unloaded. +Active.Install.Label=About active installation management + +[Designer.AddCapabilities] +Ok.Button=OK +Cancel.Button=Annuler +Capabilities.Group=Fonctionnalités +SelectAll.Button=Select all +SelectNone.Button=Select none +Capability.Column=Capability +State.Column=État +Options.Group=Options +Browse.Button=Parcourir... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +DifferentSource.CheckBox=Specify different source for capability installs +Detect.Group.Policy.Button=Detect from group policy +SourceHint.Description=Specify the source to use for capability addition: +AddCapabilities.Label=Add capabilities + +[Designer.AddCaps] +CommitImage.CheckBox=Commit image after adding capabilities + +[Designer.AddDrivers] +Ok.Button=OK +Cancel.Button=Annuler +DriverFiles.Group=Driver files +Drivers.Required.Message=Please specify the drivers to add by using the buttons below or by dropping them to the list below: +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Type +DriverFolders.Group=Driver folders +Scan.Driver.Message=You can let the program scan the driver folders present on the list below recursively and add them as well. To do so, tick the entries you'd like to be scanned: +Options.Group=Options +CommitImage.CheckBox=Commit image after adding drivers +Force.Install.CheckBox=Force installation of unsigned drivers +Driver.Files.Inf.Filter=Driver files|*.inf +DriverPackage.Title=Specify the driver package to add +DriverFolder.Description=Specify the folder containing driver packages. You will then be able to specify if it needs to be scanned recursively: +AddDrivers.Label=Add drivers + +[Designer.AddEdgeBrowser] +Ok.Button=OK +Cancel.Button=Annuler +Microsoft.Label=Add Microsoft Edge Browser + +[Designer.AddEdgeFull] +Ok.Button=OK +Cancel.Button=Annuler +Microsoft.Label=Add Microsoft Edge + +[Designer.Add.Edge] +Ok.Button=OK +Cancel.Button=Annuler +Microsoft.Web.Label=Add Microsoft Edge WebView + +[Designer.Add.List] +Ok.Button=OK +Cancel.Button=Annuler +Browse.Button=Parcourir... +Entry.Label=Entry: +AllFiles.Filter=All files|*.* +AddEntry.Label=Add entry + +[Designer.AddPackage] +Ok.Button=OK +Cancel.Button=Annuler +Packages.Group=Paquets +Folder.Contains.Pkgnum.Label=This folder contains packages. +SelectAll.Button=Select all +SelectNone.Button=Select none +Packages.Choose.RadioButton=Choose which packages to add: +Browse.Button=Parcourir... +PackageOperation.Label=Package operation: +PackageSource.Label=Package source: +Options.Group=Options +Save.Image.Packages.CheckBox=Save image after adding packages +Ignore.CheckBox=Ignore applicability checks (not recommended) +Update.Manifest.Button=Add update manifest... +AddPackages.Label=Add packages +CabFolder.Description=Specify the folder containing CAB or MSU packages: + +[Designer.AddPkg] +ScanRecursive.RadioButton=Scan folder recursively for packages +Skip.Online.Install.CheckBox=Skip package installation if online operations are pending + +[Designer.AppxProvision] +Ok.Button=OK +Cancel.Button=Annuler +Entry.List.View.Message=Select an entry in the list view to show the details of an app and to configure addition settings +AppxVersion.Label=AppxVersion +AppxPublisher.Label=AppxPublisher +AppxTitle.Label=AppxTitle +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Type +ApplicationName.Column=Application name +App.Publisher.Column=Application publisher +App.Version.Column=Application version +Packages.Required.Message=Please add packed or unpacked AppX packages by using the buttons below, or by dropping them to the list view below: +AppxDependencies.Group=AppX dependencies +Remove.Dependencies.Button=Remove all dependencies +RemoveDependency.Button=Remove dependency +AddDependency.Button=Add dependency... +Package.Message=An AppX package may need some dependencies for it to be installed correctly. If so, you can specify a list of dependencies now: +CustomDataFile.CheckBox=Custom data file: +Browse.Button=Parcourir... +AppxRegions.Group=AppX regions +App.Available.CheckBox=Make app available for all regions +App.Regions.Form.Message=App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To learn more about these codes, click here +Multiple.App.Regions.Label=To specify multiple app regions, separate them with a semicolon (;) +CommitImage.CheckBox=Commit image after adding AppX packages +Files.Title=Specify the AppX files to add provisioning for +DependencyFiles.Filter=Dependency files|*.appx;*.msix +Xmllicenses.Filter=XML licenses|*.xml +LicenseFile.Title=Specify a license file +CustomData.Filter=All files|*.* +CustomData.File.Title=Specify a custom data file +LicenseFile.CheckBox=License file: +Configure.Stub.Item=Do not configure stub preference +StubPreference.Label=Stub preference: +Value.Button=... +Add.Prov.Label=Add provisioned AppX packages +MSIX.Packages.Filter=Applications|*.appx;*.appxbundle;*.msix;*.msixbundle|Application Installer package|*.appinstaller +Browse.Dependencies.Title=Browse for files applications depend on +Folder.Required.Description=Please specify a folder containing unpacked AppX files: +Install.Stub.Package.Item=Install application as a stub package +Install.Full.Package.Item=Install application as a full package + +[Designer.ProvPackage] +Ok.Button=OK +Cancel.Button=Annuler +PackagePath.Label=Package path: +Browse.Button=Parcourir... +Action.Treverted.Add.Message=This action can't be reverted. Once you add a provisioning package, you won't be able to remove it from your Windows image. +Package.Ppkg.Filter=Provisioning package|*.ppkg +CatalogPath.Label=Catalog path: +Catalog.File.Cat.Filter=Catalog file|*.cat +Add.Packages.Label=Add provisioning packages +CommitImage.CheckBox=Commit image after adding this provisioning package + +[Designer.DomainJoin] +DnstoolsBtn.Button=... +Nicsettings.Group=NIC Settings +Verify.DNS.Label=Verify DNS Address Syntax +Default.Adapter.Same.Message=By default, this adapter will use the same domain suffix you specified above. You can change it later +ManualAdapter.RadioButton=Specify a network adapter manually: +Address.First.Line.Message=The address in the first line will be the primary DNS server address, and any other addresses will become alternative server addresses. You can put both IPv4 and IPv6 addresses. +DNSServer.Addresses.Label=DNS Server Addresses (put each address in its own line): +PrimarySuffix.Label=Primary Domain Suffix: +InterfaceAlias.Label=Interface Alias: +Domain.Suffix.Added.Message=This domain suffix will be added to the list of DNS suffixes. You can add more to the list of suffixes later. +DNSSettings.Label=Configure DNS settings for network adapters +Type.Security.Account.Label=Type the Security Account Manager (SAM) name of the user account in the domain: +Organizational.Unit.Label=Organizational unit: +User.Label=User: +SAM.Account.Label=SAM account name of selected user object: +Org.Unit.Account.Message=If the desired account is not in any organizational unit, but rather in a container, or somewhere else; click the following button to pick it: +Pick.Account.Object.Button=Pick account object... +User.Manually.Item=Specify a user manually +Pick.User.Org.Item=Pick the following user from organizational units in my domain +Pick.User.Object.Item=Pick the following user object from anywhere in my domain +User.Principal.Name.Label=User Principal Name (Windows 2000): +Logon.Path.Pre.Label=Logon Path (pre-Windows 2000): +Domain.Auto.Detected.Message=A domain name could not be obtained automatically because this device does not belong to a domain. +Ask.Admin.Provide.Message=Contact your system administrator to provide authentication information used to join the domain. The account name specified here will be the initial account of the domain-joined system and it will pull initial group policies from the domain controller.{crlf;}{crlf;}To finish setting up target devices to join this domain, click Finish. +Password.Label=Password: +UserAccount.Label=User Account: +DomainName.Label=Domain Name: +Domain.Auth.Label=Provide domain and authentication information +Wizard.Helps.Set.Description=This wizard helps you set up your unattended answer file to make a device join a domain powered by Active Directory Domain Services (AD DS). +Join.Active.Dir.Label=Join an Active Directory domain +WhatDNS.Link=What is DNS? +Back.Button=Retour +Next.Button=Next +Cancel.Button=Annuler +Help.Button=Aide +Test.Dnsresolution.Label=Test DNS resolution +DNSZone.Domain.Choose.Label=Choose DNS zone... (domain controllers only) +Domain.Services.Wizard.Label=Domain Services Wizard +PickAdapter.RadioButton=Pick from a network adapter in this system: + +[Designer.AppInstaller] +Wait.Message=Please wait while DISMTools downloads the application package to add it to this image. This can take some time, depending on your network connection speed. +StatusLbl.Label=État +TransferDetails.Group=Transfer details +TimeRemaining.Label=Estimated time remaining: +DownloadSpeed.Label=Download speed: +DownloadURL.Label=Download URL: +Cancel.Button=Annuler +Wait.Label=Veuillez patienter... +CopyURI.Button=Copy +DownloadPackage.Button=Downloading application package... + +[Designer.AppDrive] +Ok.Button=OK +Cancel.Button=Annuler +Refresh.Button=Actualiser +DeviceID.Column=Device ID +Model.Column=Model +Partitions.Column=Partitions +Size.Column=Taille +Target.Disk.Button=Specify target disk... +Destination.Disk.Id.Label=Destination disk ID (\\.\PHYSICALDRIVE(n)): + +[Designer.ApplyUnattend] +Ok.Button=OK +Cancel.Button=Annuler +Browse.Button=Parcourir... +AnswerFile.Label=Answer file: +Answer.Files.XML.Filter=Answer files|*.xml +Copy.AnswerFile.CheckBox=Copy answer file to image Sysprep directory +LeaveUnchecked.Message=Leave this option unchecked if you specify an answer file that causes conflicts with Sysprep if you enter audit mode. +UnattendAnswer.File.Label=Apply unattended answer file + +[Designer.AutoReloadForm] +Wait.Message=Please wait while DISMTools reloads the servicing session of orphaned images. This can take some time. Once complete, this dialog will close. +ImageInfo.Group=Informations sur l’image +Image.Mount.Point.Label=Image mount point: +ImageFile.Label=Image file: +Wait.Label=Veuillez patienter... +DISMTools.Label=DISMTools + +[Designer.BgprocDetails] +Gathering.Image.Label=Gathering image information... +InfoTask.Label= +Processes.Take.Time.Label=These processes may take some time to complete. +DISMTools.Label=DISMTools + +[Designer.BgprocFailure] +Ok.Button=OK +Run.Issues.Message=We have run into some issues while getting the information about this Windows image. This may be due to incompatibilities caused by this image and system components, by modifications to the image, or by program bugs.{crlf;}{crlf;}Please look at the list below to see which tasks failed and why: +Failed.Bg.Procs.Label=Failed background processes + +[Designer.BgprocNotify] +Project.Loaded.Done.Label=This project has been loaded successfully +Gathering.Image.Label=The program is now gathering image information in the background. This may take some time. + +[Designer.BgProcesses] +Okbutton.Button=OK +Cancel.Button=Annuler +Enhance.App.Detect.CheckBox=Enhance detection of installed AppX packages of an active installation with PowerShell helpers +SkipNonRemovable.CheckBox=Skip packages with non-removable policies set +DetectAllDrivers.CheckBox=Detect all image drivers +Skip.Framework.CheckBox=Skip framework packages, and remove them from the listings if they were detected +Run.CheckBox=Run all background processes after performing a task + +[Designer.BgProcsSettings] +Additional.Label=Configure additional settings for background processes: +Advanced.Process.Label=Advanced background process settings + +[Designer.BgProcessesBusy] +Ok.Button=OK +Finish.Process.Begin.Message=Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer.{crlf;}{crlf;}You can check the status of this background process at any time by clicking the icon on the bottom left. +Re.Still.Gathering.Label=We're still gathering image information +DISMTools.Label=DISMTools + +[Designer.CapabilityFilter] +Apply.Button=Appliquer +Clear.Button=Clear +Name.Label=Nom : +State.Label=État : +AnyState.Item=Any state +Installed.Item=Installed +Install.Pending.Item=Installation Pending +Removed.Item=Removed +FilterInfo.Prompt.Label=Filter capability information by: +FilterInfo.Title=Filter capability information + +[Designer.DISMComponents] +Ok.Button=OK +Component.Column=Component +Version.Column=Version +Dismcomponents.Label=DISM Components + +[Designer.DNSZones] +Ok.Button=OK +CancelButton.Button=Annuler +OfferedZones.Message=This server offers the following DNS zones you can choose from. Pick a DNS zone from the list below and click OK: +ZoneName.Column=Zone Name +DnsserverName.Column=DNS Server Name +DomainServices.Column=Integrated with Domain Services? +ZoneType.Column=Zone Type +Refresh.Button=Actualiser +DNSZone.Choose.Label=Choose DNS Zone + +[Designer.DisableFeat] +Ok.Button=OK +Cancel.Button=Annuler +Options.Group=Options +Lookup.Button=Lookup... +PackageName.Label=Nom du paquet : +Remove.Feature.CheckBox=Remove feature without removing manifest +ParentPackage.CheckBox=Specify parent package name for features +Features.Group=Fonctionnalités +FeatureName.Column=Nom de fonctionnalité +State.Column=État +DisableFeatures.Label=Disable features + +[Designer.DriverFileInfo] +Ok.Button=OK +Copy.Button=Copy +Property.Column=Property +Value.Column=Valeur +Driver.File.Label=Information of driver file: +Driver.File.Label.Label=Driver file information + +[Designer.DriverFilter] +Apply.Button=Appliquer +Clear.Button=Clear +FilterPrompt.Label=Filter driver information by: +PublishedName.Item=Published Name +Original.File.Name.Item=Original File Name +ProviderName.Item=Provider Name +ClassName.Item=Class Name +InboxStatus.Item=Inbox Status +Boot.Critical.Status.Item=Boot-Critical Status +SignatureStatus.Item=Signature Status +Date.Item=Date +MonthName.Label=Month Name +Year.Item=Year +Month.Item=Month +Released.Item=Released on +NotReleased.Item=Not released on +ReleasedBefore.Item=Released before +ReleasedOnBefore.Item=Released on or before +ReleasedAfter.Item=Released after +ReleasedOnAfter.Item=Released on or after +Date.Label=Date: +Search.Signed.CheckBox=The drivers I'm searching for are signed +SignatureStatus.Label=Signature Status: +Search.BootCritical.CheckBox=The drivers I'm searching for are critical to the boot process +Boot.Critical.Status.Label=Boot-Critical Status: +Search.Inbox.CheckBox=The drivers I'm searching for are part of the Windows distribution +InboxStatus.Label=Inbox Status: +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +ProviderName.Label=Provider Name: +Original.File.Name.Label=Original File Name: +PublishedName.Label=Published Name: +Driver.Searches.Choose.Label=Choose a filter to use for driver searches. +Title=Filter driver information + +[Designer.DriverFilePicker] +Ok.Button=OK +Cancel.Button=Annuler +RecursiveListing.Message=Below is a recursive listing of all drivers in the directory you are specifying. From this list, pick the drivers you want to add and click OK. +Refresh.Button=Actualiser +DirectoryStatus.Label=Directory status +Driver.Files.Choose.Label=Choose driver files in directory + +[Designer.EnableFeat] +Ok.Button=OK +Cancel.Button=Annuler +Features.Group=Fonctionnalités +FeatureName.Column=Nom de fonctionnalité +State.Column=État +Options.Group=Options +Detect.Group.Policy.Button=Detect from group policy +Browse.Button=Parcourir... +Lookup.Button=Lookup... +FeatureSource.Label=Feature source: +PackageName.Label=Nom du paquet : +Contact.Win.Update.CheckBox=Contact Windows Update for online images +ParentFeatures.CheckBox=Enable all parent features +Feature.Source.CheckBox=Specify feature source +ParentPackage.CheckBox=Specify parent package name for features +SourceFolder.Description=Specify a folder which will act as the feature source: +EnableFeatures.Label=Enable features +CommitImage.CheckBox=Commit image after enabling features + +[Designer.EnvVars] +Save.Changes.Label=Save all changes +Intro.Message=This tool lets you view and manage the environment variables of this target image. Click the Save button to save any changes made to the environment variables. +TargetSystem.Label=Environment variables for the target system +Name.Column=Nom +Value.Column=Valeur +Remove.Machine.Label=Remove machine variable +Add.Machine.Variable.Button=Add machine variable... +DefaultUser.Label=Environment variables for default user profiles +Remove.User.Variable.Label=Remove user variable +Add.User.Variable.Button=Add user variable... +SaveVariable.Label=Save Variable +Scope.Label=Scope: +Hierarchical.Values.Message=This variable is hierarchical. Values added to the system variable will be either prepended to or replaced by the user variable when the user profile is loaded. +Variables.Location.Label=* Environment variables contained within this value are not expanded. +Value.Label=Value: +Name.Label=Nom : +VariableInfo.Label=Environment Variable Information: +Copy.Default.User.Label=Copy to default user scope +Copy.Machine.Scope.Label=Copy to machine scope +Move.Machine.Scope.Label=Move to machine scope +Move.Default.User.Label=Move to default user scope +SystemVariables.Label=System Environment Variable Management + +[Designer.ExceptionForm] +Sorry.Inconvenience.Message=We are sorry for the inconvenience, but DISMTools has run into an error that it couldn't handle and we need your help in order to continue.Here is the error information if you need it: +Help.Us.Fix.Label=Please help us fix this issue +ReportIssue.Label=Report this issue +Continue.Running.Message=You may be able to continue running the program by clicking Continue. However, if this error is displayed for a second time, you can forcefully close the program by clicking Exit. Do note that changes made to projects, as well as changes in the Recents list, will not be saved.{crlf;}{crlf;}What do you want to do? +Reporting.Issue.Message=When reporting this issue, PLEASE paste the exception information on the left. Otherwise, standard closure policies will be applied which imply closing your issue after (at least) 4 hours. +Continue.Button=Continue +Exit.Button=Quitter +Copy.Inspect.Logs.Button=Copy and Inspect Logs +DISM.Tools.Internal.Label=DISMTools - Internal Error +Problem.Prevention.Message=In order to prevent this problem from happening again, we would like to know more about it by reporting an issue on the GitHub repository. You will need a GitHub account to report feedback. + +[Designer.ExportDrivers] +Ok.Button=OK +Cancel.Button=Annuler +ExportTarget.Label=Export target: +Browse.Button=Parcourir... +DriversPath.Description=Please specify the path where the drivers will be exported to: +Driver.Mode.Group=Driver Export Mode +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +Matching.Drivers.RadioButton=Export drivers with the following matching class name to the destination: +Image.Drivers.RadioButton=Export all image drivers to the destination +ExportDrivers.Label=Export drivers + +[Designer.FFUApply] +Ok.Button=OK +Cancel.Button=Annuler +Source.Group=Source +Browse.Button=Parcourir... +Mounted.Image.Label=Utiliser une image montée +SourceImageFile.Label=Fichier image source : +SfufilePattern.Group=SFU file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Modèle de nommage : +Destination.Group=Destination +DriveDetails.Label=Drive Details: +DestinationDrive.Label=Destination drive: +Specify.Button=Specify... +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +Source.Image.Required.Title=Please specify the source image to apply +Reference.Sfufiles.CheckBox=Reference SFU files +File.Label=Apply a FFU file + +[Designer.FFUCapture] +Ok.Button=OK +Cancel.Button=Annuler +Source.Group=Source +DriveDetails.Label=Drive Details: +SourceDrive.Label=Source drive: +Specify.Button=Specify... +Destination.Group=Destination +Browse.Button=Parcourir... +Destination.ImageFile.Label=Fichier image de destination : +Options.Group=Options +Description.Goes.Label=(Description goes here) +None.Item=none +Default.Item=default +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +File.Label=Capture a FFU file + +[Designer.FFUInfoDialog] +Ok.Button=OK +Cancel.Button=Annuler +Ffuheader.Tab=FFU Header +Value.Label= +CompressionType.Label=Compression Type: +Ffuversion.Label=FFU Version: +Physical.Disk.Path.Label=Physical Disk Path: +Vhdstorage.Device.ID.Label=VHD Storage Device ID: +MountedVHDID.Label=Mounted VHD ID: +MountedVhdpath.Label=Mounted VHD path: +MountedVHD.Tab=Mounted VHD +Selected.Partition.Label=Information about the selected partition: +Mounted.FFU.Message=This mounted FFU file contains the following partitions. To show details of a specific partition, select it from the list below: +Manifest.Tab=Manifest +Full.Flash.Utility.Label=Full Flash Utility (FFU) Information + +[Designer.FFUOptimize] +Ok.Button=OK +Cancel.Button=Annuler +Browse.Button=Parcourir... +ImageFile.Label=Image file to optimize: +Default.Partition.CheckBox=Optimize a partition other than the default partition in the specified FFU file +PartitionNumber.Label=Partition number: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +OpenFile.Title=Please specify the source image to apply +Ffuimages.Label=Optimize FFU images + +[Designer.FFUSplit] +Ok.Button=OK +Cancel.Button=Annuler +Integrity.CheckBox=Vérifier l’intégrité de l’image +Browse.Button=Parcourir... +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Maximum.Size.Images.Label=Maximum size of split images (in MB): +Name.Path.Destination.Label=Name and path of the destination split image: +Source.Image.Label=Source image to split: +Sfufiles.Filter=SFU files|*.sfu +Target.Location.Title=Specify the target location of the split images: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +Source.WIM.File.Title=Specify the source WIM file to split: +SplitFfuimages.Label=Split FFU images + +[Designer.FeatureFilter] +Apply.Button=Appliquer +Clear.Button=Clear +Filter.Feature.Prompt.Label=Filter feature information by: +Name.Label=Nom : +State.Label=État : +AnyState.Item=Any state +Enabled.Item=Activé +Enablement.Pending.Item=Enablement Pending +Disabled.Item=Désactivé +Disablement.Pending.Item=Disablement Pending +Filter.Feature.Title=Filter feature information + +[Designer.Get.AppX] +PackageName.Label=Nom du paquet : +DynamicValue.Label= +Display.Name.Label=Application display name: +Architecture.Label=Architecture : +ResourceID.Label=Resource ID: +Version.Label=Version : +Registered.User.Label=Is registered to any user? +Install.Dir.Label=Installation directory: +Package.Manifest.Label=Package manifest location: +StoreLogo.Asset.Dir.Label=Store logo asset directory: +Main.StoreLogo.Asset.Label=Main store logo asset: +Asset.Guessed.DISM.Message=This asset has been guessed by DISMTools based on its size, which can lead to an incorrect result. If that happens, please report an issue on the GitHub repository +Asset.One.IM.Link=This asset is not the one I'm looking for +AppX.Package.Label=AppX package information +Installed.AppX.Label=Select an installed AppX package on the left to view its information here +Save.Button=Enregistrer... +AppX.Package.Get.Label=Get AppX package information + +[Designer.CapabilityInfo] +Ready.Label=Ready +Identity.Column=Capability identity +State.Column=État +Identity.Label=Capability identity: +DynamicValue.Label= +CapabilityName.Label=Capability name: +CapabilityState.Label=Capability state: +DisplayName.Label=Nom d’affichage : +Description.Label=Capability description: +Sizes.Label=Sizes: +CapabilityInfo.Label=Capability information +Save.Button=Enregistrer... +Look.Item.Online.Button=Rechercher cet élément en ligne +Get.Label=Get capability information + +[Designer.GetCapInfo] +SelectCapability.Label=Select an installed capability on the left to view its information here + +[Designer.GetDriverInfo] +View.Driver.File.Button=View driver file information +Change.Button=Change +Bg.Procs.Notice.Message=You have configured the background processes to not show all drivers present in this image, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in. +Save.Button=Enregistrer... +Status.Label=État +PublishedName.Column=Published name +Original.File.Name.Column=Nom du fichier d’origine +PublishedName.Label=Published name: +DynamicValue.Label= +Original.File.Name.Label=Original file name: +ProviderName.Label=Provider name: +ClassName.Label=Class name: +ClassDescription.Label=Class description: +ClassGUID.Label=Class GUID: +Catalog.File.Path.Label=Catalog file path: +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Is critical to the boot process? +Version.Label=Version : +Date.Label=Date: +Driver.Signature.Label=Driver signature status: +DriverInfo.Label=Driver information +Installed.Driver.View.Label=Select an installed driver to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddDriver.Button=Add driver... +Hardware.Description.Label=Hardware description: +HardwareID.Label=Hardware ID: +AdditionalIds.Label=Additional IDs: +CompatibleIds.Label=Compatible IDs: +ExcludeIds.Label=Exclude IDs: +Hardware.Manufacturer.Label=Hardware manufacturer: +Architecture.Label=Architecture : +JumpTarget.Label=Jump to target: +HardwareTargets.Label=Hardware targets +Add.DriverPackage.Label=Add or select a driver package to view its information here +GoBack.Link=<- Go back +Help.AddDrivers.Message=Click here to get information about drivers that you want to add to the Windows image you're servicing before proceeding with the driver addition process +Get.Drivers.Message=Click here to get information about drivers that you've installed or that came with the Windows image you're servicing +InstalledDriver.Link=I want to get information about installed drivers in the image +Iwant.Link=I want to get information about driver files +Get.Label=What do you want to get information about? +Driver.Files.Inf.Filter=Driver files|*.inf +Locate.Driver.Files.Title=Locate driver files +Driver.Label=Get driver information + +[Designer.GetFeatureInfo] +FeatureName.Column=Nom de fonctionnalité +FeatureState.Column=Feature state +FeatureName.Label=Feature name: +DynamicValue.Label= +DisplayName.Label=Nom d’affichage : +Description.Label=Feature description: +RestartRequired.Label=Is a restart required? +FeatureState.Label=Feature state: +CustomProps.Label=Custom properties: +FeatureInfo.Label=Feature information +Installed.Left.Label=Select an installed feature on the left to view its information here +Ready.Label=Ready +Save.Button=Enregistrer... +Look.Item.Online.Button=Rechercher cet élément en ligne +Get.Feature.Label=Get feature information + +[Designer.Get.Img] +WIM.Files.Wimvirtual.Filter=WIM files|*.wim|Virtual Hard Disk files|*.vhd, *.vhdx|ESD files|*.esd|SWM files|*.swm|Full Flash Utility files|*.ffu +Image.Title=Specify the image to get the information from +Index.Column=Index +ImageName.Column=Nom de l’image +Pick.Button=Choisir... +Browse.Button=Parcourir... +AnotherImage.RadioButton=Another image +CurrentlyMounted.RadioButton=Currently mounted image +List.Indexes.ImageFile.Label=List of indexes of image file: +ImageFile.Label=Image file to get information from: +ImageVersion.Label=Image version: +DynamicValue.Label= +ImageName.Label=Image name: +ImageDescription.Label=Image description: +ImageSize.Label=Image size: +Supports.WIM.Boot.Label=Supports WIMBoot? +Architecture.Label=Architecture : +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Service Pack level: +InstallationType.Label=Installation type: +Edition.Label=Edition: +ProductType.Label=Product type: +ProductSuite.Label=Product suite: +System.Root.Dir.Label=System root directory: +FileCount.Label=File count: +Dates.Label=Dates: +Installed.Languages.Label=Installed languages: +ImageInfo.Label=Informations sur l’image +Index.List.View.Label=Select an index on the list view on the left to view its information here +Save.Button=Enregistrer... +Image.Label=Get image information + +[Designer.GetPkgInfo] +AddPackages.Help.Message=Click here to get information about packages that you want to add to the Windows image you're servicing before proceeding with the package addition process +Get.Packages.Message=Click here to get information about packages that you've installed or that came with the Windows image you're servicing +InstalledPackage.Link=I want to get information about installed packages in the image +PackageFile.Link=I want to get information about package files +Get.Label=What do you want to get information about? +Save.Button=Enregistrer... +Status.Label=État +PackageName.Label=Nom du paquet : +DynamicValue.Label= +Package.Applicable.Label=Is package applicable? +Copyright.Label=Copyright: +Company.Label=Company: +CreationTime.Label=Creation time: +Description.Label=Description : +InstallClient.Label=Install client: +Install.Package.Name.Label=Install package name: +InstallTime.Label=Install time: +Last.Update.Time.Label=Last update time: +DisplayName.Label=Nom d’affichage : +ProductName.Label=Product name: +ProductVersion.Label=Product version: +ReleaseType.Label=Release type: +RestartRequired.Label=Is a restart required? +SupportInfo.Label=Support information: +State.Label=État : +Boot.Up.Required.Label=Is a boot up required for full installation? +Capability.Identity.Label=Capability identity: +CustomProps.Label=Custom properties: +Features.Label=Features: +PackageInfo.Label=Informations sur le paquet +Installed.Package.View.Label=Select an installed package to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddPackage.Button=Add package... +Add.Package.File.Label=Add or select a package file to view its information here +GoBack.Link=<- Go back +Cabfiles.Filter=CAB files|*.cab +Locate.Package.Files.Title=Locate package files +Package.Label=Get package information + +[Designer.WinPESettings] +Ok.Button=OK +Windows.Label=These are the Windows PE settings for this image: +Change.Button=Modifier... +TargetPath.Label=Target path: +ScratchSpace.Label=Scratch space: +Save.Button=Enregistrer... +Get.Windows.Pesettings.Label=Get Windows PE settings + +[Designer.ImageFilePicker] +Ok.Button=OK +Cancel.Button=Annuler +ImageFile.Column=Image File +Pick.Windows.ImageFile.Label=Pick Windows image file +MountList.Prompt.Label=Pick the Windows image file that you want to mount from the list below and click OK: + +[Designer.ImageTaskHeader] +ItemText.Title=Item Text + +[Designer.ImgAppend] +Ok.Button=OK +Cancel.Button=Annuler +Options.Group=Options +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Grab.Last.Image.Button=Grab from last image +Browse.Button=Parcourir... +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +ExtendedAttributes.CheckBox=Capture extended attributes +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +WIM.Boot.Config.CheckBox=Append with WIMBoot configuration +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Destination.ImageFile.Label=Fichier image de destination : +Sources.Destinations.Group=Sources and destinations +Source.Image.Dir.Label=Source image directory: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +AppendImage.Label=Append to an image + +[Designer.ImgApply] +Ok.Button=OK +Cancel.Button=Annuler +Source.Group=Source +Browse.Button=Parcourir... +Mounted.Image.Label=Utiliser une image montée +SourceImageFile.Label=Fichier image source : +Options.Group=Options +Extended.Attributes.CheckBox=Apply extended attributes +Image.Compact.Mode.CheckBox=Apply image in compact mode +ImageIndex.Label=Image index: +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Reference.Swmfiles.CheckBox=Reference SWM files +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Verify.CheckBox=Verify +Integrity.CheckBox=Vérifier l’intégrité de l’image +Destination.Group=Destination +Destination.Dir.Label=Destination directory: +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm|ESD files|*.esd +Source.Image.Required.Title=Please specify the source image to apply +SwmfilePattern.Group=SWM file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Modèle de nommage : +DestinationDir.Description=Please specify the destination directory to apply the image to: +ApplyImage.Label=Apply an image +Validate.Image.CheckBox=Validate image for Trusted Desktop + +[Designer.ImgCapture] +Ok.Button=OK +Cancel.Button=Annuler +Sources.Destinations.Group=Sources and destinations +Browse.Button=Parcourir... +Destination.ImageFile.Label=Fichier image de destination : +Source.Image.Dir.Label=Source image directory: +Options.Group=Options +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Mount.Dest.Image.CheckBox=Mount destination image for later use +Extended.Attributes.CheckBox=Capture extended attributes +Append.WIM.Boot.CheckBox=Append with WIMBoot configuration +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +CaptureImage.Label=Capture an image + +[Designer.ImgCleanup] +Ok.Button=OK +Cancel.Button=Annuler +Task.Choose.Label=Choose a task: +Revert.Pending.Actions.Item=Revert pending actions +Clean.Up.ServicePack.Item=Clean up Service Pack backup files +Clean.Up.Component.Item=Clean up component store +Analyze.Component.Store.Item=Analyze component store +Check.Component.Store.Item=Check component store +Scan.Comp.Store.Item=Scan component store for corruption +Repair.Component.Store.Item=Repair component store +TaskOptions.Group=Task options +NoOptions.Message=There are no configurable options for this task. However, you should only run this task to try to recover a Windows image that fails to boot. +HideServicePack.CheckBox=Hide service pack from the Installed Updates list +Last.Reset.Base.Label=LastResetBase_UTC +Only.Check.Option.Label=You should only check this option if the base reset takes more than 30 minutes to complete +Superseded.Base.Reset.Label=The superseded components base reset was last run on: +Defer.Long.Running.CheckBox=Defer long-running cleanup operations +Reset.Base.CheckBox=Reset base of superseded components +NoOptions.Label=There are no configurable options for this task. +Browse.Button=Parcourir... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +Different.Source.CheckBox=Use different source for component repair +Detect.Group.Policy.Button=Detect from group policy +Task.Listed.Label=Select a task listed above to configure its options. +Task.See.Choose.Label=Choose a task to see its description +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +Source.Title=Specify the source from which we will restore the component store health +ImageCleanup.Label=Image cleanup + +[Designer.ImageConvert] +Converted.Message=The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located.{crlf;}{crlf;}Do you want to open the directory where the target image is stored? +Converted.Label=The image has been successfully converted +Yes.Button=Yes +No.Button=No +AppName.Label=DISMTools + +[Designer.ImgExport] +Ok.Button=OK +Cancel.Button=Annuler +Sources.Destinations.Group=Sources and destinations +Browse.Button=Parcourir... +Destination.ImageFile.Label=Fichier image de destination : +SourceImageFile.Label=Fichier image source : +Options.Group=Options +Reference.Swmfiles.CheckBox=Reference SWM files +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Modèle de nommage : +CustomName.CheckBox=Specify a custom name for the destination image +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Recovery.Item=recovery +CompressionType.Label=Destination image compression type: +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Index.Column=Index +ImageName.Column=Nom de l’image +ImageDescription.Column=Description de l’image +ImageVersion.Column=Version de l’image +Source.Image.Index.Label=Source image index: +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm +Source.ImageFile.Title=Specify a source image file to export +ExportImage.Label=Export an image +CheckIntegrity.CheckBox=Check integrity before exporting image + +[Designer.ImageIndexDelete] +Ok.Button=OK +Cancel.Button=Annuler +SourceImage.Label=Source image: +Browse.Button=Parcourir... +Mounted.Image.Button=Utiliser une image montée +VolumeImages.Group=Volume images +Index.Column=Index +ImageName.Column=Nom de l’image +Get.Indexes.Image.Label=Getting indexes from the image. Please wait... +Mark.VolumeImages.Message=Please mark the volume images to delete on the left. The image will then have the indexes shown on the right +Integrity.CheckBox=Vérifier l’intégrité de l’image +WIM.Files.Filter=WIM files|*.wim +Source.Image.Remove.Title=Specify the source image to remove volume images from +Remove.Volume.Image.Label=Remove a volume image + +[Designer.ImageIndexSwitch] +Ok.Button=OK +Cancel.Button=Annuler +Indexes.Group=Indexes +Save.Changes.RadioButton=Save changes to index +Index.Label= +Destination.Mount.Label=Destination index to mount: +Unmounting.Source.Label=When unmounting source index, what to do? +Image.Label=Image: +Already.Mounted.Label=This index has already been mounted +Image.Indexes.Label=Switch image indexes +DiscardChanges.RadioButton=Unmount discarding changes + +[Designer.Img.Save] +Status.Label=État +Wait.Message=Please wait while DISMTools saves the image information to a file. This can take some time, depending on the tasks that are run. +Saving.Image.Button=Saving image information... + +[Designer.ImgMount] +Ok.Button=OK +Cancel.Button=Annuler +Options.Required.Label=Please specify the options to mount an image: +Source.Group=Source +Notewant.ESD.Label=NOTE: if you want to mount an ESD file, you need to convert it to a WIM file first +Convert.Button=Convert +Browse.Button=Parcourir... +ImageFile.Label=Image file*: +Destination.Group=Destination +MountDirectory.Label=Mount directory*: +Options.Group=Options +Index.Column=Index +ImageName.Column=Nom de l’image +ImageDescription.Column=Description de l’image +ImageVersion.Column=Version de l’image +Integrity.CheckBox=Vérifier l’intégrité de l’image +Optimize.Times.CheckBox=Optimize mount times +Mount.Read.CheckBox=Mount with read only permissions +Index.Label=Index*: +Fields.End.Required.Label=The fields that end in * are required +FileSpec.Filter=WIM files|*.wim|ESD files|*.esd|SWM files|*.swm|VHD(X) files|*.vhd;*.vhdx|ISO files|*.iso|Full Flash Utility files|*.ffu +MountImage.Label=Mount an image + +[Designer.ImgOptimize] +Ok.Button=OK +Cancel.Button=Annuler +Path.Mounted.Image.Label=Path of mounted image to optimize: +Pick.Button=Choisir... +Mounted.Image.Button=Utiliser une image montée +Image.Optimization.Mode=Image optimization mode +Reduce.Online.RadioButton=Reduce online configuration time that the target OS spends during boot +Image.Again.Label=You may need to optimize the image again if you perform servicing operations after this task. +OfflineImage.RadioButton=Configure an offline image for installation on a WIMBoot system (Windows 8.1 only) +OptimizeImages.Label=Optimize images + +[Designer.Img.SWM] +Ok.Button=OK +Cancel.Button=Annuler +Split.WIM.Files.Filter=Split WIM files|*.swm +Source.Swmfile.Title=Specify the source SWM file to merge +WIM.Files.Filter=WIM files|*.wim +Dest.WIM.File.Title=Specify the destination WIM file to merge the source SWM files to +SourceSwmfile.Label=Source SWM file: +Browse.Button=Parcourir... +Destination.WIM.File.Label=Destination WIM file: +Notewhen.Specifying.Message=NOTE: when specifying the SWM file, choose the first file. DISMTools will take care of additional SWM files stored in that directory. +LearnHow.Link=Learn how to do it +Source.Group=Source +Options.Group=Options +Index.Column=Index +ImageName.Column=Nom de l’image +ImageDescription.Column=Description de l’image +ImageVersion.Column=Version de l’image +Index.Label=Index: +Destination.Group=Destination +MergeSwmfiles.Label=Merge SWM files + +[Designer.ImgSplit] +Ok.Button=OK +Cancel.Button=Annuler +Swmfiles.Filter=SWM files|*.swm +SaveFile.Title=Specify the target location of the split images: +WIM.Files.Filter=WIM files|*.wim +Source.WIM.File.Title=Specify the source WIM file to split: +Source.Image.Label=Source image to split: +Browse.Button=Parcourir... +Name.Path.Destination.Label=Name and path of the destination split image: +Maximum.Size.Images.Label=Maximum size of split images (in MB): +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Integrity.CheckBox=Vérifier l’intégrité de l’image +SplitImages.Label=Split images + +[Designer.ImgUmount] +Ok.Button=OK +Cancel.Button=Annuler +Options.Required.Label=Please specify the options to unmount this image: +MountDirectory.Group=Mount directory +Pick.Button=Choisir... +MountDirectory.Label=Mount directory: +LocatedSomewhere.RadioButton=is located somewhere else +LoadedProject.RadioButton=is loaded in the project +Mount.Dir.Label=The mount directory: +Additional.Options.Group=Additional options +Save.Changes.Unmount.Item=Save changes and unmount +Discard.Changes.Unmount.Item=Discard changes and unmount +Append.Changes.CheckBox=Append changes to another index +Integrity.CheckBox=Vérifier l’intégrité de l’image +UnmountOperation.Label=Unmount operation: +MountDir.Description=Please specify a mount directory: +UnmountImage.Label=Unmount an image + +[Designer.Img.WIM] +Ok.Button=OK +Cancel.Button=Annuler +Source.Group=Source +Browse.Button=Parcourir... +SourceImageFile.Label=Fichier image source : +Options.Group=Options +Index.Column=Index +ImageName.Column=Nom de l’image +ImageDescription.Column=Description de l’image +ImageVersion.Column=Version de l’image +Index.Label=Index: +Format.Converted.Image.Label=Format of converted image: +Format.Ichoose.Link=Which format do I choose? +Destination.Group=Destination +Destination.ImageFile.Label=Fichier image de destination : +OpenFile.Filter=WIM files|*.wim|ESD files|*.esd +Source.ImageFile.Title=Specify the source image file you want to convert +Target.Image.Stored.Title=Where will the target image be stored? +ConvertImage.Label=Convert image + +[Designer.VistaWarning] +Unsupported.Message=Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled.{crlf;}{crlf;}If you still want to service a Windows Vista image, refer to the {quot;}Compatibility with older Windows versions{quot;} topic in the Help documentation.{crlf;}{crlf;}Do you want to continue? +Windows.Service.Message=The program can't service Windows Vista images +Yes.Button=Yes +No.Button=No +DISMTools.Label=DISMTools + +[Designer.ImportDrivers] +Ok.Button=OK +Cancel.Button=Annuler +Process.Third.Message=This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image +ImportSource.Label=Import source: +Windows.Item=Windows image +Online.Install.Item=Online installation +Offline.Install.Item=Offline installation +ImgFile.Label= +ImageFile.Label=Image file: +Tuse.Target.Label=You can't use the import target as the import source +Pick.Button=Choisir... +Windows.Label=Windows image to import drivers from: +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Refresh.Button=Actualiser +Offline.Drivers.Label=Offline installation to import drivers from: +Source.Listed.Choose.Label=Choose a source listed above to configure its settings. +ImportDrivers.Label=Import drivers + +[Designer.IncompleteSetupDlg] +Yes.Button=Yes +No.Button=No +SetupIncomplete.Message=Setup is not complete yet, and your custom settings will not be saved. Proceeding will make the program use default settings.Do you want to proceed? +DISMTools.Label=DISMTools + +[Designer.InfoSaveResults] +ReportSaved.Message=The report has been saved to the location you had specified, and its contents will be shown below. +Ok.Button=OK +Display.Content.Web.CheckBox=Display content in Web View +SaveReport.Button=Save report... +Htmlreports.Filter=HTML Reports|*.html +Image.Report.Label=Image information report results + +[Designer.InvalidSettings] +Ok.Button=OK +Scratch.Dir.Status.Label= +Log.File.Status.Label= +Log.Font.Status.Label= +DISM.Executable.Status.Label= +Detected.Label=Invalid settings have been detected +ResetDefaults.Message=The invalid settings have been reset to default values. Check the fields below for more information: +Found.Label=The program has detected invalid settings + +[Designer.ISOCreator] +ISO.File.Message=The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here. +Options.Group=Options +Include.Essential.CheckBox=Include essential drivers from this system +Customize.Environment.Button=Customize Environment... +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Browse.Button=Parcourir... +Copy.Ventoy.Drives.CheckBox=Copy to Ventoy drives +Unattended.CheckBox=Unattended answer file: +Architecture.Label=Architecture : +Pick.Button=Choisir... +Target.Isolocation.Label=Target ISO location: +ImageFile.Add.Label=Image file to add to ISO file: +Mounted.Image.Button=Utiliser une image montée +Newly.Signed.Boot.CheckBox=Use newly-signed boot binaries +Cancel.Button=Annuler +Create.Button=Create +Progress.Group=Progression +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=État +WIM.Files.Filter=WIM files|*.wim +Isofiles.Filter=ISO files|*.iso +Download.Windows.ADK.Link=Download the Windows ADK +Answer.Files.XML.Filter=Answer files|*.xml +CreateIsofile.Label=Create an ISO file + +[Designer.Main] +File.Label=&File +NewProject.Button=&New project... +Open.Existing.Project.Label=&Open existing project +Manage.Online.Install.Label=&Manage online installation +Manage.Ffline.Button=Manage o&ffline installation... +RecentProjects.Label=Recent projects +SaveProject.Button=&Save project... +Save.Project.Button=Save project &as... +Exit.Label=E&xit +Project.Label=&Project +View.Project.Files.Label=View project files in File Explorer +UnloadProject.Button=Unload project... +Switch.Image.Indexes.Button=Switch image indexes... +ProjectProps.Label=Project properties +ImageProps.Label=Image properties +Commands.Label=Com&mands +ImageManagement.Label=Image management +Append.Capture.Dir.Button=Append capture directory to image... +ApplyFfusfufile.Button=Apply FFU or SFU file... +ApplyWimswmfile.Button=Apply WIM or SWM file... +Capture.Incremental.Button=Capture incremental changes to file... +Capture.Partitions.Button=Capture partitions to FFU file... +Capture.Image.Drive.Button=Capture image of a drive to WIM file... +Delete.Resources.Button=Delete resources from corrupted image... +Apply.Changes.Image.Button=Apply changes to image... +Delete.Volume.Image.Button=Delete volume image from WIM file... +ExportImage.Button=Export image... +Get.Image.Button=Get image information... +Get.WIM.Boot.Button=Get WIMBoot configuration entries... +List.Files.Dirs.Button=List files and directories in image... +MountImage.Button=Mount image... +Optimize.FFU.File.Button=Optimize FFU file... +OptimizeImage.Button=Optimize image... +Remount.Image.Button=Remount image for servicing... +Split.FFU.File.Button=Splt FFU file into SFU files... +Split.WIM.File.Button=Split WIM file into SWM files... +UnmountImage.Button=Unmount image... +Update.WIM.Boot.Button=Update WIMBoot configuration entry... +Apply.Siloed.Prov.Button=Apply siloed provisioning package... +Save.Image.Button=Save image information... +OSPackages.Label=OS packages +GetPackages.Button=Get package information... +AddPackage.Button=Add package... +RemovePackage.Button=Remove package... +GetFeatures.Button=Get feature information... +EnableFeature.Button=Enable feature... +DisableFeature.Button=Disable feature... +CleanupRecovery.Button=Perform cleanup or recovery operations... +ProvPackages.Label=Provisioning packages +Add.Prov.Package.Button=Add provisioning package... +Get.Prov.Package.Button=Get provisioning package information... +Apply.CustomData.Button=Apply custom data image... +AppPackages.Label=App packages +Get.App.Package.Button=Get app package information... +Add.Provisioned.App.Button=Add provisioned app package... +Remove.Prov.App.Button=Remove provisioning for app package... +Optimize.Provisioned.Button=Optimize provisioned packages... +Add.CustomData.File.Button=Add custom data file into app package... +AppMspservicing.Label=App (MSP) servicing +Get.App.Patch.Button=Get application patch information... +Installed.App.Details.Button=Get detailed installed application patch information... +Basic.Installed.App.Button=Get basic installed application patch information... +Get.Detailed.Button=Get detailed Windows Installer (*.msi) application information... +Get.Basic.Windows.Button=Get basic Windows Installer (*.msi) application information... +DefaultApp.Assoc.Label=Default app associations +Export.Default.Button=Export default application associations... +DefaultApp.Assoc.Button=Get default application association information... +Import.Default.Button=Import default application associations... +Remove.Default.Button=Remove default application associations... +Languages.Regional.Label=Languages and regional settings +Intl.Settings.Button=Get international settings and languages... +SetUilanguage.Button=Set UI language... +Set.Default.Button=Définir la langue de secours par défaut de l’interface utilisateur... +Set.System.Preferred.Button=Set system preferred UI language... +Set.System.Locale.Button=Set system locale... +Set.User.Locale.Button=Set user locale... +Set.Input.Locale.Button=Set input locale... +Set.UI.Button=Set UI language and locales... +Set.Default.Time.Button=Set default time zone... +Set.Default.Languages.Button=Set default languages and locales... +Set.Layered.Driver.Button=Set layered driver... +Generate.Lang.Ini.Button=Generate Lang.ini file... +Set.Default.Setup.Button=Set default Setup language... +Capabilities.Label=Fonctionnalités +AddCapability.Button=Add capability... +Export.Capabilities.Button=Export capabilities into repository... +GetCapabilities.Button=Get capability information... +RemoveCapability.Button=Remove capability... +WindowsEditions.Label=Windows editions +Get.Edition.Button=Get current edition... +Get.Upgrade.Targets.Button=Get upgrade targets... +UpgradeImage.Button=Upgrade image... +SetProductKey.Button=Set product key... +Drivers.Label=Pilotes +GetDrivers.Button=Get driver information... +AddDriver.Button=Add driver... +RemoveDriver.Button=Remove driver... +Export.DriverPackages.Button=Export driver packages... +Import.DriverPackages.Button=Import driver packages... +Unattended.Answer.Label=Unattended answer files +Apply.Unattended.Button=Apply unattended answer file... +Remove.Applied.Label=Remove applied answer file +System.Enter.Audit.Label=Make system enter audit mode +WindowsPE.Label=Windows PE servicing +GetSettings.Button=Get settings... +SetScratchSpace.Button=Set scratch space... +Set.Target.Path.Button=Set target path... +OSUninstall.Label=OS uninstall +Get.Uninstall.Window.Button=Get uninstall window... +Initiate.Uninstall.Button=Initiate uninstall... +Remove.Roll.Back.Button=Remove roll back ability... +Set.Uninstall.Window.Button=Set uninstall window... +ReservedStorage.Label=Reserved storage +Set.Reserved.Storage.Button=Set reserved storage state... +Get.Reserved.Storage.Button=Get reserved storage state... +MicrosoftEdge.Label=Microsoft Edge +AddEdge.Button=Add Edge... +Add.Edge.Browser.Button=Add Edge browser... +Add.Edge.Web.Button=Add Edge WebView... +Tools.Label=&Tools +ImageConversion.Label=Image conversion +Wimesd.Label=WIM <-> ESD +MergeSwmfiles.Button=Merge SWM files... +Remount.Image.Write.Label=Remount image with write permissions +CommandConsole.Label=Command Console +Unattended.AnswerFile.Label=Unattended answer file manager +Unattended.Creator.Label=Unattended answer file creator +Manage.Image.Registry.Button=Manage image registry hives... +Manage.System.Button=Manage system services... +Manage.System.Env.Button=Manage system environment variables... +WebResources.Label=Web Resources +Download.Languages.Button=Download Languages and Optional Features ISOs... +Download.FOD.Button=Download Languages and FOD discs for Windows 10... +StartPXE.Button=Start PXE Helper Server for... +Windows.Label=Windows Deployment Services +FOG.Label=FOG +Show.Instructions.Label=Show instructions for FOG Helper Server on UNIX systems +Copy.My.Windows.Button=Copy my Windows image to a WDS server... +Evaluate.Windows.Label=Evaluate Windows UEFI CA 2023 readiness on this system +ReportManager.Label=Report manager +Mounted.Image.Manager.Label=Mounted image manager +Create.Disc.Image.Button=Create disc image... +Create.Testing.Button=Create testing environment... +Config.List.Editor.Label=Configuration list editor +Create.StarterScript.Label=Create a starter script +DesignTheme.Label=Design a theme +Options.Label=Options +Help.Label=&Help +HelpTopics.Label=Help Topics +DISM.Tools.Tour.Label=DISMTools Tour +DISM.Tools.Label=About DISMTools +Join.Discord.Opens.Label=Join the discord (opens in web browser) +Report.Feedback.Opens.Label=Envoyer un commentaire (s’ouvre dans le navigateur web) +Open.Diagnostic.Logs.Label=Open diagnostic logs in log viewer +Contribute.Help.System.Label=Contribute to the help system +Branch.Label=Branch +Preview.Label=PREVIEW +Beta.Release.Tooltip=This is a beta release. In it, you will encounter lots of bugs and incomplete features. +Full.Screen.Shortcut.Label=(F11) +Settings.Detected.Label=Invalid settings have been detected +MoreInfo.Label=More information +WhatsThis.Label=What's this? +DISM.Tools.Actions.Label=DISMTools Tour Actions +Tour.Server.Active.Label=Tour Server is active on port 2022 +RestartTour.Label=Restart Tour +Stop.Tour.Server.Label=Stop Tour Server +Video.Content.Loaded.Label=Video content could not be loaded. +LearnMore.Link=En savoir plus +Retry.Button=Réessayer +Name.Column=Nom +FactDay.Label=Fact of the day +Learn.Watching.Videos.Label=Learn by watching videos +Managing.External.Link=Managing external Windows installations +Managing.Install.Link=Managing your current installation +Get.Started.DISM.Link=Get started with DISMTools and image servicing +Learn.Snew.Link=Learn what's new in this release +Explore.Get.Started.Label=Explore and get started +News.Feed.Loaded.Label=The news feed could not be loaded. +Stay.Up.Date.Label=Stay up-to-date +News.Last.Updated.Label=Dernière mise à jour des actualités : +NewsFeed.Item.Label=Texte de l’actualité +Item.Feed.Date.Label=Date de l’actualité +OS.Label=OS +IP.Address.Config.Label=IP Address Configuration: +Processor.Label=Processor +DomainMembership.Label=Domain Membership: +Memory.Label=Memory +Storage.Label=Storage +DomainStatus.Label=Domain Status +WorkgroupDomain.Label=Workgroup/Domain: +ComputerModel.Label=Computer Model +ComputerName.Label=Computer Name +Rename.Link=Rename +PathName.Column=Path/Name +NewVersion.Available.Link=A new version is available for download and installation. Click here to learn more +RemoveEntry.Link=Remove entry +Manage.Offline.Button.Button=Manage offline installation... +Manage.Online.Install.Link=Manage online installation +Open.Existing.Project.Link=Open existing project... +NewProject.Link=New project... +Begin.Label=Begin +ImageOperations.Group=Image operations +CaptureImage.Button=Capture image... +ApplyImage.Button=Apply image... +Save.Complete.Image.Button=Save complete image information... +Remove.VolumeImages.Button=Remove volume images... +Reload.Servicing.Button=Reload servicing session +Unmount.Image.Button=Unmount image discarding changes +CommitImage.Button=Commit and unmount image +Commit.Changes.Button=Commit current changes +Package.Operations.Group=Package operations +Save.Installed.Button=Save installed package information... +Component.Store.Maint.Button=Perform component store maintenance and cleanup... +Get.Package.Button=Get package information... +Feature.Operations.Group=Feature operations +Save.Feature.Button=Save feature information... +Get.Feature.Button=Get feature information... +AppX.Package.Operations=AppX package operations +Save.Installed.AppX.Button=Save installed AppX package information... +Add.AppX.Package.Button=Add AppX package... +Get.App.Button=Get app information... +Remove.AppX.Package.Button=Remove AppX package... +Capability.Operations.Group=Capability operations +Save.Capability.Button=Save capability information... +Get.Capability.Button=Get capability information... +DriverOperations.Group=Driver operations +Save.Installed.Driver.Button=Save installed driver information... +AddDriverPackage.Button=Add driver package... +Get.Driver.Button=Get driver information... +Windows.Group=Windows PE operations +SaveConfig.Button=Save configuration... +GetConfig.Button=Get configuration... +LearnMore.Button=Learn more... +One.Bg.Procs.Message=One or more background processes did not finish successfully. Some functionality may not be available. +ProjectTasks.Label=Project Tasks +UnloadProject.Link=Décharger le projet +Open.File.Explorer.Link=Open in File Explorer +View.Project.Props.Link=View project properties +UnloadProject.ActionButton=Décharger le projet +View.File.Explorer.Button=View in File Explorer +View.Project.Props.Button=View project properties +Mount.Image.Link=Click here to mount an image +ImgStatus.Label=imgStatus +Location.Label=Location: +ProjPath.Label=projPath +ImagesMounted.Label=Images mounted? +Name.Label=Nom : +ProjectName.DynamicLabel= +ImageMounted.Label=No image has been mounted +Mount.Image.Order.Label=You need to mount an image in order to view its information. +Choices.Label=Choices +Pick.Mounted.Image.Link=Pick a mounted image... +MountImage.Link=Mount an image... +ImageTasks.Label=Image Tasks +UnmountImage.Link=Unmount image +View.Image.Props.Link=View image properties +ImageIndex.Label=Image index: +Description.Label=Description : +ImgIndex.Label=imgIndex +MountPoint.Label=Mount point: +MountPoint.Value=mountPoint +Version.Label=Version : +ImgName.Label=imgName +ImgDesc.Label=imgDesc +ImgVersion.Label=imgVersion +Project.Link=PROJECT +Image.Link=IMAGE +Clock.DynamicLabel= +Welcome.Servicing.Label=Welcome to this servicing session +CloseTab.Label=Close tab +SaveProject.Label=Save project +UnloadProject.Label=Décharger le projet +Unload.Project.Tooltip=Unload project from this program +Show.Progress.Window.Label=Show progress window +RefreshView.Label=Refresh view +Expand.Label=Expand +Preparing.Project.Button=Preparing project tree... +Status.Label=État +View.BgProcesses.Tooltip=View background processes +Ready.Label=Ready +DISM.Tools.Project.Filter=DISMTools project files|*.dtproj +Project.File.Load.Title=Specify the project file to load +Get.Basic.Label=Get basic information (all packages) +Get.Detailed.Specific.Label=Get detailed information (specific package) +MountDir.Description=Please specify the mount directory you want to load into this project: +CommitImage.Label=Commit changes and unmount image +Discard.Changes.Label=Discard changes and unmount image +UnmountSettings.Button=Unmount settings... +View.Package.Dir.Label=View package directory +ViewResources.Label=View resources for +ExpandItem.Label=Expand item +AccessDirectory.Label=Access directory +Copy.Deployment.Tools.Label=Copy deployment tools +AllArchitectures.Label=Of all architectures +Selected.Architecture.Label=Of selected architecture +Xarchitecture.Label=For x86 architecture +Amarkdown.Architecture.Label=For AMD64 architecture +ARM.Label=For ARM architecture +ARM64.Label=For ARM64 architecture +ImageOperations.Label=Image operations +Manage.Label=Manage +Create.Label=Create +Configure.Scratch.Dir.Label=Configure scratch directory +ManageReports.Label=Manage reports +Add.Button=Ajouter +NewFile.Button=New file... +ExistingFile.Button=Existing file... +SaveResource.Button=Save resource... +CopyResource.Label=Copy resource +PngFiles.Filter=PNG files|*.png +Visit.Microsoft.Apps.Label=Visit the Microsoft Apps website +Visit.Microsoft.Label=Visit the Microsoft Store Generation Project website +Iget.Apps.Label=How do I get applications? +MarkdownFiles.Filter=Markdown files|*.md +Get.ImageFile.Button=Get image file information... +Create.Disc.ImageFile.Button=Create disc image with this file... +Upload.Image.My.Button=Upload this image to my WDS server... +ApplyWimswmesd.Button=Apply WIM/SWM/ESD file... +Apply.FFU.File.Button=Apply FFU file... +Capture.Install.Dir.Button=Capture installation directory to WIM file... +Capture.Install.Drive.Button=Capture installation drive to FFU file... +DISMTools.Label=DISMTools + +[Designer.MigrationForm] +Wait.Message=Please wait while DISMTools migrates your old settings file to work on this version. This may take some time. +Wait.Label=Veuillez patienter... +DISMTools.Label=DISMTools + +[Designer.MountDirCreation] +Create.Label=Do you want to create the mount directory? +Yes.Button=Yes +No.Button=No +MountImage.Label=Mount an image + +[Designer.MountedImgMgr] +Overview.Images.Message=Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project: +ImageFile.Column=Image file +Index.Column=Index +MountDirectory.Column=Mount directory +Status.Column=État +Read.Write.Column=Read/write permissions? +LoadProject.Button=Load into project +Value.Button=... +Open.Mount.Dir.Button=Open mount directory +Enable.Write.Button=Enable write permissions +ReloadServicing.Button=Reload servicing +Remove.VolumeImages.Button=Remove volume images... +UnmountImage.Button=Unmount image +Image.Manager.Label=Mounted image manager + +[Designer.MUMAdd] +Ok.Button=OK +Cancel.Button=Annuler +DialogHelp.Message=This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time.{crlf;}{crlf;}Do note that this is for advanced use only and may compromise the target Windows image. +Path.Manifest.File.Label=Path of the manifest file to add: +Browse.Button=Parcourir... +MUMFiles.Filter=Microsoft Update Manifest (MUM) files|update.mum +Update.Manifest.Label=Add update manifest + +[Designer.NewProj] +Ok.Button=OK +Cancel.Button=Annuler +Options.Required.Label=Please specify the options to create a new project: +Project.Group=Projet +Browse.Button=Parcourir... +Location.Label=Location*: +Name.Label=Name*: +Folder.Store.Description=Please select a folder to store this project: +Fields.End.Required.Label=The fields that end in * are required +Create.Project.Label=Create a new project + +[Designer.NewTestingEnv] +Download.Windows.ADK.Link=Download the Windows ADK +Create.Button=Create +Cancel.Button=Annuler +WizardHelp.Message=This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments.{crlf;}{crlf;}The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file. +Architecture.Label=Architecture : +Env.Architecture.Label=Environment architecture: +Browse.Button=Parcourir... +Target.Project.Label=Target project location: +Progress.Group=Progression +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=État +Create.Environment.Label=Create a testing environment + +[Designer.Unattend] +Welcome.Label=Welcome +RegionalConfig.Label=Regional Configuration +Basic.System.Config.Label=Basic System Configuration +TreeNode.Label=Time Zone +DiskConfig.Label=Disk Configuration +ProductKey.Label=Product Key +UserAccounts.Label=User Accounts +VirtualMachine.Support.Label=Virtual Machine Support +Wireless.Networking.Label=Wireless Networking +SystemTelemetry.Label=System Telemetry +PostInstall.Scripts.Label=Post-Installation Scripts +Component.Settings.Label=Component Settings +Finish.Label=Finish +EditorMode.Label=Editor mode +ExpressMode.Label=Express mode +Notereturn.Applying.Label=NOTE: you will return to this wizard after applying the answer file +EditAnswerFile.Link=Edit answer file +Open.Windows.System.Link=Open with Windows System Image Manager +Apply.Unattended.Link=Apply unattended answer file... +Open.Location.File.Link=Open the location of the file +Create.Another.Link=Create another answer file +FileCreated.Message=The unattended answer file has been created at the location you specified. What do you want to do now? +Congratulations.Done.Label=Congratulations! You have finished +Wait.Take.Label=Please wait - this can take some time +Progress.Label=Progress: +Wait.UnattendAnswer.Button=Please wait while your unattended answer file is being created... +Something.Right.Go.Message=If something is not right, you will need to go back to that page in order to change the setting. Do not worry: other settings will be kept intact +WordWrap.CheckBox=Word wrap +ReviewSettings.Label=Review your settings for the unattended answer file +Don.Twant.Add.Label=Don't want to add custom components? Click Next to skip this step. +No.Custom.None.Message=No custom components have been added yet. Click the plus symbol on the top of this section to add a new component. +Learn.Custom.Link=Learn more about custom components in Windows +Pass.Label=Pass: +Component.Label=Component: +Component.Count.Label=Component {{current}} of {{count}} +Learn.Component.Link=Learn more about this component +Screen.Add.Message=In this screen you can add additional components that you want to configure in your unattended answer file. Add new components, specify their passes and their data, and click Next. +Components.Label=Configure additional components +Hide.Script.Windows.CheckBox=Hide script windows +RestartExplorer.CheckBox=Restart Windows Explorer after running the scripts +Import.StarterScript.Button=Import a predefined Starter Script... +ImportScript.Button=Import a Starter Script in file system... +Language.Label=Language: +OpenScript.Button=Open script... +Scripts.Have.None.Message=No scripts have been added to this stage yet. Click the plus symbol on the top of this section to add a new script. +Script.Count.Label=Script {{current}} of {{count}} +System.Config.Link=During system configuration +First.User.Logs.Link=When the first user logs on +Whenever.User.Logs.Link=Whenever a user logs on for the first time +ScriptScreenHelp.Message=In this screen you can configure scripts that will be run during a specific stage of Windows installation. Use the sections below to specify the code for the scripts.{crlf;}{crlf;}If you don't want to configure scripts, click Next. +Run.Install.Label=What will be run after installation? +EnableTelemetry.RadioButton=Enable telemetry +DisableTelemetry.RadioButton=Disable telemetry +ConfigureSettings.CheckBox=I want to configure these settings during installation +Control.Limit.Much.Message=Control and limit how much information is sent to Microsoft and third-parties +WirelessSettings.RadioButton=Configure settings for the wireless network now: +Access.Router.Config.Link=Access router configuration to learn more +Open.Least.Secure.Item=Open (least secure) +Wpapsk.Item=WPA2-PSK +Wpasae.Item=WPA3-SAE +ConnectHidden.CheckBox=Connect even if not broadcasting +Password.Label=Password: +AuthTechnology.Label=Authentication technology: +Technology.Both.Choose.Label=Please choose the technology that both the wireless router and your network adapter support. +SsidnetworkName.Label=SSID (Network Name): +SkipConfig.RadioButton=Skip configuration +Option.Either.Choose.Label=Choose this option if you either don't have a network adapter or plan to use Ethernet +WirelessSettings.Label=Configure wireless network settings and get connected online +Guest.Additions.Message=- Use Guest Additions with Oracle VM VirtualBox{crlf;}- Use VMware Tools with VMware hypervisors{crlf;}- Use VirtIO Guest Tools with QEMU-based hypervisors{crlf;}- Use Parallels Tools with Parallels hypervisors on Macintosh computers +Virtual.Box.Guest.Item=VirtualBox Guest Additions +VmwareTools.Item=VMware Tools +Virt.Ioguest.Tools.Item=VirtIO Guest Tools +ParallelsTools.Item=Parallels Tools +VirtualMachine.Label=Virtual Machine Support: +Iplan.Target.RadioButton=No, I plan on using the target installation on a real system +Iwant.Target.RadioButton=Yes, I want to use the target installation on a virtual machine +Add.Enhanced.Support.Message=Do you want to add enhanced support from your virtual machine solution? +Checking.Option.Target.Label=Checking this option will make the target installation more vulnerable to brute-force attacks +Amount.Failed.Attempts.Label=After the following amount of failed attempts: +UnlockMinutes.Label=After the following amount of minutes, unlock the account: +Lock.Out.Account.Label=Lock out an account... +TimeframeMinutes.Label=Within the following timeframe in minutes: +CustomLockout.RadioButton=Continue with custom Account Lockout policies +DefaultLockout.RadioButton=Continue with default Account Lockout policies +DisablePolicy.CheckBox=Disable policy +AccountLockout.Label=Configure Account Lockout policies for the target system +Days.Label=days +ExpirePassword.RadioButton=Passwords should expire after the following number of days: +Expire42Days.RadioButton=Passwords should expire after 42 days +PasswordsExpire.RadioButton=Passwords should expire after a certain amount of days (not recommended by NIST) +NeverExpire.RadioButton=Passwords should never expire +PasswordsExpire.Label=Should passwords expire? +AccountName.Label=Account name: +Account.Label=Account 1: +Account.Option2.CheckBox=Account 2: +Account.Option3.CheckBox=Account 3: +Account.Option4.CheckBox=Account 4: +Account.Option5.CheckBox=Account 5: +UserList.Label=User accounts: +AccountGroup.Label=Account group: +AccountPassword.Label=Account password: +Account.Display.Name.Label=Account display name: +FirstLog.Group=First log on +Log.Built.Admin.RadioButton=Log on to the built-in administrator account, with password: +Log.First.Admin.RadioButton=Log on to the first administrator account created +Auto.Login.Admin.CheckBox=Log on automatically to an Administrator account +ObscurePasswords.CheckBox=Obscure passwords with Base64 +Ask.Microsoft.CheckBox=Ask for a Microsoft account interactively +Target.Install.Label=Who will use the target installation? +FirmwareProductKey.CheckBox=Get product key from firmware (modern systems only) +Product.Label=Please make sure that the product key you enter is valid +DISM.Tools.Cannot.Label=DISMTools cannot verify whether product keys can be valid for activation +Type.Each.Character.Label=(Type each character of the product key, including the dashes) +ProductKey.Custom.Label=Product Key: +Detect.Image.Edition.Button=Detect from image edition +Copy.Button=Copy +Only.Generic.Key.Label=You should only use this generic key with the edition you want to deploy +ProductKey.Generic.Label=Product Key: +ProductKey.Edition.Label=Use the product key for this edition: +CustomProductKey.RadioButton=Use a custom product key +GenericKey.RadioButton=Use a generic product key (no activation capabilities) +ProductKey.Type.Label=Type your product key for operating system installation +RecoveryPartition.Label=Windows Recovery Environment partition size (in MB): +InstallRecoveryEnv.CheckBox=Install a Recovery Environment +EFI.System.Label=EFI System Partition (ESP) size (in MB): +MBR.RadioButton=MBR +GPT.RadioButton=GPT +PartitionTable.Label=Partition table: +Skip.Disk.Config.Label=Uncheck this only if you want to set up disk configuration now. +DiskLayout.Label=Configure the disk and partition layout of the target system +Time.Label=Time +CurrentTime.Label=Time +Time.Selected.Zone.Label=Current time (selected time zone): +Time.UTC.Label=Current time (UTC): +Set.Time.Zone.RadioButton=Set a time zone manually: +Windows.Decide.RadioButton=Let Windows decide my time zone based on the regional configurations I set earlier +Configure.Time.Zone.Label=Configure time zone settings +DesktopX86.Item=x86 (Desktop 32-Bit) +DesktopX64.Item=x64 (Desktop 64-Bit) +Armwindows.Item=ARM64 (Windows on ARM) +UseConfigSet.CheckBox=Use a configuration set or distribution share +Windows.Set.Random.CheckBox=Let Windows set a random computer name +Config.Set.Message=Make sure that the configuration set or distribution share has been created before copying the resulting unattended answer file to an ISO file and installing the operating system. You can create configuration sets or distribution shares with the Windows System Image Manager (SIM) +Script.Sets.Name.RadioButton=Have the following script configure the name (advanced): +Get.Computer.Name.Button=Get computer name +ComputerName.Label=Computer name: +Type.Computer.Name.Label=Please type a computer name +Check.Option.Only.Message=Check this option only if the target system does not have any network capabilities. You can configure local users in the User Accounts section +BypassNetwork.CheckBox=Bypass Mandatory Network Connection +BypassRequirements.CheckBox=Bypass System Requirements +Windows11.Label=Windows 11 settings: +System.Architec.Label=Please select the system architecture that is supported by the target Windows image to apply +Processor.Architecture.Label=Processor architecture: +BasicSettings.Label=Configure basic system settings +Configure.Settings.Label=You will need to configure these settings during the setup process +SystemLanguage.Label=System language: +SystemLocale.Label=System locale: +HomeLocation.Label=Home location: +Keyboard.Layout.IME.Label=Keyboard layout/IME: +Country.EEA.Choose.Button=Choose country from the EEA +Additional.Layouts.Button=Additional layouts +ConfigureLater.RadioButton=Configure these settings later +SettingsNow.RadioButton=Configure these settings now: +LanguageKeyboard.Label=Configure your language, keyboard layout, and other regional settings +Copy.Linux.Mac.Link=Copy Linux and macOS versions of the unattended answer file generator program... +OnlineGenerator.Link=Answer file generator (online version) +Welcome.Unattended.Label=Welcome to the unattended answer file creation wizard +CreationHelp.Message=The unattended answer file creation wizard lets you create unattended answer files using intuitive interfaces. This wizard is suitable for those people who have never created unattended answer files before or do not want to use a text editor.{crlf;}{crlf;}In this wizard, you will be able to configure regional settings, user accounts, wireless settings, virtual machine support, and more. If you need to add more functionality to your file after creating it, you can use the Editor mode, which you can access by clicking the button on the bottom left.{crlf;}{crlf;}Special thanks to Christoph Schneegans for making the library that makes this wizard possible. You can also use his generator website to configure more settings, like tweaks or Windows Defender Application Control rules.{crlf;}{crlf;}{crlf;}To begin creating your answer file, click Next. +AvailableNow.Label=Not available for now! +NewOverwrite.Label=New (overwrites existing content) +Open.Button=Open... +Save.Button=Save as... +WordWrap.Label=Word wrap +Help.Label=Aide +NormalizeSpacing.Label=Normalize spacing +NormalizeSpacing.Tooltip=Makes the spacing consistent by replacing tabs with spaces +WizardHelp.Label=If you haven't created unattended answer files before, use this wizard to create one. +Join.Target.Device.Button=Join target device to domain... +BackButton.Button=Retour +NextButton.Button=Next +Cancel.Button=Annuler +Help.Button=Aide +Answer.Files.XML.Filter=Answer files|*.xml +Gen.Download.Complete.Title=UnattendGen download complete +EditorMode.Filter=Answer files|*.xml +Power.Shell.Scripts.Filter=PowerShell scripts|*.ps1;*.psm1|Batch scripts|*.bat;*.cmd|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript files|*.js;*.jse +OpenScript.Title=Open script +Path.Description=Specify the path on which you want to store Linux and macOS versions of UnattendGen: +DISM.Tools.Starter.Filter=DISMTools Starter Scripts|*.dtss +Pick.StarterScript.Title=Pick a Starter Script +CreationHelp.Label=Unattended answer file creation wizard +TimeZone.Label=Time zone: +ScriptRun.Description=To configure a script to run at a specific stage, click the stage: +ComputerName.RadioButton=Choose a computer name yourself (recommended) +SelfContained.Message=The self-contained version of UnattendGen has been successfully downloaded. DISMTools will use this version from now on + +[Designer.NewUnattend.LocalAccounts] +OnlyNow.Label=Uncheck this only if you want to set up local accounts now + +[Designer.NewsFeedCard] +Item.Title=Titre de l’actualité +ItemDate.Label=Date de l’actualité + +[Designer.OfflineDriveList] +Ok.Button=OK +Cancel.Button=Annuler +Refresh.Button=Actualiser +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Disk.Choose.Label=Choose a disk +Begin.Install.Message=To begin performing offline installation management, please choose a disk shown in the list below. If additional disks that contain Windows installations have been added or removed, simply click the Refresh button. + +[Designer.OneDriveExclusion] +Exclude.Button=Exclude +CancelButton.Button=Annuler +Tool.Help.Exclude.Message=This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude.{crlf;}{crlf;}NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool. +Re.Ready.Label=When you're ready, click Exclude. +Path.Exclude.Label=Path to exclude OneDrive folders from: +Browse.Button=Parcourir... +UserFolderPath.Description=Choose a path that contains user folders: +Exclude.User.Label=Exclude user OneDrive folders + +[Designer.Options] +Ok.Button=OK +Cancel.Button=Annuler +DISM.Executable.Filter=DISM executable|dism.exe +Dismexecutable.Title=Spécifier l'exécutable DISM à utiliser +CheckUpdates.CheckBox=Mettre à jour les données +Remount.Mounted.CheckBox=Remonter les images montées nécessitant un rechargement de la session de maintenance +Behavior.OnStartup.Label=Définissez les options que vous souhaitez exécuter au démarrage du programme : +Settings.Aren.Label=Ces paramètres ne s'appliquent pas aux installations non portables. +FileIcons.Projects.CheckBox=Set custom file icons for DISMTools projects +Open.Starter.Scripts.Label=Ouvrir les scripts de démarrage avec l’éditeur de scripts de démarrage +Set.File.Assoc.Button=Établir des associations de fichiers +Open.My.Projects.Label=Open my projects with this copy of DISMTools +Manage.File.Assoc.Label=Gérer les associations de fichiers pour les composants DISMTools : +AdvancedSettings.Button=Paramètres avancés +Learn.Background.Link=Savoir plus sur les processus en arrière plan +Uses.Bg.Procs.Message=Le programme utilise des processus en arrière plan pour recueillir des informations complètes sur l'image, comme les dates de modification, les paquets installés, les caractéristiques présentes, etc. +Every.Time.Project.Item=Chaque fois qu'un projet a été chargé avec succès +Once.Item=Une fois +Notify.Label=Quand le programme doit-il vous avertir du démarrage de processus en arrière plan ? +Notify.Me.CheckBox=M'avertir lorsque des processus en arrière plan ont démarré +Reports.Allow.Shown.Label=Certains rapports ne permettent pas d'être présentés sous forme de tableau. +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +List.Item=liste +Table.Item=tableau +ExampleReport.Label=Exemple de rapport : +LogView.Label=Vue du journal : +Show.Command.Output.CheckBox=Afficher la sortie de la commande en anglais +Enough.Space.Selected.Label=Il se peut qu’il n’y ait pas assez d’espace dans le répertoire temporaire sélectionné pour certaines opérations. +ScdirSpace.Label= +Space.Left.Selected.Label=Espace restant sur le répertoire temporaire sélectionné : +Browse.Button=Parcourir... +ScratchDirectory.Label=Répertoire temporaire +Scratch.Dir.Message=Le programme utilisera le répertoire temporaire fourni par le projet s'il en existe un. Si vous êtes en les modes de gestion de l'installation en ligne ou hors ligne, le programme utilisera son répertoire temporaire. +Scratch.Dir.Required.Label=Veuillez indiquer le répertoire temporaire à utiliser pour les opérations DISM : +Scratch.Dir.CheckBox=Utiliser un répertoire temporaire +Always.Save.CheckBox=Sauvegardez toujours des informations complètes pour les éléments suivants : +SettingsConsider.Label=Choisissez les paramètres que le programme doit prendre en compte lors de la sauvegarde des informations de l'image : +Installed.Packages.CheckBox=Paquets installés +InstalledDrivers.CheckBox=Pilotes installés +Capabilities.CheckBox=Capacités +Features.CheckBox=Caractéristiques +Installed.AppX.CheckBox=Paquets AppX installés +Checked.Computer.Message=Lorsque cette option est cochée, l'ordinateur ne redémarre pas automatiquement, même lorsqu'il effectue des opérations en silence. +QuietOperations.Message=Lors de l'exécution silencieuse d'une opération, le programme masquera les informations et la progression de l'opération. Les messages d'erreur seront toujours affichés.{crlf;}Cette option ne sera pas utilisée pour obtenir des informations, par exemple, sur les paquets ou les caractéristiques.{crlf;}En outre, lors de la maintenance de l'image, votre ordinateur peut redémarrer automatiquement. +Skip.System.Restart.CheckBox=Sauter le redémarrage du système +Quietly.Image.Ops.CheckBox=Effectuer des opérations d'image en silence +Log.File.Display.Message=Le fichier journal doit afficher les erreurs, les avertissements et les messages d’information après l’exécution d’une opération d’image. +Errors.Warnings.Label=Erreurs, avertissements et messages d’information (niveau de journal 3) +Image.Ops.Message=Lorsque vous effectuez des opérations sur les images dans la ligne de commande, spécifiez l'argument {quot;}/LogPath{quot;} pour sauvegarder le journal des opérations sur les images dans le fichier journal cible. +Log.File.Level.Label=Niveau du fichier journal : +Operation.Log.File.Label=Fichier journal des opérations : +Classic.RadioButton=Classique +Modern.RadioButton=Moderne +Secondary.Progress.Label=Style du panneau de progression secondaire : +Font.Readable.Log.Message=Cette police peut ne pas être lisible sur les fenêtres logiques. Bien que vous puissiez encore l'utiliser, nous recommandons les polices monospaces pour une meilleure lisibilité. +Preview.Label=Aperçu: +Log.Window.Font.Label=Fonte de la fenêtre du journal : +Uppercase.Menus.CheckBox=Utiliser des menus en majuscules +System.Setting.Item=Utiliser les paramètres du système +LightMode.Item=Mode lumineux +DarkMode.Item=Mode sombre +Language.Label=Langue: +ColorMode.Label=Mode couleur : +SettingsFile.Item=Fichier des paramètres +Registry.Item=Registre +Enable.Disable.Message=Le programme activera ou désactivera certaines caractéristiques en fonction de ce que la version de DISM prend en charge. Comment cela va-t-il affecter mon utilisation de ce programme, et quelles caractéristiques seront désactivées en conséquence ? +View.DISM.Button=Voir les versions des composants DISM +Dismver.Label= +SaveSettings.Label=Sauvegarder les paramètres sur : +Version.Label=Version : +Dismexecutable.Path.Label=Chemin d'accès à l'exécutable DISM : +ResetPreferences.Label=Réinitialiser les préférences +LogSFD.Filter=All files|*.* +Location.Log.File.Title=Spécifier l'emplacement du fichier journal +Program.Label=Programme +Personalization.Label=Personnalisation +Logs.Label=Journaux +ImageOperations.Label=Opérations sur les images +Scratch.Dir.Label=Répertoire temporaire +ProgramOutput.Label=Sortie du programme +BgProcesses.Label=Processus en arrière plan +FileAssociations.Label=Associations de fichiers +StartupOptions.Label=Paramètres de démarrage +ShutdownOptions.Label=Paramètres de fermeture +Difference.Between.Link=Quelle est la différence entre les noms d’affichage et les noms d’affichage conviviaux ? +PackageName.Label=Nom du package : +RaymanJungle.Label=UbisoftEntertainment.RaymanJungleRun_1.2.0.88_x86__dbgk1hhpxymar +DisplayName.Label=Nom d’affichage : +Display.Name.Only.Item=Nom d’affichage uniquement +Display.Name.Friendly.Item=Nom d’affichage, puis nom convivial +Friendly.Display.Name.Item=Nom convivial uniquement +Example.Label=Exemple : +Remove.AppX.Label=When removing AppX packages, show display names using this format: +Only.Available.Message=This is only available when managing active installations.{crlf;}When getting information about AppX packages, DISMTools can map the IDs and names of the local accounts in this system to tell you which users an application is registered to more precisely. +Map.System.Accounts.CheckBox=Associer les comptes système aux informations d’enregistrement des applications +Show.Dates.Human.CheckBox=Afficher les dates dans un format lisible +PreventSleep.CheckBox=Empêcher l’ordinateur de se mettre en veille pendant les opérations d’image +Saving.Image.Label=Enregistrement des informations d’image +Help.Me.Understand.Link=M’aider à comprendre les niveaux de tolérance des fonctionnalités d’IA +Turn.Off.Many.Item=Désactiver autant de fonctionnalités d’IA que possible dans les moteurs de recherche. Je ne les supporte pas +Me.Control.AI.Item=Me laisser contrôler les fonctionnalités d’IA dans mon moteur de recherche +Turn.Many.Aifeatures.Item=Activer autant de fonctionnalités d’IA que possible dans les moteurs de recherche +AIFeature.Label=Tolérance des fonctionnalités d’intelligence artificielle (IA) : +Search.Engine.Web.Label=Moteur de recherche à utiliser pour les recherches web : +Searching.Image.Online.Label=Recherche d’informations d’image en ligne +Learn.Message=Si vous souhaitez en savoir plus sur un élément en ligne, vous pouvez utiliser la recherche web. Choisissez les paramètres que le programme doit prendre en compte pour les recherches web : +RunNow.Button=Exécuter maintenant +Behavior.OnClose.Label=Définissez les paramètres que vous souhaitez effectuer à la fermeture du programme : +Automatically.Clean.CheckBox=Nettoyer automatiquement les points de montage (lance un processus séparé) +InstallService.Button=Installer le service +EnableService.Button=Activer le service +DisableService.Button=Désactiver le service +DeleteService.Button=Supprimer le service +ServiceStatus.Group=État du service +Installed.Label=Installé ? +InstallationPath.Label=Chemin d’installation : +Automatic.Image.Reload.Label=Service de rechargement automatique des images +Still.See.Standard.Message=Vous pouvez toujours voir les procédures standard de rechargement des sessions de maintenance de DISMTools pour les images dont le service n’a pas pu recharger les sessions de maintenance. +Automatic.Image.Message=Le service de rechargement automatique des images peut vous aider à garder vos images Windows prêtes pour la maintenance en rechargeant leurs sessions de maintenance au démarrage du système. Vous pouvez contrôler le service ici : +ColorThemes.Group=Thèmes de couleur +DesignThemes.Button=Concevoir vos thèmes +LightMode.Label=Mode clair : +Own.Themes.Label=Vous pouvez également créer vos propres thèmes. +Change.Color.Theme.Label=Vous pouvez laisser le programme changer le thème de couleur selon votre mode de couleur préféré. +DarkMode.Label=Mode sombre : +Show.Date.Time.CheckBox=Afficher la date et l’heure dans la vue du projet +LogCustomization.Label=Personnalisation du journal +Show.Log.View.CheckBox=Afficher par défaut la vue du journal dans le panneau de progression +Show.Me.Logs.Link=Montrez-moi où ces journaux sont stockés +Disable.Dyna.Log.CheckBox=Désactiver la journalisation DynaLog +Dyna.Log.Logging.Label=Contrôle d'enregistrement DynaLog +Dyna.Log.Logging.Message=L'enregistrement DynaLog permet de sauvegarder des journaux de diagnostic qui peuvent être utilisés pour aider à résoudre des problèmes de programme, au cas où vous en rencontreriez. Vous pouvez désactiver l'enregistreur en utilisant la bascule ci-dessous, mais ce n'est pas recommandé.{crlf;}{crlf;} +SystemEditor.Label=Editeur système +Editor.Open.Log.Label=Editeur pour ouvrir les fichiers journaux avec : +Default.Op.Logs.Message=Par défaut, les journaux d'opération sont ouverts avec le Bloc-notes en cas d'erreur d'opération. Cependant, si vous souhaitez les ouvrir avec un autre programme, indiquez-le ci-dessous : +ProgramsEXE.Filter=Programs|*.exe +Editor.Title=Spécifier l'éditeur à utiliser +Options.Label=Options +Set.Custom.CheckBox=Définir des icônes de fichier personnalisées pour les scripts de démarrage +ScratchDir.Description=Indiquez le répertoire temporaire que le programme doit utiliser : +Custom.Scratch.RadioButton=Utiliser le répertoire temporaire spécifié +Project.Scratch.RadioButton=Utiliser le répertoire temporaire du projet ou du programme +Auto.Create.Logs.CheckBox=Créer automatiquement des journaux pour chaque opération effectuée + +[Designer.OrphanedMount] +Ok.Button=OK +Cancel.Button=Annuler +Project.Has.Orphans.Message=The project that has been loaded contains an orphaned image (an image which needs to be remounted){crlf;}The image will be remounted when you click {quot;}OK{quot;}. This should not affect your modifications to the image, and should also not take a long time.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +Servicing.Session.Label=This image needs a servicing session reload +DISMTools.Label=DISMTools + +[Designer.NoRollbackError] +Ok.Button=OK +Old.Versions.None.Message=No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything. +Troll.Back.Older.Label=You can't roll back to an older version +DISMTools.Label=DISMTools + +[Designer.PXEServerPort] +Ok.Button=OK +Cancel.Button=Annuler +Other.Message=Use this dialog to specify a different port for server components during this session if the default port is in use by a program or a service and the server components don't work correctly as a result.{crlf;}{crlf;}If you click Cancel, the selected server component will be launched using the default port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[Designer.PECustomizer] +Ok.Button=OK +Cancel.Button=Annuler +Customize.Session.Label=Customize the Preinstallation Environment for this session: +Wallpaper.Group=Wallpaper +Browse.Button=Parcourir... +My.Desktop.CheckBox=Use my current desktop background +Path.Custom.Wallpaper.Label=Path to custom wallpaper (JPG files only): +Show.Version.Top.CheckBox=Show version information on the top-left corner of the primary screen +Display.Images.CheckBox=Display images and groups in a WDS server in a graphical view +Show.Report.Hardware.Message=Show a report with hardware IDs of unknown devices when launching the Driver Installation Module +Default.Partitio.Table.Label=Default partition table override: +Partition.Table.Item=Do not use a partition table override +Default.Mbrpartition.Item=Default to using a MBR partition table regardless of the firmware type +Default.Gptpartition.Item=Default to using a GPT partition table regardless of the firmware type +Partition.Table.Message=Partition table overrides affect both disk configuration and boot file creation procedures taken. +SecureBoot.Label=On supported UEFI systems with Secure Boot and Windows UEFI CA 2023 certificates: +Ask.Me.Version.Item=Ask me which version of the boot binary to use +Connection.Attempts.Label=Amount of connection attempts that should be considered when connecting to a WDS server: +ConnectionAttempts.Label=connection attempt(s) +JpgfilesJpg.Filter=JPG files|*.jpg +CopyAnswerFiles.Message=Copy unattended answer files specified in the ISO creator to the Sysprep directory of the target system +Port.Used.PXE.Label=Port to be used by PXE Helper clients to send requests by default: +Pick.Default.Keyboard.Label=Pick the default keyboard layout to use in the Preinstallation Environment from the list below: +LayoutCode.Column=Layout Code +LayoutName.Column=Layout Name +Layout.Code.Selected.Label=Layout code of selected keyboard layout: +Save.Default.Policies.Label=Save to default policies +General.Tab=General +PXEs.Tab=PXE Helpers +KeyboardLayouts.Tab=Keyboard Layouts +Option.Only.Take.Label=This option will only take effect on images that don't have any answer files applied. +Unattended.Deployments.Tab=Unattended Deployments +Unattended.AnswerFile.Label=If an unattended answer file exists in both the ISO file and the Windows image file: +Ask.Me.Resolve.Item=Ask me how to resolve the conflict +Assuming.Each.Answer.Message=Assuming what each of the answer files will do is not a good idea because you don't expect what each file will have in different operating system deployment runs.{crlf;}{crlf;}Therefore, you should manually review each of the answer files when you encounter conflicts. Or, if your Windows image contains an answer file, don't include one with your ISO file, as the one from the Windows image will automatically be applied during setup.{crlf;}{crlf;}If you use bootable media creation solutions, such as Rufus, configure them so they don't override your answer file. +CustomizePE.Label=Customize Preinstallation Environment +KeyboardOverride.CheckBox=Override keyboard layouts used by target images with the one I select here + +[Designer.PECustomizer.Conflict] +ISO.Item=Handle the conflict by using the answer file of the ISO file +WindowsImage.Item=Handle the conflict by using the answer file of the Windows image file + +[Designer.PECustomizer.BootSign] +Windows.UEFI.CA.Item=Default to boot binaries signed with Windows UEFI CA 2023, if available on my target image +Windows.Production.PCA.Item=Default to boot binaries signed with Microsoft Windows Production PCA 2011 + +[Designer.PkgNameLookup] +Ok.Button=OK +Cancel.Button=Annuler +ParentPackage.Label=Name of parent package: +Get.Package.Names.Label=Getting package names. Please wait... +Installed.Package.Label=Installed package names + +[Designer.PkgParentLookup] +Names.Installed.Label=Names of installed packages in the mounted image: + +[Designer.Wait] +Wait.Label=Veuillez patienter... +Action.Label=Action + +[Designer.PrgAbout] +Ok.Button=OK +DISM.Tools.Version.Label=DISMTools - version {0} +DISM.Tools.Lets.Label=DISMTools lets you deploy, manage, and service Windows images with ease, thanks to a GUI. +Build.Date.Goes.Label=Build date goes here +ResourcesUsed.Label=These resources and components were used in the creation of this program: +Resources.Label=Resources +Fluency.Label=Fluency +Icons.Link=Icons8 +Sqlserver.Icon.Color.Label=SQL Server icon (Color) +Utilities.Label=Utilities +Zip.Label=7-Zip +VisitWebsite.Link=Visiter le site web +Help.Documentation.Label=Help documentation +Scintila.Netnu.Get.Label=Scintila.NET (NuGet package) +Managed.Dismnu.Get.Label=ManagedDism (NuGet package) +Command.Help.Source.Label=Command Help source +Microsoft.Link=Microsoft +BrandingAssets.Label=Branding assets +DarkUI.Label=DarkUI +Windows.Label=Windows Home Server 2011 +Whatsnew.Link=WHAT'S NEW +Licenses.Link=LICENSES +Credits.Link=CREDITS +CheckUpdates.Label=Check for updates +AboutProgram.Label=About this program + +[Designer.PrgSetup] +Set.Up.DISM.Label=Configurer DISMTools +Back.Button=Retour +Next.Button=Suivant +Cancel.Button=Annuler +DISM.Tools.Free.Message=DISMTools est une interface graphique libre et gratuite pour les opérations DISM. Pour commencer à configurer les choses, cliquez sur Suivant. +Welcome.DISM.Tools.Label=Bienvenue à DISMTools +Secondary.Progress.Label=Style du panneau de progression secondaire : +Log.Window.Font.Label=Fonte de la fenêtre du journal : +Language.Label=Langue : +ColorMode.Label=Mode couleur : +System.Setting.ThemeItem=Utiliser les paramètres du système +LightMode.Item=Mode lumineux +DarkMode.Item=Mode sombre +Font.Readable.Log.Message=Cette police peut ne pas être lisible sur les fenêtres logiques. Bien que vous puissiez encore l'utiliser, nous recommandons les polices monospaces pour une meilleure lisibilité. +Classic.RadioButton=Classique +Modern.RadioButton=Moderne +Yours.Customize.Message=Faites-le vôtre. Personnalisez ce programme à votre guise et cliquez sur Suivant. Ces paramètres peuvent être configurés à tout moment dans la section {quot;}Personnalisation{quot;} de la fenêtre des paramètres. +CustomizeProgram.Label=Personnaliser ce programme +Default.Log.File.Button=Utiliser le fichier journal par défaut +Browse.Button=Parcourir... +LogFile.Label=Fichier journal : +Log.File.Display.Message=Le fichier journal doit afficher les erreurs, les avertissements et les messages d'information après l'exécution d'une opération d'image. +Errors.Warnings.Label=Erreurs, avertissements et messages d'information (niveau du journal 3) +Auto.Create.Logs.CheckBox=Créer automatiquement des journaux dans le répertoire des journaux du programme +Log.Settings.Message=Spécifiez les paramètres du journal et cliquez sur Suivant. En fonction du niveau de contenu spécifié, nous enregistrerons plus ou moins d'informations. Ce paramètre peut être configuré à tout moment dans la section {quot;}Journaux{quot;} de la fenêtre des paramètres. +Log.Label=Que devons-nous enregistrer lorsque vous effectuez une opération ? +Windows.ADK.Module.Label=Module de compatibilité avec Windows Assessment and Deployment Kit (ADK) +WimlibModule.Label=Module de compatibilité avec wimlib-imagex +Install.Button=Installer +Module.Install.Isn.Message=Si un module que vous souhaitez installer n'est pas listé ici, il n'est peut-être pas compatible avec cette version du programme. La mise à jour de DISMTools peut ajouter d'autres modules compatibles. +DISM.Tools.Supports.Message=DISMTools prend en charge des modules qui étendent le programme et améliorent ses capacités. Les modules suivants sont compatibles avec cette version du programme. +ExtendProgram.Label=Étendre ce programme +Configure.Settings.Button=Configurer d'autres paramètres +Anything.Like.Label=Souhaitez-vous configurer autre chose ? +Settings.Available.Message=Les paramètres disponibles sont plus nombreux que ceux que vous venez de configurer. Si vous souhaitez en modifier d'autres, cliquez sur le bouton ci-dessous. Nous rendrons également ces paramètres persistants. +Done.Setting.Up.Message=Vous avez fini de configurer les bases pour utiliser DISMTools comme vous le souhaitiez. Cliquez sur {quot;}Finir{quot;}, et nous rendrons vos paramètres persistants. +SetupComplete.Label=La configuration est terminée +Stay.Up.Date.Label=Restez à jour pour recevoir de nouvelles caractéristiques et une expérience améliorée. +Get.Started.DISM.Label=Commencez à utiliser DISMTools et le service d'images, afin de vous déplacer plus rapidement. +GetStarted.Button=Commencer +CheckUpdates.Button=Mettre à jour les données +Ve.Set.Things.Label=Maintenant que vous avez tout configuré, nous vous recommandons de procéder aux opérations suivantes : +Perform.Steps.Time.Label=Vous pouvez effectuer ces démarches à tout moment. +SaveFile.Filter=Tous les fichiers|*.* +Log.File.Title=Spécifier le fichier journal + +[Designer.Progress] +Image.Operations.Label=Image operations in progress... +Wait.Tasks.Label=Please wait while the following tasks are done. This may take some time. +Cancel.Button=Annuler +CurrentTask.Label=currentTask +AllTasks.Label=allTasks +Tasks.Tcont.Label=Tasks: {currentTCont} of {taskCount} +ShowLog.Label=Show log +Show.Dismlog.File.Link=Show DISM log file (advanced) +Progress.Label=Progression + +[Designer.ProjProps] +Ok.Button=OK +Cancel.Button=Annuler +ProjectGUID.Label=Project GUID: +CreationDate.Label=Creation date: +Location.Label=Location: +ProjGuid.Label=projGuid +ProjTzdata.Label=projTZData +ProjPath.Label=projPath +ProjName.Label=projName +Name.Label=Nom : +RemountImg.Label=Reload +Recover.Label=Recover +MountDirectory.Label=Mount directory: +Installed.Languages.Label=Installed languages: +FileFormat.Label=File format: +ModificationDate.Label=Modification date: +FileCount.Label=File count: +DirectoryCount.Label=Directory count: +System.Root.Dir.Label=System root directory: +ProductSuite.Label=Product suite: +ProductType.Label=Product type: +Edition.Label=Edition: +ServicePackLevel.Label=Service Pack level: +ServicePackBuild.Label=Service Pack build: +HAL.Label=HAL: +Architecture.Label=Architecture : +Supports.WIM.Boot.Label=Supports WIMBoot? +ImageStatus.Label=Image status: +ImageIndex.Label=Image index: +Size.Label=Size: +Description.Label=Description : +Version.Label=Version : +ImageFile.Label=Image file: +ImgFormat.Label=imgFormat +ImgModification.Label=imgModification +ImgCreation.Label=imgCreation +ImgFiles.Label=imgFiles +ImgDirs.Label=imgDirs +Img.Sys.Root.Label=imgSysRoot +ImgPsuite.Label=imgPSuite +ImgPtype.Label=imgPType +ImgEdition.Label=imgEdition +ImgSplvl.Label=imgSPLvl +ImgSpbuild.Label=imgSPBuild +ImgHal.Label=imgHal +Img.Mount.Dir.Label=imgMountDir +ImgArch.Label=imgArch +Img.WIM.Boot.Label=imgWimBootStatus +Img.Mounted.Status.Label=imgMountedStatus +ImgSize.Label=imgSize +Img.Mounted.Desc.Label=imgMountedDesc +Img.Mounted.Name.Label=imgMountedName +ImgVersion.Label=imgVersion +ImgIndex.Label=imgIndex +ImgName.Label=imgName +Getting.Project.Image.Label=Getting project and image information. Please wait... +View.Ffuinformation.Label=View FFU information +Remount.Write.Label=Remount with write permissions +ImgRW.Label=imgRW +Image.Rwpermissions.Label=Image R/W permissions: +InstallationType.Label=Installation type: +Img.Inst.Type.Label=imgInstType +Image.Present.Project.Label=Image present on project? +ImgStatus.Label=imgStatus +Many.Cannot.Seen.Message=Many properties cannot be seen because an image has not yet been mounted. Once you mount it, detailed information will be shown here. Click here to mount an image +Props.Label=Properties + +[Designer.ProjectValues] +Old.File.Label=Old project file: +ExitButton.Button=Quitter +Independent.Values.Group=Independent values +ImageLang.Label=ImageLang: +Image.Read.Write.Label=ImageReadWrite: +Image.Epoch.Modify.Label=ImageEpochModify: +Image.Epoch.Create.Label=ImageEpochCreate: +ImageFileCount.Value=ImageFileCount: +Image.Dir.Count.Label=ImageDirCount: +Image.Sys.Root.Label=ImageSysRoot: +ImagePsuite.Label=ImagePSuite: +ImagePtype.Label=ImagePType: +ImageEdition.Value=ImageEdition: +ImageSplevel.Label=ImageSPLevel: +ImageSpbuild.Label=ImageSPBuild: +ImageHal.Label=ImageHal: +ImageArch.Label=ImageArch: +Image.WIM.Boot.Label=ImageWIMBoot: +ImageDescription.Label=ImageDescription: +ImageName.Label=ImageName: +ImageVersion.Label=ImageVersion: +Image.Mount.Point.Label=ImageMountPoint: +ImageIndex.Label=ImageIndex: +ImageFile.Label=ImageFile: +Epoch.Creation.Time.Label=EpochCreationTime: +Location.Label=Location: +Name.Label=Nom : +ImageFile.Languages.Label=Image file languages +ImageFileDates.Label=Image file creation and modification dates stored in Unix time (GMT+0) +Verify.Image.Read.Label=Verify if image has read-write permissions +ImageFileCount.Label=Image file count +Image.Dir.Label.Label=Image directory count +Image.System.Root.Label=Image system root directory (\WINDOWS) +Image.Product.Suite.Label=Image product suite +Image.Product.Type.Label=Image product type +ImageEdition.Label=Image edition +ServicePackLevel.Label=Image Service Pack level (SP1, SP2, SP3...) +ServicePackBuild.Label=Image Service Pack build +HAL.Label=Image HAL (Hardware Abstraction Layer, hal.dll) +Mounted.Image.Arch.Label=Mounted image architecture (x86, amd64...) +Verify.Image.Supports.Label=Verify if image supports WIMBoot (Win8.1 only) +MountedDescription.Label=Mounted image friendly description +Mounted.Image.Friendly.Label=Mounted image friendly name +Image.Version.Grab.Label=Image version (grab version from ntoskrnl.exe) +ImageFile.Mount.Point.Label=Image file mount point +ImageFileIndex.Label=Mounted image file index +Mounted.ImageFile.Name.Label=Mounted image file name +Creation.Time.Unix.Label=Project creation time in Unix time (GMT+0) +ProjectLocation.Label=Project location +ProjectName.Label=Project name +Independent.Values.Message=Get independent values by piping {quot;}findstr{quot;} to the {quot;}type{quot;} command. Also pass the {quot;}/b{quot;} switch only to show matches on the beginning. +New.File.Label=New project file: +ContinueButton.Button=Continue +ProjectValues.Label=Project values + +[Designer.ServiceGroups] +Ok.Button=OK +Windows.Message=This Windows image contains the following registered groups for the system's service host. Note that the groups displayed here may not be the same as the groups defined by the services in the Service Control Manager (SCM). +GroupName.Column=Group Name +ServicesGroup.Column=Services in group +ServiceName.Column=Nom du service +DisplayName.Column=Nom d’affichage +Type.Column=Type +Total.Label=Total +Registered.Svc.Host.Label=Registered Service Host groups in image + +[Designer.RegistryPanel] +Tool.Lets.Load.Message=This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here: +Load.Button=Charger +Ntuserdatdefault.User.Label=NTUSER.DAT (Default User) +Open.Button=Ouvrir +Default.Label=DEFAULT +System.Label=SYSTEM +Software.Label=SOFTWARE +Load.Custom.Hive=Load Custom Hive +Unload.Button=Unload +Browse.Button=Parcourir... +PathRegistry.Label=Path in the registry: +HiveLocation.Label=Hive location: +Load.Different.Label=If you want to load a different registry hive, specify its path and click Load: +Image.Hives.Label=Image registry hives + +[Designer.ReloadProject] +Ok.Button=OK +Cancel.Button=Annuler +ImageUnavailable.Message=The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click {quot;}OK{quot;} to reload this project.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +ImageMissing.Label=This image is no longer available +DISMTools.Label=DISMTools + +[Designer.RemCapabilities] +Ok.Button=OK +Cancel.Button=Annuler +Capability.Column=Capability +State.Column=État +Remove.Label=Remove capabilities + +[Designer.RemDrivers] +Ok.Button=OK +Cancel.Button=Annuler +PublishedName.Column=Published name +Original.File.Name.Column=Nom du fichier d’origine +ProviderName.Column=Provider name +ClassName.Column=Class name +Part.Windows.Column=Part of the Windows distribution? +BootCritical.Column=Is boot-critical? +Version.Column=Version +Date.Column=Date +DriverPackages.Wish.Label=Specify the driver packages you wish to remove and click OK: +Hide.Boot.Critical.CheckBox=Hide boot-critical drivers +Hide.Drivers.Part.CheckBox=Hide drivers part of the Windows distribution +RemoveDrivers.Label=Remove drivers + +[Designer.RemPackage] +Ok.Button=OK +Cancel.Button=Annuler +PackageRemoval.Group=Package removal +Browse.Button=Parcourir... +Note.May.Message=NOTE: the program may show packages that weren't added in the first place. However, if a package is not added, the program will skip it. +PackageSource.Label=Package source: +Package.Files.RadioButton=Specify package files: +Package.Names.RadioButton=Specify package names: +PackageSource.Description=Please specify a package source: +RemovePackages.Label=Remove packages + +[Designer.RemoveAppx] +Ok.Button=OK +Cancel.Button=Annuler +PackageName.Column=Package name +App.Display.Name.Column=Application display name +Architecture.Column=Architecture +ResourceID.Column=Resource ID +Version.Column=Version +Registered.User.Column=Registered to any user? +Prov.Label=Remove provisioned AppX packages + +[Designer.ScriptBrowser] +Ok.Button=OK +Cancel.Button=Annuler +Create.Starter.Button=Create your own starter scripts... +Name.Column=Nom +System.Config.Item=During System Configuration +First.User.Logs.Item=When the first user logs on +Whenever.User.Logs.Item=Whenever a user logs on for the first time +Scripts.Defined.User.Item=Scripts defined by the user +Stage.Type.Choose.Label=Choose a stage or script type: +EnlargePreview.Label=Enlarge preview +Export.Code.File.Button=Export script code to a file... +Okinsert.Label=Click OK to insert this script. Existing script contents will be replaced by this script. +ScriptCode.Label=Script Code: +Language.Label=Language: +Language.Value.Label=Language: {0} +Description.Label=Script Description +ScriptName.Label=Script Name +View.Label=Select a script to view its information. +StarterScripts.Help.Message=These predefined starter scripts can help you get the most out of your Windows image when using this unattended answer file. These scripts have been curated and tested by the developers.{crlf;}{crlf;}To get started, select a starter script from the list on the left.{crlf;}{crlf;}If you have a starter script that isn't included in this set of scripts, you can load it from the file system instead. +Export.Code.Title=Export Script Code +Leave.Full.Screen.Label=To leave full screen mode, click the button on the right or press ESC. +GoBack.Label=Go back +LoadStarterScript.Label=Load a predefined Starter Script + +[Designer.SaveProject] +Yes.Button=Yes +No.Button=No +Cancel.Button=Annuler +SaveChanges.Label=Do you want to save the changes of this project? +Shutdown.Message=If you shut down or restart your system without unmounting the images, you will need to reload the servicing session. +AppName.Label=DISMTools + +[Designer.ScriptReorder] +Ok.Button=OK +Cancel.Button=Annuler +Dialog.Alter.Order.Message=Use this dialog to alter the order with which the scripts will be run. Click OK to save the changes. Items at the top of the list are the first scripts that will run, whilst those at the bottom of the list are the last that will run. +ScriptCode.Label=Script Code: +Script.Column=Script # +ScriptOrder.Label=Script Order: +WordWrap.CheckBox=Word Wrap +Scripts.Stage.Label=Reorder scripts for this stage + +[Designer.Services] +Intro.Message=This tool lets you view and manage the services of this target image. Click Save service changes to save any changes made to the Windows services. +ServiceName.Column=Nom du service +DisplayName.Column=Nom d’affichage +Description.Column=Description +StartType.Column=Start Type +Type.Column=Type +ServiceInfo.Tab=Service Information +DelayedStart.CheckBox=Delayed Start +Description.Label=Service Description: +User.Flags.Label=User Service Flags: +ServiceType.Label=Service Type: +Start.Type.Label=Service Start Type: +Object.Name.Label=Service Object Name: +Image.Path.Label=Service Image Path: +Display.Name.Label=Service Display Name: +ServiceName.Label=Service Name: +Required.Privileges.Tab=Required Privileges +PrivilegeName.Column=Privilege Name +PrivilegeName.Display.Column=Privilege Display Name +Privilege.Description.Column=Privilege Description +ErrorControl.Tab=Error Control +FailureActions.Group=Failure Actions +FutureErrors.Label=On Future Errors: +NdError.Label=On 2nd Error: +ResetErrorCount.Label=Reset Error Count after the following minutes: +StError.Label=On 1st Error: +Error.Windows.Label=On service error, what should Windows do? +Dependencies.Tab=Service Dependencies +ServiceGroups.Tab=Service Groups +RegisteredHosts.Label=Get registered service host groups +Services.Belong.Group=Services that belong to this group +Part.Group.Label=This service is part of group: +Save.Changes.Label=Save service changes +ProgressLabel.Label=Veuillez patienter... +Reload.Label=Reload +SelectService.Label=No service has been selected. Select a service above to view details. +Save.Button=Save service information... +MarkdownFiles.Filter=Markdown files|*.md +RestoreService.Label=Restore service +DeleteService.Label=Delete service +System.Label=System Service Management + +[Designer.ServiceMgmt] +Restart.Minutes.Label=Restart Service after the following minutes: +Dependent.Services.Label=The following services depend on this service: +Dependencies.Label=This service depends on the following services: + +[Designer.ImageEdition] +Ok.Button=OK +Cancel.Button=Annuler +Target.Upgrade.Label=Target edition to upgrade to: +ServerOptions.Group=Active server installation options +Browse.Button=Parcourir... +AcceptEULA.RadioButton=Accept the End-User License Agreement (EULA) and use the following product key: +Copy.EndUser.RadioButton=Copy the End-User License Agreement (EULA) to the following location: +Set.Image.Label=Set image edition + +[Designer.SetLayeredDriver] +Ok.Button=OK +Cancel.Button=Annuler +Intro.Message=This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK +CurrentDriver.Label=Current keyboard layered driver: +NewDriver.Label=New keyboard layered driver: +Driver.Already.Label=This driver has already been set +Title=Set keyboard layered driver + +[Designer.OSRollback] +Ok.Button=OK +Cancel.Button=Annuler +Default.OS.Message=By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date.{crlf;}{crlf;}Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60. +Amount.Days.Revert.Label=Amount of days you have to revert to the old Windows version: +OSUninstall.Label=Set operating system uninstall window + +[Designer.SetProductKey] +Ok.Button=OK +Cancel.Button=Annuler +Type.ProductKey.Label=Type the product key that you want to set to your Windows image, including the dashes: +ValidateKey.Button=Validate key +Check.ProductKey.Message=If you want to check if your product key is valid for the Windows image, click Validate key. This will also check the syntax of your key. +SetProductKey.Label=Set product key + +[Designer.Scratch] +Ok.Button=OK +Cancel.Button=Annuler +ScratchSpace.Label=Scratch space: +AmountWritable.Message=The scratch space is the amount of writable space available on the Windows PE system volume when its contents are copied to memory. Please specify a scratch space amount and click OK. +MB.Label=MB +ScratchSpace.Amount.Label=An invalid scratch space amount has been detected +Set.Windows.Pescratch.Label=Set Windows PE scratch space + +[Designer.SetTargetPath] +Ok.Button=OK +Cancel.Button=Annuler +Target.Dir.Message=The target path is a directory where the Windows PE files will be copied to in order to boot to the environment. Please specify a target path and click OK. +TargetPath.Label=Target path: +Windows.Petarget.Label=Set Windows PE target path + +[Designer.SettingsResetDlg] +Yes.Button=Yes +No.Button=No +ProceedReset.Message=If you proceed, the settings will be reset to their default values. Once this process is complete, you'll return to the main program window.Do you want to proceed? +Form.Label=Reset preferences + +[Designer.SingleImageIndex] +Know.Indexes.Message=To know more about the indexes of an image, or some of its specific properties, go to {quot;}Commands > Image management > Get image information{quot;}, or click here +Ok.Button=OK +Cannot.Switch.Message=You cannot switch to other indexes. If you want to save the image changes, you can do so using a new, separate index. +Image.Seems.Only.Label=This image seems to have only one index +DISMTools.Label=DISMTools + +[Designer.SplashScreen] +VersionLabel.Label=Version +DISM.Tools.Starting.Button=DISMTools - Starting up... + +[Designer.UnattendMgr] +ProjectPath.Label=Project path: +Browse.Button=Parcourir... +FileName.Column=Nom du fichier +Created.Column=Created +LastModified.Column=Last modified +LastAccessed.Column=Last accessed +ApplyImage.Button=Apply to image... +Open.File.Location.Button=Open file location +OpenFile.Button=Open file +Unattended.AnswerFile.Label=Unattended answer file manager + +[Designer.WimScriptEditor] +Config.List.Allows.Message=The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon. +Compression.Exclusion.List=Compression exclusion list +Edit.Button=Edit... +Add.Button=Add... +Remove.Button=Supprimer +Exclusion.Exception.List=Exclusion exception list +ExclusionList.Group=Exclusion list +New.Label=New +Open.Button=Open... +Save.Button=Save as... +Toggle.Word.Wrap.Label=Toggle word wrap +Help.Label=Aide +Tools.Label=Outils +Exclude.User.One.Button=Exclude user OneDrive folders... +Inifiles.Filter=INI files|*.ini +Config.List.Load.Title=Specify the configuration list to load +Wimscript.Filter=INI files|*.ini +Location.Save.Config.Title=Specify the location to save the configuration list to +ConfigList.Label=DISM Configuration List Editor + +[Designer.WDSImageGroup] +Ok.Button=OK +Cancel.Button=Annuler +Action.Choose.Label=Choose an action: +Refresh.Button=Actualiser +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[Designer.WDSImageCopy] +Ok.Button=OK +Cancel.Button=Annuler +Pick.Button=Choisir... +Browse.Button=Parcourir... +ImageFile.Server.Label=Image file to copy to server: +Mounted.Image.Button=Utiliser une image montée +Images.Added.Group.Label=The images will be added to the following group: +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Pick.Server.Groups.Button=Pick from server groups... +SelectAll.Button=Select all +ClearSelection.Button=Clear selection +Progress.Group=Progression +Re.Ready.OK.Label=Once you're ready, click OK. +Status.Label=État +WIM.Files.Filter=WIM files|*.wim +Image.Win.Deploy.Label=Copy an image to Windows Deployment Services + +[Designer.WimFileSource] +ImageFile.Label=Image file +ImageIndex.Label=Image index + +[DisableFeat] +DisableFeatures.Label=Désactiver des caractéristiques +Image.Task.Header.Label={0} +PackageName.Label=Nom du paquet : +Features.Group=Caractéristiques +Options.Group=Paramètres +Lookup.Button=Rechercher... +Ok.Button=OK +Cancel.Button=Annuler +FeatureName.Column=Nom de la caractéristique +State.Column=État +ParentPackage.CheckBox=Spécifier le nom du paquet parent pour les caractéristiques +Remove.Feature.CheckBox=Supprimer une caractéristique sans supprimer le manifeste + +[DisableFeat.Validation] +Features.Message=Veuillez sélectionner les caractéristiques à désactiver et réessayer. +FeaturesSelected.Title=Aucune caractéristique sélectionée + +[DismComponents] +Title.Label=Composants du DISM +Component.Column=Composant +Version.Column=Version +Ok.Button=OK + +[DriverFileInfo] +Driver.File.Label=Informations sur le fichier du pilote +Driver.File.Label.Label=Informations sur le fichier du pilote : {0} +Property.Column=Propriété +Value.Column=Valeur +Ok.Button=OK +Copy.Button=Copier +PublishedName.Label=Nom publiè +Original.File.Name.Label=Nom du fichier original +Critical.Boot.Process.Label=Est-il essentiel au processus de démarrage ? +Yes.Button=Oui +No.Button=Non +Part.Windows.Label=Est-il partie de la distribution Windows ? +ListItem.Button=Oui +Version.Label=Version +ClassName.Label=Nom de classe +ClassDescription.Label=Description de classe +ClassGUID.Label=GUID de classe +ProviderName.Label=Nom du prestataire +Date.Label=Date +SignatureStatus.Label=État de la signature du pilote +CatalogFile.Label=Chemin d'accès au fichier de catalogue + +[DriverFileInfo.Messages] +Hresult.Label=(HRESULT: {lbrace;}0{rbrace;}) + +[DriverFilter.Classes] +AudioProcessing.Message=Includes Audio processing objects (APOs). For more info, see Windows Audio Processing Objects. +Battery.Devices.UPS.Label=Includes battery devices and UPS devices. +Windows.Message=(Windows Server 2003 and later versions) Includes all biometric-based personal identification devices. +Windows.Label=(Windows XP SP1 and later versions) Includes all Bluetooth devices. +Camera.Message=(Windows 10 version 1709 and later versions) Includes universal camera drivers. +Cd.Rom.Drives.Message=Includes CD-ROM drives, including SCSI CD-ROM drives. By default, the system's CD-ROM class installer also installs a system-supplied CD audio driver and CD-ROM changer driver as Plug and Play filters. +Hard.Disk.Drives.Label=Includes hard disk drives. See also the HDC and SCSIAdapter classes. +VideoAdapters.Message=Includes video adapters. Drivers for this class include display drivers and video miniport drivers. +Extension.Message=(Windows 10 and later versions) Includes all devices requiring customizations. For more information, see Using an Extension INF File. +Floppy.Disk.Drive.Label=Includes floppy disk drive controllers. +Floppy.Disk.Drives.Label=Includes floppy disk drives. +Includes.Hard.Message=Includes hard disk controllers, including ATA/ATAPI controllers but not SCSI and RAID disk controllers. +InputDevices.Message=Includes interactive input devices that are operated by the system-supplied HID class driver. Includes USB devices that comply with the USB HID Standard and non-USB devices that use a HID minidriver. For more information, see HIDClass Device Setup Class. See also the Keyboard or Mouse classes. +ControlDevices.Message=Includes devices that control the operation of multifunction IEEE 1284.4 peripheral devices. +Dot.Print.Functions.Message=Includes Dot4 print functions. A Dot4 print function is a function on a Dot4 device and has a single child device, which is a member of the Printer device setup class. +Ieeedevices.Support.Message=Includes IEEE 1394 devices that support the IEC-61883 protocol device class. The 61883 component includes the 61883.sys protocol driver that transmits various audio and video data streams over the 1394 bus. These currently include standard/high/low quality DV, MPEG2, DSS, and Audio. The IEC-61883 specifications define these data streams. +Ieeedevices.Support.Label=Includes IEEE 1394 devices that support the AVC protocol device class. +SBP2.Message=Includes IEEE 1394 devices that support the SBP2 protocol device class. +HostControllers.Message=Includes 1394 host controllers connected on a PCI bus, but not 1394 peripherals. Drivers for this class are system-supplied. +Still.Image.Capture.Label=Includes still-image capture devices, digital cameras, and scanners. +InfraredDevices.Message=Includes infrared devices. Drivers for this class include Serial-IR and Fast-IR NDIS miniports, but see also the Network Adapter class for other NDIS network adapter miniports. +Keyboards.Message=Includes all keyboards. That is, it must also be specified in the (secondary) INF for an enumerated child HID keyboard device. +ScsimediaChanger.Label=Includes SCSI media changer devices. +Memory.Devices.Such.Label=Includes memory devices, such as flash memory cards. +Modem.Devices.INF.Message=Includes modem devices. An INF file for a device of this class specifies the features and configuration of the device and stores this information in the registry. An INF file for a device of this class can also be used to install device drivers for a controllerless modem or a software modem. These devices split the functionality between the modem device and the device driver. For more information about modem INF files and Microsoft Windows Driver Model (WDM) modem devices, see Overview of Modem INF Files and Adding WDM Modem Support. +Display.Monitors.INF.Message=Includes display monitors. An INF for a device of this class installs no device drivers, but instead specifies the features of a particular monitor to be stored in the registry for use by drivers of video adapters. (Monitors are enumerated as the child devices of display adapters.) +Mouse.Devices.Message=Includes all mouse devices and other kinds of pointing devices, such as trackballs. That is, this class must also be specified in the (secondary) INF for an enumerated child HID mouse device. +Combo.Cards.Such.Message=Includes combo cards, such as a PCMCIA modem and network card adapter. The driver for such a Plug and Play multifunction device is installed under this class and enumerates the modem and network card separately as its child devices. +Audio.Dvdmultimedia.Message=Includes Audio and DVD multimedia devices, joystick ports, and full-motion video capture devices. +MultiportSerial.Message=Includes intelligent multiport serial cards, but not peripheral devices that connect to its ports. It doesn't include unintelligent (16550-type) multiport serial controllers or single-port serial controllers (see the Ports class). +NetworkAdapter.Message=Consists of network adapter drivers. These drivers must either call NdisMRegisterMiniportDriver or NetAdapterCreate. Drivers that don't use NDIS or NetAdapter should use a different setup class. +Includes.Network.Message=Includes network and/or print providers. NetClient components are deprecated in Windows 8.1, Windows Server 2012 R2, and later. +Network.Services.Such.Label=Includes network services, such as redirectors and servers. +NdisprotocolsCo.Message=Includes NDIS protocols CoNDIS stand-alone call managers, and CoNDIS clients, in addition to higher level drivers in transport stacks. +SecureDevices.Message=Includes devices that accelerate secure socket layer (SSL) cryptographic processing. +PcmciacardBus.Message=Includes PCMCIA and CardBus host controllers, but not PCMCIA or CardBus peripherals. Drivers for this class are system-supplied. +Serial.Parallel.Port.Message=Includes serial and parallel port devices. See also the MultiportSerial class. +Printers.Admin.Hit.Label=Includes printers. As an IT admin, hit them with a baseball bat. +Includes.SCSI.Message=Includes SCSI/1394-enumerated printers. Drivers for this class provide printer communication for a specific bus. +ProcessorTypes.Label=Includes processor types. +ScsihostBus.Message=Includes SCSI Host Bus Adapters (HBAs), disk-array, and NVMe controllers. +Includes.Trusted.Message=Includes Trusted Platform Module chips. A TPM is a secure cryptoprocessor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. Any new manufactured device must implement and enable TPM 2.0 by default. For more information, see TPM Recommendations. +Includes.Sensor.Label=Includes sensor and location devices, such as GPS devices. +Smart.Card.Readers.Label=Includes smart card readers. +Virtual.Child.Device.Message=Includes virtual child device to encapsulate software components. For more information, see Adding Software Components with an INF file. +Storage.Disks.Label=Storage disks utilizing a multi-queue storage stack. +Includes.Storage.Message=Includes storage volumes as defined by the system-supplied logical volume manager and class drivers that create device objects to represent storage volumes, such as the system disk class driver. +HalsSystem.Message=Includes HALs, system buses, system bridges, the system ACPI driver, and the system volume manager driver. +Tape.Drives.Including.Label=Includes tape drives, including all tape miniclass drivers. +Usbdevice.Includes.Message=USBDevice includes all USB devices that don't belong to another class. This class isn't used for USB host controllers and hubs; drivers for these devices are provided by the operating system and should use the USB class described in System-Defined Device Setup Classes Reserved for System Use. +WindowsCeactive.Message=Includes Windows CE ActiveSync devices. The WCEUSBS setup class supports communication between a personal computer and a device that is compatible with the Windows CE ActiveSync driver (generally, PocketPC devices) over USB. +Wpddevices.Label=Includes WPD devices. + +[DriverFilter.Month] +January.Label=January +February.Label=February +March.Label=March +April.Label=April +Value.Label=May +June.Label=June +July.Label=July +August.Label=August +September.Label=September +October.Label=October +November.Label=November +December.Label=December + +[Driver.Manual] +Driver.Files.Choose.Label=Choisir les fichiers du pilote dans le répertoire +RecursiveListing.Message=Vous trouverez ci-dessous une liste récursive de tous les pilotes dans le répertoire que vous avez spécifié. Dans cette liste, sélectionnez les pilotes que vous souhaitez ajouter et cliquez sur OK. +Ok.Button=OK +Cancel.Button=Annuler +Refresh.Button=Rafraîchir + +[Driver.Manual.Scan] +Scanning.Driver.Dir.Label=Scannage du répertoire en cours...{crlf;}Fichiers de pilotes trouvés jusqu'à présent : {0} +Dir.Complete.Driver.Label=Scannage du répertoire terminé.{crlf;}Fichiers de pilotes trouvés : {0} + +[DriverFilePicker.Validation] +File.Label=Fichier + +[DynaViewer.Main] +EventsFiltering.Message=Please wait while the events are being filtered... Change filters to cancel current operation. + +[DynaViewer.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[DynaViewer.EventProps] +Field.Empty.Caller.Message=The above field can be empty if the caller does not have a parent, or if the logging system was called by the method in the program with the GetParentCaller parameter set to false.{crlf;}{crlf;}As a developer, you can log events without getting the parent caller like this:{crlf;}{crlf;} DynaLog.LogMessage({quot;}Event Message{quot;}, False) +Parent.Caller.Title=Event Parent Caller + +[EnableFeat.EnableFeature] +EnableFeatures.Label=Activer les caractéristiques +Image.Task.Header.Label={0} +PackageName.Label=Nom du paquet : +FeatureSource.Label=Source de la caractéristique : +Lookup.Button=Rechercher... +Browse.Button=Parcourir... +Detect.Group.Policy.Button=Détecter à partir des politiques de groupe +Cancel.Button=Annuler +Ok.Button=OK +Features.Group=Caractéristiques +Options.Group=Paramètres +ParentPackage.CheckBox=Spécifier le nom du paquet parent pour les caractéristiques +Source.CheckBox=Spécifier la source des caractéristiques +ParentFeatures.CheckBox=Activer toutes les caractéristiques des parents +Contact.Win.Update.CheckBox=Contacter Windows Update sur les images en ligne +FeatureName.Column=Nom de la caractéristique +State.Column=État +SourceFolder.Description=Spécifiez un répertoire qui servira de source des caractéristiques : +CommitImage.CheckBox=Sauvegarder l'image après l'activation des caractéristiques + +[EnableFeat.Validation] +Features.Message=Veuillez sélectionner les caractéristiques à activer et réessayer. +FeaturesSelected.Title=Aucune caractéristique sélectionnée +Features.Image.Message=Certaines caractéristiques de cette image nécessitent la spécification d'une source pour être activées. La source spécifiée n'est pas valide pour cette opération. +Source.Required.Message=Veuillez indiquer une source valide et réessayer. +Source.Message=Assurez-vous que la source existe dans le système de fichiers et réessayez. +EnableFeatures.Message=Activer les caractéristiques +Source.Message.Message=La source spécifiée n'est pas valide. Veuillez indiquer une source valide et réessayer +EnableFeatures.Title=Activer les caractéristiques + +[EnvVars.Management] +Removed.Label=(will be removed) +InfoLoaded.Message=Environment variable information has been successfully saved to the registry of the target image.{crlf;}{crlf;}A backup of the previous variable configuration has been saved to your desktop should you need it in case modifications do not go as planned.{crlf;}{crlf;}Simply load the target image's SYSTEM hive and import this registry file. +InfoSaved.Message=Environment variable information could not be saved to the registry of the target image. + +[EnvVars.Info] +Machine.Field=Ordinateur +User.Field=Utilisateur + +[EnvVars.Helper] +CurrentInfo.Message=Current environment variable information for the system scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? +BackupSaved.Title=Environment variable information could not be backed up +UserBackup.Message=Current environment variable information for the user scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? + +[Exception] +DISM.Tools.Internal.Label=DISMTools - Erreur interne +Sorry.Inconvenience.Message=Nous sommes désolés pour la gêne occasionnée, mais DISMTools a rencontré une erreur qu'il n'a pas pu gérer et nous avons besoin de votre aide pour continuer{crlf;}{crlf;}Voici les informations sur l'erreur si vous en avez besoin : +Help.Us.Fix.Label=Veuillez nous aider à résoudre ce problème +Reporting.Issue.Message=Lorsque vous signalez ce problème, VEUILLEZ coller les informations relatives à l'exception à gauche. Dans le cas contraire, les politiques de fermeture standard seront appliquées, ce qui implique la fermeture de votre problème après (au moins) 4 heures. +Continue.Running.Message=Vous pouvez continuer à exécuter le programme en cliquant sur Continuer. Cependant, si cette erreur s'affiche une seconde fois, vous pouvez fermer le programme en cliquant sur Quitter. Notez que les modifications apportées aux projets, ainsi que les modifications apportées à la liste Récents, ne seront pas sauvegardées.{crlf;}{crlf;}Que voulez-vous faire ? +ReportIssue.Label=Signaler ce problème +Continue.Button=Continuer +Exit.Button=Quitter +Copied.Clipboard.Label=Cette information a été copiée dans le presse-papiers +Ll.Copy.Label=Vous devrez copier ces informations manuellement. +Problem.Prevention.Message=Afin d'éviter que ce problème ne se reproduise, nous aimerions en savoir plus en signalant un problème sur le dépôt GitHub. Vous devez disposer d'un compte GitHub pour signaler un problème. + +[ExportDrivers] +Title.Label=Exporter les pilotes +Image.Task.Header.Label={0} +ExportTarget.Label=Cible d'exportation : +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler +DriversPath.Description=Veuillez indiquer le chemin vers lequel les pilotes seront exportés : + +[ExportDrivers.Validation] +Target.Required.Message=Veuillez spécifier une cible vers laquelle exporter les pilotes et assurez-vous que la cible spécifiée existe. + +[FfuApply] +NamingPattern.Required.Label=Veuillez spécifier le modèle de dénomination des fichiers SFU + +[FfuApply.ScanSFUPattern] +Source.File.Required.Message=Veuillez indiquer un fichier FFU original. Cela vous permettra d'utiliser les fichiers SFU pour une application d'image ultérieure. +ApplyImage.Message=Appliquer une image +Naming.Returns.Item=Ce modèle de dénomination renvoie {0} fichiers SFU +Naming.Returns.Label=Ce modèle de dénomination renvoie {0} fichiers SFU + +[FfuApply.Validation] +ImageFile.Message=Le fichier image spécifié n'est pas valide. Veuillez spécifier une image valide et réessayer. + +[FfuCapture] +No.Compression.None.Message=No compression will be applied for FFU files. Choose this option if you want to split the resulting file. +Default.Compression.Item=Default compression will be applied for FFU files. + +[FfuSplit] +SplitFfuimages.Label=Diviser les images FFU +Image.Task.Header.Label={0} +Source.Image.Label=Image source à diviser : +Name.Path.Destination.Label=Nom et chemin de l'image divisée de destination : +Maximum.Size.Images.Label=Taille maximale des images fractionnées (en Mo) : +LargeFile.Note.Message=Notez que, pour tenir compte d'un fichier volumineux dans l'image, un fichier d'image divisé peut être plus grand que la valeur spécifiée. +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler +Integrity.CheckBox=Vérifier l'intégrité de l'image +Source.File.Title=Spécifiez le fichier FFU source à diviser : +Target.Location.Title=Spécifiez l'emplacement cible des images divisées : + +[FfuSplit.Validation] +Name.Required.Message=Veuillez indiquer un nom et un chemin pour le fichier SFU cible et réessayez. Assurez-vous également que le chemin d'accès à la cible existe. +Source.File.Required.Message=Veuillez indiquer un fichier FFU source et réessayer. Assurez-vous également qu'il existe. + +[Get.AppX] +AppX.Package.Label=Obtenir des informations sur les paquets AppX +Image.Task.Header.Label={0} +AppX.Package.Label.Label=Informations sur le paquet AppX +Installed.AppX.Label=Sélectionnez un paquet AppX installé sur la gauche pour afficher son information ici. +PackageName.Label=Nom du paquet : +Display.Name.Label=Nom d'affichage de l'application : +Architecture.Label=Architecture : +ResourceID.Label=ID de la ressource : +Version.Label=Version : +Registered.User.Label=Est-il enregistré au nom d'un utilisateur ? +Install.Dir.Label=Répertoire d'installation : +Package.Manifest.Label=Emplacement du manifeste du paquet : +StoreLogo.Asset.Dir.Label=Répertoire du logo du magasin : +Main.StoreLogo.Asset.Label=Logo du magasin principal : +Asset.Guessed.DISM.Message=Ce bien a été deviné par DISMTools sur la base de sa taille, ce qui peut conduire à un résultat incorrect. Si cela se produit, veuillez signaler un problème sur le dépôt GitHub. +Asset.One.IM.Link=Cette ressource n'est pas celle que je recherche +Save.Button=Sauvegarder... +Type.Search.Label=Tapez ici pour rechercher une application... + +[Get.AppX.PackageList] +Yes.Button=Oui +No.Button=Non + +[CapabilityInfo] +Get.Label=Obtenir des informations sur les capacités +Image.Task.Header.Label={0} +Ready.Label=Prêt +Identity.Label=Identité de la capacité : +CapabilityName.Label=Nom de la capacité : +CapabilityState.Label=État de la capacité : +DisplayName.Label=Nom d'affichage : +CapabilityInfo.Label=Informations sur la capacité +Description.Label=Description de la capacité : +Sizes.Label=Tailles : +Identity.Column=Identité de la capacité +State.Column=État +Save.Button=Sauvegarder... +Type.Search.Label=Tapez ici pour rechercher une capacité... +Wait.Background.Message=Les processus en plan doivent être terminés avant d'afficher les caractéristiques. Nous attendrons qu'ils soient terminés +Waiting.Background.Label=Attente de la fin des processus en arrière plan... +Prepare.Cap.Item=Préparation de l'obtention des informations de la capacité en cours... +GettingInfo.Item=Obtention des informations de {quot;}{0}{quot;} en cours... +ReadableSize.Suffix=(~{0}) +Download.Size.Bytes.Label=Taille du téléchargement : {0} octets{1}{crlf;}Taille d'installation : {2} octets{3} +Get.Reason.Message=Impossible d'obtenir des informations sur les capacités. Raison : {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Prêt +Build.Query.Assistant.Label=Créer une requête avec l’assistant... + +[GetCapInfo] +SelectCapability.Label=Sélectionnez une capacité installée sur la gauche pour afficher les informations correspondantes ici. + +[GetDriverInfo] +Driver.Label=Obtenir des informations sur les pilotes +Get.Label=Sur quoi souhaitez-vous obtenir des informations ? +Get.Drivers.Message=Cliquez ici pour obtenir des informations sur les pilotes que vous avez installés ou qui sont fournis avec l'image Windows dont vous assurez la maintenance +AddDrivers.Help.Message=Cliquez ici pour obtenir des informations sur les pilotes que vous souhaitez ajouter à l'image Windows que vous maintenez avant de poursuivre le processus d'ajout de pilote +Ready.Label=Prêt +Add.DriverPackage.Label=Ajoutez ou sélectionnez un paquet de pilote pour afficher son information ici +HardwareTargets.Label=Cibles matérielles +Hardware.Description.Label=Description du matériel : +HardwareID.Label=ID du matériel : +AdditionalIds.Label=ID supplémentaires : +CompatibleIds.Label=ID compatibles : +ExcludeIds.Label=ID d'exclusion : +Hardware.Manufacturer.Label=Fabricant de matériel : +Architecture.Label=Architecture : +JumpTarget.Label=Sauter à la cible : +PublishedName.Label=Nom publié : +Original.File.Name.Label=Nom du fichier original : +ProviderName.Label=Nom du prestataire : +Critical.Boot.Process.Label=Est-il essentiel au processus de démarrage ? +Version.Label=Version : +ClassName.Label=Nom de classe : +Part.Windows.Label=Fait-il partie de la distribution Windows ? +DriverInfo.Label=Information sur le pilote +Installed.Driver.View.Label=Sélectionnez un pilote installé pour afficher ses informations ici +Date.Label=Date : +ClassDescription.Label=Description de classe : +ClassGUID.Label=GUID de classe : +Driver.Signature.Label=État de la signature du pilote : +Catalog.File.Path.Label=Chemin d'accès au fichier de catalogue : +Bg.Procs.Notice.Message=Vous avez configuré les processus en arrière plan de manière à ne pas afficher tous les pilotes présents dans cette image, ce qui inclut les pilotes faisant partie de la distribution Windows. Il est donc possible que vous ne voyiez pas le pilote qui vous intéresse. +AddDriver.Button=Ajouter un pilote... +RemoveSelected.Button=Supprimer la sélection +RemoveAll.Button=Supprimer tout +Change.Button=Changer +Save.Button=Sauvegarder... +View.Driver.File.Button=Voir les informations sur le fichier pilote +GoBack.Link=<- Retourner +InstalledDriver.Link=Je souhaite obtenir des informations sur les pilotes installés dans l'image. +Iwant.Link=Je souhaite obtenir des informations sur les fichiers pilotes +PublishedName.Column=Nom publié +Original.File.Name.Column=Nom du fichier original +Locate.Driver.Files.Title=Localiser les fichiers pilotes +Type.Search.Driver.Button=Tapez ici pour rechercher un pilote... +HardwareTarget.Label=Cible matérielle {0} de {1} +Value.Label= +Yes.Button=Oui +No.Button=Non +Value.Button=Oui +Text1.Label=par +Build.Query.Assistant.Label=Créer une requête avec l’assistant... + +[DriverInfo.Display] +NoManufacturer.Label=Aucune déclarée par le fabricant du matériel + +[GetDriverInfo.DriverInfo] +Wait.Background.Message=Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés +Waiting.Background.Label=Attente de la fin des processus en arrière plan... +Driver.File.Message=Obtention des informations du fichier pilote {quot;}{0}{quot;} en cours...{crlf;}Cette opération peut prendre un certain temps et le programme peut se bloquer temporairement. +Ready.Item=Prêt + +[DriverInfo.Load] +Preparing.Driver.Item=Préparation des processus d'information des pilotes en cours... + +[GetDriverInfo.Hardware] +HardwareTarget.Label=Cible matérielle 1 de {0} + +[GetDriverInfo.Tooltip] +Previous.Hardware.Message=Cible matérielle précédente +Next.Hardware.Target.Message=Prochaine cible matérielle +Jump.Specific.Message=Sauter à la cible matérielle spécifique + +[DriverInfo] +Unknown.Label=Inconnu + +[GetFeatureInfo] +Get.Feature.Label=Obtenir des informations sur les caractéristiques +Image.Task.Header.Label={0} +Ready.Label=Prêt +FeatureName.Label=Nom de la caractéristique : +DisplayName.Label=Nom d'affichage : +Description.Label=Description de la caractéristique : +RestartRequired.Label=Un redémarrage est-il nécessaire ? +FeatureInfo.Label=Information sur la caractéristique +Installed.Left.Label=Sélectionnez une caractéristique installée sur la gauche pour afficher ses informations ici +FeatureState.Label=État de la caractéristique : +CustomProps.Label=Propriétés personnalisées : +FeatureName.Column=Nom de la caractéristique +FeatureState.Column=État de la caractéristique +Save.Button=Sauvegarder... +Type.Search.Label=Tapez ici pour rechercher une caractéristique... +Wait.Background.Message=Les processus en plan doivent être terminés avant d'afficher les caractéristiques. Nous attendrons qu'ils soient terminés +Waiting.Background.Label=Attente de la fin des processus en arrière plan... +Preparing.Item=Préparation de l'obtention des informations de la caractéristique en cours... +GettingInfo.Item=Obtention des informations de {quot;}{0}{quot;} en cours... +Expand.Entry.Label=Veuillez sélectionner ou étendre une entrée. +None.Label=Aucune +Reason.Message=Impossible d'obtenir des informations sur les caractéristiques. Raison : {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Prêt +Build.Query.Assistant.Label=Créer une requête avec l’assistant... + +[FeatureInfo.PathSelection] +SelectedValue.Message=Aucune valeur n'a été définie. Si l'élément sélectionné a des sous-éléments, développez-le. + +[ImageInfo] +Get.Image.Label=Obtenir des informations de l'image +Image.Task.Header.Label={0} +ImageFile.Get.Label=Fichier image à partir duquel les informations sont obtenues : +List.Indexes.ImageFile.Label=Liste des index du fichier d'image : +ImageVersion.Label=Version de l'image : +ImageName.Label=Nom de l'image : +ImageDescription.Label=Description de l'image : +ImageSize.Label=Taille de l'image : +Supports.WIM.Boot.Label=Supporte WIMBoot ? +Architecture.Label=Architecture : +HAL.Label=HAL : +ServicePackBuild.Label=Compilation du Service Pack :: +ServicePackLevel.Label=Niveau du Service Pack : +InstallationType.Label=Type d'installation : +Edition.Label=Édition: +ProductType.Label=Type de produit : +ProductSuite.Label=Suite de produit : +System.Root.Dir.Label=Répertoire racine du système : +FileCount.Label=Nombre de fichiers : +Dates.Label=Dates: +Installed.Languages.Label=Langues installées : +ImageInfo.Label=Information de l'image +Index.List.View.Label=Sélectionnez un index dans la liste de gauche pour afficher son information ici. +CurrentlyMounted.RadioButton=Image actuellement montée +AnotherImage.RadioButton=Autre image +Browse.Button=Parcourir... +Save.Button=Sauvegarder... +Pick.Button=Choisir... +Index.Column=Index +ImageName.Column=Nom de l'image +Image.Get.Title=Spécifier l'image à partir de laquelle l'information doit être obtenue +Bytes.Label={0} octets (~{1}) + +[ImageInfo.FeatureUpdate] +FeatureUpdate.Label=(m-à-j des caractéristiques: +Text1.Label=) + +[ImageInfo.DisplayImageInfo] +UndefinedImage.Label=Non défini par l'image +FilesDirectories.Label={0} fichiers dans {1} répertoires +Date.Created.Modified.Label=Date de création : {0}{crlf;}Date de modification : {1} + +[ImageInfo.GetImageInfo] +Gather.ImageFile.Message=Impossible de recueillir des informations sur ce fichier de l'image. Raison :{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImageInfo.LanguageList] +Display.Name.Open.Label=( +Default.Label=, défaut +Display.Name.Close.Label=) + +[AppxPackages.Info.Messages] +Get.Label=Could not get some information about this application. + +[DriverFilter.Messages] +Class.Name.Message=This class name is not valid. + +[InfoSave.Results.Messages] +HtmlFailed.Message=Conversion to HTML has failed due to the following error: {0}{crlf;}{crlf;}Do you want to open this file in a text editor? +ConversionError.Label=Conversion error + +[GetPkgInfo] +Package.Label=Obtenir des informations sur les paquets +Image.Task.Header.Label={0} +Get.Label=Sur quoi souhaitez-vous obtenir des informations ? +Get.Packages.Message=Cliquez ici pour obtenir des informations sur les paquets que vous avez installés ou qui sont fournis avec l'image Windows dont vous assurez la maintenance. +AddPackages.Help.Message=Cliquez ici pour obtenir des informations sur les paquets que vous souhaitez ajouter à l'image Windows que vous maintenez avant de procéder à l'ajout de paquets. +Ready.Label=Prêt +Add.Package.File.Label=Ajoutez ou sélectionnez un fichier de paquet pour afficher son information ici +PackageInfo.Label=Information sur le paquet +PackageName.Label=Nom du paquet : +Package.Applicable.Label=Le paquet est-il applicable ? +Copyright.Label=Copyright : +ProductVersion.Label=Version du produit : +ReleaseType.Label=Type de publication : +Company.Label=Enterprise : +CreationTime.Label=Temps de création : +InstallTime.Label=Temps d'installation : +Last.Update.Time.Label=Dernière heure de mise à jour : +Install.Package.Name.Label=Nom du paquet d'installation : +Installed.Package.View.Label=Sélectionnez un paquet installé pour afficher son information ici +DisplayName.Label=Nom d'affichage: +Description.Label=Description : +ProductName.Label=Nom du produit : +InstallClient.Label=Client d'installation : +RestartRequired.Label=Un redémarrage est-il nécessaire ? +SupportInfo.Label=Information de support : +State.Label=État : +Boot.Up.Required.Label=L'installation complète nécessite-t-elle un démarrage ? +CustomProps.Label=Propriétés personnalisées : +Features.Label=Caractéristiques : +Capability.Identity.Label=Identité de la capacité : +GoBack.Link=<- Retour +AddPackage.Button=Ajouter un paquet... +RemoveSelected.Button=Supprimer la sélection +RemoveAll.Button=Supprimer tout +Save.Button=Sauvegarder... +Iwant.Link=Je souhaite obtenir des informations sur les paquets installés dans l'image. +PackageFile.Link=Je souhaite obtenir des informations sur les fichiers de paquets +Locate.Package.Files.Title=Localiser les fichiers des paquets +Type.Search.Package.Label=Tapez ici pour rechercher un paquet... + +[PackageInfo.Display] +None.Label=Aucune + +[PackageInfo.File] +Wait.Background.Message=Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés +Waiting.Background.Label=Attente de la fin des processus en arrière plan... +Preparing.Item=Préparation des processus d'information des paquets en cours... +Loading.Package.Message=Obtention des informations du fichier paquet {quot;}{0}{quot;} en cours...{crlf;}Cette opération peut prendre un certain temps et le programme peut se bloquer temporairement. +Ready.Item=Prêt + +[GetPkgInfo.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[GetPkgInfo.PackageList] +Wait.Background.Message=Les processus en plan doivent être terminés avant d'afficher les paquets. Nous attendrons qu'ils soient terminés +Waiting.Background.Label=Attente de la fin des processus en arrière plan... +Preparing.Package.Item=Préparation de l'obtention des informations du paquet en cours... +GettingInfo.Item=Obtention des informations de {quot;}{0}{quot;} en cours... +Expand.Entry.Label=Veuillez sélectionner ou étendre une entrée. +None.Label=Aucune +Ready.Item=Prêt + +[GetPkgInfo.PropertyPath] +SelectedValue.Message=Aucune valeur n'a été définie. Si l'élément sélectionné a des sous-éléments, développez-le. + +[WinPESettings] +Get.Windows.Pesettings.Label=Obtenir les paramètres de Windows PE +Windows.Label=Il s'agit des paramètres Windows PE pour cette image : +TargetPath.Label=Chemin cible : +ScratchSpace.Label=Espace temporaire : +Change.Button=Changer... +Ok.Button=OK +Save.Button=Sauvegarder... + +[WinPESettings.GetPESettings] +GetValue.Label=Impossible d'obtenir la valeur +GetValue.Message=Impossible d'obtenir la valeur + +[Help.QuickHelp] +QuickHelp.Message=Quick Help + +[PEHelper.ServerPort] +Already.Message=The specified port, {0}, is already in use. +InvalidPort.Message=The specified port, {0}, is not in use. + +[ISOCreator] +Status.Message=Statut +Creating.ISO.Message=Création du fichier ISO en cours. Cela peut prendre un certain temps. Veuillez patienter... +IsofileCreated.Message=Le fichier ISO a été créé +CreateIsofile.Label=Créer un fichier ISO +ISO.File.Message=L'assistant de création de fichier ISO vous permet de créer rapidement un fichier image de disque que vous pouvez utiliser pour tester les modifications apportées à votre image Windows. Un environnement de préinstallation (PE) personnalisé sera créé. Cet environnement effectuera automatiquement la configuration du disque et appliquera l'image que vous spécifiez ici. +Re.Ready.Create.Label=Lorsque vous êtes prêt, cliquez sur le bouton Créer. +ImageFile.Add.Label=Fichier image à ajouter au fichier ISO : +Architecture.Label=Architecture : +Target.Isolocation.Label=Emplacement ISO cible : +Other.Things.Message=Vous pouvez faire d'autres choses pendant la création de l'ISO. Revenez ici à tout moment pour obtenir une mise à jour de l'état. +Browse.Button=Parcourir... +Pick.Button=Choisir... +Mounted.Image.Button=Utiliser une image montée +Customize.Environment.Button=Personnaliser l'environnement... +Create.Button=Créer +Cancel.Button=Annuler +Options.Group=Paramètres +Progress.Group=Progrès +Download.Windows.ADK.Link=Télécharger l'ADK Windows +ImageName.Column=Nom de l'image +ImageDescription.Column=Description de l'image +ImageVersion.Column=Version +Image.Architecture.Column=Architecture +Unattended.CheckBox=Fichier de réponse : +Copy.Ventoy.Drives.CheckBox=Copier sur les lecteurs Ventoy +Newly.Signed.Boot.CheckBox=Utiliser des binaires de démarrage nouvellement signés +Include.Essential.CheckBox=Inclure les pilotes indispensables de ce système +Https.Learn.Message=https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install +Create.ISO.Message=Cette option créera des fichiers ISO contenant des binaires de démarrage EFI signés avec le certificat {quot;}Windows UEFI CA 2023{quot;}.{crlf;}{crlf;} +Computers.UEFI.Message=Certains ordinateurs qui utilisent l'UEFI peuvent ne pas démarrer correctement avec ce fichier ISO contenant les binaires de démarrage mis à jour. Pour cette raison, il est recommandé de vérifier la compatibilité de votre équipement de test avec ces binaires. +Run.Power.Shell.Message=Exécutez la commande PowerShell décrite dans la documentation d'aide du créateur de l'ISO (en anglais) pour déterminer si ce certificat est installé sur un appareil. +Doubts.Recommend.Message=Si vous avez des doutes, nous vous recommandons de ne pas cocher cette option. +Have.Detected.Message=Nous avons détecté que, actuellement, ce système ne prend pas en charge les binaires de démarrage Windows UEFI CA 2023. Si vous poursuivez la création de l'ISO, vous risquez de ne pas pouvoir démarrer à partir du fichier ISO obtenu sur ce système. +Windows.Title=Informations Windows UEFI CA 2023 +Check.Option.Storage.Message=When you check this option, storage controllers and network adapter drivers from this machine will be included{crlf;}in your ISO file. They will also be applied to the image file once deployed. +AvailableADK.Message=If available in your installed Assessment and Deployment Kit, your ISO file will use boot binaries signed with Windows UEFI CA 2023.{crlf;}This option is designed for target systems that support Secure Boot and have the latest boot certificates in the allowlist database (DB). + +[ISOCreator.Background] +Isofile.Created.Done.Message=Le fichier ISO a été créé avec succès +Failed.Create.Message=Le processus de création de l'ISO a échoué + +[ISOCreator.GetImageInfo] +Gather.ImageFile.Message=Impossible de recueillir des informations sur ce fichier de l'image. Raison :{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ISOCreator.Links] +Https.Learn.Message=https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install + +[ISOCreator.Validation] +Either.Source.Message=Soit le fichier image source n'existe pas, soit vous n'avez pas fourni de fichier image. Veuillez spécifier un fichier image valide et réessayer. +TargetISO.Required.Message=L'ISO cible n'a pas été spécifiée. Veuillez indiquer un emplacement pour le fichier ISO et réessayez. +Saved.Message=Assurez-vous d'avoir enregistré toutes vos modifications avant de continuer.{crlf;}{crlf;}Si vous ne l'avez pas fait, cliquez sur Non, enregistrez votre image et recommencez le processus. Vous n'êtes pas obligé de fermer cette fenêtre.{crlf;}{crlf;}Voulez-vous créer une ISO avec ce fichier ? +Target.ISO.Message=L'ISO cible existe déjà. Voulez-vous la remplacer ? + +[ImageAppxPackage.RegStatus] +Yes.Button=Oui +No.Button=Non + +[ImageDriver.DriverInbox] +Yes.Button=Oui +No.Button=Non + +[ImgAppend] +AppendImage.Label=Ajouter à une image +Image.Task.Header.Label={0} +Path.Config.File.Label=Chemin du fichier de configuration : +Source.Image.Dir.Label=Répertoire de l'image source : +Dest.Image.Description.Label=Description de l'image de destination : +Destination.ImageFile.Label=Fichier de l'image de destination : +Destination.Image.Name.Label=Nom de l'image de destination : +Ok.Button=OK +Cancel.Button=Annuler +Browse.Button=Parcourir... +Grab.Last.Image.Button=Dernière image +Create.Button=Créer... +Exclude.Files.Dirs.CheckBox=Exclure certains fichiers et répertoires pour l'image de destination +WIM.Boot.Config.CheckBox=Ajouter la configuration WIMBoot +Image.Bootable.CheckBox=Rendre l'image amorçable (Windows PE uniquement) +Verify.Image.CheckBox=Vérifier l'intégrité de l'image +Check.File.Errors.CheckBox=Rechercher les erreurs de fichiers +Reparse.Point.Tag.CheckBox=Utiliser la correction de la balise reparse +ExtendedAttributes.CheckBox=Capturer les attributs étendus +Sources.Destinations.Group=Sources et destinations +Options.Group=Paramètres + +[ImgAppend.Tooltip] +Grab.Name.Last.Message=Obtenir le nom du dernier index de l'image cible + +[ImgAppend.Validation] +SourceImage.Required.Message=Veuillez indiquer un répertoire d'images source et réessayer. +ImageFile.Required.Message=Veuillez indiquer un fichier image de destination et réessayer. +NameDestination.Message=Veuillez indiquer un nom pour le fichier image de destination et réessayer. +Either.Config.List.Message=Soit aucun fichier de liste de configuration n'a été spécifié, soit le fichier de liste de configuration n'a pas pu être détecté dans votre système de fichiers. Souhaitez-vous continuer sans fichier de liste de configuration ? + +[ImgApply] +ApplyImage.Label=Appliquer une image +Image.Task.Header.Label={0} +SourceImageFile.Label=Fichier de l'image originale : +ImageIndex.Label=Index de l'image: +NamingPattern.Label=Modèle de dénomination : +Integrity.CheckBox=Vérifier l'intégrité de l'image +Verify.CheckBox=Verifier +Reparse.Point.Tag.CheckBox=Utiliser la correction de la balise reparse +Reference.Swmfiles.CheckBox=Référence aux fichiers SWM +Append.Image.WIM.CheckBox=Ajouter une image avec la configuration WIMBoot +Image.Compact.Mode.CheckBox=Appliquer l'image en mode compact +Extended.Attributes.CheckBox=Appliquer des attributs étendus +Browse.Button=Parcourir... +Name.Image.Button=Utiliser le nom de l'image +ScanPattern.Button=Scanner le modèle +Mounted.Image.Label=Utiliser une image montée +Ok.Button=OK +Cancel.Button=Annuler +Destination.Dir.Label=Répertoire de destination : +Source.Group=Source +Options.Group=Paramètres +Destination.Group=Destination +SwmfilePattern.Group=Modèle de fichier SWM +NamingPattern.Required.Label=Veuillez spécifier le modèle de dénomination des fichiers SWM +Validate.Image.CheckBox=Valider l'image pour Trusted Desktop + +[ImgApply.GetIndexes] +Gather.ImageFile.Message=Impossible de recueillir des informations sur ce fichier de l'image. Raison :{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgApply.ScanSwmPattern] +Source.WIM.Required.Message=Veuillez indiquer un fichier WIM original. Cela vous permettra d'utiliser les fichiers SWM pour une application d'image ultérieure. +ApplyImage.Message=Appliquer une image +Naming.Returns.Item=Ce modèle de dénomination renvoie {0} fichiers SWM +Naming.Returns.Label=Ce modèle de dénomination renvoie {0} fichiers SWM + +[ImgApply.Validation] +ImageFile.Message=Le fichier image spécifié n'est pas valide. Veuillez spécifier une image valide et réessayer. + +[ImgCapture] +CaptureImage.Label=Capturer une image +Destination.ImageFile.Label=Fichier de l'image de destination : +Source.Image.Dir.Label=Répertoire de l'image source : +Dest.Image.Description.Label=Description de l'image de destination : +Destination.Image.Name.Label=Nom de l'image de destination : +Path.Config.File.Label=Emplacement du fichier de configuration : +CompressionType.Label=Type de compression de l'image de destination : +Sources.Destinations.Group=Sources et destinations +Options.Group=Paramètres +Browse.Button=Parcourir... +Create.Button=Créer... +Ok.Button=OK +Cancel.Button=Annuler +Exclude.Files.Dirs.CheckBox=Exclure certains fichiers et répertoires pour l'image de destination +Image.Bootable.CheckBox=Rendre l'image amorçable (Windows PE uniquement) +Verify.Image.CheckBox=Vérifier l'intégrité de l'image +Check.File.Errors.CheckBox=Vérifier les erreurs de fichiers +Reparse.Point.Tag.CheckBox=Utiliser la correction de la balise reparse +Append.WIM.Boot.CheckBox=Ajouter la configuration WIMBoot +Extended.Attributes.CheckBox=Capturer les attributs étendus +Mount.Dest.Image.CheckBox=Monter l'image de destination pour une utilisation ultérieure +No.Compression.None.Item=Aucune compression ne sera appliquée à l'image de destination. +Fast.Compression.Item=Une compression rapide sera appliquée. Il s'agit du paramètre par défaut. +MaxCompression.Message=La compression maximale sera appliquée. C'est ce qui prendra le plus de temps, mais l'image sera plus petite. + +[ImgCleanup] +ImageCleanup.Label=Nettoyage de l'image +Task.Choose.Label=Choisissez une tâche : +Text4.Label=Choisissez une tâche pour voir sa description +NoOptions.Message=Il n'y a pas d'options configurables pour cette tâche. Cependant, vous ne devez exécuter cette tâche que pour essayer de récupérer une image Windows qui ne démarre pas. +Superseded.Base.Reset.Label=La réinitialisation de la base des composants remplacés a été exécutée pour la dernière fois : +Only.Check.Option.Label=Ne cochez cette option que si la réinitialisation de la base prend plus de 30 minutes. +NoOptions.Label=Il n'y a pas d'options configurables pour cette tâche. +Source.Label=Source : +Task.Listed.Label=Sélectionnez une tâche dans la liste ci-dessus pour configurer ses paramètres. +TaskOptions.Group=Paramètres de la tâche +Ok.Button=OK +Cancel.Button=Annuler +Revert.Pending.Actions.Item=Annuler les actions en cours +Clean.Up.ServicePack.Item=Nettoyer les fichiers de sauvegarde du Service Pack +Clean.Up.Component.Item=Nettoyer le stock de composants +Analyze.Component.Store.Item=Analyser le stock de composants +Check.Component.Store.Item=Vérifier le stock de composants +Scan.Comp.Store.Item=Rechercher la corruption du stock de composants +Repair.Component.Store.Item=Réparer le stock de composants +Source.Title=Indiquez la source à partir de laquelle nous restaurerons l'état du stock de composants. +Browse.Button=Parcourir... +Detect.Group.Policy.Button=Détecter à partir des politiques de groupe +HideServicePack.CheckBox=Cacher le Service Pack de la liste des mises à jour installées +Reset.Base.CheckBox=Réinitialiser la base des composants remplacés +Defer.Long.Running.CheckBox=Différer les opérations de nettoyage de longue durée +Different.Source.CheckBox=Utiliser une autre source pour la réparation des composants +WindowsUpdate.CheckBox=Limiter l'accès à Windows Update +Last.Reset.Base.Label=LastResetBase_UTC +Get.Last.Base.Message=Impossible d'obtenir la date de la dernière remise à zéro de la base. Il est possible qu'aucune réinitialisation de la base n'ait été effectuée. +Last.Reset.Base.Item=LastResetBase_UTC +Get.Last.Base.Item=Impossible d'obtenir la date de la dernière remise à zéro de la base. Il est possible qu'aucune réinitialisation de la base n'ait été effectuée. +Get.Last.Base.Label=Impossible d'obtenir la date de la dernière réinitialisation de la base +Task.See.Choose.Label=Choisissez une tâche pour voir sa description +Experience.Boot.Message=En cas d'échec du démarrage, cette option permet d'essayer de récupérer le système en annulant toutes les actions en cours des opérations de maintenance précédentes. +Removes.Backup.Files.Item=Supprime les fichiers de sauvegarde créés lors de l'installation d'un service pack +Cleans.Up.Superseded.Item=Nettoie les composants remplacés et réduit la taille du stock de composants. +Creates.Report.Comp.Item=Crée un rapport sur le stock de composants, y compris sa taille. +Checks.Whether.Image.Message=Vérifie si l'image a été signalée comme corrompue par un processus ayant échoué et si la corruption peut être réparée. +Scans.Image.Message=Analyse l'image pour détecter une corruption du stock de composants, mais n'exécute pas automatiquement les options de réparation. +Scans.Image.Component.Item=Analyse l'image pour détecter une corruption du stock de composants et effectue les opérations de réparation automatiquement. + +[ImgCleanup.Validation] +Source.Has.None.Message=Aucune source valide n'a été fournie pour la réparation du stock de composants. +Provide.Source.Try.Message=Veuillez indiquer une source et réessayer. +Please.Make.Message=Assurez-vous que la source spécifiée existe dans le système de fichiers et réessayez. +ImageCleanup.Message=Nettoyage de l'image + +[ImageConversion.Success] +Image.Done.Converted.Label=L'image a été convertie avec succès +ConversionDone.Message=L'image spécifiée a été convertie avec succès au format cible. Pour plus de commodité, l'explorateur de fichiers peut être ouvert pour vous permettre de voir où se trouve l'image cible.{crlf;}{crlf;}Voulez-vous ouvrir le répertoire dans lequel l'image cible est stockée ? +Yes.Button=Oui +No.Button=Non + +[ImgExport] +ExportImage.Label=Exporter une image +Destination.ImageFile.Label=Fichier d'image de destination : +SourceImageFile.Label=Fichier d'image source : +NamingPattern.Label=Modèle de dénomination : +CompressionType.Label=Type de compression de l'image de destination : +Source.Image.Index.Label=Index de l'image source : +Reference.Swmfiles.CheckBox=Référence aux fichiers SWM +CustomName.CheckBox=Spécifier un nom personnalisé pour l'image de destination +Image.Bootable.CheckBox=Rendre l'image démarrable (Windows PE uniquement) +Append.Image.WIM.CheckBox=Ajouter la configuration WIMBoot à l'image +Ok.Button=OK +Cancel.Button=Annuler +Browse.Button=Parcourir... +Name.Image.Button=Utiliser le nom de l'image +ScanPattern.Button=Scanner modèle +Sources.Destinations.Group=Sources et destinations +Options.Group=Paramètres +Source.ImageFile.Title=Spécifier un fichier image source à exporter +Index.Column=Index +ImageName.Column=Nom de l'image +ImageDescription.Column=Description de l'image +ImageVersion.Column=Version de l'image +No.Compression.None.Item=Aucune compression ne sera appliquée à l'image de destination. +Fast.Compression.Item=Une compression rapide sera appliquée. C'est l'option par défaut. +MaxCompression.Message=Une compression maximale sera appliquée. Cette option prend le plus de temps, mais permet d'obtenir une image plus petite. +Compression.Level.Message=Le niveau de compression des images réinitialisées par bouton-poussoir sera appliqué. Cela nécessite l'exportation de l'image en tant que fichier ESD. +NamingPattern.Required.Label=Veuillez spécifier le modèle de dénomination des fichiers SWM +CheckIntegrity.CheckBox=Vérifier l'intégrité avant d'exporter l'image + +[ImgExport.ScanSwmPattern] +Source.WIM.Required.Message=Veuillez indiquer un fichier WIM original. Cela vous permettra d'utiliser les fichiers SWM pour une application d'image ultérieure. +Naming.Returns.Item=Ce modèle de dénomination renvoie {0} fichiers SWM +Naming.Returns.Label=Ce modèle de dénomination renvoie {0} fichiers SWM + +[ImgExport.Validation] +SourceImageFile.Message=Veuillez indiquer un fichier d'image source à exporter et réessayez. +ImageFile.Required.Message=Veuillez spécifier un fichier d'image de destination et réessayer + +[ImageIndexDelete] +Remove.Volume.Image.Label=Supprimer une image de volume +Image.Task.Header.Label={0} +SourceImage.Label=Image source : +Mark.VolumeImages.Message=Veuillez marquer les images de volume à supprimer sur la gauche. L'image aura alors les index affichés à droite. +Get.Indexes.Image.Label=Obtention des index de l'image en cours. Veuillez patienter... +Browse.Button=Parcourir... +Mounted.Image.Button=Utiliser l'image montée +Ok.Button=OK +Cancel.Button=Annuler +Integrity.CheckBox=Vérifier l'intégrité de l'image +Index.Column=Index +ImageName.Column=Nom de l'image +Columns0.Column=Index de l'image +Columns1.Column=Nom de l'image +VolumeImages.Group=Images de volume + +[ImageIndexDelete.IndexInfo] +Image.Only.Contains.Message=Cette image ne contient qu'un seul index. Vous ne pouvez pas supprimer les images de volume de ce fichier. +Remove.Volume.Image.Title=Supprimer une image de volume + +[ImageIndexDelete.Validation] +SelectImages.Message=Veuillez sélectionner les images de volume à supprimer de cette image et réessayer. +Remove.Volume.Image.Title=Supprimer une image de volume +ImageMounted.Message=Le programme a détecté que cette image est montée. Pour supprimer les images de volume d'un fichier, celui-ci doit être démonté. Vous pourrez la remonter plus tard, si vous le souhaitez.{crlf;}{crlf;}Notez que cette opération démontera l'image sans enregistrer les modifications. Assurez-vous que toutes vos modifications ont été enregistrées avant de continuer.{crlf;}{crlf;}Voulez-vous démonter cette image ? + +[ImageIndexSwitch] +Image.Indexes.Label=Changer d'index de l'image +Image.Task.Header.Label={0} +Image.Label=Image : +Unmounting.Source.Label=Que faire lors du démonter l'index original ? +Destination.Mount.Label=Index de destination à monter : +Already.Mounted.Label=Cet index a déjà été monté +Ok.Button=OK +Cancel.Button=Annuler +Indexes.Group=Index +Save.Changes.RadioButton=Sauvegarder les modifications dans l'index +DiscardChanges.RadioButton=Annuler les modifications et démonter + +[ImageIndexSwitch.Initialize] +Getting.Image.Indexes.Label=Obtention des index de l'image en cours... + +[ImageInfoSave] +Saving.Image.Button=Sauvegarde des informations sur l'image en cours... +Wait.Message=Veuillez patienter pendant que DISMTools enregistre l'information sur l'image dans un fichier. Cette opération peut prendre un certain temps, en fonction des tâches exécutées. +Wait.Label=Veuillez patienter... +Wait.Background.Message=Les processus en plan doivent être terminés avant d'afficher l'information. Nous attendrons qu'ils soient terminés +Waiting.Bg.Procs.Item=Attente de la fin des processus en arrière plan... +Create.Target.Reason.Message=Impossible de créer le fichier cible. Raison : +OperationFailed.Message=L'opération a échoué +PackageInfo.Label=Informations sur les paquets +FeatureInfo.Label=Informations sur les caractéristiques +AppX.Package.Label=Informations sur les paquets AppX +CapabilityInfo.Label=Informations sur les capacités +DriverInfo.Label=Informations sur les pilotes +Desea.Obtener.Message=Souhaitez-vous obtenir des informations complètes sur les paquets installés ? Notez que cela prendra plus de temps. +Statement3.Message=Souhaitez-vous obtenir des informations complètes sur les caractéristiques installées ? Notez que cela prendra plus de temps. +Statement4.Message=Souhaitez-vous obtenir des informations complètes sur les paquets AppX installés ? Notez que cela prendra plus de temps. +Statement5.Message=Souhaitez-vous obtenir des informations complètes sur les capacités installées ? Notez que cela prendra plus de temps. +Statement6.Message=Souhaitez-vous obtenir des informations complètes sur les pilotes installés ? Notez que cela prendra plus de temps. +BgProcessDetect.Message=Vous avez configuré les processus d'arrière-plan pour qu'ils ne détectent pas tous les pilotes, ce qui inclut les pilotes faisant partie de la distribution Windows, il se peut donc que vous ne voyiez pas le pilote qui vous intéresse.{crlf;}{crlf;} +Setting.Applied.Task.Message=Ce paramètre est également appliqué à cette tâche, mais vous pouvez obtenir les informations de tous les pilotes maintenant. Notez que cela peut prendre beaucoup de temps, en fonction du nombre de pilotes de première partie. +Get.Message=Voulez-vous obtenir les informations de tous les pilotes, y compris les pilotes faisant partie de la distribution Windows ? +SavingContents.Message=Sauvegarde des contenus en cours... + +[ImageInfoSave.AppxInfo] +Preparing.Package.Message=Préparation des processus d'information sur les paquets AppX en cours... +Basic.Ready.Message=Le programme a obtenu des informations basiques sur les paquets AppX installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces paquets AppX et les enregistrer dans le rapport.{crlf;}{crlf;} +May.Take.Long.Message=Notez que cette opération peut prendre plus de temps en fonction du nombre de paquets AppX installés. +Prompt.Label=Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ? +Package.Message=Informations sur les paquets AppX +Getting.Message=Obtention des informations sur les paquets AppX en cours... (paquet AppX {0} de {1}) +Packages.Obtained.Message=Des paquets AppX ont été obtenus +Saving.Installed.Message=Sauvegarde des paquets AppX installés en cours... + +[ImgInfo.Capabilities] +Preparing.Message=Préparation des processus d'information sur les capacités en cours... +Basic.Ready.Message=Le programme a obtenu des informations basiques sur les capacités installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces capacités et les enregistrer dans le rapport.{crlf;}{crlf;} +May.Take.Long.Message=Notez que cette opération peut prendre plus de temps en fonction du nombre de capacités installées. +Save.Prompt.Label=Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ? +CapabilityInfo.Message=Informations sur les capacités +Loaded.Message=Des capacités ont été obtenues +Loading.Capability.Message=Obtention des informations sur les capacités en cours... (capacité {0} de {1}) +Saving.Message=Sauvegarde des caractéristiques installées en cours... + +[ImgInfo.DriverFiles] +Preparing.Message=Préparation des processus d'information des pilotes en cours... +Loading.Driver.Message=Obtention des informations des fichiers pilotes en cours... (fichier pilote {0} de {1}) + +[ImageInfoSave.Drivers] +Preparing.Message=Préparation des processus d'information sur les pilotes en cours... +Basic.Ready.Message=Le programme a obtenu des informations basiques sur les pilotes installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces pilotes et les enregistrer dans le rapport.{crlf;}{crlf;} +May.Take.Long.Message=Notez que cette opération peut prendre plus de temps en fonction du nombre de pilotes installés. +Prompt.Label=Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ? +DriverInfo.Message=Informations sur les pilotes +Setting.Applied.Task.Message=Ce paramètre est également appliqué à cette tâche, mais vous pouvez obtenir les informations de tous les pilotes maintenant. Notez que cela peut prendre beaucoup de temps, en fonction du nombre de pilotes de première partie. +Get.Message=Voulez-vous obtenir les informations de tous les pilotes, y compris les pilotes faisant partie de la distribution Windows ? +DriversObtained.Message=Des pilotes ont été obtenus +Get.Driver.Message=Obtention des informations sur les pilotes en cours... (pilote {0} de {1}) +SaveDrivers.Message=Sauvegarde des pilotes installés en cours... + +[ImageInfoSave.GetDriverInfo] +BgProcessDetect.Message=Vous avez configuré les processus d'arrière-plan pour qu'ils ne détectent pas tous les pilotes, ce qui inclut les pilotes faisant partie de la distribution Windows, il se peut donc que vous ne voyiez pas le pilote qui vous intéresse.{crlf;}{crlf;} + +[ImgInfo.Features] +Preparing.Feature.Message=Préparation des processus d'information sur les caractéristiques en cours... +Loading.Feature.Message=Obtention des informations sur les caractéristiques en cours... (caractéristique {0} de {1}) + +[ImageInfoSave.Features] +Basic.Ready.Message=Le programme a obtenu des informations basiques sur les caractéristiques installées sur cette image. Vous pouvez également obtenir des informations complètes sur ces caractéristiques et les enregistrer dans le rapport.{crlf;}{crlf;} +May.Take.Long.Message=Notez que cette opération peut prendre plus de temps en fonction du nombre de caractéristiques installées. +Prompt.Label=Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ? +FeatureInfo.Message=Informations sur les caractéristiques +FeaturesObtained.Message=Des caractéristiques ont été obtenues +SaveFeatures.Message=Sauvegarde des caractéristiques installés en cours... + +[ImageInfoSave.Image] +Getting.Image.Message=Obtention des informations sur l'image en cours... (image {0} de {1}) + +[ImgInfo.PkgFiles] +Preparing.Package.Message=Préparation des processus d'information des paquets en cours... + +[ImgInfo.PackageFiles] +Loading.Package.Message=Obtention des informations des fichiers paquets en cours... (fichier paquet {0} de {1}) + +[ImgInfo.Packages] +Preparing.Package.Message=Préparation des processus d'information sur les paquets en cours... +Loading.Package.Message=Obtention des informations sur les paquets en cours... (paquet {0} de {1}) + +[ImageInfoSave.Packages] +Basic.Ready.Message=Le programme a obtenu des informations basiques sur les paquets installés sur cette image. Vous pouvez également obtenir des informations complètes sur ces paquets et les enregistrer dans le rapport.{crlf;}{crlf;} +May.Take.Long.Message=Notez que cette opération peut prendre plus de temps en fonction du nombre de paquets installés. +Prompt.Label=Souhaitez-vous obtenir ces informations et les enregistrer dans le rapport ? +PackageInfo.Message=Informations sur les paquets +PackagesObtained.Message=Des paquets ont été obtenus +SavePackages.Message=Sauvegarde des paquets installés en cours... + +[ImageInfoSave.WinPE] +Prepare.Message=Préparation de l'obtention de la configuration de Windows PE en cours... +Get.Target.Message=Obtention du chemin d'accès cible de Windows PE en cours... +Get.Scratch.Message=Obtention de l'espace temporaire de Windows PE en cours... + +[ImageInfoSave.Report] +Get.Message=The program could not get information about this task. See below for reasons why: +Exception.Label=Exception: +ExceptionMessage=Exception message: +ErrorCode.Label=Error code: +ImageInfo.Label=Informations sur l’image +Active.Install.Label=Active installation information: +Name.Label=Nom : +Boot.Point.Mount.Label=Boot point (mount point): +Version.Label=Version : +Offline.Install.Label=Offline installation information: +OfflineVersion.Label=- Version: +ImageFile.Get.Label=Image file to get information from: +InfoSummary.Label=Information summary for +ImageS.Label=image(s): +Version.Column=Version +ImageName.Label=Nom de l’image +ImageDescription=Description de l’image +ImageSize.Label=Image size +Architecture.Label=Architecture +HAL.Label=HAL +ServicePackBuild.Label=Service Pack build +ServicePackLevel.Label=Service Pack level +InstallationType.Label=Installation type +Edition.Label=Edition +ProductType.Label=Product type +ProductSuite.Label=Product suite +System.Root.Dir.Label=System root directory +Languages.Label=Languages +DateCreation.Label=Date of creation +DateModification.Label=Date of modification +Default.Label=(default) +Bytes.Label=bytes (~ +UndefinedImage.Label=Undefined by the image +PackageInfo.Label=Informations sur le paquet +Active.Install.Label.Label=active installation +PackageS.Label=package(s): +PackageName.Label=Package name +Applicable.Label=Applicable? +Copyright.Label=Copyright +Company.Label=Company +CreationTime.Label=Creation time +Description=Description +InstallClient.Label=Install client +Install.Package.Name.Label=Install package name +InstallTime.Label=Install time +Last.Update.Time.Label=Last update time +DisplayName.Label=Display name +ProductName.Label=Product name +ProductVersion.Label=Product version +ReleaseType.Label=Release type +RestartRequired.Label=Restart required? +SupportInfo.Label=Support information +PackageState.Label=Package state +Boot.Up.Required.Label=Boot up required? +Capability.Identity.Label=Capability identity +CustomProps.Label=Custom properties +Features.Label=Fonctionnalités +None.Label=None +Preposterous.Time.Date.Label=- **Preposterous time and date** +PackageInfo.Ready.Label=Complete package information has been gathered. +Package.Release.Type.Label=Package release type +Package.Install.Time.Label=Package install time +PackageInfo.Missing.Label=Complete package information has not been gathered +Package.File.Label=Package file information +Amount.Package.Files.Label=Amount of package files to get information about: +FeatureInfo.Label=Feature information +FeatureCount.Suffix=feature(s): +FeatureName.Label=Nom de fonctionnalité +FeatureState.Label=Feature state +Web.Label=On The Web +Look.Item.Online.Label=Rechercher cet élément en ligne +FeatureInfo.Ready.Label=Complete feature information has been gathered +FeatureInfo.Missing.Label=Complete feature information has not been gathered +AppX.Package.Label=AppX package information +Task.Supported.Win.Message=This task is not supported on the specified Windows image. Check that it contains Windows 8 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +AppXPackages.Label=AppX package(s): +App.Display.Name.Label=Application display name +ResourceID.Label=Resource ID +RegisteredUser.Label=Registered to a user? +Install.Location.Label=Installation location +Package.Manifest.Label=Package manifest location +StoreLogo.Asset.Dir.Label=Store logo asset directory +Main.StoreLogo.Asset.Label=Main store logo asset +Yes.Button=Yes +No.Button=No +Unknown.Label=Inconnu +Notemain.StoreLogo.Message=NOTE: main store logo asset locations are a guess, and may not be the assets you're looking for. If that happens, report an issue on the GitHub repo using the +StoreLogo.Asset.Label=Store logo asset preview issue +Template.Provide.Message=template. Then, provide the package name, the expected asset and the obtained asset. +CapabilityInfo.Label=Capability information +Task.Supported.Message=This task is not supported on the specified Windows image. Check that it contains Windows 10 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +CapabilityIes.Label=capability/ies: +CapabilityName.Label=Capability name +CapabilityState.Label=Capability state +DownloadSize.Label=Download size +InstallationSize.Label=Installation size +BytesSuffix.Label=bytes +CapabilityInfo.Ready.Label=Complete capability information has been gathered +CapabilityInfo.Missing.Label=Complete capability information has not been gathered +DriverInfo.Label=Driver information +Box.Driver.Label=In-box driver information +WasSaved.Label=was saved +Saved.Label=was not saved +DriverS.Label=driver(s): +PublishedName.Label=Published name +Original.File.Name.Label=Nom du fichier d’origine +ProviderName.Label=Provider name +ClassName.Label=Class name +ClassDescription=Class description +ClassGUID.Label=Class GUID +Catalog.File.Path.Label=Catalog file path +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Critical to the boot process? +Date.Label=Date +SignatureStatus.Label=Signature status +DriverInfo.Ready.Label=Complete driver information has been gathered +DriverInfo.Missing.Label=Complete driver information has not been gathered +DriverPackage.Label=Driver package information +DriverPackageS.Label=driver package(s): +DriverPackage.Driver.Label=Driver package +Value.Label=of +HardwareTargets.Label=hardware target(s): +Hardware.Description=Hardware description +HardwareID.Label=Hardware ID +CompatibleIds.Label=Compatible IDs +ExcludeIds.Label=Exclude IDs +Hardware.Manufacturer.Label=Hardware manufacturer +None.Declared.Label=None declared by the manufacturer +File.Contains.Hardware.Label=This file contains no hardware targets. It could be invalid. +Windows.Label=Windows PE configuration +UnsupportedWin.Message=This task is not supported on the specified Windows image. Check that it is a Windows PE image. Skipping task... +Target.Path.Get.Label=Target path: could not get value +ScratchSpace.Get.Value.Label=Scratch space: could not get value +TargetPath.Label=Target path: +GetValue.Label=could not get value +ScratchSpace.Label=Scratch space: +ServiceInfo.Label=Service Information +Getting.Service.Label=Getting service information... +Service.Default.Label=service(s) dans le jeu de contrôle par défaut : +ServiceName.Label=Nom du service +DisplayName.Column=Nom d’affichage +StartType.Label=Start Type +ServiceType.Label=Service Type +Overview.Svc.Label=Saving information overview of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Detailed.Svc.Label=Saving detailed information of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Undefined.Label=Undefined +Per.User.Service.Label=Not a per-user service +InfoService.Label=Information for service: {lbrace;}0{rbrace;} +Service.Display.Name.Label=Service Display Name: {lbrace;}0{rbrace;} +Service.Description=Service Description: {lbrace;}0{rbrace;} +ImagePath.Label=Image Path: {lbrace;}0{rbrace;} +ObjectName.Label=Object Name: {lbrace;}0{rbrace;} +StartType.Option0.Label=Start Type: {lbrace;}0{rbrace;} +DelayedStart.Label=Delayed Start? {lbrace;}0{rbrace;} +ServiceType.Option0.Label=Service Type: {lbrace;}0{rbrace;} +Per.User.Flags.Label=Per-user Service Flags: {lbrace;}0{rbrace;} +Group.Label=Group: {lbrace;}0{rbrace;} +WindowsNt.Label=Windows NT® privileges: +PrivilegeName.Label=Privilege Name +Privilege.Display.Name.Label=Privilege Display Name +Privilege.Description=Privilege Description +ErrorControl.Label=Error Control: +ServiceError.Label=On service error: {lbrace;}0{rbrace;} +Failure.Action.First.Label=Failure action on first error: {lbrace;}0{rbrace;} +Failure.Action.Second.Label=Failure action on second error: {lbrace;}0{rbrace;} +Failure.Errors.Label=Failure action on subsequent errors: {lbrace;}0{rbrace;} +ResetErrorCount.Label=Reset error count after the following minutes: {lbrace;}0{rbrace;} minute(s) +Restart.Service.Message=Restart service after the following minutes: {lbrace;}0{rbrace;} minute(s) ({lbrace;}1{rbrace;} seconds) after first failure, {lbrace;}2{rbrace;} minute(s) ({lbrace;}3{rbrace;} seconds) after second failure, {lbrace;}4{rbrace;} minute(s) ({lbrace;}5{rbrace;} seconds) after subsequent failures +Dependencies.Label=Dependencies: +Name.Column=Nom +Type.Label=Type +Dependents.Label=Dependents: +ServicesFound.Label=No services were found. +DISM.Tools.Image.Title=DISMTools Image Information Report +Automatically.Message=This is an automatically generated report created by DISMTools. It can be viewed at any time to check image information. +Report.Contains.Message=This report contains information about the tasks that you wanted to get information about, which are reflected below this message. +Process.Primarily.Message=This process primarily uses the DISM API to get information. If you want to get information of the API operations, this file does not include it. However, you can get that information from the log file stored in the standard location of: +TaskDetails.Label=Task details +ProcessesStarted.Label=Processes started at: +Report.File.Target.Label=Report file target: +Tasks.Get.Complete.Label=Information tasks: get complete image information +Tasks.Get.Image.Label=Information tasks: get image file information +Tasks.Get.Installed.Label=Information tasks: get installed package information +Tasks.Get.Package.Label=Information tasks: get package file information +Tasks.Get.Feature.Label=Information tasks: get feature information +TaskInstalled.Label=Information tasks: get installed AppX package information +Tasks.Get.Capability.Label=Information tasks: get capability information +Tasks.Get.Driver.Label=Information tasks: get installed driver information +Tasks.Get.Label.Label=Information tasks: get driver package information +Tasks.Get.Windows.Label=Information tasks: get Windows PE configuration +Tasks.Get.Services.Label=Information tasks: get services from default control set +WeEnded.Label=We have ended at +NiceDay.Label=. Have a nice day! +Complete.AppX.Label=Complete AppX package information has been gathered +AppxInfo.Ready2.Label=Complete AppX package information has not been gathered + +[ImgMount] +MountImage.Label=Monter une image +Options.Required.Label=Veuillez spécifier les options pour monter une image : +ImageFile.Label=Fichier de l'image* : +ESD.Label=esd +Convert.File.WIM.Label=Vous devez convertir cette image en fichier WIM pour pouvoir la monter. +Convert.Button=Convertir +SWM.Label=swm +Merge.Swmfiles.Item=Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter. +Merge.Item=Fusionner +MountDirectory.Label=Répertoire de montage* : +Index.Label=Index* : +Fields.End.Required.Label=Les champs se terminant par * sont obligatoires +Source.Group=Source +Destination.Group=Destination +Options.Group=Paramètres +Browse.Button=Parcourir... +Cancel.Button=Annuler +Ok.Button=OK +Index.Column=Index +ImageName.Column=Nom de l'image +ImageDescription.Column=Description de l'image +ImageVersion.Column=Version de l'image +Mount.Read.CheckBox=Montage avec des droits d'accès de lecture seulement +Optimize.Times.CheckBox=Optimiser les temps de montage +Integrity.CheckBox=Vérifier l'intégrité de l'image +Image.Already.Message=Cette image est déjà montée et ne peut pas l'être à nouveau. Si vous souhaitez la monter dans le répertoire souhaité, démontez l'image de son répertoire de montage d'origine (en sauvegardant les modifications si vous le souhaitez) et ouvrez ensuite cette fenêtre de dialogue. + +[ImgMount.Actions] +Convert.Button=Convertir +Convert.Image.WIM.Message=Vous devez convertir cette image en fichier WIM pour pouvoir la monter. +Merge.Swmfiles.Message=Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter. +Swm.Merge.Required.Message=Vous devez fusionner les fichiers SWM en un fichier WIM afin de le monter. + +[ImgMount.GetIndexes] +Gather.ImageFile.Message=Impossible de recueillir des informations sur ce fichier de l'image. Raison :{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgMount.Validation] +Create.Dir.Reason.Message=Impossible de créer un répertoire de montage. Raison : {0}; {1} +MountImage.Title=Monter une image + +[AppxPackages.Add.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Add provisioned AppX packages + +[AppxPackages.Remove.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Remove provisioned AppX packages + +[ImageConversion.WimToEsd] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Drivers.Export] +Class.Name.Message=This class name is not valid. + +[ImageOps.Editions.Set] +DirectoryMissing.Message=Either no directory has been specified or it does not exist. +ProductKey.Message=The product key has been typed incorrectly + +[FFU.Apply.Messages] +Destination.Disk.Message=Make sure that the destination disk is as large or larger than the specified FFU file when mounted. If the destination disk is larger than the FFU's expanded partitions, please extend partitions to their full extent. + +[FFU.Capture.Messages] +Source.Drive.Exist.Label=The specified source drive does not exist. +Source.Drive.Message=The source drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? +Provide.Dest.Path.Label=Please provide a destination path for the FFU file. +Provide.Name.Dest.Label=Please provide a name for the destination FFU file. + +[FFU.Optimize.Messages] +Path.Image.Required.Message=Please specify the path of the image you want to optimize and try again. Also, make sure that that path exists. + +[ImageConversion.SwmToWim] +Get.Index.Image.Label=Could not get index information for this image file + +[ImgSplit] +SplitImages.Label=Diviser les images +Image.Task.Header.Label={0} +Source.Image.Label=Image source à diviser : +Name.Path.Destination.Label=Nom et chemin de l'image divisée de destination : +Maximum.Size.Images.Label=Taille maximale des images fractionnées (en Mo) : +LargeFile.Note.Message=Notez que, pour tenir compte d'un fichier volumineux dans l'image, un fichier d'image divisé peut être plus grand que la valeur spécifiée. +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler +Integrity.CheckBox=Vérifier l'intégrité de l'image +Source.WIM.File.Title=Spécifiez le fichier WIM source à diviser : +Target.Location.Title=Spécifiez l'emplacement cible des images divisées : + +[ImgSplit.Validation] +Name.Required.Message=Veuillez indiquer un nom et un chemin pour le fichier SWM cible et réessayez. Assurez-vous également que le chemin d'accès à la cible existe. +Source.WIM.Required.Message=Veuillez indiquer un fichier WIM source et réessayer. Assurez-vous également qu'il existe. + +[Img.Swm] +MergeSwmfiles.Label=Fusionner des fichiers SWM +Image.Task.Header.Label={0} +SourceSwmfile.Label=Fichier SWM source : +Notewhen.Specifying.Message=NOTE : lorsque vous spécifiez le fichier SWM, choisissez le premier fichier. DISMTools s'occupera des fichiers SWM supplémentaires stockés dans ce répertoire. +Destination.WIM.File.Label=Fichier WIM de destination : +Index.Label=Index : +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler +LearnHow.Link=Apprendre à le faire +Index.Column=Index +ImageName.Column=Nom de l'image +ImageDescription.Column=Description de l'image +ImageVersion.Column=Version de l'image +Source.Swmfile.Title=Spécifier le fichier SWM source à fusionner +Dest.WIM.File.Title=Spécifier le fichier WIM de destination dans lequel fusionner les fichiers SWM sources + +[ImgUMount] +UnmountImage.Label=Démonter une image +Options.Required.Label=Veuillez spécifier les options pour démonter cette image : +Dir.Label=Le répertoire de montage : +MountDirectory.Label=Répertoire de montage : +UnmountOperation.Label=Opération de démontage : +Integrity.CheckBox=Vérifier l'intégrité de l'image +Append.Changes.CheckBox=Ajouter des modifications à un autre index +Pick.Button=Choisir... +Ok.Button=OK +Cancel.Button=Annuler +Dir.Required.Description=Veuillez indiquer un répertoire de montage : +LoadedProject.RadioButton=est chargé dans le projet +LocatedSomewhere.RadioButton=est situé ailleurs +Save.Changes.Unmount.Item=Sauvegarder les modifications et démonter +Discard.Changes.Unmount.Item=Annuler les modifications et démonter +MountDirectory.Group=Répertoire de montage +Additional.Options.Group=Paramètres supplémentaires + +[ImgUMount.Validation] +Dir.Invalid.Message=Le répertoire spécifié n'est pas un répertoire de montage valide. +Dir.Missing.Message=Le répertoire de montage n'existe pas. + +[Img.WIM] +ConvertImage.Label=Convertir l'image +Image.Task.Header.Label={0} +SourceImageFile.Label=Fichier de l'image source : +Format.Converted.Image.Label=Format de l'image convertie : +Destination.ImageFile.Label=Fichier de l'image de destination : +Index.Label=Index : +Format.Ichoose.Link=Quel format dois-je choisir ? +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler +Index.Column=Index +ImageName.Column=Nom de l'image +ImageDescription.Column=Description de l'image +ImageVersion.Column=Version de l'image +Source.Group=Source +Options.Group=Paramètres +Destination.Group=Destination +Source.ImageFile.Title=Spécifiez le fichier de l'image source que vous souhaitez convertir +Target.Image.Stored.Title=Où l'image cible sera-t-elle stockée ? + +[Img.Win] +Service.Windows.Message=Le programme ne peut pas gérer les images de Windows Vista +Unsupported.Message=Ni ce programme ni DISM ne prennent en charge l'entretien des images Windows Vista. DISM est conçu pour gérer les images Windows 7 ou plus récentes. Vous pouvez toujours monter des images Windows Vista, mais toutes les options seront désactivées.{crlf;}{crlf;}Si vous souhaitez toujours entretenir une image Windows Vista, reportez-vous à la rubrique {quot;}Compatibilité avec les anciennes versions de Windows{quot;} dans la documentation d'aide.{crlf;}{crlf;}Voulez-vous continuer ? +Yes.Button=Oui +No.Button=Non + +[ImportDrivers] +Title.Label=Importer des pilotes +Process.Third.Message=Ce processus importera tous les pilotes tiers de la source que vous spécifiez dans cette image ou installation. Cela garantit que l'image cible aura la même compatibilité matérielle que l'image source. +ImportSource.Label=Source d'importation : +Source.Doesn.Tany.Label=Cette source ne dispose pas de paramètres supplémentaires. +Source.Listed.Choose.Label=Choisissez une source dans la liste ci-dessus pour configurer ses paramètres. +Windows.Label=Image Windows à partir de laquelle les pilotes sont importés : +Tuse.Target.Label=Vous ne pouvez pas utiliser la cible d'importation comme source d'importation. +Offline.Drivers.Label=Installation hors ligne à partir de laquelle les pilotes sont importés : +ImageFile.Label=Fichier de l'image : +Pick.Button=Choisir... +Refresh.Button=Actualiser +Ok.Button=OK +Cancel.Button=Annuler +DriveLetter.Column=Lettre de disque +DriveLabel.Column=Étiquette de disque +DriveType.Column=Type de disque +TotalSize.Column=Taille totale +Available.Free.Space.Column=Espace libre disponible +DriveFormat.Column=Format de disque +ContainsWindows.Column=Contient Windows ? +Windows.Column=Version Windows +Windows.Item=Image de Windows +Online.Install.Item=Installation en ligne +Offline.Install.Item=Installation hors ligne + +[IncompleteSetup] +SetupIncomplete.Message=L'installation n'est pas encore terminée et vos paramètres personnalisés ne seront pas sauvegardés. Si vous continuez, le programme utilisera les paramètres par défaut.{crlf;}{crlf;}Voulez-vous continuer ? +Yes.Button=Oui +No.Button=Non + +[InfoSaveResults] +Image.Report.Label=Résultats du rapport d'information de l'image +ReportSaved.Message=Le rapport a été sauvegardé à l'emplacement que vous aviez indiqué et son contenu s'affiche ci-dessous. +SaveReport.Button=Enregistrer le rapport... + +[InfoSaveResults.Actions] +Ok.Button=OK + +[Settings.Dialog] +Detected.Label=Des paramètres non valides ont été détectés +Reset.Default.Message=Les paramètres non valides ont été réinitialisés aux valeurs par défaut. Vérifiez les champs ci-dessous pour plus d'informations : +Ok.Button=OK +Dismexecutable.Exist.Item=L'exécutable DISM spécifié n'existe pas : {crlf;}{quot;}{0}{quot;} +DISM.Executable.Label=Le paramétrage de l'exécutable DISM semble être en ordre +Log.Font.Exist.Item=La fonte spécifiée n'existe pas dans ce système : {crlf;}{quot;}{0}{quot;} +Log.Font.Setting.Label=Le paramètre de la fonte du journal semble être dans l'ordre +Log.File.Exist.Item=Le fichier journal spécifié n'existe pas : {crlf;}{quot;}{0}{quot;} +Log.File.Setting.Label=Le paramètre du fichier journal semble être dans l'ordre +Scratch.Dir.Exist.Item=Le répertoire temporaire spécifié n'existe pas : {crlf;}{quot;}{0}{quot;} +Scratch.Dir.Set.Label=Le paramètre du répertoire temporaire semble être dans l'ordre + +[InvalidSettings] +Found.Label=Le programme a détecté des paramètres non valides + +[MUMAdditionDialog] +Add.Update.Manifest.Label=Ajouter un manifeste de mise à jour +DialogHelp.Message=Cette boîte de dialogue vous permet d'ajouter un fichier Microsoft Update Manifest (MUM) à l'image cible. Vous ne pouvez en spécifier qu'un seul à la fois.{crlf;}{crlf;} +Note.Advanced.Only.Message=Notez que cette opération est réservée à un usage avancé et qu'elle peut compromettre l'image Windows cible. +Path.Manifest.File.Label=Chemin du fichier manifeste à ajouter : +Browse.Button=Parcourir... +Cancel.Button=Annuler +Ok.Button=OK + +[Main] +Props.Label=Propriétés +ProjProps.Label=Propriétés +Getting.Package.Names.Label=Obtention des noms de paquets en cours... +Getting.Feature.Names.Label=Obtention des noms des caractéristiques et de leur état en cours... +Wait.Label=Obtention des noms de paquets en cours... +Get.Cap.Names.Label=Obtention des noms des capacités et de leur état en cours... +Loading.DriverPackages.Label=Obtention des paquets de pilotes installés en cours... + +[Main.ADKCopierBW.Background] +ToolsCopied.Label=Les outils de déploiement ont été copiés dans le projet avec succès. +Deployment.Tools.Aren.Item=Les outils de déploiement ne sont pas présents sur ce système. +Deployment.Tools.Copied.Item=Les outils de déploiement n'ont pas pu être copiés. + +[Main.ADKCopy] +Prepare.Deploy.Tools.Label=Préparation de la copie des outils de déploiement en cours...{0} +Architecture.Label=(architecture {0} de 4) +Copying.Deployment.Label=Copie des outils de déploiement pour l'architecture en cours ({0}, {1}%{2})... +Progress.Architecture.Label=, architecture {0} de 4 + +[Main.Actions] +UnsupportedImage.Message=Cette action n'est pas prise en charge sur cette image + +[Main.BgProcesses] +ImageCompleted.Label=Les processus de l'image sont terminés + +[Main.ChangeImgStatus] +No.Button=Non +Yes.Button=Oui + +[Main.CheckForUpdates] +CheckingUpdates.Link=Vérification des mises à jour en cours... +NewVersion.Available.Link=Une nouvelle version est disponible pour le téléchargement et l'installation. Cliquez ici pour en savoir plus +Learn.Link=Cliquez ici pour en savoir plus + +[Main.CommandLineHelp] +Pass.Arguments.Message=You can pass command line arguments like this:{crlf;}{crlf;} DISMTools.exe {crlf;}{crlf;}The command line arguments that are available to you are the following:{crlf;}{crlf;} /setup{crlf;} Shows the initial setup wizard and reconfigures the program{crlf;} /load={crlf;} Loads a project file. You need to provide an absolute path for a project file, like this:{crlf;} DISMTools.exe /load={quot;}C:\foo\bar.dtproj{quot;}{crlf;} /online{crlf;} Enters the online installation management mode{crlf;} /offline:{crlf;} Enters the offline installation management mode. You need to provide a drive, like this:{crlf;} DISMTools.exe /offline:E:\{crlf;} /migrate{crlf;} Forces setting migration. While you can use this parameter, it should be used by the update system{crlf;} /nomig{crlf;} Skips setting migration. This parameter speeds up testing{crlf;} /noupd{crlf;} Disables update checks. Don't use this parameter unless you're testing a change{crlf;} /exp{crlf;} Enables program experiments if there are any{crlf;}{crlf;}DISMTools will continue starting up after you close this help message. +DISM.Tools.Title=DISMTools command line arguments + +[Main.CopyAsset] +Copied.Clipboard.Label=Le fichier a été copié dans le presse-papiers. +CopySuccessful.Title=Copie du fichier réussie + +[Main.ComputerInfo] +Build.Label=build +SystemMemory.Label=de la mémoire système +UsedOut.Label=utilisé sur +Part.Domain.Label=N'appartient pas à un domaine +PartDomain.Label=Appartient à un domaine +Backup.Domain.Label=Contrôleur de domaine de secours +Primary.Domain.Label=Contrôleur de domaine principal +ConnectedNetwork.Label=Non connecté à un réseau +Manual.Label=Manuel +Automatic.Assigned.Label=Automatique (attribué par DHCP) + +[Main.EndOfflineMgmt] +Bg.Procs.Still.Message=Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ? +Cancelling.Bg.Procs.Button=Annulation des processus en arrière plan en cours. Veuillez patienter ... + +[Main.EndOffline] +Ready.Item=Prêt +Yes.Button=Oui + +[Main.EndOnlineMgmt] +Bg.Procs.Still.Message=Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ? +Cancelling.Bg.Procs.Button=Annulation des processus en arrière plan en cours. Veuillez patienter ... + +[Main.EndOnline] +Ready.Item=Prêt +Yes.Button=Oui + +[Main.GetArguments] +Project.Message=Le projet n’a pas pu être ouvert, car ce fichier n’existe pas :{crlf;}{crlf;}{0}{crlf;}{crlf;}Si le projet a été déplacé, ouvrez son fichier .dtproj depuis son nouvel emplacement. S’il n’a pas encore été créé, recréez le projet et choisissez un dossier dans lequel vous disposez d’un accès en écriture. + +[Main.ExternalTools] +Error.Title=Erreur de lancement de l’outil +NotFound.Message=Impossible de démarrer {0}, car son fichier exécutable est introuvable :{crlf;}{crlf;}{1}{crlf;}{crlf;}Réparez ou réinstallez DISMTools, puis réessayez. +StartFailed.Message=Impossible de démarrer {0}.{crlf;}{crlf;}Raison : {1}{crlf;}{crlf;}Réparez ou réinstallez DISMTools si le problème persiste. + +[Main.ReportManager] +Error.Title=Gestionnaire de rapports +ProjectRequired.Message=Chargez ou créez d’abord un projet DISMTools. Les rapports du projet sont stockés dans le dossier reports du projet. +OpenFailed.Message=Impossible d’ouvrir le dossier des rapports du projet :{crlf;}{crlf;}{0}{crlf;}{crlf;}Raison : {1} + +[Main.SaveProjectAs] +Save.Button=Enregistrer +Unavailable.Message=Enregistrer le projet sous n’est pas disponible, car aucun projet DISMTools standard n’est chargé. Ouvrez ou créez d’abord un projet. +InvalidDestination.Message=Choisissez un autre nom de projet ou emplacement. Un projet ne peut pas être enregistré dans lui-même. +DestinationExists.Message=Le dossier de destination du projet n'est pas vide :{crlf;}{crlf;}{0}{crlf;}{crlf;}Choisissez un autre nom ou emplacement. +OpenCopyFailed.Message=La copie du projet a été créée, mais DISMTools n'a pas pu l'ouvrir :{crlf;}{crlf;}{0} +Error.Message=Impossible d'enregistrer le projet en tant que copie.{crlf;}{crlf;}Destination :{crlf;}{0}{crlf;}{crlf;}Raison :{crlf;}{1} +Error.Title=Enregistrer le projet sous + +[Main.Get.Basic] +Online.Install.Label=(Installation en ligne) +Offline.Install.Item=(Installation hors ligne) +Offline.Install.Label=(Installation hors ligne) + +[Main.GetCapabilities] +Cap.Names.Their.Label=Obtention des noms des capacités et de leur état en cours... + +[Main.GetCapabilities.Actions] +UnsupportedImage.Message=Cette action n'est pas prise en charge sur cette image + +[Main.GetDrivers] +Loading.DriverPackages.Label=Obtention des paquets de pilotes installés en cours... + +[Main.GetFeatures] +Getting.Feature.Names.Label=Obtention des noms des caractéristiques et de leur état en cours... + +[Main.Get.OS] +Days.Go.Back.Message=Vous avez {0} jours pour revenir à l'ancienne version de Windows.{crlf;}{crlf;}Pour augmenter ou réduire cette créneau de désinstallation, allez dans Commandes > Désinstallation du système d'exploitation > Définir la créneau de désinstallation...{crlf;}Pour démarrer le retour en arrière du système d'exploitation, cliquez sur Commandes > Désinstallation du système d'exploitation > Démarrer la désinstallation...{crlf;}Pour supprimer la possibilité de revenir à l'ancienne version, cliquez sur Commandes > Désinstallation du système d'exploitation > Supprimer la possibilité de revenir en arrière... + +[Main.OSUninstallWindow] +OnlineOnly.Message=Cette action est seulement prise en charge par les installations en ligne + +[Main.GetPackages] +Getting.Package.Names.Label=Obtention des noms de paquets en cours... + +[Main.GetProvAppx] +Getting.Package.Names.Label=Obtention des noms de paquets en cours... + +[Main.ProvAppx] +UnsupportedImage.Message=Cette action n'est pas prise en charge sur cette image + +[Main.GetTargetEditions] +CurrentEdition.Message=L'édition actuelle est {quot;}{0}{quot;}{crlf;} +ProductKey.Upgrade.Message=Si vous disposez d'une clé de produit, vous pourrez peut-être mettre à niveau cette image Windows vers une édition supérieure. +Windows.Message=Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures. +Suitable.ProductKey.Message=Si vous disposez d'une clé de produit appropriée, vous pouvez mettre à niveau cette image Windows vers l'une des éditions suivantes :{crlf;}{crlf;} +Image.Cannot.Message=Cette image ne peut pas être mise à niveau vers des éditions supérieures car elle se trouve dans son édition la plus élevée + +[Main.HideChildDescs] +Ready.Label=Prêt +Cancelling.Bg.Procs.Item=Annulation des processus en arrière plan en cours. Veuillez patienter ... + +[Main.HideParentDesc] +Ready.Label=Prêt +Cancelling.Bg.Procs.Item=Annulation des processus en arrière plan en cours. Veuillez patienter ... + +[Main.InitDynaLog] +Beware.Custom.Themes.Title=Attention aux thèmes personnalisés +DISM.Tools.Detected.Message=DISMTools a détecté qu'un thème personnalisé a été défini sur ce système. Certains thèmes personnalisés font que le programme ne s'affiche pas correctement, il est donc recommandé de passer au thème par défaut. + +[Main.StartOSUninstall] +ReadCarefully.Message={0}, veuillez lire attentivement ce message avant de poursuivre.{crlf;}{crlf;}Si vous avez installé des programmes après la mise à niveau, le processus de retour en arrière risque de les supprimer. Assurez-vous d'avoir sauvegardé leurs paramètres au cas où vous devriez les réinstaller ultérieurement. Sauvegardez également vos fichiers au cas où ils seraient affectés par le processus de retour en arrière.{crlf;}{crlf;}Ensuite, ne vous laissez pas bloquer. Si vous avez défini un mot de passe pour votre utilisateur actuel, assurez-vous de le connaître. Sinon, vous risquez de ne pas pouvoir vous connecter.{crlf;}{crlf;}Enfin, merci d'avoir essayé cette version de Windows.{crlf;}{crlf;}Souhaitez-vous démarrer le processus de retour en arrière ? + +[Main.OSUninstall] +OnlineOnly.Message=Cette action est seulement prise en charge par les installations en ligne + +[Main.Interface] +File.Label=&Fichier +Project.Label=&Projet +Commands.Label=Com&mandes +Tools.Label=Ou&tils +Help.Label=&Aide +Settings.Detected.Label=Des paramètres non valides ont été détectés +NewProject.Button=&Nouveau projet... +Open.Existing.Project.Label=&Ouvrir un projet existant +Manage.Online.Install.Label=&Gérer l'installation en ligne +Manage.Ffline.Button=Gérer l'installation &hors ligne... +RecentProjects.Label=Projets récents +SaveProject.Button=&Sauvegarder le projet... +SaveProjectas.Button=Sauvegarder le projet so&us... +Exit.Label=Sor&tir +View.Project.Files.Label=Visualiser les fichiers du projet dans l'explorateur de fichiers +UnloadProject.Button=Décharget le projet... +Switch.Image.Indexes.Button=Changer d'index de l'image... +ProjectProps.Label=Propriétés du projet +ImageProps.Label=Propriétés de l'image +ImageManagement.Label=Gestion des images +OSPackages.Label=Paquets de systèmes d'exploitation +ProvPackages.Label=Paquets de provisionnement +AppxPackages.Label=Paquets AppX +AppMspservicing.Label=Maintenance des applications (MSP) +DefaultApp.Assoc.Label=Associations d'applications par défaut +Languages.Regional.Label=Langues et paramètres régionaux +Capabilities.Label=Capacités +Windows.Label=Éditions Windows +Drivers.Label=Pilotes +Unattended.Answer.Label=Fichiers de réponse non surveillés +WindowsPE.Label=Maintenance de Windows PE +OSUninstall.Label=Désinstallation du système d'exploitation +ReservedStorage.Label=Stockage réservé +Append.Capture.Dir.Button=Ajouter le répertoire de capture à l'image... +ApplyFfusfufile.Button=Appliquer le fichier FFU ou SFU... +ApplyWimswmfile.Button=Appliquer le fichier WIM ou SWM... +Capture.Incremental.Button=Capturer les modifications incrémentales d'un fichier... +Capture.Partitions.Button=Capturer des partitions dans un fichier FFU... +Capture.Image.Drive.Button=Capturer l'image d'un lecteur dans un fichier WIM... +Delete.Resources.Button=Supprimer les resources d'une image corrompue... +Apply.Changes.Image.Button=Appliquer les modifications à l'image... +Delete.VolumeImages.Button=Supprimer les images de volume du fichier WIM... +ExportImage.Button=Exporter l'image... +Get.Image.Button=Obtenir des informations sur l'image... +Get.WIM.Boot.Button=Obtenir les entrées de configuration WIMBoot... +List.Files.Dirs.Button=Lister des fichiers et répertoires dans l'image... +MountImage.Button=Monter l'image... +Optimize.FFU.File.Button=Optimiser le fichier FFU... +OptimizeImage.Button=Optimiser l'image... +Remount.Image.Button=Remonter l'image pour la maintenance... +Split.FFU.File.Button=Diviser un fichier FFU en fichiers SFU... +Split.WIM.File.Button=Diviser un fichier WIM en fichiers SWM... +UnmountImage.Button=Démonter l'image... +Update.WIM.Boot.Button=Mettre à jour de l'entrée de configuration de WIMBoot... +Apply.Siloed.Prov.Button=Appliquer un package de provisionnement en silo... +Save.Image.Button=Sauvegarder les informations de l'image... +GetPackages.Button=Obtenir des informations sur le paquet... +AddPackage.Button=Ajouter un paquet... +RemovePackage.Button=Supprimer le paquet... +GetFeatures.Button=Obtenir des informations sur les caractéristiques... +EnableFeature.Button=Activer la caractéristique... +DisableFeature.Button=Désactiver la caractéristique... +CleanupRecovery.Button=Effectuer des opérations de nettoyage ou de récupération... +Add.Prov.Package.Button=Ajouter un paquet de provisionnement... +Get.Prov.Package.Button=Obtenir des informations sur le paquet de provisionnement... +Apply.CustomData.Button=Appliquer une image de données personnalisée... +Get.App.Package.Button=Obtenir des informations sur les paquets AppX... +Add.Provisioned.App.Button=Ajouter les paquets AppX provisionnées... +Remove.Prov.App.Button=Supprimer le provisionnement pour les paquets AppX... +Optimize.Provisioned.Button=Optimiser les paquets provisionnés... +Add.CustomData.File.Button=Ajouter un fichier de données personnalisé dans les paquets AppX... +Get.App.Patch.Button=Obtenir des informations sur les correctifs de l'application... +Detailed.App.Patch.Button=Obtenir des informations détaillées sur les correctifs des applications... +Basic.Installed.App.Button=Obtenir des informations basiques sur les correctifs des applications installées... +Get.Detailed.Button=Obtenir des informations détaillées sur l'application Windows Installer (*.msi)... +Get.Basic.Windows.Button=Obtenir des informations basiques sur l'application Windows Installer (*.msi)... +Export.Default.Button=Exporter les associations d'applications par défaut... +DefaultApp.Assoc.Button=Obtenir des informations sur l'association d'applications par défaut... +Import.Default.Button=Importer les associations d'applications par défaut... +Remove.Default.Button=Supprimer les associations d'applications par défaut... +Intl.Settings.Button=Obtenir des paramètres et des langues internationaux... +SetUilanguage.Button=Définir la langue de l'interface utilisateur... +Set.Default.Button=Définir la langue de secours par défaut de l’interface utilisateur... +Set.System.Preferred.Button=Définir la langue préférée de l'interface utilisateur du système... +Set.System.Locale.Button=Définir les paramètres linguistiques du système... +Set.User.Locale.Button=Définir les paramètres linguistiques de l'utilisateur... +Set.Input.Locale.Button=Définir la langue d'entrée... +Set.UI.Button=Définir la langue de l'interface utilisateur et les paramètres locaux... +Set.Default.Time.Button=Définir le fuseau horaire par défaut... +Set.Default.Languages.Button=Définir les langues et les locales par défaut... +Set.Layered.Driver.Button=Régler le pilote en couches... +Generate.Lang.Ini.Button=Générer le fichier Lang.ini... +Set.Default.Setup.Button=Définir la langue d'installation par défaut... +AddCapability.Button=Ajouter une capacité... +Export.Capabilities.Button=Exporter les capacités dans le référentiel... +GetCapabilities.Button=Obtenir des informations sur les capacités... +RemoveCapability.Button=Supprimer la capacité... +Get.Edition.Button=Obtenir l'édition actuelle... +Get.Upgrade.Targets.Button=Obtenir des objectifs de mise à niveau... +UpgradeImage.Button=Mettre à jour l'image... +SetProductKey.Button=Définir la clé de produit... +GetDrivers.Button=Obtenir des informations sur le pilote... +AddDriver.Button=Ajouter un pilote... +RemoveDriver.Button=Retirer le pilote... +Export.DriverPackages.Button=Exporter des paquets de pilotes... +Import.DriverPackages.Button=Importer des paquets de pilotes... +Apply.Unattended.Button=Appliquer un fichier de réponse non surveillé... +GetSettings.Button=Obtenir des paramètres... +SetScratchSpace.Button=Définir l'espace temporaire... +Set.Target.Path.Button=Définir le chemin cible... +Get.Uninstall.Window.Button=Obtenir la créneau de désinstallation... +Initiate.Uninstall.Button=Démarrer la désinstallation... +Remove.Roll.Back.Button=Supprimer la possibilité de revenir en arrière... +Set.Uninstall.Window.Button=Définir la créneau de désinstallation... +Set.Reserved.Storage.Button=Définir l'état du stockage réservé... +Get.Reserved.Storage.Button=Obtenir l'état du stockage réservé... +AddEdge.Button=Ajouter Edge... +Add.Edge.Browser.Button=Ajouter le navigateur Edge... +Add.Edge.Web.Button=Ajouter Edge WebView... +ImageConversion.Label=Conversion des images +MergeSwmfiles.Button=Fusionner des fichiers SWM... +Remount.Image.Write.Label=Remonter l'image avec les droits d'écriture +CommandConsole.Label=Console de commande +Unattended.AnswerFile.Label=Gestionnaire de fichiers de réponse sans surveillance +Unattended.Creator.Label=Créateur de fichiers de réponse sans surveillance +Manage.Image.Registry.Button=Gérer les ruches du registre de l'image... +WebResources.Label=Ressources Web +Download.Languages.Button=Télécharger les ISO de langues et de fonctionnalités optionnelles... +Download.FOD.Button=Télécharger les langues et les disques FOD pour Windows 10... +ReportManager.Label=Gestionnaire de rapports +Mounted.Image.Manager.Label=Gestionnaire des images montées +Create.Disc.Image.Button=Créer une image disque... +Create.Testing.Button=Créer un environnement de test... +Config.List.Editor.Label=Éditeur de listes de configuration +Options.Label=Paramètres +HelpTopics.Label=Rubriques d'aide +DISM.Tools.Label=À propos de DISMTools +MoreInfo.Label=Plus d'informations +WhatsThis.Label=Qu'est-ce que c'est ? +Report.Feedback.Opens.Label=Rapport de rétroaction (s'ouvre dans un navigateur web) +Contribute.Help.System.Label=Contribuer au système d'aide +TourActions.Label=Actions de visite guidée +Tour.Server.Active.Label=Le serveur de visite guidée est actif sur le port {0} +RestartTour.Label=Redémarrer la visite guidée +Stop.Tour.Server.Label=Arrêter le serveur de visite guidée +Begin.Label=Commencer +NewProject.Link=Nouveau projet... +Open.Existing.Project.Link=Ouvrir un projet existant... +Manage.Online.Install.Link=Gérer l'installation en ligne +Manage.Offline.Button.Button=Gérer l'installation hors ligne... +RemoveEntry.Link=Supprimer entrée +CloseTab.Label=Fermer l'onglet +SaveProject.Label=Sauvegarder le projet +UnloadProject.Label=Décharger le projet +Unload.Project.Tooltip=Décharger le projet de ce programme +Show.Progress.Window.Label=Afficher la fenêtre de progression +RefreshView.Label=Rafraîchir la vue +Expand.Label=Élargir +NewVersion.Available.Link=Une nouvelle version est disponible pour le téléchargement et l'installation. Cliquez ici pour en savoir plus +Get.Basic.Label=Obtenir des informations basiques (tous les paquets) +Get.Detailed.Specific.Label=Obtenir des informations détaillées (paquet spécifique) +CommitImage.Label=Valider les modifications et démonter l'image +Discard.Changes.Label=Annuler les modifications et démonter l'image +UnmountSettings.Button=Configurer les paramètres de démontage...... +View.Package.Dir.Label=Afficher le répertoire des paquets +Get.ImageFile.Button=Obtenir des informations sur le fichier image... +Save.Complete.Image.Button=Enregistrer les informations complètes sur l'image... +Create.Disc.ImageFile.Button=Créer une image disque avec ce fichier... +Project.File.Load.Title=Spécifier le fichier de projet à charger +MountDir.Description=Veuillez spécifier le répertoire de montage que vous souhaitez charger dans ce projet: +Image.Processes.Label=Les processus de l'image sont terminés +Ready.Label=Prêt +AccessDirectory.Label=Accéder à ce répertoire +Copy.Deployment.Tools.Label=Copier les outils de déploiement +AllArchitectures.Label=De toutes les architectures +Selected.Architecture.Label=De l'architecture sélectionnée +Xarchitecture.Label=Pour l'architecture x86 +Amarkdown.Architecture.Label=Pour l'architecture AMD64 +ARM.Label=Pour l'architecture ARM +ARM64.Label=Pour l'architecture ARM64 +ImageOperations.Label=Opérations sur les images +Remove.VolumeImages.Button=Supprimer les images de volume... +Manage.Label=Gérer +Create.Label=Créer +Configure.Scratch.Dir.Label=Configurer le répertoire temporaire +ManageReports.Label=Gérer les rapports +Add.Button=Ajouter +NewFile.Button=Nouveau fichier... +ExistingFile.Button=Fichier existant... +SaveResource.Button=Sauvegarder les ressources... +CopyResource.Label=Copier la ressource +Visit.Microsoft.Apps.Label=Visiter le site web de Microsoft Apps +Visit.Microsoft.Label=Visiter le site web du projet Microsoft Store Generation +Iget.Apps.Label=Comment puis-je obtenir des applications ? +Welcome.Servicing.Label=Bienvenue à cette session de service +Project.Link=PROJET +Image.Link=IMAGE +Name.Label=Nom : +Location.Label=Lieu : +ImagesMounted.Label=Images montées ? +Mount.Image.Link=Cliquez ici pour monter une image +ProjectTasks.Label=Tâches du projet +View.Project.Props.Link=Voir les propriétés du projet +Open.File.Explorer.Link=Ouvrir dans l'explorateur de fichiers +UnloadProject.Link=Décharger le projet +ImageMounted.Label=Aucune image n'a été montée +Mount.Image.Order.Label=Vous devez monter une image pour pouvoir consulter ses informations. +Choices.Label=Choix +MountImage.Link=Monter une image... +Pick.Mounted.Image.Link=Choisir une image montée... +ImageIndex.Label=Index de l'image : +MountPoint.Label=Répertoire de montage : +Version.Label=Version : +Description.Label=Description : +ImageTasks.Label=Tâches de l'image +View.Image.Props.Link=Voir les propriétés de l'image +UnmountImage.Link=Démonter l'image +ImageOperations.Group=Opérations sur les images +Commit.Changes.Button=Sauvegarder les modifications pendants +CommitImage.Button=Sauvegarder modifications et démonter l'image +Unmount.Image.Button=Démonter l'image en supprimant les modifications +Reload.Servicing.Button=Recharger la session de service +ApplyImage.Button=Appliquer l'image... +CaptureImage.Button=Capturer image... +Package.Operations.Group=Opérations sur les paquets +Get.Package.Button=Obtenir des informations sur le paquet... +Save.Installed.Button=Sauvegarder les informations sur les paquets installés... +Component.Store.Maint.Button=Effectuer la maintenance et le nettoyage du stock de composants... +Feature.Operations.Group=Opérations sur les caractéristiques +Get.Feature.Button=Obtenir des informations sur les caractéristiques... +Save.Feature.Button=Sauvegarder les caractéristiques... +AppX.Package.Operations=Opérations sur les paquets AppX +Add.AppX.Package.Button=Ajouter des paquets AppX... +Get.App.Button=Obtenir des informations sur les applications... +Save.Installed.AppX.Button=Sauvegarder les informations sur les paquets AppX installés... +Remove.AppX.Package.Button=Supprimer des paquets AppX... +Capability.Operations.Group=Opérations sur les capacités +Get.Capability.Button=Obtenir des informations sur les capacités... +Save.Capability.Button=Sauvegarder les informations sur les capacités... +DriverOperations.Group=Opérations sur les pilotes +AddDriverPackage.Button=Ajouter des paquets de pilotes... +Get.Driver.Button=Obtenir des informations sur les pilotes... +Save.Installed.Driver.Button=Sauvegarder les informations sur les pilotes installés... +Windows.Group=Opérations de Windows PE +GetConfig.Button=Obtenir des paramètres... +SaveConfig.Button=Sauvegarder les paramètres... +Yes.Button=Oui +No.Button=Non +Offline.Management.Button=Oui +Rename.Link=Renommer +DomainMembership.Label=Appartenance au domaine : +WorkgroupDomain.Label=Groupe de travail/Domaine : +IP.Address.Config.Label=Configuration de l'adresse IP : +Explore.Get.Started.Label=Découvrir et commencer +Stay.Up.Date.Label=Rester à jour +FactDay.Label=Le fait du jour +Learn.Snew.Link=Découvrez les nouveautés de cette version +Get.Started.DISM.Link=Commencer avec DISMTools et la gestion des images +Manage.Install.Link=Gérer votre installation actuelle +Manage.External.Link=Gérer les installations Windows externes +Learn.Watching.Videos.Label=Apprendre en regardant des vidéos (en anglais) +Video.Content.Loaded.Label=Impossible de charger le contenu vidéo. +News.Feed.Loaded.Label=Impossible de charger le fil d'actualité. +LearnMore.Link=En savoir plus +Retry.Button=Réessayer + +[Main.Links] +Props.Label=Propriétés +ProjProps.Label=Propriétés + +[Main.Messages] +IE.Emulation.Changed.Message=Modified Internet Explorer emulation settings for DISMTools. You will need to restart DISMTools in order to start video playback +DISM.Tools.Modify.Message=DISMTools could not modify Internet Explorer emulation settings. Video playback will not start. +Items.Present.None.Label=No items are present in the Recents list. +Incompatible.Win7.Message=Ce programme n’est pas compatible avec Windows 7 ni Server 2008 R2.{crlf;}Ce programme utilise l’API DISM, qui nécessite des fichiers du Kit de déploiement et d’évaluation (ADK). Toutefois, la prise en charge de Windows 7 n’est pas incluse.{crlf;}{crlf;}Le programme va se fermer. +Requires.NET.Message=Ce programme nécessite .NET Framework 4.8 pour fonctionner.{crlf;}Vous pouvez le télécharger depuis : dotnet.microsoft.com. Installez le framework, puis relancez le programme. Vous devrez peut-être redémarrer votre système.{crlf;}{crlf;}Le programme va se fermer. +Run.Admin.Message=Ce programme doit être exécuté en tant qu’administrateur.{crlf;}Dans certaines configurations logicielles, Windows exécute ce programme sans privilèges administrateur. Vous devez donc les demander manuellement.{crlf;}{crlf;}Cliquez avec le bouton droit sur l’exécutable et sélectionnez {quot;}Exécuter en tant qu’administrateur{quot;} +DISM.Tools.Detected.Message=DISMTools a détecté un paramètre de mise à l’échelle d’affichage élevé. Cela peut entraîner un affichage incorrect du programme.{crlf;}{crlf;}Nous vous recommandons de réduire la mise à l’échelle à 125 % (120 DPI) ou moins, sauf si vous utilisez un petit écran avec une haute résolution. +Higher.Display.Scaling.Title=Paramètre de mise à l’échelle élevé détecté +DISM.Tools.Found.Message=DISMTools a trouvé un possible Kit de déploiement et d’évaluation installé sur votre système. Toutefois, il n’est pas détecté. Voulez-vous corriger cela ? +Possible.ADK.Title=ADK potentiellement installé sur votre système +SafeMode.Prompt=Cet ordinateur a démarré en mode sans échec. Ce mode est conçu pour la récupération directe du système d’exploitation.{crlf;}{crlf;}DISMTools peut charger automatiquement le mode de gestion de l’installation en ligne afin que vous puissiez commencer les réparations.{crlf;}{crlf;}Voulez-vous charger le mode de gestion de l’installation en ligne ? +Windows.Title=Windows est en mode sans échec +Tour.Prompt=Est-ce la première fois que vous utilisez DISMTools ? Si oui, nous pouvons vous aider à démarrer avec la visite guidée.{crlf;}{crlf;}Avec la visite guidée, vous pouvez créer votre première image Windows et la tester ensuite. Vous pouvez la suivre à votre rythme et y accéder à tout moment depuis le menu Aide.{crlf;}{crlf;}Voulez-vous lancer la visite maintenant ? +Getting.Started.DISM.Title=Bien démarrer avec DISMTools +DISM.Tools.Running.Message=DISMTools a détecté qu’il s’exécute sur un système Windows Server Core. Certaines fonctionnalités peuvent ne pas fonctionner comme prévu. +ServerCore.Title=Windows Server Core détecté +Project.DISM.Tools.Label=Le projet spécifié n’est pas un projet DISMTools. +DownloadFailed.Label=Nous n’avons pas pu télécharger l’installation de WIM Explorer. Raison :{crlf;}{0} +PrepareFailed.Label=Nous n’avons pas pu préparer l’installation de WIM Explorer. Raison :{crlf;}{0} +AnswerFile.Removed.Label=Le fichier de réponses a été supprimé avec succès. +BackgroundBusy.Message=Les processus en arrière-plan doivent se terminer avant de charger le gestionnaire de services. +Background.Finish.Message=Les processus en arrière-plan doivent se terminer avant de charger le gestionnaire des variables d’environnement. +Secure.Boot.Enabled.Label=Secure Boot n’est pas activé sur cette machine. +Secure.Boot.Status.Title=État de Secure Boot +Secure.Boot=Secure Boot est activé sur cette machine, mais sa base de données ne contient pas Windows UEFI CA 2023. Assurez-vous que votre ordinateur reçoit les mises à jour de Secure Boot avant l’expiration des certificats Microsoft Windows Production PCA 2011 en juin 2026. +Update.Secure.Boot.Message=Une mise à jour de Secure Boot pour prendre en charge Windows UEFI CA 2023 est en cours. +Secure.Enabled=Secure Boot est activé sur cette machine et sa base de données contient Windows UEFI CA 2023. +Determine.Status.Label=Nous n’avons pas pu déterminer l’état de la mise à jour Windows UEFI CA 2023. + +[Main.Messages.Validation] +Cannot.Load.Project.Message=Impossible de charger le projet. Raison : le projet est introuvable. Il a peut-être été déplacé ou son dossier a été supprimé. +Project.Load.Error.Title=Erreur de chargement du projet + +[Main.News] +LearnMore.Link=En savoir plus +Last.Updated.Label=Dernière mise à jour des actualités : + +[Main.News.Error] +NoDetails.Message=Aucun détail supplémentaire sur l’erreur du flux d’actualités n’est disponible. Essayez d’actualiser le flux d’actualités. + +[Main.News.Load] +Retry.Button=Réessayer + +[Main.OfflineManagement] +OfflineInstall.Label=Installation hors ligne - DISMTools +Install.Label=(Installation hors ligne) +Image.Registry.Message=Le panneau de contrôle du registre des images doit être fermé avant de charger ce mode. +Yes.Button=Oui + +[Main.OnlineManagement.Start] +Install.DISM.Tools.Label=Installation en ligne - DISMTools +Install.Label=(Installation en ligne) +Yes.Button=Oui + +[Main.Project.Load] +LoadingProject.Label=Chargement du projet en cours : {quot;}{0}{quot;} +Project.Label=Projet: {quot;}{0}{quot;} +Adkdeployment.Tools.Label=Outils de déploiement ADK +DeploymentTools.X86.Label=Outils de déploiement (x86) +Deployment.Tools.Label=Outils de déploiement (AMD64) +DeploymentTools.ARM.Label=Outils de déploiement (ARM) +DeploymentTools.ARM64.Label=Outils de déploiement (ARM64) +MountPoint.Label=Point de montage +Unattended.Answer.Label=Fichiers de réponse non surveillés +ScratchDirectory.Label=Répertoire temporaire +ProjectReports.Label=Rapports de projet + +[Main.Project.Load.Guard] +Image.Registry.Message=Le panneau de contrôle du registre des images doit être fermé avant le chargement des projets. + +[Main.Project.Unload] +Bg.Procs.Still.Message=Les processus en arrière-plan sont encore en train de recueillir des informations sur cette image. Voulez-vous les annuler ? +Cancelling.Bg.Procs.Button=Annulation des processus en arrière plan en cours. Veuillez patienter ... +Ready.Item=Prêt + +[Main.ProjectTree.AfterCollapse] +Collapse.Label=Réduire +CollapseItem.Label=Réduire élément +Expand.Item=Agrandir +ExpandItem=Agrandir élément +ExpandCollapse.Item=Agrandir +ExpandTool.ExpandItem=Agrandir élément + +[Main.ProjectTree.AfterExpand] +Collapse.Label=Réduire +CollapseItem.Label=Réduire élément +Expand.Item=Agrandir +ExpandItem=Agrandir élément + +[Main.ProjectTree.AfterSelect] +Collapse.Label=Réduire +CollapseItem.Label=Réduire élément +Expand.Item=Agrandir +ExpandItem=Agrandir élément + +[Main.RegistryPanel] +Control.Active.Message=Ce panneau de contrôle n'est pas disponible sur les installations actives. + +[Main.Registry.Actions] +Load.Project.Mode.Message=Vous devez charger un projet ou un mode pour gérer les ruches du registre. + +[Main.RemoveOSUninstall] +ReadCarefully.Message={0}, veuillez lire attentivement ce message avant de poursuivre.{crlf;}{crlf;}Si vous avez utilisé cette nouvelle version de Windows pendant un certain temps et que vous avez déterminé qu'il n'y a pas de problème, vous pouvez supprimer la possibilité de lancer un retour en arrière.{crlf;}{crlf;}Cette opération ne supprime pas les fichiers de l'ancienne installation ; vous devez donc utiliser l'outil de nettoyage de disque (cleanmgr) si vous souhaitez libérer de l'espace.{crlf;}{crlf;}Voulez-vous supprimer la possibilité de revenir à une ancienne version de Windows ? +OnlineOnly.Message=Cette action est seulement prise en charge par les installations en ligne + +[Main.Run.BgProcesses] +RunningProcesses.Label=Processus en cours +Getting.Basic.Image.Label=Obtention des informations basiques sur l'image en cours... +AdvancedImageInfo.Label=Obtention des informations avancées sur l'image en cours... +Getting.Image.Packages.Label=Obtention des paquets de l'image en cours... +Getting.Image.Features.Label=Obtention des caractéristiques de l'image en cours... +Get.Image.Provisioned.Label=Obtention des paquets AppX (applications de style Metro) provisionnés de l'image en cours... +Get.Image.Features.Label=Obtention de caractéristiques de l'image à la demande (capacités) en cours... +Getting.Image.Drivers.Label=Obtention des pilotes de l'image en cours... +Running.Pending.Tasks.Label=Exécution des tâches en cours. Cela peut prendre un certain temps ... + +[Main.SaveAsset] +Saved.Location.Label=Le fichier a été sauvegardé à l'emplacement que vous avez spécifié. +SaveSuccessful.Title=Sauvegarde du fichier réussie + +[Main.ShowChildDescs] +Adds.Additional.Item=Adds an additional image to a .wim file +Applies.Full.Flash.Item=Applies a Full Flash Utility or split FFU to a physical drive +Applies.Windows.Image.Item=Applies a Windows image or split WIM to a partition +Captures.Incremen.File.Item=Captures incremental file changes on the specific WIM file to {quot;}custom.wim{quot;} +Captures.Image.Drive.Item=Captures an image of a drive's partitions to a new FFU file +Captures.Image.New.Item=Captures an image of a drive to a new WIM file +Deletes.Resources.Item=Deletes all resources associated with a corrupted mounted image +Applies.Changes.Made.Item=Applies the changes made to the mounted image +Deletes.Volume.Image.Item=Deletes a volume image from a WIM file +Exports.Copy.Image.Item=Exports a copy of the image to another file +Displays.Images.Item=Displays information about the images contained in a WIM, FFU, VHD or VHDX file +Displays.List.Wimffu.Item=Displays a list of WIM, FFU, VHD or VHDX images that are currently mounted +Displays.WIM.Boot.Item=Displays WIMBoot configuration entries for the specified disk volume +Displays.List.Files.Item=Displays a list of files and folders in an image +Mounts.Image.Wimffu.Item=Mounts an image from a WIM, FFU, VHD or VHDX to make it available for servicing +Optimizes.Ffuimage.Item=Optimizes a FFU image to make it faster to deploy +Optimizes.Image.Faster.Item=Optimizes an image to make it faster to deploy +Remounts.Mounted.Image.Item=Remounts a mounted image that is inaccessible to make it available for servicing +Splits.Full.Flash.Item=Splits a Full Flash Utility (FFU) file into read-only split FFU (.sfu) files +Splits.Existing.WIM.Item=Splits an existing WIM file into read-only split WIM (.swm) files +Unmounts.Wimffuvhd.Item=Unmounts the WIM, FFU, VHD or VHDX file and either commits or discards its changes +Updates.WIM.Boot.Item=Updates the WIMBoot configuration entry +Applies.Siloed.Prov.Item=Applies siloed provisioning packages to the image +Displays.Message=Displays information about all packages in the image or in the installation or any package file you want to add +Installs.Cabmsu.Package.Item=Installs a .cab or .msu package in the image +Removes.Cabfile.Package.Item=Removes a .cab file package from the image +Displays.Installed.Item=Displays information about the installed features in an image or an online installation +Enables.Updates.Feature.Item=Enables or updates the specified feature in the image +Disables.Feature.Image.Item=Disables the specified feature in the image +Performs.Cleanup.Item=Performs cleanup or recovery operations on the image +Adds.Applicable.Item=Adds an applicable payload of a provisioning package to the image +Gets.Infomation.Prov.Item=Gets infomation of a provisioning package +Dehydrat.Files.Containe.Item=Dehydrates files contained in the custom data image to save space +Displays.App.Item=Displays information about app packages in an image +Addsone.App.Item=Adds one or more app packages to the image +Removes.Prov.App.Item=Removes provisioning for app packages from the image +Optimizes.Total.Size.Item=Optimizes the total size of provisioned app packages on the image +Addscustom.Data.File.Item=Adds a custom data file into the specified app package +Displays.Msppatches.Item=Displays information of MSP patches applicable to the offline image +Command42.Item=Displays information about installed MSP patches +Displays.Item=Displays information about all applied MSP patches for all applications installed on the image +Displays.Specific.Item=Displays information about a specific installed Windows Installer application +Command45.Item=Displays information about all Windows Installer applications in the image +Exports.Default.Item=Exports default application associations from a running OS to an XML file +Displays.List.Item=Displays the list of default application associations set in the image +Imports.Set.DefaultApp.Item=Imports a set of default application associations from an XML file to an image +Removes.Default.Item=Removes default application associations from the image +Displays.Intl.Item=Displays information about international settings and languages +Sets.Default.Uilanguage.Item=Sets the default UI language +Sets.Fallback.Default.Item=Définit la langue de secours par défaut de l’interface utilisateur du système +Sets.System.Preferred.Item=Sets the {quot;}System Preferred{quot;} UI language +Sets.Language.Non.Item=Sets the language for non-Unicode programs and font settings in the image +Sets.Standards.Formats.Item=Sets the {quot;}standards and formats{quot;} language (user locale) in the image +Sets.Input.Locales.Item=Sets the input locales and keyboard layouts to use in the image +Sets.Default.System.Message=Sets the default system UI language, the language for non-Unicode programs, the user locale, and the keyboard layouts to the language in the image +Sets.Default.Time.Item=Sets the default time zone in the image +Sets.Default.Message=Sets the default language for the UI and non-Unicode programs, locales for the user and input, keyboard layouts and time zone values in the image +Specifies.Keyboard.Item=Specifies a keyboard driver for Japanese and Korean keyboards +Generates.Lang.Ini.Item=Generates a Lang.ini file, used by Setup to define the language packs inside the image and out +Defines.Default.Item=Defines the default language that will be used by Setup +Addscapability.Image.Item=Adds a capability to an image +Exports.Set.Caps.Item=Exports a set of capabilities into a new repository +Gets.Installed.Item=Gets information about the installed capabilities of an image or an active installation +Removes.Capability.Item=Removes a capability from the image +Displays.Edition.Image.Item=Displays the edition of the image +Displays.Editions.Image.Item=Displays the editions the image can be upgraded to +Changes.Image.Higher.Item=Changes an image to a higher edition +Enters.ProductKey.Item=Enters the product key for the current edition +Displays.Driver.Message=Displays information about the driver packages you specify or the installed drivers in the image or in the installation +Addsthird.Party.Driver.Item=Adds third-party driver packages to the image +Removes.ThirdParty.Item=Removes third-party drivers from the image +Exports.ThirdParty.Item=Exports all third-party driver packages from the image to a destination path +Imports.ThirdParty.Message=Imports all third-party drivers from a specified source to this image to provide the same hardware compatibility +Applies.Unattend.Item=Applies an Unattend.xml file to the image +Displays.List.Windows.Item=Displays a list of Windows PE settings in the WinPE image +Retrieves.Configured.Item=Retrieves the configured amount of the Windows PE system volume scratch space +Retrieves.Target.Path.Item=Retrieves the target path of the Windows PE image +Sets.Available.Item=Sets the available scratch space (in MB) +Sets.Location.Win.Item=Sets the location of the WinPE image on the disk (for hard disk boot scenarios) +Gets.Number.Days.Item=Gets the number of days an uninstall can be initiated after an upgrade +Reverts.PC.Item=Reverts a PC to a previous installation +Removes.Ability.Roll.Item=Removes the ability to roll back a PC to a previous installation +Sets.Number.Days.Item=Sets the number of days an uninstall can be initiated after an upgrade +Gets.State.Reserved.Item=Gets the current state of reserved storage +Sets.State.Reserved.Item=Sets the state of reserved storage +Adds.Microsoft.Item=Adds the Microsoft Edge Browser and WebView2 component to the image +Command91.Item=Adds the Microsoft Edge Browser to the image +Addsmicrosoft.Edge.Web.Item=Adds the Microsoft Edge WebView2 component to the image +Saves.Complete.Image.Message=Saves complete image information to the file you want. Depending on the settings you had specified, you may be asked some questions during the process +Creates.New.DISM.Item=Creates a new DISMTools project. The current project will be unloaded after creating it +Opens.Existing.DISM.Item=Opens an existing DISMTools project. The current project will be unloaded +Enters.Online.Install.Item=Enters online installation management mode +Saves.Changes.Project.Item=Saves the changes of this project +Saves.Project.Another.Item=Saves this project on another location +Closes.Project.Message=Closes the program. If a project is loaded, you will be asked whether or not you would like to save it +Opens.File.Explorer.Item=Opens the File Explorer to view the project files +Unloads.Project.Message=Unloads this project. If changes were made, you will be asked whether or not you would like to save it +Switches.Mounted.Image.Item=Switches the mounted image index +Launches.Project.Item=Launches the project section of the project properties dialog +Launches.Image.Section.Item=Launches the image section of the project properties dialog +ImageFormat.Item=Performs image format conversion from WIM to ESD and vice versa +Merges.Two.SWM.Item=Merges two or more SWM files into a single WIM file +Remounts.Image.Read.Item=Remounts the image with read-write permissions to allow making modifications to it +Opens.Command.Console.Item=Opens the Command Console +Lets.Manage.Item=Lets you manage unattended answer files for this project +Lets.Manage.Project.Item=Lets you manage project reports +Shows.Overview.Mounted.Item=Shows an overview of the mounted images +Configures.Settings.Item=Configures settings for the program +Opens.Help.Topics.Item=Opens the help topics for this program +Opens.Glossary.Don.Item=Opens the glossary, if you don't understand a concept +Shows.Command.Help.Item=Shows the Command Help, letting you use commands to perform the same actions +Shows.Item=Shows program information +Lets.Report.Feedback.Item=Lets you report feedback through a new GitHub issue (a GitHub account is needed) +Opens.Git.Hub.Message=Opens the GitHub repository containing the help documentation contents, to which you can contribute (a GitHub account is needed) + +[Main.ShowParentDesc] +View.Options.Related.Item=View options related to files, like creating or opening projects +View.Options.Project.Item=View options related to this project, like viewing its properties +View.Options.Image.Item=View options related to image management, deployment and/or servicing +View.Options.Additional.Item=View options related to additional tools, like the Command Console +View.Options.Help.Item=View options related to help topics, glossary, command help and product information + +[Main.Tooltips] +RefreshInfo.Label=Refresh information +Change.Network.Config.Label=Change network configuration +Other.Win.Administ.Label=Other Windows administrative tools +Change.Wallpaper.Label=Click here to change your wallpaper +NetBiosname.Label=NetBIOS name: {lbrace;}0{rbrace;} +Show.New.Fact.Label=Show a new fact + +[Main.UpdateChecker] +Couldn.Tdownload.Message=Nous n'avons pas pu télécharger le vérificateur de mise à jour. Raison :{crlf;}{0} +CheckUpdates.Title=Vérifier les mises à jour du programme + +[Main.UpdateProjProps] +Yes.Button=Oui +No.Button=Non + +[Migration] +Wait.Message=Veuillez patienter pendant que DISMTools migre votre ancien fichier de paramètres pour qu'il fonctionne avec cette version. Cela peut prendre un certain temps. +Wait.Label=Veuillez patienter... + +[Migration.Background] +Loading.Old.Settings.Message=Chargement d'un ancien fichier de paramètres en cours... +Saving.New.Settings.Message=Sauvegarder le fichier des nouveaux paramètres en cours... +Done.Message=Terminé + +[MountDirCreation] +Create.Label=Voulez-vous créer le répertoire de montage ? +Yes.Button=Oui +No.Button=Non + +[MountedImgMgr] +Image.Manager.Item=Gestionnaire des images montées +Overview.Images.Message=Voici une vue d'ensemble des images qui ont été montées sur ce système. Vous pouvez rechercher des informations à leur sujet et effectuer quelques tâches de base. Cependant, pour effectuer des actions sur les images avec ce programme, vous devez charger le répertoire de montage dans un projet : +ImageFile.Column=Fichier image +Index.Column=Index +MountDirectory.Column=Répertoire de montage +Status.Column=État +Read.Write.Column=Droits de lecture/écriture ? +UnmountImage.Button=Démonter l'image +ReloadServicing.Button=Recharger le service +Enable.Write.Button=Activer les droits d'écriture +Open.Mount.Dir.Button=Ouvrir le répertoire de montage +Remove.VolumeImages.Button=Supprimer les images de volume... +LoadProject.Button=Charger dans le projet +Repair.Component.Store.Item=Réparer le stock de composants +Yes.Button=Oui + +[NewProj] +Create.Project.Label=Créer un nouveau projet +Image.Task.Header.Label={0} +Options.Required.Label=Veuillez spécifier les options pour créer un nouveau projet : +Name.Label=Nom* : +Location.Label=Emplacement* : +Fields.End.Required.Label=Les champs se terminant par * sont obligatoires +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler +Project.Group=Projet +Folder.Store.Description=Veuillez sélectionner un dossier pour stocker ce projet : + +[NewProj.Validation] +Dir.Exist.Create.Message=Le répertoire : {crlf;}{quot;}{0}{quot;}{crlf;}n'existe pas. Voulez-vous le créer ? +Create.Project.Dir.Message=Nous n'avons pas pu créer le répertoire du projet pour vous pour les raisons suivantes : {crlf;}{0}; {1} + +[NewTestingEnv] +Status.Message=Statut +Creating.Project.Message=Création du projet. Cela peut prendre un certain temps. Veuillez patienter... +ProjectCreated.Message=Le projet a été créé +Create.Environment.Label=Créer un environnement de test +WizardHelp.Message=Cet assistant va créer un environnement qui vous aidera à tester vos applications sur les environnements de préinstallation Windows.{crlf;}{crlf;} +Re.Ready.Create.Label=Lorsque vous êtes prêt, cliquez sur le bouton Créer. +Env.Architecture.Label=Architecture de l'environnement : +Architecture.Label=Architecture : +Target.Project.Label=Emplacement du projet cible : +Other.Things.Project.Message=Vous pouvez faire d'autres choses pendant la création du projet. Revenez ici à tout moment pour connaître l'état d'avancement du projet. +Browse.Button=Parcourir... +Create.Button=Créer +Cancel.Button=Annuler +Progress.Group=Progrès +Download.Windows.ADK.Link=Télécharger l'ADK Windows +Https.Learn.Message=https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install +ProjectTemplate.Message=Le projet qui sera créé contient une solution modèle compatible avec tous les environnements et ressources pour la création d'applications pour les environnements de préinstallation Windows. Vous pouvez en savoir plus sur ces projets dans le fichier LISEZMOI inclus. + +[NewTestingEnv.Background] +Project.Created.Done.Message=Le projet a été créé avec succès +Failed.Create.Message=Le processus de création de le projet a échoué + +[NewTestingEnv.Links] +Https.Learn.Message=https://learn.microsoft.com/fr-fr/windows-hardware/get-started/adk-install + +[Unattend.Messages] +Requires.Netruntime.Message=Cet assistant nécessite l’installation du runtime .NET 10 pour utiliser la version intégrée du générateur. Vous pouvez le télécharger depuis :{crlf;}{crlf;}dotnet.microsoft.com{crlf;}{crlf;}Si vous ne voulez pas télécharger .NET, vous pouvez télécharger la version autonome du générateur. Le téléchargement peut prendre du temps selon la vitesse de votre connexion réseau.{crlf;}{crlf;}Voulez-vous utiliser la version autonome ? +Netruntime.Missing.Title=Runtime .NET manquant +GeneratorExit.Message=Le générateur de fichier de réponses sans assistance n’a pas pu générer le fichier. Voici le code d’erreur si cela vous intéresse :{crlf;}{crlf;}Code d’erreur : {0} +Generator.Message=Le générateur de fichier de réponses sans assistance n’a pas pu générer le fichier. Voici l’erreur si cela vous intéresse :{crlf;}{crlf;}Erreur : {0} +Reuse.Settings.Ve.Message=Voulez-vous réutiliser les paramètres que vous avez utilisés dans ce fichier de réponses pour le nouveau ? +Load.Project.Order.Label=Vous devez charger un projet pour appliquer ce fichier. +PrepareFailed.Label=Nous n’avons pas pu préparer l’installation autonome d’UnattendGen. Raison :{crlf;}{0} +OpenFile.Label=Impossible d’ouvrir le fichier : {0} +SaveFile.Label=Impossible d’enregistrer le fichier : {0} +ProductKey.Copied.Done.Label=La clé de produit a été copiée dans le Presse-papiers. +Copy.Key.Clipboard.Label=Nous n’avons pas pu copier la clé dans le Presse-papiers. Message d’erreur : {0} +Component.Already.Message=Ce composant est déjà réservé pour une installation correcte du système d’exploitation. Si vous le remplacez par vos données, l’installation du système d’exploitation risque de ne pas donner les résultats attendus. +ComponentUse.Title=Composant utilisé +Cross.Platform.Label=Les versions multiplateformes d’UnattendGen ont été copiées vers {0} +ImportOverwrite.Message=L’importation de ce script remplacera toutes les données existantes dans le script post-installation actuel. Il est préférable de créer une nouvelle entrée avant de continuer. Voulez-vous continuer ? +ProductKey.None.Label=Il n’existe aucune clé de produit pour l’édition {quot;}{0}{quot;}. + +[NewUnattend.Validation] +Gen.Error.Title=Erreur UnattendGen + +[Unattend.Mode] +ExpressMode.Title=Mode express +WizardHelp.Description=Si vous n’avez jamais créé de fichiers de réponses sans assistance, utilisez cet assistant pour en créer un +EditorMode.Title=Mode éditeur +CreateUnattended.Description=Créez vos fichiers de réponses sans assistance à partir de zéro et enregistrez-les où vous voulez + +[Unattend.Progress] +Preparing.Generate.Label=Préparation de la génération du fichier... +Saving.User.Settings.Label=Enregistrement des paramètres utilisateur... +GenerateAnswerFile.Label=Génération du fichier de réponses sans assistance... +Deleting.Temporary.Label=Suppression des fichiers temporaires... +Generation.Completed.Label=La génération est terminée + +[UnattendWizard.Review] +Configs.UnattendAnswer.Label=Configurations actuelles du fichier de réponses sans assistance : + +[Unattend.Tooltips] +Uses.Name.Computer.Message=Utilise le nom de votre ordinateur comme nom d’ordinateur dans le fichier de réponses sans assistance.{crlf;}Utilisez cette option uniquement si le système cible est celui-ci +Attempt.Grab.Message=Cliquez ici pour essayer de récupérer l’édition de l’image actuellement chargée. Cela vous aidera à utiliser une clé de produit adaptée à cette image Windows. +AutoChoose.Message=Choose this option to automatically configure the target location to one of the countries in the European Economic Area (EEA). This will let you{crlf;}configure settings in the target system that you would not be able to when using a region outside the EEA. After Setup is complete, you can reconfigure{crlf;}the region to your current location. +Check.Field.Customize.Label=Check this field to customize this user's display name +RearrangeScripts.Label=Rearrange post-installation scripts... + +[Unattend.Validation] +Arch.Try.Label=Sélectionnez une architecture puis réessayez +ValidationError.Title=Erreur de validation +Computer.Name.Error.Title=Erreur de nom d’ordinateur +Script.Has.None.Label=Aucun script n’a été transmis pour le nom de l’ordinateur +Type.ProductKey.Label=Saisissez une clé de produit puis réessayez +ProductKeyError.Title=Erreur de clé de produit +Type.Product.Label=Saisissez toute la clé de produit puis réessayez +ProductKey.Entered.Ill.Label=La clé de produit saisie :{crlf;}{crlf;}{0}{crlf;}{crlf;}est mal formée. Saisissez-la de nouveau +Problem.One.Message=Un problème concerne un ou plusieurs utilisateurs indiqués. En voici les raisons :{crlf;}{crlf;}{0}{crlf;}{crlf;}Réessayez après avoir corrigé les problèmes mentionnés +User.Accounts.Error.Title=Erreur de comptes utilisateur +Least.One.Account.Message=Au moins un compte doit faire partie du groupe Administrateurs. Configurez les groupes d’utilisateurs en conséquence puis réessayez +Problem.Wireless.Message=Un problème concerne les paramètres sans fil spécifiés. Assurez-vous d’avoir indiqué un nom de réseau puis réessayez +WirelessError.Title=Erreur de réseaux sans fil + +[OS.No] +Troll.Back.Older.Label=Vous ne pouvez pas revenir à une version antérieure +Old.Versions.None.Message=Aucune ancienne version n'a été détectée, car ses fichiers n'ont pas été trouvés. Il se peut que vous possédiez cette version depuis plus longtemps que la fenêtre de désinstallation ne vous le permet, ou que vous ayez supprimé les fichiers de l'ancienne version (pour économiser de l'espace). Vous n'avez rien à faire. +Ok.Button=OK + +[OfflineDriveList] +Disk.Choose.Label=Choisir un disque +Begin.Install.Message=Pour commencer la gestion de l'installation hors ligne, veuillez choisir un disque dans la liste ci-dessous. Cette liste sera mise à jour automatiquement toutes les minutes, ou lorsque vous cliquez sur le bouton Actualiser. +DriveLetter.Column=Lettre de disque +DriveLabel.Column=Étiquette de disque +DriveType.Column=Type de disque +TotalSize.Column=Taille totale +Available.Free.Space.Column=Espace libre disponible +DriveFormat.Column=Format de disque +ContainsWindows.Column=Contient Windows ? +Windows.Column=Version Windows +Refresh.Button=Actualiser +Ok.Button=OK +Cancel.Button=Annuler + +[OneDriveExclusion] +Exclude.User.Label=Exclure les répertoires OneDrive de l'utilisateur +Tool.Help.Exclude.Message=Cet outil vous aidera à exclure les répertoires OneDrive de l'utilisateur dans la liste de configuration sur laquelle vous travaillez. Indiquez simplement le chemin d'accès auquel vous souhaitez appliquer le fichier de la liste de configuration, puis cliquez sur Exclure.{crlf;}{crlf;}REMARQUE : une fois que vous avez exécuté cet outil et exclu les répertoires OneDrive de l'utilisateur, vous ne devez pas utiliser la liste de configuration sur une image autre que celle que vous avez spécifiée ici. Si vous souhaitez utiliser la liste de configuration sur d'autres images, supprimez les répertoires OneDrive de l'utilisateur dans la liste de configuration et exécutez à nouveau cet outil. +Path.Exclude.Label=Chemin d'accès à partir duquel exclure les répertoires OneDrive : +Re.Ready.Label=Lorsque vous êtes prêt, cliquez sur Exclure. +Browse.Button=Parcourir... +Exclude.Button=Exclure +Cancel.Button=Annuler +UserFolderPath.Description=Choisissez un chemin qui contient des répertoires d'utilisateurs : + +[OneDriveExclusion.Folders] +Excluding.User.Label=Exclusion des répertoires OneDrive de l'utilisateur en cours... + +[OneDriveExclusion.Valid] +User.Folders.Label=Les répertoires OneDrive de l'utilisateur ont été exclus et seront ajoutés à la liste de configuration. + +[Options] +Title.Label=Paramètres +Program.Label=Programme +Personalization.Label=Personnalisation +Logs.Label=Journaux +ImageOperations.Label=Opérations sur les images +ScratchDirectory.Label=Répertoire temporaire +ProgramOutput.Label=Sortie du programme +BgProcesses.Label=Processus en arrière plan +FileAssociations.Label=Associations de fichiers +StartupOptions.Label=Paramètres de démarrage +ShutdownOptions.Label=Paramètres de fermeture +Dismexecutable.Path.Label=Chemin d'accès à l'exécutable DISM : +Version.Label=Version : +SaveSettings.Label=Sauvegarder les paramètres sur : +ColorMode.Label=Mode couleur : +Language.Label=Langue: +Settings.Log.Required.Label=Veuillez spécifier les paramètres de la fenêtre d'enregistrement : +Log.Window.Font.Label=Fonte de la fenêtre du journal : +Preview.Label=Aperçu: +Operation.Log.File.Label=Fichier journal des opérations : +Image.Ops.Message=Lorsque vous effectuez des opérations sur les images dans la ligne de commande, spécifiez l'argument {quot;}/LogPath{quot;} pour sauvegarder le journal des opérations sur les images dans le fichier journal cible. +Log.File.Level.Label=Niveau du fichier journal : +QuietOperations.Message=Lors de l'exécution silencieuse d'une opération, le programme masquera les informations et la progression de l'opération. Les messages d'erreur seront toujours affichés.{crlf;}Cette option ne sera pas utilisée pour obtenir des informations, par exemple, sur les paquets ou les caractéristiques.{crlf;}En outre, lors de la maintenance de l'image, votre ordinateur peut redémarrer automatiquement. +Checked.Computer.Message=Lorsque cette option est cochée, l'ordinateur ne redémarre pas automatiquement, même lorsqu'il effectue des opérations en silence. +Scratch.Dir.Required.Label=Veuillez indiquer le répertoire temporaire à utiliser pour les opérations DISM : +ScratchDirectory.Input.Label=Répertoire temporaire: +Space.Left.Selected.Label=Espace restant sur le répertoire temporaire sélectionné : +LogView.Label=Vue du journal : +ExampleReport.Label=Exemple de rapport : +Reports.Allow.Shown.Label=Certains rapports ne permettent pas d'être présentés sous forme de tableau. +Notify.Label=Quand le programme doit-il vous avertir du démarrage de processus en arrière plan ? +Uses.Bg.Procs.Message=Le programme utilise des processus en arrière plan pour recueillir des informations complètes sur l'image, comme les dates de modification, les paquets installés, les caractéristiques présentes, etc. +Manage.File.Assoc.Label=Gérer les associations de fichiers pour les composants DISMTools : +Behavior.OnStartup.Label=Définissez les options que vous souhaitez exécuter au démarrage du programme : +Scratch.Dir.Message=Le programme utilisera le répertoire temporaire fourni par le projet s'il en existe un. Si vous êtes en les modes de gestion de l'installation en ligne ou hors ligne, le programme utilisera son répertoire temporaire. +Secondary.Progress.Label=Style du panneau de progression secondaire : +Settings.Aren.Label=Ces paramètres ne s'appliquent pas aux installations non portables. +Font.Readable.Log.Message=Cette police peut ne pas être lisible sur les fenêtres logiques. Bien que vous puissiez encore l'utiliser, nous recommandons les polices monospaces pour une meilleure lisibilité. +SettingsConsider.Label=Choisissez les paramètres que le programme doit prendre en compte lors de la sauvegarde des informations de l'image : +Browse.Button=Parcourir... +View.DISM.Button=Voir les versions des composants DISM +Set.File.Assoc.Button=Établir des associations de fichiers +AdvancedSettings.Button=Paramètres avancés +Cancel.Button=Annuler +Ok.Button=OK +ResetPreferences.Label=Réinitialiser les préférences +Quietly.Image.Ops.CheckBox=Effectuer des opérations d'image en silence +Skip.System.Restart.CheckBox=Sauter le redémarrage du système +Scratch.Dir.CheckBox=Utiliser un répertoire temporaire +Show.Command.Output.CheckBox=Afficher la sortie de la commande en anglais +Notify.Me.CheckBox=M'avertir lorsque des processus en arrière plan ont démarré +Show.Log.View.CheckBox=Afficher par défaut la vue du journal dans le panneau de progression +Uppercase.Menus.CheckBox=Utiliser des menus en majuscules +Set.Custom.File.CheckBox=Définir des icônes de fichiers personnalisés pour les projets DISMTools +Remount.Mounted.CheckBox=Remonter les images montées nécessitant un rechargement de la session de maintenance +CheckUpdates.CheckBox=Mettre à jour les données +Always.Save.CheckBox=Sauvegardez toujours des informations complètes pour les éléments suivants : +Installed.Packages.CheckBox=Paquets installés +Features.CheckBox=Caractéristiques +Installed.AppX.CheckBox=Paquets AppX installés +Capabilities.CheckBox=Capacités +InstalledDrivers.CheckBox=Pilotes installés +Automatically.Clean.CheckBox=Nettoyer automatiquement les points de montage (lance un processus séparé) +Dismexecutable.Title=Spécifier l'exécutable DISM à utiliser +LogCustomization.Label=Personnalisation du journal +Behavior.OnClose.Label=Définissez les paramètres que vous souhaitez effectuer à la fermeture du programme : +Saving.Image.Item=Sauvegarde des informations de l'image +Enable.Disable.Message=Le programme activera ou désactivera certaines caractéristiques en fonction de ce que la version de DISM prend en charge. Comment cela va-t-il affecter mon utilisation de ce programme, et quelles caractéristiques seront désactivées en conséquence ? +Going.Affect.My=Comment cela va-t-il affecter mon utilisation de ce programme, et quelles caractéristiques seront désactivées en conséquence ? +Learn.Background.Link=Savoir plus sur les processus en arrière plan +Location.Log.File.Title=Spécifier l'emplacement du fichier journal +Modern.RadioButton=Moderne +Classic.RadioButton=Classique +Dyna.Log.Logging.Message=L'enregistrement DynaLog permet de sauvegarder des journaux de diagnostic qui peuvent être utilisés pour aider à résoudre des problèmes de programme, au cas où vous en rencontreriez. Vous pouvez désactiver l'enregistreur en utilisant la bascule ci-dessous, mais ce n'est pas recommandé.{crlf;}{crlf;} +Disable.Logging.Only.Message=Désactivez la journalisation uniquement si elle entraîne une surcharge de performance sur votre ordinateur. En cliquant sur la bascule, vous appliquerez automatiquement ce paramètre. +Default.Op.Logs.Message=Par défaut, les journaux d'opération sont ouverts avec le Bloc-notes en cas d'erreur d'opération. Cependant, si vous souhaitez les ouvrir avec un autre programme, indiquez-le ci-dessous : +Dyna.Log.Logging.Label=Contrôle d'enregistrement DynaLog +Editor.Open.Log.Label=Editeur pour ouvrir les fichiers journaux avec : +SystemEditor.Label=Editeur système +Editor.Title=Spécifier l'éditeur à utiliser +Show.Me.Logs.Link=Montrez-moi où ces journaux sont stockés +Disable.Dyna.Log.CheckBox=Désactiver la journalisation DynaLog +SettingsFile.Item=Fichier des paramètres +Registry.Item=Registre +System.Setting.Item=Utiliser les paramètres du système +LightMode.Item=Mode lumineux +DarkMode.Item=Mode sombre +List.Item=liste +Table.Item=tableau +Every.Time.Project.Item=Chaque fois qu'un projet a été chargé avec succès +Freqs1.Item=Une fois +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +LogPreview.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}{crlf;}------------------------------------------- | --------{crlf;}Feature Name | State{crlf;}------------------------------------------- | --------{crlf;}TFTP | Disabled{crlf;}LegacyComponents | Enabled{crlf;}DirectPlay | Enabled{crlf;}SimpleTCP | Disabled{crlf;}Windows-Identity-Foundation | Disabled{crlf;}NetFx3 | Enabled +Selected.Search.Message=The selected search engine, {1}{2}{1}, exceeds the current AI tolerance setting, {1}{3}{1}. If you continue with this search engine, AI tolerance will be increased after applying the settings.{0}{0}If you decide not to continue with this search engine, DISMTools will use the first search engine that stays within tolerance boundaries.{0}{0}Do you want to continue with this search engine? +Aitolerance.Exceeded.Title=AI Tolerance Exceeded +Auto.Create.Logs.CheckBox=Créer automatiquement des journaux pour chaque opération effectuée +Project.Scratch.RadioButton=Utiliser le répertoire temporaire du projet ou du programme +Custom.Scratch.RadioButton=Utiliser le répertoire temporaire spécifié +ScratchDir.Description=Indiquez le répertoire temporaire que le programme doit utiliser : + +[Options.Actions] +DISM.Components.Message=Le répertoire des composants DISM n'a pas été trouvé. Si vous avez tous les composants dans le même dossier de l'exécutable DISM, veuillez créer un dossier {quot;}dism{quot;} et réessayer. + +[Options.AutoReloadService] +DISM.Tools.Automatic.Label=Service de rechargement automatique des images DISMTools +AutoReload.Description=Ce service recharge automatiquement les sessions de maintenance de toutes les images montées sur cet ordinateur. Vous pouvez le désactiver si vous n’en avez pas besoin. +ServiceInstalled.Label=Le service n’a pas pu être installé. + +[Options.AIRServiceInfo] +Yes.Button=Oui +No.Button=Non + +[Options.GetRootSpace] +Scratch.Dir.Required.Label=Veuillez indiquer un répertoire temporaire. +EnoughSpace.Label=Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné. +GB.Item={0} GB +Enough.Message=Vous ne disposez pas de suffisamment d'espace sur le répertoire temporaire sélectionné pour effectuer des opérations sur les images. Essayez de libérer de l'espace sur le disque +EnoughSpace.SomeOps.Item=Il se peut que vous ne disposiez pas de suffisamment d'espace sur le répertoire temporaire sélectionné pour certaines opérations. +EnoughSpace.Directory.Item=Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné. +Free.Unavailable.Item=Impossible d'obtenir l'espace libre disponible. Poursuivre à vos risques et périls +Have.Enough.Item=Vous disposez de suffisamment d'espace dans le répertoire temporaire sélectionné. + +[Options.LogLevel] +Level1.Label=Erreurs (niveau du journal 1) +Errors.Description.Label=Le fichier journal ne doit afficher les erreurs qu'après l'exécution d'une opération d'image. +Level2.Item=Erreurs et avertissements (niveau de journal 2) +Level2.Description.Item=Le fichier journal doit afficher les erreurs et les avertissements après l'exécution d'une opération d'image. +Level2Messages.Item=Erreurs, avertissements et messages d'information (niveau du journal 3) +Level3.Description.Message=Le fichier journal doit afficher les erreurs, les avertissements et les messages d'information après l'exécution d'une opération d'image. +Level2Debug.Item=Erreurs, avertissements, informations et messages de débogage (niveau du journal 4) +Level4.Description.Message=Le fichier journal doit afficher les erreurs, les avertissements, les informations et les messages de débogage après l'exécution d'une opération d'image. + +[Options.QuickHelp] +DISM.Tools.Enable.Message=DISMTools active ou désactive certaines fonctions si elles ne sont pas compatibles avec l’exécutable DISM indiqué, avec l’image Windows actuelle, ou avec les deux.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Par exemple, si DISMTools détecte une image Windows 7, une version de DISM pour Windows 7, ou les deux, il désactive la maintenance des packages AppX et des fonctionnalités, car elles ne sont pas compatibles avec cette plateforme et ces outils.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}DISMTools peut aussi désactiver des fonctions selon d’autres paramètres de l’image, comme l’édition. Cela arrive généralement avec les images Windows PE. +AppX.Package.Display.Message=Les noms d’affichage des packages AppX correspondent à la partie du nom de famille du package qui ne contient pas de détails propres au package, comme l’architecture, la version ou le hachage de l’éditeur.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Les {lbrace;}1{rbrace;}noms conviviaux{lbrace;}1{rbrace;} des packages AppX sont les noms affichés dans le menu Démarrer. Ils sont lus depuis les informations d’identité de l’application dans le manifeste ou depuis les chaînes intégrées dans resources.pri.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Si DISMTools ne peut pas obtenir le nom convivial, il affiche le nom d’affichage de l’application. +Configure.Search.Message=Lorsque tu configures le moteur de recherche, tu peux choisir le niveau de tolérance de DISMTools envers les fonctions d’intelligence artificielle, AI, du moteur.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Désactiver autant de fonctions AI que possible{lbrace;}1{rbrace;} permet de choisir des moteurs où les fonctions AI sont désactivées ou absentes par défaut.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Me laisser contrôler les fonctions AI de mon moteur de recherche{lbrace;}1{rbrace;} ajoute des moteurs qui ont des fonctions AI activées par défaut, mais contrôlables par paramètres d’URL ou réglages du moteur.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Activer autant de fonctions AI que possible{lbrace;}1{rbrace;} permet de choisir tous les moteurs disponibles, y compris les moteurs basés sur l’AI ou ceux qui mettent en avant des modes AI dédiés.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}En général, la deuxième option est le choix le plus équilibré. Pour une expérience plus axée sur la confidentialité, désactive ces fonctions. +Bg.Procs.Allow.Message=Les processus en arrière plan permettent à DISMTools de collecter des informations sur l’image Windows utilisée et d’activer la plupart des tâches. Par exemple, les packages du système d’exploitation et les fonctionnalités présentes dans une image Windows.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Ces processus ne sont pas utilisés uniquement pour obtenir les informations des fichiers image, mais aussi pour gérer les installations en ligne ou hors connexion. + +[OrphanedMount] +Image.Servicing.Label=Cette image nécessite un rechargement de la session de maintenance +Project.Has.Orphans.Message=Le projet qui a été chargé contient une image orpheline (une image qui doit être remontée){crlf;}L'image sera remontée lorsque vous cliquerez sur {quot;}OK{quot;}. Cela ne devrait pas affecter vos modifications de l'image et ne devrait pas prendre beaucoup de temps.{crlf;}{crlf;}NOTE: si vous cliquez sur {quot;}Annuler{quot;}, le projet sera déchargé. +Ok.Button=OK +Cancel.Button=Annuler + +[PECustomizer.Tooltips] +DefaultPolicies.Message=Default policies allow you to make the settings you specify here permanent.{crlf;}This also includes any wallpapers you specify here. + +[PEHelper.Main] +WhatWant.Label=What do you want to do? +StartServer.Label=Start a PXE Helper Server for Network Installation +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartServer.Network.Link=Start a PXE Helper Server for Network Installation +Prepare.System.Image.Link=Prepare System for Image Capture +Back.Button=Retour +Explore.Contents.Disc.Link=Explore contents of this disc +StartServer.Fog.Link=Start PXE Helper Server for FOG +StartServer.Wds.Link=Start PXE Helper Server for Windows Deployment Services +Copy.Boot.Image.Link=Copy boot image to WDS server... +Exit.Button=Quitter + +[PEHelper.Restart] +Warning.Message=Cette opération va redémarrer votre ordinateur. Vérifiez qu’il est configuré pour démarrer depuis le support d’installation. Voulez-vous le redémarrer ? + +[PEHelper.Process] +ExitCode.Message=Le processus s’est terminé avec le code 0x{0} :{crlf;}{crlf;}{1} + +[PEHelper.PXE] +ChangePort.Tooltip=Maintenez la touche MAJ enfoncée pour modifier le port utilisé par ce serveur d’assistance PXE + +[ISOFiles.PECustomizer] +PoliciesSaved.Message=Policies could not be saved. +Wallpaper.Exist.Message=The specified wallpaper does not exist. +Wallpaper.Supported.Message=The specified wallpaper is not supported. Only JPG files are supported. +WallpaperOverride.Message=By continuing with this wallpaper you will be overriding a background you may have already stored in your user data folder. That background will be reused the next time you launch DISMTools. + +[Panels.ImageOps.WimToEsd] +Files.Filter=files|*. + +[Panels.ImageOps.ExportImage] +Esdfiles.Filter=ESD files|*.esd + +[Panels.ImageOps.MountImage] +WIM.Files.Filter=WIM files|*.wim + +[Panels.Packages.Add] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation + +[Panels.Packages.Remove] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation +CurrentLimit.SecondMessage=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.SecondDetail=Current program limitation + +[Panels.Unattend.Scripts] +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd +Power.Shell.Filter=PowerShell Scripts|*.ps1 +AllFiles.Filter=All Files|*.* +AllFiles.SecondFilter=All Files|*.* + +[ConfigLists.AddEntry] +Start.Backslash.Message=The entry can't start with a backslash if it contains wildcard characters + +[Options.Messages] +Dismexecutable.Path.Message=The DISM executable path was not specified. Please specify one and try again +DISM.Executable.Message=The DISM executable does not exist in the file system. Please verify the file still exists and try again +Log.File.Label=The log file was not specified. Please specify one and try again +Tried.Create.Message=The program tried to create the specified log file, but has failed. Please try again +ScratchDir.Message=The scratch directory was not specified. Please specify one and try again +ServiceEnabled.Label=The service could not be enabled. +ServiceDisabled.Label=The service could not be disabled. +ServiceRemoved.Label=The service could not be removed. +Tried.Scratch.Message=The program tried to create the specified scratch directory, but has failed. Please try again + +[ISOFiles.Creator.Messages] +Windows.Message=The Windows ADK was not found on your system. Do you want DISMTools to download and install the latest one for you? Note that you'll need around 4 GB on your system. + +[ISOFiles.WDSImageGroup] +Image.Label=The specified WDS image group could not be created. +Get.Image.Groups.Label=Could not get image groups. + +[PECustomizer.Messages] +Default.Policies.Saved.Label=Default policies have been saved. +Policies.SaveFailed.Message=Default policies could not be saved. + +[ISOFiles.PXEServerPort] +Already.Label=The specified port, {0}, is already in use. +Port.Label=The specified port, {0}, is not in use. + +[ImageOps.Append.Messages] +Grab.Last.Image.Label=Could not grab last image name. Error information:{crlf;}{crlf;}{0} + +[ImageOps.Capture.Messages] +Provide.Source.Dir.Label=Please provide a source directory or drive to capture. +SourcePrepWarning.Message=The source directory or drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? + +[ImageOps.Export.Messages] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Mount.Messages] +Copied.Image.Message=The copied installation image will be selected automatically for you, if found... +Extraction.Succeeded.Label=Extraction succeeded +Windows.Message=The Windows images in the specified ISO file were not copied to your local disk. Copy any WIM or ESD files from the sources folder of your ISO file. +Extraction.Succeeded.Message=Extraction succeeded + +[ImageOps.Optimize.Messages] +Mount.Dir.Required.Message=Please specify the mount directory of the image you want to optimize and try again. Also, make sure that that path exists. + +[Package.Parent] +Installed.Package.Label=Noms des paquets installés +Installed.Package.Names=Noms des paquets installés dans l'image montée : +Name.ParentPackage.Label=Nom du paquet parent : +Get.Package.Names.Label=Obtention des noms des paquets en cours. Veuillez patienter... +Ok.Button=OK +Cancel.Button=Annuler + +[PkgNameLookup.Validation] +Package.Required.Message=Veuillez spécifier un nom de paquet et réessayer. +Installed.Package.Title=Noms des paquets installés +Package.Seem.Message=Le nom du paquet spécifié ne semble pas figurer dans l'image. Veuillez spécifier une entrée disponible et réessayer + +[Wait] +NotAvailable.Label=Not available +ProjectValue.Label=Not available +Wait.Label=Veuillez patienter... + +[MountedImagePicker] +Ok.Button=OK +Cancel.Button=Annuler + +[MountedImagePicker.Pick] +Title.Label=Choisir l'image +Image.List.Label=Choisissez une image dans la liste ci-dessous : +ImageFile.Column=Fichier de l'image +Index.Column=Index +MountDirectory.Column=Répertoire de montage + +[PrgAbout] +AboutProgram.Label=À propos de ce programme +DISM.Tools.Version.Label=DISMTools - version {0}{1} +DISM.Tools.Lets.Label=DISMTools vous permet de déployer, de gérer et d'entretenir des images Windows en toute simplicité, grâce à une interface graphique. +ResourcesUsed.Label=Ces ressources et éléments ont été utilisés pour la création de ce programme : +Resources.Label=Ressources +Fluency.Label=Fluency +Sqlserver.Icon.Color.Label=Icône SQL Server (Color) +Utilities.Label=Outils +Zip.Label=7-Zip +Help.Documentation.Label=Documentation d'aide +Command.Help.Source.Label=Source d'aide à la commande +Scintilla.Netnu.Get.Label=Scintilla.NET (paquet NuGet) +Pre.Label=pre +BuiltMsbuild.Label=Construit le {0} par msbuild +Managed.Dismnu.Get.Label=ManagedDism (paquet NuGet) +BrandingAssets.Label=Les atouts de la marque +Windows.Label=Windows Home Server 2011 +Credits.Link=CRÉDITS +Licenses.Link=LICENCES +Whatsnew.Link=QUOI DE NEUF +Icons.Link=Icons8 +VisitWebsite.Link=Site web +Microsoft.Link=Microsoft +Ok.Button=OK +CheckUpdates.Label=Vérifier les mises à jour + +[PrgAbout.Resources] +DISM.Tools.Free.Message=- DISMTools{crlf;}{crlf;}This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or at your option any later version.{crlf;}{crlf;}This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. {crlf;}{crlf;}You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.{crlf;}{crlf;}- Scintilla.NET{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2017, Jacob Slusser, https://github.com/jacobslusser,{crlf;}Copyright (c) 2020-2022 VPKSoft{crlf;}Copyright (c) 2023 desjarlais{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- ManagedDism{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2016{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- DarkUI{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2017 Robin{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- 7-Zip{crlf;}{crlf;} 7-Zip{crlf;} ~~~~~{crlf;} License for use and distribution{crlf;} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{crlf;}{crlf;} 7-Zip Copyright (C) 1999-2025 Igor Pavlov.{crlf;}{crlf;} The licenses for files are:{crlf;}{crlf;} - 7z.dll:{crlf;} - The {quot;}GNU LGPL{quot;} as main license for most of the code{crlf;} - The {quot;}GNU LGPL{quot;} with {quot;}unRAR license restriction{quot;} for some code{crlf;} - The {quot;}BSD 3-clause License{quot;} for some code{crlf;} - The {quot;}BSD 2-clause License{quot;} for some code{crlf;} - All other files: the {quot;}GNU LGPL{quot;}.{crlf;}{crlf;} Redistributions in binary form must reproduce related license information from this file.{crlf;}{crlf;} Note:{crlf;} You can use 7-Zip on any computer, including a computer in a commercial{crlf;} organization. You don't need to register or pay for 7-Zip.{crlf;}{crlf;}{crlf;}GNU LGPL information{crlf;}--------------------{crlf;}{crlf;} This library is free software; you can redistribute it and/or{crlf;} modify it under the terms of the GNU Lesser General Public{crlf;} License as published by the Free Software Foundation; either{crlf;} version 2.1 of the License, or (at your option) any later version.{crlf;}{crlf;} This library is distributed in the hope that it will be useful,{crlf;} but WITHOUT ANY WARRANTY; without even the implied warranty of{crlf;} MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU{crlf;} Lesser General Public License for more details.{crlf;}{crlf;} You can receive a copy of the GNU Lesser General Public License from{crlf;} http://www.gnu.org/{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 3-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 3-clause License{quot;} is used for the following code in 7z.dll{crlf;} 1) LZFSE data decompression.{crlf;} That code was derived from the code in the {quot;}LZFSE compression library{quot;} developed by Apple Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;} 2) ZSTD data decompression.{crlf;} that code was developed using original zstd decoder code as reference code.{crlf;} The original zstd decoder code was developed by Facebook Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;}{crlf;} Copyright (c) 2015-2016, Apple Inc. All rights reserved.{crlf;} Copyright (c) Facebook, Inc. All rights reserved.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 3-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}3. Neither the name of the copyright holder nor the names of its contributors may{crlf;} be used to endorse or promote products derived from this software without{crlf;} specific prior written permission.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 2-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 2-clause License{quot;} is used for the XXH64 code in 7-Zip.{crlf;}{crlf;} XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.{crlf;}{crlf;} Copyright (c) 2012-2021 Yann Collet.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 2-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}unRAR license restriction{crlf;}-------------------------{crlf;}{crlf;}The decompression engine for RAR archives was developed using source{crlf;}code of unRAR program.{crlf;}All copyrights to original unRAR code are owned by Alexander Roshal.{crlf;}{crlf;}The license for original unRAR code has the following restriction:{crlf;}{crlf;} The unRAR sources cannot be used to re-create the RAR compression algorithm,{crlf;} which is proprietary. Distribution of modified unRAR sources in separate form{crlf;} or as a part of other software is permitted, provided that it is clearly{crlf;} stated in the documentation and source comments that the code may{crlf;} not be used to develop a RAR (WinRAR) compatible archiver.{crlf;}{crlf;}--{crlf;}{crlf;}{crlf;}- UnpEax{crlf;}{crlf;}This software uses a modified version of UnpEax, now designed to extract only the AppX manifest file and Store logo assets, and converted to .NET Framework 4.8 and C# 5 to make it compatible with Visual Studio 2012 and newer.{crlf;}{crlf;}Original version: (c) 2020. LioneL Christopher Chetty (https://github.com/dalion619/UnpEax){crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2020 LioneL Christopher Chetty{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Unattended answer file generator{crlf;}{crlf;}The unattended answer file creation wizard is based on the technology of Christoph Schneegans' answer file generator website, with some modifications made to some files of its core library.{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2024 Christoph Schneegans{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Markdig{crlf;}{crlf;}Copyright (c) 2018-2019, Alexandre Mutel{crlf;}All rights reserved.{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}- Compilation scripts for the PE Helper{crlf;}{crlf;}The compilation and pre-processor scripts for the Preinstallation Environment (PE) Helper are modified copies of such scripts from the Windows Utility (https://github.com/ChrisTitusTech/winutil). Original license:{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2022 CT Tech Group LLC{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Windows API Code Pack{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2009 - 2010 Microsoft Corporation, then modifications by Jacob Slusser 2014, Peter William Wagner 2017 - 2024{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- INI File Parser{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2008 Ricardo Amores Hernández{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Active Directory Object Picker{crlf;}{crlf;}Microsoft Public License (MS-PL){crlf;}{crlf;}The initial project was originally created by Armand du Plessis in 2004 and now is extended and maintained by Tulpep.{crlf;}{crlf;}This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.{crlf;}{crlf;}1. Definitions{crlf;}The terms {quot;}reproduce,{quot;} {quot;}reproduction,{quot;} {quot;}derivative works,{quot;} and {quot;}distribution{quot;} have the same meaning here as under U.S. copyright law.{crlf;}A {quot;}contribution{quot;} is the original software, or any additions or changes to the software.{crlf;}A {quot;}contributor{quot;} is any person that distributes its contribution under this license.{crlf;}{quot;}Licensed patents{quot;} are a contributor's patent claims that read directly on its contribution.{crlf;}{crlf;}2. Grant of Rights{crlf;}(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.{crlf;}(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.{crlf;}{crlf;}3. Conditions and Limitations{crlf;}(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.{crlf;}(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.{crlf;}(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.{crlf;}(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.{crlf;}(E) The software is licensed {quot;}as-is.{quot;} You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. +PreviewChanges.Message=Overall changes:{crlf;}{crlf;}-- Bugfixes in preview releases{crlf;}{crlf;}- Fixed an issue where removed features would appear in the wrong place{crlf;}- Fixed a minor UI issue where the proper user principal name (UPN) would not be shown when selecting a user in the ADDS domain join wizard{crlf;}- Fixed a minor UI issue where the NT logon path of a domain user would not be shown when launching the ADDS domain join wizard for the first time{crlf;}- Fixed some HiDPI issues{crlf;}- Fixed an issue where, when managing the active installation, the version's revision number would sometimes not coincide with the actual revision number{crlf;}- Fixed an issue where information about a Windows image would be cleared after adding or removing packages{crlf;}- Fixed an issue where the program would throw an exception if it couldn't create the logs directory (#344, thanks @Low351){crlf;}- Fixed an issue where GraphoView would not display information about a selected Windows image if the WDS group it belongs to only has 1 image{crlf;}- Fixed an issue where capture compression type options were not being used when performing FFU captures{crlf;}- Fixed an issue where the program would throw an exception when performing multiple driver exports by class name{crlf;}- Fixed an exception (#350, thanks @TackleBarry80){crlf;}- Registry hives that were unloaded externally no longer cause errors when unloading them from the image registry control panel{crlf;}- Non-PowerShell-based endpoints no longer throw CORS issues when calling WDS Helper Server APIs{crlf;}- Fixed an issue where App Installer download errors would not appear in the foreground{crlf;}- Fixed an issue where tutorial videos would not be playable{crlf;}- The WDS Helper client message for downloading unattended answer files no longer shows at all times{crlf;}- Fixed an issue where the program would throw an exception when saving Windows PE configuration of an offline Windows PE installation{crlf;}- Fixed an issue where the full date string was not displaying correctly when accessing image properties with Windows representations of dates turned off{crlf;}- When adding a boot image to the WDS server, the service start is now requested only when it is not running{crlf;}- Fixed an exception that would happen when adding certain AppX packages (#365, #366, thanks @charlezmmonroe-byte){crlf;}{crlf;}-- New features{crlf;}{crlf;}- The Sysprep Preparation Tool has seen support for `CopyProfile` and can now remove AppX packages from the reference system{crlf;}- Guards have been added to prevent running the PE Helper on a PXE environment, and to warn when running the PXE Helpers on a non-PXE environment{crlf;}- The autorun menu now has options to browse disc contents and copy the boot image to a WDS server{crlf;}- The DISMTools Preinstallation Environment can now be configured via policies{crlf;}- You can now view images and groups in a WDS server graphically{crlf;}- When launching the Driver Installation Module, the Preinstallation Environment can now tell you the hardware IDs of unknown devices{crlf;}- HotInstall can now export SCSI adapters to install them in the DTPE image{crlf;}- If a non-sysprepped volume is selected in the image capture script, it will now warn you{crlf;}- A new task has been added to copy installation images to a Windows Deployment Services (WDS) server{crlf;}- From the Autorun application you can now specify the WDS image group to upload the image to{crlf;}- The Autorun application and HotInstall have seen HiDPI improvements{crlf;}- Partition table overrides can now be used when deploying images with the WDS Helper{crlf;}- PXE Helper Servers can now be started using a different port by holding down SHIFT and performing an action in the following places:{crlf;} - From the Autorun application{crlf;} - From the Tools > Start PXE Helper Server for... menu in the main program{crlf;}- The architecture for the WDS boot image is now picked graphically{crlf;}- The default set of DISMTools Preinstallation Environment backgrounds has been overhauled{crlf;}- The WDS Helper Client now detects the assigned volume letter for the image share more reliably{crlf;}- ISO file creation results are now displayed in a notification{crlf;}- You can now configure the keyboard layout in the Preinstallation Environment graphically{crlf;}- If the Sysprep Preparation Tool was invoked before capturing the image, temporary files and boot entries are now removed if the capture succeeds. The resulting Windows image will still not contain any of those items{crlf;}- The version reporter watermark in the DISMTools Preinstallation Environment can now detect when the environment has booted via a network{crlf;}- The PE Helper can now include your target system's essential drivers (storage controllers and network adapters) in the DISMTools Preinstallation Environment{crlf;}- The ISO creation wizard will let you specify a save location if you clicked OK without having specified one{crlf;}- You can now specify scripts written in VBScript and JScript{crlf;}- The {quot;}Enable Batch script file locks{quot;} starter script has been introduced{crlf;}- The {quot;}Remove MAX_PATH length limit{quot;} starter script has been introduced{crlf;}- The {quot;}Show and Hide System Desktop icons{quot;} starter script has been introduced{crlf;}- The {quot;}Set File Explorer Launch Folder{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Windows Admin Center/Azure Arc banner{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Shutdown Event Tracker{quot;} starter script has been introduced{crlf;}- The {quot;}Refresh Windows Explorer{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Start Menu Appearance{quot;} starter script has been introduced{crlf;}- The {quot;}Disable warnings for unsigned RDP files{quot;} starter script has been introduced{crlf;}- The {quot;}Configure PowerShell execution policy{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Power Plan Values{quot;} starter script has been introduced{crlf;}- The {quot;}Invoke Windows Utility Configuration{quot;} starter script has been updated{crlf;}- The {quot;}Restore classic context menu in Windows 11{quot;} starter script has been introduced{crlf;}- The Starter Script Editor has seen several improvements:{crlf;} - The Starter Script Editor has received dark mode support{crlf;} - The Starter Script Editor now detects read-only starter scripts and removes such attribute when saving them{crlf;} - Spacing in script code can now be normalized{crlf;}- Organizational units and users in OUs are now sorted alphabetically in the ADDS domain join wizard{crlf;}- The ADDS domain join wizard will now let you continue if you had selected an account that does not require a password{crlf;}- A task has been added to copy a pre-configured answer file to an image so that it boots to Audit mode automatically{crlf;}- The ADDS domain join wizard has seen a couple of improvements:{crlf;} - The wizard will no longer let you continue when you specify a domain account that does not exist{crlf;} - You can now test domain name resolution by invoking nslookup{crlf;} - You can now pick account objects from anywhere in your domain{crlf;}- When applying answer files you can now choose whether to copy them to the target image's Sysprep folder{crlf;}- You can now enlarge the preview area for starter script code{crlf;}- You can now configure account display names independently from account names{crlf;}- Post-installation scripts can now be reordered{crlf;}- Batch scripts with NT extensions are no longer supported{crlf;}- Service information can now be saved to a report, whether you manage a Windows image or an installation{crlf;}- Services can now be removed{crlf;}- The image information saver is now run asynchronously{crlf;}- When information about a package file can't be obtained, DISMTools will now continue processing the rest of the queue{crlf;}- Filter assistants have been added to the feature, capability, and driver information dialogs to allow you to build queries more easily{crlf;}- A new automatic image reload service is now included, to let you have all your images reloaded on system startup{crlf;}- You can now export drivers by class name{crlf;}- Image capture tasks will now warn you when source installations have not been prepared with Sysprep{crlf;}- A new task has been added to optimize Windows images{crlf;}- Support for Full Flash Utility (FFU) has been introduced. Variations of the image application, capture, split, and optimization have been introduced with FFU support{crlf;}- From the project view you can now perform commit operations to FFU files using a workaround{crlf;}- You can now get installed driver information from Windows 7 images{crlf;}- Projects and installation management modes now load and unload much faster{crlf;}- Removing provisioned AppX packages from the online installation management mode is much more reliable now{crlf;}- You can now access WIM and FFU variants of the image capture and application tasks much more easily{crlf;}- After extracting images from ISO files, the program will now let you select the most suitable installation image from it{crlf;}- You can now view information specific to FFU files when viewing mounted image properties{crlf;}- When downloading packages from App Installer files you can now copy the URLs to the main application package{crlf;}- When exporting drivers by class name or when filtering installed drivers by class name, you can now choose from third-party classes provided by third-party drivers in your Windows image or installation{crlf;}- You can now export drivers from Windows 7 images and installations{crlf;}- Saving service changes is much faster now{crlf;}- Questions asked by the image information saver are no longer asked in the background{crlf;}- FFU file commit operations are now carried out when saving changes to mounted FFU files after performing image tasks such as adding packages or enabling features{crlf;}- An option has been added to prevent the machine from sleeping while performing image operations{crlf;}- Help documentation has seen a major visual refresh{crlf;}- File associations are now set for the Starter Script Editor{crlf;}- The home screen has seen a visual overhaul{crlf;}- 7-Zip has been updated to version 26.01{crlf;}- CODE: setting load and save functionality has been revamped{crlf;}- The Starter Script Editor and the theme designer can now be invoked from the Tools menu{crlf;}- In portable installations, file associations can now be toggled for the Starter Script Editor{crlf;}- The DynaLog log viewer has received support for event log filters{crlf;}- Date properties can now be displayed in a Windows-native format{crlf;}- Markdig has been updated to version 1.3.1{crlf;}- Scintilla.NET has been updated to version 6.1.2{crlf;}- The managed DISM API has been updated to version 6.0.0{crlf;}- Windows API Code Pack has been updated to version 8.0.15.2{crlf;}{crlf;}-- Removed features{crlf;}{crlf;}- The WDS preparation script has been removed in favor of the WDS Helper{crlf;}{crlf;}Changes made since last preview:{crlf;}{crlf;}-- Bugfixes{crlf;}{crlf;}- Fixed accuracy issues when performing Windows UEFI CA 2023 readiness checks on systems that were deployed using updated boot loaders{crlf;}- Fixed an issue where background processes would fail with {quot;}The parameter is incorrect{quot;} in some cases{crlf;}{crlf;}-- New features{crlf;}{crlf;}- UnattendGen has been updated to the latest version, now requiring .NET 10{crlf;}- The news feed previewer has seen several improvements{crlf;}- The Preinstallation Environment Helper now detects answer files created by Rufus, and lets you act on answer file conflicts + +[PrgAbout.Tooltip] +Text1.Label=Consultez le subreddit officiel du projet +Join.Coding.Wonders.Label=Inscrivez-vous au serveur Discord de CodingWonders Software +Project.MDL.Label=Consultez les discussions sur le projet sur les forums de My Digital Life +Project.GitHub.Label=Consultez le dépôt du projet sur GitHub + +[PrgAbout.UpdateCheck] +Couldn.Tdownload.Message=Nous n'avons pas pu télécharger le vérificateur de mise à jour. Raison :{crlf;}{0} + +[PrgSetup] +Set.Up.DISM.Label=Configurer DISMTools +Welcome.DISM.Tools.Label=Bienvenue à DISMTools +DISM.Tools.Free.Message=DISMTools est une interface graphique libre et gratuite pour les opérations DISM. Pour commencer à configurer les choses, cliquez sur Suivant. +Yours.Customize.Message=Faites-le vôtre. Personnalisez ce programme à votre guise et cliquez sur Suivant. Ces paramètres peuvent être configurés à tout moment dans la section {quot;}Personnalisation{quot;} de la fenêtre des paramètres. +CustomizeProgram.Label=Personnaliser ce programme +ColorMode.Label=Mode couleur : +Language.Label=Langue : +Log.Window.Font.Label=Fonte de la fenêtre du journal : +LogFile.Label=Fichier journal : +Log.Settings.Message=Spécifiez les paramètres du journal et cliquez sur Suivant. En fonction du niveau de contenu spécifié, nous enregistrerons plus ou moins d'informations. Ce paramètre peut être configuré à tout moment dans la section {quot;}Journaux{quot;} de la fenêtre des paramètres. +Log.Label=Que devons-nous enregistrer lorsque vous effectuez une opération ? +Anything.Like.Label=Souhaitez-vous configurer autre chose ? +Settings.Available.Message=Les paramètres disponibles sont plus nombreux que ceux que vous venez de configurer. Si vous souhaitez en modifier d'autres, cliquez sur le bouton ci-dessous. Nous rendrons également ces paramètres persistants. +Perform.Steps.Time.Label=Vous pouvez effectuer ces démarches à tout moment. +Done.Setting.Up.Message=Vous avez fini de configurer les bases pour utiliser DISMTools comme vous le souhaitiez. Cliquez sur {quot;}Finir{quot;}, et nous rendrons vos paramètres persistants. +SetupComplete.Label=La configuration est terminée +Ve.Set.Things.Label=Maintenant que vous avez tout configuré, nous vous recommandons de procéder aux opérations suivantes : +Stay.Up.Date.Label=Restez à jour pour recevoir de nouvelles caractéristiques et une expérience améliorée. +Get.Started.DISM.Label=Commencez à utiliser DISMTools et le service d'images, afin de vous déplacer plus rapidement. +Secondary.Progress.Label=Style du panneau de progression secondaire : +Font.Readable.Log.Message=Cette police peut ne pas être lisible sur les fenêtres logiques. Bien que vous puissiez encore l'utiliser, nous recommandons les polices monospaces pour une meilleure lisibilité. +Back.Button=Retour +Cancel.Button=Annuler +Browse.Button=Parcourir... +Default.Log.File.Button=Utiliser le fichier journal par défaut +Configure.Settings.Button=Configurer d'autres paramètres +GetStarted.Button=Commencer +CheckUpdates.Button=Mettre à jour les données +Auto.Create.Logs.CheckBox=Créer automatiquement des journaux dans le répertoire des journaux du programme +Modern.RadioButton=Moderne +Classic.RadioButton=Classique +Log.File.Title=Spécifier le fichier journal +System.Setting.Item=Utiliser les paramètres du système +LightMode.Item=Mode lumineux +DarkMode.Item=Mode sombre + +[PrgSetup.Actions] +UpdateChecker.Title=Mettre à jour les données + +[PrgSetup.Dialogs] +SaveFile.Filter=Tous les fichiers|*.* + +[PrgSetup.LogLevel] +Errors.Label=Erreurs (niveau du journal 1) +File.Only.Display.Label=Le fichier journal ne doit afficher les erreurs qu'après l'exécution d'une opération d'image. +Errors.Warnings.Label=Erreurs et avertissements (niveau de journal 2) +File.Display.Errors.Label=Le fichier journal doit afficher les erreurs et les avertissements après l'exécution d'une opération d'image. +Errors.Messages.Label=Erreurs, avertissements et messages d'information (niveau du journal 3) +File.Display.Errors.Message=Le fichier journal doit afficher les erreurs, les avertissements et les messages d'information après l'exécution d'une opération d'image. +Errors.Warnings.Debug.Label=Erreurs, avertissements, informations et messages de débogage (niveau du journal 4) +Level3.Message=Le fichier journal doit afficher les erreurs, les avertissements, les informations et les messages de débogage après l'exécution d'une opération d'image. + +[PrgSetup.Next] +Finish.Label=Finir + +[PrgSetup.Next.Actions] +Folder.Log.File.Message=Le dossier dans lequel le fichier journal sera stocké n'existe pas. Assurez-vous qu'il existe et réessayez. +Next.Button=Suivant + +[PrgSetup.ToolTip] +Minimize.Label=Minimiser +Close.Label=Fermer +GoBack.Label=Retourner + +[PrgSetup.Validation] +DownloadFailure.Message=Nous n'avons pas pu télécharger le vérificateur de mise à jour. Raison :{crlf;}{0} + +[Progress] +Tasks.Label=Tâches : {0}/{1} +Progress.Label=Avancement +Image.Operations.Label=Opérations de l'image en cours... +Wait.Tasks.Label=Veuillez patienter pendant que les tâches suivantes sont effectuées. Cela peut prendre un certain temps. +Cancel.Button=Annuler +ShowLog.Label=Afficher le journal +HideLog.Label=Cacher le journal +Show.Dismlog.File.Link=Afficher le fichier journal DISM (avancé) +Wait.Label=Veuillez patienter... +CurrentTask.Label=Veuillez patienter... +Performing.Image.Ops.Button=Exécution d'opérations sur les images en cours. Veuillez patienter... +TaskCount.Label=Tâches : 1/{0} + +[Progress.AddCapabilities] +Add.Capabilities.Button=Ajout des capacités en cours... +PrepareAdd.Button=Préparation de l'ajout des capacités en cours... +Add.Capabilities.Item=Ajout des capacités en cours... +AddingCapability.Item=Ajout de la capacité {0} de {1} en cours... + +[Progress.AddDrivers] +AddingDrivers.Button=Ajout des pilotes en cours... +Preparing.Drivers.Button=Préparation de l'ajout des pilotes en cours... +AddingDrivers.Item=Ajout des pilotes en cours... +AddingDriver.Item=Ajout du pilote {0} de {1} en cours... + +[Progress.AddPackages] +AddingPackages.Button=Ajout des paquets en cours... +Preparing.Packages.Button=Préparation de l'ajout des paquets en cours... +AddingPackages.Item=Ajout de {0} paquets en cours... +AddingPackage.Item=Ajout du paquet {0} de {1} en cours... + +[Progress.Packages.AddRecursive] +Gathering.Error.Level.Button=Recueil du niveau d'erreur en cours... + +[Progress.ProvAppx.Add] +AddingPackages.Button=Ajout de paquets AppX en cours... +Preparing.Button=Préparation de l'ajout de paquets AppX provisionnés en cours... +AddingPackages.Item=Ajout de paquets AppX en cours... +AddingPackage.Item=Ajout du paquet {0} de {1} en cours... + +[Progress.ProvPackage.Add] +AddingPackage.Button=Ajout d'un paquet de provisionnement en cours... +Image.Button=Ajout d'un paquet de provisionnement à l'image en cours... + +[Progress.AppendImage] +AppendingImage.Button=Annexe à l'image... +Appending.Mount.Dir.Button=Annexe du répertoire de montage spécifié à l'image cible spécifiée... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.ApplyFfuImage] +ApplyingImage.Button=Application de l'image en cours... +Applying.Image.Dest.Button=Application de l'image spécifiée à la destination spécifiée en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.ApplyImage] +ApplyingImage.Button=Application de l'image en cours... +Applying.Image.Dest.Button=Application de l'image spécifiée à la destination spécifiée en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.ApplyUnattend] +ApplyAnswerFile.Button=Appliquer le fichier de réponse sans surveillance en cours... +Applying.Answer.Button=Appliquer le fichier de réponse non assisté spécifié à l'image cible en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.Background] +Ready.Label=Prêt +Perform.Image.Label=Impossible d'effectuer des opérations de l'image +Error.Has.Message=Une erreur s'est produite, qui a interrompu les opérations sur l'image. Veuillez lire le journal ci-dessous pour plus d'informations. +Ok.Button=OK +Ready.Item=Prêt + +[Progress.CaptureFfuImage] +CapturingImage.Button=Capture de l'image en cours... +CaptureDir.Button=Capture du répertoire spécifié dans une nouvelle image en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.CaptureImage] +CapturingImage.Button=Capture de l'image en cours... +CaptureDir.Button=Capture du répertoire spécifié dans une nouvelle image en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.CleanupImage] +Cleaning.Up.Image.Button=Nettoyage de l'image en cours... +RevertPending.Button=Annulation des actions de maintenance en cours... +Cleaning.Up.ServicePack.Item=Nettoyage des fichiers de sauvegarde du Service Pack en cours... +Cleaning.Up.Component.Item=Nettoyage du stock de composants en cours... +Analyzing.Component.Item=Analyse du stock de composants en cours... +Checking.Comp.Store.Item=Vérification de l'état de santé du stock de composants en cours... +Scanning.Component.Item=Analyse du stock de composants en cours... +Repairing.Component.Item=Réparation du stock de composants en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.CleanupMounts] +Cleaning.Up.Mount.Button=Nettoyage des points de montage en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... +Deleting.Corrupted.Button=Suppression des ressources des images anciennes ou corrompues en cours... + +[Progress.Close] +Ready.Label=Prêt + +[Progress.CommitImage] +CommittingImage.Button=Sauvegarde de l'image en cours... +Saving.Changes.Image.Button=Sauvegarde des modifications apportées à l'image en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.ConvertImage] +ConvertingImage.Button=Conversion de l'image en cours... +Converting.Image.Button=Conversion de l'image spécifiée en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.CreateProject] +CreatingProject.Label=Création d'un projet en cours : {quot;}{0}{quot;} +CreateProject.Button=Création de la structure du projet DISMTools en cours... + +[Progress.DisableFeatures] +Disabling.Button=Désactivation des caractéristiques en cours... +PrepareDisable.Button=Préparation de la désactivation des caractéristiques en cours... +Disabling.Item=Désactivation des caractéristiques en cours... +DisablingFeature.Item=Désactivation de la caractéristique {0} de {1} en cours... + +[Progress.EnableFeatures] +EnablingFeatures.Button=Activation des caractéristiques en cours... +PrepareEnable.Button=Préparation de l'activation des caractéristiques en cours... +EnablingFeatures.Item=Activation des caractéristiques en cours... +EnablingFeature.Item=Activation de la caractéristique {0} de {1} en cours... + +[Progress.ExportDrivers] +ExportingDrivers.Button=Exportation des pilotes en cours... +ExportThirdParty.Button=Exportation de pilotes tiers dans le dossier spécifié en cours... + +[Progress.ExportImage] +ExportingImage.Button=Exportation de l'image en cours... +Exporting.Image.Button=Exportation de l'image spécifiée en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.GetTasks] +Tasks.Label=Tâches : 1/{0} + +[Progress.ImportDrivers] +ImportingDrivers.Button=Importation des pilotes en cours... +PrepareImport.Button=Préparation de l'importation de pilotes tiers en cours... +ExportThirdParty.Item=Exportation de pilotes tiers à partir de la source d'importation des pilotes en cours... +ImportThirdParty.Item=Importation des pilotes tiers dans l'image de destination en cours... + +[Progress.OSUninstall] +Uninstalling.Version.Button=Désinstallation de cette version de Windows en cours... + +[Progress.StartRollback] +Preparing.OSRollback.Button=Préparation du retour en arrière du système d'exploitation en cours... + +[Progress.Log] +HideLog.Label=Cacher le journal +ShowLog.Item=Afficher le journal + +[Progress.Logs.Operation] +Label=Journal des opérations + +[Progress.Logs.DismOutput] +Label=Sortie DISM + +[Progress.MergeSWM] +MergingSwmfiles.Button=Fusion des fichiers SWM en cours... +Merging.Swmfiles.WIM.Button=Fusion des fichiers SWM dans un fichier WIM en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.MountImage] +MountingImage.Button=Montage de l'image en cours... +Mounting.Image.Button=Montage de l'image spécifiée en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.Operation] +OptimizingImage.Label=Optimizing image... +Optimizing.Windows.Label=Optimizing Windows image... +UpgradingImage.Label=Upgrading the image... +Setting.New.Image.Label=Setting the new image edition... +Setting.ProductKey.Label=Setting the product key... +Setting.New.ProductKey.Label=Setting the new product key... +Replacing.FFU.Files.Label=Replacing FFU files... +Replacing.Original.FFU.Label=Replacing original FFU file with modified FFU file... + +[Progress.RemountImage] +RemountingImage.Button=Remontage de l'image en cours... +ReloadSession.Button=Rechargement de la session de maintenance pour l'image montée en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[Progress.RemoveCapabilities] +Remove.Capabilities.Button=Suppression des capacités en cours... +Remove.Capabilities.Item=Suppression des capacités en cours... +Capability.Item=Suppression de la capacité {0} de {1} en cours... + +[Progress.RemoveCaps] +Preparing.Button=Préparation de la suppression des capacités en cours... + +[Progress.RemoveDrivers] +RemovingDrivers.Button=Suppression des pilotes en cours... +Preparing.Drivers.Button=Préparation de la suppression des pilotes en cours... +RemovingDrivers.Item=Suppression des pilotes en cours... +RemovingDriver.Item=Suppression du pilote {0} de {1} en cours... + +[Progress.RemoveRollback] +RemoveRollback.Button=Suppression de la possibilité de retour en arrière du système d'exploitation en cours... +RemoveRevert.Button=Suppression de la possibilité de revenir à une ancienne installation de Windows en cours... + +[Progress.RemovePackages] +RemovingPackages.Button=Suppression des paquets en cours... +PrepareRemove.Button=Préparation de la suppression des paquets en cours... +RemovingPackages.Item=Suppression des paquets en cours... +RemovingPackage.Item=Suppression du paquet {0} de {1} en cours... + +[Progress.ProvAppx.Remove] +RemovingPackages.Button=Suppression des paquets AppX en cours... +Preparing.Button=Préparation de la suppression des paquets AppX en cours... +RemovingPackages.Item=Suppression des paquets AppX en cours... +RemovingPackage.Item=Suppression du paquet {0} de {1} en cours... + +[Progress.RemoveVolumes] +DeletingImages.Button=Suppression des images en cours... +Prepare.Remove.Button=Préparation de la suppression des images de volume en cours... +Volume.Image.Item=Suppression de l'image de volume {quot;}{0}{quot;} en cours... + +[Progress.LayeredDriver] +SettingDriver.Button=Configuration du pilote en couches en cours... +Setting.Keyboard.Button=Configuration du pilote en couches pour le clavier en cours... + +[Progress.RollbackWindow] +SetWindow.Button=Définition de la créneau de désinstallation en cours... +SetDays.Button=Définition du nombre de jours au cours desquels une désinstallation peut avoir lieu en cours... + +[Progress.ScratchSpace] +Setting.ScratchSpace.Button=Configuration de l'espace temporaire en cours... +SetScratchSpace.Button=Configuration de l'espace temporaire de Windows PE en cours... + +[Progress.SetTargetPath] +Setting.Target.Button=Configuration du chemin cible en cours... +Setting.Windows.Button=Configuration du chemin cible de Windows PE en cours... + +[Progress.SplitFfuImage] +SplittingImage.Button=Division de l'image en cours... +Splitting.File.Button=Division du fichier FFU en cours... + +[Progress.SplitImage] +SplittingImage.Button=Division de l'image en cours... +Splitting.WIM.File.Button=Division du fichier WIM en cours... + +[Progress.SwitchIndexes] +Switching.Image.Button=Changement d'index de l'image en cours... +Unmounting.Source.Button=Démontage de l'index original en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... +Unmounting.Source.Index.Item=Démontage de l'index original en cours... +CurrentTask.Item=Recueil du niveau d'erreur en cours... +Mounting.Target.Index.Item=Montage de l'index de ciblage en cours... + +[Progress.UnmountImage] +UnmountingImage.Button=Démontage de l'image en cours... +Unmounting.ImageFile.Button=Démontage du fichier d'image en cours... +Gathering.Error.Level.Item=Recueil du niveau d'erreur en cours... + +[ProgressReporter] +Progress.Label=Progression + +[ProjProps] +Bytes.Item={0} octets (~{1}) +Getting.Project.Image.Label=Obtention des informations sur les projets et les images en cours. Veuillez patienter... +Name.Label=Nom : +Location.Label=Lieu : +Creation.Time.Date.Label=Date de création : +ProjectGUID.Label=GUID du projet : +MountDirectory.Label=Répertoire de montage : +ImageIndex.Label=Index de l'image : +ImageFile.Label=Fichier de l'image : +Image.Present.Project.Label=Image présente sur le projet ? +ImageStatus.Label=État de l'image : +Version.Label=Version : +Description.Label=Description : +Size.Label=Taille : +Supports.WIM.Boot.Label=Supporte WIMBoot ? +Architecture.Label=Architecture : +ServicePackBuild.Label=Compilation du Service Pack : +ServicePackLevel.Label=Niveau du Service Pack : +Edition.Label=Édition : +ProductType.Label=Type de produit : +ProductSuite.Label=Suite du produit : +System.Root.Dir.Label=Répertoire racine du système : +DirectoryCount.Label=Nombre de répertoires : +FileCount.Label=Nombre de fichiers : +CreationDate.Label=Date de création : +ModificationDate.Label=Date de modification : +Installed.Languages.Label=Langues installées : +FileFormat.Label=Format du fichier : +Image.Rwpermissions.Label=Droits L/E de l'image : +Recover.Label=Récupérer +Reload.Label=Recharger +Remount.Write.Label=Remonter avec les droits d'écriture +Ok.Button=OK +Cancel.Button=Annuler +Many.Cannot.Seen.Message=De nombreuses propriétés ne sont pas visibles car l'image n'a pas encore été montée. Une fois l'image montée, des informations détaillées s'afficheront ici. Cliquez ici pour monter une image +Props.Label=Propriétés +Yes.Button=Oui +No.Button=Non +ImgMount.Label=Non disponible +ImgIndex.Label=Non disponible +ImgName.Label=Non disponible +NotAvailable.Label=Non disponible +ImgVersion.Label=Non disponible +ImgMounted.Label=Non disponible +ImgSize.Label=Non disponible +ImgWIM.Label=Non disponible +ImgHal.Label=Non disponible +ImgSP.Label=Non disponible +ImgEdition.Label=Non disponible +ImgP.Label=Non disponible +ImgSys.Label=Non disponible +ImgDirs.Label=Non disponible +ImgFiles.Label=Non disponible +ImgCreation.Label=Non disponible +ImgModification.Label=Non disponible +ImgFormat.Label=Non disponible +ImgRW.Label=Non disponible + +[ProjectProps.FeatureUpdate] +FeatureUpdate.Label={crlf;}(m-à-j des caractéristiques: {0}) + +[ProjectProps.Image] +UndefinedImage.Label=Non défini par l'image +OpenParenthesis.Label=( +Default.Label=, défaut +CloseParenthesis.Label=) +File.Label=Fichier {0} + +[ProjProps.Tooltip] +Hardware.Abstraction.Label=Couche d'abstraction du matériel + +[ServiceGroups] +ServiceGroup.Label={lbrace;}0{rbrace;} service(s) in group +RegisteredHost.Label={lbrace;}0{rbrace;} service(s) are registered in the service host. + +[RegistryPanel] +Image.Hives.Label=Ruches du registre des images +Load.Label=Charger +Unload.Label=Décharger +Open.Button=Ouvrir +Tool.Lets.Load.Message=Cet outil vous permet de charger les ruches de registre de l'image que vous spécifiez ici sur le système local. Vous pouvez ainsi modifier la configuration stockée dans l'image Windows. Une fois que vous avez fini de personnaliser une clé d'une ruche, vous pouvez également la décharger ici : +Ntuserdatdefault.User.Label=NTUSER.DAT (Utilisateur par défaut) +Load.Different.Label=Si vous souhaitez charger un ruche de registres d'images différent, indiquez son chemin d'accès et cliquez sur Charger : +HiveLocation.Label=Emplacement du répertoire de stockage : +PathRegistry.Label=Chemin d'accès dans le registre : +Browse.Button=Parcourir... +Load.Custom.Hive=Charger le ruche personnalisé + +[RegistryPanel.Close] +HivesNeedUnload.Message=Les ruches de registre doivent être déchargées pour fermer cette fenêtre. Voulez-vous les décharger maintenant ? +HivesNotUnloaded.Message=Certaines ruches n'ont pas pu être déchargées. Veuillez les décharger avant de fermer cette fenêtre. + +[ReloadProject] +ImageMissing.Label=Cette image n'est plus disponible +ImageUnavailable.Message=L'image qui a été chargée dans ce projet n'est plus disponible. Cela peut se produire si elle a été démontée par un programme externe. Pour cette raison, le projet doit être rechargé. Cliquez sur {quot;}OK{quot;} pour recharger ce projet.{crlf;}{crlf;}NOTE: si vous cliquez sur {quot;}Annuler{quot;}, le projet sera déchargé. +Ok.Button=OK +Cancel.Button=Annuler + +[RemCapabilities] +Remove.Label=Supprimer les capacités +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Annuler +Capability.Column=Capacité +State.Column=État + +[RemCapabilities.Initialize] +UnsupportedImage.Message=Cette action n'est pas prise en charge sur cette image + +[RemCapabilities.Validation] +Selected.None.Message=Il n'y a pas de capacités sélectionnées à supprimer. Veuillez sélectionner des capacités et réessayer. + +[RemDrivers] +RemoveDrivers.Label=Supprimer les pilotes +Image.Task.Header.Label={0} +DriverPackages.Wish.Label=Indiquez les paquets de pilotes que vous souhaitez supprimer et cliquez sur OK : +Hide.Boot.Critical.CheckBox=Cacher les pilotes critiques pour le démarrage +Hide.Drivers.Part.CheckBox=Cacher les pilotes qui font partie de la distribution de Windows +Ok.Button=OK +Cancel.Button=Annuler +PublishedName.Column=Nom publié +Original.File.Name.Column=Nom du fichier original +ProviderName.Column=Nom du prestataire +ClassName.Column=Nom de la classe +Part.Windows.Column=Fait-il partie de la distribution Windows ? +BootCritical.Column=Est-il critique pour le démarrage ? +Version.Column=Version +Date.Column=Date +Loading.DriverPackages.Label=Obtention des paquets de pilotes installés en cours... + +[RemDrivers.Validation] +Yes.Button=Oui +Selected.Boot.Message=Vous avez sélectionné des paquets de pilotes critiques pour le démarrage. En procédant à la suppression de ces paquets, vous risquez de rendre l'image cible non amorçable. +WantContinue.Message=Voulez-vous continuer ? +CheckedItems.Button=Oui +Selected.Part.Message=Vous avez sélectionné des paquets de pilotes qui font partie de la distribution de Windows. La poursuite de l'opération peut rendre inaccessibles certaines parties de Windows qui dépendent de ces pilotes. +ContinueQuestion.Message=Voulez-vous continuer ? +Packages.Required.Message=Veuillez spécifier les paquets de pilotes que vous souhaitez supprimer et réessayez. + +[RemPackage] +RemovePackages.Label=Supprimer les paquets +Image.Task.Header.Label={0} +PackageSource.Label=Source du paquet : +Note.May.Message=REMARQUE : le programme peut afficher des paquets qui n'ont pas été ajoutés en premier lieu. Toutefois, si un paquet n'est pas ajouté, le programme l'ignorera. +PackageRemoval.Group=Suppression des paquets +Package.Names.RadioButton=Spécifiez les noms des paquets : +Package.Files.RadioButton=Spécifier les fichiers des paquets : +Browse.Button=Parcourir... +Cancel.Button=Annuler +Ok.Button=OK +PackageSource.Description=Veuillez indiquer la source des paquets : +Couldn.Tscan.Message=Nous n'avons pas pu analyser la source du paquet pour les fichiers CAB. Veuillez réessayer. +DISMTools.Title=DISMTools + +[RemPackage.Validation] +No.Packages.Selected.Message=Veuillez sélectionner les paquets à supprimer et réessayer. +Packages.Selected.None.Title=Aucun paquet sélectionné + +[RemoveAppx] +Prov.Label=Supprimer les paquets AppX provisionnés +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Annuler +PackageName.Column=Nom du paquet +App.Display.Name.Column=Nom d'affichage de l'application +Architecture.Column=Architecture +ResourceID.Column=ID de la ressource +Version.Column=Version +Registered.User.Column=Enregistré au nom d'un utilisateur ? +ViewResources.Label=Voir les ressources de {0} + +[RemoveAppx.Init] +UnsupportedImage.Message=Cette action n'est pas prise en charge sur cette image + +[RemoveAppx.Validation] +Packages.Required.Message=Veuillez indiquer les paquets AppX à supprimer et réessayer. +Prov.Title=Supprimer les paquets AppX provisionnés +DesktopExperience.Message=La caractéristique Expérience du bureau (DesktopExperience) doit être activée afin de supprimer les paquets AppX dans les images Windows Server Core/Nano Server.{crlf;}{crlf;}Activez cette caractéristique, démarrez sur l'image et réessayez. + +[SaveProject] +SaveChanges.Label=Souhaitez-vous sauvegarder les modifications apportées à ce projet ? +ShutdownRestart.Message=Si vous arrêtez ou redémarrez votre système sans démonter les images, vous devrez recharger la session de maintenance. +Yes.Button=Oui +No.Button=Non +Cancel.Button=Annuler + +[ScriptReorder] +Script.Label=Script {lbrace;}0{rbrace;} +Move.Selected.Top.Label=Move selected script to the top +Move.Selected.Previous.Label=Move selected script to the previous position +Move.Selected.Next.Label=Move selected script to the next position +Move.Selected.Bottom.Label=Move selected script to the bottom + +[ServiceManagement.Display] +MinuteS.Label={0} minute(s) +Undefined.Label=Non défini +Per.User.Label=Ce n’est pas un service par utilisateur +Undefined.Group.Label= + +[Services.Display] +MinutesSeconds.Message={0} minute(s) ({1} secondes) après le premier échec, {2} minute(s) ({3} secondes) après le deuxième échec, {4} minute(s) ({5} secondes) après les échecs suivants + +[Services.Messages] +StartType.Message=Le type de démarrage sélectionné n’est pas pris en charge pour les services de ce type. Le service sélectionné pourrait ne pas fonctionner correctement, voire pas du tout, si vous continuez avec ce type de démarrage.{crlf;}{crlf;}Voulez-vous rétablir ce type de démarrage à sa valeur actuelle ? +System.Done.Message=Les informations des services système ont été enregistrées avec succès dans le registre de l’image cible.{crlf;}{crlf;}Une sauvegarde de la configuration précédente des services a été enregistrée sur votre bureau au cas où vous en auriez besoin si les modifications ne se passent pas comme prévu.{crlf;}{crlf;}Chargez simplement la ruche SYSTEM de l’image cible et importez ce fichier de registre. +UnsavedClose.Message=Des modifications ont été effectuées. La fermeture de cette fenêtre annulera toutes vos modifications des services Windows. Voulez-vous annuler ces modifications ? +UnsavedReload.Message=Des modifications ont été effectuées. Le rechargement des informations des services annulera toutes vos modifications des services Windows. Voulez-vous annuler ces modifications ? +RemoveService.Title=Supprimer le service +Scheduled.Deletion.Message=Le service a été planifié avec succès pour suppression. La suppression de ce service aura lieu lorsque vous enregistrerez les modifications. Si vous devez récupérer ce service, importez la sauvegarde des informations de services qui sera créée pendant l’enregistrement. +InfoSaved.Message=Les informations des services système n’ont pas pu être enregistrées dans le registre de l’image cible. + +[ServiceMgmt.Messages] +Continui.Removal.Svc.Message=La suppression de ce service peut rendre le système cible instable ou impossible à démarrer. Voulez-vous continuer ? + +[ServiceManagement.Progress] +Saving.Label=Enregistrement des informations des services... ({0}/{1}, {2} %) + +[ServiceManagement.StartTypes] +BootLoader.Label=Chargeur de démarrage +Iosystem.Label=Système E/S +Automatic.Label=Automatique +Manual.Label=Manuel +Disabled.Label=Désactivé + +[ImageEdition] +Title.Label=Définir l'édition de l'image +Image.Task.Header.Label={0} +Target.Upgrade.Label=Édition cible pour la mise à niveau : +ServerOptions.Group=Options d'installation active du serveur +Copy.EndUser.RadioButton=Copier le Contrat de Licence Utilisateur Final (CLUF) à l'emplacement suivant : +AcceptEULA.RadioButton=Accepter le Contrat de Licence Utilisateur Final (CLUF) et utiliser la clé de produit suivante : +Browse.Button=Parcourir... +Ok.Button=OK +Cancel.Button=Annuler + +[ImageEdition.Initialize] +Image.Cannot.Message=Cette image ne peut pas être mise à niveau vers des éditions supérieures car elle se trouve dans son édition la plus élevée +Windows.Message=Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures. + +[SetImageKey] +SetProductKey.Label=Définir la clé de produit +Image.Task.Header.Label={0} +Type.ProductKey.Label=Tapez la clé de produit que vous souhaitez définir pour votre image Windows, y compris les tirets : +Check.ProductKey.Message=Si vous souhaitez vérifier si votre clé de produit est valide pour l'image Windows, cliquez sur Valider la clé. Cela vérifiera également la syntaxe de votre clé. +ValidateKey.Button=Valider la clé +Ok.Button=OK +Cancel.Button=Annuler + +[SetImageKey.Initialize] +Windows.Message=Les images Windows PE ne peuvent pas être mises à niveau vers des éditions supérieures. + +[SetImageKey.Messages] +ProductKey.Has.Label=La clé de produit n’a pas été saisie correctement. +ProductKey.Windows.Label=La clé de produit est valide pour cette image Windows. +ProductKey.Valid.Message=La clé de produit a été saisie correctement, mais elle n’est pas valide pour cette image Windows. + +[SetImageKey.Validation] +ProductKey.Valid.Message=La clé de produit a été saisie correctement, mais nous n’avons pas pu vérifier si elle est valide pour cette image Windows. + +[SetLayeredDriver] +UnknownInstalled.Label=Unknown/Not installed +PC.Enhanced.Label=PC/AT Enhanced Keyboard (101/102-Key) +DriverKorean.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 2) +Korean.Keyboard.Key.Item=Korean Keyboard (103/106 Key) +Japanese.Keyboard.Key.Item=Japanese Keyboard (106/109 Key) + +[SetLayeredDriver.KoreanPC] +Keyboard101.Type1.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 1) +Keyboard101.Type3.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 3) + +[LayeredDriver.Set] +Title=Définir le pilote du clavier en couches +Image.Task.Header.Label={0} +Intro.Message=Cette action vous permet de définir un pilote de clavier superposé pour les claviers japonais et coréens, car certains utilisateurs ont des claviers avec des touches supplémentaires. Il vous suffit de spécifier le nouveau pilote de clavier dans la liste ci-dessous et de cliquer sur OK +CurrentDriver.Label=Pilote de clavier actuel : +NewDriver.Label=Nouveau pilote de clavier superposé : +Driver.Already.Label=Ce pilote a déjà été défini +Ok.Button=OK +Cancel.Button=Annuler + +[OSRollback] +OSUninstall.Label=Définir la créneau de désinstallation du système d'exploitation +Image.Task.Header.Label={0} +Default.OS.Message=Par défaut, et après une mise à jour du système d'exploitation, vous disposez de 10 jours pour revenir à la version précédente de Windows. Toutefois, vous pouvez modifier ce paramètre si vous souhaitez revenir à l'ancienne version du système d'exploitation à une date ultérieure.{crlf;}{crlf;}Utilisez le curseur numérique pour augmenter ou diminuer le nombre de jours dont vous disposez pour revenir à l'ancienne version de Windows. Ce nombre doit être compris entre 2 et 60. +Amount.Days.Revert.Label=Nombre de jours nécessaires pour revenir à l'ancienne version de Windows : +Ok.Button=OK +Cancel.Button=Annuler + +[RollbackWindow.Init] +OnlineOnly.Message=Cette action est seulement prise en charge par les installations en ligne + +[OSRollback.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[PE.Scratch] +Window.Title=Configurer l'espace temporaire de Windows PE +Header.Title={0} +Description.Message=L'espace temporaire est la quantité d'espace accessible en écriture disponible sur le volume du système Windows PE lorsque son contenu est copié dans la mémoire. Veuillez spécifier une quantité d'espace temporaire et cliquez sur OK. +Space.Label=Espace temporaire : +Ok.Button=OK +Cancel.Button=Annuler + +[PETargetPath.Target] +Set.Windows.Petarget.Label=Configurer le chemin cible de Windows PE +Image.Task.Header.Label={0} +Target.Dir.Message=Le chemin cible est un répertoire dans lequel les fichiers Windows PE seront copiés afin de démarrer dans l'environnement. Veuillez indiquer un chemin cible et cliquer sur OK. +TargetPath.Label=Chemin cible : +Ok.Button=OK +Cancel.Button=Annuler + +[PETargetPath.Validation] +Target.Least.Message=Le chemin cible doit être composé d'au moins 3 caractères et d'au plus 32 caractères. +Target.Start.Message=Le chemin cible doit commencer par une lettre autre que A ou B. +DriveLetterFormat.Message=Une lettre de disque doit être suivie de : +AbsolutePath.Message=Le chemin cible doit être absolu et ne doit pas contenir d'éléments relatifs. +Target.Contain.Message=Le chemin cible ne doit pas contenir d'espaces ou de guillemets. + +[SettingsReset] +ResetPreferences.Label=Réinitialiser les préférences +ProceedReset.Message=Si vous continuez, les paramètres seront réinitialisés à leurs valeurs par défaut. Une fois ce processus terminé, vous reviendrez à la fenêtre principale du programme.{crlf;}{crlf;}Voulez-vous continuer ? +Yes.Button=Oui +No.Button=Non + +[Single.Image] +Image.Seems.Only.Item=Cette image semble n'avoir qu'un seul index +Cannot.Switch.Index.Message=Vous ne pouvez pas passer à d'autres index. Si vous souhaitez sauvegarder les modifications apportées à l'image, vous pouvez le faire en utilisant un nouvel index distinct. +Know.Indexes.Message=Pour en savoir plus sur les index d'une image, ou sur certaines de ses propriétés spécifiques, allez dans {quot;}Commandes > Gestion des images > Obtenir des informations sur l'image{quot;}, ou cliquez ici +Here.LinkText=here +Ok.Button=OK + +[SplashScreen] +Version.Label=Version {lbrace;}0{rbrace;}.{lbrace;}1{rbrace;}.{lbrace;}2{rbrace;} + +[StarterScript] +AlreadyCreated.Message=The starter script had been created with an earlier version of the Starter Script Editor and will be saved with properties that will make it compatible with the current format. After this is done, the starter script will no longer be compatible with earlier versions of DISMTools or the Starter Script Editor.{crlf;}{crlf;}Do you want to save this file? +Editor.Label=Starter Script Editor +Dialog.Title=Starter Script Editor +SaveError.Label=Save Error +DebugEditor.Label=DISMTools Starter Script Editor version {0} ({1}_DEBUG){crlf;}{crlf;}{2} +About.Label=À propos +Editor.Message=DISMTools Starter Script Editor version {0}{crlf;}{crlf;}{1} +DebugVersion.Message=DISMTools Starter Script Editor version {0}_NET2REL ({1}_DEBUG){crlf;}{crlf;}{2} +Version.Message=DISMTools Starter Script Editor version {0}_NET2REL{crlf;}{crlf;}{1} +ImportExisting.Label=Import Existing Script +Unrecognized.Label=Unrecognized script +ReadFailed.Label=Could not read file contents +FileMissing.Label=The script file does not exist. +ReadOnlyFile.Message=This script file has been loaded with read-only privileges. If you make changes to this script, you must save them to a new script file or enable write access for this script. +SaveFailed.Message=Changes could not be saved to the script file. Make sure write access is present in the file. {crlf;}{crlf;}{0}{crlf;}{crlf;}To enable write access for this file, use the respective button in the toolbar. +SaveChanges.Label=Do you want to save the changes to your script file? +Name.Required.Label=You must provide a name for this starter script. +Description.Required.Label=You must provide a description for this starter script. +SaveChanges.Message=Do you want to save the changes to your script file? +ImportSelected.Message=Importing the selected script will replace existing contents of your script. +SupportedScript.Label=This script is not supported by the Starter Script Editor. +LoadFailed.Label=The contents of the script could not be loaded. +WriteAccess.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +NonMonospace.Message=You have selected a non-monospaced font. Text may not look correctly. Do you want to continue? +Name.Required.Message=You must provide a name for this starter script. +Description.Required.Message=You must provide a description for this starter script. +Window.Title=Starter Script Editor - {lbrace;}0{rbrace;} +Window.Default=Starter Script Editor +CheckScript.Message=Check this option if this script contains settings that can be configured by the user{crlf;}after importing the starter script from the Starter Script Browser. + +[Tools.ThemeDesigner.Main] +Color.Rgbclick.Label=Current Color: RGB({0}, {1}, {2}). Click to copy to clipboard + +[ThemeDesigner.Messages] +Loaded.Read.Only.Message=This theme has been loaded with read-only privileges. If you make changes, you must save them to a new file or enable write access. +Provide.Name.Label=You must provide a name for the theme. +Saved.Done.Label=The theme has been saved successfully at the specified location. +SaveTheme.Label=Could not save the theme. +Enable.Write.Access.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +ThemeDesigner.Label=Theme Designer +Name.Missing.Label=Theme name missing +SaveSuccess.Label=Save Success +SaveError.Label=Save Error +DISM.Tools.Designer.Label=DISMTools Theme Designer version {0}{crlf;}{crlf;}{1}. {2} +About.Label=À propos +About.Version.Message=DISMTools Theme Designer version {0}_NET2REL{crlf;}{crlf;}{1}. {2} +StarterScript.Editor.Label=Starter Script Editor + +[DynaViewer.Messages] +FileExist.Label=The file {quot;}{0}{quot;} does not exist. +File.NotFound.Message=The file {quot;}{0}{quot;} does not exist. +Log.Version.Label=DynaLog Log Viewer (DynaViewer) version {0}{crlf;}{crlf;}{1} +About.Version.Message=DynaLog Log Viewer (DynaViewer) version {0}_NET2REL{crlf;}{crlf;}{1} +Regex.Failure.Label=Regular expression failure +RegexInvalid.Message=The regular expression, {1} , has not been written correctly. The cheatsheet can help you with the queries.{0}{0} Error message: {2} + +[DynaViewer] +Proced.Entries.Double.Label=Processed entries: {lbrace;}0{rbrace;}. Double-click an entry to get its information. +Regex.Expressions.Label=Use regular expressions +MatchCase.Label=Match case +Processed.Entries.Message=Processed entries: {lbrace;}0{rbrace;}{lbrace;}1{rbrace;}. Double-click an entry to get its information. +FilteredEntries.Suffix=; Filtered entries: {lbrace;}0{rbrace;} + +[ThemeDesigner.Main] +Window.Title=DISMTools Theme Designer - {lbrace;}0{rbrace;} +Window.DefaultTitle=DISMTools Theme Designer + +[Unattend.Scripts] +ImportDone.Message=After this script is imported, please check its code for any options that you can set. That way you can customize its behavior. +Loaded.Message=The starter scripts could not be loaded. +Refreshed.Message=The starter scripts could not be refreshed. + +[UnattendMgr] +Unattended.AnswerFile.Label=Gestionnaire de fichiers de réponse sans surveillance +ProjectPath.Label=Chemin du projet : +Browse.Button=Parcourir... +OpenFile.Button=Ouvrir le fichier +Open.File.Location.Button=Ouvrir l'emplacement du fichier +ApplyImage.Button=Appliquer à l'image... +FileName.Column=Nom du fichier +Created.Column=Créé +LastModified.Column=Dernière modification +LastAccessed.Column=Dernier accès + +[Unattend.Scan] +FolderMissing.Message=Le chemin d'accès au dossier n'existe pas +ElementsFound.Message=La recherche s'est terminée sans qu'aucun élément n'ait été trouvé + +[Updater.Main] +Minimize.Label=Minimize +Close.Label=Close +DISM.Tools.Update.Label=DISMTools Update Check System - Version {0} +UpdateInfo.Label=Update information +Downloading.Update.Label=Downloading the update +Prepare.Update.Install.Label=Preparing update installation +InstallingUpdate.Label=Installing the update +Downloading.Download.Label=Downloading the update ({0}%) +Preparing.Install.Item=Preparing update installation (80%) +Preparing.Install.Label=Preparing update installation ({0}%) +Prepare.Update.Install.Item=Preparing update installation (100%) +Installing.Update.Item=Installing the update (0%) +Installing.Update.Label=Installing the update ({0}%) +InstallingComplete.Item=Installing the update (100%) + +[Updater.Main.Messages] +BranchRequired.Message=The branch parameter is necessary to be able to check for updates +Couldn.Tfetch.Label=We couldn't fetch the necessary update information. Reason:{crlf;}{0} +Updates.Available.None.Label=There aren't any updates available + +[Updater.Main.Validation] +CurrentVersion.Warning=Your current version of DISMTools may no longer work correctly if you continue using it. It is recommended that you download the latest version manually and extract/install it manually.{crlf;}{crlf;}Do not worry. Your settings are kept intact. + +[Utilities.WMIHelper] +Wmierror.Message=WMI Error + +[WDSImageCopy.ImageInfo] +Gather.ImageFile.Message=Impossible de recueillir des informations sur ce fichier de l'image. Raison :{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[WDSImageCopy.Messages] +Either.Source.Message=Le fichier image source n’existe pas ou vous n’avez fourni aucun fichier image. Spécifiez un fichier image valide et réessayez. +Group.Has.None.Message=Aucun groupe n’a été spécifié. Spécifiez un nouveau groupe WDS ou un groupe existant, puis réessayez. +Images.Have.None.Label=Aucune image n’a été sélectionnée pour être ajoutée à votre serveur WDS. +Image.Add.Message=Assurez-vous que l’image que vous ajoutez a été préparée avec Sysprep.{crlf;}{crlf;}Si ce n’est pas le cas, cliquez sur Non, préparez l’image et relancez le processus. Vous n’avez pas besoin de fermer cette fenêtre.{crlf;}{crlf;}Voulez-vous ajouter cette image à votre serveur WDS ? +Wizard.Support.Message=Cet assistant ne prend pas en charge cet ordinateur. Assurez-vous que cet ordinateur exécute Windows Server et que le rôle Services de déploiement Windows est installé. +Boot.Image.Detected.Message=Une image de démarrage a été détectée. Vous ne devriez pas l’utiliser comme image d’installation sur votre serveur. +UploadSuccessful.Label=Les images ont été téléversées avec succès. +Images.Uploaded.Done.Label=Les images n’ont pas été téléversées avec succès. + +[WDSImageCopy.Progress] +UploadingImages.Label=Téléversement des images... +Image.Uploads.Done.Label=Téléversement des images terminé. + +[WimScriptEditor] +ConfigList.Title=Éditeur de liste de configuration DISM +Config.List.Allows.Message=L'éditeur de liste de configuration vous permet d'exclure des fichiers et/ou des dossiers lors d'actions qui vous permettent de spécifier ces fichiers, comme la capture d'une image. Vous pouvez soit spécifier les paramètres à partir de l'interface graphique, soit créer le fichier de configuration manuellement. Lorsque vous avez terminé, cliquez sur l'icône Sauvegarder. +ExclusionList.Group=Liste d'exclusion +Exclusion.Exception.List=Liste des exceptions d'exclusion +Compression.Exclusion.List=Liste d'exclusion de la compression +Add.Button=Ajouter... +Edit.Button=Modifier... +Remove.Button=Supprimer +Config.List.Load.Title=Spécifier la liste de configuration à charger +Location.Save.Config.Title=Spécifiez l'emplacement où sauvegarder la liste de configuration +New.Tooltip=Nouveau +Open.Button=Ouvrir... +Save.Button=Sauvegarder... +Toggle.Word.Wrap.Tooltip=Basculer l'habillage des mots +Help.Tooltip=Aide +Tools.Label=Outils +Exclude.User.One.Button=Exclure les répertoires OneDrive de l'utilisateur... +New.Config.List.Label=Nouvelle liste de configuration - Éditeur de liste de configuration DISM +ConfigList.FileTitle={0} - Éditeur de liste de configuration DISM +AddList.Label=Ajouter une entrée à la {0} +AddEntry.Label=Ajouter une entrée à la {0} + +[WimScriptEditor.Actions] +Save.Config.List.Prompt=Voulez-vous sauvegarder ce fichier de liste de configuration ? +ConfigList.Title={0} - Éditeur de liste de configuration DISM +ConfigList.FileTitle={0}{1} - Éditeur de liste de configuration DISM + +[WimScriptEditor.Close] +Save.Config.List.Prompt=Voulez-vous sauvegarder ce fichier de liste de configuration ? +ConfigList.FileTitle={0}{1} - Éditeur de liste de configuration DISM +ConfigList.Title={0} - Éditeur de liste de configuration DISM + +[WimScriptEditor.Editor] +ConfigList.Title={0} - Éditeur de liste de configuration DISM +ConfigList.ModifiedTitle={0} (modifié) - Éditeur de liste de configuration DISM + +[WimScriptEditor.OpenFile] +ConfigList.Title={0} - Éditeur de liste de configuration DISM + +[WimScriptEditor.Content] +ConfigList.Title={0} - Éditeur de liste de configuration DISM +ConfigList.ModifiedTitle={0} (modifié) - Éditeur de liste de configuration DISM + +[WindowsImage.MountMode] +Yes.Button=Oui +No.Button=Non + +[WindowsImage.MountStatus] +Ok.Button=OK +NeedsRemount.Label=Nécessite un remontage +Invalid.Label=Invalide + +[WindowsServices.Helper] +Service.Backed.Message=Current service information could not be backed up. Backups are used in case of a mistake during service management. You may continue, but at your own risk.{crlf;}{crlf;}The target image may not work correctly or at all after configuration, and you will not be able to recover it using previous service configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current service information? +Service.Backed.Up.Title=Service information could not be backed up + +[PEHelper.WDSImageGroup] +CreateFailed.Message=The specified WDS image group could not be created. +LoadFailed.Message=Could not get image groups. + +SpecifyGroup.Button=Specify a group in your WDS server... +Action.Choose.Label=Choose an action: +Already.Exists.Label=This group already exists. +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Refresh.Button=Actualiser +Ok.Button=OK +Cancel.Button=Annuler + +[Casters.OfflineInstall.Boot] +Required.Message=Un démarrage sur l'image cible est nécessaire pour installer complètement ce paquet. +NotRequired.Message=Il n'est pas nécessaire de démarrer sur l'image cible pour installer complètement ce paquet. + +[PrgSetup.LogPreview] +Packages.Add.Message=Ajout de paquets à l’image montée...{crlf;}- Source du paquet : C:\w100-glb{crlf;}- Opération d’ajout : sélective{crlf;}- Ignorer les vérifications d’applicabilité ? Non{crlf;}- Empêcher l’ajout du paquet si des actions en ligne sont nécessaires ? Non{crlf;}- Valider l’image après les opérations ? Oui{crlf;}Énumération des paquets à ajouter. Veuillez patienter...{crlf;}Nombre total de paquets : 128{crlf;}{crlf;}Traitement de 128 paquets...{crlf;}Paquet 1 sur 128 + +[Options.LogPreview] +Packages.Add.Message=Ajout de paquets à l’image montée...{crlf;}- Source du paquet : C:\w100-glb{crlf;}- Opération d’ajout : sélective{crlf;}- Ignorer les vérifications d’applicabilité ? Non{crlf;}- Empêcher l’ajout du paquet si des actions en ligne sont nécessaires ? Non{crlf;}- Valider l’image après les opérations ? Oui{crlf;}Énumération des paquets à ajouter. Veuillez patienter...{crlf;}Nombre total de paquets : 128{crlf;}{crlf;}Traitement de 128 paquets...{crlf;}Paquet 1 sur 128 + +[PrgSetup.ProgressPreview] +Wait.Label=Veuillez patienter... +ImageIndexes.Message=Obtention des index de l'image en cours... + +[Options.ProgressPreview] +Wait.Label=Veuillez patienter... +ImageIndexes.Message=Obtention des index de l'image en cours... + +[DynaViewer.Designer.Main] +Dyna.Log.File.Label=DynaLog Log File: +LogFiles.Filter=Log Files|*.log +Dyna.Log.Event=DynaLog Event Logs +EventTimestamp.Column=Event Timestamp +ProcessID.Column=Process ID +EventCaller.Column=Event Caller +Message.Column=Message +Browse.Button=Parcourir... +Refresh.Button=Actualiser +Processed.Entries.Label=Number of processed entries: +About.ActionButton=À propos +LightCM.Label=Light +DarkCM.Label=Dark +SystemCM.Label=System +ColorMode.Button=Color Mode +PID.Label=PID: +EventCaller.Label=Event Caller: +Options.Heading.Label=Options: +RegexCB.Label=.* +Regex.Failure.Btn.Label=! +Aa.Label=Aa +Message.Label=Message: +Dyna.Log.Viewer.Label=DynaLog Log Viewer + +[DynaViewer.Designer.EventProps] +Num.Events.Label=Information for event of : +EventTimestamp.Label=Event Timestamp: +MethodCallers.Group=Method Callers +Field.Empty.Link=Why can the field above be empty? +Method.Function.Label=The method/function described above was called by method/function: +Logged.Method.Function.Label=The event was logged by method/function: +PID.Label=PID: +EventMessage.Label=Event Message: +NextEvent.Label=&Next Event +PreviousEvent.Label=&Previous Event +EventProps.Label=Event Properties + +[DynaViewer.Designer.Regex] +CheatsheetHelp.Label=Use the following cheatsheet when performing message queries with regular expressions: +CharacterClasses.Message=Character Classes:{crlf;}. Any character except newline{crlf;}\d Digit [0-9]{crlf;}\D Non-digit{crlf;}\w Word character [A-Za-z0-9_]{crlf;}\W Non-word character{crlf;}\s Whitespace{crlf;}\S Non-whitespace{crlf;}[abc] Any of a, b, or c{crlf;}[^abc] Not a, b, or c{crlf;}[a-z] Lowercase letter{crlf;}{crlf;}Quantifiers:{crlf;}{crlf;}* 0 or more{crlf;}- 1 or more{crlf;}{crlf;}? 0 or 1{crlf;}{lbrace;}n{rbrace;} Exactly n times{crlf;}{lbrace;}n,{rbrace;} n or more times{crlf;}{lbrace;}n,m{rbrace;} Between n and m times{crlf;}{crlf;}Anchors:{crlf;}^ Start of string/line{crlf;}$ End of string/line{crlf;}\b Word boundary{crlf;}\B Not a word boundary{crlf;}{crlf;}Groups:{crlf;}(abc) Capturing group{crlf;}(?:abc) Non-capturing group{crlf;}(?) Named group{crlf;}\1 Backreference group 1{crlf;}{crlf;}Common Examples:{crlf;}^\d+$ Only digits{crlf;}^[A-Za-z]+$ Only letters{crlf;}^\w+@\w+.\w+$ Basic email{crlf;}^\d{lbrace;}4{rbrace;}-\d{lbrace;}2{rbrace;}-\d{lbrace;}2{rbrace;}$ Date YYYY-MM-DD +PinTop.CheckBox=Pin to top +RegexCheatsheet.Label=Regular Expression Cheatsheet + +[StarterScript.Designer.Main] +New.StarterScript.Ctrl.Label=New Starter Script (Ctrl + N) +Open.StarterScript.Label=Open Starter Script File... (Ctrl + O) +Save.StarterScript.Label=Save Starter Script File... (Ctrl + S) +Save.StarterScript.Tooltip=Save Starter Script File... (Ctrl + S){crlf;}Hold down SHIFT while clicking the icon to specify the target version for the starter script while saving. +About.ToolButton=About... +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +SaveScript.Ctrl.Shift.Label=Save Starter Script File as... (Ctrl + Shift + S) +Enable.Write.Access.Button=Enable write access... +Configure.Target.Button=Configure target script version... +Change.Editor.Font.Button=Change Editor Font... +NormalizeSpacing.Button=Normalize Spacing +Starter.Scripts.Message=Starter Scripts allow you to run commands when installing Windows images with your unattended answer file. Use this application to create your own starter scripts that you can share with other people, or modify existing starter scripts to suit your needs.{crlf;}{crlf;}Use the buttons in the toolbar to create, open, and save starter scripts. +LineColumn.Label=Line, Column +WordWrap.CheckBox=Word Wrap +Import.Existing.Button=Import Existing Script... +ScriptCode.Label=Script Code: +ScriptLanguage.Label=Script Language: +Script.Description.Label=Script Description: +ScriptName.Label=Script Name: +ScriptOptions.CheckBox=Script contains configurable options +Starter.Scripts.Dtss.Filter=Starter Scripts|*.dtss +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd|PowerShell scripts|*.ps1|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript Scripts|*.js;*.jse +Import.Existing.Script.Title=Import Existing Script +StarterScript.Editor.Label=Starter Script Editor + +[StarterScript.Designer.Version] +Ok.Button=OK +Cancel.Button=Annuler +ConfiguredScript.Message=This starter script can be configured to work with specific versions of DISMTools and the Starter Script Editor. Choose the version that you want to target with this script and click OK: +Target.Future08.RadioButton=This starter script targets DISMTools 0.8 and future versions +Target.Legacy073.RadioButton=This starter script targets DISMTools 0.7.3 +TargetVersion.Label=Choose target version for this script + +[ThemeDesigner.Designer.Main] +ThemeColors.Group=Theme Colors +OptionFour.Label=4 +OptionThree.Label=3 +OptionTwo.Label=2 +OptionOne.Label=1 +Change.Button=Modifier... +Bg.Color.Inner.Label=Background Color for Inner Sections: +ForegroundColor.Label=Foreground Color: +Inactive.Colors.Label=(Inactive colors are calculated by the theme engine) +AccentColors.Label=Accent Colors: +BackgroundColor.Label=Background Color: +DISM.Tools.Dark.CheckBox=DISMTools should use dark mode glyphs +ThemeName.Label=Theme Name: +See.Changes.Live.Label=See your changes live on the preview section below: +NewTheme.Label=New Theme +Open.Theme.File.Button=Open Theme File... +Save.Theme.File.Button=Save theme file... +About.Button=About... +Value.Option4.Label=4 +Value.Option3.Label=3 +Value.Option2.Label=2 +Heuristic.Reasoning.Message=Heuristic reasoning is reasoning not regarded as final and strict but as provisional and plausible only, whose purpose is to discover the solution of the present problem. We are often obliged to use heuristic reasoning. We shall attain complete certainty when we shall obtain the complete solution, but before obtaining certainty we must often be satisfied with a more or less plausible guess. We may need the provisional before we attain the final. +Inactivecontrol.Label=INACTIVE CONTROL +Activecontrol.Label=ACTIVE CONTROL +Label.Inner.Section.Label=Label in Inner Section +Value.Option1.Label=1 +TestControl.Label=Test Control 1 +Theme.Files.Ini.Filter=Theme Files|*.ini +SaveFile.Filter=Theme Files|*.ini +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +Enable.Write.Access.Button=Enable write access... +DISM.Tools.Theme.Label=DISMTools Theme Designer + +[Updater.Designer.Main] +DISM.Tools.Update.Label=DISMTools Update Check System - Version +ProductUpdates.Label=Product updates +Update.Button=Update +View.Release.Notes.Link=View release notes +VersionInfo.Label=Version information +Close.Open.Message=Please close any open DISMTools windows, while saving any projects loaded, and then click {quot;}Update{quot;} +NewVersion.Label=There is a new version available to download and install: +Progress.Label=Progression +CheckingUpdates.Label=Checking for updates... +Launch.Ready.CheckBox=Launch when ready +Finishing.Update.Label=Finishing update installation +InstallingUpdate.Label=Installing the update +Prepare.Update.Install.Label=Preparing update installation +Downloading.Update.Label=Downloading the update +Update.Take.Time.Label=The update may take some time to install. +Wait.Update.Label=Please wait while we update your copy of DISMTools. This may take some time. +Updating.DISM.Tools.Label=Updating DISMTools... +Launch.Button=Launch +Version.Come.New.Message=This version may come with new settings you may not have set previously. Your old settings file will be migrated to this version. +DISM.Tools.Updated.Label=DISMTools has been updated successfully. You can now enjoy the new features of this release. +UpdateComplete.Label=Update complete + +[PEHelper.Designer.Main] +WhatWant.Label=What do you want to do? +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartPXE.Link=Start a PXE Helper Server for Network Installation +Exit.Button=Quitter +Explore.Contents.Disc.Link=Explore contents of this disc +Prepare.System.Image.Link=Prepare System for Image Capture +PE.Helper.Message=PE Helper Scripts and Components (c) 2024-2026 CodingWonders SoftwareCompilation Scripts (c) 2022 CT Tech Group LLCFOG PowerShell API (c) 2020 JJ Fullmer +StartPXE.Label=Start a PXE Helper Server for Network Installation +Back.Button=Retour +Copy.Install.Image.Link=Copy installation image to WDS server +Copy.Boot.Image.Link=Copy boot image to WDS server +StartPXE.PXEFOG.Link=Start PXE Helper Server for FOG +StartPXE.PXE.Windows.Link=Start PXE Helper Server for Windows Deployment Services +DISM.Tools.PE.Label=DISMTools Preinstallation Environment + +[PEHelper.Designer.ServerPort] +Ok.Button=OK +Cancel.Button=Annuler +Components.Disc.Rely.Message=Server components in this disc rely on ports to listen to requests from clients. If a port is in use by another program or service, you can use this dialog to specify a different port for the server components.{crlf;}{crlf;}The port you specify here will be used until you close the main menu. When you click OK, the server component will be launched using that port. Otherwise, it will be launched using either the default port or the previously configured port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[PEHelper.Designer.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +Cancel.Link=Cancel launch of this tool +ManualMode.Link=Launch in Manual mode (advanced) +AutomaticMode.Link=Launch in Automatic mode (recommended) +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other preferences to new user profiles +PrepareCapture.Label=Prepare System for Image Capture + +[PEHelper.Designer.WDSArch] +Okbutton.Button=OK +CancelButton.Button=Annuler +Architecture.Label=Target architecture: +Architecture.Label.Label=Specify architecture for target WDS boot image + +[PEHelper.Designer.WDSGroup] +Ok.Button=OK +Cancel.Button=Annuler +Action.Choose.Label=Choose an action: +Refresh.Button=Actualiser +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[PEHelper.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +AutomaticMode.Link=Launch in Automatic mode (recommended) +ManualMode.Link=Launch in Manual mode (advanced) +Cancel.Link=Cancel launch of this tool +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other current preferences for new user profiles + +[Progress.LogText] +Of.Word={space;}sur{space;} +Creating.Project.Structure=Création de la structure du projet... +Project.Created.Successfully=Le projet a été créé avec succès. +An.Error.Has.Occurred.Please.Read.The.Details=An error has occurred. Please read the details below:{space;} +Debugging.Information=Debugging information:{space;} +Appending.Mount.Directory.To.Specified.Target.Image=Appending mount directory to specified target image... +Options=Options : +Source.Image.Directory=- Source image directory:{space;} +Destination.Image.File=- Destination image file:{space;} +Destination.Image.Name=- Destination image name:{space;} +Destination.Image.Description=- Destination image description:{space;} +None.Specified=(aucun spécifié) +Configuration.List.File.Not.Specified=- Configuration list file: not specified +Configuration.List.File=- Configuration list file:{space;} +WARNING.The.Configuration.List.File.Does.Not.Exist={space;}{space;}{space;}WARNING: the configuration list file does not exist in the file system. Skipping file... +Append.Image.With.WIMBOOT.Configuration=- Append image with WIMBoot configuration?{space;} +Yes=Oui +No=Non +Make.Image.Bootable=- Make image bootable?{space;} +Verify.Image.Integrity=- Verify image integrity?{space;} +Check.For.File.Errors=- Check for file errors?{space;} +Use.The.Reparse.Point.Tag.Fix=- Use the reparse point tag fix?{space;} +Capture.Extended.Attributes=- Capture extended attributes?{space;} +Gathering.Error.Level=Récupération du niveau d’erreur... +Error.Level.0x={space;}{space;}{space;}{space;}Error level : 0x +Error.Level={space;}{space;}{space;}{space;}Error level :{space;} +Applying.Image=Application de l’image... +Source.Image.File=- Source image file:{space;} +Index.To.Apply=- Index to apply:{space;} +Target.Directory=- Target directory:{space;} +Split.FFU.SFU.File.Pattern.Not.Specified.Not=- Split FFU (SFU) file pattern: not specified/not using SFU file +Split.FFU.SFU.File.Pattern=- Split FFU (SFU) file pattern:{space;} +Verify.Image.Integrity.Yes=- Verify image integrity? Yes +Verify.Image.Integrity.No=- Verify image integrity? No +Check.For.File.Errors.Yes=- Check for file errors? Yes +Check.For.File.Errors.No=- Check for file errors? No +Use.Reparse.Point.Tag.Fix.Yes=- Use reparse point tag fix? Yes +Use.Reparse.Point.Tag.Fix.No=- Use reparse point tag fix? No +Split.WIM.SWM.File.Pattern.Not.Specified.Not=- Split WIM (SWM) file pattern: not specified/not using SWM file +Split.WIM.SWM.File.Pattern=- Split WIM (SWM) file pattern:{space;} +Validate.For.Trusted.Desktop.Yes=- Validate for Trusted Desktop? Yes +Validate.For.Trusted.Desktop.No.Not.Supported=- Validate for Trusted Desktop? No/Not supported +Apply.Using.WIMBOOT.Configuration.Yes=- Apply using WIMBoot configuration? Yes +Apply.Using.WIMBOOT.Configuration.No=- Apply using WIMBoot configuration? No +Use.Compact.Mode.Yes=- Use Compact mode? Yes +Use.Compact.Mode.No=- Use Compact mode? No +Apply.Using.Extended.Attributes.Yes=- Apply using extended attributes? Yes +Apply.Using.Extended.Attributes.No=- Apply using extended attributes? No +Capturing.Directory=Capture du dossier... +Source.Directory=- Source directory:{space;} +Destination.Image=- Destination image:{space;} +Captured.Image.Name=- Captured image name:{space;} +Captured.Image.Description.None.Specified=- Captured image description: none specified +Captured.Image.Description=- Captured image description:{space;} +Compression.Type.None=- Compression type: none +Compression.Type.Default=- Compression type: default +Capturing.Image=Capture de l’image... +Compression.Type.Fast=- Compression type: fast +Compression.Type.Maximum=- Compression type: maximum +Mark.Image.As.Bootable.Yes=- Mark image as bootable? Yes +Mark.Image.As.Bootable.No=- Mark image as bootable? No +Check.Image.Integrity.Yes=- Check image integrity? Yes +Check.Image.Integrity.No=- Check image integrity? No +Verify.File.Errors.Yes=- Verify file errors? Yes +Verify.File.Errors.No=- Verify file errors? No +Use.The.Reparse.Point.Tag.Fix.Yes=- Use the Reparse Point tag fix? Yes +Use.The.Reparse.Point.Tag.Fix.No=- Use the Reparse Point tag fix? No +Append.With.WIMBOOT.Configuration.Yes=- Append with WIMBoot configuration? Yes +Append.With.WIMBOOT.Configuration.No=- Append with WIMBoot configuration? No +Capture.Extended.Attributes.Yes=- Capture extended attributes? Yes +Capture.Extended.Attributes.No=- Capture extended attributes? No +Cleaning.Up.Mount.Points=Cleaning up mount points... +This.Can.Take.Some.Time.Depending.On.The=This can take some time, depending on the drives connected to this system. +Saving.Changes=Enregistrement des modifications... +Mount.Directory=- Mount directory:{space;} +Removing.Volume.Images.From.File=Removing volume images from file... +Source.Image=- Source image:{space;} +Removing.Volume.Images=Removing volume images... +Error.Level.2={space;}Error level :{space;} +Error.Level.0x.2={space;}Error level : 0x +Exporting.The.Specified.Image.To.A.Destination.Image=Exporting the specified image to a destination image... +Source.Image.Index=- Source image index:{space;} +Compression.Type.No.Compression=- Compression type: no compression +Compression.Type.Fast.Compression=- Compression type: fast compression +Compression.Type.Maximum.Compression=- Compression type: maximum compression +Compression.Type.ESD.Conversion.Recovery=- Compression type: ESD conversion (recovery) +Mark.The.Image.As.Bootable=- Mark the image as bootable?{space;} +Check.Image.Integrity.Before.Exporting.The.Image=- Check image integrity before exporting the image?{space;} +NOTE.The.Source.Image.Contains.An.Asterisk.Sign=NOTE: the source image contains an asterisk sign (*) in the file name to merge all SWM files +Mounting.Image=Montage de l’image... +Image.File=- Image file:{space;} +Image.Index=- Image index:{space;} +Mount.Point=- Mount point:{space;} +Mount.Image.With.Read.Only.Permissions.Yes=- Mount image with read-only permissions? Yes +Mount.Image.With.Read.Only.Permissions.No=- Mount image with read-only permissions? No +Optimize.Mount.Time.Yes=- Optimize mount time? Yes +Optimize.Mount.Time.No=- Optimize mount time? No +Optimizing.Windows.Image=Optimizing Windows image... +Source.Image.To.Optimize=- Source image to optimize:{space;} +Partition.To.Optimize=- Partition to optimize:{space;} +Default.Partition.In.The.FFU.Will.Be.Optimized={space;}(Default partition in the FFU will be optimized) +Getting.Error.Level=Getting error level... +Optimization.Mode=- Optimization mode:{space;} +Reduce.Online.Configuration.Time=Reduce online configuration time +Prepare.Image.For.WIMBOOT.System=Prepare image for WIMBoot system +Reloading.Servicing.Session=Reloading servicing session... +Splitting.FFU.File.Into.SFU.Files=Splitting FFU file into SFU files... +Source.Image.File.To.Split=- Source image file to split:{space;} +Maximum.Size.Of.The.Split.Images.In.MB=- Maximum size of the split images (in MB):{space;} +Name.And.Path.Of.The.Target.SFU.File=- Name and path of the target SFU file:{space;} +Check.Integrity.Before.Splitting.This.Image=- Check integrity before splitting this image?{space;} +Do.Note.That.If.The.Image.Contains.A=Do note that, if the image contains a large file that can't fit within the maximum size, a SFU file may be larger than the rest, to accommodate it. +Splitting.WIM.File.Into.SWM.Files=Splitting WIM file into SWM files... +Name.And.Path.Of.The.Target.SWM.File=- Name and path of the target SWM file:{space;} +Do.Note.That.If.The.Image.Contains.A.2=Do note that, if the image contains a large file that can't fit within the maximum size, a SWM file may be larger than the rest, to accommodate it. +Unmounting.Image.File.From.Mount.Point=Unmounting image file from mount point... +Unmount.Operation.Commit=- Unmount operation: Commit +Unmount.Operation.Discard=- Unmount operation: Discard +Append.Changes.To.New.Index.Yes=- Append changes to new index? Yes +Append.Changes.To.New.Index.No=- Append changes to new index? No +Package.Name=- Package name:{space;} +Package.Description=- Package description:{space;} +Package.Release.Type=- Package release type:{space;} +Package.Is.Applicable.To.This.Image=- Package is applicable to this image?{space;} +Package.Is.Already.Installed=- Package is already installed?{space;} +Total.Number.Of.Packages=Total number of packages:{space;} +Exception=Exception{space;} +Has.Occurred.While.Enumerating.Packages.Enumerating.Packages.In={space;}has occurred while enumerating packages. Enumerating packages in the top folder... +Total.Number.Of.Packages.1=Total number of packages: 1 +Adding.Packages.To.Mounted.Image=Adding packages to mounted image... +Package.Source=- Package source:{space;} +Addition.Operation.Recursive=- Addition operation: recursive +Addition.Operation.Selective=- Addition operation: selective +Ignore.Applicability.Checks.Yes=- Ignore applicability checks? Yes +Ignore.Applicability.Checks.No=- Ignore applicability checks? No +Prevent.Package.Addition.If.Online.Actions.Need.To=- Prevent package addition if online actions need to be performed? Yes +NOTE.If.The.Mounted.Image.Requires.That.Online=NOTE: if the mounted image requires that online actions be performed, all packages might fail installation; but the operation might still be successful +Prevent.Package.Addition.If.Online.Actions.Need.To.2=- Prevent package addition if online actions need to be performed? No +Commit.Image.After.Operations.Are.Done.Yes=- Commit image after operations are done? Yes +Commit.Image.After.Operations.Are.Done.No=- Commit image after operations are done? No +Enumerating.Packages.To.Add.Please.Wait=Enumerating packages to add. Please wait... +Processing=Processing{space;} +Packages={space;}packages... +Some.Packages.Require.A.System.Restart.To.Be=Some packages require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Package=Package{space;} +Package.Is.Already.Added.Skipping.Installation.Of.This=Package is already added. Skipping installation of this package... +Package.Is.Not.Applicable.To.This.Image.Skipping=Package is not applicable to this image. Skipping installation of this package... +The.Package.About.To.Be.Added.Is.A=The package about to be added is a MSU file. Continuing... +Processing.Package=Processing package... +Error.Level.3={space;}Error level:{space;} +Gathering.Error.Level.For.Selected.Packages=Gathering error level for selected packages... +Package.No=- Package no.{space;} +The.Package.About.To.Be.Added.Is.A.2=The package about to be added is a Microsoft Update Manifest (MUM) file. +Removing.Packages.From.Mounted.Image=Removing packages from mounted image... +Enumerating.Packages.To.Remove.Please.Wait=Enumerating packages to remove. Please wait... +Amount.Of.Packages.To.Remove=Amount of packages to remove:{space;} +Package.State.Installed=- Package state: installed +Package.State.An.Uninstall.Is.Pending=- Package state: an uninstall is pending +Package.State.An.Install.Is.Pending=- Package state: an install is pending +Processing.Package.Removal=Processing package removal... +This.Package.Can.T.Be.Removed.Skipping.Removal=This package can't be removed. Skipping removal of this package... +Package.State=- Package state:{space;} +Enabling.Features=Enabling features... +Use.Parent.Package.To.Enable.Features.Yes=- Use parent package to enable features? Yes +Use.Parent.Package.To.Enable.Features.No=- Use parent package to enable features? No +Parent.Package.Name.Not.Specified=- Parent package name: not specified +Parent.Package.Name=- Parent package name:{space;} +Use.Feature.Source.Yes=- Use feature source? Yes +Use.Feature.Source.No=- Use feature source? No +Feature.Source.Not.Specified=- Feature source: not specified +Feature.Source=- Feature source:{space;} +Enable.All.Parent.Features.Yes=- Enable all parent features? Yes +Enable.All.Parent.Features.No=- Enable all parent features? No +Contact.Windows.Update.Yes=- Contact Windows Update? Yes +Contact.Windows.Update.No.The.System.Is.In=- Contact Windows Update? No, the system is in Safe Mode +Contact.Windows.Update.No.This.Is.Not.An=- Contact Windows Update? No, this is not an online installation +Contact.Windows.Update.No=- Contact Windows Update? No +Commit.Image.After.Enabling.Features.Yes=- Commit image after enabling features? Yes +Commit.Image.After.Enabling.Features.No=- Commit image after enabling features? No +Enumerating.Features.To.Enable=Enumerating features to enable... +Total.Number.Of.Features.To.Enable=Total number of features to enable:{space;} +Feature=Feature{space;} +Feature.Name=- Feature name:{space;} +Feature.Description=- Feature description:{space;} +Gathering.Error.Level.For.Selected.Features=Gathering error level for selected features... +Feature.No=- Feature no.{space;} +Some.Features.Require.A.System.Restart.To.Be=Some features require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Disabling.Features=Disabling features... +Use.Parent.Package.To.Disable.Features.Yes=- Use parent package to disable features? Yes +Use.Parent.Package.To.Disable.Features.No=- Use parent package to disable features? No +Remove.Feature.Manifest.Yes=- Remove feature manifest? Yes +Remove.Feature.Manifest.No=- Remove feature manifest? No +Enumerating.Features.To.Disable=Enumerating features to disable... +Total.Number.Of.Features.To.Disable=Total number of features to disable:{space;} +Reverting.Pending.Servicing.Actions=Reverting pending servicing actions... +Cleaning.Up.Service.Pack.Backup.Files=Cleaning up Service Pack backup files... +Hide.Service.Packs.From.The.Installed.Updates.List=- Hide Service Packs from the Installed Updates list?{space;} +Cleaning.Up.The.Component.Store=Cleaning up the component store... +Perform.Superseded.Component.Base.Reset=- Perform superseded component base reset?{space;} +Defer.Long.Running.Operations=- Defer long-running operations?{space;} +Analyzing.The.Component.Store=Analyzing the component store... +Checking.The.Component.Store.Health=Checking the component store health... +Scanning.The.Component.Store=Scanning the component store... +Repairing.The.Component.Store=Repairing the component store... +Use.Different.Source=- Use different source?{space;} +Yes.2=Yes ( +Limit.Windows.Update.Access=- Limit Windows Update access?{space;} +No.This.Is.Not.An.Online.Installation=No, this is not an online installation +The.System.Is.In.Safe.Mode=, the system is in Safe Mode +Adding.Provisioning.Package.To.The.Image=Adding provisioning package to the image... +Provisioning.Package=- Provisioning package:{space;} +Catalog.File=- Catalog file:{space;} +None.Specified.2=aucun spécifié +Commit.Image.After.Adding.Provisioning.Package=- Commit image after adding provisioning package?{space;} +Adding.Provisioned.APPX.Packages=Adding provisioned AppX packages... +Use.A.License.File.For.APPX.Packages.Yes=- Use a license file for AppX packages? Yes +License.File=- License file:{space;} +Use.A.License.File.For.APPX.Packages.No=- Use a license file for AppX packages? No +License.File.Not.Using=- License file: not using +Use.A.Custom.Data.File.For.APPX.Packages=- Use a custom data file for AppX packages? Yes +Custom.Data.File=- Custom data file:{space;} +Use.A.Custom.Data.File.For.APPX.Packages.2=- Use a custom data file for AppX packages? No +Custom.Data.File.Not.Using=- Custom data file: not using +Use.All.Regions.For.APPX.Packages.Yes=- Use all regions for AppX packages? Yes +Package.Regions.All=- Package regions: all +Use.All.Regions.For.APPX.Packages.No=- Use all regions for AppX packages? No +Package.Regions=- Package regions:{space;} +Commit.Image.After.Adding.APPX.Packages.Yes=- Commit image after adding AppX packages? Yes +Commit.Image.After.Adding.APPX.Packages.No=- Commit image after adding AppX packages? No +Enumerating.APPX.Packages.To.Add=Enumerating AppX packages to add... +Total.Number.Of.Packages.To.Add=Total number of packages to add:{space;} +APPX.Package.File=- AppX package file:{space;} +Application.Name=- Application name:{space;} +Application.Publisher=- Application publisher:{space;} +Application.Version=- Application version:{space;} +The.Application.About.To.Be.Added.Is.An=The application about to be added is an encrypted file. Since the program is managing the active installation, a PowerShell command will be run. +The.Application.About.To.Be.Added.Is.An.2=The application about to be added is an encrypted file. Encrypted packages can only be added to active installations. Skipping this package... +Warning.The.License.File.Does.Not.Exist.Continuing=Warning: the license file does not exist. Continuing without one... +Do.Note.That.If.This.App.Requires.A={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Do note that, if this app requires a license file, it may fail addition. +Also.This.May.Compromise.The.Image={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Also, this may compromise the image. +The.Following.Dependency.Packages.Will.Be.Installed.Alongside=- The following dependency packages will be installed alongside this application: +Dependency={space;}{space;}{space;}{space;}- Dependency:{space;} +Warning.The.Dependency=Warning: the dependency +Does.Not.Exist.In.The.File.System.Skipping=does not exist in the file system. Skipping dependency... +Warning.The.Custom.Data.File.Does.Not.Exist=Warning: the custom data file does not exist. Continuing without one... +Gathering.Error.Level.For.Selected.APPX.Packages=Gathering error level for selected AppX packages... +Application.Is.Registered.To.A.User.No=- Application is registered to a user? No +Application.Is.Registered.To.A.User.Yes=- Application is registered to a user? Yes +The.Removal.Of.This.Application.May.Require.You={space;}{space;}The removal of this application may require you to use PowerShell to completely remove it +A.PowerShell.Helper.Will.Be.Used.To.Remove=A PowerShell helper will be used to remove AppX packages. Please wait... +Log.Off.For.The.Deprovisioning.Of.Applications.To=Log off for the deprovisioning of applications to be fully carried out. +Removing.Provisioned.APPX.Packages=Removing provisioned AppX packages... +Enumerating.APPX.Packages.To.Remove=Enumerating AppX packages to remove... +Total.Number.Of.Packages.To.Remove=Total number of packages to remove:{space;} +Display.Name=- Display name:{space;} +Setting.The.Keyboard.Layered.Driver=Setting the keyboard layered driver... +Current.Keyboard.Layered.Driver=- Current keyboard layered driver:{space;} +New.Keyboard.Layered.Driver=- New keyboard layered driver:{space;} +Adding.Capabilities.To.Mounted.Image=Adding capabilities to mounted image... +Use.A.Source.For.Capability.Addition=- Use a source for capability addition?{space;} +Capability.Source=- Capability source:{space;} +No.Source.Has.Been.Provided=No source has been provided +Limit.Access.To.Windows.Update=- Limit access to Windows Update?{space;} +Commit.Image.After.Adding.Capabilities=- Commit image after adding capabilities?{space;} +Warning.The.Specified.Source.Does.Not.Exist.In=Warning: the specified source does not exist in the file system, and it will be skipped +Enumerating.Capabilities.To.Add.Please.Wait=Enumerating capabilities to add. Please wait... +Total.Number.Of.Capabilities=Total number of capabilities:{space;} +Capability=Capability{space;} +Capability.Identity=- Capability identity:{space;} +Capability.Name=- Capability name:{space;} +Capability.Description=- Capability description:{space;} +Gathering.Error.Level.For.Selected.Capabilities=Gathering error level for selected capabilities... +Capability.No=- Capability no.{space;} +Some.Capabilities.Require.A.System.Restart.To.Be=Some capabilities require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Removing.Capabilities.From.Mounted.Image=Removing capabilities from mounted image... +Enumerating.Capabilities.To.Remove.Please.Wait=Enumerating capabilities to remove. Please wait... +Setting.The.New.Image.Edition=Setting the new image edition... +New.Edition=- New edition:{space;} +Will.The.EULA.Be.Copied=- Will the EULA be copied?{space;} +Yes.To.The.Following.Destination=Yes, to the following destination:{space;} +Will.The.EULA.Be.Accepted=- Will the EULA be accepted?{space;} +Yes.With.The.Following.Product.Key=Yes, with the following product key:{space;} +Setting.The.New.Product.Key=Setting the new product key... +New.Product.Key=- New product key:{space;} +Adding.Driver.Packages.To.Mounted.Image=Adding driver packages to mounted image... +Force.Installation.Of.Unsigned.Drivers=- Force installation of unsigned drivers?{space;} +Commit.Image.After.Adding.Driver.Packages=- Commit image after adding driver packages?{space;} +Warning.The.Option.To.Force.Installation.Of.Unsigned=Warning: the option to force installation of unsigned drivers has been checked. Do note that unsigned drivers might cause instability on the resulting Windows image. +Enumerating.Drivers.To.Add.Please.Wait=Enumerating drivers to add. Please wait... +Total.Number.Of.Drivers=Total number of drivers:{space;} +Driver=Driver{space;} +Hardware.Description=- Hardware description:{space;} +Hardware.ID=- Hardware ID:{space;} +Additional.IDs=- Additional IDs +Compatible.IDs={space;}{space;}- Compatible IDs:{space;} +Excluded.IDs={space;}{space;}- Excluded IDs:{space;} +Hardware.Manufacturer=- Hardware manufacturer:{space;} +Hardware.Architecture=- Hardware architecture:{space;} +This.Driver.File.Targets.More.Than.10.Devices=This driver file targets more than 10 devices. To avoid creating log files large in size, we will not show information of this driver package, and will proceed anyway. +If.You.Want.To.Get.Information.Of.This=If you want to get information of this driver package, go to Commands > Drivers > Get driver information > I want to get information about driver files, and specify this driver file: +We.Couldn.T.Get.Information.Of.This.Driver=We couldn't get information of this driver package. Proceeding anyway... +The.Driver.Package.Currently.About.To.Be.Processed=The driver package currently about to be processed is a folder, so information about it can't be obtained. Proceeding anyway... +This.Folder.Will.Be.Scanned.Recursively.Driver.Addition=This folder will be scanned recursively. Driver addition may take a longer time... +Gathering.Error.Level.For.Selected.Drivers=Gathering error level for selected drivers... +Driver.No=- Driver no.{space;} +Removing.Driver.Packages.From.Mounted.Image=Removing driver packages from mounted image... +Getting.Image.Drivers.This.May.Take.Some.Time=Getting image drivers. This may take some time... +Enumerating.Drivers.To.Remove.Please.Wait=Enumerating drivers to remove. Please wait... +Exporting.Drivers.To.Specified.Folder=Exporting drivers to specified folder... +Export.Target=- Export target:{space;} +Export.All.Drivers.Or.Just.Those.With.Matching=- Export all drivers, or just those with matching class names?{space;} +All.Drivers=Tous les pilotes +Drivers.With.Matching.Class.Name=Drivers with matching class name +If.Not.All.Drivers.Are.Exported.Which.Class=- If not all drivers are exported, which class name is used for drivers that will be exported?{space;} +Driver.S.Will.Be.Exported.To.The.Destination={space;}driver(s) will be exported to the destination +Exporting.Driver.File=Exporting driver file{space;} +Getting.Image.Drivers=Getting image drivers... +Importing.Third.Party.Drivers=Importing third party drivers... +Driver.Import.Source.Windows.Image=- Driver import source: Windows image ( +Driver.Import.Source.Active.Installation=- Driver import source: active installation +Driver.Import.Source.Offline.Installation=- Driver import source: offline installation ( +Creating.Temporary.Folder.For.Driver.Exports=Creating temporary folder for driver exports... +The.Temporary.Folder.Could.Not.Be.Created.See=The temporary folder could not be created. See below for reasons why: +Exporting.Third.Party.Drivers.From.Import.Source=Exporting third-party drivers from import source... +Importing.Third.Party.Drivers.From.The.Temporary.Export=Importing third-party drivers from the temporary export directory to the destination image... +Deleting.Temporary.Export.Directory=Deleting temporary export directory... +We.Couldn.T.Delete.The.Temporary.Export.Directory=We couldn't delete the temporary export directory. You'll need to delete the{space;} +Export.Temp=export_temp +Directory.Manually={space;}directory manually. +Published.Name=- Published name:{space;} +Provider.Name=- Provider name:{space;} +Class.Name=- Class name:{space;} +Class.Description=- Class description:{space;} +Class.GUID=- Class GUID:{space;} +Version.And.Date=- Version and date:{space;} +Is.Part.Of.The.Windows.Distribution=- Is part of the Windows distribution?{space;} +Is.Critical.To.The.Boot.Process=- Is critical to the boot process?{space;} +Warning.This.Driver.Package.Is.Part.Of.The=Warning: this driver package is part of the Windows distribution. Some areas may no longer work after this driver has been removed +Warning.This.Driver.Package.Is.Critical.To.The=Warning: this driver package is critical to the boot process. The target image may no longer boot or work correctly after this driver has been removed +Applying.Unattended.Answer.File.Options=Applying unattended answer file. Options: +Unattended.Answer.File=- Unattended answer file:{space;} +Creating.Directories.And.Copying.Files=Creating directories and copying files... +The.Unattended.Answer.File.Has.Been.Successfully.Copied=The unattended answer file has been successfully copied. +Setting.The.Windows.PE.Target.Path=Setting the Windows PE target path... +New.Target.Path=- New target path:{space;} +Setting.The.Windows.PE.Scratch.Space=Setting the Windows PE scratch space... +New.Scratch.Space.Amount=- New scratch space amount:{space;} +Setting.The.Amount.Of.Days.An.Uninstall.Can=Setting the amount of days an uninstall can happen... +Number.Of.Days=Number of days:{space;} +Removing.The.Ability.To.Revert.To.An.Old=Removing the ability to revert to an old installation of Windows... +Preparing.Operating.System.Rollback=Preparing operating system rollback... +Converting.Image=Converting image... +Index.To.Convert=- Index to convert:{space;} +Image.Conversion.Mode.Windows.Imaging.WIM.Electronic.Software=- Image conversion mode: Windows Imaging (WIM) --> Electronic Software Distribution (ESD) +Image.Conversion.Mode.Electronic.Software.Distribution.ESD.Windows=- Image conversion mode: Electronic Software Distribution (ESD) --> Windows Imaging (WIM) +Merging.SWM.Files.Into.A.WIM.File=Merging SWM files into a WIM file... +Target.Index=- Target index:{space;} +Switching.Image.Indexes=Switching image indexes... +Target.Mount.Directory=- Target mount directory:{space;} +Target.Image.Index=- Target image index:{space;} +Commit.Source.Index.Yes=- Commit source index? Yes +Commit.Source.Index.No=- Commit source index? No +Could.Not.Commit.Changes.To.The.Image.Discarding=Could not commit changes to the image. Discarding changes... +Mounting.Image.Index=Mounting image (index:{space;} +Replacing.FFU.File=Replacing FFU file{space;} +With={space;}with{space;} +The.FFU.File.Has.Been.Successfully.Replaced=The FFU file has been successfully replaced. +The.FFU.File.Could.Not.Be.Replaced=The FFU file could not be replaced:{space;} +Warning.The.Contents.Of.The.Log.Window.Could=Warning: the contents of the log window could not be saved to the log file. Reason:{space;} +The.Volume.Images.Have.Been.Deleted.If.You=The volume images have been deleted. If you want to remount this image into a DISMTools project, choose the{space;} +Mount.Image=Mount image +Option.Or.Use.This.Command.If.You.Want={space;}option, or use this command if you want to mount it elsewhere: +DISM.Mount.Image.Imagefile={space;}{space;}dism /mount-image /imagefile: +Index.Preferred.Index.Mountdir.Preferred.Mountpoint={space;}/index: /mountdir: +The.Specified.Image.Is.Already.Mounted.This.Command=The specified image is already mounted. This command works for{space;} +Orphaned=orphaned +Images={space;}images +The.Program.Tried.To.Save.Changes.To.An=The program tried to save changes to an image that was mounted as read-only.{space;} +To.Solve.This.Close.This.Dialog.And.Click=To solve this, close this dialog, and click{space;} +Tools.Remount.Image.With.Write.Permissions=Tools > Remount image with write permissions +Do.Note.That.If.The.Image.Came.From=Do note that, if the image came from an installation medium, you may need to copy the source file to perform modifications to it. +The.Program.Tried.To.Unmount.The.Image.But=The program tried to unmount the image, but some applications or processes have opened files or directories of the image. +Make.Sure.No.Application.Or.Process.Is.Using=Make sure no application or process is using the directories or files of the image. +If.The.Error.Occurred.At.The.End.Of=If the error occurred at the end of the operation (e.g., at 100%), and you were trying to save the changes; they might already be saved, and can be safe to continue discarding changes. +The.Mounted.Image.Cannot.Be.Committed.Back.Into=The mounted image cannot be committed back into the source file. +A.Partial.Unmount.Might.Have.Happened.Or.The=A partial unmount might have happened, or the image was still being mounted. +If.The.Image.Was.Unmounted.Whilst.Saving.Changes=If the image was unmounted whilst saving changes, the commit probably succeeded. Please validate this. If this is the case, proceed with unmounting the image discarding changes. +The.Source.File.Comes.From.A.Read.Only=The source file comes from a read-only source. You cannot mount it with read-write permissions. +Please.Re.Specify.The.Image.In.The.Mount=Please re-specify the image in the mount dialog whilst checking the{space;} +Read.Only=Lecture seule +Check.Box.You.Can.Also.Try.Copying.The={space;}check box. You can also try copying the source image to a folder with read-write permissions. +There.Is.Essential.Data.That.Was.Not.Picked=There is essential data that was not picked internally by the operation. This may be a bug in the software or a feature may be incomplete. +No.Packages.Have.Been.Added.Successfully.Try.Looking=No packages have been added successfully. Try looking up the error codes on the Internet +No.Packages.Have.Been.Removed.Successfully.Try.Looking=No packages have been removed successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Enabled.Successfully.Try.Looking=No features have been enabled successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Disabled.Successfully.Try.Looking=No features have been disabled successfully. Try looking up the error codes on the Internet +Either.This.Operation.Has.Failed.Or.Some.Drivers=Either this operation has failed or some drivers were not installed. Consider reloading this project or mode to see whether there are driver changes. +If.There.Are.Driver.Changes.Consider.Reading.The=If there are driver changes, consider reading the driver installation logs, stored in the INF directory of the target image. Otherwise, export the drivers you want to add from the source image and add them to the target image manually. +You.Can.Also.Manually.Customize.The.Export.Directory=You can also manually customize the export directory by deleting the drivers you don't need. This may be another way to fix this problem, but you will need to temporarily pause the driver addition procedure before it scans the export directory (this can be done by selecting anything from the DISM command prompt window that appears when performing an operation) +The.Program.Has.Suffered.A.Keyboard.Interrupt.Or=The program has suffered a keyboard interrupt, or a forced program closure. The operation has been cancelled. If you have done it accidentally, you may run it again +The.Microsoft.Edge.Components.Have.Already.Been.Installed=The Microsoft Edge components have already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.Browser.Has.Already.Been.Installed=The Microsoft Edge browser has already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.WebView2.Component.Has.Already.Been=The Microsoft Edge WebView2 component has already been installed in this image. There isn't anything to do here. +The.Operation.Could.Not.Be.Performed.Because.This=The operation could not be performed because this image has pending online operations. Applying and booting up the image might fix this issue. +The.Rollback.Process.Has.Started.Your.System.Needs=The rollback process has started. Your system needs to be restarted in order to continue. It will restart automatically in 10 seconds. Make sure you have saved your work. +The.Specified.Operation.Completed.Successfully.But.Requires.A=The specified operation completed successfully, but requires a restart in order to be fully applied. Save your work and restart when ready +This.Error.Has.Not.Yet.Been.Added.To=This error has not yet been added to the database, so a useful description can't be shown now. Try running the command manually and, if you see the same error, try looking it up on the Internet. +For.Detailed.Information.Consider.Reading.The.DISM.Operation=For detailed information, consider reading the DISM operation logs. +Cancelling.Background.Processes=Annulation des processus en arrière-plan... +The.Image.Registry.Hives.Need.To.Be.Unloaded=The image registry hives need to be unloaded before continuing to perform the task. +System.Editor.Was.Not.Found=System editor was not found +The.Log.File.Was.Not.Found=The log file was not found diff --git a/language/it-IT.ini b/language/it-IT.ini new file mode 100644 index 000000000..63e626296 --- /dev/null +++ b/language/it-IT.ini @@ -0,0 +1,6916 @@ +[LanguageFileInformation] +LanguageAuthor=DISMTools +LanguageCode=it-IT +LanguageName=Italiano + +[ADDSJoinDialog.ChangePage] +Finish.Label=Fine +Next.Button=Avanti + +[DomainJoin.DNS] +Site.Local.Address.Label=- {0} -- Indirizzo Site-Local; non è più in uso +MalformedAddress.Label=- {0} -- Indirizzo non valido +AddressSyntax.Message=Risultati della convalida della sintassi degli indirizzi:{crlf;}- Indirizzi non validi: {0}{crlf;}- Indirizzi IPv4: {1}{crlf;}- Indirizzi IPv6 globali: {2}{crlf;}- Indirizzi IPv6 Link-Local: {3}{crlf;}- Indirizzi IPv6 Unique Local: {4}{crlf;}{crlf;}- Rapporto indirizzi validi/non validi: {5}%{crlf;}{6}{crlf;}Questi indirizzi verranno configurati nel file di risposte automatiche. +InvalidAddresses.Label={crlf;}Alcuni indirizzi non sono validi. Ecco perché: {crlf;}{crlf;}{0}{crlf;} +AddressValidation.Title=Risultati convalida indirizzi DNS +Verification.Done.Label=La verifica è terminata. +Verification.Done.Message=La verifica è terminata.{crlf;}{crlf;}{0} + +[DomainJoin.Messages] +PrimarySuffix.Required=È necessario fornire un suffisso di dominio primario per DNS +InterfaceAlias.Message=È necessario fornire un alias di interfaccia per DNS. Si tratta dei nomi degli adattatori di rete installati nel sistema +No.DNSServer.None.Label=Non sono stati forniti indirizzi di server DNS +DomainName.Label=È necessario specificare un nome di dominio +User.Name.Label=È necessario specificare un nome utente +Password.User.Message=È necessario specificare una password per l’utente indicato, {quot;}{0}{quot;}, in base ai criteri di sicurezza imposti dal controller di dominio. +User.Appear.Exist.Message=L’utente indicato, {0}, non sembra esistere nel dominio fornito. Potresti non riuscire ad accedere con questo utente se non lo crei prima.{crlf;}{crlf;}Vuoi continuare? +Verify.Typed.Message=Verifica le informazioni digitate. Se un campo è stato inserito in modo errato, il dispositivo client potrebbe non unirsi al dominio.{crlf;}{crlf;}Il dispositivo client non si unirà al dominio anche se esegue edizioni Home di Windows.{crlf;}{crlf;}Sei sicuro che queste impostazioni siano corrette? +VerifySettings.Title=Verifica impostazioni +Domain.Settings.Message=Le impostazioni del dominio sono state aggiunte correttamente al file di risposte. Puoi modificare questi componenti nella sezione Componenti di sistema. +Add.Domain.Settings.Label=Non è stato possibile aggiungere le impostazioni del dominio. +Dnsshort.DomainName.Message=DNS, abbreviazione di Domain Name System, è un ruolo server che traduce automaticamente gli indirizzi IP in nomi leggibili.{crlf;}{crlf;}Quando usi questa procedura guidata, DISMTools presuppone che DNS sia stato configurato nella rete da te o dall’amministratore di sistema. In caso contrario, annulla la procedura e configuralo. +UserDisabled.Message=L’utente selezionato non è abilitato nel dominio. Non potrà accedere ai dispositivi di destinazione finché non verrà riabilitato. +AccountDisabled.Title=Account disabilitato +Computer.Belong.Domain.Label=Questo computer non appartiene a un dominio. +Provide.Domain.Label=Fornisci un dominio per cui testare la risoluzione del nome di dominio. +Nslookupoutput.Label=Output NSLOOKUP:{crlf;}{crlf;}{0} +DomainResolution.Title=Risultati risoluzione nome di dominio + +[ActiveInstallWarn] +Active.Install.Label=Informazioni sulla gestione dell'installazione attiva + +[ActiveInstall] +Enter.Online.Message=Si sta per accedere alla modalità di gestione dell'installazione attiva, che consente di apportare modifiche all'installazione attiva di Windows.{crlf;}{crlf;}Poiché questa modalità consente di modificare l'installazione, è necessario prestare la massima attenzione quando si eseguono operazioni con questo programma.{crlf;}{crlf;}Se si esegue incautamente un'operazione su un'immagine online, la si può rompere, fino a rendere l'installazione non avviabile.{crlf;}{crlf;}NON SIAMO RESPONSABILI di eventuali danni arrecati all'installazione attiva. Se il sistema risulta non avviabile, è necessario reinstallare Windows (eseguendo prima un backup dei file, se possibile) +ProjectUnloaded.Label=Il progetto corrente verrà scaricato +Continue.Button=Continua +Cancel.Button=Annullare + +[AddCapabilities] +AddCapabilities.Label=Aggiungi capacità +Image.Task.Header.Label={0} +Source.Label=Origine: +Ok.Button=OK +Cancel.Button=Annullare +Browse.Button=Sfoglia... +SelectAll.Button=Seleziona tutto +SelectNone.Button=Seleziona nessuno +Detect.Group.Policy.Button=Rileva da criteri di gruppo +Capabilities.Group=Capacità +Options.Group=Opzioni +DifferentSource.CheckBox=Specifica un'origine diversa per l'installazione delle capacità +WindowsUpdate.CheckBox=Limita l'accesso a Windows Update +Capability.Column=Capacità +State.Column=Stato + +[AddCaps.AddCap] +CommitImage.CheckBox=Applica l'immagine dopo l'aggiunta delle funzionalità + +[AddCapabilities.Initialize] +UnsupportedImage.Message=Questa azione non è supportata su questa immagine + +[AddCapabilities.Validation] +SourceRequired.Message=Alcune capacità di questa immagine richiedono l'indicazione di un'origine per essere abilitate. L'origine specificata non è valida per questa operazione. +Source.Required.Message=Specificare un'origine valida e riprovare. +Source.Message=Assicurarsi che l'origine esista nel file system e riprovare. +Source.Exist.File.Message=L'origine specificata non esiste nel file system. Assicurarsi che esista e riprovare +Source.Required.No.Message=Non è stata specificata un'origine. Specificare un'origine e riprovare. +Selected.None.Message=Non sono state selezionate capacità da installare. Selezionare alcune capacità e riprovare. + +[AddDrivers] +Folder.Label=Cartella +Title.Label=Aggiungi driver +Image.Task.Header.Label={0} +Drivers.Required.Message=Specificare i driver da aggiungere utilizzando i pulsanti sottostanti o rilasciandoli nell'elenco sottostante: +Scan.Driver.Message=È possibile lasciare che il programma esegua una scansione ricorsiva delle cartelle dei driver presenti nell'elenco sottostante e aggiungerli. A tale scopo, selezionare le voci che si desidera sottoporre a scansione: +Ok.Button=OK +Cancel.Button=Annullare +AddFile.Button=Aggiungi file... +AddFolder.Button=Aggiungi cartella... +Remove.Entries.Button=Rimuovi tutte le voci +Remove.Selected.Entry.Button=Rimuovi la voce selezionata +Force.Install.CheckBox=Forza l'installazione dei driver non firmati +CommitImage.CheckBox=Applica l'immagine dopo l'aggiunta dei driver +DriverFiles.Group=File di driver +DriverFolders.Group=Cartelle dei driver +Options.Group=Opzioni +FileFolder.Column=File/Cartella +Type.Column=Tipo +DriverPackage.Title=Specificare il pacchetto driver da aggiungere +DriverFolder.Description=Specificare la cartella contenente i pacchetti di driver. Sarà quindi possibile specificare se è necessario eseguire una scansione ricorsiva: + +[AddDrivers.Actions] +Package.Folder.Message=Il pacchetto specificato è una cartella. Si può lasciare che DISM la scansioni ricorsivamente per aggiungere tutti i driver in essa contenuti, oppure si possono specificare i driver da aggiungere manualmente.{crlf;}{crlf;}- Per consentire a DISM di eseguire la scansione ricorsiva di questa cartella, fare clic su Sì{crlf;}- Per scegliere manualmente i driver in questa cartella, fare clic su No{crlf;}- Per non aggiungere questa cartella, fare clic su Annulla +Packages.None.Message=Non ci sono pacchetti driver nella cartella specificata + +[AddDrivers.DragDrop] +Package.Folder.Message=Il pacchetto specificato è una cartella. Si può lasciare che DISM la scansioni ricorsivamente per aggiungere tutti i driver in essa contenuti, oppure si possono specificare i driver da aggiungere manualmente.{crlf;}{crlf;}- Per consentire a DISM di eseguire la scansione ricorsiva di questa cartella, fare clic su Sì{crlf;}- Per scegliere manualmente i driver in questa cartella, fare clic su No{crlf;}- Per non aggiungere questa cartella, fare clic su Annulla +Folder.Label=Cartella +File.Item=File + +[AddDrivers.FileOk] +File.Label=File + +[AddDrivers.Validation] +DriverPackages.None.Message=Non sono stati selezionati pacchetti driver da installare. Specificare i pacchetti di driver che si desidera installare e riprovare + +[AddListEntry] +Entry.Label=Voce: +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annulla + +[AddPackage] +AddPackages.Label=Aggiungi pacchetti +PackageSource.Label=Origine pacchetto: +PackageOperation.Label=Operazione pacchetto: +Browse.Button=Sfoglia... +SelectAll.Button=Seleziona tutto +SelectNone.Button=Seleziona nessuno +Update.Manifest.Button=Aggiungere il manifesto di aggiornamento... +Cancel.Button=Annulla +Ok.Button=OK +Packages.Choose.RadioButton=Scegliere quali pacchetti aggiungere: +Ignore.CheckBox=Ignorare i controlli di applicabilità (non consigliato) +CommitImage.CheckBox=Applica l'immagine dopo l'aggiunta dei pacchetti +Packages.Group=Pacchetti +Options.Group=Opzioni +Dir.CAB.Required.Label=Specificare una directory in cui si trovano i file CAB o MSU +CabFolder.Description=Specificare la cartella contenente i pacchetti CAB o MSU: + +[AddPkg] +ScanRecursive.RadioButton=Scansiona la cartella in modo ricorsivo per i pacchetti +Skip.Online.Install.CheckBox=Salta l'installazione del pacchetto se sono in corso operazioni online + +[AddPackage.CountItems] +Folder.Contain.Label=Questa cartella non contiene pacchetti. Utilizzare un'altra origine e riprovare +Folder.Contains.Label=Questa cartella contiene {0} pacchetto. +Folder.Packages.Label=Questa cartella contiene {0} pacchetti. + +[AddPackage.GatherPackages] +Scanning.Dir.Label=Scansione della directory per i pacchetti. Attendere... + +[AddPackage.Validation] +Packages.Message=Selezionare i pacchetti da aggiungere e riprovare. È anche possibile continuare a lasciare che DISM esegua la scansione dei pacchetti applicabili +PackagesSelected.Title=Nessun pacchetto selezionato + +[AppxProvision] +Add.Prov.Item=Aggiungi pacchetti AppX approvvigionati +Packages.Required.Message=Aggiungere pacchetti AppX imballati o non imballati utilizzando i pulsanti sottostanti o rilasciandoli nella vista elenco sottostante: +Package.Message=Un pacchetto AppX può richiedere alcune dipendenze per essere installato correttamente. In tal caso, è possibile specificare un elenco di dipendenze: +StubPreference.Item=Preferenza pacchetto stub: +Multiple.App.Regions.Item=Per specificare più regioni di app, separarle con un punto e virgola (;) +Entry.List.View.Message=Selezionate un elemento nella vista elenco per visualizzare i dettagli di un'applicazione e per configurare le impostazioni aggiuntive +AddFile.Item=Aggiungi file +AddFolder.Item=Aggiungi cartella +Remove.Entries.Item=Rimuovi tutte le voci +Remove.Dependencies.Item=Rimuovi tutte le dipendenze +RemoveDependency.Item=Rimuovi dipendenza +AddDependency.Item=Aggiungi dipendenza... +Browse.Button=Sfogliare... +Remove.Selected.Entry.Item=Rimuovi voce selezionata +Cancel.Button=Annullare +Ok.Button=OK +CustomDataFile.Item=File dati personalizzato: +CommitImage.Item=Applicare l'immagine dopo l'aggiunta dei pacchetti AppX +CustomData.File.Title=Specifica un file di dati personalizzato +AppxDependencies.Item=Dipendenze AppX +AppxRegions.Item=Regioni di AppX +LicenseFile.Title=Specificare un file di licenza +App.Regions.Form.Message=Le regioni dell'app devono essere sotto forma di codici ISO 3166-1 Alpha 2 o Alpha-3. Per saperne di più su questi codici, fare clic qui +Help.Link=fare clic qui +FileFolder.Column=File/Cartella +Type.Column=Tipo +ApplicationName.Column=Nome applicazione +App.Publisher.Column=Editore dell'applicazione +App.Version.Column=Versione dell'applicazione +LicenseFile.CheckBox=File di licenza: +App.Available.CheckBox=Rendi l'applicazione disponibile per tutte le regioni +Configure.Stub.Item=Non configurare le preferenze di stub +Publisher.Label=Editore: {0} +Version.Label=Versione: {0} +Preview.Label=Anteprima +Folder.Required.Description=Specificare una cartella contenente i file AppX scompattati: +Install.Stub.Package.Item=Installa l'applicazione come pacchetto stub +Install.Full.Package.Item=Installa l'applicazione come pacchetto completo + +[AppxProvision.MultiSelect] +Selection.Label=Selezione multiple +CommonProps.Label=Visualizza le proprietà comuni di tutte le applicazioni selezionate + +[AppxProvision.DragDrop] +Dir.Contains.App.Message=La seguente cartella:{crlf;}{quot;}{0}{quot;}{crlf;}contiene pacchetti di applicazioni. Si desidera elaborare anche questi?{crlf;}{crlf;}NOTA: la scansione di questa cartella avverrà in modo ricorsivo, pertanto il completamento dell'operazione potrebbe richiedere più tempo +File.Dropped.Isn.Message=Il file che è stato scaricato qui non è un pacchetto dell'applicazione +Add.Prov.Title=Aggiungere i pacchetti AppX approvvigionati + +[AppxProvision.StoreLogo] +ReadFailed.Message=Impossibile ottenere le risorse del logo dell'application store da questo pacchetto - non è possibile leggere dal manifest +Add.Title=Aggiungere pacchetti AppX approvvigionati + +[AppxProvision.Init] +UnsupportedImage.Message=Questa azione non è supportata su questa immagine + +[AppxProvision.Scan] +Unpacked.Encrypted.Label=Disimballato (criptato) +PackedEncrypted.Label=Imballato (criptato) +Unpacked.Encrypted.Item=Disimballato (criptato) +Encrypted.App.Label=Applicazione criptata +ListItem.Label=Applicazione criptata +PackedEncrypted.Item=Imballato (criptato) +Package.Encrypted.Message=Il pacchetto:{crlf;}{crlf;}{0}{crlf;}{crlf;}è un pacchetto di applicazioni criptate. Né DISMTools né DISM supportano l'aggiunta di questi tipi di applicazioni. Se si desidera aggiungerlo, è possibile farlo dopo che l'immagine è stata applicata e avviata. +Folder.Message=Questa cartella non sembra contenere una struttura di pacchetti AppX. Non verrà aggiunta all'elenco +Add.Title=Aggiungi pacchetti AppX approvvigionati +Package.Add.Message=Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco e tutte le sue proprietà corrispondono a quelle del pacchetto specificato. Non aggiungeremo il pacchetto specificato +Unpacked.Item=Disimballato +Packed.Item=Imballato +Package.Already.Message=Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco, ma contiene una versione più recente.{crlf;}{crlf;}Si desidera sostituire la voce nell'elenco con il pacchetto aggiornato specificato? +ItemSub.Item=Disimballato +ListItem.Item=Disimballato +Package.Added.Message=Il pacchetto che si desidera aggiungere è già stato aggiunto all'elenco, ma proviene da uno sviluppatore o da un editore diverso.{crlf;}{crlf;}Si noti che le applicazioni ridistribuite da editori o sviluppatori di terze parti possono causare danni all'immagine di Windows.{crlf;}{crlf;}Si desidera sostituire la voce nell'elenco con il pacchetto specificato? + +[AppxProvision.Tooltip] +TempStoreassets.Label=\temp\storeassets\ +Logo.Assets.File.Label=Non è stato possibile rilevare le risorse del logo per questo file +Enlarge.View.Label=Fare clic qui per ingrandire la visualizzazione +Logo.Assets.File.Item=Non è stato possibile rilevare le risorse del logo per questo file + +[AppxProvision.Validation] +Packages.Required.Message=Specificare i pacchetti AppX imballati o non imballati e riprovare. +Add.Prov.Title=Aggiungere i pacchetti AppX approvvigionati +LicenseFile.Required.Message=Specificare un file di licenza e riprovare. È possibile continuare anche senza, ma ciò potrebbe compromettere l'immagine +LicenseNotFound.Message=Il file di licenza specificato non è stato trovato. Assicuratevi che esista nella posizione specificata e riprovate +CustomData.Required.Message=Specificare un file di dati personalizzato e riprovare. È possibile continuare anche senza +CustomData.File.Message=Il file di dati personalizzati specificato non è stato trovato. Assicurarsi che esista nella posizione specificata e riprovare + +[ProvPackage] +Add.Packages.Label=Aggiungi pacchetti di approvvigionamento +Image.Task.Header.Label={0} +PackagePath.Label=Percorso del pacchetto: +Action.Treverted.Add.Message=Questa azione non può essere annullata. Una volta aggiunto un pacchetto di approvvigionamento, non sarà più possibile rimuoverlo dall'immagine di Windows. +CatalogPath.Label=Percorso catalogo: +Ok.Button=OK +Cancel.Button=Annullare +Browse.Button=Sfoglia... +CommitImage.CheckBox=Applica l'immagine dopo aver aggiunto questo pacchetto di approvvigionamento + +[ProvPackage.Validation] +PackageNotFound.Message=Il pacchetto di provisioning specificato non esiste. Assicuratevi che esista nel file system e riprovate. +CatalogNotFound.Message=Il file di catalogo specificato non esiste. Non utilizzeremo questo file se si procede.{crlf;}{crlf;}Si desidera continuare? +PackageRequired.Message=Non è stato specificato alcun pacchetto di provisioning. Specificare un pacchetto di provisioning da aggiungere e riprovare. + +[AppInstaller] +DownloadPackage.Button=Scaricamento del pacchetto dell'applicazione... +Wait.Message=Attendere che DISMTools scarichi il pacchetto applicativo per aggiungerlo a questa immagine. Questa operazione può richiedere del tempo, a seconda della velocità della connessione di rete. +StatusLbl.Label=Attendere... +TransferDetails.Group=Dettagli del trasferimento +DownloadURL.Label=URL di scaricamento: +DownloadSpeed.Label=Velocità di scaricamento: sconosciuta +Cancel.Button=Annullare +Wait.Label=Attendere... +EtaUnknown.Label=Tempo stimato rimanente: sconosciuto + +[AppInstaller.Error] +DownloadFailed.Message=Si è verificato un errore durante il scaricamento del file: {0} + +[AppInstaller.Progress] +MainPackage.Label=Scaricamento del pacchetto dell'applicazione principale... ({0} di {1} scaricato) + +[AppInstaller.Status] +DownloadSpeed.Label=Velocità di scaricamento: {0}/s +EtaSeconds.Label=Tempo stimato rimanente: {0} secondi + +[AppDrive] +Bytes.Label=bytes (~ +Target.Disk.Button=Specificare il disco di destinazione... +Refresh.Button=Aggiorna +Ok.Button=OK +Cancel.Button=Annulla +DeviceID.Column=ID dispositivo +Model.Column=Modello +Partitions.Column=Partizioni +Size.Column=Dimensione +Destination.Disk.Id.Label=ID disco di destinazione (\\.\PHYSICALDRIVE(n)): + +[ApplyUnattend] +UnattendAnswer.File.Label=Applicare il file di risposta non presidiato +Image.Task.Header.Label={0} +AnswerFile.Label=File di risposta: +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annullare + +[ApplyUnattend.Validation] +AnswerFile.Choose.Message=Non è stato specificato alcun file di risposta non presidiato oppure il file specificato non esiste. Verificare che esista e riprovare. + +[AutoReload] +Wait.Message=Attendere mentre DISMTools ricarica la sessione di assistenza delle immagini orfane. Questa operazione può richiedere del tempo. Una volta completata, questa finestra di dialogo si chiuderà. +ImageFile.Label=File immagine: +Image.Mount.Point.Label=Punto di montaggio dell'immagine: +ImageInfo.Group=Informazioni sull'immagine + +[AutoReload.Bg] +ReloadSucceeded.Message=Ricarica dell'immagine montata... (riuscita: {0}, failed: {1}, saltato: {2}) + +[AutoReload.Background] +ProcessCompleted.Message=Questo processo è stato completato + +[AutoReload.Progress] +Preparing.Images.Label=Preparazione per ricaricare le immagini... + +[ActiveDirectory.DnsZone] +SelectZone.Message=Please select a DNS zone and try again. +Selected.Too.Long.Message=The selected DNS zone is no longer active because of either an expiration or a shut down. Choose another zone and try again. +ZonesLoaded.Message=DNS zones could not be obtained. + +[BGProcDetails.VisibleChanged] +Gathering.Image.Label=Raccolta informazioni sull'immagine... +Processes.Take.Time.Label=Il completamento di questi processi può richiedere del tempo + +[BGProcNotify] +Project.Loaded.Done.Label=Il progetto è stato caricato con successo +Gathering.Image.Label=Il programma sta raccogliendo informazioni sull'immagine in background. Questa operazione potrebbe richiedere del tempo + +[BgProcs.Settings] +Advanced.Process.Label=Impostazioni avanzate processi in background +Additional.Label=Configura impostazioni aggiuntive per i processi in background: + +[BgProcesses] +SkipNonRemovable.CheckBox=Salta i pacchetti con criteri non rimovibili impostati +DetectAllDrivers.CheckBox=Rileva tutti i driver dell'immagine +Skip.Framework.CheckBox=Salta i pacchetti framework e rimuovili dagli elenchi se sono stati rilevati +Run.CheckBox=Esegui tutti i processi in background dopo aver eseguito un'attività +Ok.Button=OK +Cancel.Button=Annulla +Enhance.App.Detect.Message=Migliora il rilevamento di tutti i pacchetti AppX di un'installazione attiva con gli helper di PowerShell + +[BgProcesses.Validation] +DetectDrivers.Message=Il programma rileverà i driver dell'immagine in base alle opzioni specificate. Questa operazione potrebbe richiedere un po' di tempo + +[BG.Procs] +Re.Still.Gathering.Label=Stiamo ancora raccogliendo informazioni sull'immagine +Finish.Process.Begin.Message=Una volta terminato questo processo, è possibile iniziare a eseguire le operazioni sull'immagine. Di solito ci vogliono un paio di minuti, ma ciò può dipendere dall'immagine e dalla velocità del computer.{crlf;}{crlf;}È possibile controllare lo stato di questo processo in background in qualsiasi momento facendo clic sull'icona in basso a sinistra. +Ok.Button=OK + +[Casters.Applicability] +Yes.Button=Sì +No.Button=No + +[Casters.DISMArchitecture] +Unknown.Label=Sconosciuta +Neutral.Label=Neutro + +[Casters.Cast.DISM] +Present.Label=Non presente +DisablePending.Label=In attesa di invalidità +Staged.Label=Disabili +Removed.Label=Rimosso +Installed.Label=Abilitato +EnablePending.Label=In attesa di abilitazione +Superseded.Label=Sostituito +Partially.Installed.Label=Parzialmente installato +UninstallPending.Label=Disinstallazione in corso +Uninstalled.Label=Disinstallato +InstallPending.Label=In attesa di installazione +CriticalUpdate.Label=Aggiornamento critico +Driver.Label=Driver +FeaturePack.Label=Pacchetto di caratteristiche +Foundation.Package.Label=Pacchetto di fondazione +Hotfix.Label=Correzione di bug +LanguagePack.Label=Pacchetto lingua +LocalPack.Label=Pacchetto locale +DemandPack.Label=Pacchetto di capacità +Other.Label=Altro +Product.Label=Prodotto +SecurityUpdate.Label=Aggiornamento della sicurezza +ServicePack.Label=Service Pack +SoftwareUpdate.Label=Aggiornamento software +Update.Label=Aggiornamento +UpdateRollup.Label=Aggiornamento cumulativo +NotRequired.Label=Non è necessario un riavvio +May.Required.Label=Potrebbe essere necessario un riavvio +Required.Label=È necessario un riavvio + +[Casters.OfflineInstall] +FullyOffline.Message=Per installare completamente questo pacchetto potrebbe essere necessario un avvio dell'immagine di destinazione. + +[Casters.SignatureStatus] +Unknown.Label=Sconosciuto +UnsignedValidity.Message=Non firmato. Verificare la validità e la data di scadenza del certificato di firma +Signed.Label=Firmato + +[Casters.CastDriveType] +Fixed.Label=Fisso +Network.Label=Rete +Removable.Label=Rimovibile +Unknown.Label=Sconosciuto + +[HttpServer.Messages] +Root.Dir.Exist.Message=Root directory {quot;}{0}{quot;} does not exist in the file system. The server cannot be started. +TourServer.Label=Tour Server + +[ThemeDesigner.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[Designer.ActiveInstall] +Continue.Button=Continue +Cancel.Button=Annulla +Enter.Online.Message=You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation.{crlf;}{crlf;}Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program.{crlf;}{crlf;}If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable.{crlf;}{crlf;}We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible) +ProjectUnloaded.Label=The current project will be unloaded. +Active.Install.Label=About active installation management + +[Designer.AddCapabilities] +Ok.Button=OK +Cancel.Button=Annulla +Capabilities.Group=Funzionalità +SelectAll.Button=Select all +SelectNone.Button=Select none +Capability.Column=Capability +State.Column=Stato +Options.Group=Opzioni +Browse.Button=Sfoglia... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +DifferentSource.CheckBox=Specify different source for capability installs +Detect.Group.Policy.Button=Detect from group policy +SourceHint.Description=Specify the source to use for capability addition: +AddCapabilities.Label=Add capabilities + +[Designer.AddCaps] +CommitImage.CheckBox=Commit image after adding capabilities + +[Designer.AddDrivers] +Ok.Button=OK +Cancel.Button=Annulla +DriverFiles.Group=Driver files +Drivers.Required.Message=Please specify the drivers to add by using the buttons below or by dropping them to the list below: +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Tipo +DriverFolders.Group=Driver folders +Scan.Driver.Message=You can let the program scan the driver folders present on the list below recursively and add them as well. To do so, tick the entries you'd like to be scanned: +Options.Group=Opzioni +CommitImage.CheckBox=Commit image after adding drivers +Force.Install.CheckBox=Force installation of unsigned drivers +Driver.Files.Inf.Filter=Driver files|*.inf +DriverPackage.Title=Specify the driver package to add +DriverFolder.Description=Specify the folder containing driver packages. You will then be able to specify if it needs to be scanned recursively: +AddDrivers.Label=Add drivers + +[Designer.AddEdgeBrowser] +Ok.Button=OK +Cancel.Button=Annulla +Microsoft.Label=Add Microsoft Edge Browser + +[Designer.AddEdgeFull] +Ok.Button=OK +Cancel.Button=Annulla +Microsoft.Label=Add Microsoft Edge + +[Designer.Add.Edge] +Ok.Button=OK +Cancel.Button=Annulla +Microsoft.Web.Label=Add Microsoft Edge WebView + +[Designer.Add.List] +Ok.Button=OK +Cancel.Button=Annulla +Browse.Button=Sfoglia... +Entry.Label=Entry: +AllFiles.Filter=All files|*.* +AddEntry.Label=Add entry + +[Designer.AddPackage] +Ok.Button=OK +Cancel.Button=Annulla +Packages.Group=Pacchetti +Folder.Contains.Pkgnum.Label=This folder contains packages. +SelectAll.Button=Select all +SelectNone.Button=Select none +Packages.Choose.RadioButton=Choose which packages to add: +Browse.Button=Sfoglia... +PackageOperation.Label=Package operation: +PackageSource.Label=Package source: +Options.Group=Opzioni +Save.Image.Packages.CheckBox=Save image after adding packages +Ignore.CheckBox=Ignore applicability checks (not recommended) +Update.Manifest.Button=Add update manifest... +AddPackages.Label=Add packages +CabFolder.Description=Specify the folder containing CAB or MSU packages: + +[Designer.AddPkg] +ScanRecursive.RadioButton=Scan folder recursively for packages +Skip.Online.Install.CheckBox=Skip package installation if online operations are pending + +[Designer.AppxProvision] +Ok.Button=OK +Cancel.Button=Annulla +Entry.List.View.Message=Select an entry in the list view to show the details of an app and to configure addition settings +AppxVersion.Label=AppxVersion +AppxPublisher.Label=AppxPublisher +AppxTitle.Label=AppxTitle +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Tipo +ApplicationName.Column=Application name +App.Publisher.Column=Application publisher +App.Version.Column=Application version +Packages.Required.Message=Please add packed or unpacked AppX packages by using the buttons below, or by dropping them to the list view below: +AppxDependencies.Group=AppX dependencies +Remove.Dependencies.Button=Remove all dependencies +RemoveDependency.Button=Remove dependency +AddDependency.Button=Add dependency... +Package.Message=An AppX package may need some dependencies for it to be installed correctly. If so, you can specify a list of dependencies now: +CustomDataFile.CheckBox=Custom data file: +Browse.Button=Sfoglia... +AppxRegions.Group=AppX regions +App.Available.CheckBox=Make app available for all regions +App.Regions.Form.Message=App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To learn more about these codes, click here +Multiple.App.Regions.Label=To specify multiple app regions, separate them with a semicolon (;) +CommitImage.CheckBox=Commit image after adding AppX packages +Files.Title=Specify the AppX files to add provisioning for +DependencyFiles.Filter=Dependency files|*.appx;*.msix +Xmllicenses.Filter=XML licenses|*.xml +LicenseFile.Title=Specify a license file +CustomData.Filter=All files|*.* +CustomData.File.Title=Specify a custom data file +LicenseFile.CheckBox=License file: +Configure.Stub.Item=Do not configure stub preference +StubPreference.Label=Stub preference: +Value.Button=... +Add.Prov.Label=Add provisioned AppX packages +MSIX.Packages.Filter=Applications|*.appx;*.appxbundle;*.msix;*.msixbundle|Application Installer package|*.appinstaller +Browse.Dependencies.Title=Browse for files applications depend on +Folder.Required.Description=Please specify a folder containing unpacked AppX files: +Install.Stub.Package.Item=Install application as a stub package +Install.Full.Package.Item=Install application as a full package + +[Designer.ProvPackage] +Ok.Button=OK +Cancel.Button=Annulla +PackagePath.Label=Package path: +Browse.Button=Sfoglia... +Action.Treverted.Add.Message=This action can't be reverted. Once you add a provisioning package, you won't be able to remove it from your Windows image. +Package.Ppkg.Filter=Provisioning package|*.ppkg +CatalogPath.Label=Catalog path: +Catalog.File.Cat.Filter=Catalog file|*.cat +Add.Packages.Label=Add provisioning packages +CommitImage.CheckBox=Commit image after adding this provisioning package + +[Designer.DomainJoin] +DnstoolsBtn.Button=... +Nicsettings.Group=NIC Settings +Verify.DNS.Label=Verify DNS Address Syntax +Default.Adapter.Same.Message=By default, this adapter will use the same domain suffix you specified above. You can change it later +ManualAdapter.RadioButton=Specify a network adapter manually: +Address.First.Line.Message=The address in the first line will be the primary DNS server address, and any other addresses will become alternative server addresses. You can put both IPv4 and IPv6 addresses. +DNSServer.Addresses.Label=DNS Server Addresses (put each address in its own line): +PrimarySuffix.Label=Primary Domain Suffix: +InterfaceAlias.Label=Interface Alias: +Domain.Suffix.Added.Message=This domain suffix will be added to the list of DNS suffixes. You can add more to the list of suffixes later. +DNSSettings.Label=Configure DNS settings for network adapters +Type.Security.Account.Label=Type the Security Account Manager (SAM) name of the user account in the domain: +Organizational.Unit.Label=Organizational unit: +User.Label=User: +SAM.Account.Label=SAM account name of selected user object: +Org.Unit.Account.Message=If the desired account is not in any organizational unit, but rather in a container, or somewhere else; click the following button to pick it: +Pick.Account.Object.Button=Pick account object... +User.Manually.Item=Specify a user manually +Pick.User.Org.Item=Pick the following user from organizational units in my domain +Pick.User.Object.Item=Pick the following user object from anywhere in my domain +User.Principal.Name.Label=User Principal Name (Windows 2000): +Logon.Path.Pre.Label=Logon Path (pre-Windows 2000): +Domain.Auto.Detected.Message=A domain name could not be obtained automatically because this device does not belong to a domain. +Ask.Admin.Provide.Message=Contact your system administrator to provide authentication information used to join the domain. The account name specified here will be the initial account of the domain-joined system and it will pull initial group policies from the domain controller.{crlf;}{crlf;}To finish setting up target devices to join this domain, click Finish. +Password.Label=Password: +UserAccount.Label=User Account: +DomainName.Label=Domain Name: +Domain.Auth.Label=Provide domain and authentication information +Wizard.Helps.Set.Description=This wizard helps you set up your unattended answer file to make a device join a domain powered by Active Directory Domain Services (AD DS). +Join.Active.Dir.Label=Join an Active Directory domain +WhatDNS.Link=What is DNS? +Back.Button=Indietro +Next.Button=Next +Cancel.Button=Annulla +Help.Button=Aiuto +Test.Dnsresolution.Label=Test DNS resolution +DNSZone.Domain.Choose.Label=Choose DNS zone... (domain controllers only) +Domain.Services.Wizard.Label=Domain Services Wizard +PickAdapter.RadioButton=Pick from a network adapter in this system: + +[Designer.AppInstaller] +Wait.Message=Please wait while DISMTools downloads the application package to add it to this image. This can take some time, depending on your network connection speed. +StatusLbl.Label=Stato +TransferDetails.Group=Transfer details +TimeRemaining.Label=Estimated time remaining: +DownloadSpeed.Label=Download speed: +DownloadURL.Label=Download URL: +Cancel.Button=Annulla +Wait.Label=Attendere... +CopyURI.Button=Copy +DownloadPackage.Button=Downloading application package... + +[Designer.AppDrive] +Ok.Button=OK +Cancel.Button=Annulla +Refresh.Button=Aggiorna +DeviceID.Column=Device ID +Model.Column=Model +Partitions.Column=Partitions +Size.Column=Dimensione +Target.Disk.Button=Specify target disk... +Destination.Disk.Id.Label=Destination disk ID (\\.\PHYSICALDRIVE(n)): + +[Designer.ApplyUnattend] +Ok.Button=OK +Cancel.Button=Annulla +Browse.Button=Sfoglia... +AnswerFile.Label=Answer file: +Answer.Files.XML.Filter=Answer files|*.xml +Copy.AnswerFile.CheckBox=Copy answer file to image Sysprep directory +LeaveUnchecked.Message=Leave this option unchecked if you specify an answer file that causes conflicts with Sysprep if you enter audit mode. +UnattendAnswer.File.Label=Apply unattended answer file + +[Designer.AutoReloadForm] +Wait.Message=Please wait while DISMTools reloads the servicing session of orphaned images. This can take some time. Once complete, this dialog will close. +ImageInfo.Group=Informazioni immagine +Image.Mount.Point.Label=Image mount point: +ImageFile.Label=Image file: +Wait.Label=Attendere... +DISMTools.Label=DISMTools + +[Designer.BgprocDetails] +Gathering.Image.Label=Gathering image information... +InfoTask.Label= +Processes.Take.Time.Label=These processes may take some time to complete. +DISMTools.Label=DISMTools + +[Designer.BgprocFailure] +Ok.Button=OK +Run.Issues.Message=We have run into some issues while getting the information about this Windows image. This may be due to incompatibilities caused by this image and system components, by modifications to the image, or by program bugs.{crlf;}{crlf;}Please look at the list below to see which tasks failed and why: +Failed.Bg.Procs.Label=Failed background processes + +[Designer.BgprocNotify] +Project.Loaded.Done.Label=This project has been loaded successfully +Gathering.Image.Label=The program is now gathering image information in the background. This may take some time. + +[Designer.BgProcesses] +Okbutton.Button=OK +Cancel.Button=Annulla +Enhance.App.Detect.CheckBox=Enhance detection of installed AppX packages of an active installation with PowerShell helpers +SkipNonRemovable.CheckBox=Skip packages with non-removable policies set +DetectAllDrivers.CheckBox=Detect all image drivers +Skip.Framework.CheckBox=Skip framework packages, and remove them from the listings if they were detected +Run.CheckBox=Run all background processes after performing a task + +[Designer.BgProcsSettings] +Additional.Label=Configure additional settings for background processes: +Advanced.Process.Label=Advanced background process settings + +[Designer.BgProcessesBusy] +Ok.Button=OK +Finish.Process.Begin.Message=Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer.{crlf;}{crlf;}You can check the status of this background process at any time by clicking the icon on the bottom left. +Re.Still.Gathering.Label=We're still gathering image information +DISMTools.Label=DISMTools + +[Designer.CapabilityFilter] +Apply.Button=Applica +Clear.Button=Clear +Name.Label=Nome: +State.Label=Stato: +AnyState.Item=Any state +Installed.Item=Installed +Install.Pending.Item=Installation Pending +Removed.Item=Removed +FilterInfo.Prompt.Label=Filter capability information by: +FilterInfo.Title=Filter capability information + +[Designer.DISMComponents] +Ok.Button=OK +Component.Column=Component +Version.Column=Version +Dismcomponents.Label=DISM Components + +[Designer.DNSZones] +Ok.Button=OK +CancelButton.Button=Annulla +OfferedZones.Message=This server offers the following DNS zones you can choose from. Pick a DNS zone from the list below and click OK: +ZoneName.Column=Zone Name +DnsserverName.Column=DNS Server Name +DomainServices.Column=Integrated with Domain Services? +ZoneType.Column=Zone Type +Refresh.Button=Aggiorna +DNSZone.Choose.Label=Choose DNS Zone + +[Designer.DisableFeat] +Ok.Button=OK +Cancel.Button=Annulla +Options.Group=Opzioni +Lookup.Button=Lookup... +PackageName.Label=Nome pacchetto: +Remove.Feature.CheckBox=Remove feature without removing manifest +ParentPackage.CheckBox=Specify parent package name for features +Features.Group=Funzionalità +FeatureName.Column=Nome funzionalità +State.Column=Stato +DisableFeatures.Label=Disable features + +[Designer.DriverFileInfo] +Ok.Button=OK +Copy.Button=Copy +Property.Column=Property +Value.Column=Valore +Driver.File.Label=Information of driver file: +Driver.File.Label.Label=Driver file information + +[Designer.DriverFilter] +Apply.Button=Applica +Clear.Button=Clear +FilterPrompt.Label=Filter driver information by: +PublishedName.Item=Published Name +Original.File.Name.Item=Original File Name +ProviderName.Item=Provider Name +ClassName.Item=Class Name +InboxStatus.Item=Inbox Status +Boot.Critical.Status.Item=Boot-Critical Status +SignatureStatus.Item=Signature Status +Date.Item=Data +MonthName.Label=Month Name +Year.Item=Year +Month.Item=Month +Released.Item=Released on +NotReleased.Item=Not released on +ReleasedBefore.Item=Released before +ReleasedOnBefore.Item=Released on or before +ReleasedAfter.Item=Released after +ReleasedOnAfter.Item=Released on or after +Date.Label=Date: +Search.Signed.CheckBox=The drivers I'm searching for are signed +SignatureStatus.Label=Signature Status: +Search.BootCritical.CheckBox=The drivers I'm searching for are critical to the boot process +Boot.Critical.Status.Label=Boot-Critical Status: +Search.Inbox.CheckBox=The drivers I'm searching for are part of the Windows distribution +InboxStatus.Label=Inbox Status: +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +ProviderName.Label=Provider Name: +Original.File.Name.Label=Original File Name: +PublishedName.Label=Published Name: +Driver.Searches.Choose.Label=Choose a filter to use for driver searches. +Title=Filter driver information + +[Designer.DriverFilePicker] +Ok.Button=OK +Cancel.Button=Annulla +RecursiveListing.Message=Below is a recursive listing of all drivers in the directory you are specifying. From this list, pick the drivers you want to add and click OK. +Refresh.Button=Aggiorna +DirectoryStatus.Label=Directory status +Driver.Files.Choose.Label=Choose driver files in directory + +[Designer.EnableFeat] +Ok.Button=OK +Cancel.Button=Annulla +Features.Group=Funzionalità +FeatureName.Column=Nome funzionalità +State.Column=Stato +Options.Group=Opzioni +Detect.Group.Policy.Button=Detect from group policy +Browse.Button=Sfoglia... +Lookup.Button=Lookup... +FeatureSource.Label=Feature source: +PackageName.Label=Nome pacchetto: +Contact.Win.Update.CheckBox=Contact Windows Update for online images +ParentFeatures.CheckBox=Enable all parent features +Feature.Source.CheckBox=Specify feature source +ParentPackage.CheckBox=Specify parent package name for features +SourceFolder.Description=Specify a folder which will act as the feature source: +EnableFeatures.Label=Enable features +CommitImage.CheckBox=Commit image after enabling features + +[Designer.EnvVars] +Save.Changes.Label=Save all changes +Intro.Message=This tool lets you view and manage the environment variables of this target image. Click the Save button to save any changes made to the environment variables. +TargetSystem.Label=Environment variables for the target system +Name.Column=Nome +Value.Column=Valore +Remove.Machine.Label=Remove machine variable +Add.Machine.Variable.Button=Add machine variable... +DefaultUser.Label=Environment variables for default user profiles +Remove.User.Variable.Label=Remove user variable +Add.User.Variable.Button=Add user variable... +SaveVariable.Label=Save Variable +Scope.Label=Scope: +Hierarchical.Values.Message=This variable is hierarchical. Values added to the system variable will be either prepended to or replaced by the user variable when the user profile is loaded. +Variables.Location.Label=* Environment variables contained within this value are not expanded. +Value.Label=Value: +Name.Label=Nome: +VariableInfo.Label=Environment Variable Information: +Copy.Default.User.Label=Copy to default user scope +Copy.Machine.Scope.Label=Copy to machine scope +Move.Machine.Scope.Label=Move to machine scope +Move.Default.User.Label=Move to default user scope +SystemVariables.Label=System Environment Variable Management + +[Designer.ExceptionForm] +Sorry.Inconvenience.Message=We are sorry for the inconvenience, but DISMTools has run into an error that it couldn't handle and we need your help in order to continue.Here is the error information if you need it: +Help.Us.Fix.Label=Please help us fix this issue +ReportIssue.Label=Report this issue +Continue.Running.Message=You may be able to continue running the program by clicking Continue. However, if this error is displayed for a second time, you can forcefully close the program by clicking Exit. Do note that changes made to projects, as well as changes in the Recents list, will not be saved.{crlf;}{crlf;}What do you want to do? +Reporting.Issue.Message=When reporting this issue, PLEASE paste the exception information on the left. Otherwise, standard closure policies will be applied which imply closing your issue after (at least) 4 hours. +Continue.Button=Continue +Exit.Button=Esci +Copy.Inspect.Logs.Button=Copy and Inspect Logs +DISM.Tools.Internal.Label=DISMTools - Internal Error +Problem.Prevention.Message=In order to prevent this problem from happening again, we would like to know more about it by reporting an issue on the GitHub repository. You will need a GitHub account to report feedback. + +[Designer.ExportDrivers] +Ok.Button=OK +Cancel.Button=Annulla +ExportTarget.Label=Export target: +Browse.Button=Sfoglia... +DriversPath.Description=Please specify the path where the drivers will be exported to: +Driver.Mode.Group=Driver Export Mode +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +Matching.Drivers.RadioButton=Export drivers with the following matching class name to the destination: +Image.Drivers.RadioButton=Export all image drivers to the destination +ExportDrivers.Label=Export drivers + +[Designer.FFUApply] +Ok.Button=OK +Cancel.Button=Annulla +Source.Group=Origine +Browse.Button=Sfoglia... +Mounted.Image.Label=Usa immagine montata +SourceImageFile.Label=File immagine di origine: +SfufilePattern.Group=SFU file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Schema di denominazione: +Destination.Group=Destinazione +DriveDetails.Label=Drive Details: +DestinationDrive.Label=Destination drive: +Specify.Button=Specify... +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +Source.Image.Required.Title=Please specify the source image to apply +Reference.Sfufiles.CheckBox=Reference SFU files +File.Label=Apply a FFU file + +[Designer.FFUCapture] +Ok.Button=OK +Cancel.Button=Annulla +Source.Group=Origine +DriveDetails.Label=Drive Details: +SourceDrive.Label=Source drive: +Specify.Button=Specify... +Destination.Group=Destinazione +Browse.Button=Sfoglia... +Destination.ImageFile.Label=File immagine di destinazione: +Options.Group=Opzioni +Description.Goes.Label=(Description goes here) +None.Item=none +Default.Item=default +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +File.Label=Capture a FFU file + +[Designer.FFUInfoDialog] +Ok.Button=OK +Cancel.Button=Annulla +Ffuheader.Tab=FFU Header +Value.Label= +CompressionType.Label=Compression Type: +Ffuversion.Label=FFU Version: +Physical.Disk.Path.Label=Physical Disk Path: +Vhdstorage.Device.ID.Label=VHD Storage Device ID: +MountedVHDID.Label=Mounted VHD ID: +MountedVhdpath.Label=Mounted VHD path: +MountedVHD.Tab=Mounted VHD +Selected.Partition.Label=Information about the selected partition: +Mounted.FFU.Message=This mounted FFU file contains the following partitions. To show details of a specific partition, select it from the list below: +Manifest.Tab=Manifest +Full.Flash.Utility.Label=Full Flash Utility (FFU) Information + +[Designer.FFUOptimize] +Ok.Button=OK +Cancel.Button=Annulla +Browse.Button=Sfoglia... +ImageFile.Label=Image file to optimize: +Default.Partition.CheckBox=Optimize a partition other than the default partition in the specified FFU file +PartitionNumber.Label=Partition number: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +OpenFile.Title=Please specify the source image to apply +Ffuimages.Label=Optimize FFU images + +[Designer.FFUSplit] +Ok.Button=OK +Cancel.Button=Annulla +Integrity.CheckBox=Verifica integrità dell’immagine +Browse.Button=Sfoglia... +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Maximum.Size.Images.Label=Maximum size of split images (in MB): +Name.Path.Destination.Label=Name and path of the destination split image: +Source.Image.Label=Source image to split: +Sfufiles.Filter=SFU files|*.sfu +Target.Location.Title=Specify the target location of the split images: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +Source.WIM.File.Title=Specify the source WIM file to split: +SplitFfuimages.Label=Split FFU images + +[Designer.FeatureFilter] +Apply.Button=Applica +Clear.Button=Clear +Filter.Feature.Prompt.Label=Filter feature information by: +Name.Label=Nome: +State.Label=Stato: +AnyState.Item=Any state +Enabled.Item=Abilitato +Enablement.Pending.Item=Enablement Pending +Disabled.Item=Disabilitato +Disablement.Pending.Item=Disablement Pending +Filter.Feature.Title=Filter feature information + +[Designer.Get.AppX] +PackageName.Label=Nome pacchetto: +DynamicValue.Label= +Display.Name.Label=Application display name: +Architecture.Label=Architettura: +ResourceID.Label=Resource ID: +Version.Label=Versione: +Registered.User.Label=Is registered to any user? +Install.Dir.Label=Installation directory: +Package.Manifest.Label=Package manifest location: +StoreLogo.Asset.Dir.Label=Store logo asset directory: +Main.StoreLogo.Asset.Label=Main store logo asset: +Asset.Guessed.DISM.Message=This asset has been guessed by DISMTools based on its size, which can lead to an incorrect result. If that happens, please report an issue on the GitHub repository +Asset.One.IM.Link=This asset is not the one I'm looking for +AppX.Package.Label=AppX package information +Installed.AppX.Label=Select an installed AppX package on the left to view its information here +Save.Button=Salva... +AppX.Package.Get.Label=Get AppX package information + +[Designer.CapabilityInfo] +Ready.Label=Ready +Identity.Column=Capability identity +State.Column=Stato +Identity.Label=Capability identity: +DynamicValue.Label= +CapabilityName.Label=Capability name: +CapabilityState.Label=Capability state: +DisplayName.Label=Nome visualizzato: +Description.Label=Capability description: +Sizes.Label=Sizes: +CapabilityInfo.Label=Capability information +Save.Button=Salva... +Look.Item.Online.Button=Cerca questo elemento online +Get.Label=Get capability information + +[Designer.GetCapInfo] +SelectCapability.Label=Select an installed capability on the left to view its information here + +[Designer.GetDriverInfo] +View.Driver.File.Button=View driver file information +Change.Button=Change +Bg.Procs.Notice.Message=You have configured the background processes to not show all drivers present in this image, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in. +Save.Button=Salva... +Status.Label=Stato +PublishedName.Column=Published name +Original.File.Name.Column=Nome file originale +PublishedName.Label=Published name: +DynamicValue.Label= +Original.File.Name.Label=Original file name: +ProviderName.Label=Provider name: +ClassName.Label=Class name: +ClassDescription.Label=Class description: +ClassGUID.Label=Class GUID: +Catalog.File.Path.Label=Catalog file path: +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Is critical to the boot process? +Version.Label=Versione: +Date.Label=Date: +Driver.Signature.Label=Driver signature status: +DriverInfo.Label=Driver information +Installed.Driver.View.Label=Select an installed driver to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddDriver.Button=Add driver... +Hardware.Description.Label=Hardware description: +HardwareID.Label=Hardware ID: +AdditionalIds.Label=Additional IDs: +CompatibleIds.Label=Compatible IDs: +ExcludeIds.Label=Exclude IDs: +Hardware.Manufacturer.Label=Hardware manufacturer: +Architecture.Label=Architettura: +JumpTarget.Label=Jump to target: +HardwareTargets.Label=Hardware targets +Add.DriverPackage.Label=Add or select a driver package to view its information here +GoBack.Link=<- Go back +Help.AddDrivers.Message=Click here to get information about drivers that you want to add to the Windows image you're servicing before proceeding with the driver addition process +Get.Drivers.Message=Click here to get information about drivers that you've installed or that came with the Windows image you're servicing +InstalledDriver.Link=I want to get information about installed drivers in the image +Iwant.Link=I want to get information about driver files +Get.Label=What do you want to get information about? +Driver.Files.Inf.Filter=Driver files|*.inf +Locate.Driver.Files.Title=Locate driver files +Driver.Label=Get driver information + +[Designer.GetFeatureInfo] +FeatureName.Column=Nome funzionalità +FeatureState.Column=Feature state +FeatureName.Label=Feature name: +DynamicValue.Label= +DisplayName.Label=Nome visualizzato: +Description.Label=Feature description: +RestartRequired.Label=Is a restart required? +FeatureState.Label=Feature state: +CustomProps.Label=Custom properties: +FeatureInfo.Label=Feature information +Installed.Left.Label=Select an installed feature on the left to view its information here +Ready.Label=Ready +Save.Button=Salva... +Look.Item.Online.Button=Cerca questo elemento online +Get.Feature.Label=Get feature information + +[Designer.Get.Img] +WIM.Files.Wimvirtual.Filter=WIM files|*.wim|Virtual Hard Disk files|*.vhd, *.vhdx|ESD files|*.esd|SWM files|*.swm|Full Flash Utility files|*.ffu +Image.Title=Specify the image to get the information from +Index.Column=Indice +ImageName.Column=Nome immagine +Pick.Button=Scegli... +Browse.Button=Sfoglia... +AnotherImage.RadioButton=Another image +CurrentlyMounted.RadioButton=Currently mounted image +List.Indexes.ImageFile.Label=List of indexes of image file: +ImageFile.Label=Image file to get information from: +ImageVersion.Label=Image version: +DynamicValue.Label= +ImageName.Label=Image name: +ImageDescription.Label=Image description: +ImageSize.Label=Image size: +Supports.WIM.Boot.Label=Supports WIMBoot? +Architecture.Label=Architettura: +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Service Pack level: +InstallationType.Label=Installation type: +Edition.Label=Edition: +ProductType.Label=Product type: +ProductSuite.Label=Product suite: +System.Root.Dir.Label=System root directory: +FileCount.Label=File count: +Dates.Label=Dates: +Installed.Languages.Label=Installed languages: +ImageInfo.Label=Informazioni immagine +Index.List.View.Label=Select an index on the list view on the left to view its information here +Save.Button=Salva... +Image.Label=Get image information + +[Designer.GetPkgInfo] +AddPackages.Help.Message=Click here to get information about packages that you want to add to the Windows image you're servicing before proceeding with the package addition process +Get.Packages.Message=Click here to get information about packages that you've installed or that came with the Windows image you're servicing +InstalledPackage.Link=I want to get information about installed packages in the image +PackageFile.Link=I want to get information about package files +Get.Label=What do you want to get information about? +Save.Button=Salva... +Status.Label=Stato +PackageName.Label=Nome pacchetto: +DynamicValue.Label= +Package.Applicable.Label=Is package applicable? +Copyright.Label=Copyright: +Company.Label=Company: +CreationTime.Label=Creation time: +Description.Label=Descrizione: +InstallClient.Label=Install client: +Install.Package.Name.Label=Install package name: +InstallTime.Label=Install time: +Last.Update.Time.Label=Last update time: +DisplayName.Label=Nome visualizzato: +ProductName.Label=Product name: +ProductVersion.Label=Product version: +ReleaseType.Label=Release type: +RestartRequired.Label=Is a restart required? +SupportInfo.Label=Support information: +State.Label=Stato: +Boot.Up.Required.Label=Is a boot up required for full installation? +Capability.Identity.Label=Capability identity: +CustomProps.Label=Custom properties: +Features.Label=Features: +PackageInfo.Label=Informazioni pacchetto +Installed.Package.View.Label=Select an installed package to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddPackage.Button=Add package... +Add.Package.File.Label=Add or select a package file to view its information here +GoBack.Link=<- Go back +Cabfiles.Filter=CAB files|*.cab +Locate.Package.Files.Title=Locate package files +Package.Label=Get package information + +[Designer.WinPESettings] +Ok.Button=OK +Windows.Label=These are the Windows PE settings for this image: +Change.Button=Cambia... +TargetPath.Label=Target path: +ScratchSpace.Label=Scratch space: +Save.Button=Salva... +Get.Windows.Pesettings.Label=Get Windows PE settings + +[Designer.ImageFilePicker] +Ok.Button=OK +Cancel.Button=Annulla +ImageFile.Column=Image File +Pick.Windows.ImageFile.Label=Pick Windows image file +MountList.Prompt.Label=Pick the Windows image file that you want to mount from the list below and click OK: + +[Designer.ImageTaskHeader] +ItemText.Title=Item Text + +[Designer.ImgAppend] +Ok.Button=OK +Cancel.Button=Annulla +Options.Group=Opzioni +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Grab.Last.Image.Button=Grab from last image +Browse.Button=Sfoglia... +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +ExtendedAttributes.CheckBox=Capture extended attributes +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +WIM.Boot.Config.CheckBox=Append with WIMBoot configuration +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Destination.ImageFile.Label=File immagine di destinazione: +Sources.Destinations.Group=Sources and destinations +Source.Image.Dir.Label=Source image directory: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +AppendImage.Label=Append to an image + +[Designer.ImgApply] +Ok.Button=OK +Cancel.Button=Annulla +Source.Group=Origine +Browse.Button=Sfoglia... +Mounted.Image.Label=Usa immagine montata +SourceImageFile.Label=File immagine di origine: +Options.Group=Opzioni +Extended.Attributes.CheckBox=Apply extended attributes +Image.Compact.Mode.CheckBox=Apply image in compact mode +ImageIndex.Label=Image index: +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Reference.Swmfiles.CheckBox=Reference SWM files +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Verify.CheckBox=Verify +Integrity.CheckBox=Verifica integrità dell’immagine +Destination.Group=Destinazione +Destination.Dir.Label=Destination directory: +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm|ESD files|*.esd +Source.Image.Required.Title=Please specify the source image to apply +SwmfilePattern.Group=SWM file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Schema di denominazione: +DestinationDir.Description=Please specify the destination directory to apply the image to: +ApplyImage.Label=Apply an image +Validate.Image.CheckBox=Validate image for Trusted Desktop + +[Designer.ImgCapture] +Ok.Button=OK +Cancel.Button=Annulla +Sources.Destinations.Group=Sources and destinations +Browse.Button=Sfoglia... +Destination.ImageFile.Label=File immagine di destinazione: +Source.Image.Dir.Label=Source image directory: +Options.Group=Opzioni +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Mount.Dest.Image.CheckBox=Mount destination image for later use +Extended.Attributes.CheckBox=Capture extended attributes +Append.WIM.Boot.CheckBox=Append with WIMBoot configuration +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +CaptureImage.Label=Capture an image + +[Designer.ImgCleanup] +Ok.Button=OK +Cancel.Button=Annulla +Task.Choose.Label=Choose a task: +Revert.Pending.Actions.Item=Revert pending actions +Clean.Up.ServicePack.Item=Clean up Service Pack backup files +Clean.Up.Component.Item=Clean up component store +Analyze.Component.Store.Item=Analyze component store +Check.Component.Store.Item=Check component store +Scan.Comp.Store.Item=Scan component store for corruption +Repair.Component.Store.Item=Repair component store +TaskOptions.Group=Task options +NoOptions.Message=There are no configurable options for this task. However, you should only run this task to try to recover a Windows image that fails to boot. +HideServicePack.CheckBox=Hide service pack from the Installed Updates list +Last.Reset.Base.Label=LastResetBase_UTC +Only.Check.Option.Label=You should only check this option if the base reset takes more than 30 minutes to complete +Superseded.Base.Reset.Label=The superseded components base reset was last run on: +Defer.Long.Running.CheckBox=Defer long-running cleanup operations +Reset.Base.CheckBox=Reset base of superseded components +NoOptions.Label=There are no configurable options for this task. +Browse.Button=Sfoglia... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +Different.Source.CheckBox=Use different source for component repair +Detect.Group.Policy.Button=Detect from group policy +Task.Listed.Label=Select a task listed above to configure its options. +Task.See.Choose.Label=Choose a task to see its description +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +Source.Title=Specify the source from which we will restore the component store health +ImageCleanup.Label=Image cleanup + +[Designer.ImageConvert] +Converted.Message=The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located.{crlf;}{crlf;}Do you want to open the directory where the target image is stored? +Converted.Label=The image has been successfully converted +Yes.Button=Yes +No.Button=No +AppName.Label=DISMTools + +[Designer.ImgExport] +Ok.Button=OK +Cancel.Button=Annulla +Sources.Destinations.Group=Sources and destinations +Browse.Button=Sfoglia... +Destination.ImageFile.Label=File immagine di destinazione: +SourceImageFile.Label=File immagine di origine: +Options.Group=Opzioni +Reference.Swmfiles.CheckBox=Reference SWM files +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Schema di denominazione: +CustomName.CheckBox=Specify a custom name for the destination image +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Recovery.Item=recovery +CompressionType.Label=Destination image compression type: +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Index.Column=Indice +ImageName.Column=Nome immagine +ImageDescription.Column=Descrizione immagine +ImageVersion.Column=Versione immagine +Source.Image.Index.Label=Source image index: +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm +Source.ImageFile.Title=Specify a source image file to export +ExportImage.Label=Export an image +CheckIntegrity.CheckBox=Check integrity before exporting image + +[Designer.ImageIndexDelete] +Ok.Button=OK +Cancel.Button=Annulla +SourceImage.Label=Source image: +Browse.Button=Sfoglia... +Mounted.Image.Button=Usa immagine montata +VolumeImages.Group=Volume images +Index.Column=Indice +ImageName.Column=Nome immagine +Get.Indexes.Image.Label=Getting indexes from the image. Please wait... +Mark.VolumeImages.Message=Please mark the volume images to delete on the left. The image will then have the indexes shown on the right +Integrity.CheckBox=Verifica integrità dell’immagine +WIM.Files.Filter=WIM files|*.wim +Source.Image.Remove.Title=Specify the source image to remove volume images from +Remove.Volume.Image.Label=Remove a volume image + +[Designer.ImageIndexSwitch] +Ok.Button=OK +Cancel.Button=Annulla +Indexes.Group=Indexes +Save.Changes.RadioButton=Save changes to index +Index.Label= +Destination.Mount.Label=Destination index to mount: +Unmounting.Source.Label=When unmounting source index, what to do? +Image.Label=Image: +Already.Mounted.Label=This index has already been mounted +Image.Indexes.Label=Switch image indexes +DiscardChanges.RadioButton=Unmount discarding changes + +[Designer.Img.Save] +Status.Label=Stato +Wait.Message=Please wait while DISMTools saves the image information to a file. This can take some time, depending on the tasks that are run. +Saving.Image.Button=Saving image information... + +[Designer.ImgMount] +Ok.Button=OK +Cancel.Button=Annulla +Options.Required.Label=Please specify the options to mount an image: +Source.Group=Origine +Notewant.ESD.Label=NOTE: if you want to mount an ESD file, you need to convert it to a WIM file first +Convert.Button=Convert +Browse.Button=Sfoglia... +ImageFile.Label=Image file*: +Destination.Group=Destinazione +MountDirectory.Label=Mount directory*: +Options.Group=Opzioni +Index.Column=Indice +ImageName.Column=Nome immagine +ImageDescription.Column=Descrizione immagine +ImageVersion.Column=Versione immagine +Integrity.CheckBox=Verifica integrità dell’immagine +Optimize.Times.CheckBox=Optimize mount times +Mount.Read.CheckBox=Mount with read only permissions +Index.Label=Index*: +Fields.End.Required.Label=The fields that end in * are required +FileSpec.Filter=WIM files|*.wim|ESD files|*.esd|SWM files|*.swm|VHD(X) files|*.vhd;*.vhdx|ISO files|*.iso|Full Flash Utility files|*.ffu +MountImage.Label=Mount an image + +[Designer.ImgOptimize] +Ok.Button=OK +Cancel.Button=Annulla +Path.Mounted.Image.Label=Path of mounted image to optimize: +Pick.Button=Scegli... +Mounted.Image.Button=Usa immagine montata +Image.Optimization.Mode=Image optimization mode +Reduce.Online.RadioButton=Reduce online configuration time that the target OS spends during boot +Image.Again.Label=You may need to optimize the image again if you perform servicing operations after this task. +OfflineImage.RadioButton=Configure an offline image for installation on a WIMBoot system (Windows 8.1 only) +OptimizeImages.Label=Optimize images + +[Designer.Img.SWM] +Ok.Button=OK +Cancel.Button=Annulla +Split.WIM.Files.Filter=Split WIM files|*.swm +Source.Swmfile.Title=Specify the source SWM file to merge +WIM.Files.Filter=WIM files|*.wim +Dest.WIM.File.Title=Specify the destination WIM file to merge the source SWM files to +SourceSwmfile.Label=Source SWM file: +Browse.Button=Sfoglia... +Destination.WIM.File.Label=Destination WIM file: +Notewhen.Specifying.Message=NOTE: when specifying the SWM file, choose the first file. DISMTools will take care of additional SWM files stored in that directory. +LearnHow.Link=Learn how to do it +Source.Group=Origine +Options.Group=Opzioni +Index.Column=Indice +ImageName.Column=Nome immagine +ImageDescription.Column=Descrizione immagine +ImageVersion.Column=Versione immagine +Index.Label=Index: +Destination.Group=Destinazione +MergeSwmfiles.Label=Merge SWM files + +[Designer.ImgSplit] +Ok.Button=OK +Cancel.Button=Annulla +Swmfiles.Filter=SWM files|*.swm +SaveFile.Title=Specify the target location of the split images: +WIM.Files.Filter=WIM files|*.wim +Source.WIM.File.Title=Specify the source WIM file to split: +Source.Image.Label=Source image to split: +Browse.Button=Sfoglia... +Name.Path.Destination.Label=Name and path of the destination split image: +Maximum.Size.Images.Label=Maximum size of split images (in MB): +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Integrity.CheckBox=Verifica integrità dell’immagine +SplitImages.Label=Split images + +[Designer.ImgUmount] +Ok.Button=OK +Cancel.Button=Annulla +Options.Required.Label=Please specify the options to unmount this image: +MountDirectory.Group=Mount directory +Pick.Button=Scegli... +MountDirectory.Label=Mount directory: +LocatedSomewhere.RadioButton=is located somewhere else +LoadedProject.RadioButton=is loaded in the project +Mount.Dir.Label=The mount directory: +Additional.Options.Group=Additional options +Save.Changes.Unmount.Item=Save changes and unmount +Discard.Changes.Unmount.Item=Discard changes and unmount +Append.Changes.CheckBox=Append changes to another index +Integrity.CheckBox=Verifica integrità dell’immagine +UnmountOperation.Label=Unmount operation: +MountDir.Description=Please specify a mount directory: +UnmountImage.Label=Unmount an image + +[Designer.Img.WIM] +Ok.Button=OK +Cancel.Button=Annulla +Source.Group=Origine +Browse.Button=Sfoglia... +SourceImageFile.Label=File immagine di origine: +Options.Group=Opzioni +Index.Column=Indice +ImageName.Column=Nome immagine +ImageDescription.Column=Descrizione immagine +ImageVersion.Column=Versione immagine +Index.Label=Index: +Format.Converted.Image.Label=Format of converted image: +Format.Ichoose.Link=Which format do I choose? +Destination.Group=Destinazione +Destination.ImageFile.Label=File immagine di destinazione: +OpenFile.Filter=WIM files|*.wim|ESD files|*.esd +Source.ImageFile.Title=Specify the source image file you want to convert +Target.Image.Stored.Title=Where will the target image be stored? +ConvertImage.Label=Convert image + +[Designer.VistaWarning] +Unsupported.Message=Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled.{crlf;}{crlf;}If you still want to service a Windows Vista image, refer to the {quot;}Compatibility with older Windows versions{quot;} topic in the Help documentation.{crlf;}{crlf;}Do you want to continue? +Windows.Service.Message=The program can't service Windows Vista images +Yes.Button=Yes +No.Button=No +DISMTools.Label=DISMTools + +[Designer.ImportDrivers] +Ok.Button=OK +Cancel.Button=Annulla +Process.Third.Message=This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image +ImportSource.Label=Import source: +Windows.Item=Windows image +Online.Install.Item=Online installation +Offline.Install.Item=Offline installation +ImgFile.Label= +ImageFile.Label=Image file: +Tuse.Target.Label=You can't use the import target as the import source +Pick.Button=Scegli... +Windows.Label=Windows image to import drivers from: +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Refresh.Button=Aggiorna +Offline.Drivers.Label=Offline installation to import drivers from: +Source.Listed.Choose.Label=Choose a source listed above to configure its settings. +ImportDrivers.Label=Import drivers + +[Designer.IncompleteSetupDlg] +Yes.Button=Yes +No.Button=No +SetupIncomplete.Message=Setup is not complete yet, and your custom settings will not be saved. Proceeding will make the program use default settings.Do you want to proceed? +DISMTools.Label=DISMTools + +[Designer.InfoSaveResults] +ReportSaved.Message=The report has been saved to the location you had specified, and its contents will be shown below. +Ok.Button=OK +Display.Content.Web.CheckBox=Display content in Web View +SaveReport.Button=Save report... +Htmlreports.Filter=HTML Reports|*.html +Image.Report.Label=Image information report results + +[Designer.InvalidSettings] +Ok.Button=OK +Scratch.Dir.Status.Label= +Log.File.Status.Label= +Log.Font.Status.Label= +DISM.Executable.Status.Label= +Detected.Label=Invalid settings have been detected +ResetDefaults.Message=The invalid settings have been reset to default values. Check the fields below for more information: +Found.Label=The program has detected invalid settings + +[Designer.ISOCreator] +ISO.File.Message=The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here. +Options.Group=Opzioni +Include.Essential.CheckBox=Include essential drivers from this system +Customize.Environment.Button=Customize Environment... +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Browse.Button=Sfoglia... +Copy.Ventoy.Drives.CheckBox=Copy to Ventoy drives +Unattended.CheckBox=Unattended answer file: +Architecture.Label=Architettura: +Pick.Button=Scegli... +Target.Isolocation.Label=Target ISO location: +ImageFile.Add.Label=Image file to add to ISO file: +Mounted.Image.Button=Usa immagine montata +Newly.Signed.Boot.CheckBox=Use newly-signed boot binaries +Cancel.Button=Annulla +Create.Button=Create +Progress.Group=Avanzamento +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=Stato +WIM.Files.Filter=WIM files|*.wim +Isofiles.Filter=ISO files|*.iso +Download.Windows.ADK.Link=Download the Windows ADK +Answer.Files.XML.Filter=Answer files|*.xml +CreateIsofile.Label=Create an ISO file + +[Designer.Main] +File.Label=&File +NewProject.Button=&New project... +Open.Existing.Project.Label=&Open existing project +Manage.Online.Install.Label=&Manage online installation +Manage.Ffline.Button=Manage o&ffline installation... +RecentProjects.Label=Recent projects +SaveProject.Button=&Save project... +Save.Project.Button=Save project &as... +Exit.Label=E&xit +Project.Label=&Project +View.Project.Files.Label=View project files in File Explorer +UnloadProject.Button=Unload project... +Switch.Image.Indexes.Button=Switch image indexes... +ProjectProps.Label=Project properties +ImageProps.Label=Image properties +Commands.Label=Com&mands +ImageManagement.Label=Image management +Append.Capture.Dir.Button=Append capture directory to image... +ApplyFfusfufile.Button=Apply FFU or SFU file... +ApplyWimswmfile.Button=Apply WIM or SWM file... +Capture.Incremental.Button=Capture incremental changes to file... +Capture.Partitions.Button=Capture partitions to FFU file... +Capture.Image.Drive.Button=Capture image of a drive to WIM file... +Delete.Resources.Button=Delete resources from corrupted image... +Apply.Changes.Image.Button=Apply changes to image... +Delete.Volume.Image.Button=Delete volume image from WIM file... +ExportImage.Button=Export image... +Get.Image.Button=Get image information... +Get.WIM.Boot.Button=Get WIMBoot configuration entries... +List.Files.Dirs.Button=List files and directories in image... +MountImage.Button=Mount image... +Optimize.FFU.File.Button=Optimize FFU file... +OptimizeImage.Button=Optimize image... +Remount.Image.Button=Remount image for servicing... +Split.FFU.File.Button=Splt FFU file into SFU files... +Split.WIM.File.Button=Split WIM file into SWM files... +UnmountImage.Button=Unmount image... +Update.WIM.Boot.Button=Update WIMBoot configuration entry... +Apply.Siloed.Prov.Button=Apply siloed provisioning package... +Save.Image.Button=Save image information... +OSPackages.Label=OS packages +GetPackages.Button=Get package information... +AddPackage.Button=Add package... +RemovePackage.Button=Remove package... +GetFeatures.Button=Get feature information... +EnableFeature.Button=Enable feature... +DisableFeature.Button=Disable feature... +CleanupRecovery.Button=Perform cleanup or recovery operations... +ProvPackages.Label=Provisioning packages +Add.Prov.Package.Button=Add provisioning package... +Get.Prov.Package.Button=Get provisioning package information... +Apply.CustomData.Button=Apply custom data image... +AppPackages.Label=App packages +Get.App.Package.Button=Get app package information... +Add.Provisioned.App.Button=Add provisioned app package... +Remove.Prov.App.Button=Remove provisioning for app package... +Optimize.Provisioned.Button=Optimize provisioned packages... +Add.CustomData.File.Button=Add custom data file into app package... +AppMspservicing.Label=App (MSP) servicing +Get.App.Patch.Button=Get application patch information... +Installed.App.Details.Button=Get detailed installed application patch information... +Basic.Installed.App.Button=Get basic installed application patch information... +Get.Detailed.Button=Get detailed Windows Installer (*.msi) application information... +Get.Basic.Windows.Button=Get basic Windows Installer (*.msi) application information... +DefaultApp.Assoc.Label=Default app associations +Export.Default.Button=Export default application associations... +DefaultApp.Assoc.Button=Get default application association information... +Import.Default.Button=Import default application associations... +Remove.Default.Button=Remove default application associations... +Languages.Regional.Label=Languages and regional settings +Intl.Settings.Button=Get international settings and languages... +SetUilanguage.Button=Set UI language... +Set.Default.Button=Imposta lingua di riserva predefinita dell’interfaccia utente... +Set.System.Preferred.Button=Set system preferred UI language... +Set.System.Locale.Button=Set system locale... +Set.User.Locale.Button=Set user locale... +Set.Input.Locale.Button=Set input locale... +Set.UI.Button=Set UI language and locales... +Set.Default.Time.Button=Set default time zone... +Set.Default.Languages.Button=Set default languages and locales... +Set.Layered.Driver.Button=Set layered driver... +Generate.Lang.Ini.Button=Generate Lang.ini file... +Set.Default.Setup.Button=Set default Setup language... +Capabilities.Label=Funzionalità +AddCapability.Button=Add capability... +Export.Capabilities.Button=Export capabilities into repository... +GetCapabilities.Button=Get capability information... +RemoveCapability.Button=Remove capability... +WindowsEditions.Label=Windows editions +Get.Edition.Button=Get current edition... +Get.Upgrade.Targets.Button=Get upgrade targets... +UpgradeImage.Button=Upgrade image... +SetProductKey.Button=Set product key... +Drivers.Label=Driver +GetDrivers.Button=Get driver information... +AddDriver.Button=Add driver... +RemoveDriver.Button=Remove driver... +Export.DriverPackages.Button=Export driver packages... +Import.DriverPackages.Button=Import driver packages... +Unattended.Answer.Label=Unattended answer files +Apply.Unattended.Button=Apply unattended answer file... +Remove.Applied.Label=Remove applied answer file +System.Enter.Audit.Label=Make system enter audit mode +WindowsPE.Label=Windows PE servicing +GetSettings.Button=Get settings... +SetScratchSpace.Button=Set scratch space... +Set.Target.Path.Button=Set target path... +OSUninstall.Label=OS uninstall +Get.Uninstall.Window.Button=Get uninstall window... +Initiate.Uninstall.Button=Initiate uninstall... +Remove.Roll.Back.Button=Remove roll back ability... +Set.Uninstall.Window.Button=Set uninstall window... +ReservedStorage.Label=Reserved storage +Set.Reserved.Storage.Button=Set reserved storage state... +Get.Reserved.Storage.Button=Get reserved storage state... +MicrosoftEdge.Label=Microsoft Edge +AddEdge.Button=Add Edge... +Add.Edge.Browser.Button=Add Edge browser... +Add.Edge.Web.Button=Add Edge WebView... +Tools.Label=&Tools +ImageConversion.Label=Image conversion +Wimesd.Label=WIM <-> ESD +MergeSwmfiles.Button=Merge SWM files... +Remount.Image.Write.Label=Remount image with write permissions +CommandConsole.Label=Command Console +Unattended.AnswerFile.Label=Unattended answer file manager +Unattended.Creator.Label=Unattended answer file creator +Manage.Image.Registry.Button=Manage image registry hives... +Manage.System.Button=Manage system services... +Manage.System.Env.Button=Manage system environment variables... +WebResources.Label=Web Resources +Download.Languages.Button=Download Languages and Optional Features ISOs... +Download.FOD.Button=Download Languages and FOD discs for Windows 10... +StartPXE.Button=Start PXE Helper Server for... +Windows.Label=Windows Deployment Services +FOG.Label=FOG +Show.Instructions.Label=Show instructions for FOG Helper Server on UNIX systems +Copy.My.Windows.Button=Copy my Windows image to a WDS server... +Evaluate.Windows.Label=Evaluate Windows UEFI CA 2023 readiness on this system +ReportManager.Label=Report manager +Mounted.Image.Manager.Label=Mounted image manager +Create.Disc.Image.Button=Create disc image... +Create.Testing.Button=Create testing environment... +Config.List.Editor.Label=Configuration list editor +Create.StarterScript.Label=Create a starter script +DesignTheme.Label=Design a theme +Options.Label=Opzioni +Help.Label=&Help +HelpTopics.Label=Help Topics +DISM.Tools.Tour.Label=DISMTools Tour +DISM.Tools.Label=About DISMTools +Join.Discord.Opens.Label=Join the discord (opens in web browser) +Report.Feedback.Opens.Label=Invia feedback (si apre nel browser web) +Open.Diagnostic.Logs.Label=Open diagnostic logs in log viewer +Contribute.Help.System.Label=Contribute to the help system +Branch.Label=Branch +Preview.Label=PREVIEW +Beta.Release.Tooltip=This is a beta release. In it, you will encounter lots of bugs and incomplete features. +Full.Screen.Shortcut.Label=(F11) +Settings.Detected.Label=Invalid settings have been detected +MoreInfo.Label=More information +WhatsThis.Label=What's this? +DISM.Tools.Actions.Label=DISMTools Tour Actions +Tour.Server.Active.Label=Tour Server is active on port 2022 +RestartTour.Label=Restart Tour +Stop.Tour.Server.Label=Stop Tour Server +Video.Content.Loaded.Label=Video content could not be loaded. +LearnMore.Link=Ulteriori informazioni +Retry.Button=Riprova +Name.Column=Nome +FactDay.Label=Fact of the day +Learn.Watching.Videos.Label=Learn by watching videos +Managing.External.Link=Managing external Windows installations +Managing.Install.Link=Managing your current installation +Get.Started.DISM.Link=Get started with DISMTools and image servicing +Learn.Snew.Link=Learn what's new in this release +Explore.Get.Started.Label=Explore and get started +News.Feed.Loaded.Label=The news feed could not be loaded. +Stay.Up.Date.Label=Stay up-to-date +News.Last.Updated.Label=Ultimo aggiornamento delle notizie: +NewsFeed.Item.Label=Testo della notizia +Item.Feed.Date.Label=Data della notizia +OS.Label=OS +IP.Address.Config.Label=IP Address Configuration: +Processor.Label=Processor +DomainMembership.Label=Domain Membership: +Memory.Label=Memory +Storage.Label=Storage +DomainStatus.Label=Domain Status +WorkgroupDomain.Label=Workgroup/Domain: +ComputerModel.Label=Computer Model +ComputerName.Label=Computer Name +Rename.Link=Rename +PathName.Column=Path/Name +NewVersion.Available.Link=A new version is available for download and installation. Click here to learn more +RemoveEntry.Link=Remove entry +Manage.Offline.Button.Button=Manage offline installation... +Manage.Online.Install.Link=Manage online installation +Open.Existing.Project.Link=Open existing project... +NewProject.Link=New project... +Begin.Label=Begin +ImageOperations.Group=Image operations +CaptureImage.Button=Capture image... +ApplyImage.Button=Apply image... +Save.Complete.Image.Button=Save complete image information... +Remove.VolumeImages.Button=Remove volume images... +Reload.Servicing.Button=Reload servicing session +Unmount.Image.Button=Unmount image discarding changes +CommitImage.Button=Commit and unmount image +Commit.Changes.Button=Commit current changes +Package.Operations.Group=Package operations +Save.Installed.Button=Save installed package information... +Component.Store.Maint.Button=Perform component store maintenance and cleanup... +Get.Package.Button=Get package information... +Feature.Operations.Group=Feature operations +Save.Feature.Button=Save feature information... +Get.Feature.Button=Get feature information... +AppX.Package.Operations=AppX package operations +Save.Installed.AppX.Button=Save installed AppX package information... +Add.AppX.Package.Button=Add AppX package... +Get.App.Button=Get app information... +Remove.AppX.Package.Button=Remove AppX package... +Capability.Operations.Group=Capability operations +Save.Capability.Button=Save capability information... +Get.Capability.Button=Get capability information... +DriverOperations.Group=Driver operations +Save.Installed.Driver.Button=Save installed driver information... +AddDriverPackage.Button=Add driver package... +Get.Driver.Button=Get driver information... +Windows.Group=Windows PE operations +SaveConfig.Button=Save configuration... +GetConfig.Button=Get configuration... +LearnMore.Button=Learn more... +One.Bg.Procs.Message=One or more background processes did not finish successfully. Some functionality may not be available. +ProjectTasks.Label=Project Tasks +UnloadProject.Link=Scarica progetto +Open.File.Explorer.Link=Open in File Explorer +View.Project.Props.Link=View project properties +UnloadProject.ActionButton=Scarica progetto +View.File.Explorer.Button=View in File Explorer +View.Project.Props.Button=View project properties +Mount.Image.Link=Click here to mount an image +ImgStatus.Label=imgStatus +Location.Label=Location: +ProjPath.Label=projPath +ImagesMounted.Label=Images mounted? +Name.Label=Nome: +ProjectName.DynamicLabel= +ImageMounted.Label=No image has been mounted +Mount.Image.Order.Label=You need to mount an image in order to view its information. +Choices.Label=Choices +Pick.Mounted.Image.Link=Pick a mounted image... +MountImage.Link=Mount an image... +ImageTasks.Label=Image Tasks +UnmountImage.Link=Unmount image +View.Image.Props.Link=View image properties +ImageIndex.Label=Image index: +Description.Label=Descrizione: +ImgIndex.Label=imgIndex +MountPoint.Label=Mount point: +MountPoint.Value=mountPoint +Version.Label=Versione: +ImgName.Label=imgName +ImgDesc.Label=imgDesc +ImgVersion.Label=imgVersion +Project.Link=PROJECT +Image.Link=IMAGE +Clock.DynamicLabel= +Welcome.Servicing.Label=Welcome to this servicing session +CloseTab.Label=Close tab +SaveProject.Label=Save project +UnloadProject.Label=Scarica progetto +Unload.Project.Tooltip=Unload project from this program +Show.Progress.Window.Label=Show progress window +RefreshView.Label=Refresh view +Expand.Label=Expand +Preparing.Project.Button=Preparing project tree... +Status.Label=Stato +View.BgProcesses.Tooltip=View background processes +Ready.Label=Ready +DISM.Tools.Project.Filter=DISMTools project files|*.dtproj +Project.File.Load.Title=Specify the project file to load +Get.Basic.Label=Get basic information (all packages) +Get.Detailed.Specific.Label=Get detailed information (specific package) +MountDir.Description=Please specify the mount directory you want to load into this project: +CommitImage.Label=Commit changes and unmount image +Discard.Changes.Label=Discard changes and unmount image +UnmountSettings.Button=Unmount settings... +View.Package.Dir.Label=View package directory +ViewResources.Label=View resources for +ExpandItem.Label=Expand item +AccessDirectory.Label=Access directory +Copy.Deployment.Tools.Label=Copy deployment tools +AllArchitectures.Label=Of all architectures +Selected.Architecture.Label=Of selected architecture +Xarchitecture.Label=For x86 architecture +Amarkdown.Architecture.Label=For AMD64 architecture +ARM.Label=For ARM architecture +ARM64.Label=For ARM64 architecture +ImageOperations.Label=Image operations +Manage.Label=Manage +Create.Label=Create +Configure.Scratch.Dir.Label=Configure scratch directory +ManageReports.Label=Manage reports +Add.Button=Aggiungi +NewFile.Button=New file... +ExistingFile.Button=Existing file... +SaveResource.Button=Save resource... +CopyResource.Label=Copy resource +PngFiles.Filter=PNG files|*.png +Visit.Microsoft.Apps.Label=Visit the Microsoft Apps website +Visit.Microsoft.Label=Visit the Microsoft Store Generation Project website +Iget.Apps.Label=How do I get applications? +MarkdownFiles.Filter=Markdown files|*.md +Get.ImageFile.Button=Get image file information... +Create.Disc.ImageFile.Button=Create disc image with this file... +Upload.Image.My.Button=Upload this image to my WDS server... +ApplyWimswmesd.Button=Apply WIM/SWM/ESD file... +Apply.FFU.File.Button=Apply FFU file... +Capture.Install.Dir.Button=Capture installation directory to WIM file... +Capture.Install.Drive.Button=Capture installation drive to FFU file... +DISMTools.Label=DISMTools + +[Designer.MigrationForm] +Wait.Message=Please wait while DISMTools migrates your old settings file to work on this version. This may take some time. +Wait.Label=Attendere... +DISMTools.Label=DISMTools + +[Designer.MountDirCreation] +Create.Label=Do you want to create the mount directory? +Yes.Button=Yes +No.Button=No +MountImage.Label=Mount an image + +[Designer.MountedImgMgr] +Overview.Images.Message=Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project: +ImageFile.Column=Image file +Index.Column=Indice +MountDirectory.Column=Mount directory +Status.Column=Stato +Read.Write.Column=Read/write permissions? +LoadProject.Button=Load into project +Value.Button=... +Open.Mount.Dir.Button=Open mount directory +Enable.Write.Button=Enable write permissions +ReloadServicing.Button=Reload servicing +Remove.VolumeImages.Button=Remove volume images... +UnmountImage.Button=Unmount image +Image.Manager.Label=Mounted image manager + +[Designer.MUMAdd] +Ok.Button=OK +Cancel.Button=Annulla +DialogHelp.Message=This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time.{crlf;}{crlf;}Do note that this is for advanced use only and may compromise the target Windows image. +Path.Manifest.File.Label=Path of the manifest file to add: +Browse.Button=Sfoglia... +MUMFiles.Filter=Microsoft Update Manifest (MUM) files|update.mum +Update.Manifest.Label=Add update manifest + +[Designer.NewProj] +Ok.Button=OK +Cancel.Button=Annulla +Options.Required.Label=Please specify the options to create a new project: +Project.Group=Progetto +Browse.Button=Sfoglia... +Location.Label=Location*: +Name.Label=Name*: +Folder.Store.Description=Please select a folder to store this project: +Fields.End.Required.Label=The fields that end in * are required +Create.Project.Label=Create a new project + +[Designer.NewTestingEnv] +Download.Windows.ADK.Link=Download the Windows ADK +Create.Button=Create +Cancel.Button=Annulla +WizardHelp.Message=This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments.{crlf;}{crlf;}The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file. +Architecture.Label=Architettura: +Env.Architecture.Label=Environment architecture: +Browse.Button=Sfoglia... +Target.Project.Label=Target project location: +Progress.Group=Avanzamento +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=Stato +Create.Environment.Label=Create a testing environment + +[Designer.Unattend] +Welcome.Label=Welcome +RegionalConfig.Label=Regional Configuration +Basic.System.Config.Label=Basic System Configuration +TreeNode.Label=Time Zone +DiskConfig.Label=Disk Configuration +ProductKey.Label=Product Key +UserAccounts.Label=User Accounts +VirtualMachine.Support.Label=Virtual Machine Support +Wireless.Networking.Label=Wireless Networking +SystemTelemetry.Label=System Telemetry +PostInstall.Scripts.Label=Post-Installation Scripts +Component.Settings.Label=Component Settings +Finish.Label=Finish +EditorMode.Label=Editor mode +ExpressMode.Label=Express mode +Notereturn.Applying.Label=NOTE: you will return to this wizard after applying the answer file +EditAnswerFile.Link=Edit answer file +Open.Windows.System.Link=Open with Windows System Image Manager +Apply.Unattended.Link=Apply unattended answer file... +Open.Location.File.Link=Open the location of the file +Create.Another.Link=Create another answer file +FileCreated.Message=The unattended answer file has been created at the location you specified. What do you want to do now? +Congratulations.Done.Label=Congratulations! You have finished +Wait.Take.Label=Please wait - this can take some time +Progress.Label=Progress: +Wait.UnattendAnswer.Button=Please wait while your unattended answer file is being created... +Something.Right.Go.Message=If something is not right, you will need to go back to that page in order to change the setting. Do not worry: other settings will be kept intact +WordWrap.CheckBox=Word wrap +ReviewSettings.Label=Review your settings for the unattended answer file +Don.Twant.Add.Label=Don't want to add custom components? Click Next to skip this step. +No.Custom.None.Message=No custom components have been added yet. Click the plus symbol on the top of this section to add a new component. +Learn.Custom.Link=Learn more about custom components in Windows +Pass.Label=Pass: +Component.Label=Component: +Component.Count.Label=Component {{current}} of {{count}} +Learn.Component.Link=Learn more about this component +Screen.Add.Message=In this screen you can add additional components that you want to configure in your unattended answer file. Add new components, specify their passes and their data, and click Next. +Components.Label=Configure additional components +Hide.Script.Windows.CheckBox=Hide script windows +RestartExplorer.CheckBox=Restart Windows Explorer after running the scripts +Import.StarterScript.Button=Import a predefined Starter Script... +ImportScript.Button=Import a Starter Script in file system... +Language.Label=Language: +OpenScript.Button=Open script... +Scripts.Have.None.Message=No scripts have been added to this stage yet. Click the plus symbol on the top of this section to add a new script. +Script.Count.Label=Script {{current}} of {{count}} +System.Config.Link=During system configuration +First.User.Logs.Link=When the first user logs on +Whenever.User.Logs.Link=Whenever a user logs on for the first time +ScriptScreenHelp.Message=In this screen you can configure scripts that will be run during a specific stage of Windows installation. Use the sections below to specify the code for the scripts.{crlf;}{crlf;}If you don't want to configure scripts, click Next. +Run.Install.Label=What will be run after installation? +EnableTelemetry.RadioButton=Enable telemetry +DisableTelemetry.RadioButton=Disable telemetry +ConfigureSettings.CheckBox=I want to configure these settings during installation +Control.Limit.Much.Message=Control and limit how much information is sent to Microsoft and third-parties +WirelessSettings.RadioButton=Configure settings for the wireless network now: +Access.Router.Config.Link=Access router configuration to learn more +Open.Least.Secure.Item=Open (least secure) +Wpapsk.Item=WPA2-PSK +Wpasae.Item=WPA3-SAE +ConnectHidden.CheckBox=Connect even if not broadcasting +Password.Label=Password: +AuthTechnology.Label=Authentication technology: +Technology.Both.Choose.Label=Please choose the technology that both the wireless router and your network adapter support. +SsidnetworkName.Label=SSID (Network Name): +SkipConfig.RadioButton=Skip configuration +Option.Either.Choose.Label=Choose this option if you either don't have a network adapter or plan to use Ethernet +WirelessSettings.Label=Configure wireless network settings and get connected online +Guest.Additions.Message=- Use Guest Additions with Oracle VM VirtualBox{crlf;}- Use VMware Tools with VMware hypervisors{crlf;}- Use VirtIO Guest Tools with QEMU-based hypervisors{crlf;}- Use Parallels Tools with Parallels hypervisors on Macintosh computers +Virtual.Box.Guest.Item=VirtualBox Guest Additions +VmwareTools.Item=VMware Tools +Virt.Ioguest.Tools.Item=VirtIO Guest Tools +ParallelsTools.Item=Parallels Tools +VirtualMachine.Label=Virtual Machine Support: +Iplan.Target.RadioButton=No, I plan on using the target installation on a real system +Iwant.Target.RadioButton=Yes, I want to use the target installation on a virtual machine +Add.Enhanced.Support.Message=Do you want to add enhanced support from your virtual machine solution? +Checking.Option.Target.Label=Checking this option will make the target installation more vulnerable to brute-force attacks +Amount.Failed.Attempts.Label=After the following amount of failed attempts: +UnlockMinutes.Label=After the following amount of minutes, unlock the account: +Lock.Out.Account.Label=Lock out an account... +TimeframeMinutes.Label=Within the following timeframe in minutes: +CustomLockout.RadioButton=Continue with custom Account Lockout policies +DefaultLockout.RadioButton=Continue with default Account Lockout policies +DisablePolicy.CheckBox=Disable policy +AccountLockout.Label=Configure Account Lockout policies for the target system +Days.Label=days +ExpirePassword.RadioButton=Passwords should expire after the following number of days: +Expire42Days.RadioButton=Passwords should expire after 42 days +PasswordsExpire.RadioButton=Passwords should expire after a certain amount of days (not recommended by NIST) +NeverExpire.RadioButton=Passwords should never expire +PasswordsExpire.Label=Should passwords expire? +AccountName.Label=Account name: +Account.Label=Account 1: +Account.Option2.CheckBox=Account 2: +Account.Option3.CheckBox=Account 3: +Account.Option4.CheckBox=Account 4: +Account.Option5.CheckBox=Account 5: +UserList.Label=User accounts: +AccountGroup.Label=Account group: +AccountPassword.Label=Account password: +Account.Display.Name.Label=Account display name: +FirstLog.Group=First log on +Log.Built.Admin.RadioButton=Log on to the built-in administrator account, with password: +Log.First.Admin.RadioButton=Log on to the first administrator account created +Auto.Login.Admin.CheckBox=Log on automatically to an Administrator account +ObscurePasswords.CheckBox=Obscure passwords with Base64 +Ask.Microsoft.CheckBox=Ask for a Microsoft account interactively +Target.Install.Label=Who will use the target installation? +FirmwareProductKey.CheckBox=Get product key from firmware (modern systems only) +Product.Label=Please make sure that the product key you enter is valid +DISM.Tools.Cannot.Label=DISMTools cannot verify whether product keys can be valid for activation +Type.Each.Character.Label=(Type each character of the product key, including the dashes) +ProductKey.Custom.Label=Product Key: +Detect.Image.Edition.Button=Detect from image edition +Copy.Button=Copy +Only.Generic.Key.Label=You should only use this generic key with the edition you want to deploy +ProductKey.Generic.Label=Product Key: +ProductKey.Edition.Label=Use the product key for this edition: +CustomProductKey.RadioButton=Use a custom product key +GenericKey.RadioButton=Use a generic product key (no activation capabilities) +ProductKey.Type.Label=Type your product key for operating system installation +RecoveryPartition.Label=Windows Recovery Environment partition size (in MB): +InstallRecoveryEnv.CheckBox=Install a Recovery Environment +EFI.System.Label=EFI System Partition (ESP) size (in MB): +MBR.RadioButton=MBR +GPT.RadioButton=GPT +PartitionTable.Label=Partition table: +Skip.Disk.Config.Label=Uncheck this only if you want to set up disk configuration now. +DiskLayout.Label=Configure the disk and partition layout of the target system +Time.Label=Time +CurrentTime.Label=Time +Time.Selected.Zone.Label=Current time (selected time zone): +Time.UTC.Label=Current time (UTC): +Set.Time.Zone.RadioButton=Set a time zone manually: +Windows.Decide.RadioButton=Let Windows decide my time zone based on the regional configurations I set earlier +Configure.Time.Zone.Label=Configure time zone settings +DesktopX86.Item=x86 (Desktop 32-Bit) +DesktopX64.Item=x64 (Desktop 64-Bit) +Armwindows.Item=ARM64 (Windows on ARM) +UseConfigSet.CheckBox=Use a configuration set or distribution share +Windows.Set.Random.CheckBox=Let Windows set a random computer name +Config.Set.Message=Make sure that the configuration set or distribution share has been created before copying the resulting unattended answer file to an ISO file and installing the operating system. You can create configuration sets or distribution shares with the Windows System Image Manager (SIM) +Script.Sets.Name.RadioButton=Have the following script configure the name (advanced): +Get.Computer.Name.Button=Get computer name +ComputerName.Label=Computer name: +Type.Computer.Name.Label=Please type a computer name +Check.Option.Only.Message=Check this option only if the target system does not have any network capabilities. You can configure local users in the User Accounts section +BypassNetwork.CheckBox=Bypass Mandatory Network Connection +BypassRequirements.CheckBox=Bypass System Requirements +Windows11.Label=Windows 11 settings: +System.Architec.Label=Please select the system architecture that is supported by the target Windows image to apply +Processor.Architecture.Label=Processor architecture: +BasicSettings.Label=Configure basic system settings +Configure.Settings.Label=You will need to configure these settings during the setup process +SystemLanguage.Label=System language: +SystemLocale.Label=System locale: +HomeLocation.Label=Home location: +Keyboard.Layout.IME.Label=Keyboard layout/IME: +Country.EEA.Choose.Button=Choose country from the EEA +Additional.Layouts.Button=Additional layouts +ConfigureLater.RadioButton=Configure these settings later +SettingsNow.RadioButton=Configure these settings now: +LanguageKeyboard.Label=Configure your language, keyboard layout, and other regional settings +Copy.Linux.Mac.Link=Copy Linux and macOS versions of the unattended answer file generator program... +OnlineGenerator.Link=Answer file generator (online version) +Welcome.Unattended.Label=Welcome to the unattended answer file creation wizard +CreationHelp.Message=The unattended answer file creation wizard lets you create unattended answer files using intuitive interfaces. This wizard is suitable for those people who have never created unattended answer files before or do not want to use a text editor.{crlf;}{crlf;}In this wizard, you will be able to configure regional settings, user accounts, wireless settings, virtual machine support, and more. If you need to add more functionality to your file after creating it, you can use the Editor mode, which you can access by clicking the button on the bottom left.{crlf;}{crlf;}Special thanks to Christoph Schneegans for making the library that makes this wizard possible. You can also use his generator website to configure more settings, like tweaks or Windows Defender Application Control rules.{crlf;}{crlf;}{crlf;}To begin creating your answer file, click Next. +AvailableNow.Label=Not available for now! +NewOverwrite.Label=New (overwrites existing content) +Open.Button=Open... +Save.Button=Save as... +WordWrap.Label=Word wrap +Help.Label=Aiuto +NormalizeSpacing.Label=Normalize spacing +NormalizeSpacing.Tooltip=Makes the spacing consistent by replacing tabs with spaces +WizardHelp.Label=If you haven't created unattended answer files before, use this wizard to create one. +Join.Target.Device.Button=Join target device to domain... +BackButton.Button=Indietro +NextButton.Button=Next +Cancel.Button=Annulla +Help.Button=Aiuto +Answer.Files.XML.Filter=Answer files|*.xml +Gen.Download.Complete.Title=UnattendGen download complete +EditorMode.Filter=Answer files|*.xml +Power.Shell.Scripts.Filter=PowerShell scripts|*.ps1;*.psm1|Batch scripts|*.bat;*.cmd|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript files|*.js;*.jse +OpenScript.Title=Open script +Path.Description=Specify the path on which you want to store Linux and macOS versions of UnattendGen: +DISM.Tools.Starter.Filter=DISMTools Starter Scripts|*.dtss +Pick.StarterScript.Title=Pick a Starter Script +CreationHelp.Label=Unattended answer file creation wizard +TimeZone.Label=Time zone: +ScriptRun.Description=To configure a script to run at a specific stage, click the stage: +ComputerName.RadioButton=Choose a computer name yourself (recommended) +SelfContained.Message=The self-contained version of UnattendGen has been successfully downloaded. DISMTools will use this version from now on + +[Designer.NewUnattend.LocalAccounts] +OnlyNow.Label=Uncheck this only if you want to set up local accounts now + +[Designer.NewsFeedCard] +Item.Title=Titolo della notizia +ItemDate.Label=Data della notizia + +[Designer.OfflineDriveList] +Ok.Button=OK +Cancel.Button=Annulla +Refresh.Button=Aggiorna +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Disk.Choose.Label=Choose a disk +Begin.Install.Message=To begin performing offline installation management, please choose a disk shown in the list below. If additional disks that contain Windows installations have been added or removed, simply click the Refresh button. + +[Designer.OneDriveExclusion] +Exclude.Button=Exclude +CancelButton.Button=Annulla +Tool.Help.Exclude.Message=This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude.{crlf;}{crlf;}NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool. +Re.Ready.Label=When you're ready, click Exclude. +Path.Exclude.Label=Path to exclude OneDrive folders from: +Browse.Button=Sfoglia... +UserFolderPath.Description=Choose a path that contains user folders: +Exclude.User.Label=Exclude user OneDrive folders + +[Designer.Options] +Ok.Button=OK +Cancel.Button=Annulla +DISM.Executable.Filter=DISM executable|dism.exe +Dismexecutable.Title=Specificare l'eseguibile DISM da utilizzare +CheckUpdates.CheckBox=Controlla gli aggiornamenti +Remount.Mounted.CheckBox=Rimonta le immagini montate che necessitano di un ricaricamento della sessione di assistenza +Behavior.OnStartup.Label=Impostare le opzioni che si desidera eseguire all'avvio del programma: +Settings.Aren.Label=Queste impostazioni non sono applicabili alle installazioni non portatili +FileIcons.Projects.CheckBox=Set custom file icons for DISMTools projects +Open.Starter.Scripts.Label=Apri gli script di avvio con l’editor degli script di avvio +Set.File.Assoc.Button=Imposta associazioni file +Open.My.Projects.Label=Open my projects with this copy of DISMTools +Manage.File.Assoc.Label=Gestisci le associazioni dei file per i componenti di DISMTools: +AdvancedSettings.Button=Impostazioni avanzate +Learn.Background.Link=Ulteriori informazioni sui processi in background +Uses.Bg.Procs.Message=Il programma utilizza i processi in background per raccogliere informazioni complete sull'immagine, come le date di modifica, i pacchetti installati, le funzioni presenti e altro ancora +Every.Time.Project.Item=Ogni volta che un progetto è stato caricato con successo +Once.Item=Una volta +Notify.Label=Quando il programma dovrebbe notificare l'avvio dei processi in background? +Notify.Me.CheckBox=Notifica l'avvio di processi in background +Reports.Allow.Shown.Label=Alcuni rapporti non possono essere visualizzati come tabella +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +List.Item=lista +Table.Item=tabella +ExampleReport.Label=Esempio di rapporto: +LogView.Label=Visualizzazione del registro: +Show.Command.Output.CheckBox=Visualizza l'output del comando in inglese +Enough.Space.Selected.Label=Potrebbe non esserci spazio sufficiente nella directory temporanea selezionata per alcune operazioni. +ScdirSpace.Label= +Space.Left.Selected.Label=Spazio rimanente nella cartella temporanea selezionata: +Browse.Button=Sfoglia... +ScratchDirectory.Label=Cartella temporanea +Scratch.Dir.Message=Il programma utilizzerà la cartella temporanea fornita dal progetto, se ne è stata caricata una. Se ci si trova nelle modalità di gestione dell'installazione online o offline, il programma utilizzerà la sua directory scratch +Scratch.Dir.Required.Label=Specificare la cartella temporanea da utilizzare per le operazioni DISM: +Scratch.Dir.CheckBox=Utilizza una directory scratch +Always.Save.CheckBox=Salva sempre le informazioni complete per i seguenti elementi: +SettingsConsider.Label=Scegliere le impostazioni che il programma deve considerare quando salva le informazioni sull'immagine: +Installed.Packages.CheckBox=Pacchetti installati +InstalledDrivers.CheckBox=Driver installati +Capabilities.CheckBox=Capacità +Features.CheckBox=Funzionalità +Installed.AppX.CheckBox=Pacchetti AppX installati +Checked.Computer.Message=Quando questa opzione è selezionata, il computer non si riavvia automaticamente, anche quando si eseguono tranquillamente delle operazioni +QuietOperations.Message=Quando si eseguono tranquillamente le operazioni, il programma nasconde le informazioni e l'output di avanzamento. I messaggi di errore verranno comunque visualizzati.{crlf;}Questa opzione non verrà utilizzata quando si ottengono informazioni, ad esempio, sui pacchetti o sulle funzioni.{crlf;}Inoltre, quando si esegue la manutenzione delle immagini, il computer potrebbe riavviarsi automaticamente. +Skip.System.Restart.CheckBox=Salta il riavvio del sistema +Quietly.Image.Ops.CheckBox=Esegui silenziosamente le operazioni sull'immagine +Log.File.Display.Message=Il file di registro deve mostrare errori, avvisi e messaggi informativi dopo l’esecuzione di un’operazione sull’immagine. +Errors.Warnings.Label=Errori, avvisi e messaggi informativi (livello registro 3) +Image.Ops.Message=Quando si eseguono operazioni di immagine nella riga di comando, specificare l'argomento {quot;}/LogPath{quot;} per salvare il registro delle operazioni di immagine nel file di registro di destinazione +Log.File.Level.Label=Livello del file di registro: +Operation.Log.File.Label=File registro operazioni: +Classic.RadioButton=Classic +Modern.RadioButton=Moderno +Secondary.Progress.Label=Stile del pannello di avanzamento secondario: +Font.Readable.Log.Message=Questo carattere potrebbe non essere leggibile sulle finestre di registro. Anche se è possibile utilizzarlo, si consiglia di utilizzare caratteri monospaziati per una maggiore leggibilità. +Preview.Label=Anteprima: +Log.Window.Font.Label=Carattere della finestra di registro: +Uppercase.Menus.CheckBox=Utilizza i menu in maiuscolo +System.Setting.Item=Usa le impostazioni di sistema +LightMode.Item=Modalità chiara +DarkMode.Item=Modalità scura +Language.Label=Lingua: +ColorMode.Label=Modalità colore: +SettingsFile.Item=File delle impostazioni +Registry.Item=Registro di sistema +Enable.Disable.Message=Il programma abilita o disabilita alcune funzioni in base alla versione di DISM supportata. Come influirà sull'uso di questo programma e quali funzioni saranno disabilitate di conseguenza? +View.DISM.Button=Visualizza le versioni dei componenti DISM +Dismver.Label= +SaveSettings.Label=Salva impostazioni su: +Version.Label=Versione: +Dismexecutable.Path.Label=Percorso eseguibile DISM: +ResetPreferences.Label=Reimpostare le preferenze +LogSFD.Filter=All files|*.* +Location.Log.File.Title=Specificare la posizione del file di log +Program.Label=Programma +Personalization.Label=Personalizzazione +Logs.Label=Registri +ImageOperations.Label=Operazioni di immagine +Scratch.Dir.Label=Directory temporanea +ProgramOutput.Label=Output del programma +BgProcesses.Label=Processi in secondo piano +FileAssociations.Label=Associazioni di file +StartupOptions.Label=Opzioni di avvio +ShutdownOptions.Label=Opzioni di spegnimento +Difference.Between.Link=Qual è la differenza tra nomi visualizzati e nomi descrittivi? +PackageName.Label=Nome pacchetto: +RaymanJungle.Label=UbisoftEntertainment.RaymanJungleRun_1.2.0.88_x86__dbgk1hhpxymar +DisplayName.Label=Nome visualizzato: +Display.Name.Only.Item=Solo nome visualizzato +Display.Name.Friendly.Item=Nome visualizzato, poi nome descrittivo +Friendly.Display.Name.Item=Solo nome descrittivo +Example.Label=Esempio: +Remove.AppX.Label=When removing AppX packages, show display names using this format: +Only.Available.Message=This is only available when managing active installations.{crlf;}When getting information about AppX packages, DISMTools can map the IDs and names of the local accounts in this system to tell you which users an application is registered to more precisely. +Map.System.Accounts.CheckBox=Associa gli account di sistema alle informazioni di registrazione dell’applicazione +Show.Dates.Human.CheckBox=Mostra le date in un formato leggibile +PreventSleep.CheckBox=Impedisci al computer di andare in sospensione durante le operazioni sull’immagine +Saving.Image.Label=Salvataggio delle informazioni sull’immagine +Help.Me.Understand.Link=Aiutami a capire i livelli di tolleranza delle funzionalità IA +Turn.Off.Many.Item=Disattiva quante più funzionalità IA possibile nei motori di ricerca. Non le sopporto +Me.Control.AI.Item=Lasciami controllare le funzionalità IA nel mio motore di ricerca +Turn.Many.Aifeatures.Item=Attiva quante più funzionalità IA possibile nei motori di ricerca +AIFeature.Label=Tolleranza delle funzionalità di intelligenza artificiale (IA): +Search.Engine.Web.Label=Motore di ricerca da usare per le ricerche web: +Searching.Image.Online.Label=Ricerca delle informazioni sull’immagine online +Learn.Message=Se vuoi saperne di più su un elemento online, puoi usare la ricerca web. Scegli le impostazioni che il programma deve considerare per le ricerche web: +RunNow.Button=Esegui ora +Behavior.OnClose.Label=Impostare le opzioni che si desidera eseguire alla chiusura del programma: +Automatically.Clean.CheckBox=Pulisci automaticamente i punti di montaggio (lancia un processo separato) +InstallService.Button=Installa servizio +EnableService.Button=Abilita servizio +DisableService.Button=Disabilita servizio +DeleteService.Button=Elimina servizio +ServiceStatus.Group=Stato del servizio +Installed.Label=Installato? +InstallationPath.Label=Percorso di installazione: +Automatic.Image.Reload.Label=Servizio di ricaricamento automatico delle immagini +Still.See.Standard.Message=Potresti comunque vedere le procedure standard di ricaricamento delle sessioni di manutenzione di DISMTools per le immagini le cui sessioni non sono state ricaricate dal servizio. +Automatic.Image.Message=Il servizio di ricaricamento automatico delle immagini può aiutarti ad avere le immagini Windows pronte per la manutenzione ricaricando le relative sessioni di manutenzione all’avvio del sistema. Puoi controllare il servizio qui: +ColorThemes.Group=Temi colore +DesignThemes.Button=Disegna i tuoi temi +LightMode.Label=Modalità chiara: +Own.Themes.Label=Puoi anche creare i tuoi temi. +Change.Color.Theme.Label=Puoi far cambiare al programma il tema colore in base alla modalità colore preferita. +DarkMode.Label=Modalità scura: +Show.Date.Time.CheckBox=Mostra data e ora nella vista del progetto +LogCustomization.Label=Personalizzazione dei registri +Show.Log.View.CheckBox=Abilita la visualizzazione del registro nel pannello di avanzamento per impostazione predefinita +Show.Me.Logs.Link=Mostrami dove sono archiviati i registri +Disable.Dyna.Log.CheckBox=Disabilita la registrazione di DynaLog +Dyna.Log.Logging.Label=Controllo di registrazione DynaLog +Dyna.Log.Logging.Message=La registrazione DynaLog fornisce un metodo per salvare i registri diagnostici che possono essere utilizzati per risolvere i problemi del programma, nel caso in cui si verifichino. È possibile disattivare il logger utilizzando la levetta sottostante, ma non è consigliabile.{crlf;}{crlf;} +SystemEditor.Label=Editor di sistema +Editor.Open.Log.Label=Editor con cui aprire i file di log: +Default.Op.Logs.Message=Per impostazione predefinita, i registri delle operazioni vengono aperti con il Blocco note in caso di errore. Tuttavia, se si desidera aprirli con un altro programma, specificarlo di seguito: +ProgramsEXE.Filter=Programs|*.exe +Editor.Title=Specificare l'editor da usare +Options.Label=Opzioni +Set.Custom.CheckBox=Imposta icone file personalizzate per gli script di avvio +ScratchDir.Description=Specifica la directory di scratch che il programma deve utilizzare: +Custom.Scratch.RadioButton=Utilizza la cartella temporanea specificata +Project.Scratch.RadioButton=Utilizza la cartella temporanea del progetto o del programma +Auto.Create.Logs.CheckBox=Crea automaticamente i registri per ogni operazione eseguita + +[Designer.OrphanedMount] +Ok.Button=OK +Cancel.Button=Annulla +Project.Has.Orphans.Message=The project that has been loaded contains an orphaned image (an image which needs to be remounted){crlf;}The image will be remounted when you click {quot;}OK{quot;}. This should not affect your modifications to the image, and should also not take a long time.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +Servicing.Session.Label=This image needs a servicing session reload +DISMTools.Label=DISMTools + +[Designer.NoRollbackError] +Ok.Button=OK +Old.Versions.None.Message=No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything. +Troll.Back.Older.Label=You can't roll back to an older version +DISMTools.Label=DISMTools + +[Designer.PXEServerPort] +Ok.Button=OK +Cancel.Button=Annulla +Other.Message=Use this dialog to specify a different port for server components during this session if the default port is in use by a program or a service and the server components don't work correctly as a result.{crlf;}{crlf;}If you click Cancel, the selected server component will be launched using the default port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[Designer.PECustomizer] +Ok.Button=OK +Cancel.Button=Annulla +Customize.Session.Label=Customize the Preinstallation Environment for this session: +Wallpaper.Group=Wallpaper +Browse.Button=Sfoglia... +My.Desktop.CheckBox=Use my current desktop background +Path.Custom.Wallpaper.Label=Path to custom wallpaper (JPG files only): +Show.Version.Top.CheckBox=Show version information on the top-left corner of the primary screen +Display.Images.CheckBox=Display images and groups in a WDS server in a graphical view +Show.Report.Hardware.Message=Show a report with hardware IDs of unknown devices when launching the Driver Installation Module +Default.Partitio.Table.Label=Default partition table override: +Partition.Table.Item=Do not use a partition table override +Default.Mbrpartition.Item=Default to using a MBR partition table regardless of the firmware type +Default.Gptpartition.Item=Default to using a GPT partition table regardless of the firmware type +Partition.Table.Message=Partition table overrides affect both disk configuration and boot file creation procedures taken. +SecureBoot.Label=On supported UEFI systems with Secure Boot and Windows UEFI CA 2023 certificates: +Ask.Me.Version.Item=Ask me which version of the boot binary to use +Connection.Attempts.Label=Amount of connection attempts that should be considered when connecting to a WDS server: +ConnectionAttempts.Label=connection attempt(s) +JpgfilesJpg.Filter=JPG files|*.jpg +CopyAnswerFiles.Message=Copy unattended answer files specified in the ISO creator to the Sysprep directory of the target system +Port.Used.PXE.Label=Port to be used by PXE Helper clients to send requests by default: +Pick.Default.Keyboard.Label=Pick the default keyboard layout to use in the Preinstallation Environment from the list below: +LayoutCode.Column=Layout Code +LayoutName.Column=Layout Name +Layout.Code.Selected.Label=Layout code of selected keyboard layout: +Save.Default.Policies.Label=Save to default policies +General.Tab=General +PXEs.Tab=PXE Helpers +KeyboardLayouts.Tab=Keyboard Layouts +Option.Only.Take.Label=This option will only take effect on images that don't have any answer files applied. +Unattended.Deployments.Tab=Unattended Deployments +Unattended.AnswerFile.Label=If an unattended answer file exists in both the ISO file and the Windows image file: +Ask.Me.Resolve.Item=Ask me how to resolve the conflict +Assuming.Each.Answer.Message=Assuming what each of the answer files will do is not a good idea because you don't expect what each file will have in different operating system deployment runs.{crlf;}{crlf;}Therefore, you should manually review each of the answer files when you encounter conflicts. Or, if your Windows image contains an answer file, don't include one with your ISO file, as the one from the Windows image will automatically be applied during setup.{crlf;}{crlf;}If you use bootable media creation solutions, such as Rufus, configure them so they don't override your answer file. +CustomizePE.Label=Customize Preinstallation Environment +KeyboardOverride.CheckBox=Override keyboard layouts used by target images with the one I select here + +[Designer.PECustomizer.Conflict] +ISO.Item=Handle the conflict by using the answer file of the ISO file +WindowsImage.Item=Handle the conflict by using the answer file of the Windows image file + +[Designer.PECustomizer.BootSign] +Windows.UEFI.CA.Item=Default to boot binaries signed with Windows UEFI CA 2023, if available on my target image +Windows.Production.PCA.Item=Default to boot binaries signed with Microsoft Windows Production PCA 2011 + +[Designer.PkgNameLookup] +Ok.Button=OK +Cancel.Button=Annulla +ParentPackage.Label=Name of parent package: +Get.Package.Names.Label=Getting package names. Please wait... +Installed.Package.Label=Installed package names + +[Designer.PkgParentLookup] +Names.Installed.Label=Names of installed packages in the mounted image: + +[Designer.Wait] +Wait.Label=Attendere... +Action.Label=Action + +[Designer.PrgAbout] +Ok.Button=OK +DISM.Tools.Version.Label=DISMTools - version {0} +DISM.Tools.Lets.Label=DISMTools lets you deploy, manage, and service Windows images with ease, thanks to a GUI. +Build.Date.Goes.Label=Build date goes here +ResourcesUsed.Label=These resources and components were used in the creation of this program: +Resources.Label=Resources +Fluency.Label=Fluency +Icons.Link=Icons8 +Sqlserver.Icon.Color.Label=SQL Server icon (Color) +Utilities.Label=Utilities +Zip.Label=7-Zip +VisitWebsite.Link=Visita sito web +Help.Documentation.Label=Help documentation +Scintila.Netnu.Get.Label=Scintila.NET (NuGet package) +Managed.Dismnu.Get.Label=ManagedDism (NuGet package) +Command.Help.Source.Label=Command Help source +Microsoft.Link=Microsoft +BrandingAssets.Label=Branding assets +DarkUI.Label=DarkUI +Windows.Label=Windows Home Server 2011 +Whatsnew.Link=WHAT'S NEW +Licenses.Link=LICENSES +Credits.Link=CREDITS +CheckUpdates.Label=Check for updates +AboutProgram.Label=About this program + +[Designer.PrgSetup] +Set.Up.DISM.Label=Impostare DISMTools +Back.Button=Indietro +Next.Button=Avanti +Cancel.Button=Annulla +DISM.Tools.Free.Message=DISMTools è un'interfaccia grafica gratuita e open source, basata su progetti, per le operazioni DISM. Per iniziare a configurare le operazioni, seleziona 'Avanti' +Welcome.DISM.Tools.Label=Benvenuto in DISMTools +Secondary.Progress.Label=Stile pannello avanzamento secondario: +Log.Window.Font.Label=Font finestra registro: +Language.Label=Lingua: +ColorMode.Label=Modalità colore: +System.Setting.ThemeItem=Usa impostazioni sistema +LightMode.Item=Modalità chiara +DarkMode.Item=Modalità scura +Font.Readable.Log.Message=Questo font potrebbe non essere leggibile nelle finestre registro. Anche se è possibile usarla, per una maggiore leggibilità ti consigliamo di usare font mono spaziati. +Classic.RadioButton=Classico +Modern.RadioButton=Moderno +Yours.Customize.Message=Personalizza questo programma a piacimento e seleziona 'Avanti'. Queste impostazioni possono essere configurate in qualsiasi momento in 'Opzioni' -> 'Personalizzazione'. +CustomizeProgram.Label=Personalizzazione di DISMTools +Default.Log.File.Button=Usa file registro predefinito +Browse.Button=Sfoglia... +LogFile.Label=File registro: +Log.File.Display.Message=Il file registro visualizza gli errori, le avvertenze e i messaggi informativi dopo l'esecuzione di un'operazione sull'immagine. +Errors.Warnings.Label=Errori, avvisi e messaggi informativi (livello registro 3) +Auto.Create.Logs.CheckBox=Crea automaticamente i registri nella cartella registri del programma +Log.Settings.Message=Imposta il livello di registrazione e seleziona 'Avanti'. A seconda del livello specificato, verranno registrate più o meno informazioni. Questa impostazione può essere configurata in qualsiasi momento in 'Opzioni' -> 'Registri'. +Log.Label=Quali attività registrare quando si esegue un'operazione? +Windows.ADK.Module.Label=Modulo per la compatibilità con Windows Assessment and Deployment Kit (ADK) +WimlibModule.Label=Modulo per la compatibilità con wimlib-imagex +Install.Button=Installa +Module.Install.Isn.Message=Se un modulo che vuoi installare non è elencato qui, potrebbe non essere compatibile con questa versione del programma. Aggiornare DISMTools può rendere disponibili altri moduli compatibili. +DISM.Tools.Supports.Message=DISMTools supporta moduli che estendono il programma e ne migliorano le capacità. I moduli seguenti sono compatibili con questa versione del programma. +ExtendProgram.Label=Estendi questo programma +Configure.Settings.Button=Configura altre impostazioni +Anything.Like.Label=Vuoi configurare altre impostazioni? +Settings.Available.Message=Le impostazioni disponibili sono più di quelle appena configurate. Se vuoi modificarne altre, seleziona il pulsante sottostante. Inoltre, queste impostazioni diventeranno permanenti. +Done.Setting.Up.Message=Hai completato l'impostazione degli elementi base per usare DISMTools nel modo desiderato. Seleziona 'Fine' e le impostazioni diventeranno permanenti. +SetupComplete.Label=L'impostazione è stata completa +Stay.Up.Date.Label=rimani aggiornato per ricevere nuove funzionalità e un'esperienza migliorata. +Get.Started.DISM.Label=inizia ad usare DISMTools e il servizio di assistenza immagini, in modo da muoverti più rapidamente. +GetStarted.Button=Inizia +CheckUpdates.Button=Controlla aggiornamenti +Ve.Set.Things.Label=Ora che hai configurato il programma, ti consigliamo di: +Perform.Steps.Time.Label=È possibile eseguire questi passaggi in qualsiasi momento. +SaveFile.Filter=Tutti i file|*.* +Log.File.Title=Specifica file registro + +[Designer.Progress] +Image.Operations.Label=Image operations in progress... +Wait.Tasks.Label=Please wait while the following tasks are done. This may take some time. +Cancel.Button=Annulla +CurrentTask.Label=currentTask +AllTasks.Label=allTasks +Tasks.Tcont.Label=Tasks: {currentTCont} of {taskCount} +ShowLog.Label=Show log +Show.Dismlog.File.Link=Show DISM log file (advanced) +Progress.Label=Avanzamento + +[Designer.ProjProps] +Ok.Button=OK +Cancel.Button=Annulla +ProjectGUID.Label=Project GUID: +CreationDate.Label=Creation date: +Location.Label=Location: +ProjGuid.Label=projGuid +ProjTzdata.Label=projTZData +ProjPath.Label=projPath +ProjName.Label=projName +Name.Label=Nome: +RemountImg.Label=Reload +Recover.Label=Recover +MountDirectory.Label=Mount directory: +Installed.Languages.Label=Installed languages: +FileFormat.Label=File format: +ModificationDate.Label=Modification date: +FileCount.Label=File count: +DirectoryCount.Label=Directory count: +System.Root.Dir.Label=System root directory: +ProductSuite.Label=Product suite: +ProductType.Label=Product type: +Edition.Label=Edition: +ServicePackLevel.Label=Service Pack level: +ServicePackBuild.Label=Service Pack build: +HAL.Label=HAL: +Architecture.Label=Architettura: +Supports.WIM.Boot.Label=Supports WIMBoot? +ImageStatus.Label=Image status: +ImageIndex.Label=Image index: +Size.Label=Size: +Description.Label=Descrizione: +Version.Label=Versione: +ImageFile.Label=Image file: +ImgFormat.Label=imgFormat +ImgModification.Label=imgModification +ImgCreation.Label=imgCreation +ImgFiles.Label=imgFiles +ImgDirs.Label=imgDirs +Img.Sys.Root.Label=imgSysRoot +ImgPsuite.Label=imgPSuite +ImgPtype.Label=imgPType +ImgEdition.Label=imgEdition +ImgSplvl.Label=imgSPLvl +ImgSpbuild.Label=imgSPBuild +ImgHal.Label=imgHal +Img.Mount.Dir.Label=imgMountDir +ImgArch.Label=imgArch +Img.WIM.Boot.Label=imgWimBootStatus +Img.Mounted.Status.Label=imgMountedStatus +ImgSize.Label=imgSize +Img.Mounted.Desc.Label=imgMountedDesc +Img.Mounted.Name.Label=imgMountedName +ImgVersion.Label=imgVersion +ImgIndex.Label=imgIndex +ImgName.Label=imgName +Getting.Project.Image.Label=Getting project and image information. Please wait... +View.Ffuinformation.Label=View FFU information +Remount.Write.Label=Remount with write permissions +ImgRW.Label=imgRW +Image.Rwpermissions.Label=Image R/W permissions: +InstallationType.Label=Installation type: +Img.Inst.Type.Label=imgInstType +Image.Present.Project.Label=Image present on project? +ImgStatus.Label=imgStatus +Many.Cannot.Seen.Message=Many properties cannot be seen because an image has not yet been mounted. Once you mount it, detailed information will be shown here. Click here to mount an image +Props.Label=Properties + +[Designer.ProjectValues] +Old.File.Label=Old project file: +ExitButton.Button=Esci +Independent.Values.Group=Independent values +ImageLang.Label=ImageLang: +Image.Read.Write.Label=ImageReadWrite: +Image.Epoch.Modify.Label=ImageEpochModify: +Image.Epoch.Create.Label=ImageEpochCreate: +ImageFileCount.Value=ImageFileCount: +Image.Dir.Count.Label=ImageDirCount: +Image.Sys.Root.Label=ImageSysRoot: +ImagePsuite.Label=ImagePSuite: +ImagePtype.Label=ImagePType: +ImageEdition.Value=ImageEdition: +ImageSplevel.Label=ImageSPLevel: +ImageSpbuild.Label=ImageSPBuild: +ImageHal.Label=ImageHal: +ImageArch.Label=ImageArch: +Image.WIM.Boot.Label=ImageWIMBoot: +ImageDescription.Label=ImageDescription: +ImageName.Label=ImageName: +ImageVersion.Label=ImageVersion: +Image.Mount.Point.Label=ImageMountPoint: +ImageIndex.Label=ImageIndex: +ImageFile.Label=ImageFile: +Epoch.Creation.Time.Label=EpochCreationTime: +Location.Label=Location: +Name.Label=Nome: +ImageFile.Languages.Label=Image file languages +ImageFileDates.Label=Image file creation and modification dates stored in Unix time (GMT+0) +Verify.Image.Read.Label=Verify if image has read-write permissions +ImageFileCount.Label=Image file count +Image.Dir.Label.Label=Image directory count +Image.System.Root.Label=Image system root directory (\WINDOWS) +Image.Product.Suite.Label=Image product suite +Image.Product.Type.Label=Image product type +ImageEdition.Label=Image edition +ServicePackLevel.Label=Image Service Pack level (SP1, SP2, SP3...) +ServicePackBuild.Label=Image Service Pack build +HAL.Label=Image HAL (Hardware Abstraction Layer, hal.dll) +Mounted.Image.Arch.Label=Mounted image architecture (x86, amd64...) +Verify.Image.Supports.Label=Verify if image supports WIMBoot (Win8.1 only) +MountedDescription.Label=Mounted image friendly description +Mounted.Image.Friendly.Label=Mounted image friendly name +Image.Version.Grab.Label=Image version (grab version from ntoskrnl.exe) +ImageFile.Mount.Point.Label=Image file mount point +ImageFileIndex.Label=Mounted image file index +Mounted.ImageFile.Name.Label=Mounted image file name +Creation.Time.Unix.Label=Project creation time in Unix time (GMT+0) +ProjectLocation.Label=Project location +ProjectName.Label=Project name +Independent.Values.Message=Get independent values by piping {quot;}findstr{quot;} to the {quot;}type{quot;} command. Also pass the {quot;}/b{quot;} switch only to show matches on the beginning. +New.File.Label=New project file: +ContinueButton.Button=Continue +ProjectValues.Label=Project values + +[Designer.ServiceGroups] +Ok.Button=OK +Windows.Message=This Windows image contains the following registered groups for the system's service host. Note that the groups displayed here may not be the same as the groups defined by the services in the Service Control Manager (SCM). +GroupName.Column=Group Name +ServicesGroup.Column=Services in group +ServiceName.Column=Nome servizio +DisplayName.Column=Nome visualizzato +Type.Column=Tipo +Total.Label=Total +Registered.Svc.Host.Label=Registered Service Host groups in image + +[Designer.RegistryPanel] +Tool.Lets.Load.Message=This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here: +Load.Button=Carica +Ntuserdatdefault.User.Label=NTUSER.DAT (Default User) +Open.Button=Apri +Default.Label=DEFAULT +System.Label=SYSTEM +Software.Label=SOFTWARE +Load.Custom.Hive=Load Custom Hive +Unload.Button=Unload +Browse.Button=Sfoglia... +PathRegistry.Label=Path in the registry: +HiveLocation.Label=Hive location: +Load.Different.Label=If you want to load a different registry hive, specify its path and click Load: +Image.Hives.Label=Image registry hives + +[Designer.ReloadProject] +Ok.Button=OK +Cancel.Button=Annulla +ImageUnavailable.Message=The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click {quot;}OK{quot;} to reload this project.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +ImageMissing.Label=This image is no longer available +DISMTools.Label=DISMTools + +[Designer.RemCapabilities] +Ok.Button=OK +Cancel.Button=Annulla +Capability.Column=Capability +State.Column=Stato +Remove.Label=Remove capabilities + +[Designer.RemDrivers] +Ok.Button=OK +Cancel.Button=Annulla +PublishedName.Column=Published name +Original.File.Name.Column=Nome file originale +ProviderName.Column=Provider name +ClassName.Column=Class name +Part.Windows.Column=Part of the Windows distribution? +BootCritical.Column=Is boot-critical? +Version.Column=Version +Date.Column=Data +DriverPackages.Wish.Label=Specify the driver packages you wish to remove and click OK: +Hide.Boot.Critical.CheckBox=Hide boot-critical drivers +Hide.Drivers.Part.CheckBox=Hide drivers part of the Windows distribution +RemoveDrivers.Label=Remove drivers + +[Designer.RemPackage] +Ok.Button=OK +Cancel.Button=Annulla +PackageRemoval.Group=Package removal +Browse.Button=Sfoglia... +Note.May.Message=NOTE: the program may show packages that weren't added in the first place. However, if a package is not added, the program will skip it. +PackageSource.Label=Package source: +Package.Files.RadioButton=Specify package files: +Package.Names.RadioButton=Specify package names: +PackageSource.Description=Please specify a package source: +RemovePackages.Label=Remove packages + +[Designer.RemoveAppx] +Ok.Button=OK +Cancel.Button=Annulla +PackageName.Column=Package name +App.Display.Name.Column=Application display name +Architecture.Column=Architecture +ResourceID.Column=Resource ID +Version.Column=Version +Registered.User.Column=Registered to any user? +Prov.Label=Remove provisioned AppX packages + +[Designer.ScriptBrowser] +Ok.Button=OK +Cancel.Button=Annulla +Create.Starter.Button=Create your own starter scripts... +Name.Column=Nome +System.Config.Item=During System Configuration +First.User.Logs.Item=When the first user logs on +Whenever.User.Logs.Item=Whenever a user logs on for the first time +Scripts.Defined.User.Item=Scripts defined by the user +Stage.Type.Choose.Label=Choose a stage or script type: +EnlargePreview.Label=Enlarge preview +Export.Code.File.Button=Export script code to a file... +Okinsert.Label=Click OK to insert this script. Existing script contents will be replaced by this script. +ScriptCode.Label=Script Code: +Language.Label=Language: +Language.Value.Label=Language: {0} +Description.Label=Script Description +ScriptName.Label=Script Name +View.Label=Select a script to view its information. +StarterScripts.Help.Message=These predefined starter scripts can help you get the most out of your Windows image when using this unattended answer file. These scripts have been curated and tested by the developers.{crlf;}{crlf;}To get started, select a starter script from the list on the left.{crlf;}{crlf;}If you have a starter script that isn't included in this set of scripts, you can load it from the file system instead. +Export.Code.Title=Export Script Code +Leave.Full.Screen.Label=To leave full screen mode, click the button on the right or press ESC. +GoBack.Label=Go back +LoadStarterScript.Label=Load a predefined Starter Script + +[Designer.SaveProject] +Yes.Button=Yes +No.Button=No +Cancel.Button=Annulla +SaveChanges.Label=Do you want to save the changes of this project? +Shutdown.Message=If you shut down or restart your system without unmounting the images, you will need to reload the servicing session. +AppName.Label=DISMTools + +[Designer.ScriptReorder] +Ok.Button=OK +Cancel.Button=Annulla +Dialog.Alter.Order.Message=Use this dialog to alter the order with which the scripts will be run. Click OK to save the changes. Items at the top of the list are the first scripts that will run, whilst those at the bottom of the list are the last that will run. +ScriptCode.Label=Script Code: +Script.Column=Script # +ScriptOrder.Label=Script Order: +WordWrap.CheckBox=Word Wrap +Scripts.Stage.Label=Reorder scripts for this stage + +[Designer.Services] +Intro.Message=This tool lets you view and manage the services of this target image. Click Save service changes to save any changes made to the Windows services. +ServiceName.Column=Nome servizio +DisplayName.Column=Nome visualizzato +Description.Column=Description +StartType.Column=Start Type +Type.Column=Tipo +ServiceInfo.Tab=Service Information +DelayedStart.CheckBox=Delayed Start +Description.Label=Service Description: +User.Flags.Label=User Service Flags: +ServiceType.Label=Service Type: +Start.Type.Label=Service Start Type: +Object.Name.Label=Service Object Name: +Image.Path.Label=Service Image Path: +Display.Name.Label=Service Display Name: +ServiceName.Label=Service Name: +Required.Privileges.Tab=Required Privileges +PrivilegeName.Column=Privilege Name +PrivilegeName.Display.Column=Privilege Display Name +Privilege.Description.Column=Privilege Description +ErrorControl.Tab=Error Control +FailureActions.Group=Failure Actions +FutureErrors.Label=On Future Errors: +NdError.Label=On 2nd Error: +ResetErrorCount.Label=Reset Error Count after the following minutes: +StError.Label=On 1st Error: +Error.Windows.Label=On service error, what should Windows do? +Dependencies.Tab=Service Dependencies +ServiceGroups.Tab=Service Groups +RegisteredHosts.Label=Get registered service host groups +Services.Belong.Group=Services that belong to this group +Part.Group.Label=This service is part of group: +Save.Changes.Label=Save service changes +ProgressLabel.Label=Attendere... +Reload.Label=Reload +SelectService.Label=No service has been selected. Select a service above to view details. +Save.Button=Save service information... +MarkdownFiles.Filter=Markdown files|*.md +RestoreService.Label=Restore service +DeleteService.Label=Delete service +System.Label=System Service Management + +[Designer.ServiceMgmt] +Restart.Minutes.Label=Restart Service after the following minutes: +Dependent.Services.Label=The following services depend on this service: +Dependencies.Label=This service depends on the following services: + +[Designer.ImageEdition] +Ok.Button=OK +Cancel.Button=Annulla +Target.Upgrade.Label=Target edition to upgrade to: +ServerOptions.Group=Active server installation options +Browse.Button=Sfoglia... +AcceptEULA.RadioButton=Accept the End-User License Agreement (EULA) and use the following product key: +Copy.EndUser.RadioButton=Copy the End-User License Agreement (EULA) to the following location: +Set.Image.Label=Set image edition + +[Designer.SetLayeredDriver] +Ok.Button=OK +Cancel.Button=Annulla +Intro.Message=This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK +CurrentDriver.Label=Current keyboard layered driver: +NewDriver.Label=New keyboard layered driver: +Driver.Already.Label=This driver has already been set +Title=Set keyboard layered driver + +[Designer.OSRollback] +Ok.Button=OK +Cancel.Button=Annulla +Default.OS.Message=By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date.{crlf;}{crlf;}Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60. +Amount.Days.Revert.Label=Amount of days you have to revert to the old Windows version: +OSUninstall.Label=Set operating system uninstall window + +[Designer.SetProductKey] +Ok.Button=OK +Cancel.Button=Annulla +Type.ProductKey.Label=Type the product key that you want to set to your Windows image, including the dashes: +ValidateKey.Button=Validate key +Check.ProductKey.Message=If you want to check if your product key is valid for the Windows image, click Validate key. This will also check the syntax of your key. +SetProductKey.Label=Set product key + +[Designer.Scratch] +Ok.Button=OK +Cancel.Button=Annulla +ScratchSpace.Label=Scratch space: +AmountWritable.Message=The scratch space is the amount of writable space available on the Windows PE system volume when its contents are copied to memory. Please specify a scratch space amount and click OK. +MB.Label=MB +ScratchSpace.Amount.Label=An invalid scratch space amount has been detected +Set.Windows.Pescratch.Label=Set Windows PE scratch space + +[Designer.SetTargetPath] +Ok.Button=OK +Cancel.Button=Annulla +Target.Dir.Message=The target path is a directory where the Windows PE files will be copied to in order to boot to the environment. Please specify a target path and click OK. +TargetPath.Label=Target path: +Windows.Petarget.Label=Set Windows PE target path + +[Designer.SettingsResetDlg] +Yes.Button=Yes +No.Button=No +ProceedReset.Message=If you proceed, the settings will be reset to their default values. Once this process is complete, you'll return to the main program window.Do you want to proceed? +Form.Label=Reset preferences + +[Designer.SingleImageIndex] +Know.Indexes.Message=To know more about the indexes of an image, or some of its specific properties, go to {quot;}Commands > Image management > Get image information{quot;}, or click here +Ok.Button=OK +Cannot.Switch.Message=You cannot switch to other indexes. If you want to save the image changes, you can do so using a new, separate index. +Image.Seems.Only.Label=This image seems to have only one index +DISMTools.Label=DISMTools + +[Designer.SplashScreen] +VersionLabel.Label=Version +DISM.Tools.Starting.Button=DISMTools - Starting up... + +[Designer.UnattendMgr] +ProjectPath.Label=Project path: +Browse.Button=Sfoglia... +FileName.Column=Nome file +Created.Column=Created +LastModified.Column=Last modified +LastAccessed.Column=Last accessed +ApplyImage.Button=Apply to image... +Open.File.Location.Button=Open file location +OpenFile.Button=Open file +Unattended.AnswerFile.Label=Unattended answer file manager + +[Designer.WimScriptEditor] +Config.List.Allows.Message=The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon. +Compression.Exclusion.List=Compression exclusion list +Edit.Button=Edit... +Add.Button=Add... +Remove.Button=Rimuovi +Exclusion.Exception.List=Exclusion exception list +ExclusionList.Group=Exclusion list +New.Label=New +Open.Button=Open... +Save.Button=Save as... +Toggle.Word.Wrap.Label=Toggle word wrap +Help.Label=Aiuto +Tools.Label=Strumenti +Exclude.User.One.Button=Exclude user OneDrive folders... +Inifiles.Filter=INI files|*.ini +Config.List.Load.Title=Specify the configuration list to load +Wimscript.Filter=INI files|*.ini +Location.Save.Config.Title=Specify the location to save the configuration list to +ConfigList.Label=DISM Configuration List Editor + +[Designer.WDSImageGroup] +Ok.Button=OK +Cancel.Button=Annulla +Action.Choose.Label=Choose an action: +Refresh.Button=Aggiorna +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[Designer.WDSImageCopy] +Ok.Button=OK +Cancel.Button=Annulla +Pick.Button=Scegli... +Browse.Button=Sfoglia... +ImageFile.Server.Label=Image file to copy to server: +Mounted.Image.Button=Usa immagine montata +Images.Added.Group.Label=The images will be added to the following group: +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Pick.Server.Groups.Button=Pick from server groups... +SelectAll.Button=Select all +ClearSelection.Button=Clear selection +Progress.Group=Avanzamento +Re.Ready.OK.Label=Once you're ready, click OK. +Status.Label=Stato +WIM.Files.Filter=WIM files|*.wim +Image.Win.Deploy.Label=Copy an image to Windows Deployment Services + +[Designer.WimFileSource] +ImageFile.Label=Image file +ImageIndex.Label=Image index + +[DisableFeat] +DisableFeatures.Label=Disabilita caratteristiche +Image.Task.Header.Label={0} +PackageName.Label=Nome pacchetto: +Features.Group=Caratteristiche +Options.Group=Opzioni +Lookup.Button=Ricerca... +Ok.Button=OK +Cancel.Button=Annullare +FeatureName.Column=Nome caratteristica +State.Column=Stato +ParentPackage.CheckBox=Specificare il nome del pacchetto padre per le caratteristiche +Remove.Feature.CheckBox=Rimuovi la caratteristica senza rimuovere il manifesto + +[DisableFeat.Validation] +Features.Message=Selezionare le caratteristiche da disabilitare e riprovare +FeaturesSelected.Title=Nessuna caratteristica selezionata + +[DismComponents] +Title.Label=Componenti DISM +Component.Column=Componente +Version.Column=Versione +Ok.Button=OK + +[DriverFileInfo] +Driver.File.Label=Informazioni file driver +Driver.File.Label.Label=Informazioni file driver: {0} +Property.Column=Proprietà +Value.Column=Valore +Ok.Button=OK +Copy.Button=Copia +PublishedName.Label=Nome pubblicato +Original.File.Name.Label=Nome file originale +Critical.Boot.Process.Label=È critico per il processo di avvio? +Yes.Button=Sì +No.Button=No +Part.Windows.Label=Fa parte della distribuzione di Windows? +ListItem.Button=Sì +Version.Label=Versione +ClassName.Label=Nome classe +ClassDescription.Label=Descrizione classe +ClassGUID.Label=GUID classe +ProviderName.Label=Nome del provider +Date.Label=Data +SignatureStatus.Label=Stato firma +CatalogFile.Label=File catalogo + +[DriverFileInfo.Messages] +Hresult.Label=(HRESULT: {lbrace;}0{rbrace;}) + +[DriverFilter.Classes] +AudioProcessing.Message=Includes Audio processing objects (APOs). For more info, see Windows Audio Processing Objects. +Battery.Devices.UPS.Label=Includes battery devices and UPS devices. +Windows.Message=(Windows Server 2003 and later versions) Includes all biometric-based personal identification devices. +Windows.Label=(Windows XP SP1 and later versions) Includes all Bluetooth devices. +Camera.Message=(Windows 10 version 1709 and later versions) Includes universal camera drivers. +Cd.Rom.Drives.Message=Includes CD-ROM drives, including SCSI CD-ROM drives. By default, the system's CD-ROM class installer also installs a system-supplied CD audio driver and CD-ROM changer driver as Plug and Play filters. +Hard.Disk.Drives.Label=Includes hard disk drives. See also the HDC and SCSIAdapter classes. +VideoAdapters.Message=Includes video adapters. Drivers for this class include display drivers and video miniport drivers. +Extension.Message=(Windows 10 and later versions) Includes all devices requiring customizations. For more information, see Using an Extension INF File. +Floppy.Disk.Drive.Label=Includes floppy disk drive controllers. +Floppy.Disk.Drives.Label=Includes floppy disk drives. +Includes.Hard.Message=Includes hard disk controllers, including ATA/ATAPI controllers but not SCSI and RAID disk controllers. +InputDevices.Message=Includes interactive input devices that are operated by the system-supplied HID class driver. Includes USB devices that comply with the USB HID Standard and non-USB devices that use a HID minidriver. For more information, see HIDClass Device Setup Class. See also the Keyboard or Mouse classes. +ControlDevices.Message=Includes devices that control the operation of multifunction IEEE 1284.4 peripheral devices. +Dot.Print.Functions.Message=Includes Dot4 print functions. A Dot4 print function is a function on a Dot4 device and has a single child device, which is a member of the Printer device setup class. +Ieeedevices.Support.Message=Includes IEEE 1394 devices that support the IEC-61883 protocol device class. The 61883 component includes the 61883.sys protocol driver that transmits various audio and video data streams over the 1394 bus. These currently include standard/high/low quality DV, MPEG2, DSS, and Audio. The IEC-61883 specifications define these data streams. +Ieeedevices.Support.Label=Includes IEEE 1394 devices that support the AVC protocol device class. +SBP2.Message=Includes IEEE 1394 devices that support the SBP2 protocol device class. +HostControllers.Message=Includes 1394 host controllers connected on a PCI bus, but not 1394 peripherals. Drivers for this class are system-supplied. +Still.Image.Capture.Label=Includes still-image capture devices, digital cameras, and scanners. +InfraredDevices.Message=Includes infrared devices. Drivers for this class include Serial-IR and Fast-IR NDIS miniports, but see also the Network Adapter class for other NDIS network adapter miniports. +Keyboards.Message=Includes all keyboards. That is, it must also be specified in the (secondary) INF for an enumerated child HID keyboard device. +ScsimediaChanger.Label=Includes SCSI media changer devices. +Memory.Devices.Such.Label=Includes memory devices, such as flash memory cards. +Modem.Devices.INF.Message=Includes modem devices. An INF file for a device of this class specifies the features and configuration of the device and stores this information in the registry. An INF file for a device of this class can also be used to install device drivers for a controllerless modem or a software modem. These devices split the functionality between the modem device and the device driver. For more information about modem INF files and Microsoft Windows Driver Model (WDM) modem devices, see Overview of Modem INF Files and Adding WDM Modem Support. +Display.Monitors.INF.Message=Includes display monitors. An INF for a device of this class installs no device drivers, but instead specifies the features of a particular monitor to be stored in the registry for use by drivers of video adapters. (Monitors are enumerated as the child devices of display adapters.) +Mouse.Devices.Message=Includes all mouse devices and other kinds of pointing devices, such as trackballs. That is, this class must also be specified in the (secondary) INF for an enumerated child HID mouse device. +Combo.Cards.Such.Message=Includes combo cards, such as a PCMCIA modem and network card adapter. The driver for such a Plug and Play multifunction device is installed under this class and enumerates the modem and network card separately as its child devices. +Audio.Dvdmultimedia.Message=Includes Audio and DVD multimedia devices, joystick ports, and full-motion video capture devices. +MultiportSerial.Message=Includes intelligent multiport serial cards, but not peripheral devices that connect to its ports. It doesn't include unintelligent (16550-type) multiport serial controllers or single-port serial controllers (see the Ports class). +NetworkAdapter.Message=Consists of network adapter drivers. These drivers must either call NdisMRegisterMiniportDriver or NetAdapterCreate. Drivers that don't use NDIS or NetAdapter should use a different setup class. +Includes.Network.Message=Includes network and/or print providers. NetClient components are deprecated in Windows 8.1, Windows Server 2012 R2, and later. +Network.Services.Such.Label=Includes network services, such as redirectors and servers. +NdisprotocolsCo.Message=Includes NDIS protocols CoNDIS stand-alone call managers, and CoNDIS clients, in addition to higher level drivers in transport stacks. +SecureDevices.Message=Includes devices that accelerate secure socket layer (SSL) cryptographic processing. +PcmciacardBus.Message=Includes PCMCIA and CardBus host controllers, but not PCMCIA or CardBus peripherals. Drivers for this class are system-supplied. +Serial.Parallel.Port.Message=Includes serial and parallel port devices. See also the MultiportSerial class. +Printers.Admin.Hit.Label=Includes printers. As an IT admin, hit them with a baseball bat. +Includes.SCSI.Message=Includes SCSI/1394-enumerated printers. Drivers for this class provide printer communication for a specific bus. +ProcessorTypes.Label=Includes processor types. +ScsihostBus.Message=Includes SCSI Host Bus Adapters (HBAs), disk-array, and NVMe controllers. +Includes.Trusted.Message=Includes Trusted Platform Module chips. A TPM is a secure cryptoprocessor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. Any new manufactured device must implement and enable TPM 2.0 by default. For more information, see TPM Recommendations. +Includes.Sensor.Label=Includes sensor and location devices, such as GPS devices. +Smart.Card.Readers.Label=Includes smart card readers. +Virtual.Child.Device.Message=Includes virtual child device to encapsulate software components. For more information, see Adding Software Components with an INF file. +Storage.Disks.Label=Storage disks utilizing a multi-queue storage stack. +Includes.Storage.Message=Includes storage volumes as defined by the system-supplied logical volume manager and class drivers that create device objects to represent storage volumes, such as the system disk class driver. +HalsSystem.Message=Includes HALs, system buses, system bridges, the system ACPI driver, and the system volume manager driver. +Tape.Drives.Including.Label=Includes tape drives, including all tape miniclass drivers. +Usbdevice.Includes.Message=USBDevice includes all USB devices that don't belong to another class. This class isn't used for USB host controllers and hubs; drivers for these devices are provided by the operating system and should use the USB class described in System-Defined Device Setup Classes Reserved for System Use. +WindowsCeactive.Message=Includes Windows CE ActiveSync devices. The WCEUSBS setup class supports communication between a personal computer and a device that is compatible with the Windows CE ActiveSync driver (generally, PocketPC devices) over USB. +Wpddevices.Label=Includes WPD devices. + +[DriverFilter.Month] +January.Label=January +February.Label=February +March.Label=March +April.Label=April +Value.Label=May +June.Label=June +July.Label=July +August.Label=August +September.Label=September +October.Label=October +November.Label=November +December.Label=December + +[Driver.Manual] +Driver.Files.Choose.Label=Scegliere i file dei driver nella cartella +RecursiveListing.Message=Di seguito è riportato un elenco ricorsivo di tutti i driver presenti nella cartella specificata. Da questo elenco, scegliere i driver che si desidera aggiungere e fare clic su OK. +Ok.Button=OK +Cancel.Button=Annulla +Refresh.Button=Aggiorna + +[Driver.Manual.Scan] +Scanning.Driver.Dir.Label=Scansione della cartella...{crlf;}File di driver trovati finora: {0} +Dir.Complete.Driver.Label=Scansione della directory completata.{crlf;}File driver trovati: {0} + +[DriverFilePicker.Validation] +File.Label=File + +[DynaViewer.Main] +EventsFiltering.Message=Please wait while the events are being filtered... Change filters to cancel current operation. + +[DynaViewer.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[DynaViewer.EventProps] +Field.Empty.Caller.Message=The above field can be empty if the caller does not have a parent, or if the logging system was called by the method in the program with the GetParentCaller parameter set to false.{crlf;}{crlf;}As a developer, you can log events without getting the parent caller like this:{crlf;}{crlf;} DynaLog.LogMessage({quot;}Event Message{quot;}, False) +Parent.Caller.Title=Event Parent Caller + +[EnableFeat.EnableFeature] +EnableFeatures.Label=Abilita funzionalità +Image.Task.Header.Label={0} +PackageName.Label=Nome pacchetto: +FeatureSource.Label=Origine caratteristiche: +Lookup.Button=Cerca... +Browse.Button=Sfoglia... +Detect.Group.Policy.Button=Rileva da criteri di gruppo +Cancel.Button=Annulla +Ok.Button=OK +Features.Group=Caratteristiche +Options.Group=Opzioni +ParentPackage.CheckBox=Specifica il nome del pacchetto padre per le funzioni +Source.CheckBox=Specificare l'origine delle caratteristiche +ParentFeatures.CheckBox=Abilita tutte le funzioni genitore +Contact.Win.Update.CheckBox=Contatta Windows Update per le immagini online +FeatureName.Column=Nome della funzione +State.Column=Stato +SourceFolder.Description=Specificare una cartella che fungerà da origine delle caratteristiche: +CommitImage.CheckBox=Applica l'immagine dopo aver abilitato le funzioni + +[EnableFeat.Validation] +Features.Message=Selezionare le caratteristiche da abilitare e riprovare +FeaturesSelected.Title=Nessuna funzione selezionata +Features.Image.Message=Alcune caratteristiche di questa immagine richiedono l'indicazione di un'origine per essere abilitate. L'origine specificata non è valida per questa operazione. +Source.Required.Message=Specificare un'origine valida e riprovare. +Source.Message=Assicurarsi che l'origine esista nel file system e riprovare +EnableFeatures.Message=Abilitare le caratteristiche +Source.Message.Message=La fonte specificata non è valida. Specificare un'origine valida e riprovare +EnableFeatures.Title=Abilita funzioni + +[EnvVars.Management] +Removed.Label=(will be removed) +InfoLoaded.Message=Environment variable information has been successfully saved to the registry of the target image.{crlf;}{crlf;}A backup of the previous variable configuration has been saved to your desktop should you need it in case modifications do not go as planned.{crlf;}{crlf;}Simply load the target image's SYSTEM hive and import this registry file. +InfoSaved.Message=Environment variable information could not be saved to the registry of the target image. + +[EnvVars.Info] +Machine.Field=Computer +User.Field=Utente + +[EnvVars.Helper] +CurrentInfo.Message=Current environment variable information for the system scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? +BackupSaved.Title=Environment variable information could not be backed up +UserBackup.Message=Current environment variable information for the user scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? + +[Exception] +DISM.Tools.Internal.Label=DISMTools - Errore interno +Sorry.Inconvenience.Message=Ci scusiamo per l'inconveniente, ma DISMTools ha riscontrato un errore che non è stato in grado di gestire e abbiamo bisogno del tuo aiuto per continuare.{crlf;}{crlf;}Ecco le informazioni sull'errore: +Help.Us.Fix.Label=Per favore, aiutaci a risolvere questo problema +Reporting.Issue.Message=Quando si segnala questo problema, incolla le informazioni sull'eccezione a sinistra. In caso contrario, verranno applicate le politiche di chiusura standard, che prevedono la chiusura del problema dopo (almeno) 4 ore. +Continue.Running.Message=È possibile continuare ad eseguire il programma selezionando 'Continua'. Tuttavia, se questo errore viene visualizzato per la seconda volta, è possibile chiudere forzatamente il programma selezionando 'Esci'. Nota che le modifiche apportate ai progetti e quelle nell'elenco Recenti non verranno salvate.{crlf;}{crlf;}Cosa si desidera fare? +ReportIssue.Label=Segnala questo problema +Continue.Button=Continua +Exit.Button=Esci +Copied.Clipboard.Label=Queste informazioni sono state copiate negli appunti +Ll.Copy.Label=È necessario copiare queste informazioni manualmente +Problem.Prevention.Message=Per evitare che questo problema si ripeta, vorremmo saperne di più segnalando un problema sul repository GitHub. Per inviare un feedback è necessario un account GitHub + +[ExportDrivers] +Title.Label=Esportazione di driver +Image.Task.Header.Label={0} +ExportTarget.Label=Destinazione di esportazione: +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annullare +DriversPath.Description=Specificare il percorso in cui verranno esportati i driver: + +[ExportDrivers.Validation] +Target.Required.Message=Specificare una destinazione in cui esportare i driver e assicurarsi che la destinazione specificata esista + +[FfuApply] +NamingPattern.Required.Label=Specificare il modello di denominazione dei file SFU + +[FfuApply.ScanSFUPattern] +Source.File.Required.Message=Specificare un file FFU di origine. In questo modo sarà possibile utilizzare i file SFU per una successiva applicazione di immagini +ApplyImage.Message=Applica un'immagine +Naming.Returns.Item=Questo modello di denominazione restituisce {0} file SFU +Naming.Returns.Label=Questo modello di denominazione restituisce {0} file SFU + +[FfuApply.Validation] +ImageFile.Message=Il file immagine specificato non è valido. Specificare un'immagine valida e riprovare. + +[FfuCapture] +No.Compression.None.Message=No compression will be applied for FFU files. Choose this option if you want to split the resulting file. +Default.Compression.Item=Default compression will be applied for FFU files. + +[FfuSplit] +SplitFfuimages.Label=Dividere le immagini FFU +Image.Task.Header.Label={0} +Source.Image.Label=Immagine sorgente da dividere: +Name.Path.Destination.Label=Nome e percorso dell'immagine di destinazione da dividere: +Maximum.Size.Images.Label=Dimensione massima delle immagini divise (in MB): +LargeFile.Note.Message=Tenere presente che, per ospitare un file di grandi dimensioni nell'immagine, un file di immagine divisa può essere più grande del valore specificato +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annulla +Integrity.CheckBox=Controlla l'integrità dell'immagine +Source.File.Title=Specificare il file FFU di origine da dividere: +Target.Location.Title=Specificare la posizione di destinazione delle immagini divise: + +[FfuSplit.Validation] +Name.Required.Message=Specificare un nome e un percorso per il file SFU di destinazione e riprovare. Assicurarsi inoltre che il percorso di destinazione esista. +Source.File.Required.Message=Specificare un file FFU di origine e riprovare. Assicurarsi inoltre che esista + +[Get.AppX] +AppX.Package.Label=Verifica informazioni sul pacchetto AppX +Image.Task.Header.Label={0} +AppX.Package.Label.Label=Informazioni pacchetti AppX +Installed.AppX.Label=Seleziona un pacchetto AppX installato a sinistra per visualizzarne qui le informazioni +PackageName.Label=Nome pacchetto: +Display.Name.Label=Nome applicazione visualizzato: +Architecture.Label=Architettura: +ResourceID.Label=ID risorsa: +Version.Label=Versione: +Registered.User.Label=È registrato a qualche utente? +Install.Dir.Label=Cartella installazione: +Package.Manifest.Label=Percorso manifesto pacchetto: +StoreLogo.Asset.Dir.Label=Cartella risorse logo negozio: +Main.StoreLogo.Asset.Label=Asset principale logo negozio: +Asset.Guessed.DISM.Message=Questa risorsa è stata rilevata da DISMTools in base alle sue dimensioni, il che può portare ad un risultato errato. Se ciò accade, segnala il problema nel repository GitHub +Asset.One.IM.Link=Questa risorsa non è quella cercata +Save.Button=Salva... +Type.Search.Label=Digita qui per cercare un'applicazione... + +[Get.AppX.PackageList] +Yes.Button=Sì +No.Button=No + +[CapabilityInfo] +Get.Label=Verifica informazioni capacità +Image.Task.Header.Label={0} +Ready.Label=Pronto +Identity.Label=Identità capacità: +CapabilityName.Label=Nome capacità: +CapabilityState.Label=Stato capacità: +DisplayName.Label=Nome visualizzato: +CapabilityInfo.Label=Informazioni capacità +Description.Label=Descrizione capacità: +Sizes.Label=Dimensioni: +Identity.Column=Identità capacità +State.Column=Stato +Save.Button=Salva... +Type.Search.Label=Digita qui per cercare una capacità... +Wait.Background.Message=Prima di poter visualizzare le informazioni sulle funzionalità devono essere stati completati i processi in background. Attendi che siano completati +Waiting.Background.Label=In attesa del completamento che i processi in background... +Prepare.Cap.Item=Preparazione verifica informazioni sulle capacità... +GettingInfo.Item=Verifica informazioni da {quot;}{0}{quot;}... +ReadableSize.Suffix=(~{0}) +Download.Size.Bytes.Label=Dimensione del download: {0} bytes{1}{crlf;}Dimensione installazione: {2} bytes{3} +Get.Reason.Message=Impossibile verificare informazioni sulle capacità. Motivo: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Pronto +Build.Query.Assistant.Label=Crea query con l’assistente... + +[GetCapInfo] +SelectCapability.Label=Seleziona una capacità installata a sinistra per visualizzarne qui le informazioni + +[GetDriverInfo] +Driver.Label=Verifica informazioni driver +Get.Label=Su cosa vuoi verificare informazioni? +Get.Drivers.Message=Fai clic qui per verificare informazioni sui driver installati o forniti con l'immagine di Windows che stai revisionando +AddDrivers.Help.Message=Fai clic qui per verificare informazioni sui driver che vuoi aggiungere all'immagine di Windows prima di procedere con il processo di aggiunta dei driver +Ready.Label=Pronto +Add.DriverPackage.Label=Per visualizzarne le informazioni aggiungi o seleziona un pacchetto driver +HardwareTargets.Label=Obiettivi hardware +Hardware.Description.Label=Descrizione hardware: +HardwareID.Label=ID hardware: +AdditionalIds.Label=ID aggiuntivi: +CompatibleIds.Label=ID compatibili: +ExcludeIds.Label=Escludi ID: +Hardware.Manufacturer.Label=Produttore hardware: +Architecture.Label=Architettura: +JumpTarget.Label=Vai all'obiettivo: +PublishedName.Label=Nome pubblicato: +Original.File.Name.Label=Nome file originale: +ProviderName.Label=Nome fornitore: +Critical.Boot.Process.Label=È fondamentale per il processo di avvio? +Version.Label=Versione: +ClassName.Label=Nome classe: +Part.Windows.Label=Parte della distribuzione di Windows? +DriverInfo.Label=Informazioni driver +Installed.Driver.View.Label=Per visualizzarne le informazioni seleziona un driver installato +Date.Label=Data: +ClassDescription.Label=Descrizione classe: +ClassGUID.Label=GUID classe: +Driver.Signature.Label=Stato firma driver: +Catalog.File.Path.Label=Percorso file catalogo: +Bg.Procs.Notice.Message=I processi in background sono stati configurati in modo da non visualizzare tutti i driver presenti in questa immagine, che include i driver che fanno parte della distribuzione di Windows, quindi è possibile che non venga visualizzato il driver a cui sei interessato. +AddDriver.Button=Aggiungi driver... +RemoveSelected.Button=Rimuovi selezionati +RemoveAll.Button=Rimuovi tutti +Change.Button=Modifica +Save.Button=Salva... +View.Driver.File.Button=Visualizza informazioni sul file del driver +GoBack.Link=<- Indietro +InstalledDriver.Link=Voglio verificare informazioni sui driver installati nell'immagine +Iwant.Link=Voglio verificare informazioni sui file dei driver +PublishedName.Column=Nome file pubblicato +Original.File.Name.Column=Nome file originale +Locate.Driver.Files.Title=Rilevazione file driver +Type.Search.Driver.Button=Digita qui per cercare un driver... +HardwareTarget.Label=Destinazione hardware {0} di {1} +Value.Label= +Yes.Button=Sì +No.Button=No +Value.Button=Sì +Text1.Label=da +Build.Query.Assistant.Label=Crea query con l’assistente... + +[DriverInfo.Display] +NoManufacturer.Label=Nessuno dichiarato dal produttore hardware + +[GetDriverInfo.DriverInfo] +Wait.Background.Message=Prima di visualizzare le informazioni sul pacchetto devono essere completati i processi in secondo piano. Attendi che siano completati. +Waiting.Background.Label=In attesa del completamento dei processi in background... +Driver.File.Message=Verifica informazioni file driver {quot;}{0}{quot;}...{crlf;}Questa operazione potrebbe richiedere del tempo e il programma potrebbe temporaneamente bloccarsi +Ready.Item=Pronto + +[DriverInfo.Load] +Preparing.Driver.Item=Preparazione verifica informazioni driver... + +[GetDriverInfo.Hardware] +HardwareTarget.Label=Destinazione hardware 1 di {0} + +[GetDriverInfo.Tooltip] +Previous.Hardware.Message=Destinazione hardware precedente +Next.Hardware.Target.Message=Destinazione hardware sucecssiva +Jump.Specific.Message=Salta ad una destinazione hardware specifica + +[DriverInfo] +Unknown.Label=Sconosciuto + +[GetFeatureInfo] +Get.Feature.Label=Verifica informazioni funzionalità +Image.Task.Header.Label={0} +Ready.Label=Pronto +FeatureName.Label=Nome funzionalità: +DisplayName.Label=Nome visualizzato: +Description.Label=Descrizione funzionalità: +RestartRequired.Label=È necessario un riavvio? +FeatureInfo.Label=Informazioni sulla funzionalità +Installed.Left.Label=Per visualizzarne qui le informazioni seleziona a sinistra una funzionalità installata +FeatureState.Label=Stato funzionalità: +CustomProps.Label=Proprietà personalizzate: +FeatureName.Column=Nome funzionalità +FeatureState.Column=Stato funzionalità +Save.Button=Salva... +Type.Search.Label=Digita qui per cercare una funzionalità... +Wait.Background.Message=Prima di poter visualizzare le informazioni sulle funzionalità i processi in background devono essere stati completati. Attendi che siano stati completati. +Waiting.Background.Label=In attesa che i processi in background siano stati completati... +Preparing.Item=Preparazione verifica informazioni funzionalità... +GettingInfo.Item=Verifica informazioni da {quot;}{0}{quot;}... +Expand.Entry.Label=Seleziona o espandi un elemento. +None.Label=Nessuno +Reason.Message=Impossibile verificare informazioni sulle funzionalità. Motivo: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Pronto +Build.Query.Assistant.Label=Crea query con l’assistente... + +[FeatureInfo.PathSelection] +SelectedValue.Message=Non è stato definito alcun valore. Se l'elemento selezionato ha delle sotto voci, espandilo. + +[ImageInfo] +Get.Image.Label=Verifica informazioni immagine +Image.Task.Header.Label={0} +ImageFile.Get.Label=File immagine di cui verificare le informazioni: +List.Indexes.ImageFile.Label=Elenco indici file immagine: +ImageVersion.Label=Versione immagine: +ImageName.Label=Nome immagine: +ImageDescription.Label=Descrizione immagine: +ImageSize.Label=Dimensione immagine: +Supports.WIM.Boot.Label=Supporta WIMBoot? +Architecture.Label=Architettura: +HAL.Label=HAL: +ServicePackBuild.Label=Build Service Pack: +ServicePackLevel.Label=Livello Service Pack: +InstallationType.Label=Tipo installazione: +Edition.Label=Edizione: +ProductType.Label=Tipo prodotto: +ProductSuite.Label=Suite prodotti: +System.Root.Dir.Label=Cartella principale sistema: +FileCount.Label=Numero file: +Dates.Label=Data: +Installed.Languages.Label=Lingue installate: +ImageInfo.Label=Informazioni immagine +Index.List.View.Label=Per visualizzarne qui le informazioni seleziona a sinistra un indice nella vista elenco +CurrentlyMounted.RadioButton=Immagine attualmente montata +AnotherImage.RadioButton=Altra immagine +Browse.Button=Sfoglia... +Save.Button=Salva... +Pick.Button=Scegli... +Index.Column=Indice +ImageName.Column=Nome immagine +Image.Get.Title=Specifica l'immagine di cui verificare le informazioni +Bytes.Label={0} bytes (~{1}) + +[ImageInfo.FeatureUpdate] +FeatureUpdate.Label=(aggiornamento funzionalità: +Text1.Label=) + +[ImageInfo.DisplayImageInfo] +UndefinedImage.Label=Non definito dall'immagine +FilesDirectories.Label={0} file in {1} cartelle +Date.Created.Modified.Label=Data di creazione: {0}{crlf;}Data modifica: {1} + +[ImageInfo.GetImageInfo] +Gather.ImageFile.Message=Impossibile verificare informazioni sull'immagine. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImageInfo.LanguageList] +Display.Name.Open.Label=( +Default.Label=, predefinito +Display.Name.Close.Label=) + +[AppxPackages.Info.Messages] +Get.Label=Could not get some information about this application. + +[DriverFilter.Messages] +Class.Name.Message=This class name is not valid. + +[InfoSave.Results.Messages] +HtmlFailed.Message=Conversion to HTML has failed due to the following error: {0}{crlf;}{crlf;}Do you want to open this file in a text editor? +ConversionError.Label=Conversion error + +[GetPkgInfo] +Package.Label=Ottieni informazioni sui pacchetti +Image.Task.Header.Label={0} +Get.Label=Su cosa vuoi ottenere informazioni? +Get.Packages.Message=Fare clic qui per ottenere informazioni sui pacchetti installati o forniti con l'immagine di Windows che si sta assistendo +AddPackages.Help.Message=Fare clic qui per ottenere informazioni sui pacchetti che si desidera aggiungere all'immagine di Windows in assistenza prima di procedere con il processo di aggiunta dei pacchetti +Ready.Label=Pronto +Add.Package.File.Label=Aggiungere o selezionare un file di pacchetto per visualizzarne le informazioni +PackageInfo.Label=Informazioni sul pacchetto +PackageName.Label=Nome del pacchetto: +Package.Applicable.Label=Il pacchetto è applicabile? +Copyright.Label=Copyright: +ProductVersion.Label=Versione del prodotto: +ReleaseType.Label=Tipo di rilascio: +Company.Label=Azienda: +CreationTime.Label=Tempo di creazione: +InstallTime.Label=Tempo di installazione: +Last.Update.Time.Label=Ora ultimo aggiornamento: +Install.Package.Name.Label=Nome del pacchetto di installazione: +Installed.Package.View.Label=Selezionare un pacchetto installato per visualizzarne le informazioni +DisplayName.Label=Nome visualizzato: +Description.Label=Descrizione: +ProductName.Label=Nome del prodotto: +InstallClient.Label=Client di installazione: +RestartRequired.Label=È necessario un riavvio? +SupportInfo.Label=Informazioni di supporto: +State.Label=Stato: +Boot.Up.Required.Label=È richiesto un avvio per l'installazione completa? +CustomProps.Label=Proprietà personalizzate: +Features.Label=Caratteristiche: +Capability.Identity.Label=Identità della capacità: +GoBack.Link=<- Indietro +AddPackage.Button=Aggiungi pacchetto... +RemoveSelected.Button=Rimuovi selezionati +RemoveAll.Button=Rimuovi tutti +Save.Button=Salva... +Iwant.Link=Voglio ottenere informazioni sui pacchetti installati nell'immagine +PackageFile.Link=Voglio ottenere informazioni sui file dei pacchetti +Locate.Package.Files.Title=Individuare i file dei pacchetti +Type.Search.Package.Label=Digitare qui per cercare un pacchetto... + +[PackageInfo.Display] +None.Label=Nessuno + +[PackageInfo.File] +Wait.Background.Message=I processi in secondo piano devono essere completati prima di mostrare le informazioni sul pacchetto. Aspetteremo che siano completati +Waiting.Background.Label=In attesa che i processi in secondo piano finiscano... +Preparing.Item=Preparazione per ottenere le informazioni sul pacchetto... +Loading.Package.Message=Ottenere informazioni dal file del pacchetto {quot;}{0}{quot;}...{crlf;}Questa operazione potrebbe richiedere del tempo e il programma potrebbe bloccarsi temporaneamente +Ready.Item=Pronto + +[GetPkgInfo.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[GetPkgInfo.PackageList] +Wait.Background.Message=I processi in secondo piano devono essere completati prima di mostrare le informazioni sul pacchetto. Aspetteremo che siano completati +Waiting.Background.Label=In attesa che i processi in secondo piano finiscano... +Preparing.Package.Item=Preparazione per ottenere le informazioni sul pacchetto... +GettingInfo.Item=Ottenere informazioni da {quot;}{0}{quot;}... +Expand.Entry.Label=Selezionare o espandere un elemento. +None.Label=Nessuno +Ready.Item=Pronto + +[GetPkgInfo.PropertyPath] +SelectedValue.Message=Non è stato definito alcun valore. Se l'elemento selezionato ha delle sottovoci, espandetelo. + +[WinPESettings] +Get.Windows.Pesettings.Label=Ottieni le impostazioni di Windows PE +Windows.Label=Queste sono le impostazioni di Windows PE per questa immagine: +TargetPath.Label=Percorso di destinazione: +ScratchSpace.Label=Spazio temporaneo: +Change.Button=Cambia... +Ok.Button=OK +Save.Button=Salva... + +[WinPESettings.GetPESettings] +GetValue.Label=Impossibile ottenere il valore +GetValue.Message=Impossibile ottenere il valore + +[Help.QuickHelp] +QuickHelp.Message=Quick Help + +[PEHelper.ServerPort] +Already.Message=The specified port, {0}, is already in use. +InvalidPort.Message=The specified port, {0}, is not in use. + +[ISOCreator] +Status.Message=Stato +Creating.ISO.Message=Creazione del file ISO. L'operazione può richiedere del tempo. Attendere... +IsofileCreated.Message=Il file ISO è stato creato +CreateIsofile.Label=Creare un file ISO +ISO.File.Message=La creazione guidata del file ISO consente di creare rapidamente un file immagine del disco da utilizzare per testare le modifiche apportate all'immagine di Windows. Verrà creato un ambiente di preinstallazione (PE) personalizzato. Questo ambiente eseguirà automaticamente la configurazione del disco e applicherà l'immagine specificata qui. +Re.Ready.Create.Label=Una volta pronti, fare clic sul pulsante Crea +ImageFile.Add.Label=File immagine da aggiungere al file ISO: +Architecture.Label=Architettura: +Target.Isolocation.Label=Posizione ISO di destinazione: +Other.Things.Message=È possibile fare altre cose mentre la ISO viene creata. Tornare qui in qualsiasi momento per uno stato aggiornato +Browse.Button=Sfoglia... +Pick.Button=Scegli... +Mounted.Image.Button=Usa immagine montata +Customize.Environment.Button=Personalizza l'ambiente... +Create.Button=Crea +Cancel.Button=Annulla +Options.Group=Opzioni +Progress.Group=Avanzamento +Download.Windows.ADK.Link=Scarica l'ADK di Windows +ImageName.Column=Nome dell'immagine +ImageDescription.Column=Descrizione dell'immagine +ImageVersion.Column=Versione +Image.Architecture.Column=Architettura +Unattended.CheckBox=File di risposta: +Copy.Ventoy.Drives.CheckBox=Copia su unità Ventoy +Newly.Signed.Boot.CheckBox=Utilizzare binari di avvio con firma recente +Include.Essential.CheckBox=Includi i driver essenziali di questo sistema +Https.Learn.Message=https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install +Create.ISO.Message=Questa opzione creerà file ISO contenenti binari di avvio EFI firmati con il certificato {quot;}Windows UEFI CA 2023{quot;}.{crlf;}{crlf;} +Computers.UEFI.Message=Alcuni computer che utilizzano UEFI potrebbero non avviarsi correttamente da questo file ISO con i binari di avvio aggiornati. Per questo motivo, si consiglia di verificare la compatibilità della propria apparecchiatura di test con questi file binari. +Run.Power.Shell.Message=Eseguire il comando PowerShell descritto nella documentazione della Guida per il creatore ISO (in inglese) per determinare se un dispositivo ha questo certificato installato. +Doubts.Recommend.Message=In caso di dubbi, si consiglia di lasciare questa opzione deselezionata. +Have.Detected.Message=Abbiamo rilevato che, attualmente, questo sistema non supporta i file binari di avvio Windows UEFI CA 2023. Se si procede con la creazione dell'ISO, potrebbe non essere possibile avviare il file ISO risultante su questo sistema. +Windows.Title=Informazioni su Windows UEFI CA 2023 +Check.Option.Storage.Message=When you check this option, storage controllers and network adapter drivers from this machine will be included{crlf;}in your ISO file. They will also be applied to the image file once deployed. +AvailableADK.Message=If available in your installed Assessment and Deployment Kit, your ISO file will use boot binaries signed with Windows UEFI CA 2023.{crlf;}This option is designed for target systems that support Secure Boot and have the latest boot certificates in the allowlist database (DB). + +[ISOCreator.Background] +Isofile.Created.Done.Message=Il file ISO è stato creato con successo +Failed.Create.Message=La creazione del file ISO non è riuscita + +[ISOCreator.GetImageInfo] +Gather.ImageFile.Message=Impossibile raccogliere informazioni sull'immagine. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ISOCreator.Links] +Https.Learn.Message=https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install + +[ISOCreator.Validation] +Either.Source.Message=Il file immagine di origine non esiste o non è stato fornito alcun file immagine. Specificare un file immagine valido e riprovare. +TargetISO.Required.Message=L'ISO di destinazione non è stata specificata. Specificare una posizione per il file ISO e riprovare. +Saved.Message=Assicurarsi di aver salvato tutte le modifiche prima di continuare.{crlf;}{crlf;}Se non lo si è fatto, fare clic su No, salvare l'immagine e ricominciare il processo. Non è necessario chiudere questa finestra.{crlf;}{crlf;}Si desidera creare una ISO con questo file? +Target.ISO.Message=L'ISO di destinazione esiste già. Si desidera sostituirla? + +[ImageAppxPackage.RegStatus] +Yes.Button=Sì +No.Button=No + +[ImageDriver.DriverInbox] +Yes.Button=Sì +No.Button=No + +[ImgAppend] +AppendImage.Label=Aggiungi a un'immagine +Image.Task.Header.Label={0} +Path.Config.File.Label=Percorso del file di configurazione: +Source.Image.Dir.Label=Cartella dell'immagine di origine: +Dest.Image.Description.Label=Descrizione immagine di destinazione: +Destination.ImageFile.Label=File immagine di destinazione: +Destination.Image.Name.Label=Nome immagine di destinazione: +Ok.Button=OK +Cancel.Button=Annullare +Browse.Button=Sfoglia... +Grab.Last.Image.Button=Ultima immagine +Create.Button=Crea... +Exclude.Files.Dirs.CheckBox=Escludi determinati file e cartelle per l'immagine di destinazione +WIM.Boot.Config.CheckBox=Aggiungi con la configurazione WIMBoot +Image.Bootable.CheckBox=Rendi l'immagine avviabile (solo Windows PE) +Verify.Image.CheckBox=Verifica l'integrità dell'immagine +Check.File.Errors.CheckBox=Controlla gli errori dei file +Reparse.Point.Tag.CheckBox=Utilizza la correzione del tag del punto di reparse +ExtendedAttributes.CheckBox=Cattura attributi estesi +Sources.Destinations.Group=Sorgenti e destinazioni +Options.Group=Opzioni + +[ImgAppend.Tooltip] +Grab.Name.Last.Message=Ottenere il nome dell'ultimo indice dell'immagine di destinazione + +[ImgAppend.Validation] +SourceImage.Required.Message=Specificare una directory di origine dell'immagine e riprovare. +ImageFile.Required.Message=Specificare un file immagine di destinazione e riprovare. +NameDestination.Message=Specificare un nome per il file immagine di destinazione e riprovare. +Either.Config.List.Message=Non è stato specificato alcun file dell'elenco di configurazione oppure non è stato possibile rilevare il file dell'elenco di configurazione nel file system. Si desidera continuare senza alcun file dell'elenco di configurazione? + +[ImgApply] +ApplyImage.Label=Applica un'immagine +Image.Task.Header.Label={0} +SourceImageFile.Label=File immagine di origine: +ImageIndex.Label=Indice immagine: +NamingPattern.Label=Modello di denominazione: +Integrity.CheckBox=Verifica l'integrità dell'immagine +Verify.CheckBox=Verifica +Reparse.Point.Tag.CheckBox=Utilizza il tag fix del punto di reparse +Reference.Swmfiles.CheckBox=File SWM di riferimento +Append.Image.WIM.CheckBox=Aggiungi all'immagine la configurazione WIMBoot +Image.Compact.Mode.CheckBox=Applica l'immagine in modalità compatta +Extended.Attributes.CheckBox=Applica gli attributi estesi +Browse.Button=Sfoglia... +Name.Image.Button=Usa il nome dell'immagine +ScanPattern.Button=Modello di scansione +Mounted.Image.Label=Usa immagine montata +Ok.Button=OK +Cancel.Button=Annulla +Destination.Dir.Label=Directory di destinazione: +Source.Group=Origine +Options.Group=Opzioni +Destination.Group=Destinazione +SwmfilePattern.Group=Schema di file SWM +NamingPattern.Required.Label=Specificare il modello di denominazione dei file SWM +Validate.Image.CheckBox=Convalida l'immagine per Trusted Desktop + +[ImgApply.GetIndexes] +Gather.ImageFile.Message=Impossibile raccogliere informazioni sull'immagine. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgApply.ScanSwmPattern] +Source.WIM.Required.Message=Specificare un file WIM di origine. In questo modo sarà possibile utilizzare i file SWM per una successiva applicazione di immagini +ApplyImage.Message=Applica un'immagine +Naming.Returns.Item=Questo modello di denominazione restituisce {0} file SWM +Naming.Returns.Label=Questo modello di denominazione restituisce {0} file SWM + +[ImgApply.Validation] +ImageFile.Message=Il file immagine specificato non è valido. Specificare un'immagine valida e riprovare. + +[ImgCapture] +CaptureImage.Label=Cattura un'immagine +Destination.ImageFile.Label=File immagine di destinazione: +Source.Image.Dir.Label=Cartella dell'immagine di origine: +Dest.Image.Description.Label=Descrizione immagine di destinazione: +Destination.Image.Name.Label=Nome immagine di destinazione: +Path.Config.File.Label=Percorso del file di configurazione: +CompressionType.Label=Tipo di compressione dell'immagine di destinazione: +Sources.Destinations.Group=Sorgenti e destinazioni +Options.Group=Opzioni +Browse.Button=Sfoglia... +Create.Button=Crea... +Ok.Button=OK +Cancel.Button=Annullare +Exclude.Files.Dirs.CheckBox=Escludi determinati file e directory per l'immagine di destinazione +Image.Bootable.CheckBox=Rendi l'immagine avviabile (solo Windows PE) +Verify.Image.CheckBox=Verifica l'integrità dell'immagine +Check.File.Errors.CheckBox=Controlla gli errori dei file +Reparse.Point.Tag.CheckBox=Utilizzare la correzione del tag del punto di reparse +Append.WIM.Boot.CheckBox=Aggiungi con la configurazione WIMBoot +Extended.Attributes.CheckBox=Cattura gli attributi estesi +Mount.Dest.Image.CheckBox=Monta l'immagine di destinazione per un uso successivo +No.Compression.None.Item=All'immagine di destinazione non verrà applicata alcuna compressione +Fast.Compression.Item=Verrà applicata la compressione veloce. È l'opzione predefinita +MaxCompression.Message=Verrà applicata la compressione massima. Questa opzione richiede più tempo, ma produce un'immagine più piccola. + +[ImgCleanup] +ImageCleanup.Label=Pulizia immagine +Task.Choose.Label=Scegliere un'attività: +Text4.Label=Scegliere un'attività per vederne la descrizione +NoOptions.Message=Non ci sono opzioni configurabili per questa attività. Tuttavia, si dovrebbe eseguire questa attività solo per tentare di ripristinare un'immagine di Windows che non riesce ad avviarsi +Superseded.Base.Reset.Label=Il ripristino della base dei componenti sostituiti è stato eseguito l'ultima volta in data: +Only.Check.Option.Label=Selezionare questa opzione solo se il ripristino della base richiede più di 30 minuti per essere completato +NoOptions.Label=Non ci sono opzioni configurabili per questa attività +Source.Label=Fonte: +Task.Listed.Label=Selezionare un'attività elencata sopra per configurarne le opzioni +TaskOptions.Group=Opzioni dell'attività +Ok.Button=OK +Cancel.Button=Annullare +Revert.Pending.Actions.Item=Annullamento delle azioni in sospeso +Clean.Up.ServicePack.Item=Pulisci i file di backup del Service Pack +Clean.Up.Component.Item=Ripulire l'archivio dei componenti +Analyze.Component.Store.Item=Analizzare l'archivio dei componenti +Check.Component.Store.Item=Controllare l'archivio dei componenti +Scan.Comp.Store.Item=Scansiona l'archivio dei componenti per individuare eventuali corruzioni +Repair.Component.Store.Item=Ripara l'archivio dei componenti +Source.Title=Specificare l'origine da cui ripristinare lo stato di salute dell'archivio componenti +Browse.Button=Sfogliare... +Detect.Group.Policy.Button=Rileva dai criteri di gruppo +HideServicePack.CheckBox=Nascondi il service pack dall'elenco degli aggiornamenti installati +Reset.Base.CheckBox=Ripristina la base dei componenti sostituiti +Defer.Long.Running.CheckBox=Rimanda le operazioni di pulizia di lunga durata +Different.Source.CheckBox=Usa un'altra fonte per la riparazione dei componenti +WindowsUpdate.CheckBox=Limita l'accesso a Windows Update +Last.Reset.Base.Label=LastResetBase_UTC +Get.Last.Base.Message=Impossibile ottenere la data dell'ultimo ripristino della base. È possibile che non sia stato effettuato alcun azzeramento della base +Last.Reset.Base.Item=LastResetBase_UTC +Get.Last.Base.Item=Impossibile ottenere la data dell'ultimo ripristino della base. È possibile che non sia stato effettuato alcun azzeramento della base +Get.Last.Base.Label=Impossibile ottenere la data dell'ultimo ripristino della base. +Task.See.Choose.Label=Scegliere un'attività per vederne la descrizione +Experience.Boot.Message=Se si verifica un errore di avvio, questa opzione può tentare di ripristinare il sistema annullando tutte le azioni in sospeso dalle precedenti operazioni di assistenza. +Removes.Backup.Files.Item=Rimuove i file di backup creati durante l'installazione di un service pack +Cleans.Up.Superseded.Item=Pulisce i componenti sostituiti e riduce le dimensioni dell'archivio dei componenti +Creates.Report.Comp.Item=Crea un rapporto sul magazzino dei componenti, comprese le dimensioni +Checks.Whether.Image.Message=Controlla se l'immagine è stata contrassegnata come corrotta da un processo non riuscito e se la corruzione può essere riparata +Scans.Image.Message=Esegue la scansione dell'immagine per individuare eventuali danni all'archivio componenti, ma non esegue automaticamente le opzioni di riparazione +Scans.Image.Component.Item=Esegue la scansione dell'immagine per individuare eventuali danni all'archivio componenti ed esegue automaticamente le operazioni di riparazione + +[ImgCleanup.Validation] +Source.Has.None.Message=Non è stata fornita un'origine valida per la riparazione dell'archivio componenti. +Provide.Source.Try.Message=Fornire un'origine e riprovare. +Please.Make.Message=Assicurarsi che l'origine specificata esista nel file system e riprovare. +ImageCleanup.Message=Pulizia immagine + +[ImageConversion.Success] +Image.Done.Converted.Label=L'immagine è stata convertita con successo +ConversionDone.Message=L'immagine specificata è stata convertita con successo nel formato di destinazione. Per comodità, è possibile aprire l'Esplora file per vedere dove si trova l'immagine di destinazione.{crlf;}{crlf;}Si desidera aprire la directory in cui è memorizzata l'immagine di destinazione? +Yes.Button=Sì +No.Button=No + +[ImgExport] +ExportImage.Label=Esportazione di un'immagine +Destination.ImageFile.Label=File immagine di destinazione: +SourceImageFile.Label=File immagine di origine: +NamingPattern.Label=Modello di denominazione: +CompressionType.Label=Tipo di compressione dell'immagine di destinazione: +Source.Image.Index.Label=Indice immagine sorgente: +Reference.Swmfiles.CheckBox=File SWM di riferimento +CustomName.CheckBox=Specificare un nome personalizzato per l'immagine di destinazione +Image.Bootable.CheckBox=Rendi l'immagine avviabile (solo Windows PE) +Append.Image.WIM.CheckBox=Aggiungi all'immagine la configurazione WIMBoot +Ok.Button=OK +Cancel.Button=Annullare +Browse.Button=Sfoglia... +Name.Image.Button=Usa il nome dell'immagine +ScanPattern.Button=Scansiona modello +Sources.Destinations.Group=Sorgenti e destinazioni +Options.Group=Opzioni +Source.ImageFile.Title=Specificare un file immagine di origine da esportare +Index.Column=Indice +ImageName.Column=Nome dell'immagine +ImageDescription.Column=Descrizione dell'immagine +ImageVersion.Column=Versione immagine +No.Compression.None.Item=All'immagine di destinazione non verrà applicata alcuna compressione +Fast.Compression.Item=Verrà applicata la compressione veloce. È l'opzione predefinita +MaxCompression.Message=Verrà applicata la compressione massima. Questa opzione richiede più tempo, ma produce un'immagine più piccola +Compression.Level.Message=Verrà applicato il livello di compressione per le immagini con reset a pulsante. Ciò richiede l'esportazione dell'immagine come file ESD +NamingPattern.Required.Label=Specificare il modello di denominazione dei file SWM +CheckIntegrity.CheckBox=Controlla l'integrità prima di esportare l'immagine + +[ImgExport.ScanSwmPattern] +Source.WIM.Required.Message=Specificare un file WIM di origine. In questo modo sarà possibile utilizzare i file SWM per una successiva applicazione di immagini +Naming.Returns.Item=Questo modello di denominazione restituisce {0} file SWM +Naming.Returns.Label=Questo modello di denominazione restituisce {0} file SWM + +[ImgExport.Validation] +SourceImageFile.Message=Specificare un file immagine di origine da esportare e riprovare. +ImageFile.Required.Message=Specificare un file immagine di destinazione e riprovare + +[ImageIndexDelete] +Remove.Volume.Image.Label=Rimuovere l'immagine di un volume +Image.Task.Header.Label={0} +SourceImage.Label=Immagine sorgente: +Mark.VolumeImages.Message=Contrassegnare le immagini del volume da eliminare a sinistra. L'immagine avrà poi gli indici mostrati a destra +Get.Indexes.Image.Label=Ottenere gli indici dall'immagine. Attendere... +Browse.Button=Sfogliare... +Mounted.Image.Button=Utilizza l'immagine montata +Ok.Button=OK +Cancel.Button=Annullare +Integrity.CheckBox=Verifica l'integrità dell'immagine +Index.Column=Indice +ImageName.Column=Nome dell'immagine +Columns0.Column=Indice +Columns1.Column=Nome dell'immagine +VolumeImages.Group=Immagini volume + +[ImageIndexDelete.IndexInfo] +Image.Only.Contains.Message=Questa immagine contiene solo 1 indice. Non è possibile rimuovere le immagini del volume da questo file +Remove.Volume.Image.Title=Rimuovere un'immagine del volume + +[ImageIndexDelete.Validation] +SelectImages.Message=Selezionare le immagini del volume da rimuovere da questa immagine e riprovare +Remove.Volume.Image.Title=Rimuovere un'immagine del volume +ImageMounted.Message=Il programma ha rilevato che questa immagine è montata. Per rimuovere le immagini di volume da un file, è necessario smontarlo. È possibile rimontarla in seguito, se si desidera.{crlf;}{crlf;}Si noti che questa operazione smonterà l'immagine senza salvare le modifiche. Assicurarsi che tutte le modifiche siano state salvate prima di procedere.{crlf;}{crlf;}Si desidera smontare questa immagine? + +[ImageIndexSwitch] +Image.Indexes.Label=Cambia gli indici delle immagini +Image.Task.Header.Label={0} +Image.Label=Immagine: +Unmounting.Source.Label=Quando si smonta l'indice sorgente, cosa fare? +Destination.Mount.Label=Indice di destinazione da montare: +Already.Mounted.Label=Questo indice è già stato montato +Ok.Button=OK +Cancel.Button=Annullare +Indexes.Group=Indici +Save.Changes.RadioButton=Salva le modifiche all'indice +DiscardChanges.RadioButton=Smonta scartando le modifiche + +[ImageIndexSwitch.Initialize] +Getting.Image.Indexes.Label=Ottenere gli indici delle immagini... + +[ImageInfoSave] +Saving.Image.Button=Salvataggio delle informazioni sull'immagine... +Wait.Message=Attendere che DISMTools salvi le informazioni sull'immagine in un file. Questa operazione può richiedere un certo tempo, a seconda delle attività eseguite. +Wait.Label=Attendere... +Wait.Background.Message=I processi in background devono essere completati prima di ottenere informazioni. Aspetteremo che siano completati +Waiting.Bg.Procs.Item=In attesa che i processi in background finiscano... +Create.Target.Reason.Message=Impossibile creare la destinazione di salvataggio. Motivo: +OperationFailed.Message=L'operazione non è riuscita +PackageInfo.Label=Informazioni pacchetto +FeatureInfo.Label=Informazioni funzionalità +AppX.Package.Label=Informazioni pacchetti AppX +CapabilityInfo.Label=Informazioni sulle capacità +DriverInfo.Label=Informazioni sul driver +Desea.Obtener.Message=Vuoi ottenere informazioni complete sui pacchetti installati? Tieni presente che l'operazione richiederà più tempo. +Statement3.Message=Vuoi ottenere informazioni complete sulle funzionalità installate? Tieni presente che questa operazione richiederà più tempo. +Statement4.Message=Vuoi ottenere informazioni complete sui pacchetti AppX installati? Tieni presente che questa operazione richiederà più tempo. +Statement5.Message=Vuoi ottenere informazioni complete sulle capacità installate? Tieni presente che questa operazione richiederà più tempo. +Statement6.Message=Vuoi ottenere informazioni complete sui driver installati? Tieni presente che questa operazione richiederà più tempo. +BgProcessDetect.Message=Avete configurato i processi in background in modo che non rilevino tutti i driver, compresi quelli che fanno parte della distribuzione di Windows, quindi potreste non vedere il driver che vi interessa.{crlf;}{crlf;} +Setting.Applied.Task.Message=Questa impostazione viene applicata anche a questa attività, ma ora è possibile ottenere le informazioni su tutti i driver. Tenere presente che questa operazione può richiedere molto tempo, a seconda della quantità di driver di prima parte. +Get.Message=Volete ottenere le informazioni su tutti i driver, compresi quelli che fanno parte della distribuzione di Windows? +SavingContents.Message=Salvataggio dei contenuti... + +[ImageInfoSave.AppxInfo] +Preparing.Package.Message=Preparazione dei processi di informazione sui pacchetti AppX... +Basic.Ready.Message=Il programma ha ottenuto informazioni elementari sui pacchetti AppX installati in questa immagine. È inoltre possibile ottenere informazioni complete su tali pacchetti AppX e salvarle nel rapporto.{crlf;}{crlf;} +May.Take.Long.Message=Si noti che questa operazione richiederà più tempo a seconda del numero di pacchetti AppX installati. +Prompt.Label=Volete ottenere queste informazioni e salvarle nel rapporto? +Package.Message=Informazioni sui pacchetti AppX +Getting.Message=Ottenere informazioni sui pacchetti AppX... (pacchetto AppX {0} di {1}) +Packages.Obtained.Message=I pacchetti AppX sono stati ottenuti +Saving.Installed.Message=Salvataggio dei pacchetti AppX installati... + +[ImgInfo.Capabilities] +Preparing.Message=Preparazione dei processi di informazione sulle capacità... +Basic.Ready.Message=Il programma ha ottenuto informazioni elementari sulle capacità installate di questa immagine. È inoltre possibile ottenere informazioni complete su tali funzionalità e salvarle nel rapporto.{crlf;}{crlf;} +May.Take.Long.Message=Si noti che questa operazione richiederà più tempo a seconda del numero di funzionalità installate. +Save.Prompt.Label=Volete ottenere queste informazioni e salvarle nel rapporto? +CapabilityInfo.Message=Informazioni sulle capacità +Loaded.Message=Le capacità sono state ottenute +Loading.Capability.Message=Ottenere informazioni sulle capacità... (capacità {0} di {1}) +Saving.Message=Salvataggio delle capacità installate... + +[ImgInfo.DriverFiles] +Preparing.Message=Preparazione dei processi di informazione del driver... +Loading.Driver.Message=Ottenere informazioni dai file dei driver... (file dei driver {0} di {1}) + +[ImageInfoSave.Drivers] +Preparing.Message=Preparazione dei processi di informazione sui driver... +Basic.Ready.Message=Il programma ha ottenuto informazioni elementari sui driver installati su questa immagine. È inoltre possibile ottenere informazioni complete su tali driver e salvarle nel rapporto.{crlf;}{crlf;} +May.Take.Long.Message=Si noti che questa operazione richiederà più tempo a seconda del numero di driver installati. +Prompt.Label=Volete ottenere queste informazioni e salvarle nel rapporto? +DriverInfo.Message=Informazioni sul driver +Setting.Applied.Task.Message=Questa impostazione viene applicata anche a questa attività, ma ora è possibile ottenere le informazioni su tutti i driver. Tenere presente che questa operazione può richiedere molto tempo, a seconda della quantità di driver di prima parte. +Get.Message=Volete ottenere le informazioni su tutti i driver, compresi quelli che fanno parte della distribuzione di Windows? +DriversObtained.Message=I driver del dispositivo sono stati ottenuti +Get.Driver.Message=Ottenere informazioni sui driver... (driver {0} di {1}) +SaveDrivers.Message=Salvataggio dei driver installati... + +[ImageInfoSave.GetDriverInfo] +BgProcessDetect.Message=Avete configurato i processi in background in modo che non rilevino tutti i driver, compresi quelli che fanno parte della distribuzione di Windows, quindi potreste non vedere il driver che vi interessa.{crlf;}{crlf;} + +[ImgInfo.Features] +Preparing.Feature.Message=Preparazione processi verifica informazioni funzionalità... +Loading.Feature.Message=Ottenere informazioni sulle caratteristiche... (caratteristica {0} di {1}) + +[ImageInfoSave.Features] +Basic.Ready.Message=Il programma ha verificato le informazioni di base sulle funzionalità installate in questa immagine. È possibile avere informazioni complete su tali funzionalità e salvarle nel rapporto.{crlf;}{crlf;} +May.Take.Long.Message=Tieni presente che questa operazione richiederà più tempo a seconda del numero di funzionalità installate. +Prompt.Label=Vuoi avere queste informazioni e salvarle nel rapporto? +FeatureInfo.Message=Informazioni funzionalità +FeaturesObtained.Message=Le funzionalità sono state acquisite +SaveFeatures.Message=Salvataggio funzionalità installate... + +[ImageInfoSave.Image] +Getting.Image.Message=Verifica informazioni immagine... (immagine {0} di {1}) + +[ImgInfo.PkgFiles] +Preparing.Package.Message=Preparazione processi verifica informazioni pacchetti... + +[ImgInfo.PackageFiles] +Loading.Package.Message=Verifica informazioni file pacchetto... (file pacchetto {0} di {1}) + +[ImgInfo.Packages] +Preparing.Package.Message=Preparazione processi verifica informazioni pacchetti... +Loading.Package.Message=Verifica informazioni pacchetti... (pacchetto {0} di {1}) + +[ImageInfoSave.Packages] +Basic.Ready.Message=Il programma ha verificato le informazioni di base sui pacchetti installati in questa immagine. È anche possibile avere informazioni complete su tali pacchetti e salvarle nel rapporto.{crlf;}{crlf;} +May.Take.Long.Message=Nota che questa operazione richiederà più tempo a seconda del numero di pacchetti installati. +Prompt.Label=Vuoi ottenere queste informazioni e salvarle nel rapporto? +PackageInfo.Message=Informazioni pacchetto +PackagesObtained.Message=I pacchetti sono stati acquisiti +SavePackages.Message=Salvataggio pacchetti installati... + +[ImageInfoSave.WinPE] +Prepare.Message=Preparazione per ottenere la configurazione di Windows PE... +Get.Target.Message=Ottenere il percorso di destinazione di Windows PE... +Get.Scratch.Message=Ottenere lo spazio temporaneo di Windows PE... + +[ImageInfoSave.Report] +Get.Message=The program could not get information about this task. See below for reasons why: +Exception.Label=Exception: +ExceptionMessage=Exception message: +ErrorCode.Label=Error code: +ImageInfo.Label=Informazioni immagine +Active.Install.Label=Active installation information: +Name.Label=Nome: +Boot.Point.Mount.Label=Boot point (mount point): +Version.Label=Versione: +Offline.Install.Label=Offline installation information: +OfflineVersion.Label=- Version: +ImageFile.Get.Label=Image file to get information from: +InfoSummary.Label=Information summary for +ImageS.Label=image(s): +Version.Column=Version +ImageName.Label=Nome immagine +ImageDescription=Descrizione immagine +ImageSize.Label=Image size +Architecture.Label=Architecture +HAL.Label=HAL +ServicePackBuild.Label=Service Pack build +ServicePackLevel.Label=Service Pack level +InstallationType.Label=Installation type +Edition.Label=Edition +ProductType.Label=Product type +ProductSuite.Label=Product suite +System.Root.Dir.Label=System root directory +Languages.Label=Languages +DateCreation.Label=Date of creation +DateModification.Label=Date of modification +Default.Label=(default) +Bytes.Label=bytes (~ +UndefinedImage.Label=Undefined by the image +PackageInfo.Label=Informazioni pacchetto +Active.Install.Label.Label=active installation +PackageS.Label=package(s): +PackageName.Label=Package name +Applicable.Label=Applicable? +Copyright.Label=Copyright +Company.Label=Company +CreationTime.Label=Creation time +Description=Description +InstallClient.Label=Install client +Install.Package.Name.Label=Install package name +InstallTime.Label=Install time +Last.Update.Time.Label=Last update time +DisplayName.Label=Display name +ProductName.Label=Product name +ProductVersion.Label=Product version +ReleaseType.Label=Release type +RestartRequired.Label=Restart required? +SupportInfo.Label=Support information +PackageState.Label=Package state +Boot.Up.Required.Label=Boot up required? +Capability.Identity.Label=Capability identity +CustomProps.Label=Custom properties +Features.Label=Funzionalità +None.Label=None +Preposterous.Time.Date.Label=- **Preposterous time and date** +PackageInfo.Ready.Label=Complete package information has been gathered. +Package.Release.Type.Label=Package release type +Package.Install.Time.Label=Package install time +PackageInfo.Missing.Label=Complete package information has not been gathered +Package.File.Label=Package file information +Amount.Package.Files.Label=Amount of package files to get information about: +FeatureInfo.Label=Feature information +FeatureCount.Suffix=feature(s): +FeatureName.Label=Nome funzionalità +FeatureState.Label=Feature state +Web.Label=On The Web +Look.Item.Online.Label=Cerca questo elemento online +FeatureInfo.Ready.Label=Complete feature information has been gathered +FeatureInfo.Missing.Label=Complete feature information has not been gathered +AppX.Package.Label=AppX package information +Task.Supported.Win.Message=This task is not supported on the specified Windows image. Check that it contains Windows 8 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +AppXPackages.Label=AppX package(s): +App.Display.Name.Label=Application display name +ResourceID.Label=Resource ID +RegisteredUser.Label=Registered to a user? +Install.Location.Label=Installation location +Package.Manifest.Label=Package manifest location +StoreLogo.Asset.Dir.Label=Store logo asset directory +Main.StoreLogo.Asset.Label=Main store logo asset +Yes.Button=Yes +No.Button=No +Unknown.Label=Sconosciuto +Notemain.StoreLogo.Message=NOTE: main store logo asset locations are a guess, and may not be the assets you're looking for. If that happens, report an issue on the GitHub repo using the +StoreLogo.Asset.Label=Store logo asset preview issue +Template.Provide.Message=template. Then, provide the package name, the expected asset and the obtained asset. +CapabilityInfo.Label=Capability information +Task.Supported.Message=This task is not supported on the specified Windows image. Check that it contains Windows 10 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +CapabilityIes.Label=capability/ies: +CapabilityName.Label=Capability name +CapabilityState.Label=Capability state +DownloadSize.Label=Download size +InstallationSize.Label=Installation size +BytesSuffix.Label=bytes +CapabilityInfo.Ready.Label=Complete capability information has been gathered +CapabilityInfo.Missing.Label=Complete capability information has not been gathered +DriverInfo.Label=Driver information +Box.Driver.Label=In-box driver information +WasSaved.Label=was saved +Saved.Label=was not saved +DriverS.Label=driver(s): +PublishedName.Label=Published name +Original.File.Name.Label=Nome file originale +ProviderName.Label=Provider name +ClassName.Label=Class name +ClassDescription=Class description +ClassGUID.Label=Class GUID +Catalog.File.Path.Label=Catalog file path +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Critical to the boot process? +Date.Label=Data +SignatureStatus.Label=Signature status +DriverInfo.Ready.Label=Complete driver information has been gathered +DriverInfo.Missing.Label=Complete driver information has not been gathered +DriverPackage.Label=Driver package information +DriverPackageS.Label=driver package(s): +DriverPackage.Driver.Label=Driver package +Value.Label=of +HardwareTargets.Label=hardware target(s): +Hardware.Description=Hardware description +HardwareID.Label=Hardware ID +CompatibleIds.Label=Compatible IDs +ExcludeIds.Label=Exclude IDs +Hardware.Manufacturer.Label=Hardware manufacturer +None.Declared.Label=None declared by the manufacturer +File.Contains.Hardware.Label=This file contains no hardware targets. It could be invalid. +Windows.Label=Windows PE configuration +UnsupportedWin.Message=This task is not supported on the specified Windows image. Check that it is a Windows PE image. Skipping task... +Target.Path.Get.Label=Target path: could not get value +ScratchSpace.Get.Value.Label=Scratch space: could not get value +TargetPath.Label=Target path: +GetValue.Label=could not get value +ScratchSpace.Label=Scratch space: +ServiceInfo.Label=Service Information +Getting.Service.Label=Getting service information... +Service.Default.Label=servizio/i nel set di controllo predefinito: +ServiceName.Label=Nome servizio +DisplayName.Column=Nome visualizzato +StartType.Label=Start Type +ServiceType.Label=Service Type +Overview.Svc.Label=Saving information overview of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Detailed.Svc.Label=Saving detailed information of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Undefined.Label=Undefined +Per.User.Service.Label=Not a per-user service +InfoService.Label=Information for service: {lbrace;}0{rbrace;} +Service.Display.Name.Label=Service Display Name: {lbrace;}0{rbrace;} +Service.Description=Service Description: {lbrace;}0{rbrace;} +ImagePath.Label=Image Path: {lbrace;}0{rbrace;} +ObjectName.Label=Object Name: {lbrace;}0{rbrace;} +StartType.Option0.Label=Start Type: {lbrace;}0{rbrace;} +DelayedStart.Label=Delayed Start? {lbrace;}0{rbrace;} +ServiceType.Option0.Label=Service Type: {lbrace;}0{rbrace;} +Per.User.Flags.Label=Per-user Service Flags: {lbrace;}0{rbrace;} +Group.Label=Group: {lbrace;}0{rbrace;} +WindowsNt.Label=Windows NT® privileges: +PrivilegeName.Label=Privilege Name +Privilege.Display.Name.Label=Privilege Display Name +Privilege.Description=Privilege Description +ErrorControl.Label=Error Control: +ServiceError.Label=On service error: {lbrace;}0{rbrace;} +Failure.Action.First.Label=Failure action on first error: {lbrace;}0{rbrace;} +Failure.Action.Second.Label=Failure action on second error: {lbrace;}0{rbrace;} +Failure.Errors.Label=Failure action on subsequent errors: {lbrace;}0{rbrace;} +ResetErrorCount.Label=Reset error count after the following minutes: {lbrace;}0{rbrace;} minute(s) +Restart.Service.Message=Restart service after the following minutes: {lbrace;}0{rbrace;} minute(s) ({lbrace;}1{rbrace;} seconds) after first failure, {lbrace;}2{rbrace;} minute(s) ({lbrace;}3{rbrace;} seconds) after second failure, {lbrace;}4{rbrace;} minute(s) ({lbrace;}5{rbrace;} seconds) after subsequent failures +Dependencies.Label=Dependencies: +Name.Column=Nome +Type.Label=Tipo +Dependents.Label=Dependents: +ServicesFound.Label=No services were found. +DISM.Tools.Image.Title=DISMTools Image Information Report +Automatically.Message=This is an automatically generated report created by DISMTools. It can be viewed at any time to check image information. +Report.Contains.Message=This report contains information about the tasks that you wanted to get information about, which are reflected below this message. +Process.Primarily.Message=This process primarily uses the DISM API to get information. If you want to get information of the API operations, this file does not include it. However, you can get that information from the log file stored in the standard location of: +TaskDetails.Label=Task details +ProcessesStarted.Label=Processes started at: +Report.File.Target.Label=Report file target: +Tasks.Get.Complete.Label=Information tasks: get complete image information +Tasks.Get.Image.Label=Information tasks: get image file information +Tasks.Get.Installed.Label=Information tasks: get installed package information +Tasks.Get.Package.Label=Information tasks: get package file information +Tasks.Get.Feature.Label=Information tasks: get feature information +TaskInstalled.Label=Information tasks: get installed AppX package information +Tasks.Get.Capability.Label=Information tasks: get capability information +Tasks.Get.Driver.Label=Information tasks: get installed driver information +Tasks.Get.Label.Label=Information tasks: get driver package information +Tasks.Get.Windows.Label=Information tasks: get Windows PE configuration +Tasks.Get.Services.Label=Information tasks: get services from default control set +WeEnded.Label=We have ended at +NiceDay.Label=. Have a nice day! +Complete.AppX.Label=Complete AppX package information has been gathered +AppxInfo.Ready2.Label=Complete AppX package information has not been gathered + +[ImgMount] +MountImage.Label=Montare un'immagine +Options.Required.Label=Specificare le opzioni per montare un'immagine: +ImageFile.Label=File immagine*: +ESD.Label=esd +Convert.File.WIM.Label=È necessario convertire questo file in un file WIM per poterlo montare +Convert.Button=Convertire +SWM.Label=swm +Merge.Swmfiles.Item=È necessario unire i file SWM a un file WIM per poterlo montare +Merge.Item=Unisci +MountDirectory.Label=Montare la directory*: +Index.Label=Indice*: +Fields.End.Required.Label=I campi che terminano con * sono obbligatori +Source.Group=Sorgente +Destination.Group=Destinazione +Options.Group=Opzioni +Browse.Button=Sfoglia... +Cancel.Button=Annullare +Ok.Button=OK +Index.Column=Indice +ImageName.Column=Nome dell'immagine +ImageDescription.Column=Descrizione dell'immagine +ImageVersion.Column=Versione dell'immagine +Mount.Read.CheckBox=Montare con permessi di sola lettura +Optimize.Times.CheckBox=Ottimizza tempi di montaggio +Integrity.CheckBox=Controlla l'integrità dell'immagine +Image.Already.Message=Questa immagine è già montata e non può essere montata di nuovo. Se si desidera montarla nella directory desiderata, smontare l'immagine dalla directory di montaggio originale (salvando le modifiche, se si vuole) e aprire successivamente questa finestra di dialogo + +[ImgMount.Actions] +Convert.Button=Convertire +Convert.Image.WIM.Message=Per montare l'immagine è necessario convertirla in un file WIM +Merge.Swmfiles.Message=È necessario unire i file SWM in un file WIM per poterlo montare +Swm.Merge.Required.Message=È necessario unire i file SWM in un file WIM per poterlo montare + +[ImgMount.GetIndexes] +Gather.ImageFile.Message=Impossibile raccogliere informazioni sull'immagine. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgMount.Validation] +Create.Dir.Reason.Message=Impossibile creare una cartella di montaggio. Motivo: {0}; {1} +MountImage.Title=Monta un'immagine + +[AppxPackages.Add.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Add provisioned AppX packages + +[AppxPackages.Remove.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Remove provisioned AppX packages + +[ImageConversion.WimToEsd] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Drivers.Export] +Class.Name.Message=This class name is not valid. + +[ImageOps.Editions.Set] +DirectoryMissing.Message=Either no directory has been specified or it does not exist. +ProductKey.Message=The product key has been typed incorrectly + +[FFU.Apply.Messages] +Destination.Disk.Message=Make sure that the destination disk is as large or larger than the specified FFU file when mounted. If the destination disk is larger than the FFU's expanded partitions, please extend partitions to their full extent. + +[FFU.Capture.Messages] +Source.Drive.Exist.Label=The specified source drive does not exist. +Source.Drive.Message=The source drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? +Provide.Dest.Path.Label=Please provide a destination path for the FFU file. +Provide.Name.Dest.Label=Please provide a name for the destination FFU file. + +[FFU.Optimize.Messages] +Path.Image.Required.Message=Please specify the path of the image you want to optimize and try again. Also, make sure that that path exists. + +[ImageConversion.SwmToWim] +Get.Index.Image.Label=Could not get index information for this image file + +[ImgSplit] +SplitImages.Label=Dividere le immagini +Image.Task.Header.Label={0} +Source.Image.Label=Immagine sorgente da dividere: +Name.Path.Destination.Label=Nome e percorso dell'immagine di destinazione da dividere: +Maximum.Size.Images.Label=Dimensione massima delle immagini divise (in MB): +LargeFile.Note.Message=Tenere presente che, per ospitare un file di grandi dimensioni nell'immagine, un file di immagine divisa può essere più grande del valore specificato +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annulla +Integrity.CheckBox=Controlla l'integrità dell'immagine +Source.WIM.File.Title=Specificare il file WIM di origine da dividere: +Target.Location.Title=Specificare la posizione di destinazione delle immagini divise: + +[ImgSplit.Validation] +Name.Required.Message=Specificare un nome e un percorso per il file SWM di destinazione e riprovare. Assicurarsi inoltre che il percorso di destinazione esista. +Source.WIM.Required.Message=Specificare un file WIM di origine e riprovare. Assicurarsi inoltre che esista + +[Img.Swm] +MergeSwmfiles.Label=Unire i file SWM +Image.Task.Header.Label={0} +SourceSwmfile.Label=File SWM di origine: +Notewhen.Specifying.Message=NOTA: quando si specifica il file SWM, scegliere il primo file. DISMTools si occuperà dei file SWM aggiuntivi memorizzati in quella directory. +Destination.WIM.File.Label=File WIM di destinazione: +Index.Label=Indice: +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annullare +LearnHow.Link=Impara come si fa +Index.Column=Indice +ImageName.Column=Nome dell'immagine +ImageDescription.Column=Descrizione dell'immagine +ImageVersion.Column=Versione dell'immagine +Source.Swmfile.Title=Specificare il file SWM di origine da unire +Dest.WIM.File.Title=Specificare il file WIM di destinazione in cui unire i file SWM di origine + +[ImgUMount] +UnmountImage.Label=Smontare un'immagine +Options.Required.Label=Specificare le opzioni per smontare questa immagine: +Dir.Label=La directory di montaggio: +MountDirectory.Label=Directory di montaggio: +UnmountOperation.Label=Operazione di smontaggio: +Integrity.CheckBox=Controlla l'integrità dell'immagine +Append.Changes.CheckBox=Applica le modifiche a un altro indice +Pick.Button=Scegli... +Ok.Button=OK +Cancel.Button=Annullare +Dir.Required.Description=Specificare una directory di montaggio: +LoadedProject.RadioButton=è caricata nel progetto +LocatedSomewhere.RadioButton=si trova da qualche altra parte +Save.Changes.Unmount.Item=Salvare le modifiche e smontare +Discard.Changes.Unmount.Item=Scartare le modifiche e smontare +MountDirectory.Group=Montare la directory +Additional.Options.Group=Opzioni aggiuntive + +[ImgUMount.Validation] +Dir.Invalid.Message=La directory specificata non è una directory di montaggio valida. +Dir.Missing.Message=La directory di montaggio non esiste + +[Img.WIM] +ConvertImage.Label=Convertire immagine +Image.Task.Header.Label={0} +SourceImageFile.Label=File immagine di origine: +Format.Converted.Image.Label=Formato dell'immagine convertita: +Destination.ImageFile.Label=File immagine di destinazione: +Index.Label=Indice: +Format.Ichoose.Link=Quale formato devo scegliere? +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annullare +Index.Column=Indice +ImageName.Column=Nome dell'immagine +ImageDescription.Column=Descrizione dell'immagine +ImageVersion.Column=Versione dell'immagine +Source.Group=Sorgente +Options.Group=Opzioni +Destination.Group=Destinazione +Source.ImageFile.Title=Specificare il file immagine di origine che si desidera convertire +Target.Image.Stored.Title=Dove verrà memorizzata l'immagine di destinazione? + +[Img.Win] +Service.Windows.Message=Il programma non è in grado di gestire le immagini di Windows Vista +Unsupported.Message=Né questo programma né DISM supportano la manutenzione delle immagini di Windows Vista. DISM è destinato a gestire immagini di Windows 7 o più recenti. È ancora possibile montare le immagini di Windows Vista, ma tutte le opzioni saranno disabilitate.{crlf;}{crlf;}Se si desidera comunque eseguire la manutenzione di un'immagine di Windows Vista, consultare l'argomento {quot;}Compatibilità con le versioni precedenti di Windows{quot;} nella documentazione della Guida in linea.{crlf;}{crlf;}Si desidera continuare? +Yes.Button=Sì +No.Button=No + +[ImportDrivers] +Title.Label=Importare i driver +Process.Third.Message=Questo processo importerà tutti i driver di terze parti dell'origine specificata in questa immagine o installazione. Questo assicura che l'immagine di destinazione abbia la stessa compatibilità hardware dell'immagine di origine +ImportSource.Label=Importazione dell'origine: +Source.Doesn.Tany.Label=Questa sorgente non ha impostazioni aggiuntive disponibili. +Source.Listed.Choose.Label=Scegliere una sorgente elencata sopra per configurarne le impostazioni. +Windows.Label=Immagine di Windows da cui importare i driver: +Tuse.Target.Label=Non è possibile utilizzare la destinazione di importazione come origine di importazione +Offline.Drivers.Label=Installazione offline da cui importare i driver: +ImageFile.Label=File immagine: +Pick.Button=Scegliere... +Refresh.Button=Aggiorna +Ok.Button=OK +Cancel.Button=Annullare +DriveLetter.Column=Lettera unità +DriveLabel.Column=Etichetta dell'unità +DriveType.Column=Tipo di unità +TotalSize.Column=Dimensione totale +Available.Free.Space.Column=Spazio libero disponibile +DriveFormat.Column=Formato unità +ContainsWindows.Column=Contiene Windows? +Windows.Column=Versione di Windows +Windows.Item=Immagine di Windows +Online.Install.Item=Installazione attiva +Offline.Install.Item=Installazione offline + +[IncompleteSetup] +SetupIncomplete.Message=L'impostazione non è ancora stata completata e le impostazioni personalizzate non verranno salvate. Procedendo, il programma userà le impostazioni predefinite.{crlf;}{crlf;}Vuoi procedere? +Yes.Button=Sì +No.Button=No + +[InfoSaveResults] +Image.Report.Label=Risultati del rapporto sulle informazioni sull'immagine +ReportSaved.Message=Il rapporto è stato salvato nella posizione specificata e il suo contenuto viene visualizzato sottostante. +SaveReport.Button=Salva rapporto... + +[InfoSaveResults.Actions] +Ok.Button=OK + +[Settings.Dialog] +Detected.Label=Sono state rilevate impostazioni non valide +Reset.Default.Message=Le impostazioni non valide sono state ripristinate ai valori predefiniti. Per ulteriori informazioni controllare i campi sottostanti: +Ok.Button=OK +Dismexecutable.Exist.Item=L'eseguibile DISM specificato non esiste: {crlf;}{quot;}{0}{quot;} +DISM.Executable.Label=L'impostazione dell'eseguibile DISM sembra essere corretta +Log.Font.Exist.Item=Il font specificato del registro non esiste in questo sistema: {crlf;}{quot;}{0}{quot;} +Log.Font.Setting.Label=L'impostazione dei font del registro sembra essere corretta +Log.File.Exist.Item=Il file registro specificato non esiste: {crlf;}{quot;}{0}{quot;} +Log.File.Setting.Label=L'impostazione del file registro sembra essere corretta +Scratch.Dir.Exist.Item=La cartelle temporanea specificata non esiste: {crlf;}{quot;}{0}{quot;} +Scratch.Dir.Set.Label=L'impostazione della cartella temporanea sembra essere corretta + +[InvalidSettings] +Found.Label=Il programma ha rilevato impostazioni non valide + +[MUMAdditionDialog] +Add.Update.Manifest.Label=Aggiungi manifesto di aggiornamento +DialogHelp.Message=Questa finestra di dialogo consente di aggiungere un file Microsoft Update Manifest (MUM) all'immagine di destinazione. È possibile specificarne solo uno alla volta.{crlf;}{crlf;} +Note.Advanced.Only.Message=Si noti che questa operazione è riservata a un uso avanzato e può compromettere l'immagine di Windows di destinazione. +Path.Manifest.File.Label=Percorso del file manifest da aggiungere: +Browse.Button=Sfoglia... +Cancel.Button=Annullare +Ok.Button=OK + +[Main] +Props.Label=Proprietà +ProjProps.Label=Proprietà +Getting.Package.Names.Label=Verifica nomi pacchetti... +Getting.Feature.Names.Label=Verifica nomi e stato funzionalità... +Wait.Label=Verifica nomi pacchetti... +Get.Cap.Names.Label=Verifica nomi capacità e relativo stato... +Loading.DriverPackages.Label=Verifica pacchetti driver installati... + +[Main.ADKCopierBW.Background] +ToolsCopied.Label=Copia strumenti di distribuzione nel progetto completata +Deployment.Tools.Aren.Item=In questo sistema non sono presenti gli strumenti di implementazione +Deployment.Tools.Copied.Item=Non è stato possibile copiare gli strumenti di implementazione + +[Main.ADKCopy] +Prepare.Deploy.Tools.Label=Preparazione alla copia degli strumenti di implementazione...{0} +Architecture.Label=(architettura {0} di 4) +Copying.Deployment.Label=Copia strumenti implementazione per l'architettura ({0}, {1}%{2})... +Progress.Architecture.Label=, architettura {0} di 4 + +[Main.Actions] +UnsupportedImage.Message=In questa immagine questa azione non è supportata + +[Main.BgProcesses] +ImageCompleted.Label=I processi dell'immagine sono stati completati + +[Main.ChangeImgStatus] +No.Button=No +Yes.Button=Sì + +[Main.CheckForUpdates] +CheckingUpdates.Link=Verifica aggiornamenti... +NewVersion.Available.Link=È disponibile una nuova versione da scaricare e installare. Fai clic qui per saperne di più +Learn.Link=Fai clic qui per saperne di più + +[Main.CommandLineHelp] +Pass.Arguments.Message=You can pass command line arguments like this:{crlf;}{crlf;} DISMTools.exe {crlf;}{crlf;}The command line arguments that are available to you are the following:{crlf;}{crlf;} /setup{crlf;} Shows the initial setup wizard and reconfigures the program{crlf;} /load={crlf;} Loads a project file. You need to provide an absolute path for a project file, like this:{crlf;} DISMTools.exe /load={quot;}C:\foo\bar.dtproj{quot;}{crlf;} /online{crlf;} Enters the online installation management mode{crlf;} /offline:{crlf;} Enters the offline installation management mode. You need to provide a drive, like this:{crlf;} DISMTools.exe /offline:E:\{crlf;} /migrate{crlf;} Forces setting migration. While you can use this parameter, it should be used by the update system{crlf;} /nomig{crlf;} Skips setting migration. This parameter speeds up testing{crlf;} /noupd{crlf;} Disables update checks. Don't use this parameter unless you're testing a change{crlf;} /exp{crlf;} Enables program experiments if there are any{crlf;}{crlf;}DISMTools will continue starting up after you close this help message. +DISM.Tools.Title=DISMTools command line arguments + +[Main.CopyAsset] +Copied.Clipboard.Label=La risorsa è stata copiata negli appunti +CopySuccessful.Title=Copia riuscita + +[Main.ComputerInfo] +Build.Label=build +SystemMemory.Label=della memoria di sistema +UsedOut.Label=utilizzata su +Part.Domain.Label=Non fa parte di un dominio +PartDomain.Label=Fa parte di un dominio +Backup.Domain.Label=Controller di dominio di backup +Primary.Domain.Label=Controller di dominio primario +ConnectedNetwork.Label=Non connesso a una rete +Manual.Label=Manuale +Automatic.Assigned.Label=Automatico (assegnato da DHCP) + +[Main.EndOfflineMgmt] +Bg.Procs.Still.Message=I processi in background stanno ancora raccogliendo informazioni sull'immagine. Vuoi annullarli? +Cancelling.Bg.Procs.Button=Annullamento dei processi in background... + +[Main.EndOffline] +Ready.Item=Pronto +Yes.Button=Sì + +[Main.EndOnlineMgmt] +Bg.Procs.Still.Message=I processi in background stanno ancora raccogliendo informazioni sull'immagine. Vuoi annullarli? +Cancelling.Bg.Procs.Button=Annullamento dei processi in background... + +[Main.EndOnline] +Ready.Item=Pronto +Yes.Button=Sì + +[Main.GetArguments] +Project.Message=Non è stato possibile aprire il progetto perché questo file non esiste:{crlf;}{crlf;}{0}{crlf;}{crlf;}Se il progetto è stato spostato, aprire il relativo file .dtproj dalla nuova posizione. Se non è ancora stato creato, creare nuovamente il progetto e scegliere una cartella in cui si dispone dell’accesso in scrittura. + +[Main.ExternalTools] +Error.Title=Errore di avvio dello strumento +NotFound.Message=Impossibile avviare {0} perché il relativo file eseguibile non è stato trovato:{crlf;}{crlf;}{1}{crlf;}{crlf;}Riparare o reinstallare DISMTools, quindi riprovare. +StartFailed.Message=Impossibile avviare {0}.{crlf;}{crlf;}Motivo: {1}{crlf;}{crlf;}Riparare o reinstallare DISMTools se il problema persiste. + +[Main.ReportManager] +Error.Title=Gestore dei rapporti +ProjectRequired.Message=Caricare o creare prima un progetto DISMTools. I rapporti del progetto sono archiviati nella cartella reports all’interno del progetto. +OpenFailed.Message=Impossibile aprire la cartella dei rapporti del progetto:{crlf;}{crlf;}{0}{crlf;}{crlf;}Motivo: {1} + +[Main.SaveProjectAs] +Save.Button=Salva +Unavailable.Message=Salva progetto con nome non è disponibile perché non è caricato alcun normale progetto DISMTools. Aprire o creare prima un progetto. +InvalidDestination.Message=Scegliere un altro nome di progetto o un'altra posizione. Un progetto non può essere salvato dentro se stesso. +DestinationExists.Message=La cartella di destinazione del progetto non è vuota:{crlf;}{crlf;}{0}{crlf;}{crlf;}Scegliere un altro nome o un'altra posizione. +OpenCopyFailed.Message=La copia del progetto è stata creata, ma DISMTools non è riuscito ad aprirla:{crlf;}{crlf;}{0} +Error.Message=Impossibile salvare il progetto come copia.{crlf;}{crlf;}Destinazione:{crlf;}{0}{crlf;}{crlf;}Motivo:{crlf;}{1} +Error.Title=Salva progetto con nome + +[Main.Get.Basic] +Online.Install.Label=(Installazione attiva) +Offline.Install.Item=(Installazione offline) +Offline.Install.Label=(Installazione offline) + +[Main.GetCapabilities] +Cap.Names.Their.Label=Verifica nomi capacità e relativo stato... + +[Main.GetCapabilities.Actions] +UnsupportedImage.Message=In questa immagine questa azione non è supportata + +[Main.GetDrivers] +Loading.DriverPackages.Label=Verifica pacchetti driver installati... + +[Main.GetFeatures] +Getting.Feature.Names.Label=Verifica nomi e stato funzionalità... + +[Main.Get.OS] +Days.Go.Back.Message=Hai a disposizione {0} giorni per tornare alla vecchia versione di Windows.{crlf;}{crlf;}Per aumentare o diminuire questa finestra di disinstallazione, vai su Comandi > Disinstallazione del sistema operativo > Imposta finestra di disinstallazione...{crlf;}Per avviare il rollback del sistema operativo, vai su Comandi > Disinstallazione del sistema operativo > Avvia disinstallazione...{crlf;}Per rimuovere la possibilità di tornare alla vecchia versione, vai su Comandi > Disinstallazione del sistema operativo > Rimuovi la possibilità di fallback... + +[Main.OSUninstallWindow] +OnlineOnly.Message=Questa azione è supportata solo in installazioni online + +[Main.GetPackages] +Getting.Package.Names.Label=Verifica nomi pacchetti... + +[Main.GetProvAppx] +Getting.Package.Names.Label=Verifica nomi pacchetti... + +[Main.ProvAppx] +UnsupportedImage.Message=In questa immagine questa azione non è supportata + +[Main.GetTargetEditions] +CurrentEdition.Message=L'edizione attuale è {quot;}{0}{quot;}{crlf;} +ProductKey.Upgrade.Message=Se disponi di un codice prodotto, è possibile aggiornare questa immagine di Windows ad un'edizione superiore. +Windows.Message=Le immagini di Windows PE non possono essere aggiornate ad edizioni superiori. +Suitable.ProductKey.Message=Se disponi di un codice prodotto adeguato, è possibile aggiornare questa immagine di Windows ad una delle seguenti edizioni:{crlf;}{crlf;} +Image.Cannot.Message=Questa immagine non può essere aggiornata ad edizioni superiori perché è già l'edizione più alta + +[Main.HideChildDescs] +Ready.Label=Pronto +Cancelling.Bg.Procs.Item=Annullamento dei processi in background... + +[Main.HideParentDesc] +Ready.Label=Pronto +Cancelling.Bg.Procs.Item=Annullamento dei processi in background... + +[Main.InitDynaLog] +Beware.Custom.Themes.Title=Attenzione ai temi personalizzati +DISM.Tools.Detected.Message=DISMTools ha rilevato che in questo sistema è stato impostato un tema personalizzato. Alcuni temi personalizzati fanno sì che il programma non abbia un aspetto corretto, quindi si consiglia di passare al tema predefinito. + +[Main.StartOSUninstall] +ReadCarefully.Message={0}, prima di procedere leggi attentamente questo messaggio.{crlf;}{crlf;}Se sono stati installati dei programmi dopo l'aggiornamento, procedere con il processo di rollback potrebbe rimuoverli. Nel caso in cui sia necessario reinstallarli in seguito assicurati di aver eseguito il backup delle impostazioni. Inoltre, nel caso in cui siano interessati dal processo di rollback esegui il backup dei file.{crlf;}{crlf;}Poi, non rimanete chiusi fuori. Se è stata impostata una password per l'utente attuale, assicurati di conoscerla. In caso contrario, potresti non essere in grado di accedere{crlf;}{crlf;}Infine, grazie per aver provato questa versione di Windows.{crlf;}{crlf;}Vuoi avviare il processo di rollback? + +[Main.OSUninstall] +OnlineOnly.Message=Questa azione è supportata solo in installazioni online + +[Main.Interface] +File.Label=&File +Project.Label=&Progetto +Commands.Label=Com&andi +Tools.Label=&Strumenti +Help.Label=&Aiuto +Settings.Detected.Label=Sono state rilevate impostazioni non valide +NewProject.Button=&Nuovo progetto... +Open.Existing.Project.Label=&Apri progetto esistente +Manage.Online.Install.Label=&Gestisci installazione online... +Manage.Ffline.Button=Gestisci installazione &offline... +RecentProjects.Label=Progetti recenti +SaveProject.Button=&Salva progetto... +SaveProjectas.Button=Salva progetto &come... +Exit.Label=E&sci +View.Project.Files.Label=Visualizza i file del progetto in Esplora file +UnloadProject.Button=Scarica il progetto... +Switch.Image.Indexes.Button=Cambia gli indici delle immagini... +ProjectProps.Label=Proprietà del progetto +ImageProps.Label=Proprietà dell'immagine +ImageManagement.Label=Gestione delle immagini +OSPackages.Label=Pacchetti OS +ProvPackages.Label=Pacchetti di provisioning +AppxPackages.Label=Pacchetti AppX +AppMspservicing.Label=Assistenza per le app (MSP) +DefaultApp.Assoc.Label=Associazioni app predefinite +Languages.Regional.Label=Lingue e impostazioni regionali +Capabilities.Label=Capacità +Windows.Label=Edizioni di Windows +Drivers.Label=Driver +Unattended.Answer.Label=File di risposte non presidiati +WindowsPE.Label=Assistenza Windows PE +OSUninstall.Label=Disinstallazione del sistema operativo +ReservedStorage.Label=Archiviazione riservata +Append.Capture.Dir.Button=Applica la directory di acquisizione all'immagine... +ApplyFfusfufile.Button=Applicare file FFU o SFU... +ApplyWimswmfile.Button=Applica file WIM o SWM... +Capture.Incremental.Button=Cattura modifiche incrementali al file... +Capture.Partitions.Button=Cattura partizioni nel file FFU... +Capture.Image.Drive.Button=Cattura l'immagine di un'unità in un file WIM... +Delete.Resources.Button=Elimina le risorse dall'immagine danneggiata... +Apply.Changes.Image.Button=Applica le modifiche all'immagine... +Delete.VolumeImages.Button=Cancellare le immagini del volume dal file WIM... +ExportImage.Button=Esportazione dell'immagine... +Get.Image.Button=Verifica informazioni immagine... +Get.WIM.Boot.Button=Verifica voci configurazione WIMBoot... +List.Files.Dirs.Button=Elenca file e cartelle nell'immagine... +MountImage.Button=Monta immagine... +Optimize.FFU.File.Button=Ottimizzare il file FFU... +OptimizeImage.Button=Ottimizzare l'immagine... +Remount.Image.Button=Rimonta l'immagine per la manutenzione... +Split.FFU.File.Button=Dividere il file FFU in file SFU... +Split.WIM.File.Button=Dividere il file WIM in file SWM... +UnmountImage.Button=Smontare l'immagine... +Update.WIM.Boot.Button=Aggiornare la voce di configurazione di WIMBoot... +Apply.Siloed.Prov.Button=Applica il pacchetto di provisioning a silo... +Save.Image.Button=Salva informazioni sull'immagine... +GetPackages.Button=Verifica informazioni pacchetti... +AddPackage.Button=Aggiungi pacchetto... +RemovePackage.Button=Rimuovi pacchetto... +GetFeatures.Button=Verifica informazioni funzionalità... +EnableFeature.Button=Abilita funzionalità... +DisableFeature.Button=Disabilita la funzionalità... +CleanupRecovery.Button=Eseguire operazioni di pulizia o ripristino... +Add.Prov.Package.Button=Aggiungi pacchetto di provisioning... +Get.Prov.Package.Button=Verifica informazioni pacchetto provisioning... +Apply.CustomData.Button=Applica immagine dati personalizzata... +Get.App.Package.Button=Verifica informazioni pacchetto AppX... +Add.Provisioned.App.Button=Aggiungi pacchetto AppX in provisioning... +Remove.Prov.App.Button=Rimuovere il provisioning del pacchetto AppX... +Optimize.Provisioned.Button=Ottimizzare i pacchetti in provisioning... +Add.CustomData.File.Button=Aggiungere un file di dati personalizzato al pacchetto AppX... +Get.App.Patch.Button=Verifica informazioni patch applicazione... +Detailed.App.Patch.Button=Verifica informazioni dettagliate patch applicazione... +Basic.Installed.App.Button=Verifica informazioni di base patch applicazioni installate... +Get.Detailed.Button=Verifica informazioni dettagliate applicazione Windows Installer (*.msi)... +Get.Basic.Windows.Button=Verifica informazioni di base applicazione Windows Installer (*.msi)... +Export.Default.Button=Esporta associazioni predefinite applicazioni... +DefaultApp.Assoc.Button=Verifica informazioni associazioni predefinite delle applicazioni... +Import.Default.Button=Importa associazioni predefinite applicazioni... +Remove.Default.Button=Rimuovi associazioni predefinite applicazioni... +Intl.Settings.Button=Verifica impostazioni e lingue internazionali... +SetUilanguage.Button=Imposta lingua interfaccia utente... +Set.Default.Button=Imposta lingua di riserva predefinita dell’interfaccia utente... +Set.System.Preferred.Button=Imposta lingua interfaccia utente preferita dal sistema... +Set.System.Locale.Button=Imposta il locale del sistema... +Set.User.Locale.Button=Imposta il locale dell'utente... +Set.Input.Locale.Button=Imposta il locale di input... +Set.UI.Button=Imposta la lingua e i locali dell'interfaccia utente... +Set.Default.Time.Button=Imposta il fuso orario predefinito... +Set.Default.Languages.Button=Imposta le lingue e i locali predefiniti... +Set.Layered.Driver.Button=Imposta driver a strati... +Generate.Lang.Ini.Button=Generare il file Lang.ini... +Set.Default.Setup.Button=Imposta la lingua predefinita del programma di installazione... +AddCapability.Button=Aggiungi capacità... +Export.Capabilities.Button=Esportazione capacità nel repository... +GetCapabilities.Button=Verifica informazioni capacità... +RemoveCapability.Button=Rimuovi capacità... +Get.Edition.Button=Verifica edizione attuale... +Get.Upgrade.Targets.Button=Verifica obiettivi aggiornamento... +UpgradeImage.Button=Aggiorna immagine... +SetProductKey.Button=Imposta chiave prodotto... +GetDrivers.Button=Verifica informazioni driver... +AddDriver.Button=Aggiungi driver... +RemoveDriver.Button=Rimuovi driver... +Export.DriverPackages.Button=Esporta i pacchetti di driver... +Import.DriverPackages.Button=Importa pacchetti di driver... +Apply.Unattended.Button=Applica il file di risposta non presidiato... +GetSettings.Button=Verifica impostazioni... +SetScratchSpace.Button=Imposta spazio per lo scratch... +Set.Target.Path.Button=Imposta percorso destinazione... +Get.Uninstall.Window.Button=Verifica finestra disinstallazione... +Initiate.Uninstall.Button=Avvia disinstallazione... +Remove.Roll.Back.Button=Rimuovi opzione fallback... +Set.Uninstall.Window.Button=Imposta finestra di disinstallazione... +Set.Reserved.Storage.Button=Imposta stato archiviazione riservato... +Get.Reserved.Storage.Button=Verifica stato archiviazione riservato... +AddEdge.Button=Aggiungi Edge... +Add.Edge.Browser.Button=Aggiungi browser Edge... +Add.Edge.Web.Button=Aggiungi WebView Edge... +ImageConversion.Label=Conversione di immagini +MergeSwmfiles.Button=Unire i file SWM... +Remount.Image.Write.Label=Rimonta l'immagine con i permessi di scrittura +CommandConsole.Label=Console dei comandi +Unattended.AnswerFile.Label=Gestore file di risposta non presidiata +Unattended.Creator.Label=Creatore file di risposta non presidiata +Manage.Image.Registry.Button=Gestire gli alveari del registro delle immagini... +WebResources.Label=Risorse Web +Download.Languages.Button=Scarica le ISO delle lingue e delle funzionalità opzionali... +Download.FOD.Button=Scarica le lingue e i dischi FOD per Windows 10... +ReportManager.Label=Gestore dei rapporti +Mounted.Image.Manager.Label=Gestore di immagini montate +Create.Disc.Image.Button=Crea immagine disco... +Create.Testing.Button=Creare un ambiente di test... +Config.List.Editor.Label=Editor dell'elenco di configurazione +Options.Label=Opzioni +HelpTopics.Label=Argomenti di aiuto +DISM.Tools.Label=Informazioni su DISMTools +MoreInfo.Label=Ulteriori informazioni +WhatsThis.Label=Che cos'è questo? +Report.Feedback.Opens.Label=Segnala feedback (si apre nel browser web) +Contribute.Help.System.Label=Contribuisci al sistema di assistenza +TourActions.Label=Azioni tour +Tour.Server.Active.Label=Il server tour è attivo sulla porta {0} +RestartTour.Label=Riavvia tour +Stop.Tour.Server.Label=Interrompi server tour +Begin.Label=Iniziare +NewProject.Link=Nuovo progetto... +Open.Existing.Project.Link=Aprire progetto esistente... +Manage.Online.Install.Link=Gestione dell'installazione online +Manage.Offline.Button.Button=Gestione dell'installazione offline... +RemoveEntry.Link=Rimuovi elemento +CloseTab.Label=Chiudi la scheda +SaveProject.Label=Salva il progetto +UnloadProject.Label=Scarica il progetto +Unload.Project.Tooltip=Scarica il progetto da questo programma +Show.Progress.Window.Label=Mostra la finestra di avanzamento +RefreshView.Label=Aggiorna vista +Expand.Label=Espandi +NewVersion.Available.Link=È disponibile una nuova versione da scaricare e installare. Fare clic qui per saperne di più +Get.Basic.Label=Verifica informazioni elementari (tutti i pacchetti) +Get.Detailed.Specific.Label=Verifica informazioni dettagliate (pacchetto specifico) +CommitImage.Label=Applica le modifiche e smonta l'immagine +Discard.Changes.Label=Scarta le modifiche e smonta l'immagine +UnmountSettings.Button=Smontare le impostazioni... +View.Package.Dir.Label=Visualizza la directory dei pacchetti +Get.ImageFile.Button=Verifica informazioni immagine... +Save.Complete.Image.Button=Salva informazioni complete sull'immagine... +Create.Disc.ImageFile.Button=Crea l'immagine del disco con questo file... +Project.File.Load.Title=Specificare il file del progetto da caricare +MountDir.Description=Specificare la directory di montaggio che si desidera caricare in questo progetto: +Image.Processes.Label=I processi dell'immagine sono stati completati +Ready.Label=Pronto +AccessDirectory.Label=Accesso alla directory +Copy.Deployment.Tools.Label=Copia strumenti distribuzione +AllArchitectures.Label=Di tutte le architetture +Selected.Architecture.Label=Dell'architettura selezionata +Xarchitecture.Label=Per l'architettura x86 +Amarkdown.Architecture.Label=Per l'architettura AMD64 +ARM.Label=Per architettura ARM +ARM64.Label=Per l'architettura ARM64 +ImageOperations.Label=Operazioni con le immagini +Remove.VolumeImages.Button=Rimuovere le immagini del volume... +Manage.Label=Gestione +Create.Label=Creare +Configure.Scratch.Dir.Label=Configura la directory temporanea +ManageReports.Label=Gestisci rapporti +Add.Button=Aggiungere +NewFile.Button=Nuovo file... +ExistingFile.Button=File esistente... +SaveResource.Button=Salva risorsa... +CopyResource.Label=Copia risorsa +Visit.Microsoft.Apps.Label=Visita il sito Web di Microsoft Apps +Visit.Microsoft.Label=Visita il sito Web di Microsoft Store Generation Project +Iget.Apps.Label=Come si ottengono le applicazioni? +Welcome.Servicing.Label=Ti diamo il benvenuto in questa sessione di assistenza +Project.Link=PROGETTO +Image.Link=IMMAGINE +Name.Label=Nome: +Location.Label=Posizione: +ImagesMounted.Label=Immagini montate? +Mount.Image.Link=Fai clic qui per montare un'immagine +ProjectTasks.Label=Attività progetto +View.Project.Props.Link=Visualizza proprietà progetto +Open.File.Explorer.Link=Apri in Esplora file +UnloadProject.Link=Scarica il progetto +ImageMounted.Label=Non è stata montata alcuna immagine +Mount.Image.Order.Label=Per visualizzare le informazioni sull'immagine è necessario montarla +Choices.Label=Scelte +MountImage.Link=Monta immagine... +Pick.Mounted.Image.Link=Scegli immagine montata... +ImageIndex.Label=Indice immagine: +MountPoint.Label=Punto di montaggio: +Version.Label=Versione: +Description.Label=Descrizione: +ImageTasks.Label=Attività immagine +View.Image.Props.Link=Visualizza proprietà immagine +UnmountImage.Link=Smonta immagine +ImageOperations.Group=Operazioni immagine +Commit.Changes.Button=Applica modifiche attuali +CommitImage.Button=Applica e smonta l'immagine +Unmount.Image.Button=Smonta immagine eliminando le modifiche +Reload.Servicing.Button=Ricarica la sessione di assistenza +ApplyImage.Button=Applica immagine... +CaptureImage.Button=Cattura immagine... +Package.Operations.Group=Operazioni pacchetto +Get.Package.Button=Verifica informazioni pacchetto... +Save.Installed.Button=Salva informazioni pacchetto installato... +Component.Store.Maint.Button=Esegui la manutenzione e la pulizia dell'archivio componenti... +Feature.Operations.Group=Operazioni funzionali +Get.Feature.Button=Verifica informazioni funzionalità... +Save.Feature.Button=Salva informazioni funzionalità... +AppX.Package.Operations=Operazioni pacchetto AppX +Add.AppX.Package.Button=Aggiungi pacchetto AppX... +Get.App.Button=Verifica informazioni applicazione... +Save.Installed.AppX.Button=Salva informazioni pacchetto AppX installato... +Remove.AppX.Package.Button=Rimuovi pacchetto AppX... +Capability.Operations.Group=Operazioni funzionalità +Get.Capability.Button=Verifica informazioni capacità... +Save.Capability.Button=Salva informazioni capacità... +DriverOperations.Group=Operazioni driver dispositivo +AddDriverPackage.Button=Aggiungi pacchetto driver... +Get.Driver.Button=Verifica informazioni driver... +Save.Installed.Driver.Button=Salva informazioni sul driver installato... +Windows.Group=Operazioni di Windows PE +GetConfig.Button=Verifica configurazione +SaveConfig.Button=Salva configurazione... +Yes.Button=Sì +No.Button=No +Offline.Management.Button=Sì +Rename.Link=Rinomina +DomainMembership.Label=Appartenenza al dominio: +WorkgroupDomain.Label=Gruppo di lavoro/Dominio: +IP.Address.Config.Label=Configurazione dell'indirizzo IP: +Explore.Get.Started.Label=Esplora e inizia +Stay.Up.Date.Label=Rimani aggiornato +FactDay.Label=Curiosità del giorno +Learn.Snew.Link=Scopri le novità di questa versione +Get.Started.DISM.Link=Inizia a utilizzare DISMTools e la gestione delle immagini +Manage.Install.Link=Gestisci la tua installazione attuale +Manage.External.Link=Gestisci installazioni Windows esterne +Learn.Watching.Videos.Label=Impara guardando i video (in inglese) +Video.Content.Loaded.Label=Impossibile caricare il contenuto video. +News.Feed.Loaded.Label=Impossibile caricare il feed delle notizie. +LearnMore.Link=Ulteriori informazioni +Retry.Button=Riprova + +[Main.Links] +Props.Label=Proprietà +ProjProps.Label=Proprietà + +[Main.Messages] +IE.Emulation.Changed.Message=Modified Internet Explorer emulation settings for DISMTools. You will need to restart DISMTools in order to start video playback +DISM.Tools.Modify.Message=DISMTools could not modify Internet Explorer emulation settings. Video playback will not start. +Items.Present.None.Label=No items are present in the Recents list. +Incompatible.Win7.Message=Questo programma non è compatibile con Windows 7 e Server 2008 R2.{crlf;}Questo programma usa l’API DISM, che richiede i file del Kit di valutazione e distribuzione (ADK). Tuttavia, il supporto per Windows 7 non è incluso.{crlf;}{crlf;}Il programma verrà chiuso. +Requires.NET.Message=Questo programma richiede .NET Framework 4.8 per funzionare.{crlf;}Puoi scaricarlo da: dotnet.microsoft.com. Installa il framework ed esegui di nuovo il programma. Potrebbe essere necessario riavviare il sistema.{crlf;}{crlf;}Il programma verrà chiuso. +Run.Admin.Message=Questo programma deve essere eseguito come amministratore.{crlf;}In alcune configurazioni software Windows può eseguire questo programma senza privilegi di amministratore, quindi devi richiederli manualmente.{crlf;}{crlf;}Fai clic con il tasto destro sull’eseguibile e seleziona {quot;}Esegui come amministratore{quot;} +DISM.Tools.Detected.Message=DISMTools ha rilevato un’impostazione di ridimensionamento dello schermo elevata. Questo può causare una visualizzazione non corretta del programma.{crlf;}{crlf;}Ti consigliamo di ridurre il ridimensionamento al 125% (120 DPI) o meno, a meno che tu non abbia un pannello piccolo impostato su una risoluzione elevata. +Higher.Display.Scaling.Title=Rilevata impostazione di ridimensionamento elevata +DISM.Tools.Found.Message=DISMTools ha trovato un possibile Kit di valutazione e distribuzione installato nel sistema. Tuttavia, non viene rilevato. Vuoi correggere il problema? +Possible.ADK.Title=Possibile ADK installato nel sistema +SafeMode.Prompt=Questo computer è stato avviato in modalità provvisoria. Questa modalità è progettata per il ripristino live del sistema operativo.{crlf;}{crlf;}DISMTools può caricare automaticamente la modalità di gestione dell’installazione online, così puoi iniziare a tentare le riparazioni.{crlf;}{crlf;}Vuoi caricare la modalità di gestione dell’installazione online? +Windows.Title=Windows è in modalità provvisoria +Tour.Prompt=È la prima volta che usi DISMTools? In tal caso, possiamo aiutarti a iniziare con il tour.{crlf;}{crlf;}Con il tour puoi creare la tua prima immagine Windows e provarla in seguito. Puoi seguirlo al ritmo che preferisci e accedervi in qualsiasi momento dal menu Guida.{crlf;}{crlf;}Vuoi avviare il tour ora? +Getting.Started.DISM.Title=Introduzione a DISMTools +DISM.Tools.Running.Message=DISMTools ha rilevato che è in esecuzione su un sistema Windows Server Core. Alcune funzionalità potrebbero non funzionare come previsto. +ServerCore.Title=Windows Server Core rilevato +Project.DISM.Tools.Label=Il progetto specificato non è un progetto DISMTools. +DownloadFailed.Label=Non è stato possibile scaricare l’installazione di WIM Explorer. Motivo:{crlf;}{0} +PrepareFailed.Label=Non è stato possibile preparare l’installazione di WIM Explorer. Motivo:{crlf;}{0} +AnswerFile.Removed.Label=File di risposte rimosso correttamente. +BackgroundBusy.Message=I processi in background devono terminare prima di caricare il gestore dei servizi. +Background.Finish.Message=I processi in background devono terminare prima di caricare il gestore delle variabili d’ambiente. +Secure.Boot.Enabled.Label=Secure Boot non è abilitato in questo computer. +Secure.Boot.Status.Title=Stato di Secure Boot +Secure.Boot=Secure Boot è abilitato in questo computer, ma il database non contiene Windows UEFI CA 2023. Assicurati che il computer riceva gli aggiornamenti di Secure Boot prima della scadenza dei certificati Microsoft Windows Production PCA 2011 a giugno 2026. +Update.Secure.Boot.Message=È in corso un aggiornamento di Secure Boot per supportare Windows UEFI CA 2023. +Secure.Enabled=Secure Boot è abilitato in questo computer e il database contiene Windows UEFI CA 2023. +Determine.Status.Label=Non è stato possibile determinare lo stato dell’aggiornamento Windows UEFI CA 2023. + +[Main.Messages.Validation] +Cannot.Load.Project.Message=Impossibile caricare il progetto. Motivo: il progetto non è stato trovato. Potrebbe essere stato spostato o la sua cartella potrebbe essere stata eliminata. +Project.Load.Error.Title=Errore di caricamento del progetto + +[Main.News] +LearnMore.Link=Ulteriori informazioni +Last.Updated.Label=Ultimo aggiornamento delle notizie: + +[Main.News.Error] +NoDetails.Message=Non sono disponibili ulteriori dettagli sull’errore del feed delle notizie. Prova ad aggiornare il feed delle notizie. + +[Main.News.Load] +Retry.Button=Riprova + +[Main.OfflineManagement] +OfflineInstall.Label=Installazione offline - DISMTools +Install.Label=(Installazione offline) +Image.Registry.Message=Prima di caricare questa modalità Il pannello di controllo del registro immagini deve essere chiuso. +Yes.Button=Sì + +[Main.OnlineManagement.Start] +Install.DISM.Tools.Label=Installazione attiva - DISMTools +Install.Label=(Installazione online) +Yes.Button=Sì + +[Main.Project.Load] +LoadingProject.Label=Caricamento progetto: {quot;}{0}{quot;} +Project.Label=Progetto: {quot;}{0}{quot;} +Adkdeployment.Tools.Label=Strumenti di implementazione ADK +DeploymentTools.X86.Label=Strumenti di implementazione (x86) +Deployment.Tools.Label=Strumenti di implementazione (AMD64) +DeploymentTools.ARM.Label=Strumenti di implementazione (ARM) +DeploymentTools.ARM64.Label=Strumenti di installazione (ARM64) +MountPoint.Label=Punto di montaggio +Unattended.Answer.Label=File di risposta non presidiati +ScratchDirectory.Label=Directory temporanea +ProjectReports.Label=Rapporti del progetto + +[Main.Project.Load.Guard] +Image.Registry.Message=Il pannello di controllo del registro immagini deve essere chiuso prima di caricare i progetti. + +[Main.Project.Unload] +Bg.Procs.Still.Message=I processi in background stanno ancora raccogliendo informazioni sull'immagine. Si desidera annullarli? +Cancelling.Bg.Procs.Button=Annullamento dei processi in backround... +Ready.Item=Pronto + +[Main.ProjectTree.AfterCollapse] +Collapse.Label=Minimizza +CollapseItem.Label=Minimizza elemento +Expand.Item=Espandi +ExpandItem=Espandi elemento +ExpandCollapse.Item=Espandi +ExpandTool.ExpandItem=Espandi elemento + +[Main.ProjectTree.AfterExpand] +Collapse.Label=Minimizza +CollapseItem.Label=Minimizza elemento +Expand.Item=Espandi +ExpandItem=Espandi elemento + +[Main.ProjectTree.AfterSelect] +Collapse.Label=Minimizza +CollapseItem.Label=Minimizza elemento +Expand.Item=Espandi +ExpandItem=Espandi elemento + +[Main.RegistryPanel] +Control.Active.Message=Questo pannello di controllo non è disponibile nelle installazioni attive. + +[Main.Registry.Actions] +Load.Project.Mode.Message=Per gestire la struttura del registro è necessario caricare un progetto o una modalità. + +[Main.RemoveOSUninstall] +ReadCarefully.Message={0}, prima di procedere leggi attentamente questo messaggio.{crlf;}{crlf;}Se si usa la nuova versione di Windows da qualche tempo e si è accertato che non ci sono problemi, è possibile rimuovere la possibilità di avviare un ripristino.{crlf;}{crlf;}Questa operazione non cancellerà i file della vecchia installazione, quindi se vuoi liberare un po' di spazio è necessario utilizzare Pulizia disco (cleanmgr).{crlf;}{crlf;}Vuoi rimuovere la possibilità di tornare a una versione precedente di Windows? +OnlineOnly.Message=Questa azione è supportata solo in installazioni online + +[Main.Run.BgProcesses] +RunningProcesses.Label=Processi in corso +Getting.Basic.Image.Label=Verifica informazioni principali dell'immagine... +AdvancedImageInfo.Label=Verifica informazioni dettagliate dell'immagine... +Getting.Image.Packages.Label=Ricerca pacchetti immagine... +Getting.Image.Features.Label=Ricerca funzionalità immagine... +Get.Image.Provisioned.Label=Ricerca pacchetti AppX immagine (applicazioni in stile Metro)... +Get.Image.Features.Label=Verifica funzionalità su richiesta immagine (capacità)... +Getting.Image.Drivers.Label=Ricerca driver immagine... +Running.Pending.Tasks.Label=Esecuzione di attività in sospeso. Questa operazione potrebbe richiedere del tempo... + +[Main.SaveAsset] +Saved.Location.Label=La risorsa è stata salvata nella posizione specificata +SaveSuccessful.Title=Il salvataggio è stato completato correttamente + +[Main.ShowChildDescs] +Adds.Additional.Item=Adds an additional image to a .wim file +Applies.Full.Flash.Item=Applies a Full Flash Utility or split FFU to a physical drive +Applies.Windows.Image.Item=Applies a Windows image or split WIM to a partition +Captures.Incremen.File.Item=Captures incremental file changes on the specific WIM file to {quot;}custom.wim{quot;} +Captures.Image.Drive.Item=Captures an image of a drive's partitions to a new FFU file +Captures.Image.New.Item=Captures an image of a drive to a new WIM file +Deletes.Resources.Item=Deletes all resources associated with a corrupted mounted image +Applies.Changes.Made.Item=Applies the changes made to the mounted image +Deletes.Volume.Image.Item=Deletes a volume image from a WIM file +Exports.Copy.Image.Item=Exports a copy of the image to another file +Displays.Images.Item=Displays information about the images contained in a WIM, FFU, VHD or VHDX file +Displays.List.Wimffu.Item=Displays a list of WIM, FFU, VHD or VHDX images that are currently mounted +Displays.WIM.Boot.Item=Displays WIMBoot configuration entries for the specified disk volume +Displays.List.Files.Item=Displays a list of files and folders in an image +Mounts.Image.Wimffu.Item=Mounts an image from a WIM, FFU, VHD or VHDX to make it available for servicing +Optimizes.Ffuimage.Item=Optimizes a FFU image to make it faster to deploy +Optimizes.Image.Faster.Item=Optimizes an image to make it faster to deploy +Remounts.Mounted.Image.Item=Remounts a mounted image that is inaccessible to make it available for servicing +Splits.Full.Flash.Item=Splits a Full Flash Utility (FFU) file into read-only split FFU (.sfu) files +Splits.Existing.WIM.Item=Splits an existing WIM file into read-only split WIM (.swm) files +Unmounts.Wimffuvhd.Item=Unmounts the WIM, FFU, VHD or VHDX file and either commits or discards its changes +Updates.WIM.Boot.Item=Updates the WIMBoot configuration entry +Applies.Siloed.Prov.Item=Applies siloed provisioning packages to the image +Displays.Message=Displays information about all packages in the image or in the installation or any package file you want to add +Installs.Cabmsu.Package.Item=Installs a .cab or .msu package in the image +Removes.Cabfile.Package.Item=Removes a .cab file package from the image +Displays.Installed.Item=Displays information about the installed features in an image or an online installation +Enables.Updates.Feature.Item=Enables or updates the specified feature in the image +Disables.Feature.Image.Item=Disables the specified feature in the image +Performs.Cleanup.Item=Performs cleanup or recovery operations on the image +Adds.Applicable.Item=Adds an applicable payload of a provisioning package to the image +Gets.Infomation.Prov.Item=Gets infomation of a provisioning package +Dehydrat.Files.Containe.Item=Dehydrates files contained in the custom data image to save space +Displays.App.Item=Displays information about app packages in an image +Addsone.App.Item=Adds one or more app packages to the image +Removes.Prov.App.Item=Removes provisioning for app packages from the image +Optimizes.Total.Size.Item=Optimizes the total size of provisioned app packages on the image +Addscustom.Data.File.Item=Adds a custom data file into the specified app package +Displays.Msppatches.Item=Displays information of MSP patches applicable to the offline image +Command42.Item=Displays information about installed MSP patches +Displays.Item=Displays information about all applied MSP patches for all applications installed on the image +Displays.Specific.Item=Displays information about a specific installed Windows Installer application +Command45.Item=Displays information about all Windows Installer applications in the image +Exports.Default.Item=Exports default application associations from a running OS to an XML file +Displays.List.Item=Displays the list of default application associations set in the image +Imports.Set.DefaultApp.Item=Imports a set of default application associations from an XML file to an image +Removes.Default.Item=Removes default application associations from the image +Displays.Intl.Item=Displays information about international settings and languages +Sets.Default.Uilanguage.Item=Sets the default UI language +Sets.Fallback.Default.Item=Imposta la lingua di riserva predefinita per l’interfaccia utente del sistema +Sets.System.Preferred.Item=Sets the {quot;}System Preferred{quot;} UI language +Sets.Language.Non.Item=Sets the language for non-Unicode programs and font settings in the image +Sets.Standards.Formats.Item=Sets the {quot;}standards and formats{quot;} language (user locale) in the image +Sets.Input.Locales.Item=Sets the input locales and keyboard layouts to use in the image +Sets.Default.System.Message=Sets the default system UI language, the language for non-Unicode programs, the user locale, and the keyboard layouts to the language in the image +Sets.Default.Time.Item=Sets the default time zone in the image +Sets.Default.Message=Sets the default language for the UI and non-Unicode programs, locales for the user and input, keyboard layouts and time zone values in the image +Specifies.Keyboard.Item=Specifies a keyboard driver for Japanese and Korean keyboards +Generates.Lang.Ini.Item=Generates a Lang.ini file, used by Setup to define the language packs inside the image and out +Defines.Default.Item=Defines the default language that will be used by Setup +Addscapability.Image.Item=Adds a capability to an image +Exports.Set.Caps.Item=Exports a set of capabilities into a new repository +Gets.Installed.Item=Gets information about the installed capabilities of an image or an active installation +Removes.Capability.Item=Removes a capability from the image +Displays.Edition.Image.Item=Displays the edition of the image +Displays.Editions.Image.Item=Displays the editions the image can be upgraded to +Changes.Image.Higher.Item=Changes an image to a higher edition +Enters.ProductKey.Item=Enters the product key for the current edition +Displays.Driver.Message=Displays information about the driver packages you specify or the installed drivers in the image or in the installation +Addsthird.Party.Driver.Item=Adds third-party driver packages to the image +Removes.ThirdParty.Item=Removes third-party drivers from the image +Exports.ThirdParty.Item=Exports all third-party driver packages from the image to a destination path +Imports.ThirdParty.Message=Imports all third-party drivers from a specified source to this image to provide the same hardware compatibility +Applies.Unattend.Item=Applies an Unattend.xml file to the image +Displays.List.Windows.Item=Displays a list of Windows PE settings in the WinPE image +Retrieves.Configured.Item=Retrieves the configured amount of the Windows PE system volume scratch space +Retrieves.Target.Path.Item=Retrieves the target path of the Windows PE image +Sets.Available.Item=Sets the available scratch space (in MB) +Sets.Location.Win.Item=Sets the location of the WinPE image on the disk (for hard disk boot scenarios) +Gets.Number.Days.Item=Gets the number of days an uninstall can be initiated after an upgrade +Reverts.PC.Item=Reverts a PC to a previous installation +Removes.Ability.Roll.Item=Removes the ability to roll back a PC to a previous installation +Sets.Number.Days.Item=Sets the number of days an uninstall can be initiated after an upgrade +Gets.State.Reserved.Item=Gets the current state of reserved storage +Sets.State.Reserved.Item=Sets the state of reserved storage +Adds.Microsoft.Item=Adds the Microsoft Edge Browser and WebView2 component to the image +Command91.Item=Adds the Microsoft Edge Browser to the image +Addsmicrosoft.Edge.Web.Item=Adds the Microsoft Edge WebView2 component to the image +Saves.Complete.Image.Message=Saves complete image information to the file you want. Depending on the settings you had specified, you may be asked some questions during the process +Creates.New.DISM.Item=Creates a new DISMTools project. The current project will be unloaded after creating it +Opens.Existing.DISM.Item=Opens an existing DISMTools project. The current project will be unloaded +Enters.Online.Install.Item=Enters online installation management mode +Saves.Changes.Project.Item=Saves the changes of this project +Saves.Project.Another.Item=Saves this project on another location +Closes.Project.Message=Closes the program. If a project is loaded, you will be asked whether or not you would like to save it +Opens.File.Explorer.Item=Opens the File Explorer to view the project files +Unloads.Project.Message=Unloads this project. If changes were made, you will be asked whether or not you would like to save it +Switches.Mounted.Image.Item=Switches the mounted image index +Launches.Project.Item=Launches the project section of the project properties dialog +Launches.Image.Section.Item=Launches the image section of the project properties dialog +ImageFormat.Item=Performs image format conversion from WIM to ESD and vice versa +Merges.Two.SWM.Item=Merges two or more SWM files into a single WIM file +Remounts.Image.Read.Item=Remounts the image with read-write permissions to allow making modifications to it +Opens.Command.Console.Item=Opens the Command Console +Lets.Manage.Item=Lets you manage unattended answer files for this project +Lets.Manage.Project.Item=Lets you manage project reports +Shows.Overview.Mounted.Item=Shows an overview of the mounted images +Configures.Settings.Item=Configures settings for the program +Opens.Help.Topics.Item=Opens the help topics for this program +Opens.Glossary.Don.Item=Opens the glossary, if you don't understand a concept +Shows.Command.Help.Item=Shows the Command Help, letting you use commands to perform the same actions +Shows.Item=Shows program information +Lets.Report.Feedback.Item=Lets you report feedback through a new GitHub issue (a GitHub account is needed) +Opens.Git.Hub.Message=Opens the GitHub repository containing the help documentation contents, to which you can contribute (a GitHub account is needed) + +[Main.ShowParentDesc] +View.Options.Related.Item=View options related to files, like creating or opening projects +View.Options.Project.Item=View options related to this project, like viewing its properties +View.Options.Image.Item=View options related to image management, deployment and/or servicing +View.Options.Additional.Item=View options related to additional tools, like the Command Console +View.Options.Help.Item=View options related to help topics, glossary, command help and product information + +[Main.Tooltips] +RefreshInfo.Label=Refresh information +Change.Network.Config.Label=Change network configuration +Other.Win.Administ.Label=Other Windows administrative tools +Change.Wallpaper.Label=Click here to change your wallpaper +NetBiosname.Label=NetBIOS name: {lbrace;}0{rbrace;} +Show.New.Fact.Label=Show a new fact + +[Main.UpdateChecker] +Couldn.Tdownload.Message=Non è stato possibile scaricare il programma di controllo degli aggiornamenti. Motivo:{crlf;}{0} +CheckUpdates.Title=Verifica aggiornamenti + +[Main.UpdateProjProps] +Yes.Button=Sì +No.Button=No + +[Migration] +Wait.Message=Attendi mentre DISMTools converte il vecchio file impostazioni per farlo funzionare con questa versione. L'operazione potrebbe richiedere del tempo. +Wait.Label=Attendi... + +[Migration.Background] +Loading.Old.Settings.Message=Caricamento vecchio file impostazioni... +Saving.New.Settings.Message=Salvataggio nuovo file impostazioni... +Done.Message=Terminato + +[MountDirCreation] +Create.Label=Vuoi creare la directory di montaggio? +Yes.Button=Sì +No.Button=No + +[MountedImgMgr] +Image.Manager.Item=Gestione di immagini montate +Overview.Images.Message=Questa è una panoramica delle immagini che sono state montate su questo sistema. È possibile cercare informazioni su di esse ed eseguire alcune operazioni elementari. Per eseguire completamente le azioni sulle immagini con questo programma, tuttavia, è necessario caricare la directory di montaggio in un progetto: +ImageFile.Column=File immagine +Index.Column=Indice +MountDirectory.Column=Directory di montaggio +Status.Column=Stato +Read.Write.Column=Permessi di lettura/scrittura? +UnmountImage.Button=Smontare l'immagine +ReloadServicing.Button=Ricaricare l'assistenza +Enable.Write.Button=Abilitare i permessi di scrittura +Open.Mount.Dir.Button=Aprire la directory di montaggio +Remove.VolumeImages.Button=Rimuovere le immagini del volume... +LoadProject.Button=Carica nel progetto +Repair.Component.Store.Item=Ripara il magazzino dei componenti +Yes.Button=Sì + +[NewProj] +Create.Project.Label=Crea un nuovo progetto +Image.Task.Header.Label={0} +Options.Required.Label=Specificare le opzioni per creare un nuovo progetto: +Name.Label=Nome*: +Location.Label=Ubicazione*: +Fields.End.Required.Label=I campi che terminano con * sono obbligatori +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annullare +Project.Group=Progetto +Folder.Store.Description=Selezionare una cartella per memorizzare questo progetto: + +[NewProj.Validation] +Dir.Exist.Create.Message=La cartella: {crlf;}{quot;}{0}{quot;}{crlf;}non esiste. Si desidera crearla? +Create.Project.Dir.Message=Non è stato possibile creare la cartella del progetto a causa di: {crlf;}{0}; {1} + +[NewTestingEnv] +Status.Message=Stato +Creating.Project.Message=Creazione del progetto. L'operazione può richiedere del tempo. Attendere... +ProjectCreated.Message=Il progetto è stato creato +Create.Environment.Label=Creare un ambiente di test +WizardHelp.Message=Questa procedura guidata creerà un ambiente che vi aiuterà a testare le vostre applicazioni sugli ambienti di preinstallazione di Windows.{crlf;}{crlf;} +Re.Ready.Create.Label=Una volta pronti, fate clic sul pulsante Crea. +Env.Architecture.Label=Architettura dell'ambiente: +Architecture.Label=Architettura: +Target.Project.Label=Posizione del progetto di destinazione: +Other.Things.Project.Message=Potete fare altre cose mentre il progetto viene creato. Tornate qui in qualsiasi momento per avere uno stato aggiornato. +Browse.Button=Sfoglia... +Create.Button=Crea +Cancel.Button=Annullare +Progress.Group=Stato di avanzamento +Download.Windows.ADK.Link=Scarica l'ADK di Windows +Https.Learn.Message=https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install +ProjectTemplate.Message=Il progetto che verrà creato contiene una soluzione modello compatibile con tutti gli ambienti e le risorse per la creazione di applicazioni per gli ambienti di preinstallazione di Windows. Per ulteriori informazioni su questi progetti, consultare il file LEGGIMI incluso. + +[NewTestingEnv.Background] +Project.Created.Done.Message=Il progetto è stato creato con successo +Failed.Create.Message=La creazione del progetto non è riuscita + +[NewTestingEnv.Links] +Https.Learn.Message=https://learn.microsoft.com/it-it/windows-hardware/get-started/adk-install + +[Unattend.Messages] +Requires.Netruntime.Message=Questa procedura guidata richiede .NET 10 Runtime installato per usare la versione integrata del programma generatore. Puoi scaricarlo da:{crlf;}{crlf;}dotnet.microsoft.com{crlf;}{crlf;}Se non vuoi scaricare .NET, puoi scaricare la versione autonoma del programma generatore. Il download richiederà del tempo, in base alla velocità della connessione di rete.{crlf;}{crlf;}Vuoi usare la versione autonoma? +Netruntime.Missing.Title=.NET Runtime mancante +GeneratorExit.Message=Il generatore di file di risposte automatiche non è riuscito a generare il file. Ecco il codice di errore, se ti interessa:{crlf;}{crlf;}Codice errore: {0} +Generator.Message=Il generatore di file di risposte automatiche non è riuscito a generare il file. Ecco l’errore, se ti interessa:{crlf;}{crlf;}Errore: {0} +Reuse.Settings.Ve.Message=Vuoi riutilizzare le impostazioni usate in questo file di risposte per quello nuovo? +Load.Project.Order.Label=Devi caricare un progetto per applicare questo file. +PrepareFailed.Label=Non è stato possibile preparare la configurazione autonoma di UnattendGen. Motivo:{crlf;}{0} +OpenFile.Label=Impossibile aprire il file: {0} +SaveFile.Label=Impossibile salvare il file: {0} +ProductKey.Copied.Done.Label=Il codice Product Key è stato copiato negli Appunti. +Copy.Key.Clipboard.Label=Non è stato possibile copiare il codice negli Appunti. Messaggio di errore: {0} +Component.Already.Message=Questo componente è già riservato per la corretta installazione del sistema operativo. Se lo sovrascrivi con i tuoi dati, l’installazione del sistema operativo potrebbe non dare i risultati previsti. +ComponentUse.Title=Componente in uso +Cross.Platform.Label=Le versioni multipiattaforma di UnattendGen sono state copiate in {0} +ImportOverwrite.Message=L’importazione di questo script sovrascriverà tutti i dati esistenti nello script post-installazione corrente. È meglio creare una nuova voce prima di continuare. Vuoi continuare? +ProductKey.None.Label=Non è presente alcun codice Product Key per l’edizione {quot;}{0}{quot;}. + +[NewUnattend.Validation] +Gen.Error.Title=Errore UnattendGen + +[Unattend.Mode] +ExpressMode.Title=Modalità rapida +WizardHelp.Description=Se non hai mai creato file di risposte automatiche, usa questa procedura guidata per crearne uno +EditorMode.Title=Modalità editor +CreateUnattended.Description=Crea file di risposte automatiche da zero e salvali ovunque + +[Unattend.Progress] +Preparing.Generate.Label=Preparazione della generazione del file... +Saving.User.Settings.Label=Salvataggio impostazioni utente... +GenerateAnswerFile.Label=Generazione file di risposte automatiche... +Deleting.Temporary.Label=Eliminazione file temporanei... +Generation.Completed.Label=La generazione è stata completata + +[UnattendWizard.Review] +Configs.UnattendAnswer.Label=Configurazioni correnti per il file di risposte automatiche: + +[Unattend.Tooltips] +Uses.Name.Computer.Message=Usa il nome del tuo computer come nome computer del file di risposte automatiche.{crlf;}Usalo solo se il sistema di destinazione è questo computer +Attempt.Grab.Message=Fai clic qui per provare a recuperare l’edizione dell’immagine attualmente caricata. Questo ti aiuterà a usare un codice Product Key adatto per tale immagine Windows. +AutoChoose.Message=Choose this option to automatically configure the target location to one of the countries in the European Economic Area (EEA). This will let you{crlf;}configure settings in the target system that you would not be able to when using a region outside the EEA. After Setup is complete, you can reconfigure{crlf;}the region to your current location. +Check.Field.Customize.Label=Check this field to customize this user's display name +RearrangeScripts.Label=Rearrange post-installation scripts... + +[Unattend.Validation] +Arch.Try.Label=Seleziona un’architettura e riprova +ValidationError.Title=Errore di convalida +Computer.Name.Error.Title=Errore nome computer +Script.Has.None.Label=Non è stato passato alcuno script per il nome del computer +Type.ProductKey.Label=Digita un codice Product Key e riprova +ProductKeyError.Title=Errore codice Product Key +Type.Product.Label=Digita l’intero codice Product Key e riprova +ProductKey.Entered.Ill.Label=Il codice Product Key immesso:{crlf;}{crlf;}{0}{crlf;}{crlf;}ha un formato non valido. Digitalo di nuovo +Problem.One.Message=Si è verificato un problema con uno o più utenti indicati. Ecco i motivi:{crlf;}{crlf;}{0}{crlf;}{crlf;}Riprova dopo aver corretto i problemi indicati +User.Accounts.Error.Title=Errore account utente +Least.One.Account.Message=Almeno un account deve far parte del gruppo Administrators. Configura i gruppi di utenti di conseguenza e riprova +Problem.Wireless.Message=Si è verificato un problema con le impostazioni wireless specificate. Assicurati di aver indicato un nome di rete e riprova +WirelessError.Title=Errore reti wireless + +[OS.No] +Troll.Back.Older.Label=Non è possibile tornare a una versione precedente +Old.Versions.None.Message=Non è stata rilevata alcuna vecchia versione, perché i suoi file non sono stati trovati. È possibile che si disponga di questa versione da un tempo superiore a quello consentito dalla finestra di disinstallazione, oppure che siano stati cancellati i file della vecchia versione (per risparmiare spazio). Non è necessario fare nulla +Ok.Button=OK + +[OfflineDriveList] +Disk.Choose.Label=Scegliere un disco +Begin.Install.Message=Per iniziare la gestione dell'installazione offline, scegliere un disco nell'elenco sottostante. Questo elenco verrà aggiornato automaticamente ogni minuto o quando si fa clic sul pulsante Aggiorna. +DriveLetter.Column=Lettera unità +DriveLabel.Column=Etichetta unità +DriveType.Column=Tipo di unità +TotalSize.Column=Dimensione totale +Available.Free.Space.Column=Spazio libero disponibile +DriveFormat.Column=Formato unità +ContainsWindows.Column=Contiene Windows? +Windows.Column=Versione di Windows +Refresh.Button=Aggiorna +Ok.Button=OK +Cancel.Button=Annullare + +[OneDriveExclusion] +Exclude.User.Label=Escludere le cartelle OneDrive dell'utente +Tool.Help.Exclude.Message=Questo strumento consente di escludere le cartelle OneDrive dell'utente dall'elenco configurazione su cui si sta lavorando. È sufficiente specificare il percorso a cui vuoi applicare il file dell'elenco configurazione e selezionare 'Escludi'.{crlf;}{crlf;}NOTA: una volta eseguito questo strumento ed escluse le cartelle OneDrive dell'utente, non si dovrebbe usare l'elenco configurazione in un'immagine diversa da quella specificata qui. Se vuoi usare l'elenco configurazione in altre immagini, rimuovi le cartelle OneDrive dell'utente nell'elenco configurazione ed esegui nuovamente questo strumento. +Path.Exclude.Label=Percorso da cui escludere le cartelle OneDrive: +Re.Ready.Label=Quando si è pronti, seleziona 'Escludi' +Browse.Button=Sfoglia... +Exclude.Button=Escludi +Cancel.Button=Annulla +UserFolderPath.Description=Scegli un percorso che contenga le cartelle dell'utente: + +[OneDriveExclusion.Folders] +Excluding.User.Label=Esclusione cartelle OneDrive utente... + +[OneDriveExclusion.Valid] +User.Folders.Label=Le cartelle OneDrive dell'utente sono state escluse e saranno aggiunte all'elenco configurazione + +[Options] +Title.Label=Opzioni +Program.Label=Programma +Personalization.Label=Personalizzazione +Logs.Label=Registri +ImageOperations.Label=Operazioni di immagine +ScratchDirectory.Label=Cartella temporanea +ProgramOutput.Label=Output del programma +BgProcesses.Label=Processi in secondo piano +FileAssociations.Label=Associazioni di file +StartupOptions.Label=Opzioni di avvio +ShutdownOptions.Label=Opzioni di spegnimento +Dismexecutable.Path.Label=Percorso eseguibile DISM: +Version.Label=Versione: +SaveSettings.Label=Salva impostazioni su: +ColorMode.Label=Modalità colore: +Language.Label=Lingua: +Settings.Log.Required.Label=Specificare le impostazioni per la finestra di log: +Log.Window.Font.Label=Carattere della finestra di registro: +Preview.Label=Anteprima: +Operation.Log.File.Label=File registro operazioni: +Image.Ops.Message=Quando si eseguono operazioni di immagine nella riga di comando, specificare l'argomento {quot;}/LogPath{quot;} per salvare il registro delle operazioni di immagine nel file di registro di destinazione +Log.File.Level.Label=Livello del file di registro: +QuietOperations.Message=Quando si eseguono tranquillamente le operazioni, il programma nasconde le informazioni e l'output di avanzamento. I messaggi di errore verranno comunque visualizzati.{crlf;}Questa opzione non verrà utilizzata quando si ottengono informazioni, ad esempio, sui pacchetti o sulle funzioni.{crlf;}Inoltre, quando si esegue la manutenzione delle immagini, il computer potrebbe riavviarsi automaticamente. +Checked.Computer.Message=Quando questa opzione è selezionata, il computer non si riavvia automaticamente, anche quando si eseguono tranquillamente delle operazioni +Scratch.Dir.Required.Label=Specificare la cartella temporanea da utilizzare per le operazioni DISM: +ScratchDirectory.Input.Label=Cartella temporanea: +Space.Left.Selected.Label=Spazio rimanente nella cartella temporanea selezionata: +LogView.Label=Visualizzazione del registro: +ExampleReport.Label=Esempio di rapporto: +Reports.Allow.Shown.Label=Alcuni rapporti non possono essere visualizzati come tabella +Notify.Label=Quando il programma dovrebbe notificare l'avvio dei processi in background? +Uses.Bg.Procs.Message=Il programma utilizza i processi in background per raccogliere informazioni complete sull'immagine, come le date di modifica, i pacchetti installati, le funzioni presenti e altro ancora +Manage.File.Assoc.Label=Gestisci le associazioni dei file per i componenti di DISMTools: +Behavior.OnStartup.Label=Impostare le opzioni che si desidera eseguire all'avvio del programma: +Scratch.Dir.Message=Il programma utilizzerà la cartella temporanea fornita dal progetto, se ne è stata caricata una. Se ci si trova nelle modalità di gestione dell'installazione online o offline, il programma utilizzerà la sua directory scratch +Secondary.Progress.Label=Stile del pannello di avanzamento secondario: +Settings.Aren.Label=Queste impostazioni non sono applicabili alle installazioni non portatili +Font.Readable.Log.Message=Questo carattere potrebbe non essere leggibile sulle finestre di registro. Anche se è possibile utilizzarlo, si consiglia di utilizzare caratteri monospaziati per una maggiore leggibilità. +SettingsConsider.Label=Scegliere le impostazioni che il programma deve considerare quando salva le informazioni sull'immagine: +Browse.Button=Sfoglia... +View.DISM.Button=Visualizza le versioni dei componenti DISM +Set.File.Assoc.Button=Imposta associazioni file +AdvancedSettings.Button=Impostazioni avanzate +Cancel.Button=Annulla +Ok.Button=OK +ResetPreferences.Label=Reimpostare le preferenze +Quietly.Image.Ops.CheckBox=Esegui silenziosamente le operazioni sull'immagine +Skip.System.Restart.CheckBox=Salta il riavvio del sistema +Scratch.Dir.CheckBox=Utilizza una directory scratch +Show.Command.Output.CheckBox=Visualizza l'output del comando in inglese +Notify.Me.CheckBox=Notifica l'avvio di processi in background +Show.Log.View.CheckBox=Abilita la visualizzazione del registro nel pannello di avanzamento per impostazione predefinita +Uppercase.Menus.CheckBox=Utilizza i menu in maiuscolo +Set.Custom.File.CheckBox=Imposta icone di file personalizzate per i progetti DISMTools +Remount.Mounted.CheckBox=Rimonta le immagini montate che necessitano di un ricaricamento della sessione di assistenza +CheckUpdates.CheckBox=Controlla gli aggiornamenti +Always.Save.CheckBox=Salva sempre le informazioni complete per i seguenti elementi: +Installed.Packages.CheckBox=Pacchetti installati +Features.CheckBox=Funzionalità +Installed.AppX.CheckBox=Pacchetti AppX installati +Capabilities.CheckBox=Capacità +InstalledDrivers.CheckBox=Driver installati +Automatically.Clean.CheckBox=Pulisci automaticamente i punti di montaggio (lancia un processo separato) +Dismexecutable.Title=Specificare l'eseguibile DISM da utilizzare +LogCustomization.Label=Personalizzazione dei registri +Behavior.OnClose.Label=Impostare le opzioni che si desidera eseguire alla chiusura del programma: +Saving.Image.Item=Salvataggio delle informazioni sull'immagine +Enable.Disable.Message=Il programma abilita o disabilita alcune funzioni in base alla versione di DISM supportata. Come influirà sull'uso di questo programma e quali funzioni saranno disabilitate di conseguenza? +Going.Affect.My=Come influirà sull'uso di questo programma e quali funzioni saranno disabilitate di conseguenza? +Learn.Background.Link=Ulteriori informazioni sui processi in background +Location.Log.File.Title=Specificare la posizione del file di log +Modern.RadioButton=Moderno +Classic.RadioButton=Classic +Dyna.Log.Logging.Message=La registrazione DynaLog fornisce un metodo per salvare i registri diagnostici che possono essere utilizzati per risolvere i problemi del programma, nel caso in cui si verifichino. È possibile disattivare il logger utilizzando la levetta sottostante, ma non è consigliabile.{crlf;}{crlf;} +Disable.Logging.Only.Message=Disattivare il logging solo se causa un sovraccarico di prestazioni sul computer. Facendo clic sulla levetta, questa impostazione verrà applicata automaticamente. +Default.Op.Logs.Message=Per impostazione predefinita, i registri delle operazioni vengono aperti con il Blocco note in caso di errore. Tuttavia, se si desidera aprirli con un altro programma, specificarlo di seguito: +Dyna.Log.Logging.Label=Controllo di registrazione DynaLog +Editor.Open.Log.Label=Editor con cui aprire i file di log: +SystemEditor.Label=Editor di sistema +Editor.Title=Specificare l'editor da usare +Show.Me.Logs.Link=Mostrami dove sono archiviati i registri +Disable.Dyna.Log.CheckBox=Disabilita la registrazione di DynaLog +SettingsFile.Item=File delle impostazioni +Registry.Item=Registro di sistema +System.Setting.Item=Usa le impostazioni di sistema +LightMode.Item=Modalità chiara +DarkMode.Item=Modalità scura +List.Item=lista +Table.Item=tabella +Every.Time.Project.Item=Ogni volta che un progetto è stato caricato con successo +Freqs1.Item=Una volta +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +LogPreview.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}{crlf;}------------------------------------------- | --------{crlf;}Feature Name | State{crlf;}------------------------------------------- | --------{crlf;}TFTP | Disabled{crlf;}LegacyComponents | Enabled{crlf;}DirectPlay | Enabled{crlf;}SimpleTCP | Disabled{crlf;}Windows-Identity-Foundation | Disabled{crlf;}NetFx3 | Enabled +Selected.Search.Message=The selected search engine, {1}{2}{1}, exceeds the current AI tolerance setting, {1}{3}{1}. If you continue with this search engine, AI tolerance will be increased after applying the settings.{0}{0}If you decide not to continue with this search engine, DISMTools will use the first search engine that stays within tolerance boundaries.{0}{0}Do you want to continue with this search engine? +Aitolerance.Exceeded.Title=AI Tolerance Exceeded +Auto.Create.Logs.CheckBox=Crea automaticamente i registri per ogni operazione eseguita +Project.Scratch.RadioButton=Utilizza la cartella temporanea del progetto o del programma +Custom.Scratch.RadioButton=Utilizza la cartella temporanea specificata +ScratchDir.Description=Specifica la directory di scratch che il programma deve utilizzare: + +[Options.Actions] +DISM.Components.Message=Non è stato possibile trovare la cartella dei componenti DISM. Se tutti i componenti si trovano nella stessa cartella dell'eseguibile DISM, crea una cartella {quot;}dism{quot;} e riprova. + +[Options.AutoReloadService] +DISM.Tools.Automatic.Label=Servizio di ricaricamento automatico delle immagini DISMTools +AutoReload.Description=Questo servizio ricarica automaticamente le sessioni di manutenzione di tutte le immagini montate in questo computer. Puoi disattivarlo se non ti serve. +ServiceInstalled.Label=Impossibile installare il servizio. + +[Options.AIRServiceInfo] +Yes.Button=Sì +No.Button=No + +[Options.GetRootSpace] +Scratch.Dir.Required.Label=Specificare una cartella temporanea +EnoughSpace.Label=Lo spazio disponibile nella cartella temporanea selezionata è sufficiente +GB.Item={0} GB +Enough.Message=Nella cartella temporanea selezionata non c'è abbastanza spazio per eseguire operazioni sulle immagini. Provare a liberare spazio nell'unità +EnoughSpace.SomeOps.Item=È possibile che la cartella temporanea selezionata non disponga di spazio sufficiente per alcune operazioni +EnoughSpace.Directory.Item=Lo spazio disponibile nella cartella temporanea selezionata è sufficiente +Free.Unavailable.Item=Impossibile ottenere spazio libero disponibile. Continuare a proprio rischio +Have.Enough.Item=Lo spazio disponibile nella directory temporanea selezionata è sufficiente + +[Options.LogLevel] +Level1.Label=Errori (livello registro 1) +Errors.Description.Label=Il file di registro visualizza gli errori solo dopo l'esecuzione di un'operazione sull'immagine +Level2.Item=Errori e avvisi (livello registro 2) +Level2.Description.Item=Il file registro visualizza errori e avvisi dopo l'esecuzione di un'operazione sull'immagine +Level2Messages.Item=Errori, avvisi e messaggi informativi (livello registro 3) +Level3.Description.Message=Il file registro visualizza errori, avvisi e messaggi informativi dopo l'esecuzione di un'operazione sull'immagine. +Level2Debug.Item=Errori, avvisi, informazioni e messaggi di debug (livello registro 4) +Level4.Description.Message=Il file registro visualizza errori, avvisi, informazioni e messaggi di debug dopo l'esecuzione di un'operazione sull'immagine. + +[Options.QuickHelp] +DISM.Tools.Enable.Message=DISMTools abilita o disabilita alcune funzioni se non sono compatibili con l’eseguibile DISM specificato, con l’immagine Windows corrente o con entrambi.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Per esempio, se DISMTools rileva un’immagine Windows 7, una versione di DISM per Windows 7 o entrambe, disabilita la gestione dei pacchetti AppX e delle funzionalità perché non sono compatibili con quella piattaforma e con quegli strumenti.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}DISMTools può anche disabilitare funzioni in base ad altri parametri dell’immagine, come l’edizione. Questo avviene di solito con le immagini Windows PE. +AppX.Package.Display.Message=I nomi visualizzati dei pacchetti AppX sono la parte del nome della famiglia del pacchetto che non contiene dettagli specifici, come architettura, versione o hash dell’autore.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}I {lbrace;}1{rbrace;}nomi descrittivi{lbrace;}1{rbrace;} dei pacchetti AppX sono i nomi visibili nel menu Start. Vengono letti dalle informazioni di identità dell’applicazione nel manifesto o dalle stringhe incorporate in resources.pri.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Se DISMTools non riesce a ottenere il nome descrittivo, mostra il nome visualizzato dell’applicazione. +Configure.Search.Message=Quando configuri il motore di ricerca, puoi scegliere quanta tolleranza deve avere DISMTools verso le funzioni di intelligenza artificiale, AI, del motore.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Disattiva quante più funzioni AI possibile{lbrace;}1{rbrace;} consente di scegliere motori in cui le funzioni AI sono disattivate o non presenti per impostazione predefinita.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Fammi controllare le funzioni AI del mio motore di ricerca{lbrace;}1{rbrace;} aggiunge motori con funzioni AI attive per impostazione predefinita, ma controllabili tramite parametri URL o impostazioni del motore.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Attiva quante più funzioni AI possibile{lbrace;}1{rbrace;} consente di scegliere tutti i motori disponibili, inclusi motori basati su AI o motori che promuovono modalità AI dedicate.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Di solito, la seconda opzione è la più equilibrata. Per un’esperienza più orientata alla privacy, disattiva queste funzioni. +Bg.Procs.Allow.Message=I processi in background consentono a DISMTools di raccogliere informazioni sull’immagine Windows in uso e abilitano la maggior parte delle attività. Alcuni esempi sono i pacchetti del sistema operativo e le funzionalità presenti in un’immagine Windows.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Questi processi non vengono usati solo per ottenere informazioni sui file immagine, ma anche per gestire installazioni online o offline. + +[OrphanedMount] +Image.Servicing.Label=Questa immagine necessita di una sessione di assistenza per essere ricaricata +Project.Has.Orphans.Message=Il progetto che è stato caricato contiene un'immagine orfana (un'immagine che deve essere rimontata){crlf;}L'immagine verrà rimontata quando si fa clic su {quot;}OK{quot;}. Questa operazione non dovrebbe influire sulle modifiche apportate all'immagine e non dovrebbe richiedere molto tempo.{crlf;}{crlf;}NOTA: se si fa clic su {quot;}Cancel{quot;}, il progetto verrà scaricato +Ok.Button=OK +Cancel.Button=Annullare + +[PECustomizer.Tooltips] +DefaultPolicies.Message=Default policies allow you to make the settings you specify here permanent.{crlf;}This also includes any wallpapers you specify here. + +[PEHelper.Main] +WhatWant.Label=What do you want to do? +StartServer.Label=Start a PXE Helper Server for Network Installation +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartServer.Network.Link=Start a PXE Helper Server for Network Installation +Prepare.System.Image.Link=Prepare System for Image Capture +Back.Button=Indietro +Explore.Contents.Disc.Link=Explore contents of this disc +StartServer.Fog.Link=Start PXE Helper Server for FOG +StartServer.Wds.Link=Start PXE Helper Server for Windows Deployment Services +Copy.Boot.Image.Link=Copy boot image to WDS server... +Exit.Button=Esci + +[PEHelper.Restart] +Warning.Message=Questa operazione riavvierà il computer. Assicurati che sia configurato per l’avvio dal supporto di installazione. Vuoi riavviarlo? + +[PEHelper.Process] +ExitCode.Message=Il processo è terminato con il codice 0x{0}:{crlf;}{crlf;}{1} + +[PEHelper.PXE] +ChangePort.Tooltip=Tieni premuto MAIUSC per cambiare la porta utilizzata da questo server di supporto PXE + +[ISOFiles.PECustomizer] +PoliciesSaved.Message=Policies could not be saved. +Wallpaper.Exist.Message=The specified wallpaper does not exist. +Wallpaper.Supported.Message=The specified wallpaper is not supported. Only JPG files are supported. +WallpaperOverride.Message=By continuing with this wallpaper you will be overriding a background you may have already stored in your user data folder. That background will be reused the next time you launch DISMTools. + +[Panels.ImageOps.WimToEsd] +Files.Filter=files|*. + +[Panels.ImageOps.ExportImage] +Esdfiles.Filter=ESD files|*.esd + +[Panels.ImageOps.MountImage] +WIM.Files.Filter=WIM files|*.wim + +[Panels.Packages.Add] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation + +[Panels.Packages.Remove] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation +CurrentLimit.SecondMessage=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.SecondDetail=Current program limitation + +[Panels.Unattend.Scripts] +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd +Power.Shell.Filter=PowerShell Scripts|*.ps1 +AllFiles.Filter=All Files|*.* +AllFiles.SecondFilter=All Files|*.* + +[ConfigLists.AddEntry] +Start.Backslash.Message=The entry can't start with a backslash if it contains wildcard characters + +[Options.Messages] +Dismexecutable.Path.Message=The DISM executable path was not specified. Please specify one and try again +DISM.Executable.Message=The DISM executable does not exist in the file system. Please verify the file still exists and try again +Log.File.Label=The log file was not specified. Please specify one and try again +Tried.Create.Message=The program tried to create the specified log file, but has failed. Please try again +ScratchDir.Message=The scratch directory was not specified. Please specify one and try again +ServiceEnabled.Label=The service could not be enabled. +ServiceDisabled.Label=The service could not be disabled. +ServiceRemoved.Label=The service could not be removed. +Tried.Scratch.Message=The program tried to create the specified scratch directory, but has failed. Please try again + +[ISOFiles.Creator.Messages] +Windows.Message=The Windows ADK was not found on your system. Do you want DISMTools to download and install the latest one for you? Note that you'll need around 4 GB on your system. + +[ISOFiles.WDSImageGroup] +Image.Label=The specified WDS image group could not be created. +Get.Image.Groups.Label=Could not get image groups. + +[PECustomizer.Messages] +Default.Policies.Saved.Label=Default policies have been saved. +Policies.SaveFailed.Message=Default policies could not be saved. + +[ISOFiles.PXEServerPort] +Already.Label=The specified port, {0}, is already in use. +Port.Label=The specified port, {0}, is not in use. + +[ImageOps.Append.Messages] +Grab.Last.Image.Label=Could not grab last image name. Error information:{crlf;}{crlf;}{0} + +[ImageOps.Capture.Messages] +Provide.Source.Dir.Label=Please provide a source directory or drive to capture. +SourcePrepWarning.Message=The source directory or drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? + +[ImageOps.Export.Messages] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Mount.Messages] +Copied.Image.Message=The copied installation image will be selected automatically for you, if found... +Extraction.Succeeded.Label=Extraction succeeded +Windows.Message=The Windows images in the specified ISO file were not copied to your local disk. Copy any WIM or ESD files from the sources folder of your ISO file. +Extraction.Succeeded.Message=Extraction succeeded + +[ImageOps.Optimize.Messages] +Mount.Dir.Required.Message=Please specify the mount directory of the image you want to optimize and try again. Also, make sure that that path exists. + +[Package.Parent] +Installed.Package.Label=Nomi dei pacchetti installati +Installed.Package.Names=Nomi dei pacchetti installati nell'immagine montata: +Name.ParentPackage.Label=Nome del pacchetto padre: +Get.Package.Names.Label=Ottenere i nomi dei pacchetti. Attendere prego... +Ok.Button=OK +Cancel.Button=Annullare + +[PkgNameLookup.Validation] +Package.Required.Message=Specificare il nome di un pacchetto e riprovare +Installed.Package.Title=Nomi dei pacchetti installati +Package.Seem.Message=Il nome del pacchetto specificato non sembra essere presente nell'immagine. Si prega di specificare una voce disponibile e di riprovare + +[Wait] +NotAvailable.Label=Not available +ProjectValue.Label=Not available +Wait.Label=Attendi... + +[MountedImagePicker] +Ok.Button=OK +Cancel.Button=Annulla + +[MountedImagePicker.Pick] +Title.Label=Scegli immagine +Image.List.Label=Scegli un'immagine dall'elenco sottostante: +ImageFile.Column=File immagine +Index.Column=Indice +MountDirectory.Column=Directory di montaggio + +[PrgAbout] +AboutProgram.Label=Informazioni su questo programma +DISM.Tools.Version.Label=DISMTools - versione {0}{1} +DISM.Tools.Lets.Label=DISMTools consente di distribuire, gestire e riparare le immagini di Windows con facilità, grazie a un'interfaccia grafica +ResourcesUsed.Label=Per la creazione di questo programma sono stati usate queste risorse e componenti: +Resources.Label=Risorse +Fluency.Label=Fluency +Sqlserver.Icon.Color.Label=Icona SQL Server (Color) +Utilities.Label=Utilità +Zip.Label=7-Zip +Help.Documentation.Label=Documentazione guida in linea +Command.Help.Source.Label=Sorgente guida comandi +Scintilla.Netnu.Get.Label=Scintilla.NET (pacchetto NuGet) +Pre.Label=pre +BuiltMsbuild.Label=Creato con {0} da msbuild +Managed.Dismnu.Get.Label=ManagedDism (pacchetto NuGet) +BrandingAssets.Label=Risorse branding +Windows.Label=Windows Home Server 2011 +Credits.Link=CREDITI +Licenses.Link=LICENZE +Whatsnew.Link=COSA C'È DI NUOVO +Icons.Link=Icons8 +VisitWebsite.Link=Sito web +Microsoft.Link=Microsoft +Ok.Button=OK +CheckUpdates.Label=Controlla aggiornamenti + +[PrgAbout.Resources] +DISM.Tools.Free.Message=- DISMTools{crlf;}{crlf;}This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or at your option any later version.{crlf;}{crlf;}This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. {crlf;}{crlf;}You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.{crlf;}{crlf;}- Scintilla.NET{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2017, Jacob Slusser, https://github.com/jacobslusser,{crlf;}Copyright (c) 2020-2022 VPKSoft{crlf;}Copyright (c) 2023 desjarlais{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- ManagedDism{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2016{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- DarkUI{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2017 Robin{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- 7-Zip{crlf;}{crlf;} 7-Zip{crlf;} ~~~~~{crlf;} License for use and distribution{crlf;} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{crlf;}{crlf;} 7-Zip Copyright (C) 1999-2025 Igor Pavlov.{crlf;}{crlf;} The licenses for files are:{crlf;}{crlf;} - 7z.dll:{crlf;} - The {quot;}GNU LGPL{quot;} as main license for most of the code{crlf;} - The {quot;}GNU LGPL{quot;} with {quot;}unRAR license restriction{quot;} for some code{crlf;} - The {quot;}BSD 3-clause License{quot;} for some code{crlf;} - The {quot;}BSD 2-clause License{quot;} for some code{crlf;} - All other files: the {quot;}GNU LGPL{quot;}.{crlf;}{crlf;} Redistributions in binary form must reproduce related license information from this file.{crlf;}{crlf;} Note:{crlf;} You can use 7-Zip on any computer, including a computer in a commercial{crlf;} organization. You don't need to register or pay for 7-Zip.{crlf;}{crlf;}{crlf;}GNU LGPL information{crlf;}--------------------{crlf;}{crlf;} This library is free software; you can redistribute it and/or{crlf;} modify it under the terms of the GNU Lesser General Public{crlf;} License as published by the Free Software Foundation; either{crlf;} version 2.1 of the License, or (at your option) any later version.{crlf;}{crlf;} This library is distributed in the hope that it will be useful,{crlf;} but WITHOUT ANY WARRANTY; without even the implied warranty of{crlf;} MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU{crlf;} Lesser General Public License for more details.{crlf;}{crlf;} You can receive a copy of the GNU Lesser General Public License from{crlf;} http://www.gnu.org/{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 3-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 3-clause License{quot;} is used for the following code in 7z.dll{crlf;} 1) LZFSE data decompression.{crlf;} That code was derived from the code in the {quot;}LZFSE compression library{quot;} developed by Apple Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;} 2) ZSTD data decompression.{crlf;} that code was developed using original zstd decoder code as reference code.{crlf;} The original zstd decoder code was developed by Facebook Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;}{crlf;} Copyright (c) 2015-2016, Apple Inc. All rights reserved.{crlf;} Copyright (c) Facebook, Inc. All rights reserved.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 3-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}3. Neither the name of the copyright holder nor the names of its contributors may{crlf;} be used to endorse or promote products derived from this software without{crlf;} specific prior written permission.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 2-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 2-clause License{quot;} is used for the XXH64 code in 7-Zip.{crlf;}{crlf;} XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.{crlf;}{crlf;} Copyright (c) 2012-2021 Yann Collet.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 2-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}unRAR license restriction{crlf;}-------------------------{crlf;}{crlf;}The decompression engine for RAR archives was developed using source{crlf;}code of unRAR program.{crlf;}All copyrights to original unRAR code are owned by Alexander Roshal.{crlf;}{crlf;}The license for original unRAR code has the following restriction:{crlf;}{crlf;} The unRAR sources cannot be used to re-create the RAR compression algorithm,{crlf;} which is proprietary. Distribution of modified unRAR sources in separate form{crlf;} or as a part of other software is permitted, provided that it is clearly{crlf;} stated in the documentation and source comments that the code may{crlf;} not be used to develop a RAR (WinRAR) compatible archiver.{crlf;}{crlf;}--{crlf;}{crlf;}{crlf;}- UnpEax{crlf;}{crlf;}This software uses a modified version of UnpEax, now designed to extract only the AppX manifest file and Store logo assets, and converted to .NET Framework 4.8 and C# 5 to make it compatible with Visual Studio 2012 and newer.{crlf;}{crlf;}Original version: (c) 2020. LioneL Christopher Chetty (https://github.com/dalion619/UnpEax){crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2020 LioneL Christopher Chetty{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Unattended answer file generator{crlf;}{crlf;}The unattended answer file creation wizard is based on the technology of Christoph Schneegans' answer file generator website, with some modifications made to some files of its core library.{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2024 Christoph Schneegans{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Markdig{crlf;}{crlf;}Copyright (c) 2018-2019, Alexandre Mutel{crlf;}All rights reserved.{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}- Compilation scripts for the PE Helper{crlf;}{crlf;}The compilation and pre-processor scripts for the Preinstallation Environment (PE) Helper are modified copies of such scripts from the Windows Utility (https://github.com/ChrisTitusTech/winutil). Original license:{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2022 CT Tech Group LLC{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Windows API Code Pack{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2009 - 2010 Microsoft Corporation, then modifications by Jacob Slusser 2014, Peter William Wagner 2017 - 2024{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- INI File Parser{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2008 Ricardo Amores Hernández{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Active Directory Object Picker{crlf;}{crlf;}Microsoft Public License (MS-PL){crlf;}{crlf;}The initial project was originally created by Armand du Plessis in 2004 and now is extended and maintained by Tulpep.{crlf;}{crlf;}This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.{crlf;}{crlf;}1. Definitions{crlf;}The terms {quot;}reproduce,{quot;} {quot;}reproduction,{quot;} {quot;}derivative works,{quot;} and {quot;}distribution{quot;} have the same meaning here as under U.S. copyright law.{crlf;}A {quot;}contribution{quot;} is the original software, or any additions or changes to the software.{crlf;}A {quot;}contributor{quot;} is any person that distributes its contribution under this license.{crlf;}{quot;}Licensed patents{quot;} are a contributor's patent claims that read directly on its contribution.{crlf;}{crlf;}2. Grant of Rights{crlf;}(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.{crlf;}(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.{crlf;}{crlf;}3. Conditions and Limitations{crlf;}(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.{crlf;}(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.{crlf;}(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.{crlf;}(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.{crlf;}(E) The software is licensed {quot;}as-is.{quot;} You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. +PreviewChanges.Message=Overall changes:{crlf;}{crlf;}-- Bugfixes in preview releases{crlf;}{crlf;}- Fixed an issue where removed features would appear in the wrong place{crlf;}- Fixed a minor UI issue where the proper user principal name (UPN) would not be shown when selecting a user in the ADDS domain join wizard{crlf;}- Fixed a minor UI issue where the NT logon path of a domain user would not be shown when launching the ADDS domain join wizard for the first time{crlf;}- Fixed some HiDPI issues{crlf;}- Fixed an issue where, when managing the active installation, the version's revision number would sometimes not coincide with the actual revision number{crlf;}- Fixed an issue where information about a Windows image would be cleared after adding or removing packages{crlf;}- Fixed an issue where the program would throw an exception if it couldn't create the logs directory (#344, thanks @Low351){crlf;}- Fixed an issue where GraphoView would not display information about a selected Windows image if the WDS group it belongs to only has 1 image{crlf;}- Fixed an issue where capture compression type options were not being used when performing FFU captures{crlf;}- Fixed an issue where the program would throw an exception when performing multiple driver exports by class name{crlf;}- Fixed an exception (#350, thanks @TackleBarry80){crlf;}- Registry hives that were unloaded externally no longer cause errors when unloading them from the image registry control panel{crlf;}- Non-PowerShell-based endpoints no longer throw CORS issues when calling WDS Helper Server APIs{crlf;}- Fixed an issue where App Installer download errors would not appear in the foreground{crlf;}- Fixed an issue where tutorial videos would not be playable{crlf;}- The WDS Helper client message for downloading unattended answer files no longer shows at all times{crlf;}- Fixed an issue where the program would throw an exception when saving Windows PE configuration of an offline Windows PE installation{crlf;}- Fixed an issue where the full date string was not displaying correctly when accessing image properties with Windows representations of dates turned off{crlf;}- When adding a boot image to the WDS server, the service start is now requested only when it is not running{crlf;}- Fixed an exception that would happen when adding certain AppX packages (#365, #366, thanks @charlezmmonroe-byte){crlf;}{crlf;}-- New features{crlf;}{crlf;}- The Sysprep Preparation Tool has seen support for `CopyProfile` and can now remove AppX packages from the reference system{crlf;}- Guards have been added to prevent running the PE Helper on a PXE environment, and to warn when running the PXE Helpers on a non-PXE environment{crlf;}- The autorun menu now has options to browse disc contents and copy the boot image to a WDS server{crlf;}- The DISMTools Preinstallation Environment can now be configured via policies{crlf;}- You can now view images and groups in a WDS server graphically{crlf;}- When launching the Driver Installation Module, the Preinstallation Environment can now tell you the hardware IDs of unknown devices{crlf;}- HotInstall can now export SCSI adapters to install them in the DTPE image{crlf;}- If a non-sysprepped volume is selected in the image capture script, it will now warn you{crlf;}- A new task has been added to copy installation images to a Windows Deployment Services (WDS) server{crlf;}- From the Autorun application you can now specify the WDS image group to upload the image to{crlf;}- The Autorun application and HotInstall have seen HiDPI improvements{crlf;}- Partition table overrides can now be used when deploying images with the WDS Helper{crlf;}- PXE Helper Servers can now be started using a different port by holding down SHIFT and performing an action in the following places:{crlf;} - From the Autorun application{crlf;} - From the Tools > Start PXE Helper Server for... menu in the main program{crlf;}- The architecture for the WDS boot image is now picked graphically{crlf;}- The default set of DISMTools Preinstallation Environment backgrounds has been overhauled{crlf;}- The WDS Helper Client now detects the assigned volume letter for the image share more reliably{crlf;}- ISO file creation results are now displayed in a notification{crlf;}- You can now configure the keyboard layout in the Preinstallation Environment graphically{crlf;}- If the Sysprep Preparation Tool was invoked before capturing the image, temporary files and boot entries are now removed if the capture succeeds. The resulting Windows image will still not contain any of those items{crlf;}- The version reporter watermark in the DISMTools Preinstallation Environment can now detect when the environment has booted via a network{crlf;}- The PE Helper can now include your target system's essential drivers (storage controllers and network adapters) in the DISMTools Preinstallation Environment{crlf;}- The ISO creation wizard will let you specify a save location if you clicked OK without having specified one{crlf;}- You can now specify scripts written in VBScript and JScript{crlf;}- The {quot;}Enable Batch script file locks{quot;} starter script has been introduced{crlf;}- The {quot;}Remove MAX_PATH length limit{quot;} starter script has been introduced{crlf;}- The {quot;}Show and Hide System Desktop icons{quot;} starter script has been introduced{crlf;}- The {quot;}Set File Explorer Launch Folder{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Windows Admin Center/Azure Arc banner{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Shutdown Event Tracker{quot;} starter script has been introduced{crlf;}- The {quot;}Refresh Windows Explorer{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Start Menu Appearance{quot;} starter script has been introduced{crlf;}- The {quot;}Disable warnings for unsigned RDP files{quot;} starter script has been introduced{crlf;}- The {quot;}Configure PowerShell execution policy{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Power Plan Values{quot;} starter script has been introduced{crlf;}- The {quot;}Invoke Windows Utility Configuration{quot;} starter script has been updated{crlf;}- The {quot;}Restore classic context menu in Windows 11{quot;} starter script has been introduced{crlf;}- The Starter Script Editor has seen several improvements:{crlf;} - The Starter Script Editor has received dark mode support{crlf;} - The Starter Script Editor now detects read-only starter scripts and removes such attribute when saving them{crlf;} - Spacing in script code can now be normalized{crlf;}- Organizational units and users in OUs are now sorted alphabetically in the ADDS domain join wizard{crlf;}- The ADDS domain join wizard will now let you continue if you had selected an account that does not require a password{crlf;}- A task has been added to copy a pre-configured answer file to an image so that it boots to Audit mode automatically{crlf;}- The ADDS domain join wizard has seen a couple of improvements:{crlf;} - The wizard will no longer let you continue when you specify a domain account that does not exist{crlf;} - You can now test domain name resolution by invoking nslookup{crlf;} - You can now pick account objects from anywhere in your domain{crlf;}- When applying answer files you can now choose whether to copy them to the target image's Sysprep folder{crlf;}- You can now enlarge the preview area for starter script code{crlf;}- You can now configure account display names independently from account names{crlf;}- Post-installation scripts can now be reordered{crlf;}- Batch scripts with NT extensions are no longer supported{crlf;}- Service information can now be saved to a report, whether you manage a Windows image or an installation{crlf;}- Services can now be removed{crlf;}- The image information saver is now run asynchronously{crlf;}- When information about a package file can't be obtained, DISMTools will now continue processing the rest of the queue{crlf;}- Filter assistants have been added to the feature, capability, and driver information dialogs to allow you to build queries more easily{crlf;}- A new automatic image reload service is now included, to let you have all your images reloaded on system startup{crlf;}- You can now export drivers by class name{crlf;}- Image capture tasks will now warn you when source installations have not been prepared with Sysprep{crlf;}- A new task has been added to optimize Windows images{crlf;}- Support for Full Flash Utility (FFU) has been introduced. Variations of the image application, capture, split, and optimization have been introduced with FFU support{crlf;}- From the project view you can now perform commit operations to FFU files using a workaround{crlf;}- You can now get installed driver information from Windows 7 images{crlf;}- Projects and installation management modes now load and unload much faster{crlf;}- Removing provisioned AppX packages from the online installation management mode is much more reliable now{crlf;}- You can now access WIM and FFU variants of the image capture and application tasks much more easily{crlf;}- After extracting images from ISO files, the program will now let you select the most suitable installation image from it{crlf;}- You can now view information specific to FFU files when viewing mounted image properties{crlf;}- When downloading packages from App Installer files you can now copy the URLs to the main application package{crlf;}- When exporting drivers by class name or when filtering installed drivers by class name, you can now choose from third-party classes provided by third-party drivers in your Windows image or installation{crlf;}- You can now export drivers from Windows 7 images and installations{crlf;}- Saving service changes is much faster now{crlf;}- Questions asked by the image information saver are no longer asked in the background{crlf;}- FFU file commit operations are now carried out when saving changes to mounted FFU files after performing image tasks such as adding packages or enabling features{crlf;}- An option has been added to prevent the machine from sleeping while performing image operations{crlf;}- Help documentation has seen a major visual refresh{crlf;}- File associations are now set for the Starter Script Editor{crlf;}- The home screen has seen a visual overhaul{crlf;}- 7-Zip has been updated to version 26.01{crlf;}- CODE: setting load and save functionality has been revamped{crlf;}- The Starter Script Editor and the theme designer can now be invoked from the Tools menu{crlf;}- In portable installations, file associations can now be toggled for the Starter Script Editor{crlf;}- The DynaLog log viewer has received support for event log filters{crlf;}- Date properties can now be displayed in a Windows-native format{crlf;}- Markdig has been updated to version 1.3.1{crlf;}- Scintilla.NET has been updated to version 6.1.2{crlf;}- The managed DISM API has been updated to version 6.0.0{crlf;}- Windows API Code Pack has been updated to version 8.0.15.2{crlf;}{crlf;}-- Removed features{crlf;}{crlf;}- The WDS preparation script has been removed in favor of the WDS Helper{crlf;}{crlf;}Changes made since last preview:{crlf;}{crlf;}-- Bugfixes{crlf;}{crlf;}- Fixed accuracy issues when performing Windows UEFI CA 2023 readiness checks on systems that were deployed using updated boot loaders{crlf;}- Fixed an issue where background processes would fail with {quot;}The parameter is incorrect{quot;} in some cases{crlf;}{crlf;}-- New features{crlf;}{crlf;}- UnattendGen has been updated to the latest version, now requiring .NET 10{crlf;}- The news feed previewer has seen several improvements{crlf;}- The Preinstallation Environment Helper now detects answer files created by Rufus, and lets you act on answer file conflicts + +[PrgAbout.Tooltip] +Text1.Label=Controlla il subreddit ufficiale del progetto +Join.Coding.Wonders.Label=Unisciti al server Discord di CodingWonders Software +Project.MDL.Label=Controlla la discussione del progetto nei forum di My Digital Life +Project.GitHub.Label=Controlla il repository del progetto su GitHub + +[PrgAbout.UpdateCheck] +Couldn.Tdownload.Message=Non è stato possibile scaricare il programma di controllo degli aggiornamenti. Motivo:{crlf;}{0} + +[PrgSetup] +Set.Up.DISM.Label=Impostare DISMTools +Welcome.DISM.Tools.Label=Benvenuto in DISMTools +DISM.Tools.Free.Message=DISMTools è un'interfaccia grafica gratuita e open source, basata su progetti, per le operazioni DISM. Per iniziare a configurare le operazioni, seleziona 'Avanti' +Yours.Customize.Message=Personalizza questo programma a piacimento e seleziona 'Avanti'. Queste impostazioni possono essere configurate in qualsiasi momento in 'Opzioni' -> 'Personalizzazione'. +CustomizeProgram.Label=Personalizzazione di DISMTools +ColorMode.Label=Modalità colore: +Language.Label=Lingua: +Log.Window.Font.Label=Font finestra registro: +LogFile.Label=File registro: +Log.Settings.Message=Imposta il livello di registrazione e seleziona 'Avanti'. A seconda del livello specificato, verranno registrate più o meno informazioni. Questa impostazione può essere configurata in qualsiasi momento in 'Opzioni' -> 'Registri'. +Log.Label=Quali attività registrare quando si esegue un'operazione? +Anything.Like.Label=Vuoi configurare altre impostazioni? +Settings.Available.Message=Le impostazioni disponibili sono più di quelle appena configurate. Se vuoi modificarne altre, seleziona il pulsante sottostante. Inoltre, queste impostazioni diventeranno permanenti. +Perform.Steps.Time.Label=È possibile eseguire questi passaggi in qualsiasi momento. +Done.Setting.Up.Message=Hai completato l'impostazione degli elementi base per usare DISMTools nel modo desiderato. Seleziona 'Fine' e le impostazioni diventeranno permanenti. +SetupComplete.Label=L'impostazione è stata completa +Ve.Set.Things.Label=Ora che hai configurato il programma, ti consigliamo di: +Stay.Up.Date.Label=rimani aggiornato per ricevere nuove funzionalità e un'esperienza migliorata. +Get.Started.DISM.Label=inizia ad usare DISMTools e il servizio di assistenza immagini, in modo da muoverti più rapidamente. +Secondary.Progress.Label=Stile pannello avanzamento secondario: +Font.Readable.Log.Message=Questo font potrebbe non essere leggibile nelle finestre registro. Anche se è possibile usarla, per una maggiore leggibilità ti consigliamo di usare font mono spaziati. +Back.Button=Indietro +Cancel.Button=Annulla +Browse.Button=Sfoglia... +Default.Log.File.Button=Usa file registro predefinito +Configure.Settings.Button=Configura altre impostazioni +GetStarted.Button=Inizia +CheckUpdates.Button=Controlla aggiornamenti +Auto.Create.Logs.CheckBox=Crea automaticamente i registri nella cartella registri del programma +Modern.RadioButton=Moderno +Classic.RadioButton=Classico +Log.File.Title=Specifica file registro +System.Setting.Item=Usa impostazioni sistema +LightMode.Item=Modalità chiara +DarkMode.Item=Modalità scura + +[PrgSetup.Actions] +UpdateChecker.Title=Verifica aggiornamenti + +[PrgSetup.Dialogs] +SaveFile.Filter=Tutti i file|*.* + +[PrgSetup.LogLevel] +Errors.Label=Errori (livello di log 1) +File.Only.Display.Label=Il file di registro dovrebbe visualizzare gli errori solo dopo l'esecuzione di un'operazione di immagine +Errors.Warnings.Label=Errori e avvisi (livello di registro 2) +File.Display.Errors.Label=Il file di log deve visualizzare errori e avvisi dopo l'esecuzione di un'operazione di immagine +Errors.Messages.Label=Errori, avvisi e messaggi informativi (livello di registro 3) +File.Display.Errors.Message=Il file di log deve visualizzare errori, avvisi e messaggi informativi dopo l'esecuzione di un'operazione di immagine. +Errors.Warnings.Debug.Label=Errori, avvisi, informazioni e messaggi di debug (livello di registro 4) +Level3.Message=Il file di log deve visualizzare errori, avvisi, informazioni e messaggi di debug dopo l'esecuzione di un'operazione di immagine. + +[PrgSetup.Next] +Finish.Label=Fine + +[PrgSetup.Next.Actions] +Folder.Log.File.Message=La cartella in cui verrà memorizzato il file registro non esiste. Assicurati che esista e riprovare. +Next.Button=Avanti + +[PrgSetup.ToolTip] +Minimize.Label=Minimizza +Close.Label=Chiudi +GoBack.Label=Indietro + +[PrgSetup.Validation] +DownloadFailure.Message=Non è stato possibile scaricare il programma di controllo degli aggiornamenti. Motivo:{crlf;}{0} + +[Progress] +Tasks.Label=Attività: {0}/{1} +Progress.Label=Progresso +Image.Operations.Label=Operazioni immagine... +Wait.Tasks.Label=Attendi mentre vengono eseguite le operazioni. L'operazione potrebbe richiedere del tempo +Cancel.Button=Annulla +ShowLog.Label=Visualizza registro +HideLog.Label=Nascondi registro +Show.Dismlog.File.Link=Visualizza il file registro DISM (avanzato) +Wait.Label=Attendi... +CurrentTask.Label=Attendi... +Performing.Image.Ops.Button=Esecuzione operazioni sulle immagini... +TaskCount.Label=Attività: 1/{0} + +[Progress.AddCapabilities] +Add.Capabilities.Button=Aggiunta capacità... +PrepareAdd.Button=Preparazione aggiunta capacità... +Add.Capabilities.Item=Aggiunta capacità... +AddingCapability.Item=Aggiunta capacità {0} di {1}... + +[Progress.AddDrivers] +AddingDrivers.Button=Aggiunta driver... +Preparing.Drivers.Button=Preparazione aggiunta driver... +AddingDrivers.Item=Aggiunta driver... +AddingDriver.Item=Aggiunta driver {0} di {1}... + +[Progress.AddPackages] +AddingPackages.Button=Aggiunta pacchetti... +Preparing.Packages.Button=Preparazione aggiunta pacchetti... +AddingPackages.Item=Aggiunta di {0} pacchetti... +AddingPackage.Item=Aggiunta del pacchetto {0} di {1}... + +[Progress.Packages.AddRecursive] +Gathering.Error.Level.Button=Raccolta livello errore... + +[Progress.ProvAppx.Add] +AddingPackages.Button=Aggiunta pacchetti AppX... +Preparing.Button=Preparazione aggiunta pacchetti AppX approvvigionati... +AddingPackages.Item=Aggiunta pacchetti AppX... +AddingPackage.Item=Aggiunta pacchetto {0} di {1}... + +[Progress.ProvPackage.Add] +AddingPackage.Button=Aggiunta pacchetto approvvigionamento... +Image.Button=Aggiunta pacchetto approvvigionamento all'immagine... + +[Progress.AppendImage] +AppendingImage.Button=Applicazione all'immagine... +Appending.Mount.Dir.Button=Applicazione cartella montaggio specificata all'immagine destinazione specificata... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.ApplyFfuImage] +ApplyingImage.Button=Applicazione dell'immagine... +Applying.Image.Dest.Button=Applicazione dell'immagine specificata alla destinazione specificata... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.ApplyImage] +ApplyingImage.Button=Applicazione dell'immagine... +Applying.Image.Dest.Button=Applicazione dell'immagine specificata alla destinazione specificata... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.ApplyUnattend] +ApplyAnswerFile.Button=Applicazione del file di risposta non presidiato... +Applying.Answer.Button=Applicazione file risposta non presidiata specificato all'immagine destinazione... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.Background] +Ready.Label=Pronto +Perform.Image.Label=Non è stato possibile eseguire operazioni sull'immagine +Error.Has.Message=Si è verificato un errore che ha interrotto le operazioni sull'immagine. Per ulteriori informazioni, consulta il registro sottostante. +Ok.Button=OK +Ready.Item=Pronto + +[Progress.CaptureFfuImage] +CapturingImage.Button=Cattura immagine... +CaptureDir.Button=Cattura cartella specificata in una nuova immagine... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.CaptureImage] +CapturingImage.Button=Cattura immagine... +CaptureDir.Button=Cattura cartella specificata in una nuova immagine... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.CleanupImage] +Cleaning.Up.Image.Button=Pulizia immagine... +RevertPending.Button=Ripristino azioni assistenza in sospeso... +Cleaning.Up.ServicePack.Item=Pulizia file backup Service Pack... +Cleaning.Up.Component.Item=Pulizia archivio componenti... +Analyzing.Component.Item=Analisi archivio componenti... +Checking.Comp.Store.Item=Controllo stato di salute archivio componenti... +Scanning.Component.Item=Scansione archivio componenti... +Repairing.Component.Item=Riparazione archivio componenti... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.CleanupMounts] +Cleaning.Up.Mount.Button=Pulizia punti montaggio... +Gathering.Error.Level.Item=Raccolta livello errore... +Deleting.Corrupted.Button=Eliminazione risorse da immagini vecchie o corrotte... + +[Progress.Close] +Ready.Label=Pronto + +[Progress.CommitImage] +CommittingImage.Button=Modifica immagine... +Saving.Changes.Image.Button=Salvataggio modifiche nell'immagine... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.ConvertImage] +ConvertingImage.Button=Conversione immagine... +Converting.Image.Button=Conversione dell'immagine specificata... +Gathering.Error.Level.Item=Raccolta del livello di errore... + +[Progress.CreateProject] +CreatingProject.Label=Creazione di progetto: {quot;}{0}{quot;} +CreateProject.Button=Creazione struttura progetto DISMTools... + +[Progress.DisableFeatures] +Disabling.Button=Disabilitazione funzionalità... +PrepareDisable.Button=Preparazione disabilitazione funzionalità... +Disabling.Item=Disabilitazione funzionalità... +DisablingFeature.Item=Disabilitazione funzionalità {0} di {1}... + +[Progress.EnableFeatures] +EnablingFeatures.Button=Abilitazione funzionalità... +PrepareEnable.Button=Preparazione abilitazione funzionalità... +EnablingFeatures.Item=Abilitazione funzionalità... +EnablingFeature.Item=Abilitazione funzionalità {0} di {1}... + +[Progress.ExportDrivers] +ExportingDrivers.Button=Esportazione driver... +ExportThirdParty.Button=Esportazione driver terze parti nella cartella specificata... + +[Progress.ExportImage] +ExportingImage.Button=Esportazione immagine... +Exporting.Image.Button=Esportazione immagine specificata... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.GetTasks] +Tasks.Label=Attività: 1/{0} + +[Progress.ImportDrivers] +ImportingDrivers.Button=Importazione dei driver... +PrepareImport.Button=Preparazione all'importazione di driver di terze parti... +ExportThirdParty.Item=Esportazione di driver di terze parti dall'origine di importazione dei driver... +ImportThirdParty.Item=Importazione driver di terze parti nell'immagine destinazione... + +[Progress.OSUninstall] +Uninstalling.Version.Button=Disinstallazione di questa versione di Windows... + +[Progress.StartRollback] +Preparing.OSRollback.Button=Preparazione del ripristino del sistema operativo... + +[Progress.Log] +HideLog.Label=Nascondi registro +ShowLog.Item=Visualizza registro + +[Progress.Logs.Operation] +Label=Registri operazioni + +[Progress.Logs.DismOutput] +Label=Uscita DISM + +[Progress.MergeSWM] +MergingSwmfiles.Button=Unione dei file SWM... +Merging.Swmfiles.WIM.Button=Unione dei file SWM in un file WIM... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.MountImage] +MountingImage.Button=Montaggio immagine... +Mounting.Image.Button=Montaggio immagine specificata... +Gathering.Error.Level.Item=Raccolta del livello di errore... + +[Progress.Operation] +OptimizingImage.Label=Optimizing image... +Optimizing.Windows.Label=Optimizing Windows image... +UpgradingImage.Label=Upgrading the image... +Setting.New.Image.Label=Setting the new image edition... +Setting.ProductKey.Label=Setting the product key... +Setting.New.ProductKey.Label=Setting the new product key... +Replacing.FFU.Files.Label=Replacing FFU files... +Replacing.Original.FFU.Label=Replacing original FFU file with modified FFU file... + +[Progress.RemountImage] +RemountingImage.Button=Rimontaggio immagine... +ReloadSession.Button=Ricaricamento sessione assistenza per l'immagine montata... +Gathering.Error.Level.Item=Raccolta livello errore... + +[Progress.RemoveCapabilities] +Remove.Capabilities.Button=Rimozione capacità... +Remove.Capabilities.Item=Rimozione capacità... +Capability.Item=Rimozione capacità {0} di {1}... + +[Progress.RemoveCaps] +Preparing.Button=Preparazione rimozione capacità... + +[Progress.RemoveDrivers] +RemovingDrivers.Button=Rimozione driver... +Preparing.Drivers.Button=Preparazione rimozione dei driver... +RemovingDrivers.Item=Rimozione driver... +RemovingDriver.Item=Rimozione driver {0} di {1}... + +[Progress.RemoveRollback] +RemoveRollback.Button=Rimozione opzione fallback al sistema operativo precedente... +RemoveRevert.Button=Rimozione opzione fallback ad una vecchia installazione di Windows... + +[Progress.RemovePackages] +RemovingPackages.Button=Rimozione pacchetti... +PrepareRemove.Button=Preparazione rimozione pacchetti... +RemovingPackages.Item=Rimozione pacchetti... +RemovingPackage.Item=Rimozione del pacchetto {0} di {1}... + +[Progress.ProvAppx.Remove] +RemovingPackages.Button=Rimozione pacchetti AppX... +Preparing.Button=Preparazione rimozione pacchetti AppX approvvigionati... +RemovingPackages.Item=Rimozione pacchetti AppX... +RemovingPackage.Item=Rimozione pacchetto {0} di {1}... + +[Progress.RemoveVolumes] +DeletingImages.Button=Eliminazione immagini... +Prepare.Remove.Button=Preparazione rimozione immagini volume... +Volume.Image.Item=Rimozione immagine volume {quot;}{0}{quot;}... + +[Progress.LayeredDriver] +SettingDriver.Button=Impostazione driver stratificato... +Setting.Keyboard.Button=Impostazione driver stratificato la tastiera... + +[Progress.RollbackWindow] +SetWindow.Button=Impostazione della finestra di disinstallazione... +SetDays.Button=Impostazione del numero di giorni in cui può avvenire la disinstallazione... + +[Progress.ScratchSpace] +Setting.ScratchSpace.Button=Impostazione dello spazio temporaneo... +SetScratchSpace.Button=Impostazione dello spazio temporaneo di Windows PE... + +[Progress.SetTargetPath] +Setting.Target.Button=Impostazione percorso destinazione... +Setting.Windows.Button=Impostazione percorso destinazione di Windows PE... + +[Progress.SplitFfuImage] +SplittingImage.Button=Divisione immagine... +Splitting.File.Button=Divisione file FFU... + +[Progress.SplitImage] +SplittingImage.Button=Divisione immagine... +Splitting.WIM.File.Button=Divisione file WIM... + +[Progress.SwitchIndexes] +Switching.Image.Button=Modifica indici immagine... +Unmounting.Source.Button=Smontaggio indice sorgente... +Gathering.Error.Level.Item=Raccolta del livello di errore... +Unmounting.Source.Index.Item=Smontaggio indice sorgente... +CurrentTask.Item=Raccolta livello errore... +Mounting.Target.Index.Item=Montaggio indice destinazione... + +[Progress.UnmountImage] +UnmountingImage.Button=Smontaggio immagine... +Unmounting.ImageFile.Button=Smontaggio file immagine... +Gathering.Error.Level.Item=Raccolta livello errore... + +[ProgressReporter] +Progress.Label=Avanzamento + +[ProjProps] +Bytes.Item={0} bytes (~{1}) +Getting.Project.Image.Label=Ottenere informazioni sul progetto e sull'immagine. Attendere... +Name.Label=Nome: +Location.Label=Ubicazione: +Creation.Time.Date.Label=Data di creazione: +ProjectGUID.Label=GUID del progetto: +MountDirectory.Label=Directory di montaggio: +ImageIndex.Label=Indice immagine: +ImageFile.Label=File immagine: +Image.Present.Project.Label=Immagine presente nel progetto? +ImageStatus.Label=Stato immagine: +Version.Label=Versione: +Description.Label=Descrizione: +Size.Label=Dimensione: +Supports.WIM.Boot.Label=Supporta WIMBoot? +Architecture.Label=Architettura: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Livello del Service Pack: +Edition.Label=Edizione: +ProductType.Label=Tipo di prodotto: +ProductSuite.Label=Suite di prodotti: +System.Root.Dir.Label=Cartella principale del sistema: +DirectoryCount.Label=Numero di cartelle: +FileCount.Label=Numero di file: +CreationDate.Label=Data di creazione: +ModificationDate.Label=Data di modifica: +Installed.Languages.Label=Lingue installate: +FileFormat.Label=Formato file: +Image.Rwpermissions.Label=Autorizzazioni R/W immagine: +Recover.Label=Recupera +Reload.Label=Ricaricare +Remount.Write.Label=Rimonta con i permessi di scrittura +Ok.Button=OK +Cancel.Button=Annullare +Many.Cannot.Seen.Message=Molte proprietà non possono essere visualizzate perché l'immagine non è ancora stata montata. Una volta montata, le informazioni dettagliate saranno mostrate qui. Fare clic qui per montare un'immagine +Props.Label=Proprietà +Yes.Button=Sì +No.Button=No +ImgMount.Label=Non disponibile +ImgIndex.Label=Non disponibile +ImgName.Label=Non disponibile +NotAvailable.Label=Non disponibile +ImgVersion.Label=Non disponibile +ImgMounted.Label=Non disponibile +ImgSize.Label=Non disponibile +ImgWIM.Label=Non disponibile +ImgHal.Label=Non disponibile +ImgSP.Label=Non disponibile +ImgEdition.Label=Non disponibile +ImgP.Label=Non disponibile +ImgSys.Label=Non disponibile +ImgDirs.Label=Non disponibile +ImgFiles.Label=Non disponibile +ImgCreation.Label=Non disponibile +ImgModification.Label=Non disponibile +ImgFormat.Label=Non disponibile +ImgRW.Label=Non disponibile + +[ProjectProps.FeatureUpdate] +FeatureUpdate.Label=(aggiornamento della caratteristica: {0}) + +[ProjectProps.Image] +UndefinedImage.Label=Non definito dall'immagine +OpenParenthesis.Label=( +Default.Label=, predefinito +CloseParenthesis.Label=) +File.Label=File {0} + +[ProjProps.Tooltip] +Hardware.Abstraction.Label=Livello di astrazione hardware + +[ServiceGroups] +ServiceGroup.Label={lbrace;}0{rbrace;} service(s) in group +RegisteredHost.Label={lbrace;}0{rbrace;} service(s) are registered in the service host. + +[RegistryPanel] +Image.Hives.Label=Alveari del registro delle immagini +Load.Label=Caricare +Unload.Label=Scarico +Open.Button=Apri +Tool.Lets.Load.Message=Questo strumento consente di caricare sul sistema locale gli alveari del registro dell'immagine specificati qui. In questo modo è possibile modificare la configurazione memorizzata nell'immagine di Windows. Una volta terminata la personalizzazione di una chiave da un hive, è anche possibile scaricarla qui: +Ntuserdatdefault.User.Label=NTUSER.DAT (Utente predefinito) +Load.Different.Label=Se si desidera caricare un altro hive del registro immagini, specificarne il percorso e fare clic su Caricare: +HiveLocation.Label=Posizione dell'hive: +PathRegistry.Label=Percorso nel registro di sistema: +Browse.Button=Sfoglia... +Load.Custom.Hive=Carica l'alveare personalizzato + +[RegistryPanel.Close] +HivesNeedUnload.Message=Gli alveari del registro devono essere scaricati per chiudere questa finestra. Volete scaricarli ora? +HivesNotUnloaded.Message=Non è stato possibile scaricare alcune arnie. Si prega di scaricarle prima di chiudere questa finestra. + +[ReloadProject] +ImageMissing.Label=Questa immagine non è più disponibile +ImageUnavailable.Message=L'immagine caricata in questo progetto non è più disponibile. Questo può accadere se è stata smontata da un programma esterno. Per questo motivo, il progetto deve essere ricaricato. Fare clic su {quot;}OK{quot;} per ricaricare il progetto.{crlf;}{crlf;}NOTA: se si fa clic su {quot;}Annulla{quot;}, il progetto verrà scaricato +Ok.Button=OK +Cancel.Button=Annullare + +[RemCapabilities] +Remove.Label=Rimuovi capacità +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Annullare +Capability.Column=Capacità +State.Column=Stato + +[RemCapabilities.Initialize] +UnsupportedImage.Message=Questa azione non è supportata su questa immagine + +[RemCapabilities.Validation] +Selected.None.Message=Non ci sono capacità selezionate da rimuovere. Selezionare alcune funzionalità e riprovare. + +[RemDrivers] +RemoveDrivers.Label=Rimuovere i conducenti +Image.Task.Header.Label={0} +DriverPackages.Wish.Label=Specificare i pacchetti di driver che si desidera rimuovere e fare clic su OK: +Hide.Boot.Critical.CheckBox=Nascondere i driver critici per l'avvio +Hide.Drivers.Part.CheckBox=Nascondi i driver che fanno parte della distribuzione di Windows +Ok.Button=OK +Cancel.Button=Annullare +PublishedName.Column=Nome pubblicato +Original.File.Name.Column=Nome del file originale +ProviderName.Column=Nome provider +ClassName.Column=Nome della classe +Part.Windows.Column=Parte della distribuzione di Windows? +BootCritical.Column=È critico per l'avvio? +Version.Column=Versione +Date.Column=Data +Loading.DriverPackages.Label=Ottenere i pacchetti dei driver installati... + +[RemDrivers.Validation] +Yes.Button=Sì +Selected.Boot.Message=Sono stati selezionati pacchetti di driver critici per l'avvio. La rimozione di tali pacchetti potrebbe rendere l'immagine di destinazione non avviabile +WantContinue.Message=Si desidera continuare? +CheckedItems.Button=Sì +Selected.Part.Message=Sono stati selezionati pacchetti di driver che fanno parte della distribuzione di Windows. Procedere potrebbe rendere inaccessibili alcune parti di Windows che dipendono da questi driver. +ContinueQuestion.Message=Si desidera continuare? +Packages.Required.Message=Specificare i pacchetti di driver da rimuovere e riprovare + +[RemPackage] +RemovePackages.Label=Rimuovi pacchetti +Image.Task.Header.Label={0} +PackageSource.Label=Origine del pacchetto: +Note.May.Message=NOTA: il programma può mostrare pacchetti che non sono stati aggiunti. Tuttavia, se un pacchetto non viene aggiunto, il programma lo salta. +PackageRemoval.Group=Rimozione del pacchetto +Package.Names.RadioButton=Specificare i nomi dei pacchetti: +Package.Files.RadioButton=Specificare i file del pacchetto: +Browse.Button=Sfoglia... +Cancel.Button=Annullare +Ok.Button=OK +PackageSource.Description=Specificare l'origine del pacchetto: +Couldn.Tscan.Message=Non è stato possibile eseguire la scansione dell'origine del pacchetto per i file CAB. Riprovare. +DISMTools.Title=DISMTools + +[RemPackage.Validation] +No.Packages.Selected.Message=Selezionare i pacchetti da rimuovere e riprovare +Packages.Selected.None.Title=Nessun pacchetto selezionato + +[RemoveAppx] +Prov.Label=Rimuovi i pacchetti AppX in provisioning +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Annullare +PackageName.Column=Nome del pacchetto +App.Display.Name.Column=Nome del display dell'applicazione +Architecture.Column=Architettura +ResourceID.Column=ID risorsa +Version.Column=Versione +Registered.User.Column=Registrato a qualche utente? +ViewResources.Label=Visualizza le risorse di {0} + +[RemoveAppx.Init] +UnsupportedImage.Message=Questa azione non è supportata su questa immagine + +[RemoveAppx.Validation] +Packages.Required.Message=Specificare i pacchetti AppX da rimuovere e riprovare +Prov.Title=Rimuovere i pacchetti AppX in dotazione +DesktopExperience.Message=Le caratteristiche di Esperienza del Desktop (DesktopExperience) devono essere abilitate per rimuovere i pacchetti AppX nelle immagini di Windows Server Core/Nano Server.{crlf;}{crlf;}Abilitate questa caratteristica, avviate l'immagine e riprovate + +[SaveProject] +SaveChanges.Label=Volete salvare le modifiche di questo progetto? +ShutdownRestart.Message=Se si spegne o si riavvia il sistema senza smontare le immagini, sarà necessario ricaricare la sessione di assistenza +Yes.Button=Sì +No.Button=No +Cancel.Button=Annulla + +[ScriptReorder] +Script.Label=Script {lbrace;}0{rbrace;} +Move.Selected.Top.Label=Move selected script to the top +Move.Selected.Previous.Label=Move selected script to the previous position +Move.Selected.Next.Label=Move selected script to the next position +Move.Selected.Bottom.Label=Move selected script to the bottom + +[ServiceManagement.Display] +MinuteS.Label={0} minuto/i +Undefined.Label=Non definito +Per.User.Label=Non è un servizio per utente +Undefined.Group.Label= + +[Services.Display] +MinutesSeconds.Message={0} minuto/i ({1} secondi) dopo il primo errore, {2} minuto/i ({3} secondi) dopo il secondo errore, {4} minuto/i ({5} secondi) dopo gli errori successivi + +[Services.Messages] +StartType.Message=Il tipo di avvio selezionato non è supportato per servizi di questo tipo. Il servizio selezionato potrebbe non funzionare correttamente o non funzionare affatto se continui con questo tipo di avvio.{crlf;}{crlf;}Vuoi ripristinare questo tipo di avvio al valore corrente? +System.Done.Message=Le informazioni dei servizi di sistema sono state salvate correttamente nel registro dell’immagine di destinazione.{crlf;}{crlf;}Un backup della configurazione precedente dei servizi è stato salvato sul desktop, nel caso fosse necessario se le modifiche ai servizi non andassero come previsto.{crlf;}{crlf;}Carica semplicemente l’hive SYSTEM dell’immagine di destinazione e importa questo file di registro. +UnsavedClose.Message=Sono state apportate alcune modifiche. La chiusura di questa finestra eliminerà tutte le modifiche ai servizi Windows. Vuoi eliminare queste modifiche? +UnsavedReload.Message=Sono state apportate alcune modifiche. Il ricaricamento delle informazioni sui servizi eliminerà tutte le modifiche ai servizi Windows. Vuoi eliminare queste modifiche? +RemoveService.Title=Rimuovi servizio +Scheduled.Deletion.Message=Il servizio è stato pianificato correttamente per l’eliminazione. La rimozione del servizio avverrà quando salverai le modifiche. Se dovessi avere bisogno di ripristinare questo servizio, importa il backup delle informazioni sui servizi che verrà creato durante il salvataggio. +InfoSaved.Message=Non è stato possibile salvare le informazioni dei servizi di sistema nel registro dell’immagine di destinazione. + +[ServiceMgmt.Messages] +Continui.Removal.Svc.Message=Continuare con la rimozione di questo servizio può rendere il sistema di destinazione instabile o non avviabile. Vuoi continuare? + +[ServiceManagement.Progress] +Saving.Label=Salvataggio delle informazioni sui servizi... ({0}/{1}, {2}%) + +[ServiceManagement.StartTypes] +BootLoader.Label=Caricatore di avvio +Iosystem.Label=Sistema I/O +Automatic.Label=Automatico +Manual.Label=Manuale +Disabled.Label=Disabilitato + +[ImageEdition] +Title.Label=Imposta edizione immagine +Image.Task.Header.Label={0} +Target.Upgrade.Label=Edizione di destinazione per l'aggiornamento: +ServerOptions.Group=Opzioni di installazione attiva del server +Copy.EndUser.RadioButton=Copia il Contratto di Licenza con l'Utente Finale (CLUF) nella seguente posizione: +AcceptEULA.RadioButton=Accetta il Contratto di Licenza con l'Utente Finale (CLUF) e utilizza la seguente chiave prodotto: +Browse.Button=Sfoglia... +Ok.Button=OK +Cancel.Button=Annulla + +[ImageEdition.Initialize] +Image.Cannot.Message=Questa immagine non può essere aggiornata a edizioni superiori perché si trova nell'edizione più alta +Windows.Message=Le immagini di Windows PE non possono essere aggiornate a edizioni superiori. + +[SetImageKey] +SetProductKey.Label=Imposta chiave prodotto +Image.Task.Header.Label={0} +Type.ProductKey.Label=Digita la chiave prodotto che desideri impostare per l'immagine di Windows, inclusi i trattini: +Check.ProductKey.Message=Se desideri verificare se la chiave prodotto è valida per l'immagine di Windows, fai clic su Convalida chiave. Questo controllerà anche la sintassi della chiave. +ValidateKey.Button=Convalida chiave +Ok.Button=OK +Cancel.Button=Annulla + +[SetImageKey.Initialize] +Windows.Message=Le immagini di Windows PE non possono essere aggiornate a edizioni superiori. + +[SetImageKey.Messages] +ProductKey.Has.Label=Il codice Product Key non è stato digitato correttamente. +ProductKey.Windows.Label=Il codice Product Key è valido per questa immagine Windows. +ProductKey.Valid.Message=Il codice Product Key è stato digitato correttamente, ma non è valido per questa immagine Windows. + +[SetImageKey.Validation] +ProductKey.Valid.Message=Il codice Product Key è stato digitato correttamente, ma non è stato possibile verificare se è valido per questa immagine Windows. + +[SetLayeredDriver] +UnknownInstalled.Label=Unknown/Not installed +PC.Enhanced.Label=PC/AT Enhanced Keyboard (101/102-Key) +DriverKorean.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 2) +Korean.Keyboard.Key.Item=Korean Keyboard (103/106 Key) +Japanese.Keyboard.Key.Item=Japanese Keyboard (106/109 Key) + +[SetLayeredDriver.KoreanPC] +Keyboard101.Type1.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 1) +Keyboard101.Type3.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 3) + +[LayeredDriver.Set] +Title=Imposta driver a strati per tastiera +Image.Task.Header.Label={0} +Intro.Message=Questa azione consente di impostare un driver a strati per le tastiere giapponesi e coreane, poiché alcuni utenti dispongono di tastiere con tasti aggiuntivi. È sufficiente specificare il nuovo driver stratificato dall'elenco sottostante e fare clic su OK +CurrentDriver.Label=Driver a strati per la tastiera attuale: +NewDriver.Label=Nuovo driver a strati per tastiera: +Driver.Already.Label=Questo driver è già stato impostato +Ok.Button=OK +Cancel.Button=Annullare + +[OSRollback] +OSUninstall.Label=Impostare la finestra di disinstallazione del sistema operativo +Image.Task.Header.Label={0} +Default.OS.Message=Per impostazione predefinita e dopo un aggiornamento del sistema operativo, si hanno 10 giorni per tornare alla versione precedente di Windows. Tuttavia, è possibile modificare questa impostazione se si desidera tornare alla vecchia versione del sistema operativo in un secondo momento.{crlf;}{crlf;}Utilizzare il cursore numerico per aumentare o diminuire il numero di giorni a disposizione per tornare alla vecchia versione di Windows. Deve essere compreso tra 2 e 60. +Amount.Days.Revert.Label=Numero di giorni necessari per tornare alla vecchia versione di Windows: +Ok.Button=OK +Cancel.Button=Annullare + +[RollbackWindow.Init] +OnlineOnly.Message=Questa azione è supportata solo su installazioni attive + +[OSRollback.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[PE.Scratch] +Window.Title=Imposta spazio temporaneo Windows PE +Header.Title={0} +Description.Message=Lo spazio temporaneo è la quantità di spazio scrivibile disponibile sul volume di sistema Windows PE quando il suo contenuto viene copiato in memoria. Specificare la quantità di spazio temporaneo e fare clic su OK +Space.Label=Spazio temporaneo: +Ok.Button=OK +Cancel.Button=Annullare + +[PETargetPath.Target] +Set.Windows.Petarget.Label=Imposta il percorso di destinazione di Windows PE +Image.Task.Header.Label={0} +Target.Dir.Message=Il percorso di destinazione è una directory in cui verranno copiati i file di Windows PE per l'avvio dell'ambiente. Specificare un percorso di destinazione e fare clic su OK +TargetPath.Label=Percorso di destinazione: +Ok.Button=OK +Cancel.Button=Annullare + +[PETargetPath.Validation] +Target.Least.Message=Il percorso di destinazione deve essere di almeno 3 caratteri e non più lungo di 32 caratteri +Target.Start.Message=Il percorso di destinazione deve iniziare con una lettera diversa da A o B +DriveLetterFormat.Message=Una lettera di unità deve essere seguita da : +AbsolutePath.Message=Il percorso di destinazione deve essere assoluto e non deve contenere elementi relativi +Target.Contain.Message=Il percorso di destinazione non deve contenere spazi o virgolette + +[SettingsReset] +ResetPreferences.Label=Ripristino preferenze +ProceedReset.Message=Se procedi, le impostazioni verranno ripristinate ai valori predefiniti. Al termine di questo processo, si tornerà alla finestra principale del programma.{crlf;}{crlf;}Vuoi procedere? +Yes.Button=Sì +No.Button=No + +[Single.Image] +Image.Seems.Only.Item=Questa immagine sembra avere un solo indice +Cannot.Switch.Index.Message=Non è possibile passare ad altri indici. Se si desidera salvare le modifiche all'immagine, è possibile farlo utilizzando un nuovo indice separato +Know.Indexes.Message=Per saperne di più sugli indici di un'immagine o su alcune sue proprietà specifiche, andare su {quot;}Comandi > Gestione immagini > Ottieni informazioni sull'immagine{quot;}, oppure fare clic qui +Here.LinkText=lic +Ok.Button=OK + +[SplashScreen] +Version.Label=Version {lbrace;}0{rbrace;}.{lbrace;}1{rbrace;}.{lbrace;}2{rbrace;} + +[StarterScript] +AlreadyCreated.Message=The starter script had been created with an earlier version of the Starter Script Editor and will be saved with properties that will make it compatible with the current format. After this is done, the starter script will no longer be compatible with earlier versions of DISMTools or the Starter Script Editor.{crlf;}{crlf;}Do you want to save this file? +Editor.Label=Starter Script Editor +Dialog.Title=Starter Script Editor +SaveError.Label=Save Error +DebugEditor.Label=DISMTools Starter Script Editor version {0} ({1}_DEBUG){crlf;}{crlf;}{2} +About.Label=Informazioni +Editor.Message=DISMTools Starter Script Editor version {0}{crlf;}{crlf;}{1} +DebugVersion.Message=DISMTools Starter Script Editor version {0}_NET2REL ({1}_DEBUG){crlf;}{crlf;}{2} +Version.Message=DISMTools Starter Script Editor version {0}_NET2REL{crlf;}{crlf;}{1} +ImportExisting.Label=Import Existing Script +Unrecognized.Label=Unrecognized script +ReadFailed.Label=Could not read file contents +FileMissing.Label=The script file does not exist. +ReadOnlyFile.Message=This script file has been loaded with read-only privileges. If you make changes to this script, you must save them to a new script file or enable write access for this script. +SaveFailed.Message=Changes could not be saved to the script file. Make sure write access is present in the file. {crlf;}{crlf;}{0}{crlf;}{crlf;}To enable write access for this file, use the respective button in the toolbar. +SaveChanges.Label=Do you want to save the changes to your script file? +Name.Required.Label=You must provide a name for this starter script. +Description.Required.Label=You must provide a description for this starter script. +SaveChanges.Message=Do you want to save the changes to your script file? +ImportSelected.Message=Importing the selected script will replace existing contents of your script. +SupportedScript.Label=This script is not supported by the Starter Script Editor. +LoadFailed.Label=The contents of the script could not be loaded. +WriteAccess.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +NonMonospace.Message=You have selected a non-monospaced font. Text may not look correctly. Do you want to continue? +Name.Required.Message=You must provide a name for this starter script. +Description.Required.Message=You must provide a description for this starter script. +Window.Title=Starter Script Editor - {lbrace;}0{rbrace;} +Window.Default=Starter Script Editor +CheckScript.Message=Check this option if this script contains settings that can be configured by the user{crlf;}after importing the starter script from the Starter Script Browser. + +[Tools.ThemeDesigner.Main] +Color.Rgbclick.Label=Current Color: RGB({0}, {1}, {2}). Click to copy to clipboard + +[ThemeDesigner.Messages] +Loaded.Read.Only.Message=This theme has been loaded with read-only privileges. If you make changes, you must save them to a new file or enable write access. +Provide.Name.Label=You must provide a name for the theme. +Saved.Done.Label=The theme has been saved successfully at the specified location. +SaveTheme.Label=Could not save the theme. +Enable.Write.Access.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +ThemeDesigner.Label=Theme Designer +Name.Missing.Label=Theme name missing +SaveSuccess.Label=Save Success +SaveError.Label=Save Error +DISM.Tools.Designer.Label=DISMTools Theme Designer version {0}{crlf;}{crlf;}{1}. {2} +About.Label=Informazioni +About.Version.Message=DISMTools Theme Designer version {0}_NET2REL{crlf;}{crlf;}{1}. {2} +StarterScript.Editor.Label=Starter Script Editor + +[DynaViewer.Messages] +FileExist.Label=The file {quot;}{0}{quot;} does not exist. +File.NotFound.Message=The file {quot;}{0}{quot;} does not exist. +Log.Version.Label=DynaLog Log Viewer (DynaViewer) version {0}{crlf;}{crlf;}{1} +About.Version.Message=DynaLog Log Viewer (DynaViewer) version {0}_NET2REL{crlf;}{crlf;}{1} +Regex.Failure.Label=Regular expression failure +RegexInvalid.Message=The regular expression, {1} , has not been written correctly. The cheatsheet can help you with the queries.{0}{0} Error message: {2} + +[DynaViewer] +Proced.Entries.Double.Label=Processed entries: {lbrace;}0{rbrace;}. Double-click an entry to get its information. +Regex.Expressions.Label=Use regular expressions +MatchCase.Label=Match case +Processed.Entries.Message=Processed entries: {lbrace;}0{rbrace;}{lbrace;}1{rbrace;}. Double-click an entry to get its information. +FilteredEntries.Suffix=; Filtered entries: {lbrace;}0{rbrace;} + +[ThemeDesigner.Main] +Window.Title=DISMTools Theme Designer - {lbrace;}0{rbrace;} +Window.DefaultTitle=DISMTools Theme Designer + +[Unattend.Scripts] +ImportDone.Message=After this script is imported, please check its code for any options that you can set. That way you can customize its behavior. +Loaded.Message=The starter scripts could not be loaded. +Refreshed.Message=The starter scripts could not be refreshed. + +[UnattendMgr] +Unattended.AnswerFile.Label=Gestore file di risposta non presidiato +ProjectPath.Label=Posizione del progetto: +Browse.Button=Sfoglia... +OpenFile.Button=Apri file +Open.File.Location.Button=Apri il percorso del file +ApplyImage.Button=Applica all'immagine... +FileName.Column=Nome del file +Created.Column=Creato +LastModified.Column=Ultima modifica +LastAccessed.Column=Ultimo accesso + +[Unattend.Scan] +FolderMissing.Message=Il percorso della cartella non esiste +ElementsFound.Message=La ricerca si è conclusa con nessun elemento trovato + +[Updater.Main] +Minimize.Label=Minimize +Close.Label=Close +DISM.Tools.Update.Label=DISMTools Update Check System - Version {0} +UpdateInfo.Label=Update information +Downloading.Update.Label=Downloading the update +Prepare.Update.Install.Label=Preparing update installation +InstallingUpdate.Label=Installing the update +Downloading.Download.Label=Downloading the update ({0}%) +Preparing.Install.Item=Preparing update installation (80%) +Preparing.Install.Label=Preparing update installation ({0}%) +Prepare.Update.Install.Item=Preparing update installation (100%) +Installing.Update.Item=Installing the update (0%) +Installing.Update.Label=Installing the update ({0}%) +InstallingComplete.Item=Installing the update (100%) + +[Updater.Main.Messages] +BranchRequired.Message=The branch parameter is necessary to be able to check for updates +Couldn.Tfetch.Label=We couldn't fetch the necessary update information. Reason:{crlf;}{0} +Updates.Available.None.Label=There aren't any updates available + +[Updater.Main.Validation] +CurrentVersion.Warning=Your current version of DISMTools may no longer work correctly if you continue using it. It is recommended that you download the latest version manually and extract/install it manually.{crlf;}{crlf;}Do not worry. Your settings are kept intact. + +[Utilities.WMIHelper] +Wmierror.Message=WMI Error + +[WDSImageCopy.ImageInfo] +Gather.ImageFile.Message=Impossibile raccogliere informazioni sull'immagine. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[WDSImageCopy.Messages] +Either.Source.Message=Il file immagine di origine non esiste oppure non è stato specificato alcun file immagine. Specifica un file immagine valido e riprova. +Group.Has.None.Message=Non è stato specificato alcun gruppo. Specifica un gruppo WDS nuovo o esistente e riprova. +Images.Have.None.Label=Non è stata selezionata alcuna immagine da aggiungere al server WDS. +Image.Add.Message=Assicurati che l’immagine che stai aggiungendo sia stata preparata con Sysprep.{crlf;}{crlf;}Se non lo hai fatto, fai clic su No, prepara l’immagine e avvia di nuovo il processo. Non devi chiudere questa finestra.{crlf;}{crlf;}Vuoi aggiungere questa immagine al server WDS? +Wizard.Support.Message=Questa procedura guidata non supporta questo computer. Assicurati che il computer esegua Windows Server e che il ruolo Servizi di distribuzione Windows sia installato. +Boot.Image.Detected.Message=È stata rilevata un’immagine di avvio. Non dovresti usarla come immagine di installazione nel server. +UploadSuccessful.Label=Le immagini sono state caricate correttamente. +Images.Uploaded.Done.Label=Le immagini non sono state caricate correttamente. + +[WDSImageCopy.Progress] +UploadingImages.Label=Caricamento delle immagini... +Image.Uploads.Done.Label=Caricamento delle immagini completato. + +[WimScriptEditor] +ConfigList.Title=Editor elenco configurazione DISM +Config.List.Allows.Message=L'Editor elenco configurazione consente di escludere file e/o cartelle durante le azioni che consentono di specificare tali file, come l'acquisizione di un'immagine. È possibile specificare le impostazioni dall'interfaccia grafica oppure creare manualmente il file di configurazione. Al termine, selezionare l'icona Salva +ExclusionList.Group=Elenco esclusioni +Exclusion.Exception.List=Elenco eccezioni esclusione +Compression.Exclusion.List=Elenco esclusione compressione +Add.Button=Aggiungi... +Edit.Button=Modifica... +Remove.Button=Rimuovi +Config.List.Load.Title=Specifica l'elenco configurazione da caricare +Location.Save.Config.Title=Specifica il percorso in cui salvare l'elenco configurazione +New.Tooltip=Nuovo +Open.Button=Apri... +Save.Button=Salva... +Toggle.Word.Wrap.Tooltip=Attiva/disattiva a capo automatico +Help.Tooltip=Aiuto +Tools.Label=Strumenti +Exclude.User.One.Button=Escludi cartelle OneDrive utente... +New.Config.List.Label=Nuovo elenco di configurazione - Editor elenco di configurazione DISM +ConfigList.FileTitle={0} - Editor dell'elenco di configurazione DISM +AddList.Label=Aggiungere una entrata di {0} +AddEntry.Label=Aggiungere una entrata di {0} + +[WimScriptEditor.Actions] +Save.Config.List.Prompt=Vuoi salvare questo file dell'elenco di configurazione? +ConfigList.Title={0} - Editor dell'elenco di configurazione DISM +ConfigList.FileTitle={0}{1} - Editor dell'elenco di configurazione DISM + +[WimScriptEditor.Close] +Save.Config.List.Prompt=Vuoi salvare questo file dell'elenco di configurazione? +ConfigList.FileTitle={0}{1} - Editor dell'elenco di configurazione DISM +ConfigList.Title={0} - Editor dell'elenco di configurazione DISM + +[WimScriptEditor.Editor] +ConfigList.Title={0} - Editor dell'elenco di configurazione DISM +ConfigList.ModifiedTitle={0} (modificato) - Editor dell'elenco di configurazione DISM + +[WimScriptEditor.OpenFile] +ConfigList.Title={0} - Editor dell'elenco di configurazione DISM + +[WimScriptEditor.Content] +ConfigList.Title={0} - Editor dell'elenco di configurazione DISM +ConfigList.ModifiedTitle={0} (modificato) - Editor dell'elenco di configurazione DISM + +[WindowsImage.MountMode] +Yes.Button=Sì +No.Button=No + +[WindowsImage.MountStatus] +Ok.Button=OK +NeedsRemount.Label=Necessità di rimontaggio +Invalid.Label=Non valido + +[WindowsServices.Helper] +Service.Backed.Message=Current service information could not be backed up. Backups are used in case of a mistake during service management. You may continue, but at your own risk.{crlf;}{crlf;}The target image may not work correctly or at all after configuration, and you will not be able to recover it using previous service configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current service information? +Service.Backed.Up.Title=Service information could not be backed up + +[PEHelper.WDSImageGroup] +CreateFailed.Message=The specified WDS image group could not be created. +LoadFailed.Message=Could not get image groups. + +SpecifyGroup.Button=Specify a group in your WDS server... +Action.Choose.Label=Choose an action: +Already.Exists.Label=This group already exists. +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Refresh.Button=Aggiorna +Ok.Button=OK +Cancel.Button=Annulla + +[Casters.OfflineInstall.Boot] +Required.Message=Per installare completamente questo pacchetto è necessario un avvio dell'immagine di destinazione. +NotRequired.Message=Non è necessario un avvio dell'immagine di destinazione per installare completamente questo pacchetto. + +[PrgSetup.LogPreview] +Packages.Add.Message=Aggiunta dei pacchetti all’immagine montata...{crlf;}- Origine pacchetto: C:\w100-glb{crlf;}- Operazione di aggiunta: selettiva{crlf;}- Ignorare i controlli di applicabilità? No{crlf;}- Impedire l’aggiunta del pacchetto se sono necessarie azioni online? No{crlf;}- Eseguire il commit dell’immagine dopo le operazioni? Sì{crlf;}Enumerazione dei pacchetti da aggiungere. Attendere...{crlf;}Numero totale di pacchetti: 128{crlf;}{crlf;}Elaborazione di 128 pacchetti...{crlf;}Pacchetto 1 di 128 + +[Options.LogPreview] +Packages.Add.Message=Aggiunta dei pacchetti all’immagine montata...{crlf;}- Origine pacchetto: C:\w100-glb{crlf;}- Operazione di aggiunta: selettiva{crlf;}- Ignorare i controlli di applicabilità? No{crlf;}- Impedire l’aggiunta del pacchetto se sono necessarie azioni online? No{crlf;}- Eseguire il commit dell’immagine dopo le operazioni? Sì{crlf;}Enumerazione dei pacchetti da aggiungere. Attendere...{crlf;}Numero totale di pacchetti: 128{crlf;}{crlf;}Elaborazione di 128 pacchetti...{crlf;}Pacchetto 1 di 128 + +[PrgSetup.ProgressPreview] +Wait.Label=Attendere... +ImageIndexes.Message=Ottenere gli indici delle immagini... + +[Options.ProgressPreview] +Wait.Label=Attendere... +ImageIndexes.Message=Ottenere gli indici delle immagini... + +[DynaViewer.Designer.Main] +Dyna.Log.File.Label=DynaLog Log File: +LogFiles.Filter=Log Files|*.log +Dyna.Log.Event=DynaLog Event Logs +EventTimestamp.Column=Event Timestamp +ProcessID.Column=Process ID +EventCaller.Column=Event Caller +Message.Column=Message +Browse.Button=Sfoglia... +Refresh.Button=Aggiorna +Processed.Entries.Label=Number of processed entries: +About.ActionButton=Informazioni +LightCM.Label=Light +DarkCM.Label=Dark +SystemCM.Label=System +ColorMode.Button=Color Mode +PID.Label=PID: +EventCaller.Label=Event Caller: +Options.Heading.Label=Options: +RegexCB.Label=.* +Regex.Failure.Btn.Label=! +Aa.Label=Aa +Message.Label=Message: +Dyna.Log.Viewer.Label=DynaLog Log Viewer + +[DynaViewer.Designer.EventProps] +Num.Events.Label=Information for event of : +EventTimestamp.Label=Event Timestamp: +MethodCallers.Group=Method Callers +Field.Empty.Link=Why can the field above be empty? +Method.Function.Label=The method/function described above was called by method/function: +Logged.Method.Function.Label=The event was logged by method/function: +PID.Label=PID: +EventMessage.Label=Event Message: +NextEvent.Label=&Next Event +PreviousEvent.Label=&Previous Event +EventProps.Label=Event Properties + +[DynaViewer.Designer.Regex] +CheatsheetHelp.Label=Use the following cheatsheet when performing message queries with regular expressions: +CharacterClasses.Message=Character Classes:{crlf;}. Any character except newline{crlf;}\d Digit [0-9]{crlf;}\D Non-digit{crlf;}\w Word character [A-Za-z0-9_]{crlf;}\W Non-word character{crlf;}\s Whitespace{crlf;}\S Non-whitespace{crlf;}[abc] Any of a, b, or c{crlf;}[^abc] Not a, b, or c{crlf;}[a-z] Lowercase letter{crlf;}{crlf;}Quantifiers:{crlf;}{crlf;}* 0 or more{crlf;}- 1 or more{crlf;}{crlf;}? 0 or 1{crlf;}{lbrace;}n{rbrace;} Exactly n times{crlf;}{lbrace;}n,{rbrace;} n or more times{crlf;}{lbrace;}n,m{rbrace;} Between n and m times{crlf;}{crlf;}Anchors:{crlf;}^ Start of string/line{crlf;}$ End of string/line{crlf;}\b Word boundary{crlf;}\B Not a word boundary{crlf;}{crlf;}Groups:{crlf;}(abc) Capturing group{crlf;}(?:abc) Non-capturing group{crlf;}(?) Named group{crlf;}\1 Backreference group 1{crlf;}{crlf;}Common Examples:{crlf;}^\d+$ Only digits{crlf;}^[A-Za-z]+$ Only letters{crlf;}^\w+@\w+.\w+$ Basic email{crlf;}^\d{lbrace;}4{rbrace;}-\d{lbrace;}2{rbrace;}-\d{lbrace;}2{rbrace;}$ Date YYYY-MM-DD +PinTop.CheckBox=Pin to top +RegexCheatsheet.Label=Regular Expression Cheatsheet + +[StarterScript.Designer.Main] +New.StarterScript.Ctrl.Label=New Starter Script (Ctrl + N) +Open.StarterScript.Label=Open Starter Script File... (Ctrl + O) +Save.StarterScript.Label=Save Starter Script File... (Ctrl + S) +Save.StarterScript.Tooltip=Save Starter Script File... (Ctrl + S){crlf;}Hold down SHIFT while clicking the icon to specify the target version for the starter script while saving. +About.ToolButton=About... +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +SaveScript.Ctrl.Shift.Label=Save Starter Script File as... (Ctrl + Shift + S) +Enable.Write.Access.Button=Enable write access... +Configure.Target.Button=Configure target script version... +Change.Editor.Font.Button=Change Editor Font... +NormalizeSpacing.Button=Normalize Spacing +Starter.Scripts.Message=Starter Scripts allow you to run commands when installing Windows images with your unattended answer file. Use this application to create your own starter scripts that you can share with other people, or modify existing starter scripts to suit your needs.{crlf;}{crlf;}Use the buttons in the toolbar to create, open, and save starter scripts. +LineColumn.Label=Line, Column +WordWrap.CheckBox=Word Wrap +Import.Existing.Button=Import Existing Script... +ScriptCode.Label=Script Code: +ScriptLanguage.Label=Script Language: +Script.Description.Label=Script Description: +ScriptName.Label=Script Name: +ScriptOptions.CheckBox=Script contains configurable options +Starter.Scripts.Dtss.Filter=Starter Scripts|*.dtss +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd|PowerShell scripts|*.ps1|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript Scripts|*.js;*.jse +Import.Existing.Script.Title=Import Existing Script +StarterScript.Editor.Label=Starter Script Editor + +[StarterScript.Designer.Version] +Ok.Button=OK +Cancel.Button=Annulla +ConfiguredScript.Message=This starter script can be configured to work with specific versions of DISMTools and the Starter Script Editor. Choose the version that you want to target with this script and click OK: +Target.Future08.RadioButton=This starter script targets DISMTools 0.8 and future versions +Target.Legacy073.RadioButton=This starter script targets DISMTools 0.7.3 +TargetVersion.Label=Choose target version for this script + +[ThemeDesigner.Designer.Main] +ThemeColors.Group=Theme Colors +OptionFour.Label=4 +OptionThree.Label=3 +OptionTwo.Label=2 +OptionOne.Label=1 +Change.Button=Cambia... +Bg.Color.Inner.Label=Background Color for Inner Sections: +ForegroundColor.Label=Foreground Color: +Inactive.Colors.Label=(Inactive colors are calculated by the theme engine) +AccentColors.Label=Accent Colors: +BackgroundColor.Label=Background Color: +DISM.Tools.Dark.CheckBox=DISMTools should use dark mode glyphs +ThemeName.Label=Theme Name: +See.Changes.Live.Label=See your changes live on the preview section below: +NewTheme.Label=New Theme +Open.Theme.File.Button=Open Theme File... +Save.Theme.File.Button=Save theme file... +About.Button=About... +Value.Option4.Label=4 +Value.Option3.Label=3 +Value.Option2.Label=2 +Heuristic.Reasoning.Message=Heuristic reasoning is reasoning not regarded as final and strict but as provisional and plausible only, whose purpose is to discover the solution of the present problem. We are often obliged to use heuristic reasoning. We shall attain complete certainty when we shall obtain the complete solution, but before obtaining certainty we must often be satisfied with a more or less plausible guess. We may need the provisional before we attain the final. +Inactivecontrol.Label=INACTIVE CONTROL +Activecontrol.Label=ACTIVE CONTROL +Label.Inner.Section.Label=Label in Inner Section +Value.Option1.Label=1 +TestControl.Label=Test Control 1 +Theme.Files.Ini.Filter=Theme Files|*.ini +SaveFile.Filter=Theme Files|*.ini +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +Enable.Write.Access.Button=Enable write access... +DISM.Tools.Theme.Label=DISMTools Theme Designer + +[Updater.Designer.Main] +DISM.Tools.Update.Label=DISMTools Update Check System - Version +ProductUpdates.Label=Product updates +Update.Button=Update +View.Release.Notes.Link=View release notes +VersionInfo.Label=Version information +Close.Open.Message=Please close any open DISMTools windows, while saving any projects loaded, and then click {quot;}Update{quot;} +NewVersion.Label=There is a new version available to download and install: +Progress.Label=Avanzamento +CheckingUpdates.Label=Checking for updates... +Launch.Ready.CheckBox=Launch when ready +Finishing.Update.Label=Finishing update installation +InstallingUpdate.Label=Installing the update +Prepare.Update.Install.Label=Preparing update installation +Downloading.Update.Label=Downloading the update +Update.Take.Time.Label=The update may take some time to install. +Wait.Update.Label=Please wait while we update your copy of DISMTools. This may take some time. +Updating.DISM.Tools.Label=Updating DISMTools... +Launch.Button=Launch +Version.Come.New.Message=This version may come with new settings you may not have set previously. Your old settings file will be migrated to this version. +DISM.Tools.Updated.Label=DISMTools has been updated successfully. You can now enjoy the new features of this release. +UpdateComplete.Label=Update complete + +[PEHelper.Designer.Main] +WhatWant.Label=What do you want to do? +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartPXE.Link=Start a PXE Helper Server for Network Installation +Exit.Button=Esci +Explore.Contents.Disc.Link=Explore contents of this disc +Prepare.System.Image.Link=Prepare System for Image Capture +PE.Helper.Message=PE Helper Scripts and Components (c) 2024-2026 CodingWonders SoftwareCompilation Scripts (c) 2022 CT Tech Group LLCFOG PowerShell API (c) 2020 JJ Fullmer +StartPXE.Label=Start a PXE Helper Server for Network Installation +Back.Button=Indietro +Copy.Install.Image.Link=Copy installation image to WDS server +Copy.Boot.Image.Link=Copy boot image to WDS server +StartPXE.PXEFOG.Link=Start PXE Helper Server for FOG +StartPXE.PXE.Windows.Link=Start PXE Helper Server for Windows Deployment Services +DISM.Tools.PE.Label=DISMTools Preinstallation Environment + +[PEHelper.Designer.ServerPort] +Ok.Button=OK +Cancel.Button=Annulla +Components.Disc.Rely.Message=Server components in this disc rely on ports to listen to requests from clients. If a port is in use by another program or service, you can use this dialog to specify a different port for the server components.{crlf;}{crlf;}The port you specify here will be used until you close the main menu. When you click OK, the server component will be launched using that port. Otherwise, it will be launched using either the default port or the previously configured port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[PEHelper.Designer.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +Cancel.Link=Cancel launch of this tool +ManualMode.Link=Launch in Manual mode (advanced) +AutomaticMode.Link=Launch in Automatic mode (recommended) +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other preferences to new user profiles +PrepareCapture.Label=Prepare System for Image Capture + +[PEHelper.Designer.WDSArch] +Okbutton.Button=OK +CancelButton.Button=Annulla +Architecture.Label=Target architecture: +Architecture.Label.Label=Specify architecture for target WDS boot image + +[PEHelper.Designer.WDSGroup] +Ok.Button=OK +Cancel.Button=Annulla +Action.Choose.Label=Choose an action: +Refresh.Button=Aggiorna +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[PEHelper.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +AutomaticMode.Link=Launch in Automatic mode (recommended) +ManualMode.Link=Launch in Manual mode (advanced) +Cancel.Link=Cancel launch of this tool +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other current preferences for new user profiles + +[Progress.LogText] +Of.Word={space;}di{space;} +Creating.Project.Structure=Creazione della struttura del progetto... +Project.Created.Successfully=Il progetto è stato creato correttamente. +An.Error.Has.Occurred.Please.Read.The.Details=An error has occurred. Please read the details below:{space;} +Debugging.Information=Debugging information:{space;} +Appending.Mount.Directory.To.Specified.Target.Image=Appending mount directory to specified target image... +Options=Opzioni: +Source.Image.Directory=- Source image directory:{space;} +Destination.Image.File=- Destination image file:{space;} +Destination.Image.Name=- Destination image name:{space;} +Destination.Image.Description=- Destination image description:{space;} +None.Specified=(nessuno specificato) +Configuration.List.File.Not.Specified=- Configuration list file: not specified +Configuration.List.File=- Configuration list file:{space;} +WARNING.The.Configuration.List.File.Does.Not.Exist={space;}{space;}{space;}WARNING: the configuration list file does not exist in the file system. Skipping file... +Append.Image.With.WIMBOOT.Configuration=- Append image with WIMBoot configuration?{space;} +Yes=Sì +No=No +Make.Image.Bootable=- Make image bootable?{space;} +Verify.Image.Integrity=- Verify image integrity?{space;} +Check.For.File.Errors=- Check for file errors?{space;} +Use.The.Reparse.Point.Tag.Fix=- Use the reparse point tag fix?{space;} +Capture.Extended.Attributes=- Capture extended attributes?{space;} +Gathering.Error.Level=Raccolta del livello di errore... +Error.Level.0x={space;}{space;}{space;}{space;}Error level : 0x +Error.Level={space;}{space;}{space;}{space;}Error level :{space;} +Applying.Image=Applicazione dell’immagine... +Source.Image.File=- Source image file:{space;} +Index.To.Apply=- Index to apply:{space;} +Target.Directory=- Target directory:{space;} +Split.FFU.SFU.File.Pattern.Not.Specified.Not=- Split FFU (SFU) file pattern: not specified/not using SFU file +Split.FFU.SFU.File.Pattern=- Split FFU (SFU) file pattern:{space;} +Verify.Image.Integrity.Yes=- Verify image integrity? Yes +Verify.Image.Integrity.No=- Verify image integrity? No +Check.For.File.Errors.Yes=- Check for file errors? Yes +Check.For.File.Errors.No=- Check for file errors? No +Use.Reparse.Point.Tag.Fix.Yes=- Use reparse point tag fix? Yes +Use.Reparse.Point.Tag.Fix.No=- Use reparse point tag fix? No +Split.WIM.SWM.File.Pattern.Not.Specified.Not=- Split WIM (SWM) file pattern: not specified/not using SWM file +Split.WIM.SWM.File.Pattern=- Split WIM (SWM) file pattern:{space;} +Validate.For.Trusted.Desktop.Yes=- Validate for Trusted Desktop? Yes +Validate.For.Trusted.Desktop.No.Not.Supported=- Validate for Trusted Desktop? No/Not supported +Apply.Using.WIMBOOT.Configuration.Yes=- Apply using WIMBoot configuration? Yes +Apply.Using.WIMBOOT.Configuration.No=- Apply using WIMBoot configuration? No +Use.Compact.Mode.Yes=- Use Compact mode? Yes +Use.Compact.Mode.No=- Use Compact mode? No +Apply.Using.Extended.Attributes.Yes=- Apply using extended attributes? Yes +Apply.Using.Extended.Attributes.No=- Apply using extended attributes? No +Capturing.Directory=Acquisizione della directory... +Source.Directory=- Source directory:{space;} +Destination.Image=- Destination image:{space;} +Captured.Image.Name=- Captured image name:{space;} +Captured.Image.Description.None.Specified=- Captured image description: none specified +Captured.Image.Description=- Captured image description:{space;} +Compression.Type.None=- Compression type: none +Compression.Type.Default=- Compression type: default +Capturing.Image=Acquisizione dell’immagine... +Compression.Type.Fast=- Compression type: fast +Compression.Type.Maximum=- Compression type: maximum +Mark.Image.As.Bootable.Yes=- Mark image as bootable? Yes +Mark.Image.As.Bootable.No=- Mark image as bootable? No +Check.Image.Integrity.Yes=- Check image integrity? Yes +Check.Image.Integrity.No=- Check image integrity? No +Verify.File.Errors.Yes=- Verify file errors? Yes +Verify.File.Errors.No=- Verify file errors? No +Use.The.Reparse.Point.Tag.Fix.Yes=- Use the Reparse Point tag fix? Yes +Use.The.Reparse.Point.Tag.Fix.No=- Use the Reparse Point tag fix? No +Append.With.WIMBOOT.Configuration.Yes=- Append with WIMBoot configuration? Yes +Append.With.WIMBOOT.Configuration.No=- Append with WIMBoot configuration? No +Capture.Extended.Attributes.Yes=- Capture extended attributes? Yes +Capture.Extended.Attributes.No=- Capture extended attributes? No +Cleaning.Up.Mount.Points=Cleaning up mount points... +This.Can.Take.Some.Time.Depending.On.The=This can take some time, depending on the drives connected to this system. +Saving.Changes=Salvataggio delle modifiche... +Mount.Directory=- Mount directory:{space;} +Removing.Volume.Images.From.File=Removing volume images from file... +Source.Image=- Source image:{space;} +Removing.Volume.Images=Removing volume images... +Error.Level.2={space;}Error level :{space;} +Error.Level.0x.2={space;}Error level : 0x +Exporting.The.Specified.Image.To.A.Destination.Image=Exporting the specified image to a destination image... +Source.Image.Index=- Source image index:{space;} +Compression.Type.No.Compression=- Compression type: no compression +Compression.Type.Fast.Compression=- Compression type: fast compression +Compression.Type.Maximum.Compression=- Compression type: maximum compression +Compression.Type.ESD.Conversion.Recovery=- Compression type: ESD conversion (recovery) +Mark.The.Image.As.Bootable=- Mark the image as bootable?{space;} +Check.Image.Integrity.Before.Exporting.The.Image=- Check image integrity before exporting the image?{space;} +NOTE.The.Source.Image.Contains.An.Asterisk.Sign=NOTE: the source image contains an asterisk sign (*) in the file name to merge all SWM files +Mounting.Image=Montaggio dell’immagine... +Image.File=- Image file:{space;} +Image.Index=- Image index:{space;} +Mount.Point=- Mount point:{space;} +Mount.Image.With.Read.Only.Permissions.Yes=- Mount image with read-only permissions? Yes +Mount.Image.With.Read.Only.Permissions.No=- Mount image with read-only permissions? No +Optimize.Mount.Time.Yes=- Optimize mount time? Yes +Optimize.Mount.Time.No=- Optimize mount time? No +Optimizing.Windows.Image=Optimizing Windows image... +Source.Image.To.Optimize=- Source image to optimize:{space;} +Partition.To.Optimize=- Partition to optimize:{space;} +Default.Partition.In.The.FFU.Will.Be.Optimized={space;}(Default partition in the FFU will be optimized) +Getting.Error.Level=Getting error level... +Optimization.Mode=- Optimization mode:{space;} +Reduce.Online.Configuration.Time=Reduce online configuration time +Prepare.Image.For.WIMBOOT.System=Prepare image for WIMBoot system +Reloading.Servicing.Session=Reloading servicing session... +Splitting.FFU.File.Into.SFU.Files=Splitting FFU file into SFU files... +Source.Image.File.To.Split=- Source image file to split:{space;} +Maximum.Size.Of.The.Split.Images.In.MB=- Maximum size of the split images (in MB):{space;} +Name.And.Path.Of.The.Target.SFU.File=- Name and path of the target SFU file:{space;} +Check.Integrity.Before.Splitting.This.Image=- Check integrity before splitting this image?{space;} +Do.Note.That.If.The.Image.Contains.A=Do note that, if the image contains a large file that can't fit within the maximum size, a SFU file may be larger than the rest, to accommodate it. +Splitting.WIM.File.Into.SWM.Files=Splitting WIM file into SWM files... +Name.And.Path.Of.The.Target.SWM.File=- Name and path of the target SWM file:{space;} +Do.Note.That.If.The.Image.Contains.A.2=Do note that, if the image contains a large file that can't fit within the maximum size, a SWM file may be larger than the rest, to accommodate it. +Unmounting.Image.File.From.Mount.Point=Unmounting image file from mount point... +Unmount.Operation.Commit=- Unmount operation: Commit +Unmount.Operation.Discard=- Unmount operation: Discard +Append.Changes.To.New.Index.Yes=- Append changes to new index? Yes +Append.Changes.To.New.Index.No=- Append changes to new index? No +Package.Name=- Package name:{space;} +Package.Description=- Package description:{space;} +Package.Release.Type=- Package release type:{space;} +Package.Is.Applicable.To.This.Image=- Package is applicable to this image?{space;} +Package.Is.Already.Installed=- Package is already installed?{space;} +Total.Number.Of.Packages=Total number of packages:{space;} +Exception=Exception{space;} +Has.Occurred.While.Enumerating.Packages.Enumerating.Packages.In={space;}has occurred while enumerating packages. Enumerating packages in the top folder... +Total.Number.Of.Packages.1=Total number of packages: 1 +Adding.Packages.To.Mounted.Image=Adding packages to mounted image... +Package.Source=- Package source:{space;} +Addition.Operation.Recursive=- Addition operation: recursive +Addition.Operation.Selective=- Addition operation: selective +Ignore.Applicability.Checks.Yes=- Ignore applicability checks? Yes +Ignore.Applicability.Checks.No=- Ignore applicability checks? No +Prevent.Package.Addition.If.Online.Actions.Need.To=- Prevent package addition if online actions need to be performed? Yes +NOTE.If.The.Mounted.Image.Requires.That.Online=NOTE: if the mounted image requires that online actions be performed, all packages might fail installation; but the operation might still be successful +Prevent.Package.Addition.If.Online.Actions.Need.To.2=- Prevent package addition if online actions need to be performed? No +Commit.Image.After.Operations.Are.Done.Yes=- Commit image after operations are done? Yes +Commit.Image.After.Operations.Are.Done.No=- Commit image after operations are done? No +Enumerating.Packages.To.Add.Please.Wait=Enumerating packages to add. Please wait... +Processing=Processing{space;} +Packages={space;}packages... +Some.Packages.Require.A.System.Restart.To.Be=Some packages require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Package=Package{space;} +Package.Is.Already.Added.Skipping.Installation.Of.This=Package is already added. Skipping installation of this package... +Package.Is.Not.Applicable.To.This.Image.Skipping=Package is not applicable to this image. Skipping installation of this package... +The.Package.About.To.Be.Added.Is.A=The package about to be added is a MSU file. Continuing... +Processing.Package=Processing package... +Error.Level.3={space;}Error level:{space;} +Gathering.Error.Level.For.Selected.Packages=Gathering error level for selected packages... +Package.No=- Package no.{space;} +The.Package.About.To.Be.Added.Is.A.2=The package about to be added is a Microsoft Update Manifest (MUM) file. +Removing.Packages.From.Mounted.Image=Removing packages from mounted image... +Enumerating.Packages.To.Remove.Please.Wait=Enumerating packages to remove. Please wait... +Amount.Of.Packages.To.Remove=Amount of packages to remove:{space;} +Package.State.Installed=- Package state: installed +Package.State.An.Uninstall.Is.Pending=- Package state: an uninstall is pending +Package.State.An.Install.Is.Pending=- Package state: an install is pending +Processing.Package.Removal=Processing package removal... +This.Package.Can.T.Be.Removed.Skipping.Removal=This package can't be removed. Skipping removal of this package... +Package.State=- Package state:{space;} +Enabling.Features=Enabling features... +Use.Parent.Package.To.Enable.Features.Yes=- Use parent package to enable features? Yes +Use.Parent.Package.To.Enable.Features.No=- Use parent package to enable features? No +Parent.Package.Name.Not.Specified=- Parent package name: not specified +Parent.Package.Name=- Parent package name:{space;} +Use.Feature.Source.Yes=- Use feature source? Yes +Use.Feature.Source.No=- Use feature source? No +Feature.Source.Not.Specified=- Feature source: not specified +Feature.Source=- Feature source:{space;} +Enable.All.Parent.Features.Yes=- Enable all parent features? Yes +Enable.All.Parent.Features.No=- Enable all parent features? No +Contact.Windows.Update.Yes=- Contact Windows Update? Yes +Contact.Windows.Update.No.The.System.Is.In=- Contact Windows Update? No, the system is in Safe Mode +Contact.Windows.Update.No.This.Is.Not.An=- Contact Windows Update? No, this is not an online installation +Contact.Windows.Update.No=- Contact Windows Update? No +Commit.Image.After.Enabling.Features.Yes=- Commit image after enabling features? Yes +Commit.Image.After.Enabling.Features.No=- Commit image after enabling features? No +Enumerating.Features.To.Enable=Enumerating features to enable... +Total.Number.Of.Features.To.Enable=Total number of features to enable:{space;} +Feature=Feature{space;} +Feature.Name=- Feature name:{space;} +Feature.Description=- Feature description:{space;} +Gathering.Error.Level.For.Selected.Features=Gathering error level for selected features... +Feature.No=- Feature no.{space;} +Some.Features.Require.A.System.Restart.To.Be=Some features require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Disabling.Features=Disabling features... +Use.Parent.Package.To.Disable.Features.Yes=- Use parent package to disable features? Yes +Use.Parent.Package.To.Disable.Features.No=- Use parent package to disable features? No +Remove.Feature.Manifest.Yes=- Remove feature manifest? Yes +Remove.Feature.Manifest.No=- Remove feature manifest? No +Enumerating.Features.To.Disable=Enumerating features to disable... +Total.Number.Of.Features.To.Disable=Total number of features to disable:{space;} +Reverting.Pending.Servicing.Actions=Reverting pending servicing actions... +Cleaning.Up.Service.Pack.Backup.Files=Cleaning up Service Pack backup files... +Hide.Service.Packs.From.The.Installed.Updates.List=- Hide Service Packs from the Installed Updates list?{space;} +Cleaning.Up.The.Component.Store=Cleaning up the component store... +Perform.Superseded.Component.Base.Reset=- Perform superseded component base reset?{space;} +Defer.Long.Running.Operations=- Defer long-running operations?{space;} +Analyzing.The.Component.Store=Analyzing the component store... +Checking.The.Component.Store.Health=Checking the component store health... +Scanning.The.Component.Store=Scanning the component store... +Repairing.The.Component.Store=Repairing the component store... +Use.Different.Source=- Use different source?{space;} +Yes.2=Yes ( +Limit.Windows.Update.Access=- Limit Windows Update access?{space;} +No.This.Is.Not.An.Online.Installation=No, this is not an online installation +The.System.Is.In.Safe.Mode=, the system is in Safe Mode +Adding.Provisioning.Package.To.The.Image=Adding provisioning package to the image... +Provisioning.Package=- Provisioning package:{space;} +Catalog.File=- Catalog file:{space;} +None.Specified.2=nessuno specificato +Commit.Image.After.Adding.Provisioning.Package=- Commit image after adding provisioning package?{space;} +Adding.Provisioned.APPX.Packages=Adding provisioned AppX packages... +Use.A.License.File.For.APPX.Packages.Yes=- Use a license file for AppX packages? Yes +License.File=- License file:{space;} +Use.A.License.File.For.APPX.Packages.No=- Use a license file for AppX packages? No +License.File.Not.Using=- License file: not using +Use.A.Custom.Data.File.For.APPX.Packages=- Use a custom data file for AppX packages? Yes +Custom.Data.File=- Custom data file:{space;} +Use.A.Custom.Data.File.For.APPX.Packages.2=- Use a custom data file for AppX packages? No +Custom.Data.File.Not.Using=- Custom data file: not using +Use.All.Regions.For.APPX.Packages.Yes=- Use all regions for AppX packages? Yes +Package.Regions.All=- Package regions: all +Use.All.Regions.For.APPX.Packages.No=- Use all regions for AppX packages? No +Package.Regions=- Package regions:{space;} +Commit.Image.After.Adding.APPX.Packages.Yes=- Commit image after adding AppX packages? Yes +Commit.Image.After.Adding.APPX.Packages.No=- Commit image after adding AppX packages? No +Enumerating.APPX.Packages.To.Add=Enumerating AppX packages to add... +Total.Number.Of.Packages.To.Add=Total number of packages to add:{space;} +APPX.Package.File=- AppX package file:{space;} +Application.Name=- Application name:{space;} +Application.Publisher=- Application publisher:{space;} +Application.Version=- Application version:{space;} +The.Application.About.To.Be.Added.Is.An=The application about to be added is an encrypted file. Since the program is managing the active installation, a PowerShell command will be run. +The.Application.About.To.Be.Added.Is.An.2=The application about to be added is an encrypted file. Encrypted packages can only be added to active installations. Skipping this package... +Warning.The.License.File.Does.Not.Exist.Continuing=Warning: the license file does not exist. Continuing without one... +Do.Note.That.If.This.App.Requires.A={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Do note that, if this app requires a license file, it may fail addition. +Also.This.May.Compromise.The.Image={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Also, this may compromise the image. +The.Following.Dependency.Packages.Will.Be.Installed.Alongside=- The following dependency packages will be installed alongside this application: +Dependency={space;}{space;}{space;}{space;}- Dependency:{space;} +Warning.The.Dependency=Warning: the dependency +Does.Not.Exist.In.The.File.System.Skipping=does not exist in the file system. Skipping dependency... +Warning.The.Custom.Data.File.Does.Not.Exist=Warning: the custom data file does not exist. Continuing without one... +Gathering.Error.Level.For.Selected.APPX.Packages=Gathering error level for selected AppX packages... +Application.Is.Registered.To.A.User.No=- Application is registered to a user? No +Application.Is.Registered.To.A.User.Yes=- Application is registered to a user? Yes +The.Removal.Of.This.Application.May.Require.You={space;}{space;}The removal of this application may require you to use PowerShell to completely remove it +A.PowerShell.Helper.Will.Be.Used.To.Remove=A PowerShell helper will be used to remove AppX packages. Please wait... +Log.Off.For.The.Deprovisioning.Of.Applications.To=Log off for the deprovisioning of applications to be fully carried out. +Removing.Provisioned.APPX.Packages=Removing provisioned AppX packages... +Enumerating.APPX.Packages.To.Remove=Enumerating AppX packages to remove... +Total.Number.Of.Packages.To.Remove=Total number of packages to remove:{space;} +Display.Name=- Display name:{space;} +Setting.The.Keyboard.Layered.Driver=Setting the keyboard layered driver... +Current.Keyboard.Layered.Driver=- Current keyboard layered driver:{space;} +New.Keyboard.Layered.Driver=- New keyboard layered driver:{space;} +Adding.Capabilities.To.Mounted.Image=Adding capabilities to mounted image... +Use.A.Source.For.Capability.Addition=- Use a source for capability addition?{space;} +Capability.Source=- Capability source:{space;} +No.Source.Has.Been.Provided=No source has been provided +Limit.Access.To.Windows.Update=- Limit access to Windows Update?{space;} +Commit.Image.After.Adding.Capabilities=- Commit image after adding capabilities?{space;} +Warning.The.Specified.Source.Does.Not.Exist.In=Warning: the specified source does not exist in the file system, and it will be skipped +Enumerating.Capabilities.To.Add.Please.Wait=Enumerating capabilities to add. Please wait... +Total.Number.Of.Capabilities=Total number of capabilities:{space;} +Capability=Capability{space;} +Capability.Identity=- Capability identity:{space;} +Capability.Name=- Capability name:{space;} +Capability.Description=- Capability description:{space;} +Gathering.Error.Level.For.Selected.Capabilities=Gathering error level for selected capabilities... +Capability.No=- Capability no.{space;} +Some.Capabilities.Require.A.System.Restart.To.Be=Some capabilities require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Removing.Capabilities.From.Mounted.Image=Removing capabilities from mounted image... +Enumerating.Capabilities.To.Remove.Please.Wait=Enumerating capabilities to remove. Please wait... +Setting.The.New.Image.Edition=Setting the new image edition... +New.Edition=- New edition:{space;} +Will.The.EULA.Be.Copied=- Will the EULA be copied?{space;} +Yes.To.The.Following.Destination=Yes, to the following destination:{space;} +Will.The.EULA.Be.Accepted=- Will the EULA be accepted?{space;} +Yes.With.The.Following.Product.Key=Yes, with the following product key:{space;} +Setting.The.New.Product.Key=Setting the new product key... +New.Product.Key=- New product key:{space;} +Adding.Driver.Packages.To.Mounted.Image=Adding driver packages to mounted image... +Force.Installation.Of.Unsigned.Drivers=- Force installation of unsigned drivers?{space;} +Commit.Image.After.Adding.Driver.Packages=- Commit image after adding driver packages?{space;} +Warning.The.Option.To.Force.Installation.Of.Unsigned=Warning: the option to force installation of unsigned drivers has been checked. Do note that unsigned drivers might cause instability on the resulting Windows image. +Enumerating.Drivers.To.Add.Please.Wait=Enumerating drivers to add. Please wait... +Total.Number.Of.Drivers=Total number of drivers:{space;} +Driver=Driver{space;} +Hardware.Description=- Hardware description:{space;} +Hardware.ID=- Hardware ID:{space;} +Additional.IDs=- Additional IDs +Compatible.IDs={space;}{space;}- Compatible IDs:{space;} +Excluded.IDs={space;}{space;}- Excluded IDs:{space;} +Hardware.Manufacturer=- Hardware manufacturer:{space;} +Hardware.Architecture=- Hardware architecture:{space;} +This.Driver.File.Targets.More.Than.10.Devices=This driver file targets more than 10 devices. To avoid creating log files large in size, we will not show information of this driver package, and will proceed anyway. +If.You.Want.To.Get.Information.Of.This=If you want to get information of this driver package, go to Commands > Drivers > Get driver information > I want to get information about driver files, and specify this driver file: +We.Couldn.T.Get.Information.Of.This.Driver=We couldn't get information of this driver package. Proceeding anyway... +The.Driver.Package.Currently.About.To.Be.Processed=The driver package currently about to be processed is a folder, so information about it can't be obtained. Proceeding anyway... +This.Folder.Will.Be.Scanned.Recursively.Driver.Addition=This folder will be scanned recursively. Driver addition may take a longer time... +Gathering.Error.Level.For.Selected.Drivers=Gathering error level for selected drivers... +Driver.No=- Driver no.{space;} +Removing.Driver.Packages.From.Mounted.Image=Removing driver packages from mounted image... +Getting.Image.Drivers.This.May.Take.Some.Time=Getting image drivers. This may take some time... +Enumerating.Drivers.To.Remove.Please.Wait=Enumerating drivers to remove. Please wait... +Exporting.Drivers.To.Specified.Folder=Exporting drivers to specified folder... +Export.Target=- Export target:{space;} +Export.All.Drivers.Or.Just.Those.With.Matching=- Export all drivers, or just those with matching class names?{space;} +All.Drivers=Tutti i driver +Drivers.With.Matching.Class.Name=Drivers with matching class name +If.Not.All.Drivers.Are.Exported.Which.Class=- If not all drivers are exported, which class name is used for drivers that will be exported?{space;} +Driver.S.Will.Be.Exported.To.The.Destination={space;}driver(s) will be exported to the destination +Exporting.Driver.File=Exporting driver file{space;} +Getting.Image.Drivers=Getting image drivers... +Importing.Third.Party.Drivers=Importing third party drivers... +Driver.Import.Source.Windows.Image=- Driver import source: Windows image ( +Driver.Import.Source.Active.Installation=- Driver import source: active installation +Driver.Import.Source.Offline.Installation=- Driver import source: offline installation ( +Creating.Temporary.Folder.For.Driver.Exports=Creating temporary folder for driver exports... +The.Temporary.Folder.Could.Not.Be.Created.See=The temporary folder could not be created. See below for reasons why: +Exporting.Third.Party.Drivers.From.Import.Source=Exporting third-party drivers from import source... +Importing.Third.Party.Drivers.From.The.Temporary.Export=Importing third-party drivers from the temporary export directory to the destination image... +Deleting.Temporary.Export.Directory=Deleting temporary export directory... +We.Couldn.T.Delete.The.Temporary.Export.Directory=We couldn't delete the temporary export directory. You'll need to delete the{space;} +Export.Temp=export_temp +Directory.Manually={space;}directory manually. +Published.Name=- Published name:{space;} +Provider.Name=- Provider name:{space;} +Class.Name=- Class name:{space;} +Class.Description=- Class description:{space;} +Class.GUID=- Class GUID:{space;} +Version.And.Date=- Version and date:{space;} +Is.Part.Of.The.Windows.Distribution=- Is part of the Windows distribution?{space;} +Is.Critical.To.The.Boot.Process=- Is critical to the boot process?{space;} +Warning.This.Driver.Package.Is.Part.Of.The=Warning: this driver package is part of the Windows distribution. Some areas may no longer work after this driver has been removed +Warning.This.Driver.Package.Is.Critical.To.The=Warning: this driver package is critical to the boot process. The target image may no longer boot or work correctly after this driver has been removed +Applying.Unattended.Answer.File.Options=Applying unattended answer file. Options: +Unattended.Answer.File=- Unattended answer file:{space;} +Creating.Directories.And.Copying.Files=Creating directories and copying files... +The.Unattended.Answer.File.Has.Been.Successfully.Copied=The unattended answer file has been successfully copied. +Setting.The.Windows.PE.Target.Path=Setting the Windows PE target path... +New.Target.Path=- New target path:{space;} +Setting.The.Windows.PE.Scratch.Space=Setting the Windows PE scratch space... +New.Scratch.Space.Amount=- New scratch space amount:{space;} +Setting.The.Amount.Of.Days.An.Uninstall.Can=Setting the amount of days an uninstall can happen... +Number.Of.Days=Number of days:{space;} +Removing.The.Ability.To.Revert.To.An.Old=Removing the ability to revert to an old installation of Windows... +Preparing.Operating.System.Rollback=Preparing operating system rollback... +Converting.Image=Converting image... +Index.To.Convert=- Index to convert:{space;} +Image.Conversion.Mode.Windows.Imaging.WIM.Electronic.Software=- Image conversion mode: Windows Imaging (WIM) --> Electronic Software Distribution (ESD) +Image.Conversion.Mode.Electronic.Software.Distribution.ESD.Windows=- Image conversion mode: Electronic Software Distribution (ESD) --> Windows Imaging (WIM) +Merging.SWM.Files.Into.A.WIM.File=Merging SWM files into a WIM file... +Target.Index=- Target index:{space;} +Switching.Image.Indexes=Switching image indexes... +Target.Mount.Directory=- Target mount directory:{space;} +Target.Image.Index=- Target image index:{space;} +Commit.Source.Index.Yes=- Commit source index? Yes +Commit.Source.Index.No=- Commit source index? No +Could.Not.Commit.Changes.To.The.Image.Discarding=Could not commit changes to the image. Discarding changes... +Mounting.Image.Index=Mounting image (index:{space;} +Replacing.FFU.File=Replacing FFU file{space;} +With={space;}with{space;} +The.FFU.File.Has.Been.Successfully.Replaced=The FFU file has been successfully replaced. +The.FFU.File.Could.Not.Be.Replaced=The FFU file could not be replaced:{space;} +Warning.The.Contents.Of.The.Log.Window.Could=Warning: the contents of the log window could not be saved to the log file. Reason:{space;} +The.Volume.Images.Have.Been.Deleted.If.You=The volume images have been deleted. If you want to remount this image into a DISMTools project, choose the{space;} +Mount.Image=Mount image +Option.Or.Use.This.Command.If.You.Want={space;}option, or use this command if you want to mount it elsewhere: +DISM.Mount.Image.Imagefile={space;}{space;}dism /mount-image /imagefile: +Index.Preferred.Index.Mountdir.Preferred.Mountpoint={space;}/index: /mountdir: +The.Specified.Image.Is.Already.Mounted.This.Command=The specified image is already mounted. This command works for{space;} +Orphaned=orphaned +Images={space;}images +The.Program.Tried.To.Save.Changes.To.An=The program tried to save changes to an image that was mounted as read-only.{space;} +To.Solve.This.Close.This.Dialog.And.Click=To solve this, close this dialog, and click{space;} +Tools.Remount.Image.With.Write.Permissions=Tools > Remount image with write permissions +Do.Note.That.If.The.Image.Came.From=Do note that, if the image came from an installation medium, you may need to copy the source file to perform modifications to it. +The.Program.Tried.To.Unmount.The.Image.But=The program tried to unmount the image, but some applications or processes have opened files or directories of the image. +Make.Sure.No.Application.Or.Process.Is.Using=Make sure no application or process is using the directories or files of the image. +If.The.Error.Occurred.At.The.End.Of=If the error occurred at the end of the operation (e.g., at 100%), and you were trying to save the changes; they might already be saved, and can be safe to continue discarding changes. +The.Mounted.Image.Cannot.Be.Committed.Back.Into=The mounted image cannot be committed back into the source file. +A.Partial.Unmount.Might.Have.Happened.Or.The=A partial unmount might have happened, or the image was still being mounted. +If.The.Image.Was.Unmounted.Whilst.Saving.Changes=If the image was unmounted whilst saving changes, the commit probably succeeded. Please validate this. If this is the case, proceed with unmounting the image discarding changes. +The.Source.File.Comes.From.A.Read.Only=The source file comes from a read-only source. You cannot mount it with read-write permissions. +Please.Re.Specify.The.Image.In.The.Mount=Please re-specify the image in the mount dialog whilst checking the{space;} +Read.Only=Sola lettura +Check.Box.You.Can.Also.Try.Copying.The={space;}check box. You can also try copying the source image to a folder with read-write permissions. +There.Is.Essential.Data.That.Was.Not.Picked=There is essential data that was not picked internally by the operation. This may be a bug in the software or a feature may be incomplete. +No.Packages.Have.Been.Added.Successfully.Try.Looking=No packages have been added successfully. Try looking up the error codes on the Internet +No.Packages.Have.Been.Removed.Successfully.Try.Looking=No packages have been removed successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Enabled.Successfully.Try.Looking=No features have been enabled successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Disabled.Successfully.Try.Looking=No features have been disabled successfully. Try looking up the error codes on the Internet +Either.This.Operation.Has.Failed.Or.Some.Drivers=Either this operation has failed or some drivers were not installed. Consider reloading this project or mode to see whether there are driver changes. +If.There.Are.Driver.Changes.Consider.Reading.The=If there are driver changes, consider reading the driver installation logs, stored in the INF directory of the target image. Otherwise, export the drivers you want to add from the source image and add them to the target image manually. +You.Can.Also.Manually.Customize.The.Export.Directory=You can also manually customize the export directory by deleting the drivers you don't need. This may be another way to fix this problem, but you will need to temporarily pause the driver addition procedure before it scans the export directory (this can be done by selecting anything from the DISM command prompt window that appears when performing an operation) +The.Program.Has.Suffered.A.Keyboard.Interrupt.Or=The program has suffered a keyboard interrupt, or a forced program closure. The operation has been cancelled. If you have done it accidentally, you may run it again +The.Microsoft.Edge.Components.Have.Already.Been.Installed=The Microsoft Edge components have already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.Browser.Has.Already.Been.Installed=The Microsoft Edge browser has already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.WebView2.Component.Has.Already.Been=The Microsoft Edge WebView2 component has already been installed in this image. There isn't anything to do here. +The.Operation.Could.Not.Be.Performed.Because.This=The operation could not be performed because this image has pending online operations. Applying and booting up the image might fix this issue. +The.Rollback.Process.Has.Started.Your.System.Needs=The rollback process has started. Your system needs to be restarted in order to continue. It will restart automatically in 10 seconds. Make sure you have saved your work. +The.Specified.Operation.Completed.Successfully.But.Requires.A=The specified operation completed successfully, but requires a restart in order to be fully applied. Save your work and restart when ready +This.Error.Has.Not.Yet.Been.Added.To=This error has not yet been added to the database, so a useful description can't be shown now. Try running the command manually and, if you see the same error, try looking it up on the Internet. +For.Detailed.Information.Consider.Reading.The.DISM.Operation=For detailed information, consider reading the DISM operation logs. +Cancelling.Background.Processes=Annullamento dei processi in background... +The.Image.Registry.Hives.Need.To.Be.Unloaded=The image registry hives need to be unloaded before continuing to perform the task. +System.Editor.Was.Not.Found=System editor was not found +The.Log.File.Was.Not.Found=The log file was not found diff --git a/language/pt-PT.ini b/language/pt-PT.ini new file mode 100644 index 000000000..da39be01b --- /dev/null +++ b/language/pt-PT.ini @@ -0,0 +1,6916 @@ +[LanguageFileInformation] +LanguageAuthor=DISMTools +LanguageCode=pt-PT +LanguageName=Português + +[ADDSJoinDialog.ChangePage] +Finish.Label=Concluir +Next.Button=Seguinte + +[DomainJoin.DNS] +Site.Local.Address.Label=- {0} -- Endereço Site-Local; já não é utilizado +MalformedAddress.Label=- {0} -- Endereço malformado +AddressSyntax.Message=Resultados da validação da sintaxe de endereços:{crlf;}- Endereços inválidos: {0}{crlf;}- Endereços IPv4: {1}{crlf;}- Endereços IPv6 globais: {2}{crlf;}- Endereços IPv6 Link-Local: {3}{crlf;}- Endereços IPv6 Unique Local: {4}{crlf;}{crlf;}- Proporção válidos/inválidos: {5}%{crlf;}{6}{crlf;}Estes endereços serão configurados no ficheiro de resposta autónoma. +InvalidAddresses.Label={crlf;}Alguns endereços são inválidos. Motivo: {crlf;}{crlf;}{0}{crlf;} +AddressValidation.Title=Resultados da validação de endereços DNS +Verification.Done.Label=A verificação foi concluída. +Verification.Done.Message=A verificação foi concluída.{crlf;}{crlf;}{0} + +[DomainJoin.Messages] +PrimarySuffix.Required=Tem de ser fornecido um sufixo de domínio principal para DNS +InterfaceAlias.Message=Tem de ser fornecido um alias de interface para DNS. Estes são os nomes dos adaptadores de rede instalados no sistema +No.DNSServer.None.Label=Não foram fornecidos endereços de servidores DNS +DomainName.Label=Tem de ser especificado um nome de domínio +User.Name.Label=Tem de ser especificado um nome de utilizador +Password.User.Message=Tem de ser especificada uma palavra-passe para o utilizador indicado, {quot;}{0}{quot;}, de acordo com as políticas de segurança impostas pelo controlador de domínio. +User.Appear.Exist.Message=O utilizador indicado, {0}, não parece existir no domínio fornecido. Poderá não conseguir iniciar sessão com este utilizador a menos que o crie primeiro.{crlf;}{crlf;}Pretende continuar? +Verify.Typed.Message=Verifique as informações que introduziu. Se um campo tiver sido escrito incorretamente, o dispositivo cliente poderá não aderir ao domínio.{crlf;}{crlf;}O dispositivo cliente também não irá aderir ao domínio se executar edições Home do Windows.{crlf;}{crlf;}Tem a certeza de que estas definições estão corretas? +VerifySettings.Title=Verificar definições +Domain.Settings.Message=As definições do domínio foram adicionadas com êxito ao ficheiro de resposta. Pode modificar estes componentes na secção Componentes do sistema. +Add.Domain.Settings.Label=Não foi possível adicionar as definições do domínio. +Dnsshort.DomainName.Message=DNS, abreviatura de Domain Name System, é uma função de servidor que traduz automaticamente endereços IP para nomes legíveis.{crlf;}{crlf;}Ao utilizar este assistente, o DISMTools assume que o DNS foi configurado na rede por si ou pelo administrador do sistema. Caso contrário, cancele este assistente e configure-o. +UserDisabled.Message=O utilizador selecionado não está ativado no domínio. Não conseguirá iniciar sessão nos dispositivos de destino a menos que seja reativado. +AccountDisabled.Title=Conta desativada +Computer.Belong.Domain.Label=Este computador não pertence a um domínio. +Provide.Domain.Label=Forneça um domínio para testar a resolução de nomes de domínio. +Nslookupoutput.Label=Saída do NSLOOKUP:{crlf;}{crlf;}{0} +DomainResolution.Title=Resultados da resolução de nomes de domínio + +[ActiveInstallWarn] +Active.Install.Label=Acerca da gestão da instalação ativa + +[ActiveInstall] +Enter.Online.Message=Está prestes a entrar no modo de gestão da instalação online, que lhe permite efetuar alterações à sua instalação ativa do Windows.{crlf;}{crlf;}Dado que este modo permite-lhe modificar a sua instalação, deve ser extremamente cuidadoso ao executar tarefas com este programa.{crlf;}{crlf;}Se efetuar uma operação descuidada numa imagem online, pode quebrá-la, ao ponto de tornar a instalação impossível de arrancar.{crlf;}{crlf;}NÃO NOS RESPONSABILIZAMOS por qualquer dano causado à sua instalação ativa. Se ficar com um sistema não arrancável, deve reinstalar o Windows (fazendo primeiro uma cópia de segurança dos seus ficheiros, se possível) +ProjectUnloaded.Label=O projeto atual será descarregado. +Continue.Button=Continuar +Cancel.Button=Cancelar + +[AddCapabilities] +AddCapabilities.Label=Adicionar capacidades +Image.Task.Header.Label={0} +Source.Label=Origem: +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Navegar... +SelectAll.Button=Selecionar tudo +SelectNone.Button=Não selecionar nenhum +Detect.Group.Policy.Button=Detetar a partir da política de grupo +Capabilities.Group=Capacidades +Options.Group=Opções +DifferentSource.CheckBox=Especificar uma origem diferente para as instalações de capacidades +WindowsUpdate.CheckBox=Limitar o acesso ao Windows Update +Capability.Column=Capacidade +State.Column=Estado + +[AddCaps.AddCap] +CommitImage.CheckBox=Confirmar imagem depois de adicionar capacidades + +[AddCapabilities.Initialize] +UnsupportedImage.Message=Esta ação não é suportada nesta imagem + +[AddCapabilities.Validation] +SourceRequired.Message=Algumas capacidades nesta imagem requerem a especificação de uma fonte para serem activadas. A fonte especificada não é válida para esta operação. +Source.Required.Message=Especifique uma fonte válida e tente novamente. +Source.Message=Certifique-se de que a fonte existe no sistema de ficheiros e tente novamente. +Source.Exist.File.Message=A origem especificada não existe no sistema de ficheiros. Certifique-se de que existe e tente novamente. +Source.Required.No.Message=Não existe uma origem especificada. Especifique uma fonte e tente novamente. +Selected.None.Message=Não existem quaisquer capacidades seleccionadas para instalar. Por favor, seleccione algumas capacidades e tente novamente. + +[AddDrivers] +Folder.Label=Pasta +Title.Label=Adicionar controladores +Image.Task.Header.Label={0} +Drivers.Required.Message=Especifique os controladores a adicionar utilizando os botões abaixo ou colocando-os na lista abaixo: +Scan.Driver.Message=Pode deixar o programa procurar recursivamente as pastas de controladores presentes na lista abaixo e adicioná-las também. Para o fazer, assinale as entradas que pretende que sejam verificadas: +Ok.Button=OK +Cancel.Button=Cancelar +AddFile.Button=Adicionar ficheiro... +AddFolder.Button=Adicionar pasta... +Remove.Entries.Button=Remover todos os registos +Remove.Selected.Entry.Button=Remover entrada selecionada +Force.Install.CheckBox=Forçar a instalação de controladores não assinados +CommitImage.CheckBox=Confirmar imagem após adicionar controladores +DriverFiles.Group=Ficheiros de controladores +DriverFolders.Group=Pastas de controladores +Options.Group=Opções +FileFolder.Column=Ficheiro/Pasta +Type.Column=Tipo +DriverPackage.Title=Especificar o pacote de controladores a adicionar +DriverFolder.Description=Especificar a pasta que contém os pacotes de controladores. Poderá então especificar se é necessário efetuar uma verificação recursiva: + +[AddDrivers.Actions] +Package.Folder.Message=O pacote especificado é uma pasta. Pode deixar que o DISM a analise recursivamente para adicionar todos os controladores nela contidos, ou pode especificar os controladores a adicionar manualmente.{crlf;}{crlf;}- Para permitir que o DISM verifique esta pasta recursivamente, clique em Sim{crlf;}- Para escolher manualmente os controladores desta pasta, clique em Não{crlf;}- Para não adicionar esta pasta, clique em Cancelar +Packages.None.Message=Não existem pacotes de controladores na pasta especificada + +[AddDrivers.DragDrop] +Package.Folder.Message=O pacote especificado é uma pasta. Pode deixar que o DISM a analise recursivamente para adicionar todos os controladores nela contidos, ou pode especificar os controladores a adicionar manualmente.{crlf;}{crlf;}- Para permitir que o DISM verifique esta pasta recursivamente, clique em Sim{crlf;}- Para escolher manualmente os controladores desta pasta, clique em Não{crlf;}- Para não adicionar esta pasta, clique em Cancelar +Folder.Label=Pasta +File.Item=Ficheiro + +[AddDrivers.FileOk] +File.Label=Ficheiro + +[AddDrivers.Validation] +DriverPackages.None.Message=Não existem pacotes de controladores seleccionados para instalar. Especifique os pacotes de controladores que gostaria de instalar e tente novamente. + +[AddListEntry] +Entry.Label=Entrada: +Browse.Button=Navegar... +Ok.Button=OK +Cancel.Button=Cancelar + +[AddPackage] +AddPackages.Label=Adicionar pacotes +PackageSource.Label=Origem do pacote: +PackageOperation.Label=Operação do pacote: +Browse.Button=Procurar... +SelectAll.Button=Selecionar tudo +SelectNone.Button=Não selecionar nenhum +Update.Manifest.Button=Adicionar manifesto de atualização... +Cancel.Button=Cancelar +Ok.Button=OK +Packages.Choose.RadioButton=Escolher quais os pacotes a adicionar: +Ignore.CheckBox=Ignorar verificações de aplicabilidade (não recomendado) +CommitImage.CheckBox=Confirmar imagem depois de adicionar pacotes +Packages.Group=Pacotes +Options.Group=Opções +Dir.CAB.Required.Label=Especifique um diretório onde estão localizados os ficheiros CAB ou MSU. +CabFolder.Description=Especificar a pasta que contém os pacotes CAB ou MSU: + +[AddPkg] +ScanRecursive.RadioButton=Procurar pacotes na pasta de forma recursiva +Skip.Online.Install.CheckBox=Ignorar a instalação de pacotes se estiverem pendentes operações online + +[AddPackage.CountItems] +Folder.Contain.Label=Esta pasta não contém quaisquer pacotes. Utilize uma origem diferente e tente novamente +Folder.Contains.Label=Esta pasta contém {0} pacote. +Folder.Packages.Label=Esta pasta contém {0} pacotes. + +[AddPackage.GatherPackages] +Scanning.Dir.Label=A analisar o diretório em busca de pacotes. Aguarde... + +[AddPackage.Validation] +Packages.Message=Por favor, seleccione os pacotes a adicionar e tente novamente. Também pode continuar a deixar o DISM verificar os pacotes aplicáveis +PackagesSelected.Title=Nenhum pacote selecionado + +[AppxProvision] +Add.Prov.Item=Adicionar pacotes AppX provisionados +Packages.Required.Message=Adicione pacotes AppX embalados ou descompactados utilizando os botões abaixo, ou largando-os na vista de lista abaixo: +Package.Message=Um pacote AppX pode precisar de algumas dependências para ser instalado corretamente. Se assim for, pode especificar uma lista de dependências agora: +StubPreference.Item=Preferência de pacote de stub: +Multiple.App.Regions.Item=Para especificar várias regiões de aplicação, separe-as com um ponto e vírgula (;) +Entry.List.View.Message=Seleccione uma entrada na vista de lista para mostrar os detalhes de uma aplicação e para configurar definições adicionais +AddFile.Item=Adicionar ficheiro +AddFolder.Item=Adicionar pasta +Remove.Entries.Item=Remover todas as entradas +Remove.Dependencies.Item=Remover todas as dependências +RemoveDependency.Item=Remover dependência +AddDependency.Item=Adicionar dependência... +Browse.Button=Navegar... +Remove.Selected.Entry.Item=Remover entrada selecionada +Cancel.Button=Cancelar +Ok.Button=OK +CustomDataFile.Item=Ficheiro de dados personalizado: +CommitImage.Item=Confirmar imagem depois de adicionar pacotes AppX +CustomData.File.Title=Especificar um ficheiro de dados personalizado +AppxDependencies.Item=Dependências AppX +AppxRegions.Item=Regiões da AppX +LicenseFile.Title=Especificar um ficheiro de licença +App.Regions.Form.Message=As regiões da aplicação têm de estar na forma de códigos ISO 3166-1 Alpha 2 ou Alpha-3. Para saber mais sobre estes códigos, clique aqui +Help.Link=clique aqui +FileFolder.Column=Ficheiro/Pasta +Type.Column=Tipo +ApplicationName.Column=Nome da aplicação +App.Publisher.Column=Editor da aplicação +App.Version.Column=Versão da aplicação +LicenseFile.CheckBox=Ficheiro de licença: +App.Available.CheckBox=Tornar a aplicação disponível para todas as regiões +Configure.Stub.Item=Não configurar preferência de stub +Publisher.Label=Editora: {0} +Version.Label=Versão: {0} +Preview.Label=Pré-visualização +Folder.Required.Description=Especifique uma pasta que contenha ficheiros AppX descompactados: +Install.Stub.Package.Item=Instalar a aplicação como um pacote de stub +Install.Full.Package.Item=Instalar a aplicação como um pacote completo + +[AppxProvision.MultiSelect] +Selection.Label=Seleção múltipla +CommonProps.Label=Ver as propriedades comuns de todas as aplicações seleccionadas + +[AppxProvision.DragDrop] +Dir.Contains.App.Message=O seguinte diretório:{crlf;}{quot;}{0}{quot;}{crlf;}contém pacotes de aplicações. Deseja processá-los também?{crlf;}{crlf;}NOTA: esta operação irá analisar este diretório recursivamente, pelo que poderá demorar mais tempo a ser concluída +File.Dropped.Isn.Message=O ficheiro que foi deixado aqui não é um pacote de aplicações. +Add.Prov.Title=Adicionar pacotes AppX provisionados + +[AppxProvision.StoreLogo] +ReadFailed.Message=Não foi possível obter os activos do logótipo da loja de aplicações deste pacote - não é possível ler do manifesto +Add.Title=Adicionar pacotes AppX provisionados + +[AppxProvision.Init] +UnsupportedImage.Message=Esta ação não é suportada nesta imagem + +[AppxProvision.Scan] +Unpacked.Encrypted.Label=Desembalado (Encriptado) +PackedEncrypted.Label=Embalado (Encriptado) +Unpacked.Encrypted.Item=Desembalado (Encriptado) +Encrypted.App.Label=Aplicação encriptada +ListItem.Label=Aplicação encriptada +PackedEncrypted.Item=Embalado (Encriptado) +Package.Encrypted.Message=O pacote:{crlf;}{crlf;}{0}{crlf;}{crlf;}é um pacote de aplicações encriptadas. Nem o DISMTools nem o DISM suportam a adição destes tipos de aplicações. Se quiser adicioná-lo, pode fazê-lo depois de a imagem ser aplicada e inicializada. +Folder.Message=Esta pasta não parece conter uma estrutura de pacotes AppX. Não será adicionada à lista +Add.Title=Adicionar pacotes AppX provisionados +Package.Add.Message=O pacote que pretende adicionar já foi adicionado à lista e todas as suas propriedades coincidem com as propriedades do pacote especificado. Não vamos adicionar o pacote especificado +Unpacked.Item=Desembalado +Packed.Item=Embalado +Package.Already.Message=O pacote que pretende adicionar já foi adicionado à lista, mas contém uma versão mais recente.{crlf;}{crlf;}Pretende substituir a entrada na lista pelo pacote atualizado especificado? +ItemSub.Item=Desembalado +ListItem.Item=Desembalado +Package.Added.Message=O pacote que pretende adicionar já foi adicionado à lista, mas vem de um programador ou editor diferente.{crlf;}{crlf;}Tenha em atenção que as aplicações redistribuídas por programadores ou editores terceiros podem causar danos na imagem do Windows.{crlf;}{crlf;}Pretende substituir a entrada na lista pelo pacote especificado? + +[AppxProvision.Tooltip] +TempStoreassets.Label=\temp\storeassets\ +Logo.Assets.File.Label=Não foi possível detetar os activos do logótipo para este ficheiro +Enlarge.View.Label=Clique aqui para ampliar a vista +Logo.Assets.File.Item=Não foi possível detetar os activos do logótipo para este ficheiro + +[AppxProvision.Validation] +Packages.Required.Message=Especifique pacotes AppX embalados ou não embalados e tente novamente. +Add.Prov.Title=Adicionar pacotes AppX provisionados +LicenseFile.Required.Message=Por favor, especifique um ficheiro de licença e tente novamente. Também pode continuar sem um, mas isso pode comprometer a imagem. +LicenseNotFound.Message=O ficheiro de licença especificado não foi encontrado. Certifique-se de que existe no local especificado e tente novamente. +CustomData.Required.Message=Especifique um ficheiro de dados personalizado e tente novamente. Também pode continuar sem um. +CustomData.File.Message=O ficheiro de dados personalizado especificado não foi encontrado. Certifique-se de que existe na localização especificada e tente novamente. + +[ProvPackage] +Add.Packages.Label=Adicionar pacotes de aprovisionamento +Image.Task.Header.Label={0} +PackagePath.Label=Localização do pacote: +Action.Treverted.Add.Message=Esta ação não pode ser revertida. Depois de adicionar um pacote de aprovisionamento, não o poderá remover da sua imagem do Windows. +CatalogPath.Label=Localização do catálogo: +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Navegar... +CommitImage.CheckBox=Confirmar imagem após adicionar este pacote de provisionamento + +[ProvPackage.Validation] +PackageNotFound.Message=O pacote de provisionamento especificado não existe. Certifique-se de que existe no sistema de ficheiros e tente novamente. +CatalogNotFound.Message=O ficheiro de catálogo especificado não existe. Não utilizaremos este ficheiro se prosseguir.{crlf;}{crlf;}Deseja continuar? +PackageRequired.Message=Não foi especificado nenhum pacote de aprovisionamento. Especifique um pacote de provisionamento para adicionar e tente novamente. + +[AppInstaller] +DownloadPackage.Button=Descarregando o pacote da aplicação... +Wait.Message=Aguarde enquanto o DISMTools baixa o pacote de aplicativos para adicioná-lo a esta imagem. Isso pode levar algum tempo, dependendo da velocidade da conexão de rede. +StatusLbl.Label=Aguarde... +TransferDetails.Group=Detalhes da transferência +DownloadURL.Label=URL de transferência: +DownloadSpeed.Label=Velocidade de transferência: desconhecida +Cancel.Button=Cancelar +Wait.Label=Aguarde... +EtaUnknown.Label=Tempo estimado restante: desconhecido + +[AppInstaller.Error] +DownloadFailed.Message=Ocorreu um erro ao baixar o arquivo: {0} + +[AppInstaller.Progress] +MainPackage.Label=Descarregar o pacote da aplicação principal... ({0} de {1} descarregados) + +[AppInstaller.Status] +DownloadSpeed.Label=Velocidade de transferência: {0}/s +EtaSeconds.Label=Tempo restante estimado: {0} segundos + +[AppDrive] +Bytes.Label=bytes (~ +Target.Disk.Button=Especificar o disco de destino... +Refresh.Button=Atualizar +Ok.Button=OK +Cancel.Button=Cancelar +DeviceID.Column=ID do dispositivo +Model.Column=Modelo +Partitions.Column=Partições +Size.Column=Tamanho +Destination.Disk.Id.Label=ID do disco de destino (\\.\PHYSICALDRIVE(n)): + +[ApplyUnattend] +UnattendAnswer.File.Label=Aplicar ficheiro de resposta não assistida +Image.Task.Header.Label={0} +AnswerFile.Label=Ficheiro de resposta: +Browse.Button=Procurar... +Ok.Button=OK +Cancel.Button=Cancelar + +[ApplyUnattend.Validation] +AnswerFile.Choose.Message=Ou não foi especificado nenhum ficheiro de resposta não assistida ou o ficheiro especificado não existe. Verifique se ele existe e tente novamente. + +[AutoReload] +Wait.Message=Aguarde enquanto o DISMTools recarrega a sessão de manutenção de imagens órfãs. Isso pode levar algum tempo. Uma vez concluído, esta caixa de diálogo será fechada. +ImageFile.Label=Ficheiro de imagem: +Image.Mount.Point.Label=Ponto de montagem da imagem: +ImageInfo.Group=Informações sobre a imagem + +[AutoReload.Bg] +ReloadSucceeded.Message=Recarregando imagem montada... (bem-sucedido: {0}, falhou: {1}, ignorado: {2}) + +[AutoReload.Background] +ProcessCompleted.Message=Este processo foi concluído + +[AutoReload.Progress] +Preparing.Images.Label=A preparar o recarregamento de imagens... + +[ActiveDirectory.DnsZone] +SelectZone.Message=Please select a DNS zone and try again. +Selected.Too.Long.Message=The selected DNS zone is no longer active because of either an expiration or a shut down. Choose another zone and try again. +ZonesLoaded.Message=DNS zones could not be obtained. + +[BGProcDetails.VisibleChanged] +Gathering.Image.Label=A recolher informação sobre a imagem... +Processes.Take.Time.Label=Estes processos podem demorar algum tempo a concluir + +[BGProcNotify] +Project.Loaded.Done.Label=Este projeto foi carregado com sucesso +Gathering.Image.Label=O programa está agora a recolher informações sobre a imagem em segundo plano. Isto pode demorar algum tempo + +[BgProcs.Settings] +Advanced.Process.Label=Configurações avançadas de processos em segundo plano +Additional.Label=Configurar definições adicionais para processos em segundo plano: + +[BgProcesses] +SkipNonRemovable.CheckBox=Ignorar pacotes com políticas não removíveis definidas +DetectAllDrivers.CheckBox=Detetar todos os controladores de imagem +Skip.Framework.CheckBox=Ignorar pacotes de estrutura e removê-los das listagens se tiverem sido detectados +Run.CheckBox=Executar todos os processos em segundo plano depois de executar uma tarefa +Ok.Button=OK +Cancel.Button=Cancelar +Enhance.App.Detect.Message=Melhorar a deteção de todos os pacotes AppX instalados de uma instalação ativa com ajudantes do PowerShell + +[BgProcesses.Validation] +DetectDrivers.Message=O programa irá agora detetar os controladores da imagem de acordo com as opções que especificou. Isto pode demorar algum tempo. + +[BG.Procs] +Re.Still.Gathering.Label=Ainda estamos a recolher informações sobre a imagem +Finish.Process.Begin.Message=Quando terminarmos este processo, pode começar a executar tarefas de imagem. Normalmente, isto demora alguns minutos, mas pode depender da imagem e da velocidade do seu computador.{crlf;}{crlf;}Pode verificar o estado deste processo em segundo plano a qualquer momento, clicando no ícone no canto inferior esquerdo. +Ok.Button=OK + +[Casters.Applicability] +Yes.Button=Sim +No.Button=Não + +[Casters.DISMArchitecture] +Unknown.Label=Desconhecido +Neutral.Label=Neutro + +[Casters.Cast.DISM] +Present.Label=Não presente +DisablePending.Label=Desativação pendente +Staged.Label=Desativado +Removed.Label=Removido +Installed.Label=Ativado +EnablePending.Label=Ativação pendente +Superseded.Label=Substituído +Partially.Installed.Label=Parcialmente instalado +UninstallPending.Label=Desinstalação pendente +Uninstalled.Label=Desinstalado +InstallPending.Label=Instalação pendente +CriticalUpdate.Label=Atualização crítica +Driver.Label=Controlador +FeaturePack.Label=Pacote de características +Foundation.Package.Label=Pacote de fundação +Hotfix.Label=Correção +LanguagePack.Label=Pacote de idiomas +LocalPack.Label=Pacote local +DemandPack.Label=Pacote de capacidades +Other.Label=Outros +Product.Label=Produto +SecurityUpdate.Label=Atualização de segurança +ServicePack.Label=Service Pack +SoftwareUpdate.Label=Atualização do software +Update.Label=Atualização +UpdateRollup.Label=Atualização cumulativa +NotRequired.Label=Não é necessário reiniciar +May.Required.Label=Poderá ser necessário um reinício +Required.Label=É necessário um reinício + +[Casters.OfflineInstall] +FullyOffline.Message=Poderá ser necessário um arranque para a imagem de destino para instalar completamente este pacote + +[Casters.SignatureStatus] +Unknown.Label=Desconhecido +UnsignedValidity.Message=Não assinado. Verifique a validade e a data de expiração do certificado de assinatura +Signed.Label=Assinado + +[Casters.CastDriveType] +Fixed.Label=Fixo +Network.Label=Rede +Removable.Label=Removível +Unknown.Label=Desconhecido + +[HttpServer.Messages] +Root.Dir.Exist.Message=Root directory {quot;}{0}{quot;} does not exist in the file system. The server cannot be started. +TourServer.Label=Tour Server + +[ThemeDesigner.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[Designer.ActiveInstall] +Continue.Button=Continue +Cancel.Button=Cancelar +Enter.Online.Message=You are about to enter the online installation management mode, which lets you perform changes to your active Windows installation.{crlf;}{crlf;}Given that this mode lets you modify your installation, you should be extremely careful when performing tasks with this program.{crlf;}{crlf;}If you carelessly perform an operation to an online image, you may break it, to the point of making the installation unbootable.{crlf;}{crlf;}We AREN'T RESPONSIBLE for any damage done to your active installation. If you are left with an unbootable system, you should re-install Windows (while backing up your files first, if possible) +ProjectUnloaded.Label=The current project will be unloaded. +Active.Install.Label=About active installation management + +[Designer.AddCapabilities] +Ok.Button=OK +Cancel.Button=Cancelar +Capabilities.Group=Capacidades +SelectAll.Button=Select all +SelectNone.Button=Select none +Capability.Column=Capability +State.Column=Estado +Options.Group=Opções +Browse.Button=Procurar... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +DifferentSource.CheckBox=Specify different source for capability installs +Detect.Group.Policy.Button=Detect from group policy +SourceHint.Description=Specify the source to use for capability addition: +AddCapabilities.Label=Add capabilities + +[Designer.AddCaps] +CommitImage.CheckBox=Commit image after adding capabilities + +[Designer.AddDrivers] +Ok.Button=OK +Cancel.Button=Cancelar +DriverFiles.Group=Driver files +Drivers.Required.Message=Please specify the drivers to add by using the buttons below or by dropping them to the list below: +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Tipo +DriverFolders.Group=Driver folders +Scan.Driver.Message=You can let the program scan the driver folders present on the list below recursively and add them as well. To do so, tick the entries you'd like to be scanned: +Options.Group=Opções +CommitImage.CheckBox=Commit image after adding drivers +Force.Install.CheckBox=Force installation of unsigned drivers +Driver.Files.Inf.Filter=Driver files|*.inf +DriverPackage.Title=Specify the driver package to add +DriverFolder.Description=Specify the folder containing driver packages. You will then be able to specify if it needs to be scanned recursively: +AddDrivers.Label=Add drivers + +[Designer.AddEdgeBrowser] +Ok.Button=OK +Cancel.Button=Cancelar +Microsoft.Label=Add Microsoft Edge Browser + +[Designer.AddEdgeFull] +Ok.Button=OK +Cancel.Button=Cancelar +Microsoft.Label=Add Microsoft Edge + +[Designer.Add.Edge] +Ok.Button=OK +Cancel.Button=Cancelar +Microsoft.Web.Label=Add Microsoft Edge WebView + +[Designer.Add.List] +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Procurar... +Entry.Label=Entry: +AllFiles.Filter=All files|*.* +AddEntry.Label=Add entry + +[Designer.AddPackage] +Ok.Button=OK +Cancel.Button=Cancelar +Packages.Group=Pacotes +Folder.Contains.Pkgnum.Label=This folder contains packages. +SelectAll.Button=Select all +SelectNone.Button=Select none +Packages.Choose.RadioButton=Choose which packages to add: +Browse.Button=Procurar... +PackageOperation.Label=Package operation: +PackageSource.Label=Package source: +Options.Group=Opções +Save.Image.Packages.CheckBox=Save image after adding packages +Ignore.CheckBox=Ignore applicability checks (not recommended) +Update.Manifest.Button=Add update manifest... +AddPackages.Label=Add packages +CabFolder.Description=Specify the folder containing CAB or MSU packages: + +[Designer.AddPkg] +ScanRecursive.RadioButton=Scan folder recursively for packages +Skip.Online.Install.CheckBox=Skip package installation if online operations are pending + +[Designer.AppxProvision] +Ok.Button=OK +Cancel.Button=Cancelar +Entry.List.View.Message=Select an entry in the list view to show the details of an app and to configure addition settings +AppxVersion.Label=AppxVersion +AppxPublisher.Label=AppxPublisher +AppxTitle.Label=AppxTitle +Remove.Selected.Entry.Button=Remove selected entry +Remove.Entries.Button=Remove all entries +AddFolder.Button=Add folder... +AddFile.Button=Add file... +FileFolder.Column=File/Folder +Type.Column=Tipo +ApplicationName.Column=Application name +App.Publisher.Column=Application publisher +App.Version.Column=Application version +Packages.Required.Message=Please add packed or unpacked AppX packages by using the buttons below, or by dropping them to the list view below: +AppxDependencies.Group=AppX dependencies +Remove.Dependencies.Button=Remove all dependencies +RemoveDependency.Button=Remove dependency +AddDependency.Button=Add dependency... +Package.Message=An AppX package may need some dependencies for it to be installed correctly. If so, you can specify a list of dependencies now: +CustomDataFile.CheckBox=Custom data file: +Browse.Button=Procurar... +AppxRegions.Group=AppX regions +App.Available.CheckBox=Make app available for all regions +App.Regions.Form.Message=App regions need to be in the form of ISO 3166-1 Alpha 2 or Alpha-3 codes. To learn more about these codes, click here +Multiple.App.Regions.Label=To specify multiple app regions, separate them with a semicolon (;) +CommitImage.CheckBox=Commit image after adding AppX packages +Files.Title=Specify the AppX files to add provisioning for +DependencyFiles.Filter=Dependency files|*.appx;*.msix +Xmllicenses.Filter=XML licenses|*.xml +LicenseFile.Title=Specify a license file +CustomData.Filter=All files|*.* +CustomData.File.Title=Specify a custom data file +LicenseFile.CheckBox=License file: +Configure.Stub.Item=Do not configure stub preference +StubPreference.Label=Stub preference: +Value.Button=... +Add.Prov.Label=Add provisioned AppX packages +MSIX.Packages.Filter=Applications|*.appx;*.appxbundle;*.msix;*.msixbundle|Application Installer package|*.appinstaller +Browse.Dependencies.Title=Browse for files applications depend on +Folder.Required.Description=Please specify a folder containing unpacked AppX files: +Install.Stub.Package.Item=Install application as a stub package +Install.Full.Package.Item=Install application as a full package + +[Designer.ProvPackage] +Ok.Button=OK +Cancel.Button=Cancelar +PackagePath.Label=Package path: +Browse.Button=Procurar... +Action.Treverted.Add.Message=This action can't be reverted. Once you add a provisioning package, you won't be able to remove it from your Windows image. +Package.Ppkg.Filter=Provisioning package|*.ppkg +CatalogPath.Label=Catalog path: +Catalog.File.Cat.Filter=Catalog file|*.cat +Add.Packages.Label=Add provisioning packages +CommitImage.CheckBox=Commit image after adding this provisioning package + +[Designer.DomainJoin] +DnstoolsBtn.Button=... +Nicsettings.Group=NIC Settings +Verify.DNS.Label=Verify DNS Address Syntax +Default.Adapter.Same.Message=By default, this adapter will use the same domain suffix you specified above. You can change it later +ManualAdapter.RadioButton=Specify a network adapter manually: +Address.First.Line.Message=The address in the first line will be the primary DNS server address, and any other addresses will become alternative server addresses. You can put both IPv4 and IPv6 addresses. +DNSServer.Addresses.Label=DNS Server Addresses (put each address in its own line): +PrimarySuffix.Label=Primary Domain Suffix: +InterfaceAlias.Label=Interface Alias: +Domain.Suffix.Added.Message=This domain suffix will be added to the list of DNS suffixes. You can add more to the list of suffixes later. +DNSSettings.Label=Configure DNS settings for network adapters +Type.Security.Account.Label=Type the Security Account Manager (SAM) name of the user account in the domain: +Organizational.Unit.Label=Organizational unit: +User.Label=User: +SAM.Account.Label=SAM account name of selected user object: +Org.Unit.Account.Message=If the desired account is not in any organizational unit, but rather in a container, or somewhere else; click the following button to pick it: +Pick.Account.Object.Button=Pick account object... +User.Manually.Item=Specify a user manually +Pick.User.Org.Item=Pick the following user from organizational units in my domain +Pick.User.Object.Item=Pick the following user object from anywhere in my domain +User.Principal.Name.Label=User Principal Name (Windows 2000): +Logon.Path.Pre.Label=Logon Path (pre-Windows 2000): +Domain.Auto.Detected.Message=A domain name could not be obtained automatically because this device does not belong to a domain. +Ask.Admin.Provide.Message=Contact your system administrator to provide authentication information used to join the domain. The account name specified here will be the initial account of the domain-joined system and it will pull initial group policies from the domain controller.{crlf;}{crlf;}To finish setting up target devices to join this domain, click Finish. +Password.Label=Password: +UserAccount.Label=User Account: +DomainName.Label=Domain Name: +Domain.Auth.Label=Provide domain and authentication information +Wizard.Helps.Set.Description=This wizard helps you set up your unattended answer file to make a device join a domain powered by Active Directory Domain Services (AD DS). +Join.Active.Dir.Label=Join an Active Directory domain +WhatDNS.Link=What is DNS? +Back.Button=Voltar +Next.Button=Next +Cancel.Button=Cancelar +Help.Button=Ajuda +Test.Dnsresolution.Label=Test DNS resolution +DNSZone.Domain.Choose.Label=Choose DNS zone... (domain controllers only) +Domain.Services.Wizard.Label=Domain Services Wizard +PickAdapter.RadioButton=Pick from a network adapter in this system: + +[Designer.AppInstaller] +Wait.Message=Please wait while DISMTools downloads the application package to add it to this image. This can take some time, depending on your network connection speed. +StatusLbl.Label=Estado +TransferDetails.Group=Transfer details +TimeRemaining.Label=Estimated time remaining: +DownloadSpeed.Label=Download speed: +DownloadURL.Label=Download URL: +Cancel.Button=Cancelar +Wait.Label=Aguarde... +CopyURI.Button=Copy +DownloadPackage.Button=Downloading application package... + +[Designer.AppDrive] +Ok.Button=OK +Cancel.Button=Cancelar +Refresh.Button=Atualizar +DeviceID.Column=Device ID +Model.Column=Model +Partitions.Column=Partitions +Size.Column=Tamanho +Target.Disk.Button=Specify target disk... +Destination.Disk.Id.Label=Destination disk ID (\\.\PHYSICALDRIVE(n)): + +[Designer.ApplyUnattend] +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Procurar... +AnswerFile.Label=Answer file: +Answer.Files.XML.Filter=Answer files|*.xml +Copy.AnswerFile.CheckBox=Copy answer file to image Sysprep directory +LeaveUnchecked.Message=Leave this option unchecked if you specify an answer file that causes conflicts with Sysprep if you enter audit mode. +UnattendAnswer.File.Label=Apply unattended answer file + +[Designer.AutoReloadForm] +Wait.Message=Please wait while DISMTools reloads the servicing session of orphaned images. This can take some time. Once complete, this dialog will close. +ImageInfo.Group=Informações da imagem +Image.Mount.Point.Label=Image mount point: +ImageFile.Label=Image file: +Wait.Label=Aguarde... +DISMTools.Label=DISMTools + +[Designer.BgprocDetails] +Gathering.Image.Label=Gathering image information... +InfoTask.Label= +Processes.Take.Time.Label=These processes may take some time to complete. +DISMTools.Label=DISMTools + +[Designer.BgprocFailure] +Ok.Button=OK +Run.Issues.Message=We have run into some issues while getting the information about this Windows image. This may be due to incompatibilities caused by this image and system components, by modifications to the image, or by program bugs.{crlf;}{crlf;}Please look at the list below to see which tasks failed and why: +Failed.Bg.Procs.Label=Failed background processes + +[Designer.BgprocNotify] +Project.Loaded.Done.Label=This project has been loaded successfully +Gathering.Image.Label=The program is now gathering image information in the background. This may take some time. + +[Designer.BgProcesses] +Okbutton.Button=OK +Cancel.Button=Cancelar +Enhance.App.Detect.CheckBox=Enhance detection of installed AppX packages of an active installation with PowerShell helpers +SkipNonRemovable.CheckBox=Skip packages with non-removable policies set +DetectAllDrivers.CheckBox=Detect all image drivers +Skip.Framework.CheckBox=Skip framework packages, and remove them from the listings if they were detected +Run.CheckBox=Run all background processes after performing a task + +[Designer.BgProcsSettings] +Additional.Label=Configure additional settings for background processes: +Advanced.Process.Label=Advanced background process settings + +[Designer.BgProcessesBusy] +Ok.Button=OK +Finish.Process.Begin.Message=Once we finish this process, you can begin performing image tasks. This usually takes a couple of minutes, but this can depend on the image and the speed of your computer.{crlf;}{crlf;}You can check the status of this background process at any time by clicking the icon on the bottom left. +Re.Still.Gathering.Label=We're still gathering image information +DISMTools.Label=DISMTools + +[Designer.CapabilityFilter] +Apply.Button=Aplicar +Clear.Button=Clear +Name.Label=Nome: +State.Label=Estado: +AnyState.Item=Any state +Installed.Item=Installed +Install.Pending.Item=Installation Pending +Removed.Item=Removed +FilterInfo.Prompt.Label=Filter capability information by: +FilterInfo.Title=Filter capability information + +[Designer.DISMComponents] +Ok.Button=OK +Component.Column=Component +Version.Column=Version +Dismcomponents.Label=DISM Components + +[Designer.DNSZones] +Ok.Button=OK +CancelButton.Button=Cancelar +OfferedZones.Message=This server offers the following DNS zones you can choose from. Pick a DNS zone from the list below and click OK: +ZoneName.Column=Zone Name +DnsserverName.Column=DNS Server Name +DomainServices.Column=Integrated with Domain Services? +ZoneType.Column=Zone Type +Refresh.Button=Atualizar +DNSZone.Choose.Label=Choose DNS Zone + +[Designer.DisableFeat] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Group=Opções +Lookup.Button=Lookup... +PackageName.Label=Nome do pacote: +Remove.Feature.CheckBox=Remove feature without removing manifest +ParentPackage.CheckBox=Specify parent package name for features +Features.Group=Funcionalidades +FeatureName.Column=Nome da funcionalidade +State.Column=Estado +DisableFeatures.Label=Disable features + +[Designer.DriverFileInfo] +Ok.Button=OK +Copy.Button=Copy +Property.Column=Property +Value.Column=Valor +Driver.File.Label=Information of driver file: +Driver.File.Label.Label=Driver file information + +[Designer.DriverFilter] +Apply.Button=Aplicar +Clear.Button=Clear +FilterPrompt.Label=Filter driver information by: +PublishedName.Item=Published Name +Original.File.Name.Item=Original File Name +ProviderName.Item=Provider Name +ClassName.Item=Class Name +InboxStatus.Item=Inbox Status +Boot.Critical.Status.Item=Boot-Critical Status +SignatureStatus.Item=Signature Status +Date.Item=Data +MonthName.Label=Month Name +Year.Item=Year +Month.Item=Month +Released.Item=Released on +NotReleased.Item=Not released on +ReleasedBefore.Item=Released before +ReleasedOnBefore.Item=Released on or before +ReleasedAfter.Item=Released after +ReleasedOnAfter.Item=Released on or after +Date.Label=Date: +Search.Signed.CheckBox=The drivers I'm searching for are signed +SignatureStatus.Label=Signature Status: +Search.BootCritical.CheckBox=The drivers I'm searching for are critical to the boot process +Boot.Critical.Status.Label=Boot-Critical Status: +Search.Inbox.CheckBox=The drivers I'm searching for are part of the Windows distribution +InboxStatus.Label=Inbox Status: +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +ProviderName.Label=Provider Name: +Original.File.Name.Label=Original File Name: +PublishedName.Label=Published Name: +Driver.Searches.Choose.Label=Choose a filter to use for driver searches. +Title=Filter driver information + +[Designer.DriverFilePicker] +Ok.Button=OK +Cancel.Button=Cancelar +RecursiveListing.Message=Below is a recursive listing of all drivers in the directory you are specifying. From this list, pick the drivers you want to add and click OK. +Refresh.Button=Atualizar +DirectoryStatus.Label=Directory status +Driver.Files.Choose.Label=Choose driver files in directory + +[Designer.EnableFeat] +Ok.Button=OK +Cancel.Button=Cancelar +Features.Group=Funcionalidades +FeatureName.Column=Nome da funcionalidade +State.Column=Estado +Options.Group=Opções +Detect.Group.Policy.Button=Detect from group policy +Browse.Button=Procurar... +Lookup.Button=Lookup... +FeatureSource.Label=Feature source: +PackageName.Label=Nome do pacote: +Contact.Win.Update.CheckBox=Contact Windows Update for online images +ParentFeatures.CheckBox=Enable all parent features +Feature.Source.CheckBox=Specify feature source +ParentPackage.CheckBox=Specify parent package name for features +SourceFolder.Description=Specify a folder which will act as the feature source: +EnableFeatures.Label=Enable features +CommitImage.CheckBox=Commit image after enabling features + +[Designer.EnvVars] +Save.Changes.Label=Save all changes +Intro.Message=This tool lets you view and manage the environment variables of this target image. Click the Save button to save any changes made to the environment variables. +TargetSystem.Label=Environment variables for the target system +Name.Column=Nome +Value.Column=Valor +Remove.Machine.Label=Remove machine variable +Add.Machine.Variable.Button=Add machine variable... +DefaultUser.Label=Environment variables for default user profiles +Remove.User.Variable.Label=Remove user variable +Add.User.Variable.Button=Add user variable... +SaveVariable.Label=Save Variable +Scope.Label=Scope: +Hierarchical.Values.Message=This variable is hierarchical. Values added to the system variable will be either prepended to or replaced by the user variable when the user profile is loaded. +Variables.Location.Label=* Environment variables contained within this value are not expanded. +Value.Label=Value: +Name.Label=Nome: +VariableInfo.Label=Environment Variable Information: +Copy.Default.User.Label=Copy to default user scope +Copy.Machine.Scope.Label=Copy to machine scope +Move.Machine.Scope.Label=Move to machine scope +Move.Default.User.Label=Move to default user scope +SystemVariables.Label=System Environment Variable Management + +[Designer.ExceptionForm] +Sorry.Inconvenience.Message=We are sorry for the inconvenience, but DISMTools has run into an error that it couldn't handle and we need your help in order to continue.Here is the error information if you need it: +Help.Us.Fix.Label=Please help us fix this issue +ReportIssue.Label=Report this issue +Continue.Running.Message=You may be able to continue running the program by clicking Continue. However, if this error is displayed for a second time, you can forcefully close the program by clicking Exit. Do note that changes made to projects, as well as changes in the Recents list, will not be saved.{crlf;}{crlf;}What do you want to do? +Reporting.Issue.Message=When reporting this issue, PLEASE paste the exception information on the left. Otherwise, standard closure policies will be applied which imply closing your issue after (at least) 4 hours. +Continue.Button=Continue +Exit.Button=Sair +Copy.Inspect.Logs.Button=Copy and Inspect Logs +DISM.Tools.Internal.Label=DISMTools - Internal Error +Problem.Prevention.Message=In order to prevent this problem from happening again, we would like to know more about it by reporting an issue on the GitHub repository. You will need a GitHub account to report feedback. + +[Designer.ExportDrivers] +Ok.Button=OK +Cancel.Button=Cancelar +ExportTarget.Label=Export target: +Browse.Button=Procurar... +DriversPath.Description=Please specify the path where the drivers will be exported to: +Driver.Mode.Group=Driver Export Mode +ClassName.Label=Class Name: +Class.Name.Notes.Label=Class Name Notes: +Matching.Drivers.RadioButton=Export drivers with the following matching class name to the destination: +Image.Drivers.RadioButton=Export all image drivers to the destination +ExportDrivers.Label=Export drivers + +[Designer.FFUApply] +Ok.Button=OK +Cancel.Button=Cancelar +Source.Group=Origem +Browse.Button=Procurar... +Mounted.Image.Label=Usar imagem montada +SourceImageFile.Label=Ficheiro de imagem de origem: +SfufilePattern.Group=SFU file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Padrão de nomenclatura: +Destination.Group=Destino +DriveDetails.Label=Drive Details: +DestinationDrive.Label=Destination drive: +Specify.Button=Specify... +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +Source.Image.Required.Title=Please specify the source image to apply +Reference.Sfufiles.CheckBox=Reference SFU files +File.Label=Apply a FFU file + +[Designer.FFUCapture] +Ok.Button=OK +Cancel.Button=Cancelar +Source.Group=Origem +DriveDetails.Label=Drive Details: +SourceDrive.Label=Source drive: +Specify.Button=Specify... +Destination.Group=Destino +Browse.Button=Procurar... +Destination.ImageFile.Label=Ficheiro de imagem de destino: +Options.Group=Opções +Description.Goes.Label=(Description goes here) +None.Item=none +Default.Item=default +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +File.Label=Capture a FFU file + +[Designer.FFUInfoDialog] +Ok.Button=OK +Cancel.Button=Cancelar +Ffuheader.Tab=FFU Header +Value.Label= +CompressionType.Label=Compression Type: +Ffuversion.Label=FFU Version: +Physical.Disk.Path.Label=Physical Disk Path: +Vhdstorage.Device.ID.Label=VHD Storage Device ID: +MountedVHDID.Label=Mounted VHD ID: +MountedVhdpath.Label=Mounted VHD path: +MountedVHD.Tab=Mounted VHD +Selected.Partition.Label=Information about the selected partition: +Mounted.FFU.Message=This mounted FFU file contains the following partitions. To show details of a specific partition, select it from the list below: +Manifest.Tab=Manifest +Full.Flash.Utility.Label=Full Flash Utility (FFU) Information + +[Designer.FFUOptimize] +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Procurar... +ImageFile.Label=Image file to optimize: +Default.Partition.CheckBox=Optimize a partition other than the default partition in the specified FFU file +PartitionNumber.Label=Partition number: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu|Split FFU files|*.sfu +OpenFile.Title=Please specify the source image to apply +Ffuimages.Label=Optimize FFU images + +[Designer.FFUSplit] +Ok.Button=OK +Cancel.Button=Cancelar +Integrity.CheckBox=Verificar integridade da imagem +Browse.Button=Procurar... +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Maximum.Size.Images.Label=Maximum size of split images (in MB): +Name.Path.Destination.Label=Name and path of the destination split image: +Source.Image.Label=Source image to split: +Sfufiles.Filter=SFU files|*.sfu +Target.Location.Title=Specify the target location of the split images: +Full.Flash.Utility.Filter=Full Flash Utility files|*.ffu +Source.WIM.File.Title=Specify the source WIM file to split: +SplitFfuimages.Label=Split FFU images + +[Designer.FeatureFilter] +Apply.Button=Aplicar +Clear.Button=Clear +Filter.Feature.Prompt.Label=Filter feature information by: +Name.Label=Nome: +State.Label=Estado: +AnyState.Item=Any state +Enabled.Item=Ativado +Enablement.Pending.Item=Enablement Pending +Disabled.Item=Desativado +Disablement.Pending.Item=Disablement Pending +Filter.Feature.Title=Filter feature information + +[Designer.Get.AppX] +PackageName.Label=Nome do pacote: +DynamicValue.Label= +Display.Name.Label=Application display name: +Architecture.Label=Arquitetura: +ResourceID.Label=Resource ID: +Version.Label=Versão: +Registered.User.Label=Is registered to any user? +Install.Dir.Label=Installation directory: +Package.Manifest.Label=Package manifest location: +StoreLogo.Asset.Dir.Label=Store logo asset directory: +Main.StoreLogo.Asset.Label=Main store logo asset: +Asset.Guessed.DISM.Message=This asset has been guessed by DISMTools based on its size, which can lead to an incorrect result. If that happens, please report an issue on the GitHub repository +Asset.One.IM.Link=This asset is not the one I'm looking for +AppX.Package.Label=AppX package information +Installed.AppX.Label=Select an installed AppX package on the left to view its information here +Save.Button=Guardar... +AppX.Package.Get.Label=Get AppX package information + +[Designer.CapabilityInfo] +Ready.Label=Ready +Identity.Column=Capability identity +State.Column=Estado +Identity.Label=Capability identity: +DynamicValue.Label= +CapabilityName.Label=Capability name: +CapabilityState.Label=Capability state: +DisplayName.Label=Nome a apresentar: +Description.Label=Capability description: +Sizes.Label=Sizes: +CapabilityInfo.Label=Capability information +Save.Button=Guardar... +Look.Item.Online.Button=Procurar este item online +Get.Label=Get capability information + +[Designer.GetCapInfo] +SelectCapability.Label=Select an installed capability on the left to view its information here + +[Designer.GetDriverInfo] +View.Driver.File.Button=View driver file information +Change.Button=Change +Bg.Procs.Notice.Message=You have configured the background processes to not show all drivers present in this image, which includes drivers part of the Windows distribution, so you may not see the driver you're interested in. +Save.Button=Guardar... +Status.Label=Estado +PublishedName.Column=Published name +Original.File.Name.Column=Nome original do ficheiro +PublishedName.Label=Published name: +DynamicValue.Label= +Original.File.Name.Label=Original file name: +ProviderName.Label=Provider name: +ClassName.Label=Class name: +ClassDescription.Label=Class description: +ClassGUID.Label=Class GUID: +Catalog.File.Path.Label=Catalog file path: +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Is critical to the boot process? +Version.Label=Versão: +Date.Label=Date: +Driver.Signature.Label=Driver signature status: +DriverInfo.Label=Driver information +Installed.Driver.View.Label=Select an installed driver to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddDriver.Button=Add driver... +Hardware.Description.Label=Hardware description: +HardwareID.Label=Hardware ID: +AdditionalIds.Label=Additional IDs: +CompatibleIds.Label=Compatible IDs: +ExcludeIds.Label=Exclude IDs: +Hardware.Manufacturer.Label=Hardware manufacturer: +Architecture.Label=Arquitetura: +JumpTarget.Label=Jump to target: +HardwareTargets.Label=Hardware targets +Add.DriverPackage.Label=Add or select a driver package to view its information here +GoBack.Link=<- Go back +Help.AddDrivers.Message=Click here to get information about drivers that you want to add to the Windows image you're servicing before proceeding with the driver addition process +Get.Drivers.Message=Click here to get information about drivers that you've installed or that came with the Windows image you're servicing +InstalledDriver.Link=I want to get information about installed drivers in the image +Iwant.Link=I want to get information about driver files +Get.Label=What do you want to get information about? +Driver.Files.Inf.Filter=Driver files|*.inf +Locate.Driver.Files.Title=Locate driver files +Driver.Label=Get driver information + +[Designer.GetFeatureInfo] +FeatureName.Column=Nome da funcionalidade +FeatureState.Column=Feature state +FeatureName.Label=Feature name: +DynamicValue.Label= +DisplayName.Label=Nome a apresentar: +Description.Label=Feature description: +RestartRequired.Label=Is a restart required? +FeatureState.Label=Feature state: +CustomProps.Label=Custom properties: +FeatureInfo.Label=Feature information +Installed.Left.Label=Select an installed feature on the left to view its information here +Ready.Label=Ready +Save.Button=Guardar... +Look.Item.Online.Button=Procurar este item online +Get.Feature.Label=Get feature information + +[Designer.Get.Img] +WIM.Files.Wimvirtual.Filter=WIM files|*.wim|Virtual Hard Disk files|*.vhd, *.vhdx|ESD files|*.esd|SWM files|*.swm|Full Flash Utility files|*.ffu +Image.Title=Specify the image to get the information from +Index.Column=Índice +ImageName.Column=Nome da imagem +Pick.Button=Escolher... +Browse.Button=Procurar... +AnotherImage.RadioButton=Another image +CurrentlyMounted.RadioButton=Currently mounted image +List.Indexes.ImageFile.Label=List of indexes of image file: +ImageFile.Label=Image file to get information from: +ImageVersion.Label=Image version: +DynamicValue.Label= +ImageName.Label=Image name: +ImageDescription.Label=Image description: +ImageSize.Label=Image size: +Supports.WIM.Boot.Label=Supports WIMBoot? +Architecture.Label=Arquitetura: +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Service Pack level: +InstallationType.Label=Installation type: +Edition.Label=Edition: +ProductType.Label=Product type: +ProductSuite.Label=Product suite: +System.Root.Dir.Label=System root directory: +FileCount.Label=File count: +Dates.Label=Dates: +Installed.Languages.Label=Installed languages: +ImageInfo.Label=Informações da imagem +Index.List.View.Label=Select an index on the list view on the left to view its information here +Save.Button=Guardar... +Image.Label=Get image information + +[Designer.GetPkgInfo] +AddPackages.Help.Message=Click here to get information about packages that you want to add to the Windows image you're servicing before proceeding with the package addition process +Get.Packages.Message=Click here to get information about packages that you've installed or that came with the Windows image you're servicing +InstalledPackage.Link=I want to get information about installed packages in the image +PackageFile.Link=I want to get information about package files +Get.Label=What do you want to get information about? +Save.Button=Guardar... +Status.Label=Estado +PackageName.Label=Nome do pacote: +DynamicValue.Label= +Package.Applicable.Label=Is package applicable? +Copyright.Label=Copyright: +Company.Label=Company: +CreationTime.Label=Creation time: +Description.Label=Descrição: +InstallClient.Label=Install client: +Install.Package.Name.Label=Install package name: +InstallTime.Label=Install time: +Last.Update.Time.Label=Last update time: +DisplayName.Label=Nome a apresentar: +ProductName.Label=Product name: +ProductVersion.Label=Product version: +ReleaseType.Label=Release type: +RestartRequired.Label=Is a restart required? +SupportInfo.Label=Support information: +State.Label=Estado: +Boot.Up.Required.Label=Is a boot up required for full installation? +Capability.Identity.Label=Capability identity: +CustomProps.Label=Custom properties: +Features.Label=Features: +PackageInfo.Label=Informações do pacote +Installed.Package.View.Label=Select an installed package to view its information here +RemoveAll.Button=Remove all +RemoveSelected.Button=Remove selected +AddPackage.Button=Add package... +Add.Package.File.Label=Add or select a package file to view its information here +GoBack.Link=<- Go back +Cabfiles.Filter=CAB files|*.cab +Locate.Package.Files.Title=Locate package files +Package.Label=Get package information + +[Designer.WinPESettings] +Ok.Button=OK +Windows.Label=These are the Windows PE settings for this image: +Change.Button=Alterar... +TargetPath.Label=Target path: +ScratchSpace.Label=Scratch space: +Save.Button=Guardar... +Get.Windows.Pesettings.Label=Get Windows PE settings + +[Designer.ImageFilePicker] +Ok.Button=OK +Cancel.Button=Cancelar +ImageFile.Column=Image File +Pick.Windows.ImageFile.Label=Pick Windows image file +MountList.Prompt.Label=Pick the Windows image file that you want to mount from the list below and click OK: + +[Designer.ImageTaskHeader] +ItemText.Title=Item Text + +[Designer.ImgAppend] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Group=Opções +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Grab.Last.Image.Button=Grab from last image +Browse.Button=Procurar... +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +ExtendedAttributes.CheckBox=Capture extended attributes +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +WIM.Boot.Config.CheckBox=Append with WIMBoot configuration +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +Destination.ImageFile.Label=Ficheiro de imagem de destino: +Sources.Destinations.Group=Sources and destinations +Source.Image.Dir.Label=Source image directory: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +AppendImage.Label=Append to an image + +[Designer.ImgApply] +Ok.Button=OK +Cancel.Button=Cancelar +Source.Group=Origem +Browse.Button=Procurar... +Mounted.Image.Label=Usar imagem montada +SourceImageFile.Label=Ficheiro de imagem de origem: +Options.Group=Opções +Extended.Attributes.CheckBox=Apply extended attributes +Image.Compact.Mode.CheckBox=Apply image in compact mode +ImageIndex.Label=Image index: +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Reference.Swmfiles.CheckBox=Reference SWM files +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Verify.CheckBox=Verify +Integrity.CheckBox=Verificar integridade da imagem +Destination.Group=Destino +Destination.Dir.Label=Destination directory: +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm|ESD files|*.esd +Source.Image.Required.Title=Please specify the source image to apply +SwmfilePattern.Group=SWM file pattern +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Padrão de nomenclatura: +DestinationDir.Description=Please specify the destination directory to apply the image to: +ApplyImage.Label=Apply an image +Validate.Image.CheckBox=Validate image for Trusted Desktop + +[Designer.ImgCapture] +Ok.Button=OK +Cancel.Button=Cancelar +Sources.Destinations.Group=Sources and destinations +Browse.Button=Procurar... +Destination.ImageFile.Label=Ficheiro de imagem de destino: +Source.Image.Dir.Label=Source image directory: +Options.Group=Opções +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Create.Button=Create... +Path.Config.File.Label=Path of configuration file: +Reparse.Point.Tag.CheckBox=Use the reparse point tag fix +Mount.Dest.Image.CheckBox=Mount destination image for later use +Extended.Attributes.CheckBox=Capture extended attributes +Append.WIM.Boot.CheckBox=Append with WIMBoot configuration +Check.File.Errors.CheckBox=Check for file errors +Verify.Image.CheckBox=Verify image integrity +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Exclude.Files.Dirs.CheckBox=Exclude certain files and directories for destination image +CompressionType.Label=Destination image compression type: +Dest.Image.Description.Label=Destination image description: +Destination.Image.Name.Label=Destination image name: +WIM.Files.Filter=WIM files|*.wim +WimscriptIniwim.Filter=WimScript.ini|WimScript.ini +Wimscript.Ini.Title=Specify a WimScript.ini configuration file +CaptureImage.Label=Capture an image + +[Designer.ImgCleanup] +Ok.Button=OK +Cancel.Button=Cancelar +Task.Choose.Label=Choose a task: +Revert.Pending.Actions.Item=Revert pending actions +Clean.Up.ServicePack.Item=Clean up Service Pack backup files +Clean.Up.Component.Item=Clean up component store +Analyze.Component.Store.Item=Analyze component store +Check.Component.Store.Item=Check component store +Scan.Comp.Store.Item=Scan component store for corruption +Repair.Component.Store.Item=Repair component store +TaskOptions.Group=Task options +NoOptions.Message=There are no configurable options for this task. However, you should only run this task to try to recover a Windows image that fails to boot. +HideServicePack.CheckBox=Hide service pack from the Installed Updates list +Last.Reset.Base.Label=LastResetBase_UTC +Only.Check.Option.Label=You should only check this option if the base reset takes more than 30 minutes to complete +Superseded.Base.Reset.Label=The superseded components base reset was last run on: +Defer.Long.Running.CheckBox=Defer long-running cleanup operations +Reset.Base.CheckBox=Reset base of superseded components +NoOptions.Label=There are no configurable options for this task. +Browse.Button=Procurar... +Source.Label=Source: +WindowsUpdate.CheckBox=Limit access to Windows Update +Different.Source.CheckBox=Use different source for component repair +Detect.Group.Policy.Button=Detect from group policy +Task.Listed.Label=Select a task listed above to configure its options. +Task.See.Choose.Label=Choose a task to see its description +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +Source.Title=Specify the source from which we will restore the component store health +ImageCleanup.Label=Image cleanup + +[Designer.ImageConvert] +Converted.Message=The specified image has been successfully converted to the target format. For convenience, the File Explorer can be opened for you to see where the target image is located.{crlf;}{crlf;}Do you want to open the directory where the target image is stored? +Converted.Label=The image has been successfully converted +Yes.Button=Yes +No.Button=No +AppName.Label=DISMTools + +[Designer.ImgExport] +Ok.Button=OK +Cancel.Button=Cancelar +Sources.Destinations.Group=Sources and destinations +Browse.Button=Procurar... +Destination.ImageFile.Label=Ficheiro de imagem de destino: +SourceImageFile.Label=Ficheiro de imagem de origem: +Options.Group=Opções +Reference.Swmfiles.CheckBox=Reference SWM files +Status.InitialLabel= +ScanPattern.Button=Scan pattern +Name.Image.Button=Use name of the image +NamingPattern.Label=Padrão de nomenclatura: +CustomName.CheckBox=Specify a custom name for the destination image +Description.Goes.Label=(Description goes here) +None.Item=none +Fast.Item=fast +Maximum.Item=maximum +Recovery.Item=recovery +CompressionType.Label=Destination image compression type: +Image.Bootable.CheckBox=Make image bootable (Windows PE only) +Append.Image.WIM.CheckBox=Append image with WIMBoot configuration +Index.Column=Índice +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão da imagem +Source.Image.Index.Label=Source image index: +WIM.Files.Wimesd.Filter=WIM files|*.wim|ESD files|*.esd +WIM.Files.Wimswm.Filter=WIM files|*.wim|SWM files|*.swm +Source.ImageFile.Title=Specify a source image file to export +ExportImage.Label=Export an image +CheckIntegrity.CheckBox=Check integrity before exporting image + +[Designer.ImageIndexDelete] +Ok.Button=OK +Cancel.Button=Cancelar +SourceImage.Label=Source image: +Browse.Button=Procurar... +Mounted.Image.Button=Usar imagem montada +VolumeImages.Group=Volume images +Index.Column=Índice +ImageName.Column=Nome da imagem +Get.Indexes.Image.Label=Getting indexes from the image. Please wait... +Mark.VolumeImages.Message=Please mark the volume images to delete on the left. The image will then have the indexes shown on the right +Integrity.CheckBox=Verificar integridade da imagem +WIM.Files.Filter=WIM files|*.wim +Source.Image.Remove.Title=Specify the source image to remove volume images from +Remove.Volume.Image.Label=Remove a volume image + +[Designer.ImageIndexSwitch] +Ok.Button=OK +Cancel.Button=Cancelar +Indexes.Group=Indexes +Save.Changes.RadioButton=Save changes to index +Index.Label= +Destination.Mount.Label=Destination index to mount: +Unmounting.Source.Label=When unmounting source index, what to do? +Image.Label=Image: +Already.Mounted.Label=This index has already been mounted +Image.Indexes.Label=Switch image indexes +DiscardChanges.RadioButton=Unmount discarding changes + +[Designer.Img.Save] +Status.Label=Estado +Wait.Message=Please wait while DISMTools saves the image information to a file. This can take some time, depending on the tasks that are run. +Saving.Image.Button=Saving image information... + +[Designer.ImgMount] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Required.Label=Please specify the options to mount an image: +Source.Group=Origem +Notewant.ESD.Label=NOTE: if you want to mount an ESD file, you need to convert it to a WIM file first +Convert.Button=Convert +Browse.Button=Procurar... +ImageFile.Label=Image file*: +Destination.Group=Destino +MountDirectory.Label=Mount directory*: +Options.Group=Opções +Index.Column=Índice +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão da imagem +Integrity.CheckBox=Verificar integridade da imagem +Optimize.Times.CheckBox=Optimize mount times +Mount.Read.CheckBox=Mount with read only permissions +Index.Label=Index*: +Fields.End.Required.Label=The fields that end in * are required +FileSpec.Filter=WIM files|*.wim|ESD files|*.esd|SWM files|*.swm|VHD(X) files|*.vhd;*.vhdx|ISO files|*.iso|Full Flash Utility files|*.ffu +MountImage.Label=Mount an image + +[Designer.ImgOptimize] +Ok.Button=OK +Cancel.Button=Cancelar +Path.Mounted.Image.Label=Path of mounted image to optimize: +Pick.Button=Escolher... +Mounted.Image.Button=Usar imagem montada +Image.Optimization.Mode=Image optimization mode +Reduce.Online.RadioButton=Reduce online configuration time that the target OS spends during boot +Image.Again.Label=You may need to optimize the image again if you perform servicing operations after this task. +OfflineImage.RadioButton=Configure an offline image for installation on a WIMBoot system (Windows 8.1 only) +OptimizeImages.Label=Optimize images + +[Designer.Img.SWM] +Ok.Button=OK +Cancel.Button=Cancelar +Split.WIM.Files.Filter=Split WIM files|*.swm +Source.Swmfile.Title=Specify the source SWM file to merge +WIM.Files.Filter=WIM files|*.wim +Dest.WIM.File.Title=Specify the destination WIM file to merge the source SWM files to +SourceSwmfile.Label=Source SWM file: +Browse.Button=Procurar... +Destination.WIM.File.Label=Destination WIM file: +Notewhen.Specifying.Message=NOTE: when specifying the SWM file, choose the first file. DISMTools will take care of additional SWM files stored in that directory. +LearnHow.Link=Learn how to do it +Source.Group=Origem +Options.Group=Opções +Index.Column=Índice +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão da imagem +Index.Label=Index: +Destination.Group=Destino +MergeSwmfiles.Label=Merge SWM files + +[Designer.ImgSplit] +Ok.Button=OK +Cancel.Button=Cancelar +Swmfiles.Filter=SWM files|*.swm +SaveFile.Title=Specify the target location of the split images: +WIM.Files.Filter=WIM files|*.wim +Source.WIM.File.Title=Specify the source WIM file to split: +Source.Image.Label=Source image to split: +Browse.Button=Procurar... +Name.Path.Destination.Label=Name and path of the destination split image: +Maximum.Size.Images.Label=Maximum size of split images (in MB): +LargeFile.Note.Message=Do note that, to accommodate a large file in the image, a split image file may be larger than the specified value +Integrity.CheckBox=Verificar integridade da imagem +SplitImages.Label=Split images + +[Designer.ImgUmount] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Required.Label=Please specify the options to unmount this image: +MountDirectory.Group=Mount directory +Pick.Button=Escolher... +MountDirectory.Label=Mount directory: +LocatedSomewhere.RadioButton=is located somewhere else +LoadedProject.RadioButton=is loaded in the project +Mount.Dir.Label=The mount directory: +Additional.Options.Group=Additional options +Save.Changes.Unmount.Item=Save changes and unmount +Discard.Changes.Unmount.Item=Discard changes and unmount +Append.Changes.CheckBox=Append changes to another index +Integrity.CheckBox=Verificar integridade da imagem +UnmountOperation.Label=Unmount operation: +MountDir.Description=Please specify a mount directory: +UnmountImage.Label=Unmount an image + +[Designer.Img.WIM] +Ok.Button=OK +Cancel.Button=Cancelar +Source.Group=Origem +Browse.Button=Procurar... +SourceImageFile.Label=Ficheiro de imagem de origem: +Options.Group=Opções +Index.Column=Índice +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão da imagem +Index.Label=Index: +Format.Converted.Image.Label=Format of converted image: +Format.Ichoose.Link=Which format do I choose? +Destination.Group=Destino +Destination.ImageFile.Label=Ficheiro de imagem de destino: +OpenFile.Filter=WIM files|*.wim|ESD files|*.esd +Source.ImageFile.Title=Specify the source image file you want to convert +Target.Image.Stored.Title=Where will the target image be stored? +ConvertImage.Label=Convert image + +[Designer.VistaWarning] +Unsupported.Message=Neither this program nor DISM support servicing Windows Vista images. DISM is meant to service Windows 7 or newer images. You can still mount Windows Vista images, but all options will be disabled.{crlf;}{crlf;}If you still want to service a Windows Vista image, refer to the {quot;}Compatibility with older Windows versions{quot;} topic in the Help documentation.{crlf;}{crlf;}Do you want to continue? +Windows.Service.Message=The program can't service Windows Vista images +Yes.Button=Yes +No.Button=No +DISMTools.Label=DISMTools + +[Designer.ImportDrivers] +Ok.Button=OK +Cancel.Button=Cancelar +Process.Third.Message=This process will import all third-party drivers of the source you specify to this image or installation. This ensures that the target image will have the same hardware compatibility of the source image +ImportSource.Label=Import source: +Windows.Item=Windows image +Online.Install.Item=Online installation +Offline.Install.Item=Offline installation +ImgFile.Label= +ImageFile.Label=Image file: +Tuse.Target.Label=You can't use the import target as the import source +Pick.Button=Escolher... +Windows.Label=Windows image to import drivers from: +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Refresh.Button=Atualizar +Offline.Drivers.Label=Offline installation to import drivers from: +Source.Listed.Choose.Label=Choose a source listed above to configure its settings. +ImportDrivers.Label=Import drivers + +[Designer.IncompleteSetupDlg] +Yes.Button=Yes +No.Button=No +SetupIncomplete.Message=Setup is not complete yet, and your custom settings will not be saved. Proceeding will make the program use default settings.Do you want to proceed? +DISMTools.Label=DISMTools + +[Designer.InfoSaveResults] +ReportSaved.Message=The report has been saved to the location you had specified, and its contents will be shown below. +Ok.Button=OK +Display.Content.Web.CheckBox=Display content in Web View +SaveReport.Button=Save report... +Htmlreports.Filter=HTML Reports|*.html +Image.Report.Label=Image information report results + +[Designer.InvalidSettings] +Ok.Button=OK +Scratch.Dir.Status.Label= +Log.File.Status.Label= +Log.Font.Status.Label= +DISM.Executable.Status.Label= +Detected.Label=Invalid settings have been detected +ResetDefaults.Message=The invalid settings have been reset to default values. Check the fields below for more information: +Found.Label=The program has detected invalid settings + +[Designer.ISOCreator] +ISO.File.Message=The ISO file creation wizard lets you quickly create a disc image file that you can use to test the changes made to your Windows image. A custom Preinstallation Environment (PE) will be created. This environment will automatically perform disk configuration and apply the image you specify here. +Options.Group=Opções +Include.Essential.CheckBox=Include essential drivers from this system +Customize.Environment.Button=Customize Environment... +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Browse.Button=Procurar... +Copy.Ventoy.Drives.CheckBox=Copy to Ventoy drives +Unattended.CheckBox=Unattended answer file: +Architecture.Label=Arquitetura: +Pick.Button=Escolher... +Target.Isolocation.Label=Target ISO location: +ImageFile.Add.Label=Image file to add to ISO file: +Mounted.Image.Button=Usar imagem montada +Newly.Signed.Boot.CheckBox=Use newly-signed boot binaries +Cancel.Button=Cancelar +Create.Button=Create +Progress.Group=Progresso +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=Estado +WIM.Files.Filter=WIM files|*.wim +Isofiles.Filter=ISO files|*.iso +Download.Windows.ADK.Link=Download the Windows ADK +Answer.Files.XML.Filter=Answer files|*.xml +CreateIsofile.Label=Create an ISO file + +[Designer.Main] +File.Label=&File +NewProject.Button=&New project... +Open.Existing.Project.Label=&Open existing project +Manage.Online.Install.Label=&Manage online installation +Manage.Ffline.Button=Manage o&ffline installation... +RecentProjects.Label=Recent projects +SaveProject.Button=&Save project... +Save.Project.Button=Save project &as... +Exit.Label=E&xit +Project.Label=&Project +View.Project.Files.Label=View project files in File Explorer +UnloadProject.Button=Unload project... +Switch.Image.Indexes.Button=Switch image indexes... +ProjectProps.Label=Project properties +ImageProps.Label=Image properties +Commands.Label=Com&mands +ImageManagement.Label=Image management +Append.Capture.Dir.Button=Append capture directory to image... +ApplyFfusfufile.Button=Apply FFU or SFU file... +ApplyWimswmfile.Button=Apply WIM or SWM file... +Capture.Incremental.Button=Capture incremental changes to file... +Capture.Partitions.Button=Capture partitions to FFU file... +Capture.Image.Drive.Button=Capture image of a drive to WIM file... +Delete.Resources.Button=Delete resources from corrupted image... +Apply.Changes.Image.Button=Apply changes to image... +Delete.Volume.Image.Button=Delete volume image from WIM file... +ExportImage.Button=Export image... +Get.Image.Button=Get image information... +Get.WIM.Boot.Button=Get WIMBoot configuration entries... +List.Files.Dirs.Button=List files and directories in image... +MountImage.Button=Mount image... +Optimize.FFU.File.Button=Optimize FFU file... +OptimizeImage.Button=Optimize image... +Remount.Image.Button=Remount image for servicing... +Split.FFU.File.Button=Splt FFU file into SFU files... +Split.WIM.File.Button=Split WIM file into SWM files... +UnmountImage.Button=Unmount image... +Update.WIM.Boot.Button=Update WIMBoot configuration entry... +Apply.Siloed.Prov.Button=Apply siloed provisioning package... +Save.Image.Button=Save image information... +OSPackages.Label=OS packages +GetPackages.Button=Get package information... +AddPackage.Button=Add package... +RemovePackage.Button=Remove package... +GetFeatures.Button=Get feature information... +EnableFeature.Button=Enable feature... +DisableFeature.Button=Disable feature... +CleanupRecovery.Button=Perform cleanup or recovery operations... +ProvPackages.Label=Provisioning packages +Add.Prov.Package.Button=Add provisioning package... +Get.Prov.Package.Button=Get provisioning package information... +Apply.CustomData.Button=Apply custom data image... +AppPackages.Label=App packages +Get.App.Package.Button=Get app package information... +Add.Provisioned.App.Button=Add provisioned app package... +Remove.Prov.App.Button=Remove provisioning for app package... +Optimize.Provisioned.Button=Optimize provisioned packages... +Add.CustomData.File.Button=Add custom data file into app package... +AppMspservicing.Label=App (MSP) servicing +Get.App.Patch.Button=Get application patch information... +Installed.App.Details.Button=Get detailed installed application patch information... +Basic.Installed.App.Button=Get basic installed application patch information... +Get.Detailed.Button=Get detailed Windows Installer (*.msi) application information... +Get.Basic.Windows.Button=Get basic Windows Installer (*.msi) application information... +DefaultApp.Assoc.Label=Default app associations +Export.Default.Button=Export default application associations... +DefaultApp.Assoc.Button=Get default application association information... +Import.Default.Button=Import default application associations... +Remove.Default.Button=Remove default application associations... +Languages.Regional.Label=Languages and regional settings +Intl.Settings.Button=Get international settings and languages... +SetUilanguage.Button=Set UI language... +Set.Default.Button=Definir idioma de reserva predefinido da interface de utilizador... +Set.System.Preferred.Button=Set system preferred UI language... +Set.System.Locale.Button=Set system locale... +Set.User.Locale.Button=Set user locale... +Set.Input.Locale.Button=Set input locale... +Set.UI.Button=Set UI language and locales... +Set.Default.Time.Button=Set default time zone... +Set.Default.Languages.Button=Set default languages and locales... +Set.Layered.Driver.Button=Set layered driver... +Generate.Lang.Ini.Button=Generate Lang.ini file... +Set.Default.Setup.Button=Set default Setup language... +Capabilities.Label=Capacidades +AddCapability.Button=Add capability... +Export.Capabilities.Button=Export capabilities into repository... +GetCapabilities.Button=Get capability information... +RemoveCapability.Button=Remove capability... +WindowsEditions.Label=Windows editions +Get.Edition.Button=Get current edition... +Get.Upgrade.Targets.Button=Get upgrade targets... +UpgradeImage.Button=Upgrade image... +SetProductKey.Button=Set product key... +Drivers.Label=Controladores +GetDrivers.Button=Get driver information... +AddDriver.Button=Add driver... +RemoveDriver.Button=Remove driver... +Export.DriverPackages.Button=Export driver packages... +Import.DriverPackages.Button=Import driver packages... +Unattended.Answer.Label=Unattended answer files +Apply.Unattended.Button=Apply unattended answer file... +Remove.Applied.Label=Remove applied answer file +System.Enter.Audit.Label=Make system enter audit mode +WindowsPE.Label=Windows PE servicing +GetSettings.Button=Get settings... +SetScratchSpace.Button=Set scratch space... +Set.Target.Path.Button=Set target path... +OSUninstall.Label=OS uninstall +Get.Uninstall.Window.Button=Get uninstall window... +Initiate.Uninstall.Button=Initiate uninstall... +Remove.Roll.Back.Button=Remove roll back ability... +Set.Uninstall.Window.Button=Set uninstall window... +ReservedStorage.Label=Reserved storage +Set.Reserved.Storage.Button=Set reserved storage state... +Get.Reserved.Storage.Button=Get reserved storage state... +MicrosoftEdge.Label=Microsoft Edge +AddEdge.Button=Add Edge... +Add.Edge.Browser.Button=Add Edge browser... +Add.Edge.Web.Button=Add Edge WebView... +Tools.Label=&Tools +ImageConversion.Label=Image conversion +Wimesd.Label=WIM <-> ESD +MergeSwmfiles.Button=Merge SWM files... +Remount.Image.Write.Label=Remount image with write permissions +CommandConsole.Label=Command Console +Unattended.AnswerFile.Label=Unattended answer file manager +Unattended.Creator.Label=Unattended answer file creator +Manage.Image.Registry.Button=Manage image registry hives... +Manage.System.Button=Manage system services... +Manage.System.Env.Button=Manage system environment variables... +WebResources.Label=Web Resources +Download.Languages.Button=Download Languages and Optional Features ISOs... +Download.FOD.Button=Download Languages and FOD discs for Windows 10... +StartPXE.Button=Start PXE Helper Server for... +Windows.Label=Windows Deployment Services +FOG.Label=FOG +Show.Instructions.Label=Show instructions for FOG Helper Server on UNIX systems +Copy.My.Windows.Button=Copy my Windows image to a WDS server... +Evaluate.Windows.Label=Evaluate Windows UEFI CA 2023 readiness on this system +ReportManager.Label=Report manager +Mounted.Image.Manager.Label=Mounted image manager +Create.Disc.Image.Button=Create disc image... +Create.Testing.Button=Create testing environment... +Config.List.Editor.Label=Configuration list editor +Create.StarterScript.Label=Create a starter script +DesignTheme.Label=Design a theme +Options.Label=Opções +Help.Label=&Help +HelpTopics.Label=Help Topics +DISM.Tools.Tour.Label=DISMTools Tour +DISM.Tools.Label=About DISMTools +Join.Discord.Opens.Label=Join the discord (opens in web browser) +Report.Feedback.Opens.Label=Comunicar comentários (abre no navegador Web) +Open.Diagnostic.Logs.Label=Open diagnostic logs in log viewer +Contribute.Help.System.Label=Contribute to the help system +Branch.Label=Branch +Preview.Label=PREVIEW +Beta.Release.Tooltip=This is a beta release. In it, you will encounter lots of bugs and incomplete features. +Full.Screen.Shortcut.Label=(F11) +Settings.Detected.Label=Invalid settings have been detected +MoreInfo.Label=More information +WhatsThis.Label=What's this? +DISM.Tools.Actions.Label=DISMTools Tour Actions +Tour.Server.Active.Label=Tour Server is active on port 2022 +RestartTour.Label=Restart Tour +Stop.Tour.Server.Label=Stop Tour Server +Video.Content.Loaded.Label=Video content could not be loaded. +LearnMore.Link=Saiba mais +Retry.Button=Tentar novamente +Name.Column=Nome +FactDay.Label=Fact of the day +Learn.Watching.Videos.Label=Learn by watching videos +Managing.External.Link=Managing external Windows installations +Managing.Install.Link=Managing your current installation +Get.Started.DISM.Link=Get started with DISMTools and image servicing +Learn.Snew.Link=Learn what's new in this release +Explore.Get.Started.Label=Explore and get started +News.Feed.Loaded.Label=The news feed could not be loaded. +Stay.Up.Date.Label=Stay up-to-date +News.Last.Updated.Label=Última atualização das notícias: +NewsFeed.Item.Label=Texto da notícia +Item.Feed.Date.Label=Data da notícia +OS.Label=OS +IP.Address.Config.Label=IP Address Configuration: +Processor.Label=Processor +DomainMembership.Label=Domain Membership: +Memory.Label=Memory +Storage.Label=Storage +DomainStatus.Label=Domain Status +WorkgroupDomain.Label=Workgroup/Domain: +ComputerModel.Label=Computer Model +ComputerName.Label=Computer Name +Rename.Link=Rename +PathName.Column=Path/Name +NewVersion.Available.Link=A new version is available for download and installation. Click here to learn more +RemoveEntry.Link=Remove entry +Manage.Offline.Button.Button=Manage offline installation... +Manage.Online.Install.Link=Manage online installation +Open.Existing.Project.Link=Open existing project... +NewProject.Link=New project... +Begin.Label=Begin +ImageOperations.Group=Image operations +CaptureImage.Button=Capture image... +ApplyImage.Button=Apply image... +Save.Complete.Image.Button=Save complete image information... +Remove.VolumeImages.Button=Remove volume images... +Reload.Servicing.Button=Reload servicing session +Unmount.Image.Button=Unmount image discarding changes +CommitImage.Button=Commit and unmount image +Commit.Changes.Button=Commit current changes +Package.Operations.Group=Package operations +Save.Installed.Button=Save installed package information... +Component.Store.Maint.Button=Perform component store maintenance and cleanup... +Get.Package.Button=Get package information... +Feature.Operations.Group=Feature operations +Save.Feature.Button=Save feature information... +Get.Feature.Button=Get feature information... +AppX.Package.Operations=AppX package operations +Save.Installed.AppX.Button=Save installed AppX package information... +Add.AppX.Package.Button=Add AppX package... +Get.App.Button=Get app information... +Remove.AppX.Package.Button=Remove AppX package... +Capability.Operations.Group=Capability operations +Save.Capability.Button=Save capability information... +Get.Capability.Button=Get capability information... +DriverOperations.Group=Driver operations +Save.Installed.Driver.Button=Save installed driver information... +AddDriverPackage.Button=Add driver package... +Get.Driver.Button=Get driver information... +Windows.Group=Windows PE operations +SaveConfig.Button=Save configuration... +GetConfig.Button=Get configuration... +LearnMore.Button=Learn more... +One.Bg.Procs.Message=One or more background processes did not finish successfully. Some functionality may not be available. +ProjectTasks.Label=Project Tasks +UnloadProject.Link=Descarregar projeto +Open.File.Explorer.Link=Open in File Explorer +View.Project.Props.Link=View project properties +UnloadProject.ActionButton=Descarregar projeto +View.File.Explorer.Button=View in File Explorer +View.Project.Props.Button=View project properties +Mount.Image.Link=Click here to mount an image +ImgStatus.Label=imgStatus +Location.Label=Location: +ProjPath.Label=projPath +ImagesMounted.Label=Images mounted? +Name.Label=Nome: +ProjectName.DynamicLabel= +ImageMounted.Label=No image has been mounted +Mount.Image.Order.Label=You need to mount an image in order to view its information. +Choices.Label=Choices +Pick.Mounted.Image.Link=Pick a mounted image... +MountImage.Link=Mount an image... +ImageTasks.Label=Image Tasks +UnmountImage.Link=Unmount image +View.Image.Props.Link=View image properties +ImageIndex.Label=Image index: +Description.Label=Descrição: +ImgIndex.Label=imgIndex +MountPoint.Label=Mount point: +MountPoint.Value=mountPoint +Version.Label=Versão: +ImgName.Label=imgName +ImgDesc.Label=imgDesc +ImgVersion.Label=imgVersion +Project.Link=PROJECT +Image.Link=IMAGE +Clock.DynamicLabel= +Welcome.Servicing.Label=Welcome to this servicing session +CloseTab.Label=Close tab +SaveProject.Label=Save project +UnloadProject.Label=Descarregar projeto +Unload.Project.Tooltip=Unload project from this program +Show.Progress.Window.Label=Show progress window +RefreshView.Label=Refresh view +Expand.Label=Expand +Preparing.Project.Button=Preparing project tree... +Status.Label=Estado +View.BgProcesses.Tooltip=View background processes +Ready.Label=Ready +DISM.Tools.Project.Filter=DISMTools project files|*.dtproj +Project.File.Load.Title=Specify the project file to load +Get.Basic.Label=Get basic information (all packages) +Get.Detailed.Specific.Label=Get detailed information (specific package) +MountDir.Description=Please specify the mount directory you want to load into this project: +CommitImage.Label=Commit changes and unmount image +Discard.Changes.Label=Discard changes and unmount image +UnmountSettings.Button=Unmount settings... +View.Package.Dir.Label=View package directory +ViewResources.Label=View resources for +ExpandItem.Label=Expand item +AccessDirectory.Label=Access directory +Copy.Deployment.Tools.Label=Copy deployment tools +AllArchitectures.Label=Of all architectures +Selected.Architecture.Label=Of selected architecture +Xarchitecture.Label=For x86 architecture +Amarkdown.Architecture.Label=For AMD64 architecture +ARM.Label=For ARM architecture +ARM64.Label=For ARM64 architecture +ImageOperations.Label=Image operations +Manage.Label=Manage +Create.Label=Create +Configure.Scratch.Dir.Label=Configure scratch directory +ManageReports.Label=Manage reports +Add.Button=Adicionar +NewFile.Button=New file... +ExistingFile.Button=Existing file... +SaveResource.Button=Save resource... +CopyResource.Label=Copy resource +PngFiles.Filter=PNG files|*.png +Visit.Microsoft.Apps.Label=Visit the Microsoft Apps website +Visit.Microsoft.Label=Visit the Microsoft Store Generation Project website +Iget.Apps.Label=How do I get applications? +MarkdownFiles.Filter=Markdown files|*.md +Get.ImageFile.Button=Get image file information... +Create.Disc.ImageFile.Button=Create disc image with this file... +Upload.Image.My.Button=Upload this image to my WDS server... +ApplyWimswmesd.Button=Apply WIM/SWM/ESD file... +Apply.FFU.File.Button=Apply FFU file... +Capture.Install.Dir.Button=Capture installation directory to WIM file... +Capture.Install.Drive.Button=Capture installation drive to FFU file... +DISMTools.Label=DISMTools + +[Designer.MigrationForm] +Wait.Message=Please wait while DISMTools migrates your old settings file to work on this version. This may take some time. +Wait.Label=Aguarde... +DISMTools.Label=DISMTools + +[Designer.MountDirCreation] +Create.Label=Do you want to create the mount directory? +Yes.Button=Yes +No.Button=No +MountImage.Label=Mount an image + +[Designer.MountedImgMgr] +Overview.Images.Message=Here is an overview of the images that have been mounted on this system. You can look up information about them, and perform some basic tasks. To fully perform image actions with this program though, you need to load the mount directory into a project: +ImageFile.Column=Image file +Index.Column=Índice +MountDirectory.Column=Mount directory +Status.Column=Estado +Read.Write.Column=Read/write permissions? +LoadProject.Button=Load into project +Value.Button=... +Open.Mount.Dir.Button=Open mount directory +Enable.Write.Button=Enable write permissions +ReloadServicing.Button=Reload servicing +Remove.VolumeImages.Button=Remove volume images... +UnmountImage.Button=Unmount image +Image.Manager.Label=Mounted image manager + +[Designer.MUMAdd] +Ok.Button=OK +Cancel.Button=Cancelar +DialogHelp.Message=This dialog lets you add a Microsoft Update Manifest (MUM) file to the target image. You can only specify one at a time.{crlf;}{crlf;}Do note that this is for advanced use only and may compromise the target Windows image. +Path.Manifest.File.Label=Path of the manifest file to add: +Browse.Button=Procurar... +MUMFiles.Filter=Microsoft Update Manifest (MUM) files|update.mum +Update.Manifest.Label=Add update manifest + +[Designer.NewProj] +Ok.Button=OK +Cancel.Button=Cancelar +Options.Required.Label=Please specify the options to create a new project: +Project.Group=Projeto +Browse.Button=Procurar... +Location.Label=Location*: +Name.Label=Name*: +Folder.Store.Description=Please select a folder to store this project: +Fields.End.Required.Label=The fields that end in * are required +Create.Project.Label=Create a new project + +[Designer.NewTestingEnv] +Download.Windows.ADK.Link=Download the Windows ADK +Create.Button=Create +Cancel.Button=Cancelar +WizardHelp.Message=This wizard will create an environment that will help you test your applications on Windows Preinstallation Environments.{crlf;}{crlf;}The project that will be created contains a template solution compatible with all environments and resources for the creation of applications for Windows Preinstallation Environments. You can learn more about these projects in the included README file. +Architecture.Label=Arquitetura: +Env.Architecture.Label=Environment architecture: +Browse.Button=Procurar... +Target.Project.Label=Target project location: +Progress.Group=Progresso +Re.Ready.Create.Label=Once you're ready, click the Create button. +Other.Things.Message=You can do other things while the ISO is being created. Come back here anytime for an updated status. +Status.Label=Estado +Create.Environment.Label=Create a testing environment + +[Designer.Unattend] +Welcome.Label=Welcome +RegionalConfig.Label=Regional Configuration +Basic.System.Config.Label=Basic System Configuration +TreeNode.Label=Time Zone +DiskConfig.Label=Disk Configuration +ProductKey.Label=Product Key +UserAccounts.Label=User Accounts +VirtualMachine.Support.Label=Virtual Machine Support +Wireless.Networking.Label=Wireless Networking +SystemTelemetry.Label=System Telemetry +PostInstall.Scripts.Label=Post-Installation Scripts +Component.Settings.Label=Component Settings +Finish.Label=Finish +EditorMode.Label=Editor mode +ExpressMode.Label=Express mode +Notereturn.Applying.Label=NOTE: you will return to this wizard after applying the answer file +EditAnswerFile.Link=Edit answer file +Open.Windows.System.Link=Open with Windows System Image Manager +Apply.Unattended.Link=Apply unattended answer file... +Open.Location.File.Link=Open the location of the file +Create.Another.Link=Create another answer file +FileCreated.Message=The unattended answer file has been created at the location you specified. What do you want to do now? +Congratulations.Done.Label=Congratulations! You have finished +Wait.Take.Label=Please wait - this can take some time +Progress.Label=Progress: +Wait.UnattendAnswer.Button=Please wait while your unattended answer file is being created... +Something.Right.Go.Message=If something is not right, you will need to go back to that page in order to change the setting. Do not worry: other settings will be kept intact +WordWrap.CheckBox=Word wrap +ReviewSettings.Label=Review your settings for the unattended answer file +Don.Twant.Add.Label=Don't want to add custom components? Click Next to skip this step. +No.Custom.None.Message=No custom components have been added yet. Click the plus symbol on the top of this section to add a new component. +Learn.Custom.Link=Learn more about custom components in Windows +Pass.Label=Pass: +Component.Label=Component: +Component.Count.Label=Component {{current}} of {{count}} +Learn.Component.Link=Learn more about this component +Screen.Add.Message=In this screen you can add additional components that you want to configure in your unattended answer file. Add new components, specify their passes and their data, and click Next. +Components.Label=Configure additional components +Hide.Script.Windows.CheckBox=Hide script windows +RestartExplorer.CheckBox=Restart Windows Explorer after running the scripts +Import.StarterScript.Button=Import a predefined Starter Script... +ImportScript.Button=Import a Starter Script in file system... +Language.Label=Language: +OpenScript.Button=Open script... +Scripts.Have.None.Message=No scripts have been added to this stage yet. Click the plus symbol on the top of this section to add a new script. +Script.Count.Label=Script {{current}} of {{count}} +System.Config.Link=During system configuration +First.User.Logs.Link=When the first user logs on +Whenever.User.Logs.Link=Whenever a user logs on for the first time +ScriptScreenHelp.Message=In this screen you can configure scripts that will be run during a specific stage of Windows installation. Use the sections below to specify the code for the scripts.{crlf;}{crlf;}If you don't want to configure scripts, click Next. +Run.Install.Label=What will be run after installation? +EnableTelemetry.RadioButton=Enable telemetry +DisableTelemetry.RadioButton=Disable telemetry +ConfigureSettings.CheckBox=I want to configure these settings during installation +Control.Limit.Much.Message=Control and limit how much information is sent to Microsoft and third-parties +WirelessSettings.RadioButton=Configure settings for the wireless network now: +Access.Router.Config.Link=Access router configuration to learn more +Open.Least.Secure.Item=Open (least secure) +Wpapsk.Item=WPA2-PSK +Wpasae.Item=WPA3-SAE +ConnectHidden.CheckBox=Connect even if not broadcasting +Password.Label=Password: +AuthTechnology.Label=Authentication technology: +Technology.Both.Choose.Label=Please choose the technology that both the wireless router and your network adapter support. +SsidnetworkName.Label=SSID (Network Name): +SkipConfig.RadioButton=Skip configuration +Option.Either.Choose.Label=Choose this option if you either don't have a network adapter or plan to use Ethernet +WirelessSettings.Label=Configure wireless network settings and get connected online +Guest.Additions.Message=- Use Guest Additions with Oracle VM VirtualBox{crlf;}- Use VMware Tools with VMware hypervisors{crlf;}- Use VirtIO Guest Tools with QEMU-based hypervisors{crlf;}- Use Parallels Tools with Parallels hypervisors on Macintosh computers +Virtual.Box.Guest.Item=VirtualBox Guest Additions +VmwareTools.Item=VMware Tools +Virt.Ioguest.Tools.Item=VirtIO Guest Tools +ParallelsTools.Item=Parallels Tools +VirtualMachine.Label=Virtual Machine Support: +Iplan.Target.RadioButton=No, I plan on using the target installation on a real system +Iwant.Target.RadioButton=Yes, I want to use the target installation on a virtual machine +Add.Enhanced.Support.Message=Do you want to add enhanced support from your virtual machine solution? +Checking.Option.Target.Label=Checking this option will make the target installation more vulnerable to brute-force attacks +Amount.Failed.Attempts.Label=After the following amount of failed attempts: +UnlockMinutes.Label=After the following amount of minutes, unlock the account: +Lock.Out.Account.Label=Lock out an account... +TimeframeMinutes.Label=Within the following timeframe in minutes: +CustomLockout.RadioButton=Continue with custom Account Lockout policies +DefaultLockout.RadioButton=Continue with default Account Lockout policies +DisablePolicy.CheckBox=Disable policy +AccountLockout.Label=Configure Account Lockout policies for the target system +Days.Label=days +ExpirePassword.RadioButton=Passwords should expire after the following number of days: +Expire42Days.RadioButton=Passwords should expire after 42 days +PasswordsExpire.RadioButton=Passwords should expire after a certain amount of days (not recommended by NIST) +NeverExpire.RadioButton=Passwords should never expire +PasswordsExpire.Label=Should passwords expire? +AccountName.Label=Account name: +Account.Label=Account 1: +Account.Option2.CheckBox=Account 2: +Account.Option3.CheckBox=Account 3: +Account.Option4.CheckBox=Account 4: +Account.Option5.CheckBox=Account 5: +UserList.Label=User accounts: +AccountGroup.Label=Account group: +AccountPassword.Label=Account password: +Account.Display.Name.Label=Account display name: +FirstLog.Group=First log on +Log.Built.Admin.RadioButton=Log on to the built-in administrator account, with password: +Log.First.Admin.RadioButton=Log on to the first administrator account created +Auto.Login.Admin.CheckBox=Log on automatically to an Administrator account +ObscurePasswords.CheckBox=Obscure passwords with Base64 +Ask.Microsoft.CheckBox=Ask for a Microsoft account interactively +Target.Install.Label=Who will use the target installation? +FirmwareProductKey.CheckBox=Get product key from firmware (modern systems only) +Product.Label=Please make sure that the product key you enter is valid +DISM.Tools.Cannot.Label=DISMTools cannot verify whether product keys can be valid for activation +Type.Each.Character.Label=(Type each character of the product key, including the dashes) +ProductKey.Custom.Label=Product Key: +Detect.Image.Edition.Button=Detect from image edition +Copy.Button=Copy +Only.Generic.Key.Label=You should only use this generic key with the edition you want to deploy +ProductKey.Generic.Label=Product Key: +ProductKey.Edition.Label=Use the product key for this edition: +CustomProductKey.RadioButton=Use a custom product key +GenericKey.RadioButton=Use a generic product key (no activation capabilities) +ProductKey.Type.Label=Type your product key for operating system installation +RecoveryPartition.Label=Windows Recovery Environment partition size (in MB): +InstallRecoveryEnv.CheckBox=Install a Recovery Environment +EFI.System.Label=EFI System Partition (ESP) size (in MB): +MBR.RadioButton=MBR +GPT.RadioButton=GPT +PartitionTable.Label=Partition table: +Skip.Disk.Config.Label=Uncheck this only if you want to set up disk configuration now. +DiskLayout.Label=Configure the disk and partition layout of the target system +Time.Label=Time +CurrentTime.Label=Time +Time.Selected.Zone.Label=Current time (selected time zone): +Time.UTC.Label=Current time (UTC): +Set.Time.Zone.RadioButton=Set a time zone manually: +Windows.Decide.RadioButton=Let Windows decide my time zone based on the regional configurations I set earlier +Configure.Time.Zone.Label=Configure time zone settings +DesktopX86.Item=x86 (Desktop 32-Bit) +DesktopX64.Item=x64 (Desktop 64-Bit) +Armwindows.Item=ARM64 (Windows on ARM) +UseConfigSet.CheckBox=Use a configuration set or distribution share +Windows.Set.Random.CheckBox=Let Windows set a random computer name +Config.Set.Message=Make sure that the configuration set or distribution share has been created before copying the resulting unattended answer file to an ISO file and installing the operating system. You can create configuration sets or distribution shares with the Windows System Image Manager (SIM) +Script.Sets.Name.RadioButton=Have the following script configure the name (advanced): +Get.Computer.Name.Button=Get computer name +ComputerName.Label=Computer name: +Type.Computer.Name.Label=Please type a computer name +Check.Option.Only.Message=Check this option only if the target system does not have any network capabilities. You can configure local users in the User Accounts section +BypassNetwork.CheckBox=Bypass Mandatory Network Connection +BypassRequirements.CheckBox=Bypass System Requirements +Windows11.Label=Windows 11 settings: +System.Architec.Label=Please select the system architecture that is supported by the target Windows image to apply +Processor.Architecture.Label=Processor architecture: +BasicSettings.Label=Configure basic system settings +Configure.Settings.Label=You will need to configure these settings during the setup process +SystemLanguage.Label=System language: +SystemLocale.Label=System locale: +HomeLocation.Label=Home location: +Keyboard.Layout.IME.Label=Keyboard layout/IME: +Country.EEA.Choose.Button=Choose country from the EEA +Additional.Layouts.Button=Additional layouts +ConfigureLater.RadioButton=Configure these settings later +SettingsNow.RadioButton=Configure these settings now: +LanguageKeyboard.Label=Configure your language, keyboard layout, and other regional settings +Copy.Linux.Mac.Link=Copy Linux and macOS versions of the unattended answer file generator program... +OnlineGenerator.Link=Answer file generator (online version) +Welcome.Unattended.Label=Welcome to the unattended answer file creation wizard +CreationHelp.Message=The unattended answer file creation wizard lets you create unattended answer files using intuitive interfaces. This wizard is suitable for those people who have never created unattended answer files before or do not want to use a text editor.{crlf;}{crlf;}In this wizard, you will be able to configure regional settings, user accounts, wireless settings, virtual machine support, and more. If you need to add more functionality to your file after creating it, you can use the Editor mode, which you can access by clicking the button on the bottom left.{crlf;}{crlf;}Special thanks to Christoph Schneegans for making the library that makes this wizard possible. You can also use his generator website to configure more settings, like tweaks or Windows Defender Application Control rules.{crlf;}{crlf;}{crlf;}To begin creating your answer file, click Next. +AvailableNow.Label=Not available for now! +NewOverwrite.Label=New (overwrites existing content) +Open.Button=Open... +Save.Button=Save as... +WordWrap.Label=Word wrap +Help.Label=Ajuda +NormalizeSpacing.Label=Normalize spacing +NormalizeSpacing.Tooltip=Makes the spacing consistent by replacing tabs with spaces +WizardHelp.Label=If you haven't created unattended answer files before, use this wizard to create one. +Join.Target.Device.Button=Join target device to domain... +BackButton.Button=Voltar +NextButton.Button=Next +Cancel.Button=Cancelar +Help.Button=Ajuda +Answer.Files.XML.Filter=Answer files|*.xml +Gen.Download.Complete.Title=UnattendGen download complete +EditorMode.Filter=Answer files|*.xml +Power.Shell.Scripts.Filter=PowerShell scripts|*.ps1;*.psm1|Batch scripts|*.bat;*.cmd|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript files|*.js;*.jse +OpenScript.Title=Open script +Path.Description=Specify the path on which you want to store Linux and macOS versions of UnattendGen: +DISM.Tools.Starter.Filter=DISMTools Starter Scripts|*.dtss +Pick.StarterScript.Title=Pick a Starter Script +CreationHelp.Label=Unattended answer file creation wizard +TimeZone.Label=Time zone: +ScriptRun.Description=To configure a script to run at a specific stage, click the stage: +ComputerName.RadioButton=Choose a computer name yourself (recommended) +SelfContained.Message=The self-contained version of UnattendGen has been successfully downloaded. DISMTools will use this version from now on + +[Designer.NewUnattend.LocalAccounts] +OnlyNow.Label=Uncheck this only if you want to set up local accounts now + +[Designer.NewsFeedCard] +Item.Title=Título da notícia +ItemDate.Label=Data da notícia + +[Designer.OfflineDriveList] +Ok.Button=OK +Cancel.Button=Cancelar +Refresh.Button=Atualizar +DriveLetter.Column=Drive letter +DriveLabel.Column=Drive label +DriveType.Column=Drive type +TotalSize.Column=Total size +Available.Free.Space.Column=Available free space +DriveFormat.Column=Drive format +ContainsWindows.Column=Contains Windows? +Windows.Column=Windows version +Disk.Choose.Label=Choose a disk +Begin.Install.Message=To begin performing offline installation management, please choose a disk shown in the list below. If additional disks that contain Windows installations have been added or removed, simply click the Refresh button. + +[Designer.OneDriveExclusion] +Exclude.Button=Exclude +CancelButton.Button=Cancelar +Tool.Help.Exclude.Message=This tool will help you exclude user OneDrive folders in the configuration list you're working on. Simply specify the path to which you want to apply the configuration list file, and click Exclude.{crlf;}{crlf;}NOTE: once you've run this tool and excluded user OneDrive folders, you shouldn't use the configuration list on an image other than the one you specify here. If you want to use the configuration list on other images, remove the user OneDrive folders in the configuration list and re-run this tool. +Re.Ready.Label=When you're ready, click Exclude. +Path.Exclude.Label=Path to exclude OneDrive folders from: +Browse.Button=Procurar... +UserFolderPath.Description=Choose a path that contains user folders: +Exclude.User.Label=Exclude user OneDrive folders + +[Designer.Options] +Ok.Button=OK +Cancel.Button=Cancelar +DISM.Executable.Filter=DISM executable|dism.exe +Dismexecutable.Title=Especificar o executável DISM a utilizar +CheckUpdates.CheckBox=Verificar se há actualizações +Remount.Mounted.CheckBox=Remontar imagens montadas que necessitem de um recarregamento da sessão de manutenção +Behavior.OnStartup.Label=Definir opções que gostaria de efetuar quando o programa arranca: +Settings.Aren.Label=Estas configurações não são aplicáveis a instalações não portáteis +FileIcons.Projects.CheckBox=Set custom file icons for DISMTools projects +Open.Starter.Scripts.Label=Abrir scripts de arranque com o Editor de scripts de arranque +Set.File.Assoc.Button=Configurar associações de ficheiros +Open.My.Projects.Label=Open my projects with this copy of DISMTools +Manage.File.Assoc.Label=Gerir associações de ficheiros para os componentes do DISMTools: +AdvancedSettings.Button=Configurações avançadas +Learn.Background.Link=Saiba mais sobre os processos em segundo plano +Uses.Bg.Procs.Message=O programa usa processos em segundo plano para reunir informações completas sobre a imagem, como datas de modificação, pacotes instalados, recursos presentes e muito mais +Every.Time.Project.Item=Sempre que um projeto tenha sido carregado com êxito +Once.Item=Uma vez +Notify.Label=Quando é que o programa o deve notificar sobre os processos em segundo plano que estão a ser iniciados? +Notify.Me.CheckBox=Notificar-me quando os processos em segundo plano tiverem iniciado +Reports.Allow.Shown.Label=Alguns relatórios não permitem ser mostrados como uma tabela. +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +List.Item=lista +Table.Item=tabela +ExampleReport.Label=Exemplo de relatório: +LogView.Label=Vista de registo: +Show.Command.Output.CheckBox=Mostrar a saída do comando em inglês +Enough.Space.Selected.Label=Pode não haver espaço suficiente no diretório temporário selecionado para algumas operações. +ScdirSpace.Label= +Space.Left.Selected.Label=Espaço restante no diretório de rascunho selecionado: +Browse.Button=Navegar... +ScratchDirectory.Label=Diretório temporário +Scratch.Dir.Message=O programa utilizará o diretório de rascunho fornecido pelo projeto, se tiver sido carregado um. Se estiver nos modos de gestão da instalação online ou offline, o programa utilizará o seu diretório de rascunho +Scratch.Dir.Required.Label=Especifique o diretório de rascunho a utilizar para as operações DISM: +Scratch.Dir.CheckBox=Utilizar um diretório de rascunho +Always.Save.CheckBox=Guardar sempre informações completas sobre os seguintes elementos: +SettingsConsider.Label=Escolha as configurações que o programa deve considerar quando guardar informações de imagem: +Installed.Packages.CheckBox=Pacotes instalados +InstalledDrivers.CheckBox=Controladores instalados +Capabilities.CheckBox=Capacidades +Features.CheckBox=Características +Installed.AppX.CheckBox=Pacotes AppX instalados +Checked.Computer.Message=Se esta opção estiver selecionada, o computador não será reiniciado automaticamente, mesmo quando estiver a efetuar operações silenciosas +QuietOperations.Message=Quando as operações são efectuadas em silêncio, o programa oculta as informações e o progresso. As mensagens de erro continuarão a ser mostradas.{crlf;}Esta opção não será utilizada para obter informações sobre, por exemplo, pacotes ou funcionalidades.{crlf;}Além disso, ao efetuar operações de imagem, o computador pode reiniciar-se automaticamente. +Skip.System.Restart.CheckBox=Ignorar o reinício do sistema +Quietly.Image.Ops.CheckBox=Efetuar operações de imagem silenciosamente +Log.File.Display.Message=O ficheiro de registo deve apresentar erros, avisos e mensagens de informação após a execução de uma operação de imagem. +Errors.Warnings.Label=Erros, avisos e mensagens de informação (nível de registo 3) +Image.Ops.Message=Quando efetuar operações de imagem na linha de comandos, especifique o argumento {quot;}/LogPath{quot;} para guardar o registo da operação de imagem no ficheiro de registo de destino. +Log.File.Level.Label=Nível do ficheiro de registo: +Operation.Log.File.Label=Ficheiro de registo de operações: +Classic.RadioButton=Clássico +Modern.RadioButton=Moderna +Secondary.Progress.Label=Estilo do painel de progresso secundário: +Font.Readable.Log.Message=Este tipo de letra pode não ser legível em janelas de registo. Embora possa continuar a utilizá-lo, recomendamos tipos de letra monoespaçados para uma maior legibilidade. +Preview.Label=Pré-visualização: +Log.Window.Font.Label=Tipo de letra da janela de registo: +Uppercase.Menus.CheckBox=Utilizar menus em maiúsculas +System.Setting.Item=Utilizar a configuração do sistema +LightMode.Item=Modo claro +DarkMode.Item=Modo escuro +Language.Label=Idioma: +ColorMode.Label=Modo de cor: +SettingsFile.Item=Ficheiro de configurações +Registry.Item=Registo +Enable.Disable.Message=O programa irá ativar ou desativar determinadas funcionalidades de acordo com o que a versão DISM suporta. Como é que isso vai afetar a minha utilização deste programa e que funcionalidades serão desactivadas em conformidade? +View.DISM.Button=Ver versões de componentes DISM +Dismver.Label= +SaveSettings.Label=Guardar configurações em: +Version.Label=Versão: +Dismexecutable.Path.Label=Localização do executável DISM: +ResetPreferences.Label=Repor preferências +LogSFD.Filter=All files|*.* +Location.Log.File.Title=Especificar a localização do ficheiro de registo +Program.Label=Programa +Personalization.Label=Personalização +Logs.Label=Registos +ImageOperations.Label=Operações de imagem +Scratch.Dir.Label=Diretório temporário +ProgramOutput.Label=Saída do programa +BgProcesses.Label=Processos em segundo plano +FileAssociations.Label=Associações de ficheiros +StartupOptions.Label=Opções de arranque +ShutdownOptions.Label=Opções de encerramento +Difference.Between.Link=Qual é a diferença entre nomes de apresentação e nomes de apresentação amigáveis? +PackageName.Label=Nome do pacote: +RaymanJungle.Label=UbisoftEntertainment.RaymanJungleRun_1.2.0.88_x86__dbgk1hhpxymar +DisplayName.Label=Nome de apresentação: +Display.Name.Only.Item=Apenas nome de apresentação +Display.Name.Friendly.Item=Nome de apresentação e depois nome amigável +Friendly.Display.Name.Item=Apenas nome amigável +Example.Label=Exemplo: +Remove.AppX.Label=When removing AppX packages, show display names using this format: +Only.Available.Message=This is only available when managing active installations.{crlf;}When getting information about AppX packages, DISMTools can map the IDs and names of the local accounts in this system to tell you which users an application is registered to more precisely. +Map.System.Accounts.CheckBox=Mapear contas do sistema para as informações de registo da aplicação +Show.Dates.Human.CheckBox=Mostrar datas num formato legível +PreventSleep.CheckBox=Impedir que o computador entre em suspensão durante operações de imagem +Saving.Image.Label=Guardar informações da imagem +Help.Me.Understand.Link=Ajude-me a compreender os níveis de tolerância das funcionalidades de IA +Turn.Off.Many.Item=Desativar o máximo possível de funcionalidades de IA nos motores de pesquisa. Não as suporto +Me.Control.AI.Item=Deixar-me controlar as funcionalidades de IA no meu motor de pesquisa +Turn.Many.Aifeatures.Item=Ativar o máximo possível de funcionalidades de IA nos motores de pesquisa +AIFeature.Label=Tolerância das funcionalidades de inteligência artificial (IA): +Search.Engine.Web.Label=Motor de pesquisa a utilizar para pesquisas na Web: +Searching.Image.Online.Label=Pesquisar informações da imagem online +Learn.Message=Se quiser saber mais sobre um item online, pode utilizar a pesquisa na Web. Escolha as definições que o programa deve considerar para pesquisas na Web: +RunNow.Button=Executar agora +Behavior.OnClose.Label=Configurar as opções que gostaria de executar quando o programa fecha: +Automatically.Clean.CheckBox=Limpar automaticamente os pontos de montagem (inicia um processo separado) +InstallService.Button=Instalar serviço +EnableService.Button=Ativar serviço +DisableService.Button=Desativar serviço +DeleteService.Button=Eliminar serviço +ServiceStatus.Group=Estado do serviço +Installed.Label=Instalado? +InstallationPath.Label=Caminho de instalação: +Automatic.Image.Reload.Label=Serviço de recarregamento automático de imagens +Still.See.Standard.Message=Ainda poderá ver os procedimentos padrão de recarregamento de sessões de manutenção do DISMTools para imagens cujas sessões de manutenção o serviço não conseguiu recarregar. +Automatic.Image.Message=O serviço de recarregamento automático de imagens pode ajudar a manter as suas imagens do Windows prontas para manutenção, recarregando as respetivas sessões de manutenção no arranque do sistema. Pode controlar o serviço aqui: +ColorThemes.Group=Temas de cores +DesignThemes.Button=Criar os seus temas +LightMode.Label=Modo claro: +Own.Themes.Label=Também pode criar os seus próprios temas. +Change.Color.Theme.Label=Pode fazer com que o programa altere o tema de cores de acordo com o modo de cor preferido. +DarkMode.Label=Modo escuro: +Show.Date.Time.CheckBox=Mostrar data e hora na vista do projeto +LogCustomization.Label=Personalização do registo +Show.Log.View.CheckBox=Mostrar a vista de registo no painel de progresso por predefinição +Show.Me.Logs.Link=Mostre-me onde estes registos estão armazenados +Disable.Dyna.Log.CheckBox=Desativar o registo DynaLog +Dyna.Log.Logging.Label=Controlo de registo DynaLog +Dyna.Log.Logging.Message=O registo DynaLog fornece um método para guardar registos de diagnóstico que podem ser utilizados para ajudar a corrigir problemas do programa, caso os encontre. Pode desativar o registo utilizando o botão abaixo, mas não é recomendado.{crlf;}{crlf;} +SystemEditor.Label=Editor do sistema +Editor.Open.Log.Label=Editor para abrir ficheiros de registo com: +Default.Op.Logs.Message=Por predefinição, os registos de operações são abertos com o Bloco de Notas em caso de erro de operação. No entanto, se pretender abri-los com um programa diferente, especifique-o abaixo: +ProgramsEXE.Filter=Programs|*.exe +Editor.Title=Especificar o editor a utilizar +Options.Label=Opções +Set.Custom.CheckBox=Definir ícones de ficheiro personalizados para scripts de arranque +ScratchDir.Description=Especificar o diretório de rascunho que o programa deve utilizar: +Custom.Scratch.RadioButton=Utilizar o diretório de rascunho especificado +Project.Scratch.RadioButton=Utilizar o diretório de rascunho do projeto ou do programa +Auto.Create.Logs.CheckBox=Criar automaticamente registos para cada operação realizada + +[Designer.OrphanedMount] +Ok.Button=OK +Cancel.Button=Cancelar +Project.Has.Orphans.Message=The project that has been loaded contains an orphaned image (an image which needs to be remounted){crlf;}The image will be remounted when you click {quot;}OK{quot;}. This should not affect your modifications to the image, and should also not take a long time.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +Servicing.Session.Label=This image needs a servicing session reload +DISMTools.Label=DISMTools + +[Designer.NoRollbackError] +Ok.Button=OK +Old.Versions.None.Message=No old versions were detected, because its files were not found. You may have had this version for longer than the uninstall window lets you have, or you may have deleted the files of the old version (to save space). You don't need to do anything. +Troll.Back.Older.Label=You can't roll back to an older version +DISMTools.Label=DISMTools + +[Designer.PXEServerPort] +Ok.Button=OK +Cancel.Button=Cancelar +Other.Message=Use this dialog to specify a different port for server components during this session if the default port is in use by a program or a service and the server components don't work correctly as a result.{crlf;}{crlf;}If you click Cancel, the selected server component will be launched using the default port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[Designer.PECustomizer] +Ok.Button=OK +Cancel.Button=Cancelar +Customize.Session.Label=Customize the Preinstallation Environment for this session: +Wallpaper.Group=Wallpaper +Browse.Button=Procurar... +My.Desktop.CheckBox=Use my current desktop background +Path.Custom.Wallpaper.Label=Path to custom wallpaper (JPG files only): +Show.Version.Top.CheckBox=Show version information on the top-left corner of the primary screen +Display.Images.CheckBox=Display images and groups in a WDS server in a graphical view +Show.Report.Hardware.Message=Show a report with hardware IDs of unknown devices when launching the Driver Installation Module +Default.Partitio.Table.Label=Default partition table override: +Partition.Table.Item=Do not use a partition table override +Default.Mbrpartition.Item=Default to using a MBR partition table regardless of the firmware type +Default.Gptpartition.Item=Default to using a GPT partition table regardless of the firmware type +Partition.Table.Message=Partition table overrides affect both disk configuration and boot file creation procedures taken. +SecureBoot.Label=On supported UEFI systems with Secure Boot and Windows UEFI CA 2023 certificates: +Ask.Me.Version.Item=Ask me which version of the boot binary to use +Connection.Attempts.Label=Amount of connection attempts that should be considered when connecting to a WDS server: +ConnectionAttempts.Label=connection attempt(s) +JpgfilesJpg.Filter=JPG files|*.jpg +CopyAnswerFiles.Message=Copy unattended answer files specified in the ISO creator to the Sysprep directory of the target system +Port.Used.PXE.Label=Port to be used by PXE Helper clients to send requests by default: +Pick.Default.Keyboard.Label=Pick the default keyboard layout to use in the Preinstallation Environment from the list below: +LayoutCode.Column=Layout Code +LayoutName.Column=Layout Name +Layout.Code.Selected.Label=Layout code of selected keyboard layout: +Save.Default.Policies.Label=Save to default policies +General.Tab=General +PXEs.Tab=PXE Helpers +KeyboardLayouts.Tab=Keyboard Layouts +Option.Only.Take.Label=This option will only take effect on images that don't have any answer files applied. +Unattended.Deployments.Tab=Unattended Deployments +Unattended.AnswerFile.Label=If an unattended answer file exists in both the ISO file and the Windows image file: +Ask.Me.Resolve.Item=Ask me how to resolve the conflict +Assuming.Each.Answer.Message=Assuming what each of the answer files will do is not a good idea because you don't expect what each file will have in different operating system deployment runs.{crlf;}{crlf;}Therefore, you should manually review each of the answer files when you encounter conflicts. Or, if your Windows image contains an answer file, don't include one with your ISO file, as the one from the Windows image will automatically be applied during setup.{crlf;}{crlf;}If you use bootable media creation solutions, such as Rufus, configure them so they don't override your answer file. +CustomizePE.Label=Customize Preinstallation Environment +KeyboardOverride.CheckBox=Override keyboard layouts used by target images with the one I select here + +[Designer.PECustomizer.Conflict] +ISO.Item=Handle the conflict by using the answer file of the ISO file +WindowsImage.Item=Handle the conflict by using the answer file of the Windows image file + +[Designer.PECustomizer.BootSign] +Windows.UEFI.CA.Item=Default to boot binaries signed with Windows UEFI CA 2023, if available on my target image +Windows.Production.PCA.Item=Default to boot binaries signed with Microsoft Windows Production PCA 2011 + +[Designer.PkgNameLookup] +Ok.Button=OK +Cancel.Button=Cancelar +ParentPackage.Label=Name of parent package: +Get.Package.Names.Label=Getting package names. Please wait... +Installed.Package.Label=Installed package names + +[Designer.PkgParentLookup] +Names.Installed.Label=Names of installed packages in the mounted image: + +[Designer.Wait] +Wait.Label=Aguarde... +Action.Label=Action + +[Designer.PrgAbout] +Ok.Button=OK +DISM.Tools.Version.Label=DISMTools - version {0} +DISM.Tools.Lets.Label=DISMTools lets you deploy, manage, and service Windows images with ease, thanks to a GUI. +Build.Date.Goes.Label=Build date goes here +ResourcesUsed.Label=These resources and components were used in the creation of this program: +Resources.Label=Resources +Fluency.Label=Fluency +Icons.Link=Icons8 +Sqlserver.Icon.Color.Label=SQL Server icon (Color) +Utilities.Label=Utilities +Zip.Label=7-Zip +VisitWebsite.Link=Visitar site +Help.Documentation.Label=Help documentation +Scintila.Netnu.Get.Label=Scintila.NET (NuGet package) +Managed.Dismnu.Get.Label=ManagedDism (NuGet package) +Command.Help.Source.Label=Command Help source +Microsoft.Link=Microsoft +BrandingAssets.Label=Branding assets +DarkUI.Label=DarkUI +Windows.Label=Windows Home Server 2011 +Whatsnew.Link=WHAT'S NEW +Licenses.Link=LICENSES +Credits.Link=CREDITS +CheckUpdates.Label=Check for updates +AboutProgram.Label=About this program + +[Designer.PrgSetup] +Set.Up.DISM.Label=Configurar DISMTools +Back.Button=Voltar +Next.Button=Seguinte +Cancel.Button=Cancelar +DISM.Tools.Free.Message=DISMTools é uma GUI gratuita e de código aberto, orientada para projectos, para operações DISM. Para iniciar a configuração, clique em Seguinte. +Welcome.DISM.Tools.Label=Bem-vindo ao DISMTools +Secondary.Progress.Label=Estilo do painel de progresso secundário: +Log.Window.Font.Label=Tipo de letra da janela de registo: +Language.Label=Idioma: +ColorMode.Label=Modo de cor: +System.Setting.ThemeItem=Utilizar a configuração do sistema +LightMode.Item=Modo de luz +DarkMode.Item=Modo escuro +Font.Readable.Log.Message=Esta fonte pode não ser legível em janelas de registo. Embora possa continuar a utilizá-lo, recomendamos tipos de letra monoespaçados para maior legibilidade. +Classic.RadioButton=Clássico +Modern.RadioButton=Moderno +Yours.Customize.Message=Torne-o seu. Personalize este programa a seu gosto e clique em Next. Estas configurações podem ser feitas a qualquer momento na secção {quot;}Personalização{quot;} da janela Opções +CustomizeProgram.Label=Personalizar este programa +Default.Log.File.Button=Utilizar ficheiro de registo predefinido +Browse.Button=Navegar... +LogFile.Label=Ficheiro de registo: +Log.File.Display.Message=O ficheiro de registo deve apresentar erros, avisos e mensagens de informação após a execução de uma operação de imagem. +Errors.Warnings.Label=Erros, avisos e mensagens de informação (nível de registo 3) +Auto.Create.Logs.CheckBox=Criar automaticamente registos no diretório de registos do programa +Log.Settings.Message=Especifique as configurações de registo e clique em Seguinte. Dependendo do nível de conteúdo que especificar, registaremos mais ou menos informações. Esta configuração pode ser feita a qualquer momento na secção {quot;}Logs{quot;} da janela Opções +Log.Label=O que devemos registar quando executa uma operação? +Windows.ADK.Module.Label=Módulo de compatibilidade com Windows Assessment and Deployment Kit (ADK) +WimlibModule.Label=Módulo de compatibilidade com wimlib-imagex +Install.Button=Instalar +Module.Install.Isn.Message=Se um módulo que pretende instalar não aparecer aqui, pode não ser compatível com esta versão do programa. Atualizar o DISMTools pode disponibilizar mais módulos compatíveis. +DISM.Tools.Supports.Message=O DISMTools suporta módulos que expandem o programa e melhoram as suas capacidades. Os módulos seguintes são compatíveis com esta versão do programa. +ExtendProgram.Label=Expandir este programa +Configure.Settings.Button=Configurar mais definições +Anything.Like.Label=Há mais alguma coisa que gostaria de configurar? +Settings.Available.Message=As configurações disponíveis são mais do que as que acabou de configurar. Se pretender alterar mais definições, clique no botão abaixo. Também vamos tornar essas configurações persistentes. +Done.Setting.Up.Message=Terminou a configuração básica para usar o DISMTools da forma desejada. Clique em {quot;}Finish{quot;}, e as configurações serão mantidas. +SetupComplete.Label=A configuração está concluída +Stay.Up.Date.Label=Mantenha-se atualizado para receber novas funcionalidades e uma experiência melhorada +Get.Started.DISM.Label=Começar a utilizar o DISMTools e o serviço de manutenção de imagens, para obter mais rapidamente +GetStarted.Button=Obter +CheckUpdates.Button=Verificar se há actualizações +Ve.Set.Things.Label=Agora que já configurou tudo, recomendamos que efectue as seguintes acções: +Perform.Steps.Time.Label=Pode executar estes passos em qualquer altura. +SaveFile.Filter=Todos os ficheiros|*.* +Log.File.Title=Especificar o ficheiro de registo + +[Designer.Progress] +Image.Operations.Label=Image operations in progress... +Wait.Tasks.Label=Please wait while the following tasks are done. This may take some time. +Cancel.Button=Cancelar +CurrentTask.Label=currentTask +AllTasks.Label=allTasks +Tasks.Tcont.Label=Tasks: {currentTCont} of {taskCount} +ShowLog.Label=Show log +Show.Dismlog.File.Link=Show DISM log file (advanced) +Progress.Label=Progresso + +[Designer.ProjProps] +Ok.Button=OK +Cancel.Button=Cancelar +ProjectGUID.Label=Project GUID: +CreationDate.Label=Creation date: +Location.Label=Location: +ProjGuid.Label=projGuid +ProjTzdata.Label=projTZData +ProjPath.Label=projPath +ProjName.Label=projName +Name.Label=Nome: +RemountImg.Label=Reload +Recover.Label=Recover +MountDirectory.Label=Mount directory: +Installed.Languages.Label=Installed languages: +FileFormat.Label=File format: +ModificationDate.Label=Modification date: +FileCount.Label=File count: +DirectoryCount.Label=Directory count: +System.Root.Dir.Label=System root directory: +ProductSuite.Label=Product suite: +ProductType.Label=Product type: +Edition.Label=Edition: +ServicePackLevel.Label=Service Pack level: +ServicePackBuild.Label=Service Pack build: +HAL.Label=HAL: +Architecture.Label=Arquitetura: +Supports.WIM.Boot.Label=Supports WIMBoot? +ImageStatus.Label=Image status: +ImageIndex.Label=Image index: +Size.Label=Size: +Description.Label=Descrição: +Version.Label=Versão: +ImageFile.Label=Image file: +ImgFormat.Label=imgFormat +ImgModification.Label=imgModification +ImgCreation.Label=imgCreation +ImgFiles.Label=imgFiles +ImgDirs.Label=imgDirs +Img.Sys.Root.Label=imgSysRoot +ImgPsuite.Label=imgPSuite +ImgPtype.Label=imgPType +ImgEdition.Label=imgEdition +ImgSplvl.Label=imgSPLvl +ImgSpbuild.Label=imgSPBuild +ImgHal.Label=imgHal +Img.Mount.Dir.Label=imgMountDir +ImgArch.Label=imgArch +Img.WIM.Boot.Label=imgWimBootStatus +Img.Mounted.Status.Label=imgMountedStatus +ImgSize.Label=imgSize +Img.Mounted.Desc.Label=imgMountedDesc +Img.Mounted.Name.Label=imgMountedName +ImgVersion.Label=imgVersion +ImgIndex.Label=imgIndex +ImgName.Label=imgName +Getting.Project.Image.Label=Getting project and image information. Please wait... +View.Ffuinformation.Label=View FFU information +Remount.Write.Label=Remount with write permissions +ImgRW.Label=imgRW +Image.Rwpermissions.Label=Image R/W permissions: +InstallationType.Label=Installation type: +Img.Inst.Type.Label=imgInstType +Image.Present.Project.Label=Image present on project? +ImgStatus.Label=imgStatus +Many.Cannot.Seen.Message=Many properties cannot be seen because an image has not yet been mounted. Once you mount it, detailed information will be shown here. Click here to mount an image +Props.Label=Properties + +[Designer.ProjectValues] +Old.File.Label=Old project file: +ExitButton.Button=Sair +Independent.Values.Group=Independent values +ImageLang.Label=ImageLang: +Image.Read.Write.Label=ImageReadWrite: +Image.Epoch.Modify.Label=ImageEpochModify: +Image.Epoch.Create.Label=ImageEpochCreate: +ImageFileCount.Value=ImageFileCount: +Image.Dir.Count.Label=ImageDirCount: +Image.Sys.Root.Label=ImageSysRoot: +ImagePsuite.Label=ImagePSuite: +ImagePtype.Label=ImagePType: +ImageEdition.Value=ImageEdition: +ImageSplevel.Label=ImageSPLevel: +ImageSpbuild.Label=ImageSPBuild: +ImageHal.Label=ImageHal: +ImageArch.Label=ImageArch: +Image.WIM.Boot.Label=ImageWIMBoot: +ImageDescription.Label=ImageDescription: +ImageName.Label=ImageName: +ImageVersion.Label=ImageVersion: +Image.Mount.Point.Label=ImageMountPoint: +ImageIndex.Label=ImageIndex: +ImageFile.Label=ImageFile: +Epoch.Creation.Time.Label=EpochCreationTime: +Location.Label=Location: +Name.Label=Nome: +ImageFile.Languages.Label=Image file languages +ImageFileDates.Label=Image file creation and modification dates stored in Unix time (GMT+0) +Verify.Image.Read.Label=Verify if image has read-write permissions +ImageFileCount.Label=Image file count +Image.Dir.Label.Label=Image directory count +Image.System.Root.Label=Image system root directory (\WINDOWS) +Image.Product.Suite.Label=Image product suite +Image.Product.Type.Label=Image product type +ImageEdition.Label=Image edition +ServicePackLevel.Label=Image Service Pack level (SP1, SP2, SP3...) +ServicePackBuild.Label=Image Service Pack build +HAL.Label=Image HAL (Hardware Abstraction Layer, hal.dll) +Mounted.Image.Arch.Label=Mounted image architecture (x86, amd64...) +Verify.Image.Supports.Label=Verify if image supports WIMBoot (Win8.1 only) +MountedDescription.Label=Mounted image friendly description +Mounted.Image.Friendly.Label=Mounted image friendly name +Image.Version.Grab.Label=Image version (grab version from ntoskrnl.exe) +ImageFile.Mount.Point.Label=Image file mount point +ImageFileIndex.Label=Mounted image file index +Mounted.ImageFile.Name.Label=Mounted image file name +Creation.Time.Unix.Label=Project creation time in Unix time (GMT+0) +ProjectLocation.Label=Project location +ProjectName.Label=Project name +Independent.Values.Message=Get independent values by piping {quot;}findstr{quot;} to the {quot;}type{quot;} command. Also pass the {quot;}/b{quot;} switch only to show matches on the beginning. +New.File.Label=New project file: +ContinueButton.Button=Continue +ProjectValues.Label=Project values + +[Designer.ServiceGroups] +Ok.Button=OK +Windows.Message=This Windows image contains the following registered groups for the system's service host. Note that the groups displayed here may not be the same as the groups defined by the services in the Service Control Manager (SCM). +GroupName.Column=Group Name +ServicesGroup.Column=Services in group +ServiceName.Column=Nome do serviço +DisplayName.Column=Nome a apresentar +Type.Column=Tipo +Total.Label=Total +Registered.Svc.Host.Label=Registered Service Host groups in image + +[Designer.RegistryPanel] +Tool.Lets.Load.Message=This tool lets you load the image registry hives you specify here to the local system. This lets you perform modifications to configuration stored in the Windows image. Once you have finished customizing a key from a hive, you can also unload it here: +Load.Button=Carregar +Ntuserdatdefault.User.Label=NTUSER.DAT (Default User) +Open.Button=Abrir +Default.Label=DEFAULT +System.Label=SYSTEM +Software.Label=SOFTWARE +Load.Custom.Hive=Load Custom Hive +Unload.Button=Unload +Browse.Button=Procurar... +PathRegistry.Label=Path in the registry: +HiveLocation.Label=Hive location: +Load.Different.Label=If you want to load a different registry hive, specify its path and click Load: +Image.Hives.Label=Image registry hives + +[Designer.ReloadProject] +Ok.Button=OK +Cancel.Button=Cancelar +ImageUnavailable.Message=The image that was loaded in this project is no longer available. This can happen if it was unmounted by an external program. Because of this, the project needs to be reloaded. Click {quot;}OK{quot;} to reload this project.{crlf;}{crlf;}NOTE: if you click {quot;}Cancel{quot;}, the project will be unloaded +ImageMissing.Label=This image is no longer available +DISMTools.Label=DISMTools + +[Designer.RemCapabilities] +Ok.Button=OK +Cancel.Button=Cancelar +Capability.Column=Capability +State.Column=Estado +Remove.Label=Remove capabilities + +[Designer.RemDrivers] +Ok.Button=OK +Cancel.Button=Cancelar +PublishedName.Column=Published name +Original.File.Name.Column=Nome original do ficheiro +ProviderName.Column=Provider name +ClassName.Column=Class name +Part.Windows.Column=Part of the Windows distribution? +BootCritical.Column=Is boot-critical? +Version.Column=Version +Date.Column=Data +DriverPackages.Wish.Label=Specify the driver packages you wish to remove and click OK: +Hide.Boot.Critical.CheckBox=Hide boot-critical drivers +Hide.Drivers.Part.CheckBox=Hide drivers part of the Windows distribution +RemoveDrivers.Label=Remove drivers + +[Designer.RemPackage] +Ok.Button=OK +Cancel.Button=Cancelar +PackageRemoval.Group=Package removal +Browse.Button=Procurar... +Note.May.Message=NOTE: the program may show packages that weren't added in the first place. However, if a package is not added, the program will skip it. +PackageSource.Label=Package source: +Package.Files.RadioButton=Specify package files: +Package.Names.RadioButton=Specify package names: +PackageSource.Description=Please specify a package source: +RemovePackages.Label=Remove packages + +[Designer.RemoveAppx] +Ok.Button=OK +Cancel.Button=Cancelar +PackageName.Column=Package name +App.Display.Name.Column=Application display name +Architecture.Column=Architecture +ResourceID.Column=Resource ID +Version.Column=Version +Registered.User.Column=Registered to any user? +Prov.Label=Remove provisioned AppX packages + +[Designer.ScriptBrowser] +Ok.Button=OK +Cancel.Button=Cancelar +Create.Starter.Button=Create your own starter scripts... +Name.Column=Nome +System.Config.Item=During System Configuration +First.User.Logs.Item=When the first user logs on +Whenever.User.Logs.Item=Whenever a user logs on for the first time +Scripts.Defined.User.Item=Scripts defined by the user +Stage.Type.Choose.Label=Choose a stage or script type: +EnlargePreview.Label=Enlarge preview +Export.Code.File.Button=Export script code to a file... +Okinsert.Label=Click OK to insert this script. Existing script contents will be replaced by this script. +ScriptCode.Label=Script Code: +Language.Label=Language: +Language.Value.Label=Language: {0} +Description.Label=Script Description +ScriptName.Label=Script Name +View.Label=Select a script to view its information. +StarterScripts.Help.Message=These predefined starter scripts can help you get the most out of your Windows image when using this unattended answer file. These scripts have been curated and tested by the developers.{crlf;}{crlf;}To get started, select a starter script from the list on the left.{crlf;}{crlf;}If you have a starter script that isn't included in this set of scripts, you can load it from the file system instead. +Export.Code.Title=Export Script Code +Leave.Full.Screen.Label=To leave full screen mode, click the button on the right or press ESC. +GoBack.Label=Go back +LoadStarterScript.Label=Load a predefined Starter Script + +[Designer.SaveProject] +Yes.Button=Yes +No.Button=No +Cancel.Button=Cancelar +SaveChanges.Label=Do you want to save the changes of this project? +Shutdown.Message=If you shut down or restart your system without unmounting the images, you will need to reload the servicing session. +AppName.Label=DISMTools + +[Designer.ScriptReorder] +Ok.Button=OK +Cancel.Button=Cancelar +Dialog.Alter.Order.Message=Use this dialog to alter the order with which the scripts will be run. Click OK to save the changes. Items at the top of the list are the first scripts that will run, whilst those at the bottom of the list are the last that will run. +ScriptCode.Label=Script Code: +Script.Column=Script # +ScriptOrder.Label=Script Order: +WordWrap.CheckBox=Word Wrap +Scripts.Stage.Label=Reorder scripts for this stage + +[Designer.Services] +Intro.Message=This tool lets you view and manage the services of this target image. Click Save service changes to save any changes made to the Windows services. +ServiceName.Column=Nome do serviço +DisplayName.Column=Nome a apresentar +Description.Column=Description +StartType.Column=Start Type +Type.Column=Tipo +ServiceInfo.Tab=Service Information +DelayedStart.CheckBox=Delayed Start +Description.Label=Service Description: +User.Flags.Label=User Service Flags: +ServiceType.Label=Service Type: +Start.Type.Label=Service Start Type: +Object.Name.Label=Service Object Name: +Image.Path.Label=Service Image Path: +Display.Name.Label=Service Display Name: +ServiceName.Label=Service Name: +Required.Privileges.Tab=Required Privileges +PrivilegeName.Column=Privilege Name +PrivilegeName.Display.Column=Privilege Display Name +Privilege.Description.Column=Privilege Description +ErrorControl.Tab=Error Control +FailureActions.Group=Failure Actions +FutureErrors.Label=On Future Errors: +NdError.Label=On 2nd Error: +ResetErrorCount.Label=Reset Error Count after the following minutes: +StError.Label=On 1st Error: +Error.Windows.Label=On service error, what should Windows do? +Dependencies.Tab=Service Dependencies +ServiceGroups.Tab=Service Groups +RegisteredHosts.Label=Get registered service host groups +Services.Belong.Group=Services that belong to this group +Part.Group.Label=This service is part of group: +Save.Changes.Label=Save service changes +ProgressLabel.Label=Aguarde... +Reload.Label=Reload +SelectService.Label=No service has been selected. Select a service above to view details. +Save.Button=Save service information... +MarkdownFiles.Filter=Markdown files|*.md +RestoreService.Label=Restore service +DeleteService.Label=Delete service +System.Label=System Service Management + +[Designer.ServiceMgmt] +Restart.Minutes.Label=Restart Service after the following minutes: +Dependent.Services.Label=The following services depend on this service: +Dependencies.Label=This service depends on the following services: + +[Designer.ImageEdition] +Ok.Button=OK +Cancel.Button=Cancelar +Target.Upgrade.Label=Target edition to upgrade to: +ServerOptions.Group=Active server installation options +Browse.Button=Procurar... +AcceptEULA.RadioButton=Accept the End-User License Agreement (EULA) and use the following product key: +Copy.EndUser.RadioButton=Copy the End-User License Agreement (EULA) to the following location: +Set.Image.Label=Set image edition + +[Designer.SetLayeredDriver] +Ok.Button=OK +Cancel.Button=Cancelar +Intro.Message=This action will let you set a keyboard layered driver for Japanese and Korean keyboards, as some users have keyboards with additional keys. Simply specify the new layered driver from the list below and click OK +CurrentDriver.Label=Current keyboard layered driver: +NewDriver.Label=New keyboard layered driver: +Driver.Already.Label=This driver has already been set +Title=Set keyboard layered driver + +[Designer.OSRollback] +Ok.Button=OK +Cancel.Button=Cancelar +Default.OS.Message=By default, and after an OS update, you have 10 days to roll back to the previous Windows version. However, you can change this setting if you want to revert to the old OS version at a later date.{crlf;}{crlf;}Please use the numeric slider to increase or decrease the amount of days you have to revert to the old Windows version. It must be between 2 and 60. +Amount.Days.Revert.Label=Amount of days you have to revert to the old Windows version: +OSUninstall.Label=Set operating system uninstall window + +[Designer.SetProductKey] +Ok.Button=OK +Cancel.Button=Cancelar +Type.ProductKey.Label=Type the product key that you want to set to your Windows image, including the dashes: +ValidateKey.Button=Validate key +Check.ProductKey.Message=If you want to check if your product key is valid for the Windows image, click Validate key. This will also check the syntax of your key. +SetProductKey.Label=Set product key + +[Designer.Scratch] +Ok.Button=OK +Cancel.Button=Cancelar +ScratchSpace.Label=Scratch space: +AmountWritable.Message=The scratch space is the amount of writable space available on the Windows PE system volume when its contents are copied to memory. Please specify a scratch space amount and click OK. +MB.Label=MB +ScratchSpace.Amount.Label=An invalid scratch space amount has been detected +Set.Windows.Pescratch.Label=Set Windows PE scratch space + +[Designer.SetTargetPath] +Ok.Button=OK +Cancel.Button=Cancelar +Target.Dir.Message=The target path is a directory where the Windows PE files will be copied to in order to boot to the environment. Please specify a target path and click OK. +TargetPath.Label=Target path: +Windows.Petarget.Label=Set Windows PE target path + +[Designer.SettingsResetDlg] +Yes.Button=Yes +No.Button=No +ProceedReset.Message=If you proceed, the settings will be reset to their default values. Once this process is complete, you'll return to the main program window.Do you want to proceed? +Form.Label=Reset preferences + +[Designer.SingleImageIndex] +Know.Indexes.Message=To know more about the indexes of an image, or some of its specific properties, go to {quot;}Commands > Image management > Get image information{quot;}, or click here +Ok.Button=OK +Cannot.Switch.Message=You cannot switch to other indexes. If you want to save the image changes, you can do so using a new, separate index. +Image.Seems.Only.Label=This image seems to have only one index +DISMTools.Label=DISMTools + +[Designer.SplashScreen] +VersionLabel.Label=Version +DISM.Tools.Starting.Button=DISMTools - Starting up... + +[Designer.UnattendMgr] +ProjectPath.Label=Project path: +Browse.Button=Procurar... +FileName.Column=Nome do ficheiro +Created.Column=Created +LastModified.Column=Last modified +LastAccessed.Column=Last accessed +ApplyImage.Button=Apply to image... +Open.File.Location.Button=Open file location +OpenFile.Button=Open file +Unattended.AnswerFile.Label=Unattended answer file manager + +[Designer.WimScriptEditor] +Config.List.Allows.Message=The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon. +Compression.Exclusion.List=Compression exclusion list +Edit.Button=Edit... +Add.Button=Add... +Remove.Button=Remover +Exclusion.Exception.List=Exclusion exception list +ExclusionList.Group=Exclusion list +New.Label=New +Open.Button=Open... +Save.Button=Save as... +Toggle.Word.Wrap.Label=Toggle word wrap +Help.Label=Ajuda +Tools.Label=Ferramentas +Exclude.User.One.Button=Exclude user OneDrive folders... +Inifiles.Filter=INI files|*.ini +Config.List.Load.Title=Specify the configuration list to load +Wimscript.Filter=INI files|*.ini +Location.Save.Config.Title=Specify the location to save the configuration list to +ConfigList.Label=DISM Configuration List Editor + +[Designer.WDSImageGroup] +Ok.Button=OK +Cancel.Button=Cancelar +Action.Choose.Label=Choose an action: +Refresh.Button=Atualizar +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[Designer.WDSImageCopy] +Ok.Button=OK +Cancel.Button=Cancelar +Pick.Button=Escolher... +Browse.Button=Procurar... +ImageFile.Server.Label=Image file to copy to server: +Mounted.Image.Button=Usar imagem montada +Images.Added.Group.Label=The images will be added to the following group: +Value.Column=# +ImageName.Column=Image Name +ImageDescription.Column=Image Description +ImageVersion.Column=Image Version +Image.Architecture.Column=Image Architecture +Pick.Server.Groups.Button=Pick from server groups... +SelectAll.Button=Select all +ClearSelection.Button=Clear selection +Progress.Group=Progresso +Re.Ready.OK.Label=Once you're ready, click OK. +Status.Label=Estado +WIM.Files.Filter=WIM files|*.wim +Image.Win.Deploy.Label=Copy an image to Windows Deployment Services + +[Designer.WimFileSource] +ImageFile.Label=Image file +ImageIndex.Label=Image index + +[DisableFeat] +DisableFeatures.Label=Desativar características +Image.Task.Header.Label={0} +PackageName.Label=Nome do pacote: +Features.Group=Características +Options.Group=Opções +Lookup.Button=Navegar... +Ok.Button=OK +Cancel.Button=Cancelar +FeatureName.Column=Nome da caraterística +State.Column=Estado +ParentPackage.CheckBox=Especificar o nome do pacote principal para as características +Remove.Feature.CheckBox=Remover caraterística sem remover manifesto + +[DisableFeat.Validation] +Features.Message=Por favor, seleccione as características a desativar e tente novamente. +FeaturesSelected.Title=Nenhuma caraterística selecionada + +[DismComponents] +Title.Label=Componentes DISM +Component.Column=Componente +Version.Column=Versão +Ok.Button=OK + +[DriverFileInfo] +Driver.File.Label=Informações sobre o ficheiro do controlador +Driver.File.Label.Label=Informações do ficheiro do controlador: {0} +Property.Column=Propriedade +Value.Column=Valor +Ok.Button=OK +Copy.Button=Copiar +PublishedName.Label=Nome publicado +Original.File.Name.Label=Nome do ficheiro original +Critical.Boot.Process.Label=É fundamental para o processo de arranque? +Yes.Button=Sim +No.Button=Não +Part.Windows.Label=Faz parte da distribuição do Windows? +ListItem.Button=Sim +Version.Label=Versão +ClassName.Label=Nome da classe +ClassDescription.Label=Descrição da classe +ClassGUID.Label=GUID da classe +ProviderName.Label=Nome do provedor +Date.Label=Data +SignatureStatus.Label=Estado da assinatura +CatalogFile.Label=Ficheiro de catálogo + +[DriverFileInfo.Messages] +Hresult.Label=(HRESULT: {lbrace;}0{rbrace;}) + +[DriverFilter.Classes] +AudioProcessing.Message=Includes Audio processing objects (APOs). For more info, see Windows Audio Processing Objects. +Battery.Devices.UPS.Label=Includes battery devices and UPS devices. +Windows.Message=(Windows Server 2003 and later versions) Includes all biometric-based personal identification devices. +Windows.Label=(Windows XP SP1 and later versions) Includes all Bluetooth devices. +Camera.Message=(Windows 10 version 1709 and later versions) Includes universal camera drivers. +Cd.Rom.Drives.Message=Includes CD-ROM drives, including SCSI CD-ROM drives. By default, the system's CD-ROM class installer also installs a system-supplied CD audio driver and CD-ROM changer driver as Plug and Play filters. +Hard.Disk.Drives.Label=Includes hard disk drives. See also the HDC and SCSIAdapter classes. +VideoAdapters.Message=Includes video adapters. Drivers for this class include display drivers and video miniport drivers. +Extension.Message=(Windows 10 and later versions) Includes all devices requiring customizations. For more information, see Using an Extension INF File. +Floppy.Disk.Drive.Label=Includes floppy disk drive controllers. +Floppy.Disk.Drives.Label=Includes floppy disk drives. +Includes.Hard.Message=Includes hard disk controllers, including ATA/ATAPI controllers but not SCSI and RAID disk controllers. +InputDevices.Message=Includes interactive input devices that are operated by the system-supplied HID class driver. Includes USB devices that comply with the USB HID Standard and non-USB devices that use a HID minidriver. For more information, see HIDClass Device Setup Class. See also the Keyboard or Mouse classes. +ControlDevices.Message=Includes devices that control the operation of multifunction IEEE 1284.4 peripheral devices. +Dot.Print.Functions.Message=Includes Dot4 print functions. A Dot4 print function is a function on a Dot4 device and has a single child device, which is a member of the Printer device setup class. +Ieeedevices.Support.Message=Includes IEEE 1394 devices that support the IEC-61883 protocol device class. The 61883 component includes the 61883.sys protocol driver that transmits various audio and video data streams over the 1394 bus. These currently include standard/high/low quality DV, MPEG2, DSS, and Audio. The IEC-61883 specifications define these data streams. +Ieeedevices.Support.Label=Includes IEEE 1394 devices that support the AVC protocol device class. +SBP2.Message=Includes IEEE 1394 devices that support the SBP2 protocol device class. +HostControllers.Message=Includes 1394 host controllers connected on a PCI bus, but not 1394 peripherals. Drivers for this class are system-supplied. +Still.Image.Capture.Label=Includes still-image capture devices, digital cameras, and scanners. +InfraredDevices.Message=Includes infrared devices. Drivers for this class include Serial-IR and Fast-IR NDIS miniports, but see also the Network Adapter class for other NDIS network adapter miniports. +Keyboards.Message=Includes all keyboards. That is, it must also be specified in the (secondary) INF for an enumerated child HID keyboard device. +ScsimediaChanger.Label=Includes SCSI media changer devices. +Memory.Devices.Such.Label=Includes memory devices, such as flash memory cards. +Modem.Devices.INF.Message=Includes modem devices. An INF file for a device of this class specifies the features and configuration of the device and stores this information in the registry. An INF file for a device of this class can also be used to install device drivers for a controllerless modem or a software modem. These devices split the functionality between the modem device and the device driver. For more information about modem INF files and Microsoft Windows Driver Model (WDM) modem devices, see Overview of Modem INF Files and Adding WDM Modem Support. +Display.Monitors.INF.Message=Includes display monitors. An INF for a device of this class installs no device drivers, but instead specifies the features of a particular monitor to be stored in the registry for use by drivers of video adapters. (Monitors are enumerated as the child devices of display adapters.) +Mouse.Devices.Message=Includes all mouse devices and other kinds of pointing devices, such as trackballs. That is, this class must also be specified in the (secondary) INF for an enumerated child HID mouse device. +Combo.Cards.Such.Message=Includes combo cards, such as a PCMCIA modem and network card adapter. The driver for such a Plug and Play multifunction device is installed under this class and enumerates the modem and network card separately as its child devices. +Audio.Dvdmultimedia.Message=Includes Audio and DVD multimedia devices, joystick ports, and full-motion video capture devices. +MultiportSerial.Message=Includes intelligent multiport serial cards, but not peripheral devices that connect to its ports. It doesn't include unintelligent (16550-type) multiport serial controllers or single-port serial controllers (see the Ports class). +NetworkAdapter.Message=Consists of network adapter drivers. These drivers must either call NdisMRegisterMiniportDriver or NetAdapterCreate. Drivers that don't use NDIS or NetAdapter should use a different setup class. +Includes.Network.Message=Includes network and/or print providers. NetClient components are deprecated in Windows 8.1, Windows Server 2012 R2, and later. +Network.Services.Such.Label=Includes network services, such as redirectors and servers. +NdisprotocolsCo.Message=Includes NDIS protocols CoNDIS stand-alone call managers, and CoNDIS clients, in addition to higher level drivers in transport stacks. +SecureDevices.Message=Includes devices that accelerate secure socket layer (SSL) cryptographic processing. +PcmciacardBus.Message=Includes PCMCIA and CardBus host controllers, but not PCMCIA or CardBus peripherals. Drivers for this class are system-supplied. +Serial.Parallel.Port.Message=Includes serial and parallel port devices. See also the MultiportSerial class. +Printers.Admin.Hit.Label=Includes printers. As an IT admin, hit them with a baseball bat. +Includes.SCSI.Message=Includes SCSI/1394-enumerated printers. Drivers for this class provide printer communication for a specific bus. +ProcessorTypes.Label=Includes processor types. +ScsihostBus.Message=Includes SCSI Host Bus Adapters (HBAs), disk-array, and NVMe controllers. +Includes.Trusted.Message=Includes Trusted Platform Module chips. A TPM is a secure cryptoprocessor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. Any new manufactured device must implement and enable TPM 2.0 by default. For more information, see TPM Recommendations. +Includes.Sensor.Label=Includes sensor and location devices, such as GPS devices. +Smart.Card.Readers.Label=Includes smart card readers. +Virtual.Child.Device.Message=Includes virtual child device to encapsulate software components. For more information, see Adding Software Components with an INF file. +Storage.Disks.Label=Storage disks utilizing a multi-queue storage stack. +Includes.Storage.Message=Includes storage volumes as defined by the system-supplied logical volume manager and class drivers that create device objects to represent storage volumes, such as the system disk class driver. +HalsSystem.Message=Includes HALs, system buses, system bridges, the system ACPI driver, and the system volume manager driver. +Tape.Drives.Including.Label=Includes tape drives, including all tape miniclass drivers. +Usbdevice.Includes.Message=USBDevice includes all USB devices that don't belong to another class. This class isn't used for USB host controllers and hubs; drivers for these devices are provided by the operating system and should use the USB class described in System-Defined Device Setup Classes Reserved for System Use. +WindowsCeactive.Message=Includes Windows CE ActiveSync devices. The WCEUSBS setup class supports communication between a personal computer and a device that is compatible with the Windows CE ActiveSync driver (generally, PocketPC devices) over USB. +Wpddevices.Label=Includes WPD devices. + +[DriverFilter.Month] +January.Label=January +February.Label=February +March.Label=March +April.Label=April +Value.Label=May +June.Label=June +July.Label=July +August.Label=August +September.Label=September +October.Label=October +November.Label=November +December.Label=December + +[Driver.Manual] +Driver.Files.Choose.Label=Escolher ficheiros de controladores no diretório +RecursiveListing.Message=Abaixo está uma lista recursiva de todos os controladores no diretório que está a especificar. A partir desta lista, escolha os controladores que pretende adicionar e clique em OK. +Ok.Button=OK +Cancel.Button=Cancelar +Refresh.Button=Atualizar + +[Driver.Manual.Scan] +Scanning.Driver.Dir.Label=Pesquisar diretório...{crlf;}Ficheiros de controladores encontrados até agora: {0} +Dir.Complete.Driver.Label=Pesquisa de diretório concluída.{crlf;}Ficheiros de controladores encontrados: {0} + +[DriverFilePicker.Validation] +File.Label=Ficheiro + +[DynaViewer.Main] +EventsFiltering.Message=Please wait while the events are being filtered... Change filters to cancel current operation. + +[DynaViewer.Errors] +InternalError.Message=An internal error has occurred: {crlf;}{crlf;}{0}{crlf;}{crlf;}Report this issue to the developers. +UnhandledError.Message=Unhandled Error + +[DynaViewer.EventProps] +Field.Empty.Caller.Message=The above field can be empty if the caller does not have a parent, or if the logging system was called by the method in the program with the GetParentCaller parameter set to false.{crlf;}{crlf;}As a developer, you can log events without getting the parent caller like this:{crlf;}{crlf;} DynaLog.LogMessage({quot;}Event Message{quot;}, False) +Parent.Caller.Title=Event Parent Caller + +[EnableFeat.EnableFeature] +EnableFeatures.Label=Ativar características +Image.Task.Header.Label={0} +PackageName.Label=Nome do pacote: +FeatureSource.Label=Fonte da caraterística: +Lookup.Button=Navegar... +Browse.Button=Navegar... +Detect.Group.Policy.Button=Detetar a partir da política de grupo +Cancel.Button=Cancelar +Ok.Button=OK +Features.Group=Características +Options.Group=Opções +ParentPackage.CheckBox=Especificar o nome do pacote principal para as características +Source.CheckBox=Especificar a origem da caraterística +ParentFeatures.CheckBox=Ativar todas as características principais +Contact.Win.Update.CheckBox=Contactar o Windows Update para obter imagens online +FeatureName.Column=Nome da caraterística +State.Column=Estado +SourceFolder.Description=Especificar uma pasta que actuará como fonte da caraterística: +CommitImage.CheckBox=Confirmar a imagem depois de ativar as funcionalidades + +[EnableFeat.Validation] +Features.Message=Por favor, seleccione as características a ativar e tente novamente. +FeaturesSelected.Title=Nenhuma caraterística selecionada +Features.Image.Message=Algumas características desta imagem requerem a especificação de uma origem para serem activadas. A origem especificada não é válida para esta operação. +Source.Required.Message=Especifique uma origem válida e tente novamente. +Source.Message=Certifique-se de que a origem existe no sistema de ficheiros e tente novamente. +EnableFeatures.Message=Ativar características +Source.Message.Message=A origem especificada não é válida. Por favor, especifique uma origem válida e tente novamente +EnableFeatures.Title=Ativar características + +[EnvVars.Management] +Removed.Label=(will be removed) +InfoLoaded.Message=Environment variable information has been successfully saved to the registry of the target image.{crlf;}{crlf;}A backup of the previous variable configuration has been saved to your desktop should you need it in case modifications do not go as planned.{crlf;}{crlf;}Simply load the target image's SYSTEM hive and import this registry file. +InfoSaved.Message=Environment variable information could not be saved to the registry of the target image. + +[EnvVars.Info] +Machine.Field=Máquina +User.Field=Utilizador + +[EnvVars.Helper] +CurrentInfo.Message=Current environment variable information for the system scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? +BackupSaved.Title=Environment variable information could not be backed up +UserBackup.Message=Current environment variable information for the user scope could not be backed up. Backups are used in case of a mistake during environment variable management. You may continue, but at your own risk.{crlf;}{crlf;}Applications that rely on these variables may not work correctly, and you will not be able to use previous variable configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current variable information? + +[Exception] +DISM.Tools.Internal.Label=DISMTools - Erro interno +Sorry.Inconvenience.Message=Lamentamos o incómodo, mas o DISMTools deparou-se com um erro que não conseguiu resolver e precisamos da sua ajuda para continuar.{crlf;}{crlf;}Aqui está a informação do erro, se precisar dela: +Help.Us.Fix.Label=Por favor, ajude-nos a resolver este problema +Reporting.Issue.Message=Ao relatar este problema, POR FAVOR, cole as informações de exceção à esquerda. Caso contrário, serão aplicadas as políticas de encerramento padrão, que implicam o encerramento do seu problema após (pelo menos) 4 horas. +Continue.Running.Message=Poderá continuar a executar o programa clicando em Continuar. No entanto, se este erro for apresentado pela segunda vez, pode fechar o programa à força, clicando em Sair. Tenha em atenção que as alterações efectuadas nos projectos, bem como as alterações na lista Recentes, não serão guardadas.{crlf;}{crlf;}O que pretende fazer? +ReportIssue.Label=Comunicar este problema +Continue.Button=Continuar +Exit.Button=Sair +Copied.Clipboard.Label=Esta informação foi copiada para a área de transferência. +Ll.Copy.Label=Terá de copiar esta informação manualmente. +Problem.Prevention.Message=Para evitar que este problema volte a acontecer, gostaríamos de saber mais sobre o mesmo, reportando um problema no repositório do GitHub. Necessita de uma conta GitHub para comunicar comentários. + +[ExportDrivers] +Title.Label=Controladores de exportação +Image.Task.Header.Label={0} +ExportTarget.Label=Exportar destino: +Browse.Button=Navegar... +Ok.Button=OK +Cancel.Button=Cancelar +DriversPath.Description=Especifique o caminho para onde os controladores serão exportados: + +[ExportDrivers.Validation] +Target.Required.Message=Especifique um destino para o qual exportar os controladores e certifique-se de que o destino especificado existe. + +[FfuApply] +NamingPattern.Required.Label=Especifique o padrão de nomenclatura dos ficheiros SFU + +[FfuApply.ScanSFUPattern] +Source.File.Required.Message=Especifique um ficheiro FFU de origem. Isto permitir-lhe-á utilizar os ficheiros SFU para uma aplicação de imagem posterior +ApplyImage.Message=Aplicar uma imagem +Naming.Returns.Item=Este padrão de nomenclatura devolve {0} ficheiros SFU +Naming.Returns.Label=Este padrão de nomenclatura devolve {0} ficheiros SFU + +[FfuApply.Validation] +ImageFile.Message=O ficheiro de imagem especificado não é válido. Especifique uma imagem válida e tente novamente. + +[FfuCapture] +No.Compression.None.Message=No compression will be applied for FFU files. Choose this option if you want to split the resulting file. +Default.Compression.Item=Default compression will be applied for FFU files. + +[FfuSplit] +SplitFfuimages.Label=Dividir imagens FFU +Image.Task.Header.Label={0} +Source.Image.Label=Imagem de origem a dividir: +Name.Path.Destination.Label=Nome e caminho da imagem dividida de destino: +Maximum.Size.Images.Label=Tamanho máximo das imagens divididas (em MB): +LargeFile.Note.Message=Tenha em atenção que, para acomodar um ficheiro grande na imagem, um ficheiro de imagem dividida pode ser maior do que o valor especificado +Browse.Button=Navegar... +Ok.Button=OK +Cancel.Button=Cancelar +Integrity.CheckBox=Verificar a integridade da imagem +Source.File.Title=Especificar o ficheiro FFU de origem a dividir: +Target.Location.Title=Especificar a localização de destino das imagens divididas: + +[FfuSplit.Validation] +Name.Required.Message=Especifique um nome e uma localização para o ficheiro SFU de destino e tente novamente. Além disso, certifique-se de que o caminho de destino existe. +Source.File.Required.Message=Especifique um ficheiro FFU de origem e tente novamente. Além disso, certifique-se de que ele existe. + +[Get.AppX] +AppX.Package.Label=Obter informações do pacote AppX +Image.Task.Header.Label={0} +AppX.Package.Label.Label=Informações do pacote AppX +Installed.AppX.Label=Seleccione um pacote AppX instalado à esquerda para ver as suas informações aqui +PackageName.Label=Nome do pacote: +Display.Name.Label=Nome de apresentação da aplicação: +Architecture.Label=Arquitetura: +ResourceID.Label=ID do recurso: +Version.Label=Versão: +Registered.User.Label=Está registada para algum utilizador? +Install.Dir.Label=Diretório de instalação: +Package.Manifest.Label=Localização do manifesto do pacote: +StoreLogo.Asset.Dir.Label=Diretório de activos do logótipo da loja: +Main.StoreLogo.Asset.Label=Ativo do logótipo principal da loja: +Asset.Guessed.DISM.Message=Este ativo foi adivinhado pelo DISMTools com base no seu tamanho, o que pode conduzir a um resultado incorreto. Se isso acontecer, comunique um problema no repositório do GitHub +Asset.One.IM.Link=Este recurso não é o que estou à procura +Save.Button=Guardar... +Type.Search.Label=Digite aqui para pesquisar uma aplicação... + +[Get.AppX.PackageList] +Yes.Button=Sim +No.Button=Não + +[CapabilityInfo] +Get.Label=Obter informações sobre as capacidades +Image.Task.Header.Label={0} +Ready.Label=Pronto +Identity.Label=Identidade da capacidade: +CapabilityName.Label=Nome da capacidade: +CapabilityState.Label=Estado da capacidade: +DisplayName.Label=Nome de apresentação: +CapabilityInfo.Label=Informação sobre a capacidade +Description.Label=Descrição da capacidade: +Sizes.Label=Tamanhos: +Identity.Column=Identidade da capacidade +State.Column=Estado +Save.Button=Guardar... +Type.Search.Label=Digite aqui para pesquisar uma capacidade... +Wait.Background.Message=Os processos em segundo plano têm de estar concluídos antes de mostrar informações sobre as características. Vamos esperar até que estejam concluídos +Waiting.Background.Label=À espera que os processos em segundo plano terminem... +Prepare.Cap.Item=Preparar-se para obter informações sobre a capacidade... +GettingInfo.Item=Obter informações de {quot;}{0}{quot;}... +ReadableSize.Suffix=(~{0}) +Download.Size.Bytes.Label=Tamanho do descarregamento: {0} bytes{1}{crlf;}Tamanho da instalação: {2} bytes{3} +Get.Reason.Message=Não foi possível obter informações sobre a capacidade. Motivo: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Pronto +Build.Query.Assistant.Label=Criar consulta com o assistente... + +[GetCapInfo] +SelectCapability.Label=Seleccione uma capacidade instalada à esquerda para ver a sua informação aqui + +[GetDriverInfo] +Driver.Label=Obter informações do controlador +Get.Label=Sobre o que é que pretende obter informações? +Get.Drivers.Message=Clique aqui para obter informações sobre os controladores que instalou ou que vieram com a imagem do Windows que está a reparar +AddDrivers.Help.Message=Clique aqui para obter informações sobre os controladores que pretende adicionar à imagem do Windows que está a reparar antes de prosseguir com o processo de adição de controladores +Ready.Label=Pronto +Add.DriverPackage.Label=Adicione ou seleccione um pacote de controladores para ver as suas informações aqui +HardwareTargets.Label=Alvos de hardware +Hardware.Description.Label=Descrição do hardware: +HardwareID.Label=ID do hardware: +AdditionalIds.Label=IDs adicionais: +CompatibleIds.Label=IDs compatíveis: +ExcludeIds.Label=Excluir IDs: +Hardware.Manufacturer.Label=Fabricante do hardware: +Architecture.Label=Arquitetura: +JumpTarget.Label=Saltar para o alvo: +PublishedName.Label=Nome publicado: +Original.File.Name.Label=Nome do ficheiro original: +ProviderName.Label=Nome do fornecedor: +Critical.Boot.Process.Label=É crítico para o processo de arranque? +Version.Label=Versão: +ClassName.Label=Nome da classe: +Part.Windows.Label=Parte da distribuição do Windows? +DriverInfo.Label=Informações do controlador +Installed.Driver.View.Label=Seleccione um controlador instalado para ver as suas informações aqui +Date.Label=Data: +ClassDescription.Label=Descrição da classe: +ClassGUID.Label=GUID da classe: +Driver.Signature.Label=Estado da assinatura do controlador: +Catalog.File.Path.Label=Caminho do ficheiro de catálogo: +Bg.Procs.Notice.Message=Configurou os processos em segundo plano para não mostrar todos os controladores presentes nesta imagem, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado. +AddDriver.Button=Adicionar controlador... +RemoveSelected.Button=Remover selecionado +RemoveAll.Button=Remover todos +Change.Button=Alterar +Save.Button=Guardar... +View.Driver.File.Button=Ver informações do ficheiro do controlador +GoBack.Link=<- Voltar atrás +InstalledDriver.Link=Quero obter informações sobre os controladores instalados na imagem +Iwant.Link=Pretendo obter informações sobre ficheiros de controladores +PublishedName.Column=Nome publicado +Original.File.Name.Column=Nome original do ficheiro +Locate.Driver.Files.Title=Locate driver files +Type.Search.Driver.Button=Digite aqui para pesquisar um controlador... +HardwareTarget.Label=Equipamento-alvo {0} de {1} +Value.Label= +Yes.Button=Sim +No.Button=Não +Value.Button=Sim +Text1.Label=por +Build.Query.Assistant.Label=Criar consulta com o assistente... + +[DriverInfo.Display] +NoManufacturer.Label=Nenhum declarado pelo fabricante do hardware + +[GetDriverInfo.DriverInfo] +Wait.Background.Message=Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos +Waiting.Background.Label=À espera que os processos em segundo plano terminem... +Driver.File.Message=Obter informações do ficheiro do controlador {quot;}{0}{quot;}...{crlf;}Isto pode demorar algum tempo e o programa pode congelar temporariamente +Ready.Item=Pronto + +[DriverInfo.Load] +Preparing.Driver.Item=Preparar os processos de informação dos controladores... + +[GetDriverInfo.Hardware] +HardwareTarget.Label=Equipamento-alvo 1 de {0} + +[GetDriverInfo.Tooltip] +Previous.Hardware.Message=Equipamento-alvo anterior +Next.Hardware.Target.Message=Equipamento-alvo seguinte +Jump.Specific.Message=Saltar para um equipamento-alvo específico + +[DriverInfo] +Unknown.Label=Desconhecido + +[GetFeatureInfo] +Get.Feature.Label=Obter informações sobre a caraterística +Image.Task.Header.Label={0} +Ready.Label=Pronto +FeatureName.Label=Nome da caraterística: +DisplayName.Label=Nome do ecrã: +Description.Label=Descrição da caraterística: +RestartRequired.Label=É necessário reiniciar? +FeatureInfo.Label=Informação sobre a caraterística +Installed.Left.Label=Seleccione uma caraterística instalada à esquerda para ver as suas informações aqui +FeatureState.Label=Estado da funcionalidade: +CustomProps.Label=Propriedades personalizadas: +FeatureName.Column=Nome da caraterística +FeatureState.Column=Estado da caraterística +Save.Button=Guardar... +Type.Search.Label=Digite aqui para pesquisar uma caraterística... +Wait.Background.Message=Os processos em segundo plano têm de estar concluídos antes de mostrar informações sobre as características. Vamos esperar até que estejam concluídos +Waiting.Background.Label=À espera que os processos em segundo plano terminem... +Preparing.Item=Preparar-se para obter informações sobre a característica... +GettingInfo.Item=Obter informações de {quot;}{0}{quot;}... +Expand.Entry.Label=Por favor, seleccione ou expanda uma entrada. +None.Label=Nenhum +Reason.Message=Não foi possível obter informações sobre a característica. Motivo: {crlf;}{crlf;}{0}: {1} (HRESULT {2}) +Ready.Item=Pronto +Build.Query.Assistant.Label=Criar consulta com o assistente... + +[FeatureInfo.PathSelection] +SelectedValue.Message=Nenhum valor foi definido. Se o item selecionado tiver subitens, expanda-o. + +[ImageInfo] +Get.Image.Label=Obter informações sobre a imagem +Image.Task.Header.Label={0} +ImageFile.Get.Label=Ficheiro de imagem de onde obter informações: +List.Indexes.ImageFile.Label=Lista de índices do ficheiro de imagem: +ImageVersion.Label=Versão da imagem: +ImageName.Label=Nome da imagem: +ImageDescription.Label=Descrição da imagem: +ImageSize.Label=Tamanho da imagem: +Supports.WIM.Boot.Label=Suporta WIMBoot? +Architecture.Label=Arquitetura: +HAL.Label=HAL: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Nível do Service Pack: +InstallationType.Label=Tipo de instalação: +Edition.Label=Edição: +ProductType.Label=Tipo de produto: +ProductSuite.Label=Conjunto de produtos: +System.Root.Dir.Label=Diretório raiz do sistema: +FileCount.Label=Contagem de ficheiros: +Dates.Label=Datas: +Installed.Languages.Label=Idiomas instalados: +ImageInfo.Label=Informações sobre a imagem +Index.List.View.Label=Seleccione um índice na vista de lista à esquerda para ver a respectiva informação aqui +CurrentlyMounted.RadioButton=Imagem atualmente montada +AnotherImage.RadioButton=Outra imagem +Browse.Button=Navegar... +Save.Button=Guardar... +Pick.Button=Selecionar... +Index.Column=Índice +ImageName.Column=Nome da imagem +Image.Get.Title=Especificar a imagem da qual obter a informação +Bytes.Label={0} bytes (~{1}) + +[ImageInfo.FeatureUpdate] +FeatureUpdate.Label=(atualização de funcionalidades: +Text1.Label=) + +[ImageInfo.DisplayImageInfo] +UndefinedImage.Label=Não definido pela imagem +FilesDirectories.Label={0} ficheiros em {1} directórios +Date.Created.Modified.Label=Data de criação: {0}{crlf;}Data de modificação: {1} + +[ImageInfo.GetImageInfo] +Gather.ImageFile.Message=Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImageInfo.LanguageList] +Display.Name.Open.Label=( +Default.Label=, predefinido +Display.Name.Close.Label=) + +[AppxPackages.Info.Messages] +Get.Label=Could not get some information about this application. + +[DriverFilter.Messages] +Class.Name.Message=This class name is not valid. + +[InfoSave.Results.Messages] +HtmlFailed.Message=Conversion to HTML has failed due to the following error: {0}{crlf;}{crlf;}Do you want to open this file in a text editor? +ConversionError.Label=Conversion error + +[GetPkgInfo] +Package.Label=Obter informações sobre o pacote +Image.Task.Header.Label={0} +Get.Label=Sobre o que é que pretende obter informações? +Get.Packages.Message=Clique aqui para obter informações sobre os pacotes que instalou ou que vieram com a imagem do Windows que está a reparar +AddPackages.Help.Message=Clique aqui para obter informações sobre os pacotes que pretende adicionar à imagem do Windows que está a reparar antes de prosseguir com o processo de adição de pacotes +Ready.Label=Pronto +Add.Package.File.Label=Adicione ou seleccione um ficheiro de pacote para ver as suas informações aqui +PackageInfo.Label=Informações do pacote +PackageName.Label=Nome do pacote: +Package.Applicable.Label=O pacote é aplicável? +Copyright.Label=Direitos de autor: +ProductVersion.Label=Versão do produto: +ReleaseType.Label=Tipo de versão: +Company.Label=Empresa: +CreationTime.Label=Hora de criação: +InstallTime.Label=Hora de instalação: +Last.Update.Time.Label=Hora da última atualização: +Install.Package.Name.Label=Nome do pacote de instalação: +Installed.Package.View.Label=Seleccione um pacote instalado para ver as suas informações aqui +DisplayName.Label=Nome de apresentação: +Description.Label=Descrição: +ProductName.Label=Nome do produto: +InstallClient.Label=Instalar cliente: +RestartRequired.Label=É necessário reiniciar? +SupportInfo.Label=Informações de suporte: +State.Label=Estado: +Boot.Up.Required.Label=É necessário um arranque para a instalação completa? +CustomProps.Label=Propriedades personalizadas: +Features.Label=Características: +Capability.Identity.Label=Identidade da capacidade: +GoBack.Link=<- Voltar atrás +AddPackage.Button=Adicionar pacote... +RemoveSelected.Button=Remover selecionado +RemoveAll.Button=Remover tudo +Save.Button=Guardar... +Iwant.Link=Pretendo obter informações sobre os pacotes instalados na imagem +PackageFile.Link=Pretendo obter informações sobre ficheiros de pacotes +Locate.Package.Files.Title=Localizar ficheiros de pacotes +Type.Search.Package.Label=Digitar aqui para pesquisar um pacote... + +[PackageInfo.Display] +None.Label=Nenhum + +[PackageInfo.File] +Wait.Background.Message=Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos +Waiting.Background.Label=À espera que os processos em segundo plano terminem... +Preparing.Item=Preparar os processos de informação dos pacotes... +Loading.Package.Message=Obter informações do ficheiro do pacote {quot;}{0}{quot;}...{crlf;}Isto pode demorar algum tempo e o programa pode congelar temporariamente +Ready.Item=Pronto + +[GetPkgInfo.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[GetPkgInfo.PackageList] +Wait.Background.Message=Os processos em segundo plano precisam de ser concluídos antes de mostrar as informações dos pacotes. Esperamos até que estejam concluídos +Waiting.Background.Label=À espera que os processos em segundo plano terminem... +Preparing.Package.Item=Preparar-se para obter informações sobre o pacote... +GettingInfo.Item=Obter informações de {quot;}{0}{quot;}... +Expand.Entry.Label=Por favor, seleccione ou expanda uma entrada. +None.Label=Nenhum +Ready.Item=Pronto + +[GetPkgInfo.PropertyPath] +SelectedValue.Message=Nenhum valor foi definido. Se o item selecionado tiver subitens, expanda-o. + +[WinPESettings] +Get.Windows.Pesettings.Label=Obter as configurações do Windows PE +Windows.Label=Estas são as configurações do Windows PE para esta imagem: +TargetPath.Label=Localização do destino: +ScratchSpace.Label=Espaço temporário: +Change.Button=Alterar... +Ok.Button=OK +Save.Button=Guardar... + +[WinPESettings.GetPESettings] +GetValue.Label=Não foi possível obter o valor +GetValue.Message=Não foi possível obter o valor + +[Help.QuickHelp] +QuickHelp.Message=Quick Help + +[PEHelper.ServerPort] +Already.Message=The specified port, {0}, is already in use. +InvalidPort.Message=The specified port, {0}, is not in use. + +[ISOCreator] +Status.Message=Estado +Creating.ISO.Message=A criar ficheiro ISO. Isto pode demorar algum tempo. Por favor, aguarde... +IsofileCreated.Message=O ficheiro ISO foi criado +CreateIsofile.Label=Criar um ficheiro ISO +ISO.File.Message=O assistente de criação de ficheiros ISO permite-lhe criar rapidamente um ficheiro de imagem de disco que pode utilizar para testar as alterações efectuadas à sua imagem do Windows. Será criado um ambiente de pré-instalação (PE) personalizado. Este ambiente irá efetuar automaticamente a configuração do disco e aplicar a imagem que especificar aqui. +Re.Ready.Create.Label=Quando estiver pronto, clique no botão Criar. +ImageFile.Add.Label=Ficheiro de imagem a adicionar ao ficheiro ISO: +Architecture.Label=Arquitetura: +Target.Isolocation.Label=Localização ISO de destino: +Other.Things.Message=Pode fazer outras coisas enquanto o ISO está a ser criado. Volte aqui em qualquer altura para obter um estado atualizado. +Browse.Button=Procurar... +Pick.Button=Escolher... +Mounted.Image.Button=Utilizar imagem montada +Customize.Environment.Button=Personalizar o ambiente... +Create.Button=Criar +Cancel.Button=Cancelar +Options.Group=Configurações +Progress.Group=Progresso +Download.Windows.ADK.Link=Baixar o Windows ADK +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão +Image.Architecture.Column=Arquitetura +Unattended.CheckBox=Ficheiro de resposta: +Copy.Ventoy.Drives.CheckBox=Copiar para unidades Ventoy +Newly.Signed.Boot.CheckBox=Utilizar binários de arranque com assinatura recente +Include.Essential.CheckBox=Incluir os controladores essenciais deste sistema +Https.Learn.Message=https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install +Create.ISO.Message=Esta opção criará ficheiros ISO que contêm binários de arranque EFI assinados com o certificado {quot;}Windows UEFI CA 2023{quot;}.{crlf;}{crlf;} +Computers.UEFI.Message=Alguns computadores que utilizam UEFI podem não arrancar corretamente com este ficheiro ISO com os binários de arranque actualizados. Por este motivo, recomenda-se que verifique a compatibilidade do seu equipamento de teste com estes binários. +Run.Power.Shell.Message=Execute o comando PowerShell descrito na documentação de ajuda do criador ISO (em inglês) para determinar se um dispositivo tem este certificado instalado. +Doubts.Recommend.Message=Se tiver dúvidas, recomendamos que deixe esta opção desmarcada. +Have.Detected.Message=Detetámos que, atualmente, este sistema não suporta binários de arranque Windows UEFI CA 2023. Se continuar com a criação da ISO, poderá não conseguir arrancar a partir do ficheiro ISO resultante neste sistema. +Windows.Title=Informações sobre o Windows UEFI CA 2023 +Check.Option.Storage.Message=When you check this option, storage controllers and network adapter drivers from this machine will be included{crlf;}in your ISO file. They will also be applied to the image file once deployed. +AvailableADK.Message=If available in your installed Assessment and Deployment Kit, your ISO file will use boot binaries signed with Windows UEFI CA 2023.{crlf;}This option is designed for target systems that support Secure Boot and have the latest boot certificates in the allowlist database (DB). + +[ISOCreator.Background] +Isofile.Created.Done.Message=O ficheiro ISO foi criado com êxito +Failed.Create.Message=O processo de criação do ISO falhou + +[ISOCreator.GetImageInfo] +Gather.ImageFile.Message=Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ISOCreator.Links] +Https.Learn.Message=https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install + +[ISOCreator.Validation] +Either.Source.Message=Ou o ficheiro de imagem de origem não existe ou não forneceu qualquer ficheiro de imagem. Especifique um ficheiro de imagem válido e tente novamente. +TargetISO.Required.Message=O ISO de destino não foi especificado. Especifique uma localização para o ficheiro ISO e tente novamente. +Saved.Message=Certifique-se de que guardou todas as suas alterações antes de continuar.{crlf;}{crlf;}Se ainda não o fez, clique em Não, guarde a sua imagem e comece o processo novamente. Não é necessário fechar esta janela.{crlf;}{crlf;}Deseja criar uma ISO com este ficheiro? +Target.ISO.Message=O ISO de destino já existe. Deseja substituí-la? + +[ImageAppxPackage.RegStatus] +Yes.Button=Sim +No.Button=Não + +[ImageDriver.DriverInbox] +Yes.Button=Sim +No.Button=Não + +[ImgAppend] +AppendImage.Label=Anexar a uma imagem +Image.Task.Header.Label={0} +Path.Config.File.Label=Localização do ficheiro de configuração: +Source.Image.Dir.Label=Diretório da imagem de origem: +Dest.Image.Description.Label=Descrição da imagem de destino: +Destination.ImageFile.Label=Ficheiro de imagem de destino: +Destination.Image.Name.Label=Nome da imagem de destino: +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Navegar... +Grab.Last.Image.Button=Última imagem +Create.Button=Criar... +Exclude.Files.Dirs.CheckBox=Excluir determinados ficheiros e directórios para a imagem de destino +WIM.Boot.Config.CheckBox=Anexar com a configuração WIMBoot +Image.Bootable.CheckBox=Tornar a imagem de arranque (apenas Windows PE) +Verify.Image.CheckBox=Verificar a integridade da imagem +Check.File.Errors.CheckBox=Verificar se existem erros nos ficheiros +Reparse.Point.Tag.CheckBox=Utilizar a correção da etiqueta de ponto de reparação +ExtendedAttributes.CheckBox=Capturar atributos alargados +Sources.Destinations.Group=Origens e destinos +Options.Group=Opções + +[ImgAppend.Tooltip] +Grab.Name.Last.Message=Obter o nome do último índice da imagem de destino + +[ImgAppend.Validation] +SourceImage.Required.Message=Especifique um diretório de imagens de origem e tente novamente. +ImageFile.Required.Message=Especifique um ficheiro de imagem de destino e tente novamente. +NameDestination.Message=Especifique um nome para o ficheiro de imagem de destino e tente novamente. +Either.Config.List.Message=Ou não foi especificado nenhum ficheiro de lista de configuração ou o ficheiro de lista de configuração não foi detectado no seu sistema de ficheiros. Deseja continuar sem qualquer ficheiro de lista de configuração? + +[ImgApply] +ApplyImage.Label=Aplicar uma imagem +Image.Task.Header.Label={0} +SourceImageFile.Label=Ficheiro de imagem de origem: +ImageIndex.Label=Índice da imagem: +NamingPattern.Label=Padrão de nomenclatura: +Integrity.CheckBox=Verificar integridade da imagem +Verify.CheckBox=Verificar +Reparse.Point.Tag.CheckBox=Utilizar a correção da etiqueta de ponto de reparação +Reference.Swmfiles.CheckBox=Referenciar ficheiros SWM +Append.Image.WIM.CheckBox=Anexar imagem com configuração WIMBoot +Image.Compact.Mode.CheckBox=Aplicar imagem em modo compacto +Extended.Attributes.CheckBox=Aplicar atributos alargados +Browse.Button=Navegar... +Name.Image.Button=Utilizar o nome da imagem +ScanPattern.Button=Padrão de digitalização +Mounted.Image.Label=Utilizar imagem montada +Ok.Button=OK +Cancel.Button=Cancelar +Destination.Dir.Label=Diretório de destino: +Source.Group=Origem +Options.Group=Opções +Destination.Group=Destino +SwmfilePattern.Group=Padrão de ficheiro SWM +NamingPattern.Required.Label=Especifique o padrão de nomenclatura dos ficheiros SWM +Validate.Image.CheckBox=Validar imagem para o Trusted Desktop + +[ImgApply.GetIndexes] +Gather.ImageFile.Message=Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgApply.ScanSwmPattern] +Source.WIM.Required.Message=Especifique um ficheiro WIM de origem. Isto permitir-lhe-á utilizar os ficheiros SWM para uma aplicação de imagem posterior +ApplyImage.Message=Aplicar uma imagem +Naming.Returns.Item=Este padrão de nomenclatura devolve {0} ficheiros SWM +Naming.Returns.Label=Este padrão de nomenclatura devolve {0} ficheiros SWM + +[ImgApply.Validation] +ImageFile.Message=O ficheiro de imagem especificado não é válido. Especifique uma imagem válida e tente novamente. + +[ImgCapture] +CaptureImage.Label=Capturar uma imagem +Destination.ImageFile.Label=Ficheiro de imagem de destino: +Source.Image.Dir.Label=Diretório da imagem de origem: +Dest.Image.Description.Label=Descrição da imagem de destino: +Destination.Image.Name.Label=Nome da imagem de destino: +Path.Config.File.Label=Localização do ficheiro de configuração: +CompressionType.Label=Tipo de compressão da imagem de destino: +Sources.Destinations.Group=Origens e destinos +Options.Group=Opções +Browse.Button=Navegar... +Create.Button=Criar... +Ok.Button=OK +Cancel.Button=Cancelar +Exclude.Files.Dirs.CheckBox=Excluir determinados ficheiros e directórios para a imagem de destino +Image.Bootable.CheckBox=Tornar a imagem inicializável (somente Windows PE) +Verify.Image.CheckBox=Verificar a integridade da imagem +Check.File.Errors.CheckBox=Verificar se existem erros nos ficheiros +Reparse.Point.Tag.CheckBox=Utilizar a correção da etiqueta de ponto de reparação +Append.WIM.Boot.CheckBox=Anexar com a configuração WIMBoot +Extended.Attributes.CheckBox=Capturar atributos estendidos +Mount.Dest.Image.CheckBox=Montar a imagem de destino para utilização posterior +No.Compression.None.Item=Não será aplicada qualquer compressão à imagem de destino. +Fast.Compression.Item=Será aplicada uma compressão rápida. Esta é a opção predefinida. +MaxCompression.Message=Será aplicada a compressão máxima. Esta opção demora mais tempo, mas resulta numa imagem mais pequena. + +[ImgCleanup] +ImageCleanup.Label=Limpeza de imagem +Task.Choose.Label=Escolha uma tarefa: +Text4.Label=Escolha uma tarefa para ver a sua descrição +NoOptions.Message=Não existem opções configuráveis para esta tarefa. No entanto, só deve executar esta tarefa para tentar recuperar uma imagem do Windows que não arranque. +Superseded.Base.Reset.Label=A reinicialização da base de componentes substituídos foi executada pela última vez em: +Only.Check.Option.Label=Só deve marcar esta opção se a reposição de base demorar mais de 30 minutos a concluir +NoOptions.Label=Não existem opções configuráveis para esta tarefa. +Source.Label=Fonte: +Task.Listed.Label=Seleccione uma tarefa listada acima para configurar as suas opções. +TaskOptions.Group=Opções da tarefa +Ok.Button=OK +Cancel.Button=Cancelar +Revert.Pending.Actions.Item=Reverter acções pendentes +Clean.Up.ServicePack.Item=Limpar ficheiros de cópia de segurança do Service Pack +Clean.Up.Component.Item=Limpar o armazenamento de componentes +Analyze.Component.Store.Item=Analisar o armazenamento de componentes +Check.Component.Store.Item=Verificar o arquivo de componentes +Scan.Comp.Store.Item=Verificar se o arquivo de componentes está corrompido +Repair.Component.Store.Item=Reparar o arquivo de componentes +Source.Title=Especificar a fonte a partir da qual iremos restaurar o estado do armazenamento de componentes +Browse.Button=Navegar... +Detect.Group.Policy.Button=Detetar a partir da política de grupo +HideServicePack.CheckBox=Ocultar o service pack da lista de actualizações instaladas +Reset.Base.CheckBox=Repor a base de componentes substituídos +Defer.Long.Running.CheckBox=Adiar operações de limpeza de longa duração +Different.Source.CheckBox=Utilizar outra fonte para reparação de componentes +WindowsUpdate.CheckBox=Limitar o acesso ao Windows Update +Last.Reset.Base.Label=LastResetBase_UTC +Get.Last.Base.Message=Não foi possível obter a data da última reposição de base. É possível que não tenham sido efectuadas reinicializações de base +Last.Reset.Base.Item=LastResetBase_UTC +Get.Last.Base.Item=Não foi possível obter a data da última reposição de base. É possível que não tenham sido efectuadas reinicializações de base +Get.Last.Base.Label=Não foi possível obter a data da última reposição de base. +Task.See.Choose.Label=Escolha uma tarefa para ver a sua descrição +Experience.Boot.Message=Se ocorrer uma falha de arranque, esta opção pode tentar recuperar o sistema revertendo todas as acções pendentes de operações de manutenção anteriores +Removes.Backup.Files.Item=Remove os ficheiros de cópia de segurança criados durante a instalação de um service pack +Cleans.Up.Superseded.Item=Limpa os componentes substituídos e reduz o tamanho do armazenamento de componentes +Creates.Report.Comp.Item=Cria um relatório do armazenamento de componentes, incluindo o seu tamanho +Checks.Whether.Image.Message=Verifica se a imagem foi assinalada como corrompida por um processo falhado e se a corrupção pode ser reparada +Scans.Image.Message=Analisa a imagem em busca de corrupção no armazenamento de componentes, mas não executa as opções de reparação automaticamente +Scans.Image.Component.Item=Analisa a imagem em busca de corrupção no armazenamento de componentes e efectua operações de reparação automaticamente + +[ImgCleanup.Validation] +Source.Has.None.Message=Não foi fornecida nenhuma fonte válida para a reparação do armazenamento de componentes. +Provide.Source.Try.Message=Forneça uma fonte e tente novamente. +Please.Make.Message=Certifique-se de que a fonte especificada existe no sistema de ficheiros e tente novamente. +ImageCleanup.Message=Limpeza da imagem + +[ImageConversion.Success] +Image.Done.Converted.Label=A imagem foi convertida com êxito +ConversionDone.Message=A imagem especificada foi convertida com sucesso para o formato de destino. Por conveniência, o Explorador de Ficheiros pode ser aberto para ver onde se encontra a imagem de destino.{crlf;}{crlf;}Pretende abrir o diretório onde a imagem de destino está armazenada? +Yes.Button=Sim +No.Button=Não + +[ImgExport] +ExportImage.Label=Exportar uma imagem +Destination.ImageFile.Label=Ficheiro de imagem de destino: +SourceImageFile.Label=Ficheiro de imagem de origem: +NamingPattern.Label=Padrão de nomenclatura: +CompressionType.Label=Tipo de compressão da imagem de destino: +Source.Image.Index.Label=Índice da imagem de origem: +Reference.Swmfiles.CheckBox=Ficheiros SWM de referência +CustomName.CheckBox=Especificar um nome personalizado para a imagem de destino +Image.Bootable.CheckBox=Tornar a imagem de arranque (só para Windows PE) +Append.Image.WIM.CheckBox=Anexar imagem com a configuração WIMBoot +Ok.Button=OK +Cancel.Button=Cancelar +Browse.Button=Procurar... +Name.Image.Button=Utilizar nome da imagem +ScanPattern.Button=Examinar padrão +Sources.Destinations.Group=Origens e destinos +Options.Group=Configurações +Source.ImageFile.Title=Especificar um ficheiro de imagem de origem para exportar +Index.Column=Índice +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão da imagem +No.Compression.None.Item=Não será aplicada qualquer compressão à imagem de destino. +Fast.Compression.Item=Será aplicada uma compressão rápida. Esta é a opção predefinida. +MaxCompression.Message=Será aplicada a compressão máxima. Esta opção demora mais tempo, mas resulta numa imagem mais pequena. +Compression.Level.Message=Será aplicado o nível de compressão para imagens reiniciadas por botão de pressão. Para tal, é necessário exportar a imagem como um ficheiro ESD. +NamingPattern.Required.Label=Especifique o padrão de nomenclatura dos ficheiros SWM +CheckIntegrity.CheckBox=Verificar a integridade antes de exportar a imagem + +[ImgExport.ScanSwmPattern] +Source.WIM.Required.Message=Especifique um ficheiro WIM de origem. Isto permitir-lhe-á utilizar os ficheiros SWM para uma aplicação de imagem posterior +Naming.Returns.Item=Este padrão de nomenclatura devolve {0} ficheiros SWM +Naming.Returns.Label=Este padrão de nomenclatura devolve {0} ficheiros SWM + +[ImgExport.Validation] +SourceImageFile.Message=Especifique um ficheiro de imagem de origem para exportar e tente novamente +ImageFile.Required.Message=Especifique um ficheiro de imagem de destino e tente novamente + +[ImageIndexDelete] +Remove.Volume.Image.Label=Remover uma imagem de volume +Image.Task.Header.Label={0} +SourceImage.Label=Imagem de origem: +Mark.VolumeImages.Message=Marque as imagens de volume a eliminar à esquerda. A imagem ficará então com os índices apresentados à direita +Get.Indexes.Image.Label=A obter os índices da imagem. Aguarde... +Browse.Button=Navegar... +Mounted.Image.Button=Utilizar imagem montada +Ok.Button=OK +Cancel.Button=Cancelar +Integrity.CheckBox=Verificar a integridade da imagem +Index.Column=Índice +ImageName.Column=Nome da imagem +Columns0.Column=Índice +Columns1.Column=Nome da imagem +VolumeImages.Group=Imagens de volume + +[ImageIndexDelete.IndexInfo] +Image.Only.Contains.Message=Esta imagem contém apenas 1 índice. Não é possível remover imagens de volume deste ficheiro +Remove.Volume.Image.Title=Remover uma imagem de volume + +[ImageIndexDelete.Validation] +SelectImages.Message=Seleccione as imagens de volume a remover desta imagem e tente novamente. +Remove.Volume.Image.Title=Remover uma imagem de volume +ImageMounted.Message=O programa detectou que esta imagem está montada. Para remover imagens de volume de um ficheiro, este tem de ser desmontado. Pode voltar a montá-la mais tarde, se quiser.{crlf;}{crlf;}Tenha em atenção que isto irá desmontar a imagem sem guardar as alterações. Certifique-se de que todas as suas alterações foram guardadas antes de continuar.{crlf;}{crlf;}Deseja desmontar esta imagem? + +[ImageIndexSwitch] +Image.Indexes.Label=Mudar os índices de imagem +Image.Task.Header.Label={0} +Image.Label=Imagem: +Unmounting.Source.Label=Quando desmontar o índice de origem, o que fazer? +Destination.Mount.Label=Índice de destino para montar: +Already.Mounted.Label=Este índice já foi montado +Ok.Button=OK +Cancel.Button=Cancelar +Indexes.Group=Índices +Save.Changes.RadioButton=Guardar alterações no índice +DiscardChanges.RadioButton=Desmontar descartando as alterações + +[ImageIndexSwitch.Initialize] +Getting.Image.Indexes.Label=Obter índices de imagem... + +[ImageInfoSave] +Saving.Image.Button=Salvando informações da imagem... +Wait.Message=Aguarde enquanto o DISMTools salva as informações da imagem em um arquivo. Isso pode levar algum tempo, dependendo das tarefas que estão sendo executadas. +Wait.Label=Aguarde... +Wait.Background.Message=Os processos em segundo plano têm de estar concluídos antes de obter informações. Vamos esperar até que estejam concluídos +Waiting.Bg.Procs.Item=A aguardar que os processos em segundo plano terminem... +Create.Target.Reason.Message=Não foi possível criar o destino de gravação. Motivo: +OperationFailed.Message=A operação falhou +PackageInfo.Label=Informações do pacote +FeatureInfo.Label=Informação sobre as características +AppX.Package.Label=Informação dos pacotes AppX +CapabilityInfo.Label=Informações sobre as capacidades +DriverInfo.Label=Informações do controlador +Desea.Obtener.Message=Deseja obter informações completas sobre os pacotes instalados? Tenha em atenção que este processo demorará mais tempo. +Statement3.Message=Deseja obter informações completas sobre as características instaladas? Tenha em atenção que isto demorará mais tempo. +Statement4.Message=Deseja obter informações completas sobre os pacotes AppX instalados? Tenha em atenção que isto demorará mais tempo. +Statement5.Message=Deseja obter informações completas sobre as capacidades instaladas? Tenha em atenção que isto demorará mais tempo. +Statement6.Message=Deseja obter informações completas sobre os controladores instalados? Tenha em atenção que isto demorará mais tempo. +BgProcessDetect.Message=Configurou os processos em segundo plano para não detectarem todos os controladores, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado.{crlf;}{crlf;} +Setting.Applied.Task.Message=Esta configuração também é aplicada a esta tarefa, mas pode obter as informações de todos os controladores agora. Tenha em atenção que isto pode demorar muito tempo, dependendo da quantidade de controladores originais. +Get.Message=Pretende obter as informações de todos os controladores, incluindo os controladores que fazem parte da distribuição do Windows? +SavingContents.Message=A guardar o conteúdo... + +[ImageInfoSave.AppxInfo] +Preparing.Package.Message=A preparar processos de informação dos pacotes AppX... +Basic.Ready.Message=O programa obteve informações básicas sobre os pacotes AppX instalados nesta imagem. Também pode obter informações completas sobre esses pacotes AppX e guardá-las no relatório.{crlf;}{crlf;} +May.Take.Long.Message=Tem em atenção que isto demorará mais tempo, dependendo do número de pacotes AppX instalados. +Prompt.Label=Deseja obter esta informação e guardá-la no relatório? +Package.Message=Informação dos pacotes AppX +Getting.Message=Obter informações sobre os pacotes AppX... (pacote AppX {0} de {1}) +Packages.Obtained.Message=Os pacotes AppX foram obtidos +Saving.Installed.Message=Guardar os pacotes AppX instalados... + +[ImgInfo.Capabilities] +Preparing.Message=A preparar processos de informação de capacidades... +Basic.Ready.Message=O programa obteve informações básicas sobre as capacidades instaladas desta imagem. Também pode obter informações completas sobre essas capacidades e guardá-las no relatório.{crlf;}{crlf;} +May.Take.Long.Message=Tenha em atenção que isto pode demorar mais tempo, dependendo do número de capacidades instaladas. +Save.Prompt.Label=Deseja obter esta informação e guardá-la no relatório? +CapabilityInfo.Message=Informações sobre as capacidades +Loaded.Message=As capacidades foram obtidas +Loading.Capability.Message=Obter informações sobre as capacidades... (capacidade {0} de {1}) +Saving.Message=Guardar as capacidades instaladas... + +[ImgInfo.DriverFiles] +Preparing.Message=Preparar os processos de informação dos controladores... +Loading.Driver.Message=Obter informações dos ficheiros de controladores... (ficheiro de controlador {0} de {1}) + +[ImageInfoSave.Drivers] +Preparing.Message=A preparar processos de informação sobre controladores... +Basic.Ready.Message=O programa obteve informações básicas sobre os controladores instalados nesta imagem. Também pode obter informações completas sobre esses controladores e guardá-las no relatório.{crlf;}{crlf;} +May.Take.Long.Message=Tenha em atenção que isto pode demorar mais tempo dependendo do número de controladores instalados. +Prompt.Label=Pretende obter esta informação e guardá-la no relatório? +DriverInfo.Message=Informações do controlador +Setting.Applied.Task.Message=Esta configuração também é aplicada a esta tarefa, mas pode obter as informações de todos os controladores agora. Tenha em atenção que isto pode demorar muito tempo, dependendo da quantidade de controladores originais. +Get.Message=Pretende obter as informações de todos os controladores, incluindo os controladores que fazem parte da distribuição do Windows? +DriversObtained.Message=Os controladores foram obtidos +Get.Driver.Message=Obter informações sobre os controladores... (controlador {0} de {1}) +SaveDrivers.Message=Guardar os controladores instalados... + +[ImageInfoSave.GetDriverInfo] +BgProcessDetect.Message=Configurou os processos em segundo plano para não detectarem todos os controladores, o que inclui controladores que fazem parte da distribuição do Windows, pelo que poderá não ver o controlador em que está interessado.{crlf;}{crlf;} + +[ImgInfo.Features] +Preparing.Feature.Message=A preparar processos de informação de características... +Loading.Feature.Message=Obter informações sobre as características... (caraterística {0} de {1}) + +[ImageInfoSave.Features] +Basic.Ready.Message=O programa obteve informações básicas sobre as características instaladas desta imagem. Também pode obter informações completas sobre essas características e guardá-las no relatório.{crlf;}{crlf;} +May.Take.Long.Message=Tenha em atenção que isto pode demorar mais tempo, dependendo do número de características instaladas. +Prompt.Label=Pretende obter esta informação e guardá-la no relatório? +FeatureInfo.Message=Informação sobre as características +FeaturesObtained.Message=As características foram obtidas +SaveFeatures.Message=Guardar as características instaladas... + +[ImageInfoSave.Image] +Getting.Image.Message=Obter informações sobre a imagem... (imagem {0} de {1}) + +[ImgInfo.PkgFiles] +Preparing.Package.Message=A preparar processos de informação sobre pacotes... + +[ImgInfo.PackageFiles] +Loading.Package.Message=Obter informações dos ficheiros do pacote... (ficheiro do pacote {0} de {1}) + +[ImgInfo.Packages] +Preparing.Package.Message=A preparar processos de informação de pacotes... +Loading.Package.Message=Obter informações sobre os pacotes... (pacote {0} de {1}) + +[ImageInfoSave.Packages] +Basic.Ready.Message=O programa obteve informações básicas sobre os pacotes instalados nesta imagem. Também pode obter informações completas sobre esses pacotes e guardá-las no relatório.{crlf;}{crlf;} +May.Take.Long.Message=Tem em atenção que isto pode demorar mais tempo, dependendo do número de pacotes instalados. +Prompt.Label=Deseja obter esta informação e guardá-la no relatório? +PackageInfo.Message=Informações do pacote +PackagesObtained.Message=Os pacotes foram obtidos +SavePackages.Message=Guardar os pacotes instalados... + +[ImageInfoSave.WinPE] +Prepare.Message=A preparar para obter a configuração do Windows PE... +Get.Target.Message=Obter a localização do objetivo do Windows PE... +Get.Scratch.Message=A obter espaço temporário do Windows PE... + +[ImageInfoSave.Report] +Get.Message=The program could not get information about this task. See below for reasons why: +Exception.Label=Exception: +ExceptionMessage=Exception message: +ErrorCode.Label=Error code: +ImageInfo.Label=Informações da imagem +Active.Install.Label=Active installation information: +Name.Label=Nome: +Boot.Point.Mount.Label=Boot point (mount point): +Version.Label=Versão: +Offline.Install.Label=Offline installation information: +OfflineVersion.Label=- Version: +ImageFile.Get.Label=Image file to get information from: +InfoSummary.Label=Information summary for +ImageS.Label=image(s): +Version.Column=Version +ImageName.Label=Nome da imagem +ImageDescription=Descrição da imagem +ImageSize.Label=Image size +Architecture.Label=Architecture +HAL.Label=HAL +ServicePackBuild.Label=Service Pack build +ServicePackLevel.Label=Service Pack level +InstallationType.Label=Installation type +Edition.Label=Edition +ProductType.Label=Product type +ProductSuite.Label=Product suite +System.Root.Dir.Label=System root directory +Languages.Label=Languages +DateCreation.Label=Date of creation +DateModification.Label=Date of modification +Default.Label=(default) +Bytes.Label=bytes (~ +UndefinedImage.Label=Undefined by the image +PackageInfo.Label=Informações do pacote +Active.Install.Label.Label=active installation +PackageS.Label=package(s): +PackageName.Label=Package name +Applicable.Label=Applicable? +Copyright.Label=Copyright +Company.Label=Company +CreationTime.Label=Creation time +Description=Description +InstallClient.Label=Install client +Install.Package.Name.Label=Install package name +InstallTime.Label=Install time +Last.Update.Time.Label=Last update time +DisplayName.Label=Display name +ProductName.Label=Product name +ProductVersion.Label=Product version +ReleaseType.Label=Release type +RestartRequired.Label=Restart required? +SupportInfo.Label=Support information +PackageState.Label=Package state +Boot.Up.Required.Label=Boot up required? +Capability.Identity.Label=Capability identity +CustomProps.Label=Custom properties +Features.Label=Funcionalidades +None.Label=None +Preposterous.Time.Date.Label=- **Preposterous time and date** +PackageInfo.Ready.Label=Complete package information has been gathered. +Package.Release.Type.Label=Package release type +Package.Install.Time.Label=Package install time +PackageInfo.Missing.Label=Complete package information has not been gathered +Package.File.Label=Package file information +Amount.Package.Files.Label=Amount of package files to get information about: +FeatureInfo.Label=Feature information +FeatureCount.Suffix=feature(s): +FeatureName.Label=Nome da funcionalidade +FeatureState.Label=Feature state +Web.Label=On The Web +Look.Item.Online.Label=Procurar este item online +FeatureInfo.Ready.Label=Complete feature information has been gathered +FeatureInfo.Missing.Label=Complete feature information has not been gathered +AppX.Package.Label=AppX package information +Task.Supported.Win.Message=This task is not supported on the specified Windows image. Check that it contains Windows 8 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +AppXPackages.Label=AppX package(s): +App.Display.Name.Label=Application display name +ResourceID.Label=Resource ID +RegisteredUser.Label=Registered to a user? +Install.Location.Label=Installation location +Package.Manifest.Label=Package manifest location +StoreLogo.Asset.Dir.Label=Store logo asset directory +Main.StoreLogo.Asset.Label=Main store logo asset +Yes.Button=Yes +No.Button=No +Unknown.Label=Desconhecido +Notemain.StoreLogo.Message=NOTE: main store logo asset locations are a guess, and may not be the assets you're looking for. If that happens, report an issue on the GitHub repo using the +StoreLogo.Asset.Label=Store logo asset preview issue +Template.Provide.Message=template. Then, provide the package name, the expected asset and the obtained asset. +CapabilityInfo.Label=Capability information +Task.Supported.Message=This task is not supported on the specified Windows image. Check that it contains Windows 10 or a later Windows version, and that it isn't a Windows PE image. Skipping task... +CapabilityIes.Label=capability/ies: +CapabilityName.Label=Capability name +CapabilityState.Label=Capability state +DownloadSize.Label=Download size +InstallationSize.Label=Installation size +BytesSuffix.Label=bytes +CapabilityInfo.Ready.Label=Complete capability information has been gathered +CapabilityInfo.Missing.Label=Complete capability information has not been gathered +DriverInfo.Label=Driver information +Box.Driver.Label=In-box driver information +WasSaved.Label=was saved +Saved.Label=was not saved +DriverS.Label=driver(s): +PublishedName.Label=Published name +Original.File.Name.Label=Nome original do ficheiro +ProviderName.Label=Provider name +ClassName.Label=Class name +ClassDescription=Class description +ClassGUID.Label=Class GUID +Catalog.File.Path.Label=Catalog file path +Part.Windows.Label=Part of the Windows distribution? +Critical.Boot.Process.Label=Critical to the boot process? +Date.Label=Data +SignatureStatus.Label=Signature status +DriverInfo.Ready.Label=Complete driver information has been gathered +DriverInfo.Missing.Label=Complete driver information has not been gathered +DriverPackage.Label=Driver package information +DriverPackageS.Label=driver package(s): +DriverPackage.Driver.Label=Driver package +Value.Label=of +HardwareTargets.Label=hardware target(s): +Hardware.Description=Hardware description +HardwareID.Label=Hardware ID +CompatibleIds.Label=Compatible IDs +ExcludeIds.Label=Exclude IDs +Hardware.Manufacturer.Label=Hardware manufacturer +None.Declared.Label=None declared by the manufacturer +File.Contains.Hardware.Label=This file contains no hardware targets. It could be invalid. +Windows.Label=Windows PE configuration +UnsupportedWin.Message=This task is not supported on the specified Windows image. Check that it is a Windows PE image. Skipping task... +Target.Path.Get.Label=Target path: could not get value +ScratchSpace.Get.Value.Label=Scratch space: could not get value +TargetPath.Label=Target path: +GetValue.Label=could not get value +ScratchSpace.Label=Scratch space: +ServiceInfo.Label=Service Information +Getting.Service.Label=Getting service information... +Service.Default.Label=serviço(s) no conjunto de controlo predefinido: +ServiceName.Label=Nome do serviço +DisplayName.Column=Nome a apresentar +StartType.Label=Start Type +ServiceType.Label=Service Type +Overview.Svc.Label=Saving information overview of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Detailed.Svc.Label=Saving detailed information of service {lbrace;}0{rbrace;} of {lbrace;}1{rbrace;}... +Undefined.Label=Undefined +Per.User.Service.Label=Not a per-user service +InfoService.Label=Information for service: {lbrace;}0{rbrace;} +Service.Display.Name.Label=Service Display Name: {lbrace;}0{rbrace;} +Service.Description=Service Description: {lbrace;}0{rbrace;} +ImagePath.Label=Image Path: {lbrace;}0{rbrace;} +ObjectName.Label=Object Name: {lbrace;}0{rbrace;} +StartType.Option0.Label=Start Type: {lbrace;}0{rbrace;} +DelayedStart.Label=Delayed Start? {lbrace;}0{rbrace;} +ServiceType.Option0.Label=Service Type: {lbrace;}0{rbrace;} +Per.User.Flags.Label=Per-user Service Flags: {lbrace;}0{rbrace;} +Group.Label=Group: {lbrace;}0{rbrace;} +WindowsNt.Label=Windows NT® privileges: +PrivilegeName.Label=Privilege Name +Privilege.Display.Name.Label=Privilege Display Name +Privilege.Description=Privilege Description +ErrorControl.Label=Error Control: +ServiceError.Label=On service error: {lbrace;}0{rbrace;} +Failure.Action.First.Label=Failure action on first error: {lbrace;}0{rbrace;} +Failure.Action.Second.Label=Failure action on second error: {lbrace;}0{rbrace;} +Failure.Errors.Label=Failure action on subsequent errors: {lbrace;}0{rbrace;} +ResetErrorCount.Label=Reset error count after the following minutes: {lbrace;}0{rbrace;} minute(s) +Restart.Service.Message=Restart service after the following minutes: {lbrace;}0{rbrace;} minute(s) ({lbrace;}1{rbrace;} seconds) after first failure, {lbrace;}2{rbrace;} minute(s) ({lbrace;}3{rbrace;} seconds) after second failure, {lbrace;}4{rbrace;} minute(s) ({lbrace;}5{rbrace;} seconds) after subsequent failures +Dependencies.Label=Dependencies: +Name.Column=Nome +Type.Label=Tipo +Dependents.Label=Dependents: +ServicesFound.Label=No services were found. +DISM.Tools.Image.Title=DISMTools Image Information Report +Automatically.Message=This is an automatically generated report created by DISMTools. It can be viewed at any time to check image information. +Report.Contains.Message=This report contains information about the tasks that you wanted to get information about, which are reflected below this message. +Process.Primarily.Message=This process primarily uses the DISM API to get information. If you want to get information of the API operations, this file does not include it. However, you can get that information from the log file stored in the standard location of: +TaskDetails.Label=Task details +ProcessesStarted.Label=Processes started at: +Report.File.Target.Label=Report file target: +Tasks.Get.Complete.Label=Information tasks: get complete image information +Tasks.Get.Image.Label=Information tasks: get image file information +Tasks.Get.Installed.Label=Information tasks: get installed package information +Tasks.Get.Package.Label=Information tasks: get package file information +Tasks.Get.Feature.Label=Information tasks: get feature information +TaskInstalled.Label=Information tasks: get installed AppX package information +Tasks.Get.Capability.Label=Information tasks: get capability information +Tasks.Get.Driver.Label=Information tasks: get installed driver information +Tasks.Get.Label.Label=Information tasks: get driver package information +Tasks.Get.Windows.Label=Information tasks: get Windows PE configuration +Tasks.Get.Services.Label=Information tasks: get services from default control set +WeEnded.Label=We have ended at +NiceDay.Label=. Have a nice day! +Complete.AppX.Label=Complete AppX package information has been gathered +AppxInfo.Ready2.Label=Complete AppX package information has not been gathered + +[ImgMount] +MountImage.Label=Montar uma imagem +Options.Required.Label=Por favor, especifique as opções para montar uma imagem: +ImageFile.Label=Ficheiro de imagem*: +ESD.Label=esd +Convert.File.WIM.Label=Tem de converter este ficheiro num ficheiro WIM para o poder montar +Convert.Button=Converter +SWM.Label=swm +Merge.Swmfiles.Item=É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar +Merge.Item=Combinar +MountDirectory.Label=Montar diretório*: +Index.Label=Índice*: +Fields.End.Required.Label=Os campos que terminam em * são obrigatórios +Source.Group=Fonte +Destination.Group=Destino +Options.Group=Opções +Browse.Button=Navegar... +Cancel.Button=Cancelar +Ok.Button=OK +Index.Column=Índice +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão da imagem +Mount.Read.CheckBox=Montar com permissões apenas de leitura +Optimize.Times.CheckBox=Otimizar tempos de montagem +Integrity.CheckBox=Verificar a integridade da imagem +Image.Already.Message=Esta imagem já está montada e não pode ser montada novamente. Se pretender montá-la no diretório pretendido, desmonte a imagem do seu diretório de montagem original (guardando as alterações, se pretender) e abra depois esta caixa de diálogo + +[ImgMount.Actions] +Convert.Button=Converter +Convert.Image.WIM.Message=Tem de converter este ficheiro num ficheiro WIM para o poder montar +Merge.Swmfiles.Message=É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar +Swm.Merge.Required.Message=É necessário combinar os ficheiros SWM com um ficheiro WIM para o montar + +[ImgMount.GetIndexes] +Gather.ImageFile.Message=Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[ImgMount.Validation] +Create.Dir.Reason.Message=Não foi possível criar o diretório de montagem. Motivo: {0}; {1} +MountImage.Title=Montar uma imagem + +[AppxPackages.Add.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Add provisioned AppX packages + +[AppxPackages.Remove.Messages] +Right.Only.Message=Right now, you can only specify less than 65535 AppX packages. This is a program limitation that will be gone in a future update. +Prov.Label=Remove provisioned AppX packages + +[ImageConversion.WimToEsd] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Drivers.Export] +Class.Name.Message=This class name is not valid. + +[ImageOps.Editions.Set] +DirectoryMissing.Message=Either no directory has been specified or it does not exist. +ProductKey.Message=The product key has been typed incorrectly + +[FFU.Apply.Messages] +Destination.Disk.Message=Make sure that the destination disk is as large or larger than the specified FFU file when mounted. If the destination disk is larger than the FFU's expanded partitions, please extend partitions to their full extent. + +[FFU.Capture.Messages] +Source.Drive.Exist.Label=The specified source drive does not exist. +Source.Drive.Message=The source drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? +Provide.Dest.Path.Label=Please provide a destination path for the FFU file. +Provide.Name.Dest.Label=Please provide a name for the destination FFU file. + +[FFU.Optimize.Messages] +Path.Image.Required.Message=Please specify the path of the image you want to optimize and try again. Also, make sure that that path exists. + +[ImageConversion.SwmToWim] +Get.Index.Image.Label=Could not get index information for this image file + +[ImgSplit] +SplitImages.Label=Dividir imagens +Image.Task.Header.Label={0} +Source.Image.Label=Imagem de origem a dividir: +Name.Path.Destination.Label=Nome e caminho da imagem dividida de destino: +Maximum.Size.Images.Label=Tamanho máximo das imagens divididas (em MB): +LargeFile.Note.Message=Tenha em atenção que, para acomodar um ficheiro grande na imagem, um ficheiro de imagem dividida pode ser maior do que o valor especificado +Browse.Button=Navegar... +Ok.Button=OK +Cancel.Button=Cancelar +Integrity.CheckBox=Verificar a integridade da imagem +Source.WIM.File.Title=Especificar o ficheiro WIM de origem a dividir: +Target.Location.Title=Especificar a localização de destino das imagens divididas: + +[ImgSplit.Validation] +Name.Required.Message=Especifique um nome e uma localização para o ficheiro SWM de destino e tente novamente. Além disso, certifique-se de que o caminho de destino existe. +Source.WIM.Required.Message=Especifique um ficheiro WIM de origem e tente novamente. Além disso, certifique-se de que ele existe. + +[Img.Swm] +MergeSwmfiles.Label=Combinar ficheiros SWM +Image.Task.Header.Label={0} +SourceSwmfile.Label=Ficheiro SWM de origem: +Notewhen.Specifying.Message=NOTA: ao especificar o arquivo SWM, escolha o primeiro arquivo. DISMTools cuidará dos arquivos SWM adicionais armazenados nesse diretório. +Destination.WIM.File.Label=Ficheiro WIM de destino: +Index.Label=Índice: +Browse.Button=Navegar... +Ok.Button=OK +Cancel.Button=Cancelar +LearnHow.Link=Saiba como o fazer +Index.Column=Índice +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão da imagem +Source.Swmfile.Title=Especificar o ficheiro SWM de origem a combinar +Dest.WIM.File.Title=Especificar o ficheiro WIM de destino para combinar os ficheiros SWM de origem + +[ImgUMount] +UnmountImage.Label=Desmontar uma imagem +Options.Required.Label=Por favor, especifique as opções para desmontar esta imagem: +Dir.Label=O diretório de montagem: +MountDirectory.Label=Diretório de montagem: +UnmountOperation.Label=Operação de desmontagem: +Integrity.CheckBox=Verificar a integridade da imagem +Append.Changes.CheckBox=Anexar alterações a outro índice +Pick.Button=Escolher... +Ok.Button=OK +Cancel.Button=Cancelar +Dir.Required.Description=Por favor, especifique um diretório de montagem: +LoadedProject.RadioButton=está carregado no projeto +LocatedSomewhere.RadioButton=está localizado noutro local +Save.Changes.Unmount.Item=Guardar alterações e desmontar +Discard.Changes.Unmount.Item=Descartar alterações e desmontar +MountDirectory.Group=Diretório de montagem +Additional.Options.Group=Opções adicionais + +[ImgUMount.Validation] +Dir.Invalid.Message=O diretório especificado não é um diretório de montagem válido. +Dir.Missing.Message=O diretório de montagem não existe. + +[Img.WIM] +ConvertImage.Label=Converter imagem +Image.Task.Header.Label={0} +SourceImageFile.Label=Ficheiro de imagem de origem: +Format.Converted.Image.Label=Formato da imagem convertida: +Destination.ImageFile.Label=Ficheiro de imagem de destino: +Index.Label=Índice: +Format.Ichoose.Link=Qual o formato que devo escolher? +Browse.Button=Navegar... +Ok.Button=OK +Cancel.Button=Cancelar +Index.Column=Índice +ImageName.Column=Nome da imagem +ImageDescription.Column=Descrição da imagem +ImageVersion.Column=Versão da imagem +Source.Group=Fonte +Options.Group=Opções +Destination.Group=Destino +Source.ImageFile.Title=Especifique o ficheiro de imagem de origem que pretende converter +Target.Image.Stored.Title=Onde será guardada a imagem de destino? + +[Img.Win] +Service.Windows.Message=O programa não pode efetuar a manutenção de imagens do Windows Vista +Unsupported.Message=Nem este programa nem o DISM suportam a manutenção de imagens do Windows Vista. O DISM destina-se a servir imagens do Windows 7 ou mais recentes. Pode continuar a montar imagens do Windows Vista, mas todas as opções serão desactivadas.{crlf;}{crlf;}Se ainda pretender reparar uma imagem do Windows Vista, consulte o tópico {quot;}Compatibilidade com versões anteriores do Windows{quot;} na documentação da Ajuda.{crlf;}{crlf;}Pretende continuar? +Yes.Button=Sim +No.Button=Não + +[ImportDrivers] +Title.Label=Importar controladores +Process.Third.Message=Este processo irá importar todos os controladores de terceiros da fonte que especificar para esta imagem ou instalação. Isto assegura que a imagem de destino terá a mesma compatibilidade de hardware da imagem de origem +ImportSource.Label=Importar fonte: +Source.Doesn.Tany.Label=Esta fonte não tem quaisquer configurações adicionais disponíveis. +Source.Listed.Choose.Label=Escolha uma fonte listada acima para configurar as suas definições. +Windows.Label=Imagem do Windows a partir da qual importar controladores: +Tuse.Target.Label=Não é possível utilizar o destino de importação como fonte de importação +Offline.Drivers.Label=Instalação offline para importar controladores de: +ImageFile.Label=Ficheiro de imagem: +Pick.Button=Escolher... +Refresh.Button=Atualizar +Ok.Button=OK +Cancel.Button=Cancelar +DriveLetter.Column=Letra da unidade +DriveLabel.Column=Label da unidade +DriveType.Column=Tipo de unidade +TotalSize.Column=Tamanho total +Available.Free.Space.Column=Espaço livre disponível +DriveFormat.Column=Formato da unidade +ContainsWindows.Column=Contém Windows? +Windows.Column=Versão do Windows +Windows.Item=Imagem do Windows +Online.Install.Item=Instalação online +Offline.Install.Item=Instalação offline + +[IncompleteSetup] +SetupIncomplete.Message=O assistente de configuração ainda não está concluído e as suas configurações personalizadas não serão guardadas. Se prosseguir, o programa utilizará as configurações predefinidas.{crlf;}{crlf;}Pretende prosseguir? +Yes.Button=Sim +No.Button=Não + +[InfoSaveResults] +Image.Report.Label=Resultados do relatório de informações sobre imagens +ReportSaved.Message=O relatório foi guardado na localização que especificou e o seu conteúdo será apresentado abaixo. +SaveReport.Button=Guardar relatório... + +[InfoSaveResults.Actions] +Ok.Button=OK + +[Settings.Dialog] +Detected.Label=Foram detectadas definições inválidas +Reset.Default.Message=As definições inválidas foram repostas para os valores predefinidos. Verifique os campos abaixo para obter mais informações: +Ok.Button=OK +Dismexecutable.Exist.Item=O executável DISM especificado não existe: {crlf;}{quot;}{0}{quot;} +DISM.Executable.Label=A configuração do executável DISM parece estar em ordem +Log.Font.Exist.Item=A fonte de registo especificada não existe neste sistema: {crlf;}{quot;}{0}{quot;} +Log.Font.Setting.Label=A configuração da fonte de registo parece estar em ordem +Log.File.Exist.Item=O ficheiro de registo especificado não existe: {crlf;}{quot;}{0}{quot;} +Log.File.Setting.Label=A configuração do ficheiro de registo parece estar em ordem +Scratch.Dir.Exist.Item=O diretório temporário especificado não existe: {crlf;}{quot;}{0}{quot;} +Scratch.Dir.Set.Label=A configuração do diretório temporário parece estar em ordem + +[InvalidSettings] +Found.Label=O programa detectou definições inválidas + +[MUMAdditionDialog] +Add.Update.Manifest.Label=Adicionar manifesto de atualização +DialogHelp.Message=Esta caixa de diálogo permite-lhe adicionar um ficheiro Microsoft Update Manifest (MUM) à imagem de destino. Só pode especificar um de cada vez.{crlf;}{crlf;} +Note.Advanced.Only.Message=Tenha em atenção que isto é apenas para utilização avançada e pode comprometer a imagem de destino do Windows. +Path.Manifest.File.Label=Caminho do ficheiro de manifesto a adicionar: +Browse.Button=Procurar... +Cancel.Button=Cancelar +Ok.Button=OK + +[Main] +Props.Label=Propriedades +ProjProps.Label=Propriedades +Getting.Package.Names.Label=Obter nomes de pacotes... +Getting.Feature.Names.Label=Obter os nomes das características e o seu estado... +Wait.Label=Obter nomes de pacotes... +Get.Cap.Names.Label=Obter os nomes das capacidades e o seu estado... +Loading.DriverPackages.Label=Obter pacotes de controladores instalados... + +[Main.ADKCopierBW.Background] +ToolsCopied.Label=As ferramentas de implementação foram copiadas para o projeto com sucesso +Deployment.Tools.Aren.Item=As ferramentas de implantação não estão presentes neste sistema +Deployment.Tools.Copied.Item=Não foi possível copiar as ferramentas de implantação + +[Main.ADKCopy] +Prepare.Deploy.Tools.Label=Preparar a cópia das ferramentas de implantação...{0} +Architecture.Label=(arquitetura {0} de 4) +Copying.Deployment.Label=Cópia das ferramentas de implementação para a arquitetura ({0}, {1}%{2})... +Progress.Architecture.Label=, arquitetura {0} de 4 + +[Main.Actions] +UnsupportedImage.Message=Esta ação não é suportada nesta imagem + +[Main.BgProcesses] +ImageCompleted.Label=Os processos de imagem foram concluídos + +[Main.ChangeImgStatus] +No.Button=Não +Yes.Button=Sim + +[Main.CheckForUpdates] +CheckingUpdates.Link=Verificar actualizações... +NewVersion.Available.Link=Está disponível uma nova versão para transferência e instalação. Clique aqui para saber mais +Learn.Link=Clique aqui para saber mais + +[Main.CommandLineHelp] +Pass.Arguments.Message=You can pass command line arguments like this:{crlf;}{crlf;} DISMTools.exe {crlf;}{crlf;}The command line arguments that are available to you are the following:{crlf;}{crlf;} /setup{crlf;} Shows the initial setup wizard and reconfigures the program{crlf;} /load={crlf;} Loads a project file. You need to provide an absolute path for a project file, like this:{crlf;} DISMTools.exe /load={quot;}C:\foo\bar.dtproj{quot;}{crlf;} /online{crlf;} Enters the online installation management mode{crlf;} /offline:{crlf;} Enters the offline installation management mode. You need to provide a drive, like this:{crlf;} DISMTools.exe /offline:E:\{crlf;} /migrate{crlf;} Forces setting migration. While you can use this parameter, it should be used by the update system{crlf;} /nomig{crlf;} Skips setting migration. This parameter speeds up testing{crlf;} /noupd{crlf;} Disables update checks. Don't use this parameter unless you're testing a change{crlf;} /exp{crlf;} Enables program experiments if there are any{crlf;}{crlf;}DISMTools will continue starting up after you close this help message. +DISM.Tools.Title=DISMTools command line arguments + +[Main.CopyAsset] +Copied.Clipboard.Label=O recurso foi copiado para a área de transferência +CopySuccessful.Title=Cópia com sucesso + +[Main.ComputerInfo] +Build.Label=compilação +SystemMemory.Label=da memória do sistema +UsedOut.Label=utilizada de +Part.Domain.Label=Não faz parte de um domínio +PartDomain.Label=Faz parte de um domínio +Backup.Domain.Label=Controlador de domínio de backup +Primary.Domain.Label=Controlador de domínio primário +ConnectedNetwork.Label=Não está ligado a uma rede +Manual.Label=Manual +Automatic.Assigned.Label=Automático (atribuído por DHCP) + +[Main.EndOfflineMgmt] +Bg.Procs.Still.Message=Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los? +Cancelling.Bg.Procs.Button=Cancelamento de processos em segundo plano. Por favor, aguarde... + +[Main.EndOffline] +Ready.Item=Pronto +Yes.Button=Sim + +[Main.EndOnlineMgmt] +Bg.Procs.Still.Message=Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los? +Cancelling.Bg.Procs.Button=Cancelamento de processos em segundo plano. Por favor, aguarde... + +[Main.EndOnline] +Ready.Item=Pronto +Yes.Button=Sim + +[Main.GetArguments] +Project.Message=Não foi possível abrir o projeto porque este ficheiro não existe:{crlf;}{crlf;}{0}{crlf;}{crlf;}Se o projeto foi movido, abra o respetivo ficheiro .dtproj a partir da nova localização. Se ainda não tiver sido criado, volte a criar o projeto e escolha uma pasta onde tenha acesso de escrita. + +[Main.ExternalTools] +Error.Title=Erro ao iniciar a ferramenta +NotFound.Message=Não foi possível iniciar {0} porque o respetivo ficheiro executável não foi encontrado:{crlf;}{crlf;}{1}{crlf;}{crlf;}Repare ou reinstale o DISMTools e tente novamente. +StartFailed.Message=Não foi possível iniciar {0}.{crlf;}{crlf;}Motivo: {1}{crlf;}{crlf;}Repare ou reinstale o DISMTools se o problema persistir. + +[Main.ReportManager] +Error.Title=Gestor de relatórios +ProjectRequired.Message=Primeiro, carregue ou crie um projeto DISMTools. Os relatórios do projeto são guardados na pasta reports dentro do projeto. +OpenFailed.Message=Não foi possível abrir a pasta de relatórios do projeto:{crlf;}{crlf;}{0}{crlf;}{crlf;}Motivo: {1} + +[Main.SaveProjectAs] +Save.Button=Guardar +Unavailable.Message=Guardar projeto como não está disponível porque não está carregado nenhum projeto DISMTools normal. Abra ou crie primeiro um projeto. +InvalidDestination.Message=Escolha outro nome de projeto ou localização. Um projeto não pode ser guardado dentro de si próprio. +DestinationExists.Message=A pasta de destino do projeto não está vazia:{crlf;}{crlf;}{0}{crlf;}{crlf;}Escolha outro nome ou localização. +OpenCopyFailed.Message=A cópia do projeto foi criada, mas o DISMTools não conseguiu abri-la:{crlf;}{crlf;}{0} +Error.Message=Não foi possível guardar o projeto como cópia.{crlf;}{crlf;}Destino:{crlf;}{0}{crlf;}{crlf;}Motivo:{crlf;}{1} +Error.Title=Guardar projeto como + +[Main.Get.Basic] +Online.Install.Label=(Instalação em linha) +Offline.Install.Item=(Instalação offline) +Offline.Install.Label=(Instalação offline) + +[Main.GetCapabilities] +Cap.Names.Their.Label=Obter os nomes das capacidades e o seu estado... + +[Main.GetCapabilities.Actions] +UnsupportedImage.Message=Esta ação não é suportada nesta imagem + +[Main.GetDrivers] +Loading.DriverPackages.Label=Obter pacotes de controladores instalados... + +[Main.GetFeatures] +Getting.Feature.Names.Label=Obter os nomes das características e o seu estado... + +[Main.Get.OS] +Days.Go.Back.Message=Tem {0} dias para voltar à versão antiga do Windows.{crlf;}{crlf;}Para aumentar ou diminuir esta janela de desinstalação, aceda a Comandos > Desinstalação do sistema operativo > Definir janela de desinstalação...{crlf;}Para iniciar a reversão do SO, aceda a Comandos > Desinstalação do sistema operativo > Iniciar desinstalação...{crlf;}Para remover a capacidade de reverter para a versão antiga, vá para Comandos > Desinstalação do sistema operacional > Remover capacidade de reversão... + +[Main.OSUninstallWindow] +OnlineOnly.Message=Esta ação só é suportada em instalações online + +[Main.GetPackages] +Getting.Package.Names.Label=Obter nomes de pacotes... + +[Main.GetProvAppx] +Getting.Package.Names.Label=Obter nomes de pacotes... + +[Main.ProvAppx] +UnsupportedImage.Message=Esta ação não é suportada nesta imagem + +[Main.GetTargetEditions] +CurrentEdition.Message=A edição atual é {quot;}{0}{quot;}{crlf;} +ProductKey.Upgrade.Message=Se tiver uma chave de produto, poderá atualizar esta imagem do Windows para uma edição superior. +Windows.Message=As imagens do Windows PE não podem ser actualizadas para edições superiores. +Suitable.ProductKey.Message=Se tiver uma chave de produto adequada, pode atualizar esta imagem do Windows para uma das seguintes edições:{crlf;}{crlf;} +Image.Cannot.Message=Esta imagem não pode ser actualizada para edições superiores porque está na sua edição mais elevada + +[Main.HideChildDescs] +Ready.Label=Pronto +Cancelling.Bg.Procs.Item=Cancelamento de processos em segundo plano. Por favor, aguarde... + +[Main.HideParentDesc] +Ready.Label=Pronto +Cancelling.Bg.Procs.Item=Cancelamento de processos em segundo plano. Por favor, aguarde... + +[Main.InitDynaLog] +Beware.Custom.Themes.Title=Cuidado com os temas personalizados +DISM.Tools.Detected.Message=O DISMTools detectou que foi definido um tema personalizado neste sistema. Alguns temas personalizados fazem com que o programa não tenha um aspeto correto, pelo que se recomenda a mudança para o tema predefinido. + +[Main.StartOSUninstall] +ReadCarefully.Message={0}, leia atentamente esta mensagem antes de prosseguir.{crlf;}{crlf;}Se tiver instalado programas após a atualização, o processo de reversão poderá removê-los. Certifique-se de que efectuou uma cópia de segurança das respectivas definições para o caso de ter de os reinstalar mais tarde. Além disso, faça uma cópia de segurança dos seus ficheiros para o caso de serem afectados pelo processo de reversão.{crlf;}{crlf;}De seguida, não obtenha o seu acesso bloqueado. Se tiver definido uma palavra-passe para o seu utilizador atual, certifique-se de que a sabe. Caso contrário, poderá não conseguir iniciar sessão.{crlf;}{crlf;}Por fim, obrigado por experimentar esta versão do Windows.{crlf;}{crlf;}Pretende iniciar o processo de reversão? + +[Main.OSUninstall] +OnlineOnly.Message=Esta ação só é suportada em instalações online + +[Main.Interface] +File.Label=&Ficheiro +Project.Label=&Projeto +Commands.Label=Co&mandos +Tools.Label=&Ferramentas +Help.Label=&Ajuda +Settings.Detected.Label=Foram detectadas configurações inválidas +NewProject.Button=&Novo projeto... +Open.Existing.Project.Label=&Abrir projeto existente +Manage.Online.Install.Label=&Gerir a instalação em linha +Manage.Ffline.Button=Gerir a instalação o&ffline... +RecentProjects.Label=Projectos recentes +SaveProject.Button=&Guardar projeto... +SaveProjectas.Button=Save project &como... +Exit.Label=Sa&ir +View.Project.Files.Label=Ver ficheiros de projeto no Explorador de Ficheiros +UnloadProject.Button=Descarregar o projeto... +Switch.Image.Indexes.Button=Alternar os índices de imagem... +ProjectProps.Label=Propriedades do projeto +ImageProps.Label=Propriedades da imagem +ImageManagement.Label=Gestão de imagens +OSPackages.Label=Pacotes do sistema operativo +ProvPackages.Label=Pacotes de provisionamento +AppxPackages.Label=Pacotes AppX +AppMspservicing.Label=Serviço de aplicações (MSP) +DefaultApp.Assoc.Label=Associações de aplicações predefinidas +Languages.Regional.Label=Línguas e definições regionais +Capabilities.Label=Capacidades +Windows.Label=Edições do Windows +Drivers.Label=Controladores de dispositivos +Unattended.Answer.Label=Ficheiros de resposta não assistidos +WindowsPE.Label=Manutenção do Windows PE +OSUninstall.Label=Desinstalação do sistema operativo +ReservedStorage.Label=Armazenamento reservado +Append.Capture.Dir.Button=Anexar o diretório de captura à imagem... +ApplyFfusfufile.Button=Aplicar o ficheiro FFU ou SFU... +ApplyWimswmfile.Button=Aplicar ficheiro WIM ou SWM... +Capture.Incremental.Button=Capturar alterações incrementais no ficheiro... +Capture.Partitions.Button=Capturar partições para o ficheiro FFU... +Capture.Image.Drive.Button=Capturar imagem de uma unidade para um ficheiro WIM... +Delete.Resources.Button=Eliminar recursos de uma imagem corrompida... +Apply.Changes.Image.Button=Aplicar alterações à imagem... +Delete.VolumeImages.Button=Eliminar imagens de volume do ficheiro WIM... +ExportImage.Button=Exportar imagem... +Get.Image.Button=Obter informações sobre a imagem... +Get.WIM.Boot.Button=Obter entradas de configuração do WIMBoot... +List.Files.Dirs.Button=Listar ficheiros e directórios na imagem... +MountImage.Button=Montar imagem... +Optimize.FFU.File.Button=Otimizar ficheiro FFU... +OptimizeImage.Button=Otimizar imagem... +Remount.Image.Button=Remontar imagem para manutenção... +Split.FFU.File.Button=Dividir o arquivo FFU em arquivos SFU... +Split.WIM.File.Button=Dividir ficheiro WIM em ficheiros SWM... +UnmountImage.Button=Desmontar imagem... +Update.WIM.Boot.Button=Atualizar a entrada de configuração WIMBoot... +Apply.Siloed.Prov.Button=Aplicar pacote de provisionamento em silo... +Save.Image.Button=Guardar informações da imagem... +GetPackages.Button=Obter informações sobre os pacotes... +AddPackage.Button=Adicionar pacotes... +RemovePackage.Button=Remove package... +GetFeatures.Button=Obter informações sobre as características... +EnableFeature.Button=Ativar características... +DisableFeature.Button=Desativar funcionalidades... +CleanupRecovery.Button=Efetuar operações de limpeza ou de recuperação... +Add.Prov.Package.Button=Adicionar pacote de aprovisionamento... +Get.Prov.Package.Button=Obter informações sobre o pacote de aprovisionamento... +Apply.CustomData.Button=Aplicar imagens de dados personalizadas... +Get.App.Package.Button=Obter informações sobre o pacote AppX... +Add.Provisioned.App.Button=Adicionar pacote AppX provisionado... +Remove.Prov.App.Button=Remover o aprovisionamento do pacote AppX... +Optimize.Provisioned.Button=Otimizar os pacotes provisionados... +Add.CustomData.File.Button=Adicionar ficheiro de dados personalizado ao pacote AppX... +Get.App.Patch.Button=Obter informações sobre patches de aplicações... +Detailed.App.Patch.Button=Obter informações detalhadas sobre patches de aplicações... +Basic.Installed.App.Button=Obter informações básicas sobre patches de aplicações instaladas... +Get.Detailed.Button=Obter informações detalhadas sobre a aplicação Windows Installer (*.msi)... +Get.Basic.Windows.Button=Obter informações básicas sobre a aplicação Windows Installer (*.msi)... +Export.Default.Button=Exportar associações de aplicações predefinidas... +DefaultApp.Assoc.Button=Obter informações de associação de aplicações predefinidas... +Import.Default.Button=Importar associações de aplicações predefinidas... +Remove.Default.Button=Remover associações de aplicações predefinidas... +Intl.Settings.Button=Obter definições e línguas internacionais... +SetUilanguage.Button=Definir o idioma da IU... +Set.Default.Button=Definir idioma de reserva predefinido da interface de utilizador... +Set.System.Preferred.Button=Definir o idioma preferido da IU do sistema... +Set.System.Locale.Button=Definir a localidade do sistema... +Set.User.Locale.Button=Definir a localidade do utilizador... +Set.Input.Locale.Button=Definir localidade de entrada... +Set.UI.Button=Definir o idioma e as localidades da IU... +Set.Default.Time.Button=Definir o fuso horário predefinido... +Set.Default.Languages.Button=Definir idiomas e localidades predefinidos... +Set.Layered.Driver.Button=Definir driver em camadas... +Generate.Lang.Ini.Button=Gerar ficheiro Lang.ini... +Set.Default.Setup.Button=Definir idioma de configuração padrão... +AddCapability.Button=Adicionar capacidade... +Export.Capabilities.Button=Exportar capacidades para o repositório... +GetCapabilities.Button=Obter informações sobre a capacidade... +RemoveCapability.Button=Remover capacidade... +Get.Edition.Button=Obter a edição atual... +Get.Upgrade.Targets.Button=Obter objectivos de atualização... +UpgradeImage.Button=Atualizar a imagem... +SetProductKey.Button=Definir a chave do produto... +GetDrivers.Button=Obter informações sobre o controlador... +AddDriver.Button=Adicionar controlador... +RemoveDriver.Button=Remover controlador... +Export.DriverPackages.Button=Exportar pacotes de controladores... +Import.DriverPackages.Button=Importar pacotes de controladores... +Apply.Unattended.Button=Aplicar ficheiro de resposta não assistida... +GetSettings.Button=Obter definições... +SetScratchSpace.Button=Definir espaço de temporário... +Set.Target.Path.Button=Definir caminho de destino... +Get.Uninstall.Window.Button=Obter janela de desinstalação... +Initiate.Uninstall.Button=Iniciar a desinstalação... +Remove.Roll.Back.Button=Remover a capacidade de reversão... +Set.Uninstall.Window.Button=Definir janela de desinstalação... +Set.Reserved.Storage.Button=Definir estado de armazenamento reservado... +Get.Reserved.Storage.Button=Obter estado de armazenamento reservado... +AddEdge.Button=Adicionar Edge... +Add.Edge.Browser.Button=Adicionar navegador do Edge... +Add.Edge.Web.Button=Adicionar Edge WebView... +ImageConversion.Label=Conversão de imagens +MergeSwmfiles.Button=Fundir ficheiros SWM... +Remount.Image.Write.Label=Remontar imagem com permissões de escrita +CommandConsole.Label=Consola de comandos +Unattended.AnswerFile.Label=Gestor de ficheiros de resposta não assistida +Unattended.Creator.Label=Criador de ficheiros de resposta não assistida +Manage.Image.Registry.Button=Gerir as colmeias do registo de imagens... +WebResources.Label=Recursos da Web +Download.Languages.Button=Descarregar ISOs de idiomas e caraterísticas opcionais... +Download.FOD.Button=Descarregar discos de idiomas e FOD para o Windows 10... +ReportManager.Label=Gestor de relatórios +Mounted.Image.Manager.Label=Gestor de imagens montadas +Create.Disc.Image.Button=Criar imagem de disco... +Create.Testing.Button=Criar um ambiente de teste... +Config.List.Editor.Label=Editor de listas de configuração +Options.Label=Opções +HelpTopics.Label=Tópicos de Ajuda +DISM.Tools.Label=Acerca do DISMTools +MoreInfo.Label=Mais informações +WhatsThis.Label=O que é isto? +Report.Feedback.Opens.Label=Comunicar comentários (abre no navegador Web) +Contribute.Help.System.Label=Contribuir para o sistema de ajuda +TourActions.Label=Ações do Tour +Tour.Server.Active.Label=O servidor de tour está ativo na porta {0} +RestartTour.Label=Reiniciar Tour +Stop.Tour.Server.Label=Parar Servidor de Tour +Begin.Label=Início +NewProject.Link=Novo projeto... +Open.Existing.Project.Link=Abrir projeto existente... +Manage.Online.Install.Link=Gerir a instalação online +Manage.Offline.Button.Button=Gerir a instalação offline... +RemoveEntry.Link=Remover entrada +CloseTab.Label=Fechar separador +SaveProject.Label=Guardar projeto +UnloadProject.Label=Descarregar projeto +Unload.Project.Tooltip=Descarregar projeto a partir deste programa +Show.Progress.Window.Label=Mostrar janela de progresso +RefreshView.Label=Atualizar vista +Expand.Label=Expandir +NewVersion.Available.Link=Está disponível uma nova versão para transferência e instalação. Clique aqui para saber mais +Get.Basic.Label=Obter informações básicas (todos os pacotes) +Get.Detailed.Specific.Label=Obter informações detalhadas (pacote específico) +CommitImage.Label=Confirmar alterações e desmontar imagem +Discard.Changes.Label=Descartar alterações e desmontar a imagem +UnmountSettings.Button=Desmontar definições... +View.Package.Dir.Label=Ver diretório de pacotes +Get.ImageFile.Button=Obter informações sobre o ficheiro de imagem... +Save.Complete.Image.Button=Guardar informações completas sobre a imagem... +Create.Disc.ImageFile.Button=Criar imagem de disco com este ficheiro... +Project.File.Load.Title=Especifique o ficheiro de projeto a carregar +MountDir.Description=Especifique o diretório de montagem que pretende carregar para este projeto: +Image.Processes.Label=Os processos de imagem foram concluídos +Ready.Label=Pronto +AccessDirectory.Label=Aceder ao diretório +Copy.Deployment.Tools.Label=Copiar ferramentas de implementação +AllArchitectures.Label=De todas as arquitecturas +Selected.Architecture.Label=Da arquitetura selecionada +Xarchitecture.Label=Para a arquitetura x86 +Amarkdown.Architecture.Label=Para a arquitetura AMD64 +ARM.Label=Para a arquitetura ARM +ARM64.Label=Para a arquitetura ARM64 +ImageOperations.Label=Operações de imagem +Remove.VolumeImages.Button=Remover imagens de volume... +Manage.Label=Gerir +Create.Label=Criar +Configure.Scratch.Dir.Label=Configurar o diretório de temporário +ManageReports.Label=Gerir relatórios +Add.Button=Adicionar +NewFile.Button=Novo ficheiro... +ExistingFile.Button=Ficheiro existente... +SaveResource.Button=Guardar recurso... +CopyResource.Label=Copiar recurso +Visit.Microsoft.Apps.Label=Visite o sítio Web das Aplicações Microsoft +Visit.Microsoft.Label=Visite o Web site do Projeto de Geração da Microsoft Store +Iget.Apps.Label=Como é que obtenho aplicações? +Welcome.Servicing.Label=Bem-vindo a esta sessão de manutenção +Project.Link=PROJECTO +Image.Link=IMAGEM +Name.Label=Nome: +Location.Label=Localização: +ImagesMounted.Label=Imagens montadas? +Mount.Image.Link=Clique aqui para montar uma imagem +ProjectTasks.Label=Tarefas do projeto +View.Project.Props.Link=Ver propriedades do projeto +Open.File.Explorer.Link=Abrir no Explorador de Ficheiros +UnloadProject.Link=Descarregar projeto +ImageMounted.Label=Não foi montada nenhuma imagem +Mount.Image.Order.Label=É necessário montar uma imagem para ver a sua informação +Choices.Label=Escolhas +MountImage.Link=Montar uma imagem... +Pick.Mounted.Image.Link=Escolher uma imagem montada... +ImageIndex.Label=Índice da imagem: +MountPoint.Label=Ponto de montagem: +Version.Label=Versão: +Description.Label=Descrição: +ImageTasks.Label=Tarefas de imagem +View.Image.Props.Link=Ver propriedades da imagem +UnmountImage.Link=Desmontar imagem +ImageOperations.Group=Operações de imagem +Commit.Changes.Button=Confirmar alterações actuais +CommitImage.Button=Confirmar e desmontar a imagem +Unmount.Image.Button=Desmontar imagem, descartando alterações +Reload.Servicing.Button=Recarregar sessão de manutenção +ApplyImage.Button=Aplicar imagem... +CaptureImage.Button=Capturar imagem... +Package.Operations.Group=Operações do pacote +Get.Package.Button=Obter informações sobre o pacote... +Save.Installed.Button=Guardar informações do pacote instalado... +Component.Store.Maint.Button=Executar manutenção e limpeza do arquivo de componentes... +Feature.Operations.Group=Operações de funcionalidades +Get.Feature.Button=Obter informações sobre a caraterística... +Save.Feature.Button=Guardar informação da caraterística... +AppX.Package.Operations=Operações do pacote AppX +Add.AppX.Package.Button=Adicionar pacote AppX... +Get.App.Button=Obter informações sobre a aplicação... +Save.Installed.AppX.Button=Guardar informações do pacote AppX instalado... +Remove.AppX.Package.Button=Remover pacote AppX... +Capability.Operations.Group=Operações de capacidade +Get.Capability.Button=Obter informações de capacidade... +Save.Capability.Button=Guardar informações de capacidade... +DriverOperations.Group=Operações do controlador +AddDriverPackage.Button=Adicionar pacote de controlador... +Get.Driver.Button=Obter informações do controlador... +Save.Installed.Driver.Button=Guardar informações do controlador instalado... +Windows.Group=Operações do Windows PE +GetConfig.Button=Obter configuração +SaveConfig.Button=Guardar configuração... +Yes.Button=Sim +No.Button=Não +Offline.Management.Button=Sim +Rename.Link=Renomear +DomainMembership.Label=Pertença a um domínio: +WorkgroupDomain.Label=Grupo de trabalho/Domínio: +IP.Address.Config.Label=Configuração do endereço IP: +Explore.Get.Started.Label=Explorar e começar +Stay.Up.Date.Label=Manter-se atualizado +FactDay.Label=Curiosidade do dia +Learn.Snew.Link=Descubra as novidades desta versão +Get.Started.DISM.Link=Começar a utilizar o DISMTools e a manutenção de imagens +Manage.Install.Link=Gerir a sua instalação atual +Manage.External.Link=Gerir instalações externas do Windows +Learn.Watching.Videos.Label=Aprenda assistindo a vídeos (em inglês) +Video.Content.Loaded.Label=Não foi possível carregar o conteúdo de vídeo. +News.Feed.Loaded.Label=Não foi possível carregar o feed de notícias. +LearnMore.Link=Saiba mais +Retry.Button=Tentar novamente + +[Main.Links] +Props.Label=Propriedades +ProjProps.Label=Propriedades + +[Main.Messages] +IE.Emulation.Changed.Message=Modified Internet Explorer emulation settings for DISMTools. You will need to restart DISMTools in order to start video playback +DISM.Tools.Modify.Message=DISMTools could not modify Internet Explorer emulation settings. Video playback will not start. +Items.Present.None.Label=No items are present in the Recents list. +Incompatible.Win7.Message=Este programa não é compatível com Windows 7 nem com Server 2008 R2.{crlf;}Este programa utiliza a API DISM, que requer ficheiros do Kit de Avaliação e Implementação (ADK). No entanto, o suporte para Windows 7 não está incluído.{crlf;}{crlf;}O programa será fechado. +Requires.NET.Message=Este programa requer o .NET Framework 4.8 para funcionar.{crlf;}Pode descarregá-lo em: dotnet.microsoft.com. Instale o framework e execute o programa novamente. Poderá ser necessário reiniciar o sistema.{crlf;}{crlf;}O programa será fechado. +Run.Admin.Message=Este programa tem de ser executado como administrador.{crlf;}Em determinadas configurações de software, o Windows executa este programa sem privilégios de administrador, pelo que tem de os solicitar manualmente.{crlf;}{crlf;}Clique com o botão direito no executável e selecione {quot;}Executar como administrador{quot;} +DISM.Tools.Detected.Message=O DISMTools detetou uma definição elevada de escala de visualização. Isto pode fazer com que o programa seja apresentado incorretamente.{crlf;}{crlf;}Recomendamos que reduza a escala para 125% (120 DPI) ou menos, a menos que tenha um ecrã pequeno configurado com uma resolução elevada. +Higher.Display.Scaling.Title=Definição elevada de escala detetada +DISM.Tools.Found.Message=O DISMTools encontrou um possível Kit de Avaliação e Implementação instalado no sistema. No entanto, este não está a ser detetado. Pretende corrigir isto? +Possible.ADK.Title=Possível ADK instalado no sistema +SafeMode.Prompt=Este computador arrancou em modo de segurança. Este modo foi concebido para recuperação em direto do sistema operativo.{crlf;}{crlf;}O DISMTools pode carregar automaticamente o modo de gestão da instalação online para que possa começar a tentar reparações.{crlf;}{crlf;}Pretende carregar o modo de gestão da instalação online? +Windows.Title=O Windows está em modo de segurança +Tour.Prompt=É a primeira vez que utiliza o DISMTools? Se sim, podemos ajudá-lo a começar com a visita guiada.{crlf;}{crlf;}Com a visita guiada, pode criar a sua primeira imagem do Windows e testá-la depois. Pode segui-la ao ritmo que preferir e aceder a ela em qualquer altura através do menu Ajuda.{crlf;}{crlf;}Pretende iniciar a visita guiada agora? +Getting.Started.DISM.Title=Introdução ao DISMTools +DISM.Tools.Running.Message=O DISMTools detetou que está a ser executado num sistema Windows Server Core. Algumas funcionalidades poderão não funcionar como esperado. +ServerCore.Title=Windows Server Core detetado +Project.DISM.Tools.Label=O projeto especificado não é um projeto do DISMTools. +DownloadFailed.Label=Não foi possível descarregar a instalação do WIM Explorer. Motivo:{crlf;}{0} +PrepareFailed.Label=Não foi possível preparar a instalação do WIM Explorer. Motivo:{crlf;}{0} +AnswerFile.Removed.Label=Ficheiro de resposta removido com êxito. +BackgroundBusy.Message=Os processos em segundo plano têm de terminar antes de carregar o gestor de serviços. +Background.Finish.Message=Os processos em segundo plano têm de terminar antes de carregar o gestor de variáveis de ambiente. +Secure.Boot.Enabled.Label=O Secure Boot não está ativado neste computador. +Secure.Boot.Status.Title=Estado do Secure Boot +Secure.Boot=O Secure Boot está ativado neste computador, mas não contém Windows UEFI CA 2023 na respetiva base de dados. Certifique-se de que o computador recebe as atualizações do Secure Boot antes de os certificados Microsoft Windows Production PCA 2011 expirarem em junho de 2026. +Update.Secure.Boot.Message=Está em curso uma atualização do Secure Boot para suportar Windows UEFI CA 2023. +Secure.Enabled=O Secure Boot está ativado neste computador e contém Windows UEFI CA 2023 na respetiva base de dados. +Determine.Status.Label=Não foi possível determinar o estado da atualização Windows UEFI CA 2023. + +[Main.Messages.Validation] +Cannot.Load.Project.Message=Não é possível carregar o projeto. Motivo: o projeto não foi encontrado. Poderá ter sido movido ou a respetiva pasta poderá ter sido eliminada. +Project.Load.Error.Title=Erro ao carregar o projeto + +[Main.News] +LearnMore.Link=Saiba mais +Last.Updated.Label=Última atualização das notícias: + +[Main.News.Error] +NoDetails.Message=Não existem detalhes adicionais sobre o erro do feed de notícias. Tenta atualizar o feed de notícias. + +[Main.News.Load] +Retry.Button=Tentar novamente + +[Main.OfflineManagement] +OfflineInstall.Label=Instalação offline - DISMTools +Install.Label=(Instalação offline) +Image.Registry.Message=O painel de controlo do registo de imagens tem de ser fechado antes de carregar este modo. +Yes.Button=Sim + +[Main.OnlineManagement.Start] +Install.DISM.Tools.Label=Instalação em linha - DISMTools +Install.Label=(Instalação em linha) +Yes.Button=Sim + +[Main.Project.Load] +LoadingProject.Label=Carregar projeto: {quot;}{0}{quot;} +Project.Label=Projeto: {quot;}{0}{quot;} +Adkdeployment.Tools.Label=Ferramentas de implantação do ADK +DeploymentTools.X86.Label=Ferramentas de implementação (x86) +Deployment.Tools.Label=Ferramentas de implementação (AMD64) +DeploymentTools.ARM.Label=Ferramentas de implementação (ARM) +DeploymentTools.ARM64.Label=Ferramentas de implementação (ARM64) +MountPoint.Label=Ponto de montagem +Unattended.Answer.Label=Ficheiros de resposta não assistidos +ScratchDirectory.Label=Diretório temporário +ProjectReports.Label=Relatórios de projectos + +[Main.Project.Load.Guard] +Image.Registry.Message=O painel de controlo do registo de imagens tem de ser fechado antes de carregar projectos. + +[Main.Project.Unload] +Bg.Procs.Still.Message=Os processos em segundo plano ainda estão a recolher informações sobre esta imagem. Deseja cancelá-los? +Cancelling.Bg.Procs.Button=Cancelamento de processos em segundo plano. Por favor, aguarde... +Ready.Item=Pronto + +[Main.ProjectTree.AfterCollapse] +Collapse.Label=Recolher +CollapseItem.Label=Recolher item +Expand.Item=Expandir +ExpandItem=Expandir item +ExpandCollapse.Item=Expandir +ExpandTool.ExpandItem=Expandir item + +[Main.ProjectTree.AfterExpand] +Collapse.Label=Recolher +CollapseItem.Label=Recolher item +Expand.Item=Expandir +ExpandItem=Expandir item + +[Main.ProjectTree.AfterSelect] +Collapse.Label=Recolher +CollapseItem.Label=Recolher item +Expand.Item=Expandir +ExpandItem=Expandir item + +[Main.RegistryPanel] +Control.Active.Message=Este painel de controlo não está disponível em instalações activas. + +[Main.Registry.Actions] +Load.Project.Mode.Message=É necessário carregar um projeto ou modo para gerir as colmeias de registo. + +[Main.RemoveOSUninstall] +ReadCarefully.Message={0}, leia atentamente esta mensagem antes de prosseguir.{crlf;}{crlf;}Se já utilizou esta nova versão do Windows durante algum tempo e determinou que não existem problemas, pode remover a capacidade de iniciar uma reversão.{crlf;}{crlf;}Isto não eliminará os ficheiros da instalação antiga, pelo que terá de utilizar a Limpeza de disco (cleanmgr) se pretender libertar algum espaço.{crlf;}{crlf;}Pretende remover a capacidade de retroceder para uma versão mais antiga do Windows? +OnlineOnly.Message=Esta ação só é suportada em instalações online + +[Main.Run.BgProcesses] +RunningProcesses.Label=Processos em curso +Getting.Basic.Image.Label=Obter informações básicas sobre a imagem... +AdvancedImageInfo.Label=Obter informações avançadas sobre a imagem... +Getting.Image.Packages.Label=Obter pacotes de imagem... +Getting.Image.Features.Label=Obter características da imagem... +Get.Image.Provisioned.Label=Obter pacotes AppX provisionados por imagem (aplicações de estilo Metro)... +Get.Image.Features.Label=Obter capacidades de imagem... +Getting.Image.Drivers.Label=Obter controladores de imagem... +Running.Pending.Tasks.Label=Execução de tarefas pendentes. Isto pode demorar algum tempo... + +[Main.SaveAsset] +Saved.Location.Label=O recurso foi guardado no local indicado +SaveSuccessful.Title=Guardado com sucesso + +[Main.ShowChildDescs] +Adds.Additional.Item=Adds an additional image to a .wim file +Applies.Full.Flash.Item=Applies a Full Flash Utility or split FFU to a physical drive +Applies.Windows.Image.Item=Applies a Windows image or split WIM to a partition +Captures.Incremen.File.Item=Captures incremental file changes on the specific WIM file to {quot;}custom.wim{quot;} +Captures.Image.Drive.Item=Captures an image of a drive's partitions to a new FFU file +Captures.Image.New.Item=Captures an image of a drive to a new WIM file +Deletes.Resources.Item=Deletes all resources associated with a corrupted mounted image +Applies.Changes.Made.Item=Applies the changes made to the mounted image +Deletes.Volume.Image.Item=Deletes a volume image from a WIM file +Exports.Copy.Image.Item=Exports a copy of the image to another file +Displays.Images.Item=Displays information about the images contained in a WIM, FFU, VHD or VHDX file +Displays.List.Wimffu.Item=Displays a list of WIM, FFU, VHD or VHDX images that are currently mounted +Displays.WIM.Boot.Item=Displays WIMBoot configuration entries for the specified disk volume +Displays.List.Files.Item=Displays a list of files and folders in an image +Mounts.Image.Wimffu.Item=Mounts an image from a WIM, FFU, VHD or VHDX to make it available for servicing +Optimizes.Ffuimage.Item=Optimizes a FFU image to make it faster to deploy +Optimizes.Image.Faster.Item=Optimizes an image to make it faster to deploy +Remounts.Mounted.Image.Item=Remounts a mounted image that is inaccessible to make it available for servicing +Splits.Full.Flash.Item=Splits a Full Flash Utility (FFU) file into read-only split FFU (.sfu) files +Splits.Existing.WIM.Item=Splits an existing WIM file into read-only split WIM (.swm) files +Unmounts.Wimffuvhd.Item=Unmounts the WIM, FFU, VHD or VHDX file and either commits or discards its changes +Updates.WIM.Boot.Item=Updates the WIMBoot configuration entry +Applies.Siloed.Prov.Item=Applies siloed provisioning packages to the image +Displays.Message=Displays information about all packages in the image or in the installation or any package file you want to add +Installs.Cabmsu.Package.Item=Installs a .cab or .msu package in the image +Removes.Cabfile.Package.Item=Removes a .cab file package from the image +Displays.Installed.Item=Displays information about the installed features in an image or an online installation +Enables.Updates.Feature.Item=Enables or updates the specified feature in the image +Disables.Feature.Image.Item=Disables the specified feature in the image +Performs.Cleanup.Item=Performs cleanup or recovery operations on the image +Adds.Applicable.Item=Adds an applicable payload of a provisioning package to the image +Gets.Infomation.Prov.Item=Gets infomation of a provisioning package +Dehydrat.Files.Containe.Item=Dehydrates files contained in the custom data image to save space +Displays.App.Item=Displays information about app packages in an image +Addsone.App.Item=Adds one or more app packages to the image +Removes.Prov.App.Item=Removes provisioning for app packages from the image +Optimizes.Total.Size.Item=Optimizes the total size of provisioned app packages on the image +Addscustom.Data.File.Item=Adds a custom data file into the specified app package +Displays.Msppatches.Item=Displays information of MSP patches applicable to the offline image +Command42.Item=Displays information about installed MSP patches +Displays.Item=Displays information about all applied MSP patches for all applications installed on the image +Displays.Specific.Item=Displays information about a specific installed Windows Installer application +Command45.Item=Displays information about all Windows Installer applications in the image +Exports.Default.Item=Exports default application associations from a running OS to an XML file +Displays.List.Item=Displays the list of default application associations set in the image +Imports.Set.DefaultApp.Item=Imports a set of default application associations from an XML file to an image +Removes.Default.Item=Removes default application associations from the image +Displays.Intl.Item=Displays information about international settings and languages +Sets.Default.Uilanguage.Item=Sets the default UI language +Sets.Fallback.Default.Item=Define o idioma de reserva predefinido da interface de utilizador do sistema +Sets.System.Preferred.Item=Sets the {quot;}System Preferred{quot;} UI language +Sets.Language.Non.Item=Sets the language for non-Unicode programs and font settings in the image +Sets.Standards.Formats.Item=Sets the {quot;}standards and formats{quot;} language (user locale) in the image +Sets.Input.Locales.Item=Sets the input locales and keyboard layouts to use in the image +Sets.Default.System.Message=Sets the default system UI language, the language for non-Unicode programs, the user locale, and the keyboard layouts to the language in the image +Sets.Default.Time.Item=Sets the default time zone in the image +Sets.Default.Message=Sets the default language for the UI and non-Unicode programs, locales for the user and input, keyboard layouts and time zone values in the image +Specifies.Keyboard.Item=Specifies a keyboard driver for Japanese and Korean keyboards +Generates.Lang.Ini.Item=Generates a Lang.ini file, used by Setup to define the language packs inside the image and out +Defines.Default.Item=Defines the default language that will be used by Setup +Addscapability.Image.Item=Adds a capability to an image +Exports.Set.Caps.Item=Exports a set of capabilities into a new repository +Gets.Installed.Item=Gets information about the installed capabilities of an image or an active installation +Removes.Capability.Item=Removes a capability from the image +Displays.Edition.Image.Item=Displays the edition of the image +Displays.Editions.Image.Item=Displays the editions the image can be upgraded to +Changes.Image.Higher.Item=Changes an image to a higher edition +Enters.ProductKey.Item=Enters the product key for the current edition +Displays.Driver.Message=Displays information about the driver packages you specify or the installed drivers in the image or in the installation +Addsthird.Party.Driver.Item=Adds third-party driver packages to the image +Removes.ThirdParty.Item=Removes third-party drivers from the image +Exports.ThirdParty.Item=Exports all third-party driver packages from the image to a destination path +Imports.ThirdParty.Message=Imports all third-party drivers from a specified source to this image to provide the same hardware compatibility +Applies.Unattend.Item=Applies an Unattend.xml file to the image +Displays.List.Windows.Item=Displays a list of Windows PE settings in the WinPE image +Retrieves.Configured.Item=Retrieves the configured amount of the Windows PE system volume scratch space +Retrieves.Target.Path.Item=Retrieves the target path of the Windows PE image +Sets.Available.Item=Sets the available scratch space (in MB) +Sets.Location.Win.Item=Sets the location of the WinPE image on the disk (for hard disk boot scenarios) +Gets.Number.Days.Item=Gets the number of days an uninstall can be initiated after an upgrade +Reverts.PC.Item=Reverts a PC to a previous installation +Removes.Ability.Roll.Item=Removes the ability to roll back a PC to a previous installation +Sets.Number.Days.Item=Sets the number of days an uninstall can be initiated after an upgrade +Gets.State.Reserved.Item=Gets the current state of reserved storage +Sets.State.Reserved.Item=Sets the state of reserved storage +Adds.Microsoft.Item=Adds the Microsoft Edge Browser and WebView2 component to the image +Command91.Item=Adds the Microsoft Edge Browser to the image +Addsmicrosoft.Edge.Web.Item=Adds the Microsoft Edge WebView2 component to the image +Saves.Complete.Image.Message=Saves complete image information to the file you want. Depending on the settings you had specified, you may be asked some questions during the process +Creates.New.DISM.Item=Creates a new DISMTools project. The current project will be unloaded after creating it +Opens.Existing.DISM.Item=Opens an existing DISMTools project. The current project will be unloaded +Enters.Online.Install.Item=Enters online installation management mode +Saves.Changes.Project.Item=Saves the changes of this project +Saves.Project.Another.Item=Saves this project on another location +Closes.Project.Message=Closes the program. If a project is loaded, you will be asked whether or not you would like to save it +Opens.File.Explorer.Item=Opens the File Explorer to view the project files +Unloads.Project.Message=Unloads this project. If changes were made, you will be asked whether or not you would like to save it +Switches.Mounted.Image.Item=Switches the mounted image index +Launches.Project.Item=Launches the project section of the project properties dialog +Launches.Image.Section.Item=Launches the image section of the project properties dialog +ImageFormat.Item=Performs image format conversion from WIM to ESD and vice versa +Merges.Two.SWM.Item=Merges two or more SWM files into a single WIM file +Remounts.Image.Read.Item=Remounts the image with read-write permissions to allow making modifications to it +Opens.Command.Console.Item=Opens the Command Console +Lets.Manage.Item=Lets you manage unattended answer files for this project +Lets.Manage.Project.Item=Lets you manage project reports +Shows.Overview.Mounted.Item=Shows an overview of the mounted images +Configures.Settings.Item=Configures settings for the program +Opens.Help.Topics.Item=Opens the help topics for this program +Opens.Glossary.Don.Item=Opens the glossary, if you don't understand a concept +Shows.Command.Help.Item=Shows the Command Help, letting you use commands to perform the same actions +Shows.Item=Shows program information +Lets.Report.Feedback.Item=Lets you report feedback through a new GitHub issue (a GitHub account is needed) +Opens.Git.Hub.Message=Opens the GitHub repository containing the help documentation contents, to which you can contribute (a GitHub account is needed) + +[Main.ShowParentDesc] +View.Options.Related.Item=View options related to files, like creating or opening projects +View.Options.Project.Item=View options related to this project, like viewing its properties +View.Options.Image.Item=View options related to image management, deployment and/or servicing +View.Options.Additional.Item=View options related to additional tools, like the Command Console +View.Options.Help.Item=View options related to help topics, glossary, command help and product information + +[Main.Tooltips] +RefreshInfo.Label=Refresh information +Change.Network.Config.Label=Change network configuration +Other.Win.Administ.Label=Other Windows administrative tools +Change.Wallpaper.Label=Click here to change your wallpaper +NetBiosname.Label=NetBIOS name: {lbrace;}0{rbrace;} +Show.New.Fact.Label=Show a new fact + +[Main.UpdateChecker] +Couldn.Tdownload.Message=Não foi possível descarregar o verificador de actualizações. Motivo:{crlf;}{0} +CheckUpdates.Title=Verificar actualizações + +[Main.UpdateProjProps] +Yes.Button=Sim +No.Button=Não + +[Migration] +Wait.Message=Aguarde enquanto o DISMTools migra o seu ficheiro de configurações antigo para funcionar nesta versão. Isso pode levar algum tempo +Wait.Label=Aguarde... + +[Migration.Background] +Loading.Old.Settings.Message=Carregar ficheiro de configurações antigo... +Saving.New.Settings.Message=Guardar o novo ficheiro de configurações... +Done.Message=Concluído + +[MountDirCreation] +Create.Label=Deseja criar o diretório de montagem? +Yes.Button=Sim +No.Button=Não + +[MountedImgMgr] +Image.Manager.Item=Gestor de imagens montadas +Overview.Images.Message=Aqui está uma visão geral das imagens que foram montadas neste sistema. Pode procurar informação sobre elas e executar algumas tarefas básicas. No entanto, para executar totalmente as acções de imagem com este programa, é necessário carregar o diretório de montagem para um projeto: +ImageFile.Column=Ficheiro de imagem +Index.Column=Índice +MountDirectory.Column=Diretório de montagem +Status.Column=Estado +Read.Write.Column=Permissões de leitura/escrita? +UnmountImage.Button=Desmontar imagem +ReloadServicing.Button=Recarregar a manutenção +Enable.Write.Button=Ativar permissões de escrita +Open.Mount.Dir.Button=Abrir diretório de montagem +Remove.VolumeImages.Button=Remover imagens de volume... +LoadProject.Button=Carregar no projeto +Repair.Component.Store.Item=Reparação do armazém de componentes +Yes.Button=Sim + +[NewProj] +Create.Project.Label=Criar um novo projeto +Image.Task.Header.Label={0} +Options.Required.Label=Por favor, especifique as opções para criar um novo projeto: +Name.Label=Nome*: +Location.Label=Localização*: +Fields.End.Required.Label=Os campos que terminam em * são obrigatórios +Browse.Button=Navegar... +Ok.Button=OK +Cancel.Button=Cancelar +Project.Group=Projeto +Folder.Store.Description=Por favor, seleccione uma pasta para armazenar este projeto: + +[NewProj.Validation] +Dir.Exist.Create.Message=O diretório: {crlf;}{quot;}{0}{quot;}{crlf;}Deseja criá-lo? +Create.Project.Dir.Message=Não foi possível criar o diretório do projeto para si devido a: {crlf;}{0}; {1} + +[NewTestingEnv] +Status.Message=Estado +Creating.Project.Message=A criar projeto. Isto pode demorar algum tempo. Por favor, aguarde... +ProjectCreated.Message=O projeto foi criado +Create.Environment.Label=Criar um ambiente de teste +WizardHelp.Message=Este assistente irá criar um ambiente que o ajudará a testar as suas aplicações em ambientes de pré-instalação do Windows.{crlf;}{crlf;} +Re.Ready.Create.Label=Quando estiver pronto, clique no botão Criar. +Env.Architecture.Label=Arquitetura do ambiente: +Architecture.Label=Arquitetura: +Target.Project.Label=Localização do projeto alvo: +Other.Things.Project.Message=Pode fazer outras coisas enquanto o projeto está a ser criado. Volte aqui em qualquer altura para obter um estado atualizado. +Browse.Button=Navegar... +Create.Button=Criar +Cancel.Button=Cancelar +Progress.Group=Progresso +Download.Windows.ADK.Link=Baixar o Windows ADK +Https.Learn.Message=https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install +ProjectTemplate.Message=O projeto que será criado contém uma solução modelo compatível com todos os ambientes e recursos para a criação de aplicações para Ambientes de Pré-instalação do Windows. Pode obter mais informações sobre estes projectos no ficheiro LEIAME incluído. + +[NewTestingEnv.Background] +Project.Created.Done.Message=O projeto ISO foi criado com êxito +Failed.Create.Message=O processo de criação do projeto falhou + +[NewTestingEnv.Links] +Https.Learn.Message=https://learn.microsoft.com/pt-pt/windows-hardware/get-started/adk-install + +[Unattend.Messages] +Requires.Netruntime.Message=Este assistente requer o .NET 10 Runtime instalado para utilizar a versão incorporada do programa gerador. Pode descarregá-lo em:{crlf;}{crlf;}dotnet.microsoft.com{crlf;}{crlf;}Se não quiser descarregar o .NET, pode descarregar a versão autónoma do programa gerador. A transferência demorará algum tempo, dependendo da velocidade da ligação de rede.{crlf;}{crlf;}Pretende utilizar a versão autónoma? +Netruntime.Missing.Title=.NET Runtime em falta +GeneratorExit.Message=O gerador de ficheiros de resposta autónoma não conseguiu gerar o ficheiro. Eis o código de erro, caso tenha interesse:{crlf;}{crlf;}Código de erro: {0} +Generator.Message=O gerador de ficheiros de resposta autónoma não conseguiu gerar o ficheiro. Eis o erro, caso tenha interesse:{crlf;}{crlf;}Erro: {0} +Reuse.Settings.Ve.Message=Pretende reutilizar as definições utilizadas neste ficheiro de resposta para o novo? +Load.Project.Order.Label=Tem de carregar um projeto para aplicar este ficheiro. +PrepareFailed.Label=Não foi possível preparar a configuração autónoma do UnattendGen. Motivo:{crlf;}{0} +OpenFile.Label=Não foi possível abrir o ficheiro: {0} +SaveFile.Label=Não foi possível guardar o ficheiro: {0} +ProductKey.Copied.Done.Label=A chave de produto foi copiada com êxito para a área de transferência. +Copy.Key.Clipboard.Label=Não foi possível copiar a chave para a área de transferência. Mensagem de erro: {0} +Component.Already.Message=Este componente já está reservado para a instalação correta do sistema operativo. Se o substituir pelos seus dados, a instalação do sistema operativo poderá não produzir os resultados esperados. +ComponentUse.Title=Componente em utilização +Cross.Platform.Label=As versões multiplataforma do UnattendGen foram copiadas para {0} +ImportOverwrite.Message=A importação deste script irá substituir todos os dados existentes no script pós-instalação atual. É melhor criar uma nova entrada antes de continuar. Pretende continuar? +ProductKey.None.Label=Não existe nenhuma chave de produto para a edição {quot;}{0}{quot;}. + +[NewUnattend.Validation] +Gen.Error.Title=Erro do UnattendGen + +[Unattend.Mode] +ExpressMode.Title=Modo expresso +WizardHelp.Description=Se nunca criou ficheiros de resposta autónoma, utilize este assistente para criar um +EditorMode.Title=Modo editor +CreateUnattended.Description=Crie ficheiros de resposta autónoma de raiz e guarde-os em qualquer localização + +[Unattend.Progress] +Preparing.Generate.Label=A preparar a geração do ficheiro... +Saving.User.Settings.Label=A guardar definições do utilizador... +GenerateAnswerFile.Label=A gerar ficheiro de resposta autónoma... +Deleting.Temporary.Label=A eliminar ficheiros temporários... +Generation.Completed.Label=A geração foi concluída + +[UnattendWizard.Review] +Configs.UnattendAnswer.Label=Configurações atuais do ficheiro de resposta autónoma: + +[Unattend.Tooltips] +Uses.Name.Computer.Message=Utiliza o nome do seu computador como nome do computador no ficheiro de resposta autónoma.{crlf;}Utilize isto apenas se o sistema de destino for este +Attempt.Grab.Message=Clique aqui para tentar obter a edição da imagem atualmente carregada. Isto ajudará a utilizar uma chave de produto adequada para essa imagem do Windows. +AutoChoose.Message=Choose this option to automatically configure the target location to one of the countries in the European Economic Area (EEA). This will let you{crlf;}configure settings in the target system that you would not be able to when using a region outside the EEA. After Setup is complete, you can reconfigure{crlf;}the region to your current location. +Check.Field.Customize.Label=Check this field to customize this user's display name +RearrangeScripts.Label=Rearrange post-installation scripts... + +[Unattend.Validation] +Arch.Try.Label=Selecione uma arquitetura e tente novamente +ValidationError.Title=Erro de validação +Computer.Name.Error.Title=Erro no nome do computador +Script.Has.None.Label=Não foi transmitido nenhum script para o nome do computador +Type.ProductKey.Label=Introduza uma chave de produto e tente novamente +ProductKeyError.Title=Erro da chave de produto +Type.Product.Label=Introduza a chave de produto completa e tente novamente +ProductKey.Entered.Ill.Label=A chave de produto introduzida:{crlf;}{crlf;}{0}{crlf;}{crlf;}tem um formato incorreto. Introduza-a novamente +Problem.One.Message=Existe um problema com um ou mais dos utilizadores indicados. Eis os motivos:{crlf;}{crlf;}{0}{crlf;}{crlf;}Tente novamente depois de corrigir os problemas mencionados +User.Accounts.Error.Title=Erro de contas de utilizador +Least.One.Account.Message=Pelo menos uma conta tem de fazer parte do grupo Administradores. Configure os grupos de utilizadores em conformidade e tente novamente +Problem.Wireless.Message=Existe um problema com as definições sem fios especificadas. Certifique-se de que indicou um nome de rede e tente novamente +WirelessError.Title=Erro de redes sem fios + +[OS.No] +Troll.Back.Older.Label=Não é possível retroceder para uma versão anterior +Old.Versions.None.Message=Não foram detectadas versões antigas, porque os seus ficheiros não foram encontrados. Poderá ter esta versão há mais tempo do que a janela de desinstalação lhe permite, ou poderá ter eliminado os ficheiros da versão antiga (para poupar espaço). Não precisa de fazer nada +Ok.Button=OK + +[OfflineDriveList] +Disk.Choose.Label=Escolha um disco +Begin.Install.Message=Para começar a efetuar a gestão da instalação offline, escolha um disco apresentado na lista abaixo. Esta lista será actualizada automaticamente a cada minuto, ou quando clicar no botão Atualizar. +DriveLetter.Column=Letra da unidade +DriveLabel.Column=Etiqueta da unidade +DriveType.Column=Tipo de unidade +TotalSize.Column=Tamanho total +Available.Free.Space.Column=Espaço livre disponível +DriveFormat.Column=Formato da unidade +ContainsWindows.Column=Contém Windows? +Windows.Column=Versão do Windows +Refresh.Button=Atualizar +Ok.Button=OK +Cancel.Button=Cancelar + +[OneDriveExclusion] +Exclude.User.Label=Excluir pastas do OneDrive do utilizador +Tool.Help.Exclude.Message=Esta ferramenta irá ajudá-lo a excluir pastas do OneDrive de utilizadores na lista de configuração em que está a trabalhar. Basta especificar o caminho ao qual pretende aplicar o ficheiro da lista de configuração e clicar em Excluir.{crlf;}{crlf;}NOTA: depois de executar esta ferramenta e excluir as pastas do OneDrive dos utilizadores, não deve utilizar a lista de configuração numa imagem que não seja a que especificou aqui. Se quiser usar a lista de configuração em outras imagens, remova as pastas do OneDrive do usuário na lista de configuração e execute esta ferramenta novamente. +Path.Exclude.Label=Caminho para excluir as pastas do OneDrive de: +Re.Ready.Label=Quando estiver pronto, clique em Excluir. +Browse.Button=Navegar... +Exclude.Button=Excluir +Cancel.Button=Cancelar +UserFolderPath.Description=Escolha um caminho que contenha pastas dos utilizadores: + +[OneDriveExclusion.Folders] +Excluding.User.Label=Excluir pastas do OneDrive dos utilizadores... + +[OneDriveExclusion.Valid] +User.Folders.Label=As pastas do OneDrive dos utilizadores foram excluídas e serão adicionadas à lista de configuração. + +[Options] +Title.Label=Opções +Program.Label=Programa +Personalization.Label=Personalização +Logs.Label=Registos +ImageOperations.Label=Operações de imagem +ScratchDirectory.Label=Diretório temporário +ProgramOutput.Label=Saída do programa +BgProcesses.Label=Processos em segundo plano +FileAssociations.Label=Associações de ficheiros +StartupOptions.Label=Opções de arranque +ShutdownOptions.Label=Opções de encerramento +Dismexecutable.Path.Label=Localização do executável DISM: +Version.Label=Versão: +SaveSettings.Label=Guardar configurações em: +ColorMode.Label=Modo de cor: +Language.Label=Idioma: +Settings.Log.Required.Label=Especifique as configurações para a janela de registo: +Log.Window.Font.Label=Tipo de letra da janela de registo: +Preview.Label=Pré-visualização: +Operation.Log.File.Label=Ficheiro de registo de operações: +Image.Ops.Message=Quando efetuar operações de imagem na linha de comandos, especifique o argumento {quot;}/LogPath{quot;} para guardar o registo da operação de imagem no ficheiro de registo de destino. +Log.File.Level.Label=Nível do ficheiro de registo: +QuietOperations.Message=Quando as operações são efectuadas em silêncio, o programa oculta as informações e o progresso. As mensagens de erro continuarão a ser mostradas.{crlf;}Esta opção não será utilizada para obter informações sobre, por exemplo, pacotes ou funcionalidades.{crlf;}Além disso, ao efetuar operações de imagem, o computador pode reiniciar-se automaticamente. +Checked.Computer.Message=Se esta opção estiver selecionada, o computador não será reiniciado automaticamente, mesmo quando estiver a efetuar operações silenciosas +Scratch.Dir.Required.Label=Especifique o diretório de rascunho a utilizar para as operações DISM: +ScratchDirectory.Input.Label=Diretório de rascunho: +Space.Left.Selected.Label=Espaço restante no diretório de rascunho selecionado: +LogView.Label=Vista de registo: +ExampleReport.Label=Exemplo de relatório: +Reports.Allow.Shown.Label=Alguns relatórios não permitem ser mostrados como uma tabela. +Notify.Label=Quando é que o programa o deve notificar sobre os processos em segundo plano que estão a ser iniciados? +Uses.Bg.Procs.Message=O programa usa processos em segundo plano para reunir informações completas sobre a imagem, como datas de modificação, pacotes instalados, recursos presentes e muito mais +Manage.File.Assoc.Label=Gerir associações de ficheiros para os componentes do DISMTools: +Behavior.OnStartup.Label=Definir opções que gostaria de efetuar quando o programa arranca: +Scratch.Dir.Message=O programa utilizará o diretório de rascunho fornecido pelo projeto, se tiver sido carregado um. Se estiver nos modos de gestão da instalação online ou offline, o programa utilizará o seu diretório de rascunho +Secondary.Progress.Label=Estilo do painel de progresso secundário: +Settings.Aren.Label=Estas configurações não são aplicáveis a instalações não portáteis +Font.Readable.Log.Message=Este tipo de letra pode não ser legível em janelas de registo. Embora possa continuar a utilizá-lo, recomendamos tipos de letra monoespaçados para uma maior legibilidade. +SettingsConsider.Label=Escolha as configurações que o programa deve considerar quando guardar informações de imagem: +Browse.Button=Navegar... +View.DISM.Button=Ver versões de componentes DISM +Set.File.Assoc.Button=Configurar associações de ficheiros +AdvancedSettings.Button=Configurações avançadas +Cancel.Button=Cancelar +Ok.Button=OK +ResetPreferences.Label=Repor preferências +Quietly.Image.Ops.CheckBox=Efetuar operações de imagem silenciosamente +Skip.System.Restart.CheckBox=Ignorar o reinício do sistema +Scratch.Dir.CheckBox=Utilizar um diretório de rascunho +Show.Command.Output.CheckBox=Mostrar a saída do comando em inglês +Notify.Me.CheckBox=Notificar-me quando os processos em segundo plano tiverem iniciado +Show.Log.View.CheckBox=Mostrar a vista de registo no painel de progresso por predefinição +Uppercase.Menus.CheckBox=Utilizar menus em maiúsculas +Set.Custom.File.CheckBox=Configurar ícones de ficheiros personalizados para projectos DISMTools +Remount.Mounted.CheckBox=Remontar imagens montadas que necessitem de um recarregamento da sessão de manutenção +CheckUpdates.CheckBox=Verificar se há actualizações +Always.Save.CheckBox=Guardar sempre informações completas sobre os seguintes elementos: +Installed.Packages.CheckBox=Pacotes instalados +Features.CheckBox=Características +Installed.AppX.CheckBox=Pacotes AppX instalados +Capabilities.CheckBox=Capacidades +InstalledDrivers.CheckBox=Controladores instalados +Automatically.Clean.CheckBox=Limpar automaticamente os pontos de montagem (inicia um processo separado) +Dismexecutable.Title=Especificar o executável DISM a utilizar +LogCustomization.Label=Personalização do registo +Behavior.OnClose.Label=Configurar as opções que gostaria de executar quando o programa fecha: +Saving.Image.Item=Guardar informação da imagem +Enable.Disable.Message=O programa irá ativar ou desativar determinadas funcionalidades de acordo com o que a versão DISM suporta. Como é que isso vai afetar a minha utilização deste programa e que funcionalidades serão desactivadas em conformidade? +Going.Affect.My=Como é que isso vai afetar a minha utilização deste programa e que funcionalidades serão desactivadas em conformidade? +Learn.Background.Link=Saiba mais sobre os processos em segundo plano +Location.Log.File.Title=Especificar a localização do ficheiro de registo +Modern.RadioButton=Moderna +Classic.RadioButton=Clássico +Dyna.Log.Logging.Message=O registo DynaLog fornece um método para guardar registos de diagnóstico que podem ser utilizados para ajudar a corrigir problemas do programa, caso os encontre. Pode desativar o registo utilizando o botão abaixo, mas não é recomendado.{crlf;}{crlf;} +Disable.Logging.Only.Message=Desactive o registo apenas se este causar uma sobrecarga de desempenho no seu computador. Se clicar no botão de alternância, esta definição será aplicada automaticamente. +Default.Op.Logs.Message=Por predefinição, os registos de operações são abertos com o Bloco de Notas em caso de erro de operação. No entanto, se pretender abri-los com um programa diferente, especifique-o abaixo: +Dyna.Log.Logging.Label=Controlo de registo DynaLog +Editor.Open.Log.Label=Editor para abrir ficheiros de registo com: +SystemEditor.Label=Editor do sistema +Editor.Title=Especificar o editor a utilizar +Show.Me.Logs.Link=Mostre-me onde estes registos estão armazenados +Disable.Dyna.Log.CheckBox=Desativar o registo DynaLog +SettingsFile.Item=Ficheiro de configurações +Registry.Item=Registo +System.Setting.Item=Utilizar a configuração do sistema +LightMode.Item=Modo claro +DarkMode.Item=Modo escuro +List.Item=lista +Table.Item=tabela +Every.Time.Project.Item=Sempre que um projeto tenha sido carregado com êxito +Freqs1.Item=Uma vez +Image.Version.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}Feature Name : TFTP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : LegacyComponents{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : DirectPlay{crlf;}State : Enabled{crlf;}{crlf;}Feature Name : SimpleTCP{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : Windows-Identity-Foundation{crlf;}State : Disabled{crlf;}{crlf;}Feature Name : NetFx3{crlf;}State : Enabled +LogPreview.Message=Image Version: 10.0.19045.2075{crlf;}{crlf;}Features listing for package : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.19041.1{crlf;}{crlf;}{crlf;}------------------------------------------- | --------{crlf;}Feature Name | State{crlf;}------------------------------------------- | --------{crlf;}TFTP | Disabled{crlf;}LegacyComponents | Enabled{crlf;}DirectPlay | Enabled{crlf;}SimpleTCP | Disabled{crlf;}Windows-Identity-Foundation | Disabled{crlf;}NetFx3 | Enabled +Selected.Search.Message=The selected search engine, {1}{2}{1}, exceeds the current AI tolerance setting, {1}{3}{1}. If you continue with this search engine, AI tolerance will be increased after applying the settings.{0}{0}If you decide not to continue with this search engine, DISMTools will use the first search engine that stays within tolerance boundaries.{0}{0}Do you want to continue with this search engine? +Aitolerance.Exceeded.Title=AI Tolerance Exceeded +Auto.Create.Logs.CheckBox=Criar automaticamente registos para cada operação realizada +Project.Scratch.RadioButton=Utilizar o diretório de rascunho do projeto ou do programa +Custom.Scratch.RadioButton=Utilizar o diretório de rascunho especificado +ScratchDir.Description=Especificar o diretório de rascunho que o programa deve utilizar: + +[Options.Actions] +DISM.Components.Message=Não foi possível encontrar o diretório de componentes do DISM. Se tiver todos os componentes na mesma pasta do executável DISM, crie uma pasta {quot;}dism{quot;} e tente novamente. + +[Options.AutoReloadService] +DISM.Tools.Automatic.Label=Serviço de recarregamento automático de imagens do DISMTools +AutoReload.Description=Este serviço recarrega automaticamente as sessões de manutenção de todas as imagens montadas neste computador. Pode desativar este serviço se não precisar dele. +ServiceInstalled.Label=Não foi possível instalar o serviço. + +[Options.AIRServiceInfo] +Yes.Button=Sim +No.Button=Não + +[Options.GetRootSpace] +Scratch.Dir.Required.Label=Especifique um diretório temporário. +EnoughSpace.Label=Há espaço suficiente no diretório temporário selecionado +GB.Item={0} GB +Enough.Message=Não há espaço suficiente no diretório de rascunho selecionado para executar operações de imagem. Tente libertar algum espaço na unidade +EnoughSpace.SomeOps.Item=Pode não haver espaço suficiente no diretório de rascunho selecionado para algumas operações. +EnoughSpace.Directory.Item=Há espaço suficiente no diretório temporário selecionado +Free.Unavailable.Item=Não foi possível obter espaço livre disponível. Continue por sua conta e risco +Have.Enough.Item=Há espaço suficiente no diretório temporário selecionado + +[Options.LogLevel] +Level1.Label=Erros (nível de registo 1) +Errors.Description.Label=O ficheiro de registo só deve apresentar erros depois de executar uma operação de imagem. +Level2.Item=Erros e avisos (nível de registo 2) +Level2.Description.Item=O ficheiro de registo deve apresentar erros e avisos após a realização de uma operação de imagem. +Level2Messages.Item=Erros, avisos e mensagens de informação (nível de registo 3) +Level3.Description.Message=O ficheiro de registo deve apresentar erros, avisos e mensagens de informação após a realização de uma operação de imagem. +Level2Debug.Item=Erros, avisos, informações e mensagens de depuração (nível de registo 4) +Level4.Description.Message=O ficheiro de registo deve apresentar erros, avisos, informações e mensagens de depuração após a realização de uma operação de imagem. + +[Options.QuickHelp] +DISM.Tools.Enable.Message=O DISMTools ativa ou desativa determinadas funções se não forem compatíveis com o executável DISM especificado, com a imagem atual do Windows ou com ambos.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Por exemplo, se o DISMTools detetar uma imagem do Windows 7, uma versão do DISM do Windows 7 ou ambos, desativa a manutenção de pacotes AppX e capacidades porque não são compatíveis com essa plataforma e essas ferramentas.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}O DISMTools também pode desativar funções com base noutros parâmetros da imagem, como a edição. Isto acontece geralmente com imagens Windows PE. +AppX.Package.Display.Message=Os nomes de apresentação dos pacotes AppX são a parte do nome da família do pacote que não contém detalhes específicos, como arquitetura, versão ou hash do publicador.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Os {lbrace;}1{rbrace;}nomes amigáveis{lbrace;}1{rbrace;} dos pacotes AppX são os nomes que vês no menu Iniciar. São lidos a partir das informações de identidade da aplicação no manifesto ou de cadeias incorporadas em resources.pri.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Se o DISMTools não conseguir obter o nome amigável, mostra o nome de apresentação da aplicação. +Configure.Search.Message=Ao configurar o motor de pesquisa, podes escolher quanta tolerância o DISMTools deve ter em relação às funções de inteligência artificial, AI, do motor.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Desativar o maior número possível de funções AI{lbrace;}1{rbrace;} permite escolher motores onde as funções AI estão desativadas ou não existem por predefinição.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Permitir que eu controle as funções AI do meu motor de pesquisa{lbrace;}1{rbrace;} adiciona motores com funções AI ativadas por predefinição, mas controláveis por parâmetros de URL ou definições do motor.{lbrace;}0{rbrace;}{lbrace;}1{rbrace;}Ativar o maior número possível de funções AI{lbrace;}1{rbrace;} permite escolher todos os motores disponíveis, incluindo motores baseados em AI ou motores que promovem modos AI dedicados.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Normalmente, a segunda opção é a escolha mais equilibrada. Para uma experiência mais focada na privacidade, desativa estas funções. +Bg.Procs.Allow.Message=Os processos em segundo plano permitem que o DISMTools recolha informações sobre a imagem Windows em que estás a trabalhar e ativam a maioria das tarefas. Exemplos incluem pacotes do sistema operativo e funcionalidades presentes numa imagem Windows.{lbrace;}0{rbrace;}{lbrace;}0{rbrace;}Estes processos não são usados apenas para obter informações de ficheiros de imagem, mas também para gerir instalações online ou offline. + +[OrphanedMount] +Image.Servicing.Label=Esta imagem precisa de ser recarregada numa sessão de manutenção +Project.Has.Orphans.Message=O projeto que foi carregado contém uma imagem órfã (uma imagem que precisa de ser montada novamente){crlf;}A imagem será montada novamente quando clicar em {quot;}OK{quot;}. Isto não deve afetar as suas modificações na imagem e também não deve demorar muito tempo.{crlf;}{crlf;}NOTA: se clicar em {quot;}Cancel{quot;}, o projeto será descarregado +Ok.Button=OK +Cancel.Button=Cancelar + +[PECustomizer.Tooltips] +DefaultPolicies.Message=Default policies allow you to make the settings you specify here permanent.{crlf;}This also includes any wallpapers you specify here. + +[PEHelper.Main] +WhatWant.Label=What do you want to do? +StartServer.Label=Start a PXE Helper Server for Network Installation +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartServer.Network.Link=Start a PXE Helper Server for Network Installation +Prepare.System.Image.Link=Prepare System for Image Capture +Back.Button=Voltar +Explore.Contents.Disc.Link=Explore contents of this disc +StartServer.Fog.Link=Start PXE Helper Server for FOG +StartServer.Wds.Link=Start PXE Helper Server for Windows Deployment Services +Copy.Boot.Image.Link=Copy boot image to WDS server... +Exit.Button=Sair + +[PEHelper.Restart] +Warning.Message=Esta operação irá reiniciar o computador. Certifique-se de que está configurado para arrancar a partir do suporte de instalação. Pretende reiniciá-lo? + +[PEHelper.Process] +ExitCode.Message=O processo terminou com o código 0x{0}:{crlf;}{crlf;}{1} + +[PEHelper.PXE] +ChangePort.Tooltip=Mantenha a tecla SHIFT premida para alterar a porta utilizada por este servidor auxiliar PXE + +[ISOFiles.PECustomizer] +PoliciesSaved.Message=Policies could not be saved. +Wallpaper.Exist.Message=The specified wallpaper does not exist. +Wallpaper.Supported.Message=The specified wallpaper is not supported. Only JPG files are supported. +WallpaperOverride.Message=By continuing with this wallpaper you will be overriding a background you may have already stored in your user data folder. That background will be reused the next time you launch DISMTools. + +[Panels.ImageOps.WimToEsd] +Files.Filter=files|*. + +[Panels.ImageOps.ExportImage] +Esdfiles.Filter=ESD files|*.esd + +[Panels.ImageOps.MountImage] +WIM.Files.Filter=WIM files|*.wim + +[Panels.Packages.Add] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation + +[Panels.Packages.Remove] +CurrentLimit.Message=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.Detail=Current program limitation +CurrentLimit.SecondMessage=Right now, due to program limitations, you can select 65535 packages or less. +CurrentLimit.SecondDetail=Current program limitation + +[Panels.Unattend.Scripts] +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd +Power.Shell.Filter=PowerShell Scripts|*.ps1 +AllFiles.Filter=All Files|*.* +AllFiles.SecondFilter=All Files|*.* + +[ConfigLists.AddEntry] +Start.Backslash.Message=The entry can't start with a backslash if it contains wildcard characters + +[Options.Messages] +Dismexecutable.Path.Message=The DISM executable path was not specified. Please specify one and try again +DISM.Executable.Message=The DISM executable does not exist in the file system. Please verify the file still exists and try again +Log.File.Label=The log file was not specified. Please specify one and try again +Tried.Create.Message=The program tried to create the specified log file, but has failed. Please try again +ScratchDir.Message=The scratch directory was not specified. Please specify one and try again +ServiceEnabled.Label=The service could not be enabled. +ServiceDisabled.Label=The service could not be disabled. +ServiceRemoved.Label=The service could not be removed. +Tried.Scratch.Message=The program tried to create the specified scratch directory, but has failed. Please try again + +[ISOFiles.Creator.Messages] +Windows.Message=The Windows ADK was not found on your system. Do you want DISMTools to download and install the latest one for you? Note that you'll need around 4 GB on your system. + +[ISOFiles.WDSImageGroup] +Image.Label=The specified WDS image group could not be created. +Get.Image.Groups.Label=Could not get image groups. + +[PECustomizer.Messages] +Default.Policies.Saved.Label=Default policies have been saved. +Policies.SaveFailed.Message=Default policies could not be saved. + +[ISOFiles.PXEServerPort] +Already.Label=The specified port, {0}, is already in use. +Port.Label=The specified port, {0}, is not in use. + +[ImageOps.Append.Messages] +Grab.Last.Image.Label=Could not grab last image name. Error information:{crlf;}{crlf;}{0} + +[ImageOps.Capture.Messages] +Provide.Source.Dir.Label=Please provide a source directory or drive to capture. +SourcePrepWarning.Message=The source directory or drive that you are capturing may not have been previously prepared by Sysprep. It is recommended that you run it on that installation before proceeding with the capture task.{0}{0}Do you want to continue? + +[ImageOps.Export.Messages] +Get.Index.Image.Label=Could not get index information for this image file + +[ImageOps.Mount.Messages] +Copied.Image.Message=The copied installation image will be selected automatically for you, if found... +Extraction.Succeeded.Label=Extraction succeeded +Windows.Message=The Windows images in the specified ISO file were not copied to your local disk. Copy any WIM or ESD files from the sources folder of your ISO file. +Extraction.Succeeded.Message=Extraction succeeded + +[ImageOps.Optimize.Messages] +Mount.Dir.Required.Message=Please specify the mount directory of the image you want to optimize and try again. Also, make sure that that path exists. + +[Package.Parent] +Installed.Package.Label=Nomes dos pacotes instalados +Installed.Package.Names=Nomes dos pacotes instalados na imagem montada: +Name.ParentPackage.Label=Nome do pacote pai: +Get.Package.Names.Label=A obter nomes de pacotes. Aguarde... +Ok.Button=OK +Cancel.Button=Cancelar + +[PkgNameLookup.Validation] +Package.Required.Message=Especifique um nome de pacote e tente novamente. +Installed.Package.Title=Nomes dos pacotes instalados +Package.Seem.Message=O nome do pacote especificado não parece estar na imagem. Especifique uma entrada disponível e tente novamente + +[Wait] +NotAvailable.Label=Not available +ProjectValue.Label=Not available +Wait.Label=Por favor, aguarde... + +[MountedImagePicker] +Ok.Button=OK +Cancel.Button=Cancelar + +[MountedImagePicker.Pick] +Title.Label=Escolher imagem +Image.List.Label=Escolher uma imagem da lista abaixo: +ImageFile.Column=Ficheiro de imagem +Index.Column=Índice +MountDirectory.Column=Diretório de montagem + +[PrgAbout] +AboutProgram.Label=Acerca deste programa +DISM.Tools.Version.Label=DISMTools - versão {0}{1} +DISM.Tools.Lets.Label=DISMTools permite-lhe implementar, gerir e efetuar a manutenção de imagens do Windows com facilidade, graças a uma GUI +ResourcesUsed.Label=Estes recursos e componentes foram utilizados na criação deste programa: +Resources.Label=Recursos +Fluency.Label=Fluency +Sqlserver.Icon.Color.Label=Ícone do SQL Server (Cor) +Utilities.Label=Utilitários +Zip.Label=7-Zip +Help.Documentation.Label=Documentação de ajuda +Command.Help.Source.Label=Fonte da Ajuda do Comando +Scintilla.Netnu.Get.Label=Scintilla.NET (pacote NuGet) +Pre.Label=pre +BuiltMsbuild.Label=Construído em {0} por msbuild +Managed.Dismnu.Get.Label=ManagedDism (pacote NuGet) +BrandingAssets.Label=Activos de marca +Windows.Label=Windows Home Server 2011 +Credits.Link=CRÉDITOS +Licenses.Link=LICENÇAS +Whatsnew.Link=O QUE HÁ DE NOVO +Icons.Link=Ícones8 +VisitWebsite.Link=Sítio Web +Microsoft.Link=Microsoft +Ok.Button=OK +CheckUpdates.Label=Verificar actualizações + +[PrgAbout.Resources] +DISM.Tools.Free.Message=- DISMTools{crlf;}{crlf;}This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or at your option any later version.{crlf;}{crlf;}This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. {crlf;}{crlf;}You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.{crlf;}{crlf;}- Scintilla.NET{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2017, Jacob Slusser, https://github.com/jacobslusser,{crlf;}Copyright (c) 2020-2022 VPKSoft{crlf;}Copyright (c) 2023 desjarlais{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- ManagedDism{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2016{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- DarkUI{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2017 Robin{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- 7-Zip{crlf;}{crlf;} 7-Zip{crlf;} ~~~~~{crlf;} License for use and distribution{crlf;} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{crlf;}{crlf;} 7-Zip Copyright (C) 1999-2025 Igor Pavlov.{crlf;}{crlf;} The licenses for files are:{crlf;}{crlf;} - 7z.dll:{crlf;} - The {quot;}GNU LGPL{quot;} as main license for most of the code{crlf;} - The {quot;}GNU LGPL{quot;} with {quot;}unRAR license restriction{quot;} for some code{crlf;} - The {quot;}BSD 3-clause License{quot;} for some code{crlf;} - The {quot;}BSD 2-clause License{quot;} for some code{crlf;} - All other files: the {quot;}GNU LGPL{quot;}.{crlf;}{crlf;} Redistributions in binary form must reproduce related license information from this file.{crlf;}{crlf;} Note:{crlf;} You can use 7-Zip on any computer, including a computer in a commercial{crlf;} organization. You don't need to register or pay for 7-Zip.{crlf;}{crlf;}{crlf;}GNU LGPL information{crlf;}--------------------{crlf;}{crlf;} This library is free software; you can redistribute it and/or{crlf;} modify it under the terms of the GNU Lesser General Public{crlf;} License as published by the Free Software Foundation; either{crlf;} version 2.1 of the License, or (at your option) any later version.{crlf;}{crlf;} This library is distributed in the hope that it will be useful,{crlf;} but WITHOUT ANY WARRANTY; without even the implied warranty of{crlf;} MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU{crlf;} Lesser General Public License for more details.{crlf;}{crlf;} You can receive a copy of the GNU Lesser General Public License from{crlf;} http://www.gnu.org/{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 3-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 3-clause License{quot;} is used for the following code in 7z.dll{crlf;} 1) LZFSE data decompression.{crlf;} That code was derived from the code in the {quot;}LZFSE compression library{quot;} developed by Apple Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;} 2) ZSTD data decompression.{crlf;} that code was developed using original zstd decoder code as reference code.{crlf;} The original zstd decoder code was developed by Facebook Inc,{crlf;} that also uses the {quot;}BSD 3-clause License{quot;}.{crlf;}{crlf;} Copyright (c) 2015-2016, Apple Inc. All rights reserved.{crlf;} Copyright (c) Facebook, Inc. All rights reserved.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 3-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}3. Neither the name of the copyright holder nor the names of its contributors may{crlf;} be used to endorse or promote products derived from this software without{crlf;} specific prior written permission.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}BSD 2-clause License in 7-Zip code{crlf;}----------------------------------{crlf;}{crlf;} The {quot;}BSD 2-clause License{quot;} is used for the XXH64 code in 7-Zip.{crlf;}{crlf;} XXH64 code in 7-Zip was derived from the original XXH64 code developed by Yann Collet.{crlf;}{crlf;} Copyright (c) 2012-2021 Yann Collet.{crlf;} Copyright (c) 2023-2025 Igor Pavlov.{crlf;}{crlf;}Text of the {quot;}BSD 2-clause License{quot;}{crlf;}----------------------------------{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification,{crlf;}are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this{crlf;} list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice,{crlf;} this list of conditions and the following disclaimer in the documentation{crlf;} and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND{crlf;}ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED{crlf;}WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE{crlf;}DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR{crlf;}ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES{crlf;}(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;{crlf;}LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON{crlf;}ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT{crlf;}(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS{crlf;}SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}---{crlf;}{crlf;}{crlf;}{crlf;}{crlf;}unRAR license restriction{crlf;}-------------------------{crlf;}{crlf;}The decompression engine for RAR archives was developed using source{crlf;}code of unRAR program.{crlf;}All copyrights to original unRAR code are owned by Alexander Roshal.{crlf;}{crlf;}The license for original unRAR code has the following restriction:{crlf;}{crlf;} The unRAR sources cannot be used to re-create the RAR compression algorithm,{crlf;} which is proprietary. Distribution of modified unRAR sources in separate form{crlf;} or as a part of other software is permitted, provided that it is clearly{crlf;} stated in the documentation and source comments that the code may{crlf;} not be used to develop a RAR (WinRAR) compatible archiver.{crlf;}{crlf;}--{crlf;}{crlf;}{crlf;}- UnpEax{crlf;}{crlf;}This software uses a modified version of UnpEax, now designed to extract only the AppX manifest file and Store logo assets, and converted to .NET Framework 4.8 and C# 5 to make it compatible with Visual Studio 2012 and newer.{crlf;}{crlf;}Original version: (c) 2020. LioneL Christopher Chetty (https://github.com/dalion619/UnpEax){crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2020 LioneL Christopher Chetty{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Unattended answer file generator{crlf;}{crlf;}The unattended answer file creation wizard is based on the technology of Christoph Schneegans' answer file generator website, with some modifications made to some files of its core library.{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2024 Christoph Schneegans{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Markdig{crlf;}{crlf;}Copyright (c) 2018-2019, Alexandre Mutel{crlf;}All rights reserved.{crlf;}{crlf;}Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:{crlf;}{crlf;}1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.{crlf;}{crlf;}2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.{crlf;}{crlf;}THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS {quot;}AS IS{quot;} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.{crlf;}{crlf;}- Compilation scripts for the PE Helper{crlf;}{crlf;}The compilation and pre-processor scripts for the Preinstallation Environment (PE) Helper are modified copies of such scripts from the Windows Utility (https://github.com/ChrisTitusTech/winutil). Original license:{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2022 CT Tech Group LLC{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Windows API Code Pack{crlf;}{crlf;}MIT License{crlf;}{crlf;}Copyright (c) 2009 - 2010 Microsoft Corporation, then modifications by Jacob Slusser 2014, Peter William Wagner 2017 - 2024{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- INI File Parser{crlf;}{crlf;}The MIT License (MIT){crlf;}{crlf;}Copyright (c) 2008 Ricardo Amores Hernández{crlf;}{crlf;}Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the {quot;}Software{quot;}), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:{crlf;}{crlf;}The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.{crlf;}{crlf;}THE SOFTWARE IS PROVIDED {quot;}AS IS{quot;}, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.{crlf;}{crlf;}- Active Directory Object Picker{crlf;}{crlf;}Microsoft Public License (MS-PL){crlf;}{crlf;}The initial project was originally created by Armand du Plessis in 2004 and now is extended and maintained by Tulpep.{crlf;}{crlf;}This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.{crlf;}{crlf;}1. Definitions{crlf;}The terms {quot;}reproduce,{quot;} {quot;}reproduction,{quot;} {quot;}derivative works,{quot;} and {quot;}distribution{quot;} have the same meaning here as under U.S. copyright law.{crlf;}A {quot;}contribution{quot;} is the original software, or any additions or changes to the software.{crlf;}A {quot;}contributor{quot;} is any person that distributes its contribution under this license.{crlf;}{quot;}Licensed patents{quot;} are a contributor's patent claims that read directly on its contribution.{crlf;}{crlf;}2. Grant of Rights{crlf;}(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.{crlf;}(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.{crlf;}{crlf;}3. Conditions and Limitations{crlf;}(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.{crlf;}(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.{crlf;}(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.{crlf;}(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.{crlf;}(E) The software is licensed {quot;}as-is.{quot;} You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. +PreviewChanges.Message=Overall changes:{crlf;}{crlf;}-- Bugfixes in preview releases{crlf;}{crlf;}- Fixed an issue where removed features would appear in the wrong place{crlf;}- Fixed a minor UI issue where the proper user principal name (UPN) would not be shown when selecting a user in the ADDS domain join wizard{crlf;}- Fixed a minor UI issue where the NT logon path of a domain user would not be shown when launching the ADDS domain join wizard for the first time{crlf;}- Fixed some HiDPI issues{crlf;}- Fixed an issue where, when managing the active installation, the version's revision number would sometimes not coincide with the actual revision number{crlf;}- Fixed an issue where information about a Windows image would be cleared after adding or removing packages{crlf;}- Fixed an issue where the program would throw an exception if it couldn't create the logs directory (#344, thanks @Low351){crlf;}- Fixed an issue where GraphoView would not display information about a selected Windows image if the WDS group it belongs to only has 1 image{crlf;}- Fixed an issue where capture compression type options were not being used when performing FFU captures{crlf;}- Fixed an issue where the program would throw an exception when performing multiple driver exports by class name{crlf;}- Fixed an exception (#350, thanks @TackleBarry80){crlf;}- Registry hives that were unloaded externally no longer cause errors when unloading them from the image registry control panel{crlf;}- Non-PowerShell-based endpoints no longer throw CORS issues when calling WDS Helper Server APIs{crlf;}- Fixed an issue where App Installer download errors would not appear in the foreground{crlf;}- Fixed an issue where tutorial videos would not be playable{crlf;}- The WDS Helper client message for downloading unattended answer files no longer shows at all times{crlf;}- Fixed an issue where the program would throw an exception when saving Windows PE configuration of an offline Windows PE installation{crlf;}- Fixed an issue where the full date string was not displaying correctly when accessing image properties with Windows representations of dates turned off{crlf;}- When adding a boot image to the WDS server, the service start is now requested only when it is not running{crlf;}- Fixed an exception that would happen when adding certain AppX packages (#365, #366, thanks @charlezmmonroe-byte){crlf;}{crlf;}-- New features{crlf;}{crlf;}- The Sysprep Preparation Tool has seen support for `CopyProfile` and can now remove AppX packages from the reference system{crlf;}- Guards have been added to prevent running the PE Helper on a PXE environment, and to warn when running the PXE Helpers on a non-PXE environment{crlf;}- The autorun menu now has options to browse disc contents and copy the boot image to a WDS server{crlf;}- The DISMTools Preinstallation Environment can now be configured via policies{crlf;}- You can now view images and groups in a WDS server graphically{crlf;}- When launching the Driver Installation Module, the Preinstallation Environment can now tell you the hardware IDs of unknown devices{crlf;}- HotInstall can now export SCSI adapters to install them in the DTPE image{crlf;}- If a non-sysprepped volume is selected in the image capture script, it will now warn you{crlf;}- A new task has been added to copy installation images to a Windows Deployment Services (WDS) server{crlf;}- From the Autorun application you can now specify the WDS image group to upload the image to{crlf;}- The Autorun application and HotInstall have seen HiDPI improvements{crlf;}- Partition table overrides can now be used when deploying images with the WDS Helper{crlf;}- PXE Helper Servers can now be started using a different port by holding down SHIFT and performing an action in the following places:{crlf;} - From the Autorun application{crlf;} - From the Tools > Start PXE Helper Server for... menu in the main program{crlf;}- The architecture for the WDS boot image is now picked graphically{crlf;}- The default set of DISMTools Preinstallation Environment backgrounds has been overhauled{crlf;}- The WDS Helper Client now detects the assigned volume letter for the image share more reliably{crlf;}- ISO file creation results are now displayed in a notification{crlf;}- You can now configure the keyboard layout in the Preinstallation Environment graphically{crlf;}- If the Sysprep Preparation Tool was invoked before capturing the image, temporary files and boot entries are now removed if the capture succeeds. The resulting Windows image will still not contain any of those items{crlf;}- The version reporter watermark in the DISMTools Preinstallation Environment can now detect when the environment has booted via a network{crlf;}- The PE Helper can now include your target system's essential drivers (storage controllers and network adapters) in the DISMTools Preinstallation Environment{crlf;}- The ISO creation wizard will let you specify a save location if you clicked OK without having specified one{crlf;}- You can now specify scripts written in VBScript and JScript{crlf;}- The {quot;}Enable Batch script file locks{quot;} starter script has been introduced{crlf;}- The {quot;}Remove MAX_PATH length limit{quot;} starter script has been introduced{crlf;}- The {quot;}Show and Hide System Desktop icons{quot;} starter script has been introduced{crlf;}- The {quot;}Set File Explorer Launch Folder{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Windows Admin Center/Azure Arc banner{quot;} starter script has been introduced{crlf;}- The {quot;}Disable Shutdown Event Tracker{quot;} starter script has been introduced{crlf;}- The {quot;}Refresh Windows Explorer{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Start Menu Appearance{quot;} starter script has been introduced{crlf;}- The {quot;}Disable warnings for unsigned RDP files{quot;} starter script has been introduced{crlf;}- The {quot;}Configure PowerShell execution policy{quot;} starter script has been introduced{crlf;}- The {quot;}Configure Power Plan Values{quot;} starter script has been introduced{crlf;}- The {quot;}Invoke Windows Utility Configuration{quot;} starter script has been updated{crlf;}- The {quot;}Restore classic context menu in Windows 11{quot;} starter script has been introduced{crlf;}- The Starter Script Editor has seen several improvements:{crlf;} - The Starter Script Editor has received dark mode support{crlf;} - The Starter Script Editor now detects read-only starter scripts and removes such attribute when saving them{crlf;} - Spacing in script code can now be normalized{crlf;}- Organizational units and users in OUs are now sorted alphabetically in the ADDS domain join wizard{crlf;}- The ADDS domain join wizard will now let you continue if you had selected an account that does not require a password{crlf;}- A task has been added to copy a pre-configured answer file to an image so that it boots to Audit mode automatically{crlf;}- The ADDS domain join wizard has seen a couple of improvements:{crlf;} - The wizard will no longer let you continue when you specify a domain account that does not exist{crlf;} - You can now test domain name resolution by invoking nslookup{crlf;} - You can now pick account objects from anywhere in your domain{crlf;}- When applying answer files you can now choose whether to copy them to the target image's Sysprep folder{crlf;}- You can now enlarge the preview area for starter script code{crlf;}- You can now configure account display names independently from account names{crlf;}- Post-installation scripts can now be reordered{crlf;}- Batch scripts with NT extensions are no longer supported{crlf;}- Service information can now be saved to a report, whether you manage a Windows image or an installation{crlf;}- Services can now be removed{crlf;}- The image information saver is now run asynchronously{crlf;}- When information about a package file can't be obtained, DISMTools will now continue processing the rest of the queue{crlf;}- Filter assistants have been added to the feature, capability, and driver information dialogs to allow you to build queries more easily{crlf;}- A new automatic image reload service is now included, to let you have all your images reloaded on system startup{crlf;}- You can now export drivers by class name{crlf;}- Image capture tasks will now warn you when source installations have not been prepared with Sysprep{crlf;}- A new task has been added to optimize Windows images{crlf;}- Support for Full Flash Utility (FFU) has been introduced. Variations of the image application, capture, split, and optimization have been introduced with FFU support{crlf;}- From the project view you can now perform commit operations to FFU files using a workaround{crlf;}- You can now get installed driver information from Windows 7 images{crlf;}- Projects and installation management modes now load and unload much faster{crlf;}- Removing provisioned AppX packages from the online installation management mode is much more reliable now{crlf;}- You can now access WIM and FFU variants of the image capture and application tasks much more easily{crlf;}- After extracting images from ISO files, the program will now let you select the most suitable installation image from it{crlf;}- You can now view information specific to FFU files when viewing mounted image properties{crlf;}- When downloading packages from App Installer files you can now copy the URLs to the main application package{crlf;}- When exporting drivers by class name or when filtering installed drivers by class name, you can now choose from third-party classes provided by third-party drivers in your Windows image or installation{crlf;}- You can now export drivers from Windows 7 images and installations{crlf;}- Saving service changes is much faster now{crlf;}- Questions asked by the image information saver are no longer asked in the background{crlf;}- FFU file commit operations are now carried out when saving changes to mounted FFU files after performing image tasks such as adding packages or enabling features{crlf;}- An option has been added to prevent the machine from sleeping while performing image operations{crlf;}- Help documentation has seen a major visual refresh{crlf;}- File associations are now set for the Starter Script Editor{crlf;}- The home screen has seen a visual overhaul{crlf;}- 7-Zip has been updated to version 26.01{crlf;}- CODE: setting load and save functionality has been revamped{crlf;}- The Starter Script Editor and the theme designer can now be invoked from the Tools menu{crlf;}- In portable installations, file associations can now be toggled for the Starter Script Editor{crlf;}- The DynaLog log viewer has received support for event log filters{crlf;}- Date properties can now be displayed in a Windows-native format{crlf;}- Markdig has been updated to version 1.3.1{crlf;}- Scintilla.NET has been updated to version 6.1.2{crlf;}- The managed DISM API has been updated to version 6.0.0{crlf;}- Windows API Code Pack has been updated to version 8.0.15.2{crlf;}{crlf;}-- Removed features{crlf;}{crlf;}- The WDS preparation script has been removed in favor of the WDS Helper{crlf;}{crlf;}Changes made since last preview:{crlf;}{crlf;}-- Bugfixes{crlf;}{crlf;}- Fixed accuracy issues when performing Windows UEFI CA 2023 readiness checks on systems that were deployed using updated boot loaders{crlf;}- Fixed an issue where background processes would fail with {quot;}The parameter is incorrect{quot;} in some cases{crlf;}{crlf;}-- New features{crlf;}{crlf;}- UnattendGen has been updated to the latest version, now requiring .NET 10{crlf;}- The news feed previewer has seen several improvements{crlf;}- The Preinstallation Environment Helper now detects answer files created by Rufus, and lets you act on answer file conflicts + +[PrgAbout.Tooltip] +Text1.Label=Consulte o subreddit oficial do projeto +Join.Coding.Wonders.Label=Entre no servidor Discord da CodingWonders Software +Project.MDL.Label=Consulte o debate sobre o projeto nos fóruns do My Digital Life +Project.GitHub.Label=Consulte o repositório do projeto no GitHub + +[PrgAbout.UpdateCheck] +Couldn.Tdownload.Message=Não foi possível descarregar o verificador de actualizações. Motivo:{crlf;}{0} + +[PrgSetup] +Set.Up.DISM.Label=Configurar DISMTools +Welcome.DISM.Tools.Label=Bem-vindo ao DISMTools +DISM.Tools.Free.Message=DISMTools é uma GUI gratuita e de código aberto, orientada para projectos, para operações DISM. Para iniciar a configuração, clique em Seguinte. +Yours.Customize.Message=Torne-o seu. Personalize este programa a seu gosto e clique em Next. Estas configurações podem ser feitas a qualquer momento na secção {quot;}Personalização{quot;} da janela Opções +CustomizeProgram.Label=Personalizar este programa +ColorMode.Label=Modo de cor: +Language.Label=Idioma: +Log.Window.Font.Label=Tipo de letra da janela de registo: +LogFile.Label=Ficheiro de registo: +Log.Settings.Message=Especifique as configurações de registo e clique em Seguinte. Dependendo do nível de conteúdo que especificar, registaremos mais ou menos informações. Esta configuração pode ser feita a qualquer momento na secção {quot;}Logs{quot;} da janela Opções +Log.Label=O que devemos registar quando executa uma operação? +Anything.Like.Label=Há mais alguma coisa que gostaria de configurar? +Settings.Available.Message=As configurações disponíveis são mais do que as que acabou de configurar. Se pretender alterar mais definições, clique no botão abaixo. Também vamos tornar essas configurações persistentes. +Perform.Steps.Time.Label=Pode executar estes passos em qualquer altura. +Done.Setting.Up.Message=Terminou a configuração básica para usar o DISMTools da forma desejada. Clique em {quot;}Finish{quot;}, e as configurações serão mantidas. +SetupComplete.Label=A configuração está concluída +Ve.Set.Things.Label=Agora que já configurou tudo, recomendamos que efectue as seguintes acções: +Stay.Up.Date.Label=Mantenha-se atualizado para receber novas funcionalidades e uma experiência melhorada +Get.Started.DISM.Label=Começar a utilizar o DISMTools e o serviço de manutenção de imagens, para obter mais rapidamente +Secondary.Progress.Label=Estilo do painel de progresso secundário: +Font.Readable.Log.Message=Esta fonte pode não ser legível em janelas de registo. Embora possa continuar a utilizá-lo, recomendamos tipos de letra monoespaçados para maior legibilidade. +Back.Button=Voltar +Cancel.Button=Cancelar +Browse.Button=Navegar... +Default.Log.File.Button=Utilizar ficheiro de registo predefinido +Configure.Settings.Button=Configurar mais definições +GetStarted.Button=Obter +CheckUpdates.Button=Verificar se há actualizações +Auto.Create.Logs.CheckBox=Criar automaticamente registos no diretório de registos do programa +Modern.RadioButton=Moderno +Classic.RadioButton=Clássico +Log.File.Title=Especificar o ficheiro de registo +System.Setting.Item=Utilizar a configuração do sistema +LightMode.Item=Modo de luz +DarkMode.Item=Modo escuro + +[PrgSetup.Actions] +UpdateChecker.Title=Verificar actualizações + +[PrgSetup.Dialogs] +SaveFile.Filter=Todos os ficheiros|*.* + +[PrgSetup.LogLevel] +Errors.Label=Erros (nível de registo 1) +File.Only.Display.Label=O ficheiro de registo só deve apresentar erros depois de executar uma operação de imagem. +Errors.Warnings.Label=Erros e avisos (nível de registo 2) +File.Display.Errors.Label=O ficheiro de registo deve apresentar erros e avisos após a realização de uma operação de imagem. +Errors.Messages.Label=Erros, avisos e mensagens de informação (nível de registo 3) +File.Display.Errors.Message=O ficheiro de registo deve apresentar erros, avisos e mensagens de informação após a realização de uma operação de imagem. +Errors.Warnings.Debug.Label=Erros, avisos, informações e mensagens de depuração (nível de registo 4) +Level3.Message=O ficheiro de registo deve apresentar erros, avisos, informações e mensagens de depuração após a realização de uma operação de imagem. + +[PrgSetup.Next] +Finish.Label=Terminar + +[PrgSetup.Next.Actions] +Folder.Log.File.Message=A pasta onde o ficheiro de registo será guardado não existe. Certifique-se de que existe e tente novamente. +Next.Button=Seguinte + +[PrgSetup.ToolTip] +Minimize.Label=Minimizar +Close.Label=Fechar +GoBack.Label=Voltar atrás + +[PrgSetup.Validation] +DownloadFailure.Message=Não foi possível descarregar o verificador de actualizações. Motivo:{crlf;}{0} + +[Progress] +Tasks.Label=Tarefas: {0}/{1} +Progress.Label=Progresso +Image.Operations.Label=Operações de imagem em curso... +Wait.Tasks.Label=Aguarde enquanto as seguintes tarefas são efectuadas. Isto pode demorar algum tempo +Cancel.Button=Cancelar +ShowLog.Label=Mostrar registo +HideLog.Label=Ocultar registo +Show.Dismlog.File.Link=Mostrar ficheiro de registo DISM (avançado) +Wait.Label=Aguarde... +CurrentTask.Label=Por favor, aguarde... +Performing.Image.Ops.Button=Realização de operações de imagem. Por favor, aguarde... +TaskCount.Label=Tarefas: 1/{0} + +[Progress.AddCapabilities] +Add.Capabilities.Button=A adicionar capacidades... +PrepareAdd.Button=A preparar para adicionar capacidades... +Add.Capabilities.Item=A adicionar capacidades... +AddingCapability.Item=Adicionar capacidade {0} de {1}... + +[Progress.AddDrivers] +AddingDrivers.Button=A adicionar controladores... +Preparing.Drivers.Button=A preparar para adicionar controladores... +AddingDrivers.Item=A adicionar controladores... +AddingDriver.Item=A adicionar o controlador {0} de {1}... + +[Progress.AddPackages] +AddingPackages.Button=A adicionar pacotes... +Preparing.Packages.Button=A preparar a adição de pacotes... +AddingPackages.Item=Adicionando {0} pacotes... +AddingPackage.Item=A adicionar o pacote {0} de {1}... + +[Progress.Packages.AddRecursive] +Gathering.Error.Level.Button=A recolher o nível de erro... + +[Progress.ProvAppx.Add] +AddingPackages.Button=A adicionar pacotes AppX... +Preparing.Button=A preparar a adição de pacotes AppX provisionados... +AddingPackages.Item=A adicionar pacotes AppX... +AddingPackage.Item=A adicionar pacote {0} de {1}... + +[Progress.ProvPackage.Add] +AddingPackage.Button=Adicionando pacote de provisionamento... +Image.Button=Adicionar pacote de aprovisionamento à imagem... + +[Progress.AppendImage] +AppendingImage.Button=Anexo à imagem... +Appending.Mount.Dir.Button=Anexo do diretório de montagem especificado à imagem de destino especificada... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.ApplyFfuImage] +ApplyingImage.Button=Aplicar imagem... +Applying.Image.Dest.Button=Aplicar a imagem especificada ao destino especificado... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.ApplyImage] +ApplyingImage.Button=Aplicar imagem... +Applying.Image.Dest.Button=Aplicar a imagem especificada ao destino especificado... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.ApplyUnattend] +ApplyAnswerFile.Button=Aplicar ficheiro de resposta não assistido... +Applying.Answer.Button=Aplicar o ficheiro de resposta automática especificado à imagem de destino... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.Background] +Ready.Label=Pronto +Perform.Image.Label=Não foi possível efetuar operações de imagem +Error.Has.Message=Ocorreu um erro que interrompeu as operações de imagem. Leia o registo abaixo para obter mais informações. +Ok.Button=OK +Ready.Item=Pronto + +[Progress.CaptureFfuImage] +CapturingImage.Button=Capturar imagem... +CaptureDir.Button=Capturar o diretório especificado para uma nova imagem... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.CaptureImage] +CapturingImage.Button=Capturar imagem... +CaptureDir.Button=Capturar o diretório especificado para uma nova imagem... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.CleanupImage] +Cleaning.Up.Image.Button=Limpar a imagem... +RevertPending.Button=Reverter acções de manutenção pendentes... +Cleaning.Up.ServicePack.Item=Limpeza dos ficheiros de cópia de segurança do Service Pack... +Cleaning.Up.Component.Item=Limpar o armazenamento de componentes... +Analyzing.Component.Item=Analisando o armazenamento de componentes... +Checking.Comp.Store.Item=Verificar a integridade do armazenamento de componentes... +Scanning.Component.Item=A analisar o armazenamento de componentes... +Repairing.Component.Item=Reparar o armazenamento de componentes... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.CleanupMounts] +Cleaning.Up.Mount.Button=Limpeza de pontos de montagem... +Gathering.Error.Level.Item=A recolher o nível de erro... +Deleting.Corrupted.Button=Eliminar recursos de imagens antigas ou corrompidas... + +[Progress.Close] +Ready.Label=Pronto + +[Progress.CommitImage] +CommittingImage.Button=A confirmar a imagem... +Saving.Changes.Image.Button=Guardar alterações na imagem... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.ConvertImage] +ConvertingImage.Button=A converter imagem... +Converting.Image.Button=A converter a imagem especificada... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.CreateProject] +CreatingProject.Label=Criar projeto: {quot;}{0}{quot;} +CreateProject.Button=Criar a estrutura do projeto DISMTools... + +[Progress.DisableFeatures] +Disabling.Button=Desativar características... +PrepareDisable.Button=A preparar a desativação de características... +Disabling.Item=Desativar características... +DisablingFeature.Item=Desativar a caraterística {0} de {1}... + +[Progress.EnableFeatures] +EnablingFeatures.Button=Ativar características... +PrepareEnable.Button=A preparar a ativação de características... +EnablingFeatures.Item=Ativar características... +EnablingFeature.Item=Ativar a caraterística {0} de {1}... + +[Progress.ExportDrivers] +ExportingDrivers.Button=Exportar controladores... +ExportThirdParty.Button=Exportar controladores de terceiros para a pasta especificada... + +[Progress.ExportImage] +ExportingImage.Button=Exportar imagem... +Exporting.Image.Button=Exportar imagem especificada... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.GetTasks] +Tasks.Label=Tarefas: 1/{0} + +[Progress.ImportDrivers] +ImportingDrivers.Button=A importar controladores... +PrepareImport.Button=A preparar a importação de controladores de terceiros... +ExportThirdParty.Item=Exportar controladores de terceiros a partir da fonte de importação de controladores... +ImportThirdParty.Item=A importar controladores de terceiros para a imagem de destino... + +[Progress.OSUninstall] +Uninstalling.Version.Button=Desinstalar esta versão do Windows... + +[Progress.StartRollback] +Preparing.OSRollback.Button=Preparar a reversão do sistema operativo... + +[Progress.Log] +HideLog.Label=Ocultar registo +ShowLog.Item=Mostrar registo + +[Progress.Logs.Operation] +Label=Registos de operações + +[Progress.Logs.DismOutput] +Label=Saída DISM + +[Progress.MergeSWM] +MergingSwmfiles.Button=Combinando ficheiros SWM... +Merging.Swmfiles.WIM.Button=Combinar ficheiros SWM num ficheiro WIM... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.MountImage] +MountingImage.Button=Montagem de imagem... +Mounting.Image.Button=Montagem da imagem especificada... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.Operation] +OptimizingImage.Label=Optimizing image... +Optimizing.Windows.Label=Optimizing Windows image... +UpgradingImage.Label=Upgrading the image... +Setting.New.Image.Label=Setting the new image edition... +Setting.ProductKey.Label=Setting the product key... +Setting.New.ProductKey.Label=Setting the new product key... +Replacing.FFU.Files.Label=Replacing FFU files... +Replacing.Original.FFU.Label=Replacing original FFU file with modified FFU file... + +[Progress.RemountImage] +RemountingImage.Button=Remontando imagem... +ReloadSession.Button=Recarregar sessão de manutenção para a imagem montada... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[Progress.RemoveCapabilities] +Remove.Capabilities.Button=A remover capacidades... +Remove.Capabilities.Item=A remover capacidades... +Capability.Item=Remover a capacidade {0} de {1}... + +[Progress.RemoveCaps] +Preparing.Button=A preparar a remoção de capacidades... + +[Progress.RemoveDrivers] +RemovingDrivers.Button=A remover controladores... +Preparing.Drivers.Button=A preparar a remoção de controladores... +RemovingDrivers.Item=A remover controladores... +RemovingDriver.Item=A remover o controlador {0} de {1}... + +[Progress.RemoveRollback] +RemoveRollback.Button=Remover a capacidade de reversão do SO... +RemoveRevert.Button=Remover a capacidade de reverter para uma instalação antiga do Windows... + +[Progress.RemovePackages] +RemovingPackages.Button=A remover pacotes... +PrepareRemove.Button=A preparar a remoção de pacotes... +RemovingPackages.Item=A remover pacotes... +RemovingPackage.Item=A remover o pacote {0} de {1}... + +[Progress.ProvAppx.Remove] +RemovingPackages.Button=Removendo pacotes AppX... +Preparing.Button=A preparar a remoção de pacotes AppX provisionados... +RemovingPackages.Item=Removendo pacotes AppX... +RemovingPackage.Item=A remover o pacote {0} de {1}... + +[Progress.RemoveVolumes] +DeletingImages.Button=A eliminar imagens... +Prepare.Remove.Button=A preparar a remoção de imagens de volume... +Volume.Image.Item=Remover a imagem do volume {quot;}{0}{quot;}... + +[Progress.LayeredDriver] +SettingDriver.Button=Configuração do controlador em camadas... +Setting.Keyboard.Button=Configuração do controlador de teclado em camadas... + +[Progress.RollbackWindow] +SetWindow.Button=A configurar a janela de desinstalação... +SetDays.Button=A configurar o número de dias em que uma desinstalação pode ocorrer... + +[Progress.ScratchSpace] +Setting.ScratchSpace.Button=A configurar o espaço temporário... +SetScratchSpace.Button=A configurar o espaço temporário do Windows PE... + +[Progress.SetTargetPath] +Setting.Target.Button=A configurar a localização de destino... +Setting.Windows.Button=A configurar a localização de destino do Windows PE... + +[Progress.SplitFfuImage] +SplittingImage.Button=Dividir imagem... +Splitting.File.Button=Dividir ficheiro FFU... + +[Progress.SplitImage] +SplittingImage.Button=Dividir imagem... +Splitting.WIM.File.Button=Dividir ficheiro WIM... + +[Progress.SwitchIndexes] +Switching.Image.Button=Alternar índices de imagem... +Unmounting.Source.Button=Desmontar índice de origem... +Gathering.Error.Level.Item=A recolher o nível de erro... +Unmounting.Source.Index.Item=Desmontar índice de origem... +CurrentTask.Item=A recolher o nível de erro... +Mounting.Target.Index.Item=A montar o índice de destino... + +[Progress.UnmountImage] +UnmountingImage.Button=Desmontar imagem... +Unmounting.ImageFile.Button=Desmontar ficheiro de imagem... +Gathering.Error.Level.Item=A recolher o nível de erro... + +[ProgressReporter] +Progress.Label=Progresso + +[ProjProps] +Bytes.Item={0} bytes (~{1}) +Getting.Project.Image.Label=Obter informações sobre o projeto e a imagem. Aguarde... +Name.Label=Nome: +Location.Label=Localização: +Creation.Time.Date.Label=Data de criação: +ProjectGUID.Label=GUID do projeto: +MountDirectory.Label=Diretório de montagem: +ImageIndex.Label=Índice da imagem: +ImageFile.Label=Ficheiro de imagem: +Image.Present.Project.Label=Imagem presente no projeto? +ImageStatus.Label=Estado da imagem: +Version.Label=Versão: +Description.Label=Descrição: +Size.Label=Tamanho: +Supports.WIM.Boot.Label=Suporta WIMBoot? +Architecture.Label=Arquitetura: +ServicePackBuild.Label=Service Pack build: +ServicePackLevel.Label=Nível do Service Pack: +Edition.Label=Edição: +ProductType.Label=Tipo de produto: +ProductSuite.Label=Conjunto de produtos: +System.Root.Dir.Label=Diretório raiz do sistema: +DirectoryCount.Label=Contagem de directórios: +FileCount.Label=Contagem de ficheiros: +CreationDate.Label=Data de criação: +ModificationDate.Label=Data de modificação: +Installed.Languages.Label=Idiomas instalados: +FileFormat.Label=Formato do ficheiro: +Image.Rwpermissions.Label=Permissões de imagem R/W: +Recover.Label=Recuperar +Reload.Label=Recarregar +Remount.Write.Label=Remontar com permissões de escrita +Ok.Button=OK +Cancel.Button=Cancelar +Many.Cannot.Seen.Message=Muitas propriedades não podem ser vistas porque a imagem ainda não foi montada. Depois de a montar, serão mostradas aqui informações detalhadas. Clique aqui para montar uma imagem +Props.Label=Propriedades +Yes.Button=Sim +No.Button=Não +ImgMount.Label=Não disponível +ImgIndex.Label=Não disponível +ImgName.Label=Não disponível +NotAvailable.Label=Não disponível +ImgVersion.Label=Não disponível +ImgMounted.Label=Não disponível +ImgSize.Label=Não disponível +ImgWIM.Label=Não disponível +ImgHal.Label=Não disponível +ImgSP.Label=Não disponível +ImgEdition.Label=Não disponível +ImgP.Label=Não disponível +ImgSys.Label=Não disponível +ImgDirs.Label=Não disponível +ImgFiles.Label=Não disponível +ImgCreation.Label=Não disponível +ImgModification.Label=Não disponível +ImgFormat.Label=Não disponível +ImgRW.Label=Não disponível + +[ProjectProps.FeatureUpdate] +FeatureUpdate.Label=(atualização de funcionalidades: {0}) + +[ProjectProps.Image] +UndefinedImage.Label=Não definido pela imagem +OpenParenthesis.Label=( +Default.Label=, predefinido +CloseParenthesis.Label=) +File.Label=Ficheiro {0} + +[ProjProps.Tooltip] +Hardware.Abstraction.Label=Camada de abstração de hardware + +[ServiceGroups] +ServiceGroup.Label={lbrace;}0{rbrace;} service(s) in group +RegisteredHost.Label={lbrace;}0{rbrace;} service(s) are registered in the service host. + +[RegistryPanel] +Image.Hives.Label=Colmeias do registo de imagens +Load.Label=Carregar +Unload.Label=Descarregar +Open.Button=Abrir +Tool.Lets.Load.Message=Esta ferramenta permite-lhe carregar as colmeias do registo de imagem que especificar aqui para o sistema local. Isto permite-lhe efetuar modificações na configuração armazenada na imagem do Windows. Quando terminar de personalizar uma chave de uma colmeia, pode também descarregá-la aqui: +Ntuserdatdefault.User.Label=NTUSER.DAT (Utilizador predefinido) +Load.Different.Label=Se pretender carregar uma colmeia de registo de imagem diferente, especifique o respetivo caminho e clique em Carregar: +HiveLocation.Label=Localização da colmeia: +PathRegistry.Label=Localização no registo: +Browse.Button=Procurar... +Load.Custom.Hive=Carregar colmeia personalizada + +[RegistryPanel.Close] +HivesNeedUnload.Message=As colmeias do registo têm de ser descarregadas para fechar esta janela. Deseja descarregá-las agora? +HivesNotUnloaded.Message=Algumas colmeias não puderam ser descarregadas. Por favor, descarregue-as antes de fechar esta janela. + +[ReloadProject] +ImageMissing.Label=Esta imagem já não está disponível +ImageUnavailable.Message=A imagem que foi carregada neste projeto já não está disponível. Isto pode acontecer se tiver sido desmontada por um programa externo. Por este motivo, o projeto tem de ser recarregado. Clique em {quot;}OK{quot;} para recarregar este projeto.{crlf;}{crlf;}NOTA: se clicar em {quot;}Cancelar{quot;}, o projeto será descarregado +Ok.Button=OK +Cancel.Button=Cancelar + +[RemCapabilities] +Remove.Label=Remover capacidades +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Cancelar +Capability.Column=Capacidade +State.Column=Estado + +[RemCapabilities.Initialize] +UnsupportedImage.Message=Esta ação não é suportada nesta imagem + +[RemCapabilities.Validation] +Selected.None.Message=Não existem quaisquer capacidades seleccionadas para remover. Por favor, seleccione algumas capacidades e tente novamente. + +[RemDrivers] +RemoveDrivers.Label=Remover controladores +Image.Task.Header.Label={0} +DriverPackages.Wish.Label=Especifique os pacotes de controladores que pretende remover e clique em OK: +Hide.Boot.Critical.CheckBox=Ocultar controladores críticos para o arranque +Hide.Drivers.Part.CheckBox=Ocultar controladores que fazem parte da distribuição do Windows +Ok.Button=OK +Cancel.Button=Cancelar +PublishedName.Column=Nome publicado +Original.File.Name.Column=Nome do ficheiro original +ProviderName.Column=Nome do fornecedor +ClassName.Column=Nome da classe +Part.Windows.Column=Parte da distribuição do Windows? +BootCritical.Column=É crítico para o arranque? +Version.Column=Versão +Date.Column=Data +Loading.DriverPackages.Label=Obter pacotes de controladores instalados... + +[RemDrivers.Validation] +Yes.Button=Sim +Selected.Boot.Message=Seleccionou pacotes de controladores que são críticos para o arranque. Continuar com a remoção de tais pacotes pode deixar a imagem de destino não inicializável. +WantContinue.Message=Deseja continuar? +CheckedItems.Button=Sim +Selected.Part.Message=Seleccionou pacotes de controladores que fazem parte da distribuição do Windows. Continuar pode deixar inacessíveis certas partes do Windows que dependem destes controladores. +ContinueQuestion.Message=Deseja continuar? +Packages.Required.Message=Especifique os pacotes de controladores que pretende remover e tente novamente + +[RemPackage] +RemovePackages.Label=Remover pacotes +Image.Task.Header.Label={0} +PackageSource.Label=Origem dos pacotes: +Note.May.Message=NOTA: o programa pode mostrar pacotes que não foram adicionados em primeiro lugar. No entanto, se um pacote não for adicionado, o programa irá ignorá-lo. +PackageRemoval.Group=Remoção de pacotes +Package.Names.RadioButton=Especificar os nomes dos pacotes: +Package.Files.RadioButton=Especificar ficheiros do pacote: +Browse.Button=Navegar... +Cancel.Button=Cancelar +Ok.Button=OK +PackageSource.Description=Especifique uma origem de pacote: +Couldn.Tscan.Message=Não foi possível procurar ficheiros CAB na fonte do pacote. Por favor, tente novamente. +DISMTools.Title=DISMTools + +[RemPackage.Validation] +No.Packages.Selected.Message=Por favor, seleccione os pacotes a remover e tente novamente. +Packages.Selected.None.Title=Nenhum pacote selecionado + +[RemoveAppx] +Prov.Label=Remover pacotes AppX provisionados +Image.Task.Header.Label={0} +Ok.Button=OK +Cancel.Button=Cancelar +PackageName.Column=Nome do pacote +App.Display.Name.Column=Nome de apresentação da aplicação +Architecture.Column=Arquitetura +ResourceID.Column=ID do recurso +Version.Column=Versão +Registered.User.Column=Registado por algum utilizador? +ViewResources.Label=Ver recursos de {0} + +[RemoveAppx.Init] +UnsupportedImage.Message=Esta ação não é suportada nesta imagem + +[RemoveAppx.Validation] +Packages.Required.Message=Especifique os pacotes AppX a remover e tente novamente. +Prov.Title=Remover pacotes AppX aprovisionados +DesktopExperience.Message=A caraterística Área de Trabalho (DesktopExperience) tem de ser ativada para remover pacotes AppX nas imagens do Windows Server Core/Nano Server.{crlf;}{crlf;}Ative esta caraterística, arranque para a imagem e tente novamente. + +[SaveProject] +SaveChanges.Label=Pretende guardar as alterações deste projeto? +ShutdownRestart.Message=Se desligar ou reiniciar o sistema sem desmontar as imagens, terá de recarregar a sessão de manutenção. +Yes.Button=Sim +No.Button=Não +Cancel.Button=Cancelar + +[ScriptReorder] +Script.Label=Script {lbrace;}0{rbrace;} +Move.Selected.Top.Label=Move selected script to the top +Move.Selected.Previous.Label=Move selected script to the previous position +Move.Selected.Next.Label=Move selected script to the next position +Move.Selected.Bottom.Label=Move selected script to the bottom + +[ServiceManagement.Display] +MinuteS.Label={0} minuto(s) +Undefined.Label=Não definido +Per.User.Label=Não é um serviço por utilizador +Undefined.Group.Label= + +[Services.Display] +MinutesSeconds.Message={0} minuto(s) ({1} segundos) após a primeira falha, {2} minuto(s) ({3} segundos) após a segunda falha, {4} minuto(s) ({5} segundos) após falhas posteriores + +[Services.Messages] +StartType.Message=O tipo de arranque selecionado não é suportado para serviços deste tipo. O serviço selecionado poderá não funcionar corretamente, ou poderá não funcionar, se continuar com este tipo de arranque.{crlf;}{crlf;}Pretende repor este tipo de arranque para o valor atual? +System.Done.Message=As informações dos serviços do sistema foram guardadas com êxito no registo da imagem de destino.{crlf;}{crlf;}Foi guardada no ambiente de trabalho uma cópia de segurança da configuração anterior dos serviços, caso precise dela se as alterações não correrem como esperado.{crlf;}{crlf;}Basta carregar a hive SYSTEM da imagem de destino e importar este ficheiro de registo. +UnsavedClose.Message=Foram feitas algumas alterações. Fechar esta janela irá descartar todas as alterações aos serviços do Windows. Pretende descartar estas alterações? +UnsavedReload.Message=Foram feitas algumas alterações. Recarregar as informações dos serviços irá descartar todas as alterações aos serviços do Windows. Pretende descartar estas alterações? +RemoveService.Title=Remover serviço +Scheduled.Deletion.Message=O serviço foi agendado com êxito para eliminação. A remoção deste serviço será efetuada quando guardar as alterações. Se precisar deste serviço novamente, importe a cópia de segurança das informações dos serviços que será criada durante o processo de gravação. +InfoSaved.Message=Não foi possível guardar as informações dos serviços do sistema no registo da imagem de destino. + +[ServiceMgmt.Messages] +Continui.Removal.Svc.Message=Continuar com a remoção deste serviço pode tornar o sistema de destino instável ou incapaz de arrancar. Pretende continuar? + +[ServiceManagement.Progress] +Saving.Label=A guardar informações dos serviços... ({0}/{1}, {2}%) + +[ServiceManagement.StartTypes] +BootLoader.Label=Carregador de arranque +Iosystem.Label=Sistema de E/S +Automatic.Label=Automático +Manual.Label=Manual +Disabled.Label=Desativado + +[ImageEdition] +Title.Label=Definir edição da imagem +Image.Task.Header.Label={0} +Target.Upgrade.Label=Edição de destino para atualizar: +ServerOptions.Group=Opções de instalação ativa do servidor +Copy.EndUser.RadioButton=Copiar o Contrato de Licença de Usuário Final (EULA) para o seguinte local: +AcceptEULA.RadioButton=Aceitar o Contrato de Licença de Usuário Final (EULA) e usar a seguinte chave de produto: +Browse.Button=Procurar... +Ok.Button=OK +Cancel.Button=Cancelar + +[ImageEdition.Initialize] +Image.Cannot.Message=Esta imagem não pode ser actualizada para edições superiores porque está na sua edição mais elevada +Windows.Message=As imagens do Windows PE não podem ser actualizadas para edições superiores. + +[SetImageKey] +SetProductKey.Label=Definir chave do produto +Image.Task.Header.Label={0} +Type.ProductKey.Label=Digite a chave do produto que você deseja definir para a imagem do Windows, incluindo os traços: +Check.ProductKey.Message=Se você deseja verificar se a chave do produto é válida para a imagem do Windows, clique em Validar chave. Isso também verificará a sintaxe da chave. +ValidateKey.Button=Validar chave +Ok.Button=OK +Cancel.Button=Cancelar + +[SetImageKey.Initialize] +Windows.Message=As imagens do Windows PE não podem ser actualizadas para edições superiores. + +[SetImageKey.Messages] +ProductKey.Has.Label=A chave de produto não foi introduzida corretamente. +ProductKey.Windows.Label=A chave de produto é válida para esta imagem do Windows. +ProductKey.Valid.Message=A chave de produto foi introduzida corretamente, mas não é válida para esta imagem do Windows. + +[SetImageKey.Validation] +ProductKey.Valid.Message=A chave de produto foi introduzida corretamente, mas não foi possível verificar se é válida para esta imagem do Windows. + +[SetLayeredDriver] +UnknownInstalled.Label=Unknown/Not installed +PC.Enhanced.Label=PC/AT Enhanced Keyboard (101/102-Key) +DriverKorean.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 2) +Korean.Keyboard.Key.Item=Korean Keyboard (103/106 Key) +Japanese.Keyboard.Key.Item=Japanese Keyboard (106/109 Key) + +[SetLayeredDriver.KoreanPC] +Keyboard101.Type1.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 1) +Keyboard101.Type3.Label=Korean PC/AT 101-Key Compatible Keyboard/MS Natural Keyboard (Type 3) + +[LayeredDriver.Set] +Title=Configurar controlador de teclado em camadas +Image.Task.Header.Label={0} +Intro.Message=Esta ação permite-lhe configurar um controlador de teclado em camadas para teclados japoneses e coreanos, uma vez que alguns utilizadores têm teclados com teclas adicionais. Basta especificar o novo controlador da lista abaixo e clicar em OK +CurrentDriver.Label=Controlador atual do teclado em camadas: +NewDriver.Label=Novo controlador de teclado em camadas: +Driver.Already.Label=Este controlador já foi configurado +Ok.Button=OK +Cancel.Button=Cancelar + +[OSRollback] +OSUninstall.Label=Configurar janela de desinstalação do sistema operativo +Image.Task.Header.Label={0} +Default.OS.Message=Por predefinição, e após uma atualização do SO, tem 10 dias para reverter para a versão anterior do Windows. No entanto, pode alterar esta configuração se pretender reverter para a versão antiga do SO numa data posterior.{crlf;}{crlf;}Utilize o cursor numérico para aumentar ou diminuir o número de dias que tem para reverter para a versão antiga do Windows. Tem de estar entre 2 e 60. +Amount.Days.Revert.Label=Quantidade de dias que tem para reverter para a versão antiga do Windows: +Ok.Button=OK +Cancel.Button=Cancelar + +[RollbackWindow.Init] +OnlineOnly.Message=Esta ação só é suportada em instalações online + +[OSRollback.Messages] +Hresult.Label=(HRESULT {lbrace;}0{rbrace;}) + +[PE.Scratch] +Window.Title=Configurar o espaço temporário do Windows PE +Header.Title={0} +Description.Message=O espaço de rascunho é a quantidade de espaço gravável disponível no volume do sistema Windows PE quando o seu conteúdo é copiado para a memória. Especifique uma quantidade de espaço de rascunho e clique em OK. +Space.Label=Espaço temporário: +Ok.Button=OK +Cancel.Button=Cancelar + +[PETargetPath.Target] +Set.Windows.Petarget.Label=Configurar a localização de destino do Windows PE +Image.Task.Header.Label={0} +Target.Dir.Message=A localização de destino é um diretório para onde os ficheiros do Windows PE serão copiados para arrancar no ambiente. Especifique uma localização de destino e clique em OK. +TargetPath.Label=Localização de destino: +Ok.Button=OK +Cancel.Button=Cancelar + +[PETargetPath.Validation] +Target.Least.Message=O local de destino tem de ter pelo menos 3 caracteres e não mais de 32 caracteres +Target.Start.Message=O local de destino deve começar com uma letra diferente de A ou B +DriveLetterFormat.Message=Uma letra de unidade deve ser seguida de : +AbsolutePath.Message=A localização de destino tem de ser absoluta e não pode conter elementos relativos +Target.Contain.Message=A localização de destino não pode conter espaços ou aspas + +[SettingsReset] +ResetPreferences.Label=Repor preferências +ProceedReset.Message=Se prosseguir, as configurações serão repostas para os valores predefinidos. Quando este processo estiver concluído, regressará à janela principal do programa.{crlf;}{crlf;}Deseja continuar? +Yes.Button=Sim +No.Button=Não + +[Single.Image] +Image.Seems.Only.Item=Esta imagem parece ter apenas um índice +Cannot.Switch.Index.Message=Não é possível mudar para outros índices. Se quiser guardar as alterações da imagem, pode fazê-lo utilizando um índice novo e separado. +Know.Indexes.Message=Para saber mais sobre os índices de uma imagem, ou sobre algumas das suas propriedades específicas, aceda a {quot;}Comandos > Gestão de imagens > Obter informações sobre a imagem{quot;}, ou clique aqui +Here.LinkText=aqui +Ok.Button=OK + +[SplashScreen] +Version.Label=Version {lbrace;}0{rbrace;}.{lbrace;}1{rbrace;}.{lbrace;}2{rbrace;} + +[StarterScript] +AlreadyCreated.Message=The starter script had been created with an earlier version of the Starter Script Editor and will be saved with properties that will make it compatible with the current format. After this is done, the starter script will no longer be compatible with earlier versions of DISMTools or the Starter Script Editor.{crlf;}{crlf;}Do you want to save this file? +Editor.Label=Starter Script Editor +Dialog.Title=Starter Script Editor +SaveError.Label=Save Error +DebugEditor.Label=DISMTools Starter Script Editor version {0} ({1}_DEBUG){crlf;}{crlf;}{2} +About.Label=Acerca de +Editor.Message=DISMTools Starter Script Editor version {0}{crlf;}{crlf;}{1} +DebugVersion.Message=DISMTools Starter Script Editor version {0}_NET2REL ({1}_DEBUG){crlf;}{crlf;}{2} +Version.Message=DISMTools Starter Script Editor version {0}_NET2REL{crlf;}{crlf;}{1} +ImportExisting.Label=Import Existing Script +Unrecognized.Label=Unrecognized script +ReadFailed.Label=Could not read file contents +FileMissing.Label=The script file does not exist. +ReadOnlyFile.Message=This script file has been loaded with read-only privileges. If you make changes to this script, you must save them to a new script file or enable write access for this script. +SaveFailed.Message=Changes could not be saved to the script file. Make sure write access is present in the file. {crlf;}{crlf;}{0}{crlf;}{crlf;}To enable write access for this file, use the respective button in the toolbar. +SaveChanges.Label=Do you want to save the changes to your script file? +Name.Required.Label=You must provide a name for this starter script. +Description.Required.Label=You must provide a description for this starter script. +SaveChanges.Message=Do you want to save the changes to your script file? +ImportSelected.Message=Importing the selected script will replace existing contents of your script. +SupportedScript.Label=This script is not supported by the Starter Script Editor. +LoadFailed.Label=The contents of the script could not be loaded. +WriteAccess.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +NonMonospace.Message=You have selected a non-monospaced font. Text may not look correctly. Do you want to continue? +Name.Required.Message=You must provide a name for this starter script. +Description.Required.Message=You must provide a description for this starter script. +Window.Title=Starter Script Editor - {lbrace;}0{rbrace;} +Window.Default=Starter Script Editor +CheckScript.Message=Check this option if this script contains settings that can be configured by the user{crlf;}after importing the starter script from the Starter Script Browser. + +[Tools.ThemeDesigner.Main] +Color.Rgbclick.Label=Current Color: RGB({0}, {1}, {2}). Click to copy to clipboard + +[ThemeDesigner.Messages] +Loaded.Read.Only.Message=This theme has been loaded with read-only privileges. If you make changes, you must save them to a new file or enable write access. +Provide.Name.Label=You must provide a name for the theme. +Saved.Done.Label=The theme has been saved successfully at the specified location. +SaveTheme.Label=Could not save the theme. +Enable.Write.Access.Message=Could not enable write access for this script file. Make sure that the script is not in read-only media. +ThemeDesigner.Label=Theme Designer +Name.Missing.Label=Theme name missing +SaveSuccess.Label=Save Success +SaveError.Label=Save Error +DISM.Tools.Designer.Label=DISMTools Theme Designer version {0}{crlf;}{crlf;}{1}. {2} +About.Label=Acerca de +About.Version.Message=DISMTools Theme Designer version {0}_NET2REL{crlf;}{crlf;}{1}. {2} +StarterScript.Editor.Label=Starter Script Editor + +[DynaViewer.Messages] +FileExist.Label=The file {quot;}{0}{quot;} does not exist. +File.NotFound.Message=The file {quot;}{0}{quot;} does not exist. +Log.Version.Label=DynaLog Log Viewer (DynaViewer) version {0}{crlf;}{crlf;}{1} +About.Version.Message=DynaLog Log Viewer (DynaViewer) version {0}_NET2REL{crlf;}{crlf;}{1} +Regex.Failure.Label=Regular expression failure +RegexInvalid.Message=The regular expression, {1} , has not been written correctly. The cheatsheet can help you with the queries.{0}{0} Error message: {2} + +[DynaViewer] +Proced.Entries.Double.Label=Processed entries: {lbrace;}0{rbrace;}. Double-click an entry to get its information. +Regex.Expressions.Label=Use regular expressions +MatchCase.Label=Match case +Processed.Entries.Message=Processed entries: {lbrace;}0{rbrace;}{lbrace;}1{rbrace;}. Double-click an entry to get its information. +FilteredEntries.Suffix=; Filtered entries: {lbrace;}0{rbrace;} + +[ThemeDesigner.Main] +Window.Title=DISMTools Theme Designer - {lbrace;}0{rbrace;} +Window.DefaultTitle=DISMTools Theme Designer + +[Unattend.Scripts] +ImportDone.Message=After this script is imported, please check its code for any options that you can set. That way you can customize its behavior. +Loaded.Message=The starter scripts could not be loaded. +Refreshed.Message=The starter scripts could not be refreshed. + +[UnattendMgr] +Unattended.AnswerFile.Label=Gestor de ficheiros de resposta não assistida +ProjectPath.Label=Localização do projeto: +Browse.Button=Procurar... +OpenFile.Button=Abrir ficheiro +Open.File.Location.Button=Abrir localização do ficheiro +ApplyImage.Button=Aplicar à imagem... +FileName.Column=Nome do ficheiro +Created.Column=Criado +LastModified.Column=Última modificação +LastAccessed.Column=Último acesso + +[Unattend.Scan] +FolderMissing.Message=A localização da pasta não existe +ElementsFound.Message=Pesquisa concluída sem elementos encontrados + +[Updater.Main] +Minimize.Label=Minimize +Close.Label=Close +DISM.Tools.Update.Label=DISMTools Update Check System - Version {0} +UpdateInfo.Label=Update information +Downloading.Update.Label=Downloading the update +Prepare.Update.Install.Label=Preparing update installation +InstallingUpdate.Label=Installing the update +Downloading.Download.Label=Downloading the update ({0}%) +Preparing.Install.Item=Preparing update installation (80%) +Preparing.Install.Label=Preparing update installation ({0}%) +Prepare.Update.Install.Item=Preparing update installation (100%) +Installing.Update.Item=Installing the update (0%) +Installing.Update.Label=Installing the update ({0}%) +InstallingComplete.Item=Installing the update (100%) + +[Updater.Main.Messages] +BranchRequired.Message=The branch parameter is necessary to be able to check for updates +Couldn.Tfetch.Label=We couldn't fetch the necessary update information. Reason:{crlf;}{0} +Updates.Available.None.Label=There aren't any updates available + +[Updater.Main.Validation] +CurrentVersion.Warning=Your current version of DISMTools may no longer work correctly if you continue using it. It is recommended that you download the latest version manually and extract/install it manually.{crlf;}{crlf;}Do not worry. Your settings are kept intact. + +[Utilities.WMIHelper] +Wmierror.Message=WMI Error + +[WDSImageCopy.ImageInfo] +Gather.ImageFile.Message=Não foi possível recolher informações sobre este ficheiro de imagem. Motivo:{crlf;}{crlf;}{0} - {1} (HRESULT {2}) + +[WDSImageCopy.Messages] +Either.Source.Message=O ficheiro de imagem de origem não existe ou não foi indicado nenhum ficheiro de imagem. Especifique um ficheiro de imagem válido e tente novamente. +Group.Has.None.Message=Não foi especificado nenhum grupo. Especifique um grupo WDS novo ou existente e tente novamente. +Images.Have.None.Label=Não foram selecionadas imagens para adicionar ao servidor WDS. +Image.Add.Message=Certifique-se de que a imagem que está a adicionar foi preparada com o Sysprep.{crlf;}{crlf;}Se ainda não o fez, clique em Não, prepare a imagem e inicie o processo novamente. Não precisa de fechar esta janela.{crlf;}{crlf;}Pretende adicionar esta imagem ao servidor WDS? +Wizard.Support.Message=Este assistente não suporta este computador. Certifique-se de que este computador está a executar o Windows Server e que tem a função Serviços de Implementação do Windows instalada. +Boot.Image.Detected.Message=Foi detetada uma imagem de arranque. Não deve utilizá-la como imagem de instalação no servidor. +UploadSuccessful.Label=As imagens foram carregadas com êxito. +Images.Uploaded.Done.Label=As imagens não foram carregadas com êxito. + +[WDSImageCopy.Progress] +UploadingImages.Label=A carregar imagens... +Image.Uploads.Done.Label=Carregamento de imagens concluído. + +[WimScriptEditor] +ConfigList.Title=Editor de Lista de Configuração DISM +Config.List.Allows.Message=O Configuration List Editor permite-lhe excluir ficheiros e/ou pastas durante acções que lhe permitem especificar esses ficheiros, como a captura de uma imagem. Pode especificar as definições a partir da interface gráfica ou pode criar o ficheiro de configuração manualmente. Quando tiver terminado, clique no ícone Guardar. +ExclusionList.Group=Lista de exclusão +Exclusion.Exception.List=Lista de excepções de exclusão +Compression.Exclusion.List=Lista de exclusão de compressão +Add.Button=Adicionar... +Edit.Button=Editar... +Remove.Button=Remover +Config.List.Load.Title=Especificar a lista de configuração a carregar +Location.Save.Config.Title=Especificar a localização para guardar a lista de configuração +New.Tooltip=Novo +Open.Button=Abrir... +Save.Button=Guardar... +Toggle.Word.Wrap.Tooltip=Alternar quebra de linha +Help.Tooltip=Ajuda +Tools.Label=Ferramentas +Exclude.User.One.Button=Excluir pastas do OneDrive dos utilizadores... +New.Config.List.Label=Nova lista de configuração - Editor de listas de configuração DISM +ConfigList.FileTitle={0} - Editor de listas de configuração DISM +AddList.Label=Adicionar entrada de {0} +AddEntry.Label=Adicionar entrada de {0} + +[WimScriptEditor.Actions] +Save.Config.List.Prompt=Deseja guardar este ficheiro de lista de configuração? +ConfigList.Title={0} - Editor de listas de configuração DISM +ConfigList.FileTitle={0}{1} - Editor de listas de configuração DISM + +[WimScriptEditor.Close] +Save.Config.List.Prompt=Deseja guardar este ficheiro de lista de configuração? +ConfigList.FileTitle={0}{1} - Editor de listas de configuração DISM +ConfigList.Title={0} - Editor de listas de configuração DISM + +[WimScriptEditor.Editor] +ConfigList.Title={0} - Editor de listas de configuração DISM +ConfigList.ModifiedTitle={0} (modificado) - Editor de listas de configuração DISM + +[WimScriptEditor.OpenFile] +ConfigList.Title={0} - Editor de listas de configuração DISM + +[WimScriptEditor.Content] +ConfigList.Title={0} - Editor de listas de configuração DISM +ConfigList.ModifiedTitle={0} (modificado) - Editor de listas de configuração DISM + +[WindowsImage.MountMode] +Yes.Button=Sim +No.Button=Não + +[WindowsImage.MountStatus] +Ok.Button=OK +NeedsRemount.Label=Necessita de remontagem +Invalid.Label=Inválido + +[WindowsServices.Helper] +Service.Backed.Message=Current service information could not be backed up. Backups are used in case of a mistake during service management. You may continue, but at your own risk.{crlf;}{crlf;}The target image may not work correctly or at all after configuration, and you will not be able to recover it using previous service configuration, unless you had previously backed it up by yourself.{crlf;}{crlf;}Do you want to continue without backing up current service information? +Service.Backed.Up.Title=Service information could not be backed up + +[PEHelper.WDSImageGroup] +CreateFailed.Message=The specified WDS image group could not be created. +LoadFailed.Message=Could not get image groups. + +SpecifyGroup.Button=Specify a group in your WDS server... +Action.Choose.Label=Choose an action: +Already.Exists.Label=This group already exists. +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Refresh.Button=Atualizar +Ok.Button=OK +Cancel.Button=Cancelar + +[Casters.OfflineInstall.Boot] +Required.Message=É necessário um arranque para a imagem de destino para instalar completamente este pacote +NotRequired.Message=Não é necessário arrancar com a imagem de destino para instalar completamente este pacote + +[PrgSetup.LogPreview] +Packages.Add.Message=A adicionar pacotes à imagem montada...{crlf;}- Origem do pacote: C:\w100-glb{crlf;}- Operação de adição: seletiva{crlf;}- Ignorar verificações de aplicabilidade? Não{crlf;}- Impedir a adição do pacote se forem necessárias ações online? Não{crlf;}- Confirmar a imagem após as operações? Sim{crlf;}A enumerar pacotes para adicionar. Aguarde...{crlf;}Número total de pacotes: 128{crlf;}{crlf;}A processar 128 pacotes...{crlf;}Pacote 1 de 128 + +[Options.LogPreview] +Packages.Add.Message=A adicionar pacotes à imagem montada...{crlf;}- Origem do pacote: C:\w100-glb{crlf;}- Operação de adição: seletiva{crlf;}- Ignorar verificações de aplicabilidade? Não{crlf;}- Impedir a adição do pacote se forem necessárias ações online? Não{crlf;}- Confirmar a imagem após as operações? Sim{crlf;}A enumerar pacotes para adicionar. Aguarde...{crlf;}Número total de pacotes: 128{crlf;}{crlf;}A processar 128 pacotes...{crlf;}Pacote 1 de 128 + +[PrgSetup.ProgressPreview] +Wait.Label=Aguarde... +ImageIndexes.Message=Obter índices de imagem... + +[Options.ProgressPreview] +Wait.Label=Aguarde... +ImageIndexes.Message=Obter índices de imagem... + +[DynaViewer.Designer.Main] +Dyna.Log.File.Label=DynaLog Log File: +LogFiles.Filter=Log Files|*.log +Dyna.Log.Event=DynaLog Event Logs +EventTimestamp.Column=Event Timestamp +ProcessID.Column=Process ID +EventCaller.Column=Event Caller +Message.Column=Message +Browse.Button=Procurar... +Refresh.Button=Atualizar +Processed.Entries.Label=Number of processed entries: +About.ActionButton=Acerca de +LightCM.Label=Light +DarkCM.Label=Dark +SystemCM.Label=System +ColorMode.Button=Color Mode +PID.Label=PID: +EventCaller.Label=Event Caller: +Options.Heading.Label=Options: +RegexCB.Label=.* +Regex.Failure.Btn.Label=! +Aa.Label=Aa +Message.Label=Message: +Dyna.Log.Viewer.Label=DynaLog Log Viewer + +[DynaViewer.Designer.EventProps] +Num.Events.Label=Information for event of : +EventTimestamp.Label=Event Timestamp: +MethodCallers.Group=Method Callers +Field.Empty.Link=Why can the field above be empty? +Method.Function.Label=The method/function described above was called by method/function: +Logged.Method.Function.Label=The event was logged by method/function: +PID.Label=PID: +EventMessage.Label=Event Message: +NextEvent.Label=&Next Event +PreviousEvent.Label=&Previous Event +EventProps.Label=Event Properties + +[DynaViewer.Designer.Regex] +CheatsheetHelp.Label=Use the following cheatsheet when performing message queries with regular expressions: +CharacterClasses.Message=Character Classes:{crlf;}. Any character except newline{crlf;}\d Digit [0-9]{crlf;}\D Non-digit{crlf;}\w Word character [A-Za-z0-9_]{crlf;}\W Non-word character{crlf;}\s Whitespace{crlf;}\S Non-whitespace{crlf;}[abc] Any of a, b, or c{crlf;}[^abc] Not a, b, or c{crlf;}[a-z] Lowercase letter{crlf;}{crlf;}Quantifiers:{crlf;}{crlf;}* 0 or more{crlf;}- 1 or more{crlf;}{crlf;}? 0 or 1{crlf;}{lbrace;}n{rbrace;} Exactly n times{crlf;}{lbrace;}n,{rbrace;} n or more times{crlf;}{lbrace;}n,m{rbrace;} Between n and m times{crlf;}{crlf;}Anchors:{crlf;}^ Start of string/line{crlf;}$ End of string/line{crlf;}\b Word boundary{crlf;}\B Not a word boundary{crlf;}{crlf;}Groups:{crlf;}(abc) Capturing group{crlf;}(?:abc) Non-capturing group{crlf;}(?) Named group{crlf;}\1 Backreference group 1{crlf;}{crlf;}Common Examples:{crlf;}^\d+$ Only digits{crlf;}^[A-Za-z]+$ Only letters{crlf;}^\w+@\w+.\w+$ Basic email{crlf;}^\d{lbrace;}4{rbrace;}-\d{lbrace;}2{rbrace;}-\d{lbrace;}2{rbrace;}$ Date YYYY-MM-DD +PinTop.CheckBox=Pin to top +RegexCheatsheet.Label=Regular Expression Cheatsheet + +[StarterScript.Designer.Main] +New.StarterScript.Ctrl.Label=New Starter Script (Ctrl + N) +Open.StarterScript.Label=Open Starter Script File... (Ctrl + O) +Save.StarterScript.Label=Save Starter Script File... (Ctrl + S) +Save.StarterScript.Tooltip=Save Starter Script File... (Ctrl + S){crlf;}Hold down SHIFT while clicking the icon to specify the target version for the starter script while saving. +About.ToolButton=About... +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +SaveScript.Ctrl.Shift.Label=Save Starter Script File as... (Ctrl + Shift + S) +Enable.Write.Access.Button=Enable write access... +Configure.Target.Button=Configure target script version... +Change.Editor.Font.Button=Change Editor Font... +NormalizeSpacing.Button=Normalize Spacing +Starter.Scripts.Message=Starter Scripts allow you to run commands when installing Windows images with your unattended answer file. Use this application to create your own starter scripts that you can share with other people, or modify existing starter scripts to suit your needs.{crlf;}{crlf;}Use the buttons in the toolbar to create, open, and save starter scripts. +LineColumn.Label=Line, Column +WordWrap.CheckBox=Word Wrap +Import.Existing.Button=Import Existing Script... +ScriptCode.Label=Script Code: +ScriptLanguage.Label=Script Language: +Script.Description.Label=Script Description: +ScriptName.Label=Script Name: +ScriptOptions.CheckBox=Script contains configurable options +Starter.Scripts.Dtss.Filter=Starter Scripts|*.dtss +BatchScripts.Filter=Batch Scripts|*.bat;*.cmd|PowerShell scripts|*.ps1|Visual Basic Scripts|*.vbs;*.vbe;*.wsf;*.wsc|JScript Scripts|*.js;*.jse +Import.Existing.Script.Title=Import Existing Script +StarterScript.Editor.Label=Starter Script Editor + +[StarterScript.Designer.Version] +Ok.Button=OK +Cancel.Button=Cancelar +ConfiguredScript.Message=This starter script can be configured to work with specific versions of DISMTools and the Starter Script Editor. Choose the version that you want to target with this script and click OK: +Target.Future08.RadioButton=This starter script targets DISMTools 0.8 and future versions +Target.Legacy073.RadioButton=This starter script targets DISMTools 0.7.3 +TargetVersion.Label=Choose target version for this script + +[ThemeDesigner.Designer.Main] +ThemeColors.Group=Theme Colors +OptionFour.Label=4 +OptionThree.Label=3 +OptionTwo.Label=2 +OptionOne.Label=1 +Change.Button=Alterar... +Bg.Color.Inner.Label=Background Color for Inner Sections: +ForegroundColor.Label=Foreground Color: +Inactive.Colors.Label=(Inactive colors are calculated by the theme engine) +AccentColors.Label=Accent Colors: +BackgroundColor.Label=Background Color: +DISM.Tools.Dark.CheckBox=DISMTools should use dark mode glyphs +ThemeName.Label=Theme Name: +See.Changes.Live.Label=See your changes live on the preview section below: +NewTheme.Label=New Theme +Open.Theme.File.Button=Open Theme File... +Save.Theme.File.Button=Save theme file... +About.Button=About... +Value.Option4.Label=4 +Value.Option3.Label=3 +Value.Option2.Label=2 +Heuristic.Reasoning.Message=Heuristic reasoning is reasoning not regarded as final and strict but as provisional and plausible only, whose purpose is to discover the solution of the present problem. We are often obliged to use heuristic reasoning. We shall attain complete certainty when we shall obtain the complete solution, but before obtaining certainty we must often be satisfied with a more or less plausible guess. We may need the provisional before we attain the final. +Inactivecontrol.Label=INACTIVE CONTROL +Activecontrol.Label=ACTIVE CONTROL +Label.Inner.Section.Label=Label in Inner Section +Value.Option1.Label=1 +TestControl.Label=Test Control 1 +Theme.Files.Ini.Filter=Theme Files|*.ini +SaveFile.Filter=Theme Files|*.ini +Change.Color.Mode.Button=Change Color Mode... +Light.Label=Light +Dark.Label=Dark +System.Label=System +Enable.Write.Access.Button=Enable write access... +DISM.Tools.Theme.Label=DISMTools Theme Designer + +[Updater.Designer.Main] +DISM.Tools.Update.Label=DISMTools Update Check System - Version +ProductUpdates.Label=Product updates +Update.Button=Update +View.Release.Notes.Link=View release notes +VersionInfo.Label=Version information +Close.Open.Message=Please close any open DISMTools windows, while saving any projects loaded, and then click {quot;}Update{quot;} +NewVersion.Label=There is a new version available to download and install: +Progress.Label=Progresso +CheckingUpdates.Label=Checking for updates... +Launch.Ready.CheckBox=Launch when ready +Finishing.Update.Label=Finishing update installation +InstallingUpdate.Label=Installing the update +Prepare.Update.Install.Label=Preparing update installation +Downloading.Update.Label=Downloading the update +Update.Take.Time.Label=The update may take some time to install. +Wait.Update.Label=Please wait while we update your copy of DISMTools. This may take some time. +Updating.DISM.Tools.Label=Updating DISMTools... +Launch.Button=Launch +Version.Come.New.Message=This version may come with new settings you may not have set previously. Your old settings file will be migrated to this version. +DISM.Tools.Updated.Label=DISMTools has been updated successfully. You can now enjoy the new features of this release. +UpdateComplete.Label=Update complete + +[PEHelper.Designer.Main] +WhatWant.Label=What do you want to do? +Install.Operating.Link=Install an Operating System +Restart.Install.Media.Link=Restart to Installation Media +StartPXE.Link=Start a PXE Helper Server for Network Installation +Exit.Button=Sair +Explore.Contents.Disc.Link=Explore contents of this disc +Prepare.System.Image.Link=Prepare System for Image Capture +PE.Helper.Message=PE Helper Scripts and Components (c) 2024-2026 CodingWonders SoftwareCompilation Scripts (c) 2022 CT Tech Group LLCFOG PowerShell API (c) 2020 JJ Fullmer +StartPXE.Label=Start a PXE Helper Server for Network Installation +Back.Button=Voltar +Copy.Install.Image.Link=Copy installation image to WDS server +Copy.Boot.Image.Link=Copy boot image to WDS server +StartPXE.PXEFOG.Link=Start PXE Helper Server for FOG +StartPXE.PXE.Windows.Link=Start PXE Helper Server for Windows Deployment Services +DISM.Tools.PE.Label=DISMTools Preinstallation Environment + +[PEHelper.Designer.ServerPort] +Ok.Button=OK +Cancel.Button=Cancelar +Components.Disc.Rely.Message=Server components in this disc rely on ports to listen to requests from clients. If a port is in use by another program or service, you can use this dialog to specify a different port for the server components.{crlf;}{crlf;}The port you specify here will be used until you close the main menu. When you click OK, the server component will be launched using that port. Otherwise, it will be launched using either the default port or the previously configured port. +Port.Server.Label=Use the following port for server components: +Default.Button=Default +Check.Button=Check if this port is in use +ServerComponents.Label=Specify a port for server components + +[PEHelper.Designer.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +Cancel.Link=Cancel launch of this tool +ManualMode.Link=Launch in Manual mode (advanced) +AutomaticMode.Link=Launch in Automatic mode (recommended) +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other preferences to new user profiles +PrepareCapture.Label=Prepare System for Image Capture + +[PEHelper.Designer.WDSArch] +Okbutton.Button=OK +CancelButton.Button=Cancelar +Architecture.Label=Target architecture: +Architecture.Label.Label=Specify architecture for target WDS boot image + +[PEHelper.Designer.WDSGroup] +Ok.Button=OK +Cancel.Button=Cancelar +Action.Choose.Label=Choose an action: +Refresh.Button=Atualizar +Upload.RadioButton=Upload this image to the following WDS image group: +CreateGroup.RadioButton=Create the following WDS image group for me and upload this image there: +Already.Exists.Label=This group already exists. +SpecifyGroup.Button=Specify a group in your WDS server... + +[PEHelper.Sysprep] +Responsibility.Message=The Sysprep Preparation Tool, responsible for preparing systems for image capture, can operate in 2 modes: Automatic mode and Manual mode.{crlf;}{crlf;}- Automatic mode performs checks and, if said checks pass, prepares and generalizes your computer automatically. You don't need to interact with the tool, unless checks fail or complete with warnings. A default set of options for Sysprep will also be used{crlf;}- Manual mode lets you configure Sysprep launch settings and lets you go through each step of the tool at your own pace. This is recommended for advanced users{crlf;}{crlf;}Select the mode you want to use: +AutomaticMode.Link=Launch in Automatic mode (recommended) +ManualMode.Link=Launch in Manual mode (advanced) +Cancel.Link=Cancel launch of this tool +CaptureImage.CheckBox=Capture image after preparing the system +CopyRegistry.CheckBox=Copy registry changes and other current preferences for new user profiles + +[Progress.LogText] +Of.Word={space;}de{space;} +Creating.Project.Structure=A criar a estrutura do projeto... +Project.Created.Successfully=O projeto foi criado com sucesso. +An.Error.Has.Occurred.Please.Read.The.Details=An error has occurred. Please read the details below:{space;} +Debugging.Information=Debugging information:{space;} +Appending.Mount.Directory.To.Specified.Target.Image=Appending mount directory to specified target image... +Options=Opções: +Source.Image.Directory=- Source image directory:{space;} +Destination.Image.File=- Destination image file:{space;} +Destination.Image.Name=- Destination image name:{space;} +Destination.Image.Description=- Destination image description:{space;} +None.Specified=(nenhum especificado) +Configuration.List.File.Not.Specified=- Configuration list file: not specified +Configuration.List.File=- Configuration list file:{space;} +WARNING.The.Configuration.List.File.Does.Not.Exist={space;}{space;}{space;}WARNING: the configuration list file does not exist in the file system. Skipping file... +Append.Image.With.WIMBOOT.Configuration=- Append image with WIMBoot configuration?{space;} +Yes=Sim +No=Não +Make.Image.Bootable=- Make image bootable?{space;} +Verify.Image.Integrity=- Verify image integrity?{space;} +Check.For.File.Errors=- Check for file errors?{space;} +Use.The.Reparse.Point.Tag.Fix=- Use the reparse point tag fix?{space;} +Capture.Extended.Attributes=- Capture extended attributes?{space;} +Gathering.Error.Level=A recolher o nível de erro... +Error.Level.0x={space;}{space;}{space;}{space;}Error level : 0x +Error.Level={space;}{space;}{space;}{space;}Error level :{space;} +Applying.Image=A aplicar a imagem... +Source.Image.File=- Source image file:{space;} +Index.To.Apply=- Index to apply:{space;} +Target.Directory=- Target directory:{space;} +Split.FFU.SFU.File.Pattern.Not.Specified.Not=- Split FFU (SFU) file pattern: not specified/not using SFU file +Split.FFU.SFU.File.Pattern=- Split FFU (SFU) file pattern:{space;} +Verify.Image.Integrity.Yes=- Verify image integrity? Yes +Verify.Image.Integrity.No=- Verify image integrity? No +Check.For.File.Errors.Yes=- Check for file errors? Yes +Check.For.File.Errors.No=- Check for file errors? No +Use.Reparse.Point.Tag.Fix.Yes=- Use reparse point tag fix? Yes +Use.Reparse.Point.Tag.Fix.No=- Use reparse point tag fix? No +Split.WIM.SWM.File.Pattern.Not.Specified.Not=- Split WIM (SWM) file pattern: not specified/not using SWM file +Split.WIM.SWM.File.Pattern=- Split WIM (SWM) file pattern:{space;} +Validate.For.Trusted.Desktop.Yes=- Validate for Trusted Desktop? Yes +Validate.For.Trusted.Desktop.No.Not.Supported=- Validate for Trusted Desktop? No/Not supported +Apply.Using.WIMBOOT.Configuration.Yes=- Apply using WIMBoot configuration? Yes +Apply.Using.WIMBOOT.Configuration.No=- Apply using WIMBoot configuration? No +Use.Compact.Mode.Yes=- Use Compact mode? Yes +Use.Compact.Mode.No=- Use Compact mode? No +Apply.Using.Extended.Attributes.Yes=- Apply using extended attributes? Yes +Apply.Using.Extended.Attributes.No=- Apply using extended attributes? No +Capturing.Directory=A capturar o diretório... +Source.Directory=- Source directory:{space;} +Destination.Image=- Destination image:{space;} +Captured.Image.Name=- Captured image name:{space;} +Captured.Image.Description.None.Specified=- Captured image description: none specified +Captured.Image.Description=- Captured image description:{space;} +Compression.Type.None=- Compression type: none +Compression.Type.Default=- Compression type: default +Capturing.Image=A capturar a imagem... +Compression.Type.Fast=- Compression type: fast +Compression.Type.Maximum=- Compression type: maximum +Mark.Image.As.Bootable.Yes=- Mark image as bootable? Yes +Mark.Image.As.Bootable.No=- Mark image as bootable? No +Check.Image.Integrity.Yes=- Check image integrity? Yes +Check.Image.Integrity.No=- Check image integrity? No +Verify.File.Errors.Yes=- Verify file errors? Yes +Verify.File.Errors.No=- Verify file errors? No +Use.The.Reparse.Point.Tag.Fix.Yes=- Use the Reparse Point tag fix? Yes +Use.The.Reparse.Point.Tag.Fix.No=- Use the Reparse Point tag fix? No +Append.With.WIMBOOT.Configuration.Yes=- Append with WIMBoot configuration? Yes +Append.With.WIMBOOT.Configuration.No=- Append with WIMBoot configuration? No +Capture.Extended.Attributes.Yes=- Capture extended attributes? Yes +Capture.Extended.Attributes.No=- Capture extended attributes? No +Cleaning.Up.Mount.Points=Cleaning up mount points... +This.Can.Take.Some.Time.Depending.On.The=This can take some time, depending on the drives connected to this system. +Saving.Changes=A guardar as alterações... +Mount.Directory=- Mount directory:{space;} +Removing.Volume.Images.From.File=Removing volume images from file... +Source.Image=- Source image:{space;} +Removing.Volume.Images=Removing volume images... +Error.Level.2={space;}Error level :{space;} +Error.Level.0x.2={space;}Error level : 0x +Exporting.The.Specified.Image.To.A.Destination.Image=Exporting the specified image to a destination image... +Source.Image.Index=- Source image index:{space;} +Compression.Type.No.Compression=- Compression type: no compression +Compression.Type.Fast.Compression=- Compression type: fast compression +Compression.Type.Maximum.Compression=- Compression type: maximum compression +Compression.Type.ESD.Conversion.Recovery=- Compression type: ESD conversion (recovery) +Mark.The.Image.As.Bootable=- Mark the image as bootable?{space;} +Check.Image.Integrity.Before.Exporting.The.Image=- Check image integrity before exporting the image?{space;} +NOTE.The.Source.Image.Contains.An.Asterisk.Sign=NOTE: the source image contains an asterisk sign (*) in the file name to merge all SWM files +Mounting.Image=A montar a imagem... +Image.File=- Image file:{space;} +Image.Index=- Image index:{space;} +Mount.Point=- Mount point:{space;} +Mount.Image.With.Read.Only.Permissions.Yes=- Mount image with read-only permissions? Yes +Mount.Image.With.Read.Only.Permissions.No=- Mount image with read-only permissions? No +Optimize.Mount.Time.Yes=- Optimize mount time? Yes +Optimize.Mount.Time.No=- Optimize mount time? No +Optimizing.Windows.Image=Optimizing Windows image... +Source.Image.To.Optimize=- Source image to optimize:{space;} +Partition.To.Optimize=- Partition to optimize:{space;} +Default.Partition.In.The.FFU.Will.Be.Optimized={space;}(Default partition in the FFU will be optimized) +Getting.Error.Level=Getting error level... +Optimization.Mode=- Optimization mode:{space;} +Reduce.Online.Configuration.Time=Reduce online configuration time +Prepare.Image.For.WIMBOOT.System=Prepare image for WIMBoot system +Reloading.Servicing.Session=Reloading servicing session... +Splitting.FFU.File.Into.SFU.Files=Splitting FFU file into SFU files... +Source.Image.File.To.Split=- Source image file to split:{space;} +Maximum.Size.Of.The.Split.Images.In.MB=- Maximum size of the split images (in MB):{space;} +Name.And.Path.Of.The.Target.SFU.File=- Name and path of the target SFU file:{space;} +Check.Integrity.Before.Splitting.This.Image=- Check integrity before splitting this image?{space;} +Do.Note.That.If.The.Image.Contains.A=Do note that, if the image contains a large file that can't fit within the maximum size, a SFU file may be larger than the rest, to accommodate it. +Splitting.WIM.File.Into.SWM.Files=Splitting WIM file into SWM files... +Name.And.Path.Of.The.Target.SWM.File=- Name and path of the target SWM file:{space;} +Do.Note.That.If.The.Image.Contains.A.2=Do note that, if the image contains a large file that can't fit within the maximum size, a SWM file may be larger than the rest, to accommodate it. +Unmounting.Image.File.From.Mount.Point=Unmounting image file from mount point... +Unmount.Operation.Commit=- Unmount operation: Commit +Unmount.Operation.Discard=- Unmount operation: Discard +Append.Changes.To.New.Index.Yes=- Append changes to new index? Yes +Append.Changes.To.New.Index.No=- Append changes to new index? No +Package.Name=- Package name:{space;} +Package.Description=- Package description:{space;} +Package.Release.Type=- Package release type:{space;} +Package.Is.Applicable.To.This.Image=- Package is applicable to this image?{space;} +Package.Is.Already.Installed=- Package is already installed?{space;} +Total.Number.Of.Packages=Total number of packages:{space;} +Exception=Exception{space;} +Has.Occurred.While.Enumerating.Packages.Enumerating.Packages.In={space;}has occurred while enumerating packages. Enumerating packages in the top folder... +Total.Number.Of.Packages.1=Total number of packages: 1 +Adding.Packages.To.Mounted.Image=Adding packages to mounted image... +Package.Source=- Package source:{space;} +Addition.Operation.Recursive=- Addition operation: recursive +Addition.Operation.Selective=- Addition operation: selective +Ignore.Applicability.Checks.Yes=- Ignore applicability checks? Yes +Ignore.Applicability.Checks.No=- Ignore applicability checks? No +Prevent.Package.Addition.If.Online.Actions.Need.To=- Prevent package addition if online actions need to be performed? Yes +NOTE.If.The.Mounted.Image.Requires.That.Online=NOTE: if the mounted image requires that online actions be performed, all packages might fail installation; but the operation might still be successful +Prevent.Package.Addition.If.Online.Actions.Need.To.2=- Prevent package addition if online actions need to be performed? No +Commit.Image.After.Operations.Are.Done.Yes=- Commit image after operations are done? Yes +Commit.Image.After.Operations.Are.Done.No=- Commit image after operations are done? No +Enumerating.Packages.To.Add.Please.Wait=Enumerating packages to add. Please wait... +Processing=Processing{space;} +Packages={space;}packages... +Some.Packages.Require.A.System.Restart.To.Be=Some packages require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Package=Package{space;} +Package.Is.Already.Added.Skipping.Installation.Of.This=Package is already added. Skipping installation of this package... +Package.Is.Not.Applicable.To.This.Image.Skipping=Package is not applicable to this image. Skipping installation of this package... +The.Package.About.To.Be.Added.Is.A=The package about to be added is a MSU file. Continuing... +Processing.Package=Processing package... +Error.Level.3={space;}Error level:{space;} +Gathering.Error.Level.For.Selected.Packages=Gathering error level for selected packages... +Package.No=- Package no.{space;} +The.Package.About.To.Be.Added.Is.A.2=The package about to be added is a Microsoft Update Manifest (MUM) file. +Removing.Packages.From.Mounted.Image=Removing packages from mounted image... +Enumerating.Packages.To.Remove.Please.Wait=Enumerating packages to remove. Please wait... +Amount.Of.Packages.To.Remove=Amount of packages to remove:{space;} +Package.State.Installed=- Package state: installed +Package.State.An.Uninstall.Is.Pending=- Package state: an uninstall is pending +Package.State.An.Install.Is.Pending=- Package state: an install is pending +Processing.Package.Removal=Processing package removal... +This.Package.Can.T.Be.Removed.Skipping.Removal=This package can't be removed. Skipping removal of this package... +Package.State=- Package state:{space;} +Enabling.Features=Enabling features... +Use.Parent.Package.To.Enable.Features.Yes=- Use parent package to enable features? Yes +Use.Parent.Package.To.Enable.Features.No=- Use parent package to enable features? No +Parent.Package.Name.Not.Specified=- Parent package name: not specified +Parent.Package.Name=- Parent package name:{space;} +Use.Feature.Source.Yes=- Use feature source? Yes +Use.Feature.Source.No=- Use feature source? No +Feature.Source.Not.Specified=- Feature source: not specified +Feature.Source=- Feature source:{space;} +Enable.All.Parent.Features.Yes=- Enable all parent features? Yes +Enable.All.Parent.Features.No=- Enable all parent features? No +Contact.Windows.Update.Yes=- Contact Windows Update? Yes +Contact.Windows.Update.No.The.System.Is.In=- Contact Windows Update? No, the system is in Safe Mode +Contact.Windows.Update.No.This.Is.Not.An=- Contact Windows Update? No, this is not an online installation +Contact.Windows.Update.No=- Contact Windows Update? No +Commit.Image.After.Enabling.Features.Yes=- Commit image after enabling features? Yes +Commit.Image.After.Enabling.Features.No=- Commit image after enabling features? No +Enumerating.Features.To.Enable=Enumerating features to enable... +Total.Number.Of.Features.To.Enable=Total number of features to enable:{space;} +Feature=Feature{space;} +Feature.Name=- Feature name:{space;} +Feature.Description=- Feature description:{space;} +Gathering.Error.Level.For.Selected.Features=Gathering error level for selected features... +Feature.No=- Feature no.{space;} +Some.Features.Require.A.System.Restart.To.Be=Some features require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Disabling.Features=Disabling features... +Use.Parent.Package.To.Disable.Features.Yes=- Use parent package to disable features? Yes +Use.Parent.Package.To.Disable.Features.No=- Use parent package to disable features? No +Remove.Feature.Manifest.Yes=- Remove feature manifest? Yes +Remove.Feature.Manifest.No=- Remove feature manifest? No +Enumerating.Features.To.Disable=Enumerating features to disable... +Total.Number.Of.Features.To.Disable=Total number of features to disable:{space;} +Reverting.Pending.Servicing.Actions=Reverting pending servicing actions... +Cleaning.Up.Service.Pack.Backup.Files=Cleaning up Service Pack backup files... +Hide.Service.Packs.From.The.Installed.Updates.List=- Hide Service Packs from the Installed Updates list?{space;} +Cleaning.Up.The.Component.Store=Cleaning up the component store... +Perform.Superseded.Component.Base.Reset=- Perform superseded component base reset?{space;} +Defer.Long.Running.Operations=- Defer long-running operations?{space;} +Analyzing.The.Component.Store=Analyzing the component store... +Checking.The.Component.Store.Health=Checking the component store health... +Scanning.The.Component.Store=Scanning the component store... +Repairing.The.Component.Store=Repairing the component store... +Use.Different.Source=- Use different source?{space;} +Yes.2=Yes ( +Limit.Windows.Update.Access=- Limit Windows Update access?{space;} +No.This.Is.Not.An.Online.Installation=No, this is not an online installation +The.System.Is.In.Safe.Mode=, the system is in Safe Mode +Adding.Provisioning.Package.To.The.Image=Adding provisioning package to the image... +Provisioning.Package=- Provisioning package:{space;} +Catalog.File=- Catalog file:{space;} +None.Specified.2=nenhum especificado +Commit.Image.After.Adding.Provisioning.Package=- Commit image after adding provisioning package?{space;} +Adding.Provisioned.APPX.Packages=Adding provisioned AppX packages... +Use.A.License.File.For.APPX.Packages.Yes=- Use a license file for AppX packages? Yes +License.File=- License file:{space;} +Use.A.License.File.For.APPX.Packages.No=- Use a license file for AppX packages? No +License.File.Not.Using=- License file: not using +Use.A.Custom.Data.File.For.APPX.Packages=- Use a custom data file for AppX packages? Yes +Custom.Data.File=- Custom data file:{space;} +Use.A.Custom.Data.File.For.APPX.Packages.2=- Use a custom data file for AppX packages? No +Custom.Data.File.Not.Using=- Custom data file: not using +Use.All.Regions.For.APPX.Packages.Yes=- Use all regions for AppX packages? Yes +Package.Regions.All=- Package regions: all +Use.All.Regions.For.APPX.Packages.No=- Use all regions for AppX packages? No +Package.Regions=- Package regions:{space;} +Commit.Image.After.Adding.APPX.Packages.Yes=- Commit image after adding AppX packages? Yes +Commit.Image.After.Adding.APPX.Packages.No=- Commit image after adding AppX packages? No +Enumerating.APPX.Packages.To.Add=Enumerating AppX packages to add... +Total.Number.Of.Packages.To.Add=Total number of packages to add:{space;} +APPX.Package.File=- AppX package file:{space;} +Application.Name=- Application name:{space;} +Application.Publisher=- Application publisher:{space;} +Application.Version=- Application version:{space;} +The.Application.About.To.Be.Added.Is.An=The application about to be added is an encrypted file. Since the program is managing the active installation, a PowerShell command will be run. +The.Application.About.To.Be.Added.Is.An.2=The application about to be added is an encrypted file. Encrypted packages can only be added to active installations. Skipping this package... +Warning.The.License.File.Does.Not.Exist.Continuing=Warning: the license file does not exist. Continuing without one... +Do.Note.That.If.This.App.Requires.A={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Do note that, if this app requires a license file, it may fail addition. +Also.This.May.Compromise.The.Image={space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}{space;}Also, this may compromise the image. +The.Following.Dependency.Packages.Will.Be.Installed.Alongside=- The following dependency packages will be installed alongside this application: +Dependency={space;}{space;}{space;}{space;}- Dependency:{space;} +Warning.The.Dependency=Warning: the dependency +Does.Not.Exist.In.The.File.System.Skipping=does not exist in the file system. Skipping dependency... +Warning.The.Custom.Data.File.Does.Not.Exist=Warning: the custom data file does not exist. Continuing without one... +Gathering.Error.Level.For.Selected.APPX.Packages=Gathering error level for selected AppX packages... +Application.Is.Registered.To.A.User.No=- Application is registered to a user? No +Application.Is.Registered.To.A.User.Yes=- Application is registered to a user? Yes +The.Removal.Of.This.Application.May.Require.You={space;}{space;}The removal of this application may require you to use PowerShell to completely remove it +A.PowerShell.Helper.Will.Be.Used.To.Remove=A PowerShell helper will be used to remove AppX packages. Please wait... +Log.Off.For.The.Deprovisioning.Of.Applications.To=Log off for the deprovisioning of applications to be fully carried out. +Removing.Provisioned.APPX.Packages=Removing provisioned AppX packages... +Enumerating.APPX.Packages.To.Remove=Enumerating AppX packages to remove... +Total.Number.Of.Packages.To.Remove=Total number of packages to remove:{space;} +Display.Name=- Display name:{space;} +Setting.The.Keyboard.Layered.Driver=Setting the keyboard layered driver... +Current.Keyboard.Layered.Driver=- Current keyboard layered driver:{space;} +New.Keyboard.Layered.Driver=- New keyboard layered driver:{space;} +Adding.Capabilities.To.Mounted.Image=Adding capabilities to mounted image... +Use.A.Source.For.Capability.Addition=- Use a source for capability addition?{space;} +Capability.Source=- Capability source:{space;} +No.Source.Has.Been.Provided=No source has been provided +Limit.Access.To.Windows.Update=- Limit access to Windows Update?{space;} +Commit.Image.After.Adding.Capabilities=- Commit image after adding capabilities?{space;} +Warning.The.Specified.Source.Does.Not.Exist.In=Warning: the specified source does not exist in the file system, and it will be skipped +Enumerating.Capabilities.To.Add.Please.Wait=Enumerating capabilities to add. Please wait... +Total.Number.Of.Capabilities=Total number of capabilities:{space;} +Capability=Capability{space;} +Capability.Identity=- Capability identity:{space;} +Capability.Name=- Capability name:{space;} +Capability.Description=- Capability description:{space;} +Gathering.Error.Level.For.Selected.Capabilities=Gathering error level for selected capabilities... +Capability.No=- Capability no.{space;} +Some.Capabilities.Require.A.System.Restart.To.Be=Some capabilities require a system restart to be fully processed. Save your work, close your programs, and restart when ready +Removing.Capabilities.From.Mounted.Image=Removing capabilities from mounted image... +Enumerating.Capabilities.To.Remove.Please.Wait=Enumerating capabilities to remove. Please wait... +Setting.The.New.Image.Edition=Setting the new image edition... +New.Edition=- New edition:{space;} +Will.The.EULA.Be.Copied=- Will the EULA be copied?{space;} +Yes.To.The.Following.Destination=Yes, to the following destination:{space;} +Will.The.EULA.Be.Accepted=- Will the EULA be accepted?{space;} +Yes.With.The.Following.Product.Key=Yes, with the following product key:{space;} +Setting.The.New.Product.Key=Setting the new product key... +New.Product.Key=- New product key:{space;} +Adding.Driver.Packages.To.Mounted.Image=Adding driver packages to mounted image... +Force.Installation.Of.Unsigned.Drivers=- Force installation of unsigned drivers?{space;} +Commit.Image.After.Adding.Driver.Packages=- Commit image after adding driver packages?{space;} +Warning.The.Option.To.Force.Installation.Of.Unsigned=Warning: the option to force installation of unsigned drivers has been checked. Do note that unsigned drivers might cause instability on the resulting Windows image. +Enumerating.Drivers.To.Add.Please.Wait=Enumerating drivers to add. Please wait... +Total.Number.Of.Drivers=Total number of drivers:{space;} +Driver=Driver{space;} +Hardware.Description=- Hardware description:{space;} +Hardware.ID=- Hardware ID:{space;} +Additional.IDs=- Additional IDs +Compatible.IDs={space;}{space;}- Compatible IDs:{space;} +Excluded.IDs={space;}{space;}- Excluded IDs:{space;} +Hardware.Manufacturer=- Hardware manufacturer:{space;} +Hardware.Architecture=- Hardware architecture:{space;} +This.Driver.File.Targets.More.Than.10.Devices=This driver file targets more than 10 devices. To avoid creating log files large in size, we will not show information of this driver package, and will proceed anyway. +If.You.Want.To.Get.Information.Of.This=If you want to get information of this driver package, go to Commands > Drivers > Get driver information > I want to get information about driver files, and specify this driver file: +We.Couldn.T.Get.Information.Of.This.Driver=We couldn't get information of this driver package. Proceeding anyway... +The.Driver.Package.Currently.About.To.Be.Processed=The driver package currently about to be processed is a folder, so information about it can't be obtained. Proceeding anyway... +This.Folder.Will.Be.Scanned.Recursively.Driver.Addition=This folder will be scanned recursively. Driver addition may take a longer time... +Gathering.Error.Level.For.Selected.Drivers=Gathering error level for selected drivers... +Driver.No=- Driver no.{space;} +Removing.Driver.Packages.From.Mounted.Image=Removing driver packages from mounted image... +Getting.Image.Drivers.This.May.Take.Some.Time=Getting image drivers. This may take some time... +Enumerating.Drivers.To.Remove.Please.Wait=Enumerating drivers to remove. Please wait... +Exporting.Drivers.To.Specified.Folder=Exporting drivers to specified folder... +Export.Target=- Export target:{space;} +Export.All.Drivers.Or.Just.Those.With.Matching=- Export all drivers, or just those with matching class names?{space;} +All.Drivers=Todos os controladores +Drivers.With.Matching.Class.Name=Drivers with matching class name +If.Not.All.Drivers.Are.Exported.Which.Class=- If not all drivers are exported, which class name is used for drivers that will be exported?{space;} +Driver.S.Will.Be.Exported.To.The.Destination={space;}driver(s) will be exported to the destination +Exporting.Driver.File=Exporting driver file{space;} +Getting.Image.Drivers=Getting image drivers... +Importing.Third.Party.Drivers=Importing third party drivers... +Driver.Import.Source.Windows.Image=- Driver import source: Windows image ( +Driver.Import.Source.Active.Installation=- Driver import source: active installation +Driver.Import.Source.Offline.Installation=- Driver import source: offline installation ( +Creating.Temporary.Folder.For.Driver.Exports=Creating temporary folder for driver exports... +The.Temporary.Folder.Could.Not.Be.Created.See=The temporary folder could not be created. See below for reasons why: +Exporting.Third.Party.Drivers.From.Import.Source=Exporting third-party drivers from import source... +Importing.Third.Party.Drivers.From.The.Temporary.Export=Importing third-party drivers from the temporary export directory to the destination image... +Deleting.Temporary.Export.Directory=Deleting temporary export directory... +We.Couldn.T.Delete.The.Temporary.Export.Directory=We couldn't delete the temporary export directory. You'll need to delete the{space;} +Export.Temp=export_temp +Directory.Manually={space;}directory manually. +Published.Name=- Published name:{space;} +Provider.Name=- Provider name:{space;} +Class.Name=- Class name:{space;} +Class.Description=- Class description:{space;} +Class.GUID=- Class GUID:{space;} +Version.And.Date=- Version and date:{space;} +Is.Part.Of.The.Windows.Distribution=- Is part of the Windows distribution?{space;} +Is.Critical.To.The.Boot.Process=- Is critical to the boot process?{space;} +Warning.This.Driver.Package.Is.Part.Of.The=Warning: this driver package is part of the Windows distribution. Some areas may no longer work after this driver has been removed +Warning.This.Driver.Package.Is.Critical.To.The=Warning: this driver package is critical to the boot process. The target image may no longer boot or work correctly after this driver has been removed +Applying.Unattended.Answer.File.Options=Applying unattended answer file. Options: +Unattended.Answer.File=- Unattended answer file:{space;} +Creating.Directories.And.Copying.Files=Creating directories and copying files... +The.Unattended.Answer.File.Has.Been.Successfully.Copied=The unattended answer file has been successfully copied. +Setting.The.Windows.PE.Target.Path=Setting the Windows PE target path... +New.Target.Path=- New target path:{space;} +Setting.The.Windows.PE.Scratch.Space=Setting the Windows PE scratch space... +New.Scratch.Space.Amount=- New scratch space amount:{space;} +Setting.The.Amount.Of.Days.An.Uninstall.Can=Setting the amount of days an uninstall can happen... +Number.Of.Days=Number of days:{space;} +Removing.The.Ability.To.Revert.To.An.Old=Removing the ability to revert to an old installation of Windows... +Preparing.Operating.System.Rollback=Preparing operating system rollback... +Converting.Image=Converting image... +Index.To.Convert=- Index to convert:{space;} +Image.Conversion.Mode.Windows.Imaging.WIM.Electronic.Software=- Image conversion mode: Windows Imaging (WIM) --> Electronic Software Distribution (ESD) +Image.Conversion.Mode.Electronic.Software.Distribution.ESD.Windows=- Image conversion mode: Electronic Software Distribution (ESD) --> Windows Imaging (WIM) +Merging.SWM.Files.Into.A.WIM.File=Merging SWM files into a WIM file... +Target.Index=- Target index:{space;} +Switching.Image.Indexes=Switching image indexes... +Target.Mount.Directory=- Target mount directory:{space;} +Target.Image.Index=- Target image index:{space;} +Commit.Source.Index.Yes=- Commit source index? Yes +Commit.Source.Index.No=- Commit source index? No +Could.Not.Commit.Changes.To.The.Image.Discarding=Could not commit changes to the image. Discarding changes... +Mounting.Image.Index=Mounting image (index:{space;} +Replacing.FFU.File=Replacing FFU file{space;} +With={space;}with{space;} +The.FFU.File.Has.Been.Successfully.Replaced=The FFU file has been successfully replaced. +The.FFU.File.Could.Not.Be.Replaced=The FFU file could not be replaced:{space;} +Warning.The.Contents.Of.The.Log.Window.Could=Warning: the contents of the log window could not be saved to the log file. Reason:{space;} +The.Volume.Images.Have.Been.Deleted.If.You=The volume images have been deleted. If you want to remount this image into a DISMTools project, choose the{space;} +Mount.Image=Mount image +Option.Or.Use.This.Command.If.You.Want={space;}option, or use this command if you want to mount it elsewhere: +DISM.Mount.Image.Imagefile={space;}{space;}dism /mount-image /imagefile: +Index.Preferred.Index.Mountdir.Preferred.Mountpoint={space;}/index: /mountdir: +The.Specified.Image.Is.Already.Mounted.This.Command=The specified image is already mounted. This command works for{space;} +Orphaned=orphaned +Images={space;}images +The.Program.Tried.To.Save.Changes.To.An=The program tried to save changes to an image that was mounted as read-only.{space;} +To.Solve.This.Close.This.Dialog.And.Click=To solve this, close this dialog, and click{space;} +Tools.Remount.Image.With.Write.Permissions=Tools > Remount image with write permissions +Do.Note.That.If.The.Image.Came.From=Do note that, if the image came from an installation medium, you may need to copy the source file to perform modifications to it. +The.Program.Tried.To.Unmount.The.Image.But=The program tried to unmount the image, but some applications or processes have opened files or directories of the image. +Make.Sure.No.Application.Or.Process.Is.Using=Make sure no application or process is using the directories or files of the image. +If.The.Error.Occurred.At.The.End.Of=If the error occurred at the end of the operation (e.g., at 100%), and you were trying to save the changes; they might already be saved, and can be safe to continue discarding changes. +The.Mounted.Image.Cannot.Be.Committed.Back.Into=The mounted image cannot be committed back into the source file. +A.Partial.Unmount.Might.Have.Happened.Or.The=A partial unmount might have happened, or the image was still being mounted. +If.The.Image.Was.Unmounted.Whilst.Saving.Changes=If the image was unmounted whilst saving changes, the commit probably succeeded. Please validate this. If this is the case, proceed with unmounting the image discarding changes. +The.Source.File.Comes.From.A.Read.Only=The source file comes from a read-only source. You cannot mount it with read-write permissions. +Please.Re.Specify.The.Image.In.The.Mount=Please re-specify the image in the mount dialog whilst checking the{space;} +Read.Only=Só de leitura +Check.Box.You.Can.Also.Try.Copying.The={space;}check box. You can also try copying the source image to a folder with read-write permissions. +There.Is.Essential.Data.That.Was.Not.Picked=There is essential data that was not picked internally by the operation. This may be a bug in the software or a feature may be incomplete. +No.Packages.Have.Been.Added.Successfully.Try.Looking=No packages have been added successfully. Try looking up the error codes on the Internet +No.Packages.Have.Been.Removed.Successfully.Try.Looking=No packages have been removed successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Enabled.Successfully.Try.Looking=No features have been enabled successfully. Try looking up the error codes on the Internet +No.Features.Have.Been.Disabled.Successfully.Try.Looking=No features have been disabled successfully. Try looking up the error codes on the Internet +Either.This.Operation.Has.Failed.Or.Some.Drivers=Either this operation has failed or some drivers were not installed. Consider reloading this project or mode to see whether there are driver changes. +If.There.Are.Driver.Changes.Consider.Reading.The=If there are driver changes, consider reading the driver installation logs, stored in the INF directory of the target image. Otherwise, export the drivers you want to add from the source image and add them to the target image manually. +You.Can.Also.Manually.Customize.The.Export.Directory=You can also manually customize the export directory by deleting the drivers you don't need. This may be another way to fix this problem, but you will need to temporarily pause the driver addition procedure before it scans the export directory (this can be done by selecting anything from the DISM command prompt window that appears when performing an operation) +The.Program.Has.Suffered.A.Keyboard.Interrupt.Or=The program has suffered a keyboard interrupt, or a forced program closure. The operation has been cancelled. If you have done it accidentally, you may run it again +The.Microsoft.Edge.Components.Have.Already.Been.Installed=The Microsoft Edge components have already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.Browser.Has.Already.Been.Installed=The Microsoft Edge browser has already been installed in this image. There isn't anything to do here. +The.Microsoft.Edge.WebView2.Component.Has.Already.Been=The Microsoft Edge WebView2 component has already been installed in this image. There isn't anything to do here. +The.Operation.Could.Not.Be.Performed.Because.This=The operation could not be performed because this image has pending online operations. Applying and booting up the image might fix this issue. +The.Rollback.Process.Has.Started.Your.System.Needs=The rollback process has started. Your system needs to be restarted in order to continue. It will restart automatically in 10 seconds. Make sure you have saved your work. +The.Specified.Operation.Completed.Successfully.But.Requires.A=The specified operation completed successfully, but requires a restart in order to be fully applied. Save your work and restart when ready +This.Error.Has.Not.Yet.Been.Added.To=This error has not yet been added to the database, so a useful description can't be shown now. Try running the command manually and, if you see the same error, try looking it up on the Internet. +For.Detailed.Information.Consider.Reading.The.DISM.Operation=For detailed information, consider reading the DISM operation logs. +Cancelling.Background.Processes=A cancelar processos em segundo plano... +The.Image.Registry.Hives.Need.To.Be.Unloaded=The image registry hives need to be unloaded before continuing to perform the task. +System.Editor.Was.Not.Found=System editor was not found +The.Log.File.Was.Not.Found=The log file was not found diff --git a/nugetpkgprep.bat b/nugetpkgprep.bat index fb374534f..80d533f66 100644 --- a/nugetpkgprep.bat +++ b/nugetpkgprep.bat @@ -1,5 +1,4 @@ @echo off -:: Refresh the NuGet packages directory -if exist .\packages (rd .\packages /s /q) -md packages -if exist .\pkgsrc.zip powershell -command Expand-Archive -Path ".\pkgsrc.zip" -Destination ".\packages" -Force +setlocal +powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0tools\build\PrepareNuGetPackages.ps1" +exit /b %ERRORLEVEL% diff --git a/pkgsrc.zip b/pkgsrc.zip deleted file mode 100644 index 3cd522c72..000000000 --- a/pkgsrc.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5c331af37271ac0159aa50b01888861017f51ae4bc0e28f18f2fe43603671928 -size 40103364 diff --git a/settings.ini b/settings.ini index 2cc16596d..90ec9b6b5 100644 --- a/settings.ini +++ b/settings.ini @@ -8,7 +8,7 @@ SaveOnSettingsIni=1 ColorMode=0 ColorTheme_Light=1 ColorTheme_Dark=0 -Language=0 +LanguageCode="en-US" LogFont="Consolas" LogFontSi=11 LogFontBold=0 diff --git a/tour b/tour deleted file mode 160000 index 76c705ce0..000000000 --- a/tour +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 76c705ce088049d55a785ddd7eba717acbf51d9b diff --git a/updatelocalpkg.bat b/updatelocalpkg.bat index 80d1c069c..3f88f0a08 100644 --- a/updatelocalpkg.bat +++ b/updatelocalpkg.bat @@ -1,4 +1,5 @@ @echo off -:: Refresh the local packages directory -if exist .\pkgsrc.zip (del .\pkgsrc.zip /f /q) -powershell -command Compress-Archive -Path ".\packages\*.*" -Destination ".\pkgsrc.zip" -Force +:: Refresh the local NuGet package bundle used by CI and offline builds. +if not exist ".\tools\build" mkdir ".\tools\build" +if exist ".\tools\build\pkgsrc.bundle" del ".\tools\build\pkgsrc.bundle" /f /q +powershell -NoProfile -ExecutionPolicy Bypass -Command "Compress-Archive -Path .\packages\* -DestinationPath .\tools\build\pkgsrc.bundle -Force"