Privacy Info

Saturday, October 15, 2022

Sitecore PowerShell Script - Creating Multiple Language Versions


We have received request for creating multiple language versions for multiple items. Manually creating language version for each item is cumbersome task. Also we require to delete the existing language versions. To solve this problem we came up with this PowerShell script where we need to specify item path and language versions we need to create. and script will perform the task First script will delete all the existing item versions and then create new item versions specified.

Script
function LanguageVersionsOperations($LanguageItemInfo)
{
	#Spliting the Input
	$SplitDetails=$LanguageItemInfo.Split(";")
	
	#Path of the item
	$itemPath=$SplitDetails[0]
	
	#Item Details from Get-Item  method
	$itemGetInfo= Get-Item $itemPath

	#Deleting All versions except English
	foreach ($version in $itemGetInfo.Versions.GetVersions($true))
	{
        if ($version.Language -ne "en")
		{
			Remove-ItemVersion $version
			Write-Host $version.DisplayName " - " $version.ID " - " $version.Language "- deleted"
		}
	}  
	
	#Adding Versions 
	for($i = 1; $i -lt $SplitDetails.Length; $i++)
	{	    	    
		$itemInfo = Get-Item $itemPath  | Add-ItemLanguage -Language "en" -TargetLanguage $SplitDetails[$i] -IfExist OverwriteLatest
		Write-Host $itemInfo.DisplayName " - " $itemInfo.ID " - " $SplitDetails[$i]  "- added"				
	}
}


$Items ="master:\sitecore\content\Home\TestItem1;en-US;en-CA;fr-CA;zh-CN;en-AU",
	"master:\sitecore\content\Home\TestItem2;en-US;en-CA;fr-CA;en-IN;es-AR",
	"master:\sitecore\content\Home\TestItem3;en-US;en-CA;fr-CA;en-IN;es-AR",
	"master:\sitecore\content\Home\TestItem4;en-US;en-CA;fr-CA;zh-CN;en-AU"	



foreach ($Item in $Items)
{
	Write-Host "Start Operation $((Get-Date).ToString())"
	LanguageVersionsOperations $Item
	Write-Host "End Operation $((Get-Date).ToString())"

}



You can modify above script as per your need and use it.

Hope you find this information useful.


     

No comments:

Post a Comment

Sitecore PowerShell Script - Remove item from Workflow

We came across scenario where we need to remove multiple items from workflow. If items would be less then there would not be any issue but i...