2012-02-24 1 views
1

전체 응용 프로그램을 다른 언어로 번역하고 싶습니다. 리소스 파일 인 LocalizableResources.resx가 포함 된 별도의 글로벌 리소스 프로젝트를 추가했습니다. 그러나 나는 모든 자바 스크립트 문자열 "JS_"로 시작하는스크립트에있는 문자열의 현지화

*var resourceDictionary = new ResourceReader(FILEPATH OR STREAM) 
           .Cast<DictionaryEntry>() 
           .Where(x=>x.Key.ToString().StartsWith("JS_")) 
           .ToDictionary(entry => entry.Key.ToString(), entry => entry.Value.ToString()); 
      var json = Serializer.Serialize(resourceDictionary);* 

, 여기에 내가 뭘하려는 자바 스크립트 내에서 사용되는 문자열에 붙어입니다. 내가 직면하고있는 문제는 리소스 파일이 다른 프로젝트 (웹 종점이 아닌)로 존재하기 때문에 FILEPATH/STREAM을 가져올 수 없다는 것입니다. 누군가 다른 방법을 제공하거나이 방법의 실수를 지적하면 정말 도움이 될 것입니다. 미리 감사드립니다.

답변

0

JQuery와 같은 Javascript 라이브러리를 사용합니까? i18n 용 기본 기능 또는 플러그인이 있습니다.

코드에 대해 ResourceManager를 사용하여 리소스 파일에 직접 액세스하는 대신 리소스의 모든 키를 검색 할 수 있습니다.

+0

도움 주셔서 감사합니다. ResourceManager를 사용하여 모든 키를 검색했지만 정상적으로 작동했습니다. – user1045047

0

간단한 해결책은 번역을 포함하는 변수를 마스터 페이지에 정의하고 .js 파일에서 사용하는 것입니다. Razor에 대한 다음 예제를 참조하십시오.

<script type="text/javascript"> 
    var Translation = { 
    helloWorld: '@MyResourceFile.HelloWorld', 
    book: '@MyResourceFile.Book' 
} 
</script> 
<script src="@Url.Content("~/Scripts/MyScriptFile.js")" type="text/javascript" /> 
+0

이 작업은 가능하지만 모든 문자열을 수동으로 추가해야 할 필요가 없습니다. 또한 스크립트에 문자열을 추가하고자 할 때 MyResourceFile과 마스터 페이지를 사용하기 위해 두 곳에서 수정해야합니다. – user1045047

+0

사실,이 경우 가장 간단한 해결책이었다 :) – Marthijn