2012-09-01 5 views
3

웹 마스터가 런타임에 새로운 언어를 만들 수있는 다국어 기능이있는 ASP.NET 웹 응용 프로그램을 개발 중입니다.런타임에 리소스를 만드는 ASP.NET

내가 생각 접근 방식은 다음

  1. 사용자는 하나의 가능한 (생성되지 않음) 언어를 선택합니다.
  2. 사용자가 확인하면 응용 프로그램은 자동으로 기존 자원 집합을 복사하여 파일 이름을 새 문화권으로 바꿉니다. 예 : default.aspx.en-us.resx - default.aspx.es-ar.resx.
  3. 사용자가 최근에 생성 한 리소스를 편집합니다.

현재 2 단계의 문제가 있습니다. 리소스를 복사하는 데 성공했지만,이 새로운 리소스는 무시됩니다. 나는 새로운 리소스가 실행중인 어셈블리에 포함되지 않았기 때문에 이러한 문제가 발생한다고 생각합니다. 따라서 무시됩니다.

로컬 프로젝트에서 다음 코드를 테스트 할 때 수동으로 솔루션에 새 리소스를 추가 한 다음 다시 컴파일해야 제대로 작동합니다.

누구나이 작업을 수행하는 방법을 알고 있습니까?

이것은 언급 된 사본의 코드입니다.

string _dir = path_ + "App_LocalResources\\\\"; 
DirectoryInfo _dirInfo = new DirectoryInfo(_dir); 

foreach (FileInfo _file in _dirInfo.GetFiles("*en-us.resx")) { 
_file.CopyTo(_dir + _file.Name.Replace("en-us", idioma_.Cultura)); 

} 

string _dir2 = path_ + "App_GlobalResources\\\\"; 
_dirInfo = new DirectoryInfo(_dir2); 

foreach (FileInfo _file in _dirInfo.GetFiles("*en-us.resx")) { 
_file.CopyTo(_dir2 + _file.Name.Replace("en-us", idioma_.Cultura)); 
} 

대단히 감사합니다.

+0

, 특성'출력 Directory','사용자 정의 Tool' 및 '사용자 정의 도구 Namespace'으로 복사에 대한 설정'의회 처리를 빌드는 무엇 ... 당신을 도울 것입니다 .ResX 파일? – McGarnagle

+0

기본 resx 파일에는 다음 속성이 있습니다. 빌드 acttion : "내용", 출력 디렉터리에 복사 : "복사 안 함", 사용자 지정 도구 : -nothing-, 사용자 지정 도구 네임 스페이스 : -nothing- – Javier

+0

내 질문을 보완하기 위해 복사본 프로세스가 정상적으로 작동합니다. 문제는 복사 후에 언어를 변경할 때 이러한 새 리소스 파일이 무시되고 읽히지 않는다는 것입니다. – Javier

답변

0

데이터를 읽는 것과 같은 방법으로 리소스 파일을 만들거나 편집 할 수 없습니다. 리소스 파일을 만들거나 편집하려면 리소스 파일에 특정 구조화 된 XML 요소가 있으므로 XML 파일을 만들거나 편집하는 것과 같은 방식으로 작업해야합니다.

아마이 article 프로젝트에서

관련 문제