2009-10-04 3 views
0

ASP.NET MVC 프로젝트의 국제화 구현 방법을 살펴 보겠습니다. 나는 사용자가 언어를 변경할 수 있도록하는 방법을 찾고있다. 내 머리글은 지원되는 langauages ​​각각을 포함하는 드롭 다운 목록입니다. 누구나 몇 가지 질문이 떠오른 사람 :ASP.NET MVC 응용 프로그램에서 구성 데이터 캐싱 및 액세스

  1. 지원되는 언어 목록을 저장하는 방법은 무엇입니까? (예 : "en", "English", "fr", "French"등) xml 파일? .config 파일?
  2. 이 파일을 파일에 저장하면 캐시해야합니다 (시작할 때). 그렇다면 XML 데이터를 목록에로드하고 (어떻게 든)이 목록을 System.Web.Cache에 저장하는 것이 가장 좋을까요? 신청 상태?
  3. 이 데이터를보기에로드하는 방법 (드롭 다운에 표시하기 위해)? 보기에 캐시에 대한 직접 액세스 권한을 부여 하시겠습니까?

그냥

감사합니다 ... 내가 여기에 올바른 방향으로 갈거야 있는지 확인하려면.

답변

1

먼저 "국제화"에 대해 이해해주십시오.

a) 귀하는 여러 언어

b) 귀하는 여러 언어

나는이 주제에 대한 몇 가지 설명을했던이 다른 질문에 보라의 콘텐츠를 원하는에 UI를 갖고 싶어 : 질문에 대한 Advice on ASP.NET Multi-Lingual Strategy

:

  1. 나는 DB 어디를 지원 언어 목록을 저장하는 조언을 것입니다 2 문자 코드로 식별 할 수 있습니다. ISO 3166-1 alpha-2 country codes을 참조하십시오.

  2. ASP.NET WebForms 세계에서 온다면 가장 먼저 알아야 할 것은 ASP.NET MVC를 처리 할 때 상태 유지 및 캐시 일 것입니다. 세션에 간단한 단일 값을 저장하거나 현재 활성화 된 언어를 나타내는 쿠키를 저장할 수 있습니다. 서버 측은이 제출 된 값을 기반으로 필요한 언어로보기를 생성합니다.

  3. 컨트롤러에서 뷰에 전달할 모델을 인스턴스화합니다. 모델에는 사용 가능한 언어 목록이있는 속성을 가질 수 있습니다. 뷰는 해당 모델에서 표시 할 데이터를 소비 할 수 있습니다.

캐시 된 버전의 언어를 저장할 수있는 위치에 관한 정보입니다. 첫 번째 요청 (예 : 약한 참조)에서 초기화 될 정적 목록이있는 것을 고려할 수 있습니다. 그러면 해당 응용 프로그램 도메인에 대한 모든 요청에서 공유되므로 웹 응용 프로그램의 모든 사용자가 동일한 값을 볼 수 있습니다 (도메인이 재활용되거나 서버가 다시 시작될 때까지). 서버 세션을 사용하려면 새 사용자 세션마다 목록이 다시 작성됩니다.

+0

방금 ​​배경으로 국제화 부분을 언급했지만 여기서 문제는 더 일반적입니다. 국제화는 실제로 드롭 다운을 채우는 것이 아니라 오히려 그 안에 들어갑니다. – UpTheCreek

+0

감사합니다. 몇 가지 요점을 명확히하기 위해서 ... 1) 나는 이것을 위해 DB에 가지 않을 것입니다. 모든 페이지에서 필요하며 많이 변경하지 않습니다.2) 캐싱에 관해서는 사용자 선택 (쿠키에 저장 됨)이 아닌 사용 가능한 언어 목록 캐싱을 의미합니다. – UpTheCreek

+0

끝에 업데이트가 표시됩니다. –

관련 문제