Monday, December 3, 2018
add custom language via powershell
function Unregister-CustomLanguage {
param($CustomCultureCode)
try{
[System.Globalization.CultureAndRegionInfoBuilder]::Unregister($CustomCultureCode)
}catch{
}
}
function Register-CustomLanguage {
param($CustomCultureCode, $BaseCultureCode, [hashtable]$Changes)
$BaseCulture = [cultureinfo]::GetCultureInfo($BaseCultureCode)
$BaseRegion = New-Object System.Globalization.RegionInfo $BaseCultureCode.substring(3)
$registered = $true
$clMessage = "Registering custom culture '$CustomCultureCode':"
try {
# Set up CultureAndRegionInfoBuilder
Add-Type -AssemblyName sysglobl
$CultureBuilder = New-Object System.Globalization.CultureAndRegionInfoBuilder @($CustomCultureCode,[System.Globalization.CultureAndRegionModifiers]::None)
$CultureBuilder.LoadDataFromCultureInfo($BaseCulture)
$CultureBuilder.LoadDataFromRegionInfo($BaseRegion)
# Make appropriate changes
foreach($Property in $Changes.Keys) {
$CultureBuilder.$Property = $Changes[$Property]
}
$CultureBuilder.Register()
} catch [System.InvalidOperationException]{
$registered = $false
}
if(-not $registered){
Write-Host "$clMessage Culture exists."
}else{
Write-Host "$clMessage Culture registered."
}
return $registered
}
function Install-CustomLanguages {
param($CustomLanguages)
$resetIIS = $false
$CustomLanguages | % {
$reg = Register-CustomLanguage @_
if($reg -eq $true){
$resetIIS = $true
}
}
if($resetIIS){
Write-Output "performing iis reset"
Invoke-Command -ScriptBlock {iisreset}
}
}
$VNLangArgs = @(
@{
BaseCultureCode = "ja-JP"
CustomCultureCode = "en-JP"
Changes = @{
CultureEnglishName = "English (Japan)"
CultureNativeName = "English (Japan)"
RegionNativeName = "English (Japan)"
KeyboardLayoutId = 1033
}
}
)
$VNLangArgs | % {Unregister-CustomLanguage $_.CustomCultureCode}
Install-CustomLanguages $VNLangArgs
Labels:
Powershell
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment