private/ConvertTo-SfStandardValueSetTranslationXml.ps1
|
function ConvertTo-SfStandardValueSetTranslationXml { <# .SYNOPSIS Converts a single StandardValueSet entry into its *.standardValueSetTranslation-meta.xml content. .DESCRIPTION Builds the XML for a StandardValueSetTranslation from the given entry, language code, and the picklist values found in MetadataModel.Tables._PicklistValues, filtered by ValueSetType = 'StandardValueSet' and matching ValueSetName. .OUTPUTS [string] The raw XML content for the *.standardValueSetTranslation-meta.xml file. #> [CmdletBinding()] param ( # Single entry from MetadataModel.Tables._StandardValueSets. [Parameter(Mandatory, Position = 0)] [PSCustomObject] $ValueSet, # Language code to build the translation for, e.g. 'de' or 'en_US'. [Parameter(Mandatory, Position = 1)] [string] $LanguageCode, # The metadata model as imported from *.csv and/or *.xlsx with Import-SfMetadataModel [Parameter(Mandatory)] [PSCustomObject] $MetadataModel ) $ErrorActionPreference = 'Stop' #[bool] $IsDebug = $DebugPreference -ne 'SilentlyContinue' #[bool] $IsVerbose = $VerbosePreference -ne 'SilentlyContinue' $PicklistValues = $MetadataModel.Tables._PicklistValues | Where-Object { ($_._ValueSetType -eq 'StandardValueSet') -and ($_._ValueSetName -eq $ValueSet._Name) } | Sort-Object _Label $xml = '<?xml version="1.0" encoding="UTF-8"?>' $xml += '<StandardValueSetTranslation xmlns="http://soap.sforce.com/2006/04/metadata">' foreach ($PicklistValue in $PicklistValues) { $xml += ConvertTo-SfPicklistValueTranslationXml $PicklistValue $LanguageCode } $xml += '</StandardValueSetTranslation>' return $xml } |