Public/Language.ps1
|
function Disable-CrmLanguagePack{ # .ExternalHelp Campgemini.Xrm.Data.PowerShell.Help.xml [CmdletBinding()] PARAM( [parameter(Mandatory=$false)] [Microsoft.Xrm.Sdk.IOrganizationService]$conn, [parameter(Mandatory=$true, Position=1)] [Int]$LCID ) $conn = VerifyCrmConnectionParam -conn $conn -pipelineValue ($PSBoundParameters.ContainsKey('conn')) $request = New-Object Microsoft.Crm.Sdk.Messages.DeprovisionLanguageRequest $request.Language = $LCID try { $conn.Execute($request) | Out-Null } catch { throw } } function Enable-CrmLanguagePack{ # .ExternalHelp Campgemini.Xrm.Data.PowerShell.Help.xml [CmdletBinding()] PARAM( [parameter(Mandatory=$false)] [Microsoft.Xrm.Sdk.IOrganizationService]$conn, [parameter(Mandatory=$true, Position=1)] [Int]$LCID ) $conn = VerifyCrmConnectionParam -conn $conn -pipelineValue ($PSBoundParameters.ContainsKey('conn')) $request = New-Object Microsoft.Crm.Sdk.Messages.ProvisionLanguageRequest $request.Language = $LCID try { $conn.Execute($request) | Out-Null } catch { throw } } function Export-CrmSolutionTranslation{ # .ExternalHelp Campgemini.Xrm.Data.PowerShell.Help.xml [CmdletBinding()] PARAM( [parameter(Mandatory=$false)] [Microsoft.Xrm.Sdk.IOrganizationService]$conn, [parameter(Mandatory=$true, Position=1)] [string]$SolutionName, [parameter(Mandatory=$false)] [string]$TranslationFilePath, [parameter(Mandatory=$false)] [string]$TranslationZipFileName ) $conn = VerifyCrmConnectionParam -conn $conn -pipelineValue ($PSBoundParameters.ContainsKey('conn')) try { $solutionRecords = (Get-CrmRecords -conn $conn -EntityLogicalName solution -FilterAttribute uniquename -FilterOperator "like" -FilterValue $SolutionName -Fields publisherid,version ) if($solutionRecords.CrmRecords.Count -ne 1) { Write-Error "Solution with name `"$SolutionName`" not found or not unique." return } $version = $solutionRecords.CrmRecords[0].version $exportPath = if($TranslationFilePath -ne ""){ $TranslationFilePath } else { Get-Location } if($TranslationZipFileName.Length -eq 0) { $version = $version.Replace('.','_') $translationZipFileName = "CrmTranslations_$SolutionName`_$version.zip" } $path = Join-Path $exportPath $translationZipFileName $exportRequest = New-Object Microsoft.Crm.Sdk.Messages.ExportTranslationRequest $exportRequest.SolutionName = $SolutionName $response = [Microsoft.Crm.Sdk.Messages.ExportTranslationResponse]($conn.Execute($exportRequest)) [System.IO.File]::WriteAllBytes($path,$response.ExportTranslationFile) $result = New-Object psObject Add-Member -InputObject $result -MemberType NoteProperty -Name "ExportTranslationResponse" -Value $response Add-Member -InputObject $result -MemberType NoteProperty -Name "SolutionTranslationPath" -Value $path return $result } catch { throw } } function Get-CrmAllLanguagePacks{ # .ExternalHelp Campgemini.Xrm.Data.PowerShell.Help.xml [CmdletBinding()] PARAM( [parameter(Mandatory=$false)] [Microsoft.Xrm.Sdk.IOrganizationService]$conn ) $conn = VerifyCrmConnectionParam -conn $conn -pipelineValue ($PSBoundParameters.ContainsKey('conn')) $request = New-Object Microsoft.Crm.Sdk.Messages.RetrieveAvailableLanguagesRequest try { $response = [Microsoft.Crm.Sdk.Messages.RetrieveAvailableLanguagesResponse]$conn.Execute($request) return $response.LocaleIds } catch { throw } } function Import-CrmSolutionTranslation{ # .ExternalHelp Campgemini.Xrm.Data.PowerShell.Help.xml [CmdletBinding()] PARAM( [parameter(Mandatory=$false)] [Microsoft.Xrm.Sdk.IOrganizationService]$conn, [parameter(Mandatory=$true, Position=1)] [string]$TranslationFileName, [parameter(Mandatory=$false, Position=2)] [switch]$PublishChanges ) $conn = VerifyCrmConnectionParam -conn $conn -pipelineValue ($PSBoundParameters.ContainsKey('conn')) try { $importId = [guid]::NewGuid() $translationFile = [System.IO.File]::ReadAllBytes($TranslationFileName) $importRequest = New-Object Microsoft.Crm.Sdk.Messages.ImportTranslationRequest $importRequest.TranslationFile = $translationFile $importRequest.ImportJobId = $importId $response = [Microsoft.Crm.Sdk.Messages.ImportTranslationResponse]($conn.Execute($importRequest)) $xml = [xml](Get-CrmRecord -conn $conn -EntityLogicalName importjob -Id $importId -Fields data).data $importresult = $xml.importtranslations if($importresult.status -ne "Succeeded") { throw $importresult.errordetails } if($PublishChanges) { Publish-CrmAllCustomization -conn $conn } return $response } catch { throw } } |