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
}