Public/Get-ADPRegion.ps1

function Get-ADPRegion {
    <#
    .SYNOPSIS
        Get a user's Region from ADP

    .DESCRIPTION
        Get a user's Region from ADP

    .PARAMETER ADPObject
        Object which holds the Region

    .EXAMPLE
        Input Object: ADP Object
        Return Object: {preferredLanguage, locale}

    .NOTES
        This is used when passing the full adp worker object from ADP's APID

    .FUNCTIONALITY
        Powershell Language
    #>

    [CmdletBinding()]
    param (
        [Parameter( Mandatory = $true,
            Position = 0,
            ValueFromPipeline = $true
        )]
        $ADPObject
    )

    $localCountry = ( $ADPObject | Get-ADPLocation ).country

    $localRegion = [PSCustomObject]@{
        preferredLanguage = $null;
        locale            = $null;
    }

    switch ($localCountry) {
        "US" {
            $localRegion.preferredLanguage = "en-US"
            $localRegion.locale = "en_US"
            break
        }
        "IN" {
            $localRegion.preferredLanguage = "en-IN"
            $localRegion.locale = "en_IN"
            break
        }
        "DE" {
            $localRegion.preferredLanguage = "de-DE"
            $localRegion.locale = "de_DE"
            break
        }
        default {
            $localRegion.preferredLanguage = $localCountry
            $localRegion.locale = $localCountry
        }
    }

    $localRegion.preferredLanguage = ( $localRegion.preferredLanguage | Get-ValidADPReturn )
    $localRegion.locale = ( $localRegion.locale | Get-ValidADPReturn )

    return $localRegion

}