문제

ASP.NET에 내장 된 웹 응용 프로그램이 있으며 리소스 파일을 사용하여 여러 언어를 지원합니다. 내가 가진 문제는 Visual Studio에 새 언어 파일 만 추가 할 수 있다는 것입니다. 새로운 언어를 포함 시키려면 전체 응용 프로그램을 재구성해야합니다. 그물을 검색 한 후 리소스 파일의 컴파일이 .NET 컴파일러에서 수행 될 수 있음을 알게되었습니다. 다음 명령을 사용했습니다.

resgen.exe /compile langfile.en.resx

al.exe /out:enapp_globalresources.resources.dll /culture : en /embedresource : langfile .en.resources

파일은 웹 사이트 폴더에 복사되지만 작동하지 않습니다. 웹 페이지에서 새 언어를 선택하면 기본 리소스 파일에서 문자열이로드됩니다. VS에서 리소스 파일을 만들면 괜찮습니다. 두 개의 DLL 파일의 크기를 확인했으며, VS에 의해 생성 된 파일과 나 자신이 컴파일 한 파일은 같은 크기를 가지고 있지만 컴파일 된 것은 작동하지 않습니다. 위의 명령에서 다른 매개 변수를 사용해야한다고 생각할 수는 있지만 실제로는 모릅니다.

모든 도움은 정말 감사합니다.

도움이 되었습니까?

해결책

내장 리소스 버전을 사용하는 대신 자신의 표현식 빌더를 작성하여 원하는 것을 달성하고 데이터베이스 또는 XML 파일에서 정보를 가져올 수 있습니다. 기본적으로 System.web.compilation.expressionBuilder에서 자신의 클래스 상속을 작성한 다음 web.config에 다음과 같이 등록하십시오.

<compilation>
  <expressionBuilders>
    <add expressionPrefix="CustomResources" type="CustomResourcesExpressionBuilder"/>
  </expressionBuilders>
</compilation>

그런 다음 일반 자원처럼 참조 할 수 있습니다.

<%$ CustomResources:Section, Key %>

이것에 대한 기사를 찾을 수 있습니다 여기 그리고 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top