if exists (select *
from dbo.sysobjects
where id = object_id(N'[dbo].[f_GetMLValue]')
and xtype IN (N'FN', N'IF', N'TF'))
drop function [dbo].[f_GetMLValue]
go
/*
Translates multilanguage text into the current language.
*/
create function dbo.f_GetMLValue
(
@ObjectTypeCd varchar(40),
@PropertyCd varchar(30),
@ObjectName varchar(500),
@Text nvarchar(4000)
)
returns nvarchar(4000)
as
begin
declare @Result nvarchar(4000),
@ApplicationCd UDT_STRING,
@LanguageCd UDT_LANG_CD
set @Result = null
set @ApplicationCd = dbo.f_Get_LocalizationApplicationCd()
set @LanguageCd = dbo.f_Get_LanguageCd()
select @Result = cast(lv.Value as nvarchar(4000))
from Framework_LocalizedValues lv
where lv.ApplicationCd = @ApplicationCd
and lv.LanguageCd = @LanguageCd
and lv.ObjectTypeCd = @ObjectTypeCd
and lv.PropertyCd = @PropertyCd
and lv.ObjectName = @ObjectName
if @Result is null
begin
select @Result = ld.Value
from Framework_LocalizationDictionary ld
where ld.ApplicationCd = @ApplicationCd
and ld.LanguageCd = @LanguageCd
and ld.DefaultValue = @Text
end
if @Result is not null
begin
return @Result
end
return @Text
end
go