2012-11-28 40 views
3

我一直在經典ASP.NET中開發應用程序並將其部署到Azure。到現在爲止,完全沒有問題。現在我想添加本地化的資源來支持多語言。在Windows Azure中使用本地化資源時出現異常

當在Azure模擬器的外部和內部運行本地時,App_GlobalResources/*。resources文件可以正常工作。但是,當我嘗試在Azure中使用它們,我收到以下錯誤:

Could not find any resources appropriate for the specified culture (or the neutral culture) on disk. baseName: SistemaRRHH.Signup.SignupLabels locationInfo: fileName: SistemaRRHH.Signup.SignupLabels.resources.

例外的情況是非常不言自明的,買我不能以任何方式解決它。

異常被拋出在這裏:

var requestCultureInfo = new CultureInfo(Utils.GetRequestFirstLanguageAccepted(Request.Headers["Accept-Language"])); 

ResourceManager rm = ResourceManager.CreateFileBasedResourceManager(Constants.RESOURCE_FILE_LABELS_NAME, HttpContext.Current.Server.MapPath(Constants.RESOURCE_FILE_DIRECTORY), null); 

letsGetItStartedLabel.Text = rm.GetString(Constants.LETS_GET_IT_STARTED_LABEL, requestCultureInfo); 

非常感謝您的幫助!

回答

0

我注意到Azure中的一些本地化問題,特別是DateTimes(通常的罪魁禍首) - 您是否在美國以外的地方?我們位於英國,使用歐洲數據中心,但仍在Azure中獲得美國格式的日期。如果是這種情況,您可以嘗試創建en-US資源文件以查看是否解決了問題。我們現在在web.Config中添加了一個全球化標籤 - 這是一個短期修復,但在我可以重新訪問之前就已經解決了這個問題。

+0

實際上,我們基於智利,但現在我們正在使用HTTP請求中的Accept-Language頭來處理本地化。 我們已經創建的文件: 英語:SistemaRRHH.Signup.SignupLabels.en-US.resources 西班牙語:SistemaRRHH.Signup.SignupLabels.es-ES.resources 默認:SistemaRRHH.Signup.SignupLabels.resources 理論上,.NET應該從默認文件中獲取資源,如果它不匹配任何其他資源,但我認爲它沒有找到任何文件。 無論如何感謝@levelnis,如果我找到解決方案,我會在這裏發佈。 – lokip1