PowerShell多语言功能混乱

时间:2014-12-04 13:05:49

标签: powershell powershell-v3.0

根据最终用户的系统语言定义变量时,可以使用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”地狱,是否有更好的方法来实现这一目标?关键是,优先级:使用尽可能少的资源来保持函数维护者的易读性。

也欢迎允许在外部文件上添加翻译的方法。

1 个答案:

答案 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"
    }
}