В настоящее время мы пытаемся локализовать наш довольно обширный модуль, и для чего мы используем единственный resx (для простоты управления), МЫ написали следующий код, который возвращает ключи, однако он оставляет нам сообщение в журнале просмотра событий. (под кодом)
Я также должен добавить, что не могу использовать httpcontext.current.server.mappath, поскольку функции также используются там, где нет httpcontext
Код:
Public Shared Function GetString(ByVal key As String, ByVal ParamArray params As String()) As String
Dim SharedResourceFolder As String = "~/App_GlobalResources/"
Dim myStr As String = Nothing
If CultureInfo.CurrentCulture.Name <> "en-GB" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources." & CultureInfo.CurrentCulture.Name & ".resx")
If myStr Is Nothing OrElse myStr = "" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources." & CultureInfo.CurrentCulture.Name.Substring(0, 2) & ".resx")
End If
End If
If myStr Is Nothing OrElse myStr = "" Then
myStr = Localization.GetString(key, SharedResourceFolder & "Resources.resx")
End If
If myStr IsNot Nothing AndAlso myStr <> "" Then
Return String.Format(CultureInfo.CurrentCulture, myStr, params)
End If
Dim res As String = Localization.GetString(key, "Resources.resx", "en-GB")
If String.IsNullOrEmpty(res) Then
Return Nothing
End If
Return String.Format(CultureInfo.InvariantCulture, res, params)
End Function
Сообщение об ошибке:
System.ArgumentException: относительный
виртуальный путь «sharedresources.resx»
здесь не разрешено в
System.Web.VirtualPath.FailIfRelativePath ()
в
System.Web.Hosting.HostingEnvironment.MapPathActual (VirtualPath
virtualPath, логическое allowNull) в
System.Web.Hosting.HostingEnvironment.MapPathInternal (VirtualPath
virtualPath) в
System.Web.Hosting.HostingEnvironment.MapPath (VirtualPath
virtualPath) в
System.Web.Hosting.HostingEnvironment.MapPath (String
virtualPath) в
DotNetNuke.Services.Localization.Localization.GetResourceFileCallBack (CacheItemArgs
cacheItemArgs) в
DotNetNuke.Common.Utilities.DataCache.GetCachedData [TObject] (CacheItemArgs
cacheItemArgs,
CacheItemExpiredCallback
cacheItemExpired, Boolean
storeInDictionary)
благодарен за любую помощь
UPDATE:
Переход на физический путь вызвал у меня проблему в ядре DNN, возврат к виртуальному пути и изменение строки кода в другом месте модуля. Исправлена проблема