Private/ConvertTo-VellumPdfCulture.ps1

function ConvertTo-VellumPdfCulture {
    <#
    .SYNOPSIS
        Turns a -Culture / -InputCulture argument (a culture name or a [cultureinfo]) into a [cultureinfo].
    .DESCRIPTION
        A name is resolved with [cultureinfo]::GetCultureInfo(name, predefinedOnly), so an unknown name fails
        with a clear error instead of silently producing a placeholder culture. An empty name is the
        invariant culture.
    #>

    [CmdletBinding()]
    [OutputType([cultureinfo])]
    param(
        [Parameter(Mandatory)] [AllowNull()] $Value,
        [Parameter(Mandatory)] [string]$CommandName,
        [string]$ParameterName = 'Culture'
    )
    if ($Value -is [cultureinfo]) { return $Value }
    $name = [string]$Value
    try { [cultureinfo]::GetCultureInfo($name, $true) }
    catch { throw (New-VellumPdfErrorRecord InvalidArgument "${CommandName}: -$ParameterName '$name' is not a known culture name (for example en-US, de-DE or nl-NL); pass a name or a [cultureinfo].") }
}