PowerShell:如何设置区域设置?

7

我尝试使用Set-Culture -CultureInfo vi-VN命令将Powershell语言环境设置为越南文,但未成功更改。

我尝试打开Powershell ISE进行测试,并发现我的语言环境已经成功更改了。

如何使Powershell更改为我设置的语言环境?

2个回答

6
假设您已经启动了一个新的会话(请参见下文):
您可能遇到了一个 Windows PowerShell 的 bug,它存在于 v5.1.18362.628 版本中:
更改区域设置为 vi-VN(越南语(越南),LCID 1066),具体来说[1],在控制台窗口中Windows PowerShell(v5.1-)似乎无法工作(而在即将过时的 PowerShell ISE 中,正如您所述,它可以工作)。
注:该更改确实对当前用户帐户产生影响,但在 Windows PowerShell 控制台窗口中不会产生影响。 PowerShell [Core] 6+ 不受影响。
关于潜在修复:Windows PowerShell不再进行主动开发,因此只实施关键修复。 您可以在相关UserVoice论坛中报告Windows PowerShell错误。

一般来说:

  • Set-Culture 持久地更改了当前用户的区域设置,并影响整个系统。

    • 这仅在未来的 PowerShell 会话(进程)中生效,因此您需要打开一个新的 PowerShell 控制台窗口才能使更改生效。
      截至本文编写时,Set-Culture 帮助主题没有提及此要求;GitHub 问题建议修复此问题。

      • 然而,任务栏通知区域将即时反映新区域设置在其日期和时间显示中的变化,并关注这一点可以提供就是否原则上成功调用的即时反馈;例如,如果运行 Set-Culture fr-FR(法语),则日期和时间更改为以下内容(“jeudi”是法语中星期四的意思):

        • 用法语显示的任务栏日期/时间显示
      • 要启动新会话,请执行以下操作之一:

        • 打开一个新的 PowerShell 控制台窗口。
        • Windows 终端 中,打开一个新的 PowerShell 选项卡。
        • 在安装有 PowerShell 扩展程序Visual Studio Code 中,如下所示终止 PowerShell 综合控制台并选择在提示时重新启动(或者在综合终端中启动一个新的常规(非综合)PowerShell 实例)。

          • 带有删除按钮的综合终端工具栏
        • 在 - 过时 - ISE 中,打开一个新的 PowerShell 选项卡(File > New PowerShell TabCtrl-T)。

    • 当更改处于待定状态,即您启动新会话之前,Get-Culture报告仍然有效(旧)值,而不是待定值。

  • 您需要将预定义的特定区域设置名称作为(暗示的)-CultureInfo参数传递。

    • 特定区域设置名称的名称例如fr-FR,其中fr指定语言(法语),而FR指定位置(地区或国家);相比之下,仅针对语言的区域设置名称(例如fr)不受支持并被静默忽略

    • 获取预定义特定区域设置列表,请运行以下命令或仅适用于 Windows,请参阅此文档

      • [cultureinfo]::GetCultures('SpecificCultures')

[1] 不确定其他文化是否也受到影响。

[2] 在Windows Terminal中运行也无法解决问题。这表明该错误位于ConsoleHost PowerShell主机内,控制台基于PowerShell会话在其中运行(而ISE实现了自己的主机,Windows PowerShell ISE Host),如$HOST所反映。


1

要设置区域性,您是正确的,应该使用

Set-Culture -CultureInfo vi-vn

查看由mklement0建议的文化列表此处,您将找到一个完整的代码列表。

编辑:经过测试,我可以看到这适用于当前用户,但是正如mklement0在他的回答中所示,似乎存在一个错误,因此实际上无法正常工作。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接