2015-02-02 6 views
4

Windows 8.1 컴퓨터에서 Windows Server 2012 컴퓨터보다 많은 사용 가능한 문화권이 있습니다 : 791 대 378. 특정 예를 들면 서버 컴퓨터에 'en -HK '문화. 여기 Windows Server 2012에 더 많은 문화권 설치

는 내가 그들을 열거 사용하고 테스트 코드입니다 :

foreach (var ci in CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures).OrderBy(ci => ci.Name)) 
{ 
    Console.WriteLine("{0} ({1})", ci.Name, ci.EnglishName); 
} 

질문 :가 어떻게 윈도우 서버 때문에 2012에 더 완전한 문화의 목록을 설치할 수는 윈도우 8.1에서 사용할 수 일치하는지 ?

+0

이 기사에 따라 사용자 지정 문화권을 만들 수 있습니까? 2012 시스템에서 복제하기 위해 8.1 시스템의 모든 특성을 열거해야 할 수도 있습니다. 이것이 우리가 사용자 지정 문화권을 일부 서버에 추가 한 방법입니다. https://msdn.microsoft.com/en-us/library/vstudio/ms172469(v=vs.100).aspx – kamranicus

+0

잘 모르겠지만 실제로 시도 할 때 모든 사람들을위한 맞춤 문화를 만드는 것이 복잡해 보입니다. 공식 명부에 기입하십시오. –

+0

나는 그것에 대해 확신하지 못한다 ... 우리는 방금 추가적인 맞춤 문화가 필요했다. 시간이 좀있어, 이거 알아 냈어? – kamranicus

답변

0

다음은 2012 년에 사용자 지정 문화권을 추가하는 데 사용 된 Powershell입니다.이 스크립트는 하드 코딩 된 스크립트입니다 (미안하지만 요!). 새로운 문화 ($newCulture)를 기존 문화권 (이 경우 en-US)에 둡니다. "사용자 정의 문화를 만드는 방법"

이것은 아래 MSDN에서 샘플 C# 코드를 기반으로 https://msdn.microsoft.com/en-us/library/ms172469(v=vs.100).aspx

는 희망이 도움이!

################################### 
# Add-Culture 
# 
# Edit script to add a new custom culture 
# 
################################### 

function Add-Culture($Servers, $Credential) {  

    Invoke-Command { 
     # Import System.Globalization 
     Add-Type -AssemblyName "sysglobl" 

     $newCulture = "en-TH" 

     # Create new CultureAndRegionInfoBuilder 
     $cib = New-Object "System.Globalization.CultureAndRegionInfoBuilder" -Args $newCulture, None 

     # Based on existing en-US culture 
     $ci = New-Object "System.Globalization.CultureInfo" -Args "en-US" 
     $ri = New-Object "System.Globalization.RegionInfo" -Args "th-TH" 

     $cib.LoadDataFromCultureInfo($ci) 
     $cib.LoadDataFromRegionInfo($ri) 

     # Set culture values here 
     # Naming 
     $cib.CultureEnglishName = "English (Thailand)" 
     $cib.CultureNativeName = "English (Thailand)" 
     $cib.IetfLanguageTag = $newCulture 

     # RegionInfo 
     $cib.RegionEnglishName = "Thailand" 
     $cib.RegionNativeName = "Thailand" 

     # ISO 
     $cib.ThreeLetterISOLanguageName = "eng" 
     $cib.ThreeLetterWindowsLanguageName = "ENG" 
     $cib.TwoLetterISOLanguageName = "en" 
     $cib.ThreeLetterISORegionName = "THA" 
     $cib.TwoLetterISORegionName = "TH" 
     $cib.ThreeLetterISORegionName = "THA" 
     $cib.ThreeLetterWindowsRegionName = "THA" 

     # Currency 
     $cib.ISOCurrencySymbol = "THB" 
     $cib.CurrencyEnglishName = "Thai Baht" 
     $cib.CurrencyNativeName = "Thai Baht" 
     $cib.NumberFormat.CurrencySymbol = "฿" 

     # Dates 
     $cib.GregorianDateTimeFormat.ShortDatePattern = "d/M/yyyy"; 

     # Print values 
     Write-Verbose ($cib | Format-List | Out-String) 
     Write-Verbose ($cib.GregorianDateTimeFormat | Format-List | Out-String) 
     Write-Verbose ($cib.NumberFormat | Format-List | Out-String) 

     $cib.Register();    

    } -ComputerName $Servers -Credential $Credential 

    Write-Output "Registered new culture $newCulture on $servers" 
} 
+0

답변 해 주셔서 감사합니다!이 방법으로 해결하기가 훨씬 쉬워졌습니다. 어쨌든, 그게 나야 아니면 마이크로 소프트가 이런 종류의 문제에 대한 해결책을 제공해야 하는가? 내 말은, 나는이 문제가있다 : https://stackoverflow.com/questions/44264980/windows-server-2012-has-incorrect-decimal- currency-on-es-cl-culture의 숫자/44266249 # 44266249 –