Public/Get-XliffMissingTranslation.ps1
|
function Get-XliffMissingTranslation { <# .SYNOPSIS Returns translation units that still need work. .DESCRIPTION Filters units whose completion state is **Missing**. A unit is treated as missing when: - Target text is null, empty, or whitespace, or - Target state is `needs-translation` Use this command to build translator todo lists or pre-sync reports. .PARAMETER InputObject Translation units to inspect from the pipeline. .PARAMETER Path Optional `.xlf` file to import before filtering. .OUTPUTS [XliffTranslationUnit[]] .EXAMPLE Get-XliffMissingTranslation -Path .\Translations\Sample.xlf .EXAMPLE Import-XliffFile .\Translations\Sample.xlf | Get-XliffMissingTranslation | Export-XliffCsv .\artifacts\missing.csv .NOTES Author: XliffParser Contributors #> [CmdletBinding()] param( [Parameter(ValueFromPipeline)] [XliffTranslationUnit[]]$InputObject, [ValidateNotNullOrEmpty()] [string]$Path ) begin { $units = [System.Collections.Generic.List[XliffTranslationUnit]]::new() if ($Path) { foreach ($unit in Import-XliffFile -Path $Path) { $units.Add($unit) } } } process { foreach ($unit in $InputObject) { $units.Add($unit) } } end { foreach ($unit in $units) { if ((Get-XliffUnitCompletionState -Unit $unit) -eq 'Missing') { $unit } } } } |