[玩转系统] 使用 Microsoft Translator 和 PowerShell 翻译敏感度标签名称
作者:精品下载站 日期:2024-12-14 04:08:47 浏览:15 分类:玩电脑
使用 Microsoft Translator 和 PowerShell 翻译敏感度标签名称
使用 Microsoft Translator 创建本地翻译以更新敏感度标签的显示名称和工具提示
Microsoft Purview 敏感度标签支持显示名称和工具提示的多语言值。当租户用户使用多种语言工作时,这是一个很好的功能。缺点是 PowerShell 是唯一将语言(区域设置)值写入标签的公共方法。到目前为止,微软尚未发布涵盖此任务的 Graph API。
对于仅涉及几个标签的一次性操作来说,突破 PowerShell 并应对深奥的格式要求以在哈希表中传递语言代码和翻译文本是可以接受的。当需要处理多种语言、显示名称和工具提示发生变化或者组织使用大量敏感度标签时,事情就会变得无聊。
微软示例 PowerShell 代码的更开发版本似乎是个好主意,特别是如果我可以使用自动化方法将英语显示名称和工具提示翻译成一组目标语言。另一种方法是将文本输入基于网络的翻译服务并将结果粘贴到脚本中。这对于一个标签有效,但在两三个标签之后就会变得令人厌烦。
Active Directory 的网络安全风险管理
了解如何通过这些网络安全风险管理解决方案预防 AD 攻击并从中恢复。
使用微软翻译服务
第一个挑战是找到可通过 PowerShell 访问的合适翻译服务。 Microsoft Translator 是一项基于云的翻译服务,具有 REST API,每月提供多达 200 万个字符的免费翻译,这足以翻译一些标签显示名称和工具提示。前提条件是你必须有一个连接到 Microsoft Translator 的 Azure 订阅才能使用该服务。配置连接的步骤很简单。结果是一个订阅密钥,它允许 Translator 识别翻译某些字符串数据的调用源。
$TranslatorKey = "10e21011ba2747a0996c4134492bfc17" # This key depends on your subscription...
$global:BaseUri = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0"
$global:Headers = @{
'Ocp-Apim-Subscription-Key' = $translatorKey
'Ocp-Apim-Subscription-Region' = 'northeurope' # added (change if needed)
'Content-type' = 'application/json; charset=utf-8'
}
定义翻译器密钥和其他信息后,翻译字符串的简单函数如下所示:
Function Translate-String {
[cmdletbinding()]
Param(
[string]$InputString,
[string]$LanguageCode )
$textJson = @{
"Text" = $InputString
} | ConvertTo-Json
$Body = "[$textJson]"
$Uri = "$($global:BaseUri)&to=$($LanguageCode)&textType=html"
$Status = Invoke-RestMethod -Method Post -Uri $Uri -Headers $global:Headers -Body $Body
$Translation = $Status[0].translations[0].text
Return $Translation }
谷歌的替代方案
如果你没有 Azure 订阅,谷歌翻译是另一个选择。这是为使用 Google 翻译而编写的函数:
Function Translate-String {
[cmdletbinding()]
Param(
[string]$InputString,
[string]$LanguageCode )
# See https://github.com/ssut/py-googletrans/issues/268
# Language codes https://developers.google.com/admin-sdk/directory/v1/languages
$Uri = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=$($LanguageCode)&dt=t&q=$InputString"
$Response = Invoke-RestMethod -Uri $Uri -Method Get
$Translation = $Response[0].SyncRoot | foreach { $_[0] }
Return $Translation}
我通过互联网搜索找到了如何使用谷歌翻译的详细信息。然而,该方法不是来自正式的谷歌网站,并且似乎与谷歌没有联系,所以我不知道这种使用谷歌翻译的方法能工作多久。考虑到这一点,最好将重点放在 Microsoft Translator 上。
查找和处理敏感度标签的本地语言值
现在我们已经确定了合适的翻译服务,下一步是找到要处理的敏感度标签集。您可以处理所有标签,但处理与文件和文档一起使用的集合更为合理。此代码使用 Get-Label cmdlet 查找完整的敏感度标签集并过滤站点以选择用于信息保护的标签。您可以翻译用于容器管理的敏感度标签的名称,但由于管理员主要使用这些标签并且知道这些标签的用途,因此翻译可能没有那么有价值。
在运行 Get-Label 之前,您需要使用 Connect-ExchangeOnline 连接到 Exchange Online 管理端点,然后使用 Connect-IPPSSess 连接到合规端点>离子。
# Find set of labels that support LLV strings
[array]$FileLabels = Get-Label | Where-Object {$_.ContentType -Like "*File*"}
我们还声明了一组将在数组中翻译的语言。没有真正需要这样做,因为您可以在更新标签属性时指定语言代码。我在脚本中这样做是为了定义我计划使用的代码以及将本地语言值传递到 Set-Label cmdlet 的顺序。
$Languages = @("fr-fr","it-it","de-de")
为了翻译标签名称和工具提示,代码循环遍历标签集以:
- 获取显示名称和工具提示属性的英文文本。
- 将标签名称和工具提示翻译成目标语言集(法语、意大利语和德语),
- 使用目标语言的本地设置更新标签。调用 Set-Label 更新标签时,请使用 ISO639-1 代码指定目标语言(Microsoft 365 必须支持该语言)。
该脚本创建两个 PowerShell 对象,其中包含要应用于敏感度标签的显示名称和工具提示的翻译值。以下是公共敏感度标签的显示名称翻译值的哈希表的样子。您可以在这里看到四种语言,因为我测试了多种语言组合:
$DisplayNameLocaleSettings | Select-Object -ExpandProperty Settings
Name Value
---- -----
key fr-fr
Value Public
key it-it
Value Pubblico
key de-de
Value Öffentlich
key ar-ar
Value علني
以下代码用于翻译敏感度标签名称和工具提示并使用新设置更新标签:
ForEach ($Label in $FileLabels) {
$FrenchDisplayName = $Null; $GermanDisplayName = $Null; $ItalianDisplayName = $Null
$FrenchTooltip = $Null; $GermanToolTip = $Null; $FrenchToolTip = $Null
Write-Host ("Setting language values for the {0} label" -f $Label.displayname)
[string]$FrenchDisplayName = Translate-String -InputString $Label.DisplayName -LanguageCode "fr"
[string]$FrenchTooltip = Translate-String -InputString $Label.ToolTip -LanguageCode "fr"
[string]$ItalianDisplayName = Translate-String -InputString $Label.DisplayName -LanguageCode "it"
[string]$ItalianTooltip = Translate-String -InputString $Label.ToolTip -LanguageCode "it"
[string]$GermanDisplayName = Translate-String -InputString $Label.DisplayName -LanguageCode "de"
[string]$GermanTooltip = Translate-String -InputString $Label.ToolTip -LanguageCode "de"
$DisplayNameLocaleSettings = [PSCustomObject]@{LocaleKey='DisplayName';
Settings=@(
@{key=$Languages[0];Value=$FrenchDisplayName;}
@{key=$Languages[1];Value=$ItalianDisplayName;}
@{key=$Languages[2];Value=$GermanDisplayName;})}
$TooltipLocaleSettings = [PSCustomObject]@{LocaleKey='Tooltip';
Settings=@(
@{key=$Languages[0];Value=$FrenchToolTip;}
@{key=$Languages[1];Value=$ItalianToolTip;}
@{key=$Languages[2];Value=$GermanToolTip;})}
Set-Label -Identity $Label.ImmutableId -LocaleSettings (ConvertTo-Json $DisplayNameLocaleSettings -Depth 3 -Compress),(ConvertTo-Json $TooltipLocaleSettings -Depth 3 -Compress)
}
如果您在租户中使用不同的语言,您可以更新脚本以替换 Translator 使用的两字符语言代码。例如,西班牙语的代码是“es”,而保加利亚语的代码是“bg”。如果您想要支持其他语言,请复制现有语言的代码,更新所选语言的代码,然后将语言设置添加到传递给 Set-Label cmdlet 的哈希表中。使用自动翻译的优点是添加额外的语言将花费不到十分钟的时间。
暂停以进行缓存刷新
脚本运行后,需要短暂的延迟,以允许 OWA 和 SharePoint 浏览器等客户端刷新其标签缓存,然后以目标语言配置的客户端使用翻译后的值。图 1 显示了 OWA 语言为法语时的敏感度标签集,包括工具提示。
图 1 中所示的显示名称和工具提示文本来自 Microsoft Translator。与任何自动过程一样,某些自动生成的文本可能会受益于人工调整,以确保名称或工具提示准确传达敏感度标签的用途。
您可以从 GitHub 下载完整的脚本。
捕捉变化
为了确保敏感度标签中英文文本的更新转换为本地语言,您可以将该脚本安排为 Azure 自动化 Runbook,作为每月作业运行。我不认为英语值会经常改变,但预定的工作也会将本地语言值应用于新的敏感度标签。
也许您的国际同事不需要翻译的敏感度标签,因为他们理解英文名称和工具提示(也许分配给标签的颜色有所帮助)。如果没有,最好能够分配本地语言值,甚至更好的是自动翻译这些值。使用 Microsoft Translator 将字符串翻译成不同语言的知识将来可能会很有用。
Microsoft 365 杀伤链和攻击路径管理
有效的网络安全策略需要对攻击如何展开有清晰、全面的了解。阅读本白皮书,获取保卫您的组织所需的专家见解!
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag