Public/Initialize-LicenseGuard.ps1

function Initialize-LicenseGuard {
    <#
    .SYNOPSIS
        Loads configuration and sets the active language for the module.
    .EXAMPLE
        Initialize-LicenseGuard -ConfigPath .\lg-config.json -Language en
    #>

    [CmdletBinding()]
    param(
        [string]$ConfigPath = '.\lg-config.json',
        [ValidateSet('tr','en')]
        [string]$Language   = 'tr'
    )

    $script:LGConfig  = $script:LGDefaultConfig.Clone()
    $script:LGStrings = Get-LGDefaultStrings -Language $Language

    if (Test-Path $ConfigPath) {
        try {
            $loaded = Get-Content $ConfigPath -Raw | ConvertFrom-Json
            $keys = @(
                'FlexLM','SaaS','WarnDaysBeforeExpiry','Whitelist','SnapshotPath',
                'EolCheck','Email','Webhook','Jira','Branding',
                'ScanBrowserExtensions','ScanVsCodeExtensions','ScanStartup'
            )
            foreach ($k in $keys) {
                if ($null -ne $loaded.$k) { $script:LGConfig[$k] = $loaded.$k }
            }
            Write-Verbose "Configuration loaded: $ConfigPath"
        } catch {
            Write-Warning "Could not read configuration: $($_.Exception.Message)"
        }
    }
}