2016-09-23 5 views
0

winform, C# 응용 프로그램을 현지화 된 언어로 실행하고 싶습니다. 목표 사용자 .Net은 많은 사용자가 여전히 XP를 사용하고 있기 때문에 3.0입니다. 응용 프로그램은 시스템 트레이 응용 프로그램입니다.내 응용 프로그램이 로컬 CurrentUICulture로 변환되지 않는 이유는 무엇입니까?

모든 문자열을 Resources.resx에 넣었고 ResX Resource Manager를 사용하여 필요한 언어별로 Resources.XX.resx 파일을 생성했습니다.

나는 코드를 사용하여 다른 언어 (즉, 핀란드어)에 CurrentUICulture 설정 한 경우 : 그것은 예상대로 작동 핀란드의 모든 형태를 보여줍니다

Thread.CurrentThread.CurrentUICulture = new CultureInfo("fi-FI"); 

합니다. 나는 윈폼의 모든 핀란드어로 설정 한 언어와 시스템에 응용 프로그램을 설치하는 경우

그러나 양식이 속성을 가지고 내가 확인했다

(영어도 중립 문자열) 테 영어 문자열을 마련 localizable을 true로 설정합니다.


왜 내가 CurrentUICulture를 하드 코딩 할 때하지만 난하지 않을 때는 작동합니까?

PC의 UI 언어를 확인하고 응용 프로그램 CurrentUICulture를 업데이트 할 수있는 다른 방법이 있습니까?

+0

위성 어셈블리가 클라이언트 컴퓨터의 응용 프로그램 근처에 배치되어 있는지 확인의 언어로 표시됩니다. –

+0

'Thread.CurrentThread.CurrentUICulture'를'new CultureInfo ("fi-FI")로 설정하면'그것은 무엇을 의미합니까 : *'CurrentUICulture'를 하드 코딩 할 때 왜 작동합니까? * –

+0

내 개발 PC에서 다음을 입력하여 테스트합니다. Thread.CurrentThread.CurrentUICulture = new CultureInfo ("fi-FI"); program.cs의 시작 부분에서 그러나 위의 행을 제거하고 핀란드어로 실행중인 PC를 사용하면 텍스트가 영어로 표시됩니다. – Luke

답변

1

enter image description here 당신은 위치를 설정할 수 있습니다 및 언어 양식에, 그것은 창

+0

안녕하세요 @DT, 답장 +1을 보내 주셔서 감사합니다.나는 이미 이것을 선택했다. 이 방법을 구현하려면 각 양식 resx를 개별적으로 업데이트해야 함을 의미합니까? 내가 맞습니까? 현재 번역을 최소화하기 위해 다중 파일 형식에 사용되는 여러 문자열이 있으므로 속성 아래에 하나의 resx가 있습니다. 귀하의 대답에 그것을하는 방법은 약 5 resx 폴더의 유지 보수가 필요합니다. – Luke

+0

네, 맞습니다. –

+0

resource.resx 파일을 참조하도록 form.resx를 가져 오는 방법이 있습니까? 또는 form.resx 대신 resource.resx를 참조하도록 참조하는 양식을 변경 하시겠습니까? – Luke