Skip to content

Instantly share code, notes, and snippets.

@adnanzameer
Last active April 30, 2019 09:53
Show Gist options
  • Save adnanzameer/c9529531d8c23aa25a2ddb4b04865509 to your computer and use it in GitHub Desktop.
Save adnanzameer/c9529531d8c23aa25a2ddb4b04865509 to your computer and use it in GitHub Desktop.
SQL script to switch language branch or change master language branch in Episerver
USE [epicms]
GO
IF OBJECT_ID ( 'AZSwitchLanguageBranch', 'P' ) IS NOT NULL
DROP PROCEDURE AZSwitchLanguageBranch;
GO
CREATE PROCEDURE AZSwitchLanguageBranch
@toLanguageBranch varchar(10),
@fromLanguageBranch varchar(10)
AS
declare @fromLanguageBranchID int = (SELECT [pkID] FROM [dbo].[tblLanguageBranch] where [LanguageID] = @fromLanguageBranch)
declare @fromLanguageBranchName varchar(100) = (select [Name] from [dbo].[tblLanguageBranch] where pkid= @fromLanguageBranchID)
declare @fromLanguageBranchIcon varchar(100) = (select [SystemIconPath] from [dbo].[tblLanguageBranch] where pkid= @fromLanguageBranchID)
declare @fromLanguageBranchACL varchar(2000) = (select [ACL] from [dbo].[tblLanguageBranch] where pkid= @fromLanguageBranchID)
declare @fromLanguageBranchUrlSegment varchar(100) = (SELECT URLSegment FROM [dbo].[tblLanguageBranch] where pkid= @fromLanguageBranchID)
declare @toLanguageBranchID int = (select pkID from [dbo].[tblLanguageBranch] where [LanguageID] = @toLanguageBranch)
declare @toLanguageBranchName varchar(100) = (select [Name] from [dbo].[tblLanguageBranch] where pkid= @toLanguageBranchID)
declare @toLanguageBranchIcon varchar(100) = (select [SystemIconPath] from [dbo].[tblLanguageBranch] where pkid= @toLanguageBranchID)
declare @toLanguageBranchACL varchar(2000) = (select [ACL] from [dbo].[tblLanguageBranch] where pkid= @toLanguageBranchID)
declare @toLanguageBranchUrlSegment varchar(100) = (SELECT URLSegment FROM [dbo].[tblLanguageBranch]where pkid= @toLanguageBranchID)
declare @toLanguageBranchEnable bit = (select [Enabled] from [dbo].[tblLanguageBranch] where pkid= @toLanguageBranchID)
declare @fromLanguageBranchEnable bit = (select [Enabled] from [dbo].[tblLanguageBranch] where pkid= @fromLanguageBranchID)
IF(@toLanguageBranchEnable = 1)
BEGIN
IF ( @fromLanguageBranchEnable = 1)
BEGIN
IF(@toLanguageBranchID <> @fromLanguageBranchID)
BEGIN
BEGIN TRY
BEGIN TRANSACTION
UPDATE [dbo].[tblLanguageBranch]
SET [LanguageID] = @toLanguageBranch + 'B'
WHERE pkid= @toLanguageBranchID
UPDATE [dbo].[tblLanguageBranch]
SET [LanguageID] = @toLanguageBranch
,[Name] = @toLanguageBranchName
,[SystemIconPath] = @toLanguageBranchIcon
,[ACL] = @toLanguageBranchACL
,[URLSegment] = @toLanguageBranchUrlSegment
WHERE pkid= @fromLanguageBranchID
UPDATE [dbo].[tblLanguageBranch]
SET [LanguageID] = @fromLanguageBranch
,[Name] = @fromLanguageBranchName
,[SystemIconPath] = @fromLanguageBranchIcon
,[ACL] = @fromLanguageBranchACL
,[URLSegment] = @fromLanguageBranchUrlSegment
WHERE pkid= @toLanguageBranchID
PRINT 'Successfully switched language branch from "' + @fromLanguageBranch + '" to "' + @toLanguageBranch+ '"'
COMMIT
END TRY
BEGIN CATCH
PRINT 'Critical Error: Unable to switch language branch'
ROLLBACK
END CATCH
END
ELSE
BEGIN
PRINT 'Error: Unable to switch same language branch'
END
END
ELSE
BEGIN
PRINT 'Error: Please enable "' + @fromLanguageBranch + '" language branch'
END
END
ELSE
BEGIN
PRINT 'Error: Please enable "' + @toLanguageBranch + '" language branch'
END
GO
EXEC AZSwitchLanguageBranch @toLanguageBranch = 'en-US', @fromLanguageBranch = 'en'
GO
@jonashilmersson
Copy link

Hi,

Is this for changing master language on a site with content where the existing content gets "moved" to the new language?

Brgds

Jonas

@adnanzameer
Copy link
Author

adnanzameer commented Jul 9, 2018

Hi Jonas The script changes the Master language of the site. If you have content in en and en-GB they will get a switch. It means en-GB content will be now en content and en content will switch to en-GB.

Don't forget the change the master language in web.config

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment