PowerShell/Docs/translate-text.md

99 lines
2.9 KiB
Markdown
Raw Normal View History

2022-11-17 20:02:26 +01:00
## The translate-text.ps1 PowerShell Script
2021-11-08 21:36:42 +01:00
2022-02-10 09:01:07 +01:00
This PowerShell script translates text into other languages.
2021-11-08 21:36:42 +01:00
## Parameters
```powershell
2022-02-10 09:01:07 +01:00
translate-text.ps1 [[-Text] <String>] [[-SourceLangCode] <String>] [[-TargetLangCode] <String>] [<CommonParameters>]
2021-11-08 21:36:42 +01:00
-Text <String>
Specifies the text to translate
Required? false
Position? 1
Default value
Accept pipeline input? false
Accept wildcard characters? false
2022-02-10 09:01:07 +01:00
-SourceLangCode <String>
2021-11-08 21:36:42 +01:00
Required? false
Position? 2
Default value en
Accept pipeline input? false
Accept wildcard characters? false
2022-02-10 09:01:07 +01:00
-TargetLangCode <String>
2021-11-08 21:36:42 +01:00
Required? false
Position? 3
Default value any
Accept pipeline input? false
Accept wildcard characters? false
[<CommonParameters>]
This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction,
WarningVariable, OutBuffer, PipelineVariable, and OutVariable.
```
## Example
```powershell
PS> ./translate-text "Hello World" de en
```
## Notes
2022-11-17 19:46:02 +01:00
Author: Markus Fleschutz | License: CC0
2021-11-08 21:36:42 +01:00
## Related Links
https://github.com/fleschutz/PowerShell
2022-11-17 20:02:26 +01:00
## Source Code
<#
.SYNOPSIS
Translates text into other languages
.DESCRIPTION
This PowerShell script translates text into other languages.
.PARAMETER Text
Specifies the text to translate
.PARAMETER SourceLang
Specifies the source language
.PARAMETER TargetLang
Specifies the target language
.EXAMPLE
PS> ./translate-text "Hello World" de en
.LINK
https://github.com/fleschutz/PowerShell
.NOTES
Author: Markus Fleschutz | License: CC0
#>
param([string]$Text = "", [string]$SourceLangCode = "en", [string]$TargetLangCode = "any")
function UseLibreTranslate { param([string]$Text, [string]$SourceLangCode, [string]$TargetLangCode)
$Parameters = @{"q"="$Text"; "source"="$SourceLangCode"; "target"="$TargetLangCode"; }
$Result = (Invoke-WebRequest -Uri https://translate.mentality.rip/translate -Method POST -Body ($Parameters|ConvertTo-Json) -ContentType "application/json" -useBasicParsing).content | ConvertFrom-Json
return $Result.translatedText
}
try {
if ($Text -eq "" ) { $Text = read-host "Enter text to translate" }
if ($TargetLangCode -eq "any") {
$TargetLangCodes = "ar","de","es","fr","ga","hi","it","ja","ko","pt","ru","zh"
foreach($TargetLangCode in $TargetLangCodes) {
$Translation = UseLibreTranslate $Text $SourceLangCode $TargetLangCode
write-output "$($TargetLangCode): $Translation"
}
} else {
$Translation = UseLibreTranslate $Text $SourceLangCode $TargetLangCode
write-output "$Translation"
}
exit 0 # success
} catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}
2021-11-08 21:36:42 +01:00
*Generated by convert-ps2md.ps1 using the comment-based help of translate-text.ps1*