2011-03-28 4 views
0

오늘 이상한 일이 생깁니다.이상한 일이 ASP.net 리소스 파일에서 발생합니다

저는 글로벌 리소스를 사용하는 다국어 애플리케이션을 개발 중입니다.

각 언어에 대해 하나씩 여러 파일이 있습니다. ie companies.es.resx, companies.en.resx 등 다른 일반적인 다국어 앱과 특별하거나 다른 것은 없습니다.

오늘 앱이 실패하고 HttpContext.GetGlobalResourceObject가 리소스 파일을 찾지 못해 문제가 발생했습니다.

잠시 머리를 긁적 거렸다가 어제 기억이납니다. Visual Studio를 닫기 전에 가비지 인 리소스 파일을 삭제합니다. 이 파일은 사용되지 않았으며 실제로는 비어있었습니다.

단지 "알지 못함"을 위해 새로운 빈 리소스 파일을 만들고 Walla !!! 모든 것이 다시 완벽하게 작동하기 시작합니다.

이 파일과의 유일한 차이점은 test.resx와 같은 언어가없는 것입니다. 나는 그것을 얻지 않는다, 그것은 매우 별나다.

또 다른 재미있는 점은 "리소스"가있는 리소스에 액세스하려고 할 때입니다. 테스트는 내가 얻는 유일한 리소스입니다.

어떤 아이디어가 발생하고 있습니까?

나는 감사 MVC 3로

비주얼 스튜디오 2010을 사용하고 있습니다! 에드거

답변

0

기본 리소스 파일 (companies.es.resx 또는 companies.fr.resx 등)을 다른 언어 기반의 파일이 필요합니다.

이유 : 파일이 없으면 현재 문화권과 일치하여 .net에서 기본 파일이 사용됩니다. 예를 들어, 당신은 예를

에 대한 Espanish 프랑스어

  • .es.resx 두 개의 언어를 기반으로 파일

    1. .fr.resx이 그리고 현재 사용자의 언어가 예를 Arabic에 대한이 아닌 경우 다음 기본 리소스 파일이 될 것입니다 익숙한. 즉 특정 언어 확장자가없는 .resx입니다.

  • +0

    감사! 그게 너무 의미가있어! 이제 의미없는 오류 메시지의 의미를 이해합니다. – epaulk

    +0

    @epaulk, 당신은 디폴트 리소스 파일'resx'을 포함시켜야하며, 당신의 지역화 된'.es.resx' 파일이 디폴트'.resx' 파일보다 적은 키를 가질 가능성이 있습니다 –

    0

    저는 VS2010의 리소스에도 문제가있었습니다. 리소스 테이블에 존재하지 않는 리소스를 참조하려고 시도한 후에 Visual Studio가 중단되었습니다. 그것이 항상 부숴 졌기 때문에 그것은 잘못된 참조를 바로 잡을 수있게하지 못했습니다. 정규 텍스트 편집기로 파일의 잘못된 행을 삭제 한 다음 VS를 다시 실행하여이 문제를 해결했습니다. VS2010에는 리소스에 문제가있는 것으로 보입니다. 다국어 프로젝트에 대한 자원 파일로 작업 할 때 (companies.resx 같은 언어 확장없이)

    관련 문제