根据最终用户的系统语言定义变量时,可以使用Get-Culture
并使用该信息根据结果为变量定义不同的文本,例如
$Lang = get-Culture #Get user language
if ($Lang.TwoLetterISOLanguageName -eq "fr") { #If user is french,
$Error_Argument = "French error text" #define French text for argument error
}
else { #Else define English text
$Error_Argument = "English error text"
}
现在我的方法会发生什么,如果有两种以上的语言,它开始是“if,else”地狱,是否有更好的方法来实现这一目标?关键是,优先级:使用尽可能少的资源来保持函数维护者的易读性。
也欢迎允许在外部文件上添加翻译的方法。
答案 0 :(得分:2)
或许考虑使用' switch'。使用开关,我们可以针对给定值检查多个值,并且当提供的值根本不匹配时也具有默认值。例如:
$suppliedValue = 'FR'
switch ($suppliedValue ){
"ES" {
$Error_Argument = "Spanish error text"
}
"FR" {
$Error_Argument = "French error text"
}
default {
$Error_Argument = "English error text"
}
}