최근에 .NET을 사용하여 현지화를 시도했습니다. 본질적으로, (언어 및 지역화 가능 속성을 사용하여) 양식을 사용자 정의하고 그에 따라 문화를 변경하는 방법을 배웠습니다.로컬라이제이션 .NET. ResourceManager를 사용할 때의 대체 언어
그러나 하드 코딩 된 영어 문자열을 자동 생성 리소스 파일로 마이 그 레이션하고 .GetString ("Key")을 사용할 때 - 행복하다고 말하자 : P.
전적으로 하드 코딩 된 문자열 변환 전용 resx 파일 세트를 만들기로했습니다. 그들은 [name]. [culture-code] .resx의 규정/요구 사항을 따랐습니다. 나는 각 관련 언어를 위해 이것들을 만들었다. 예 : appstrings.de.resx (독일어) 및 appstrings.resx (불변 기준선).
이 새로운 자원을 활용하기 위해, 나는
My.Application.ChangeUICulture("de")
를 사용하여 (예를 들어, 독일어) 현재 UI 문화가 설정된는 ResourceManager 및 자원 설정
Dim resManager As New ResourceManager("LanguageTest.appstrings", Assembly.GetExecutingAssembly)
Dim resSet As ResourceSet = resManager.GetResourceSet(My.Application.UICulture, True, True)
의 인스턴스를 생성 원본 호
t resSet.GetString ("Key")은 appstrings.de.resx에 명시 적으로 정의되어 있으면 빈 문자열을 반환합니다. 어쨌든 appstrings.resx ("Key"가있는 곳)으로 폴백 할 수 있나요? 기본 기준선으로 가정 했습니까? 실제 팁 자체가 작동하지 않았다 동안
업데이트
랩소디 resManager.GetString를 사용하여, 그것은에 - 사실 흥미로운 점을 촉발 않았다, 아래 제안을했다 ("키") resSet에 반대 .GetString ("Key"). 지금까지 결함없이 작동하는 것으로 보입니다. 즉, 특수 언어 파일에있는 값이 반환되는 반면 '누락'값은 단일 키로 액세스 할 때 기본 문화권으로 전환됩니다.
이후의 문제
유일하게 남아있는 문제가 될 것이다 여부가 해로운 될 것입니다 캐시 ResourceSet 반대로 ResourceManger를 사용하여 성능에 미치는 영향?
'appstrings'리소스가 My.Resources 네임 스페이스에 없습니다. 그러나 코드 솔루션은 흥미로운 점을 제기합니다 (업데이트 된 질문 참조). –