2008-11-13 6 views
0

툴팁의 레이블이나 항목을 디자인 모드의 변수에 바인딩해야합니다. 설정이 아닌 buit-in 리소스를 사용하지 않으므로 데이터 섹션이 유용하지 않습니다. 클래스에 매핑하는 XML에서 값을 가져옵니다.디자인 모드에서 Winforms에 대한 지역화?

나는 많은 프로그램이 있다는 것을 알고있다 : http://www.jollans.com/tiki/tiki-index.php?page=MultilangVsNetQuickTourForms 하지만 컴파일 된 resx와 함께 작동합니다. 컴파일되지 않은 XML을 사용하고 싶습니다.

나는 programatically 내가 그것을 할 수있는 방법을 알고, (예를 들어, UpdateUI()), 그리고 내가이 같은 새로운 값을 할당 알아요 : this.tsBtn.Text = Class.Texts.tsBtnText;

디자인 모드 나 현재보다 최적화 된 방법으로 할 수있는 일이 필요합니다. 밖에있는 사용자 정의 컨트롤이나 확장 기능이 있습니까?

답변

1

알렉산더의 응답이 이러한 목표를 달성하기위한 하나의 방법이지만, 장기적으로는 매우 많은 시간이 소요 될 것 수 .NET과 Visual Studio에 내장 된 도구 나 기능을 사용하고 싶지 않거나 적어도 상용 타사 도구를 사용하고 싶지 않은 이유는 더 큰 질문입니다. 이미 해결 된 문제를 해결하는 데 많은 시간을 투자 했습니까?

+0

문제는 내가 사람들이 XML에서 사용하는 텍스트를 번역 할 수있는 능력을 갖기를 원치 않는다는 것입니다. XML을 웹에 넣고 아무 것도 컴파일 할 필요없이 직접 번역본을 웹에 전달할 수 있습니다. – netadictos

+1

내장 .NET 기능을 사용할 수 있으며 번역기 친화적 인 RESX 편집기를 사용할 수 있습니다. 오픈 소스로 Resx Editor. 이전에 사용하지 않았으므로 품질이나 유용성을 보증 할 수 없습니다. –

+0

링크가 죄송합니다. http://sourceforge.net/projects/resx/ –

0

기본 승 컨트롤을 상속 받고 OnPaint 메서드를 재정의하는 방법을 시도해보십시오. 예를 들어 벨로우즈는 Tag 속성에 포함 된 값에 따라 페인트에 텍스트가 설정된 버튼입니다 (태그 속성을 사용하여 일치하는 리소스를 읽는 데 사용할 키를 설정한다고 가정). 그럼 당신은 XML 파일에서 모든 캐시 리소스 문자열 (예 : 가상 MyGlobalResources 클래스를 읽을 수있는 방법을 찾을 수 있습니다.

public class LocalizedButton : Button 
{ 
    protected override void OnPaint(PaintEventArgs pevent) 
    { 
     base.OnPaint(pevent); 
     this.Text = MyGlobalResources.GetItem(this.Tag.ToString()); 
    } 
} 
0

위성 어셈블리를 사용하여 현지화하고 XML 파일을 소스 코드로 사용하여 생성 할 수 있습니다. 번역 된 개체. 인공 위성에 관한 상세 정보 http://msdn.microsoft.com/en-us/library/21a15yht(VS.71).aspx

디자인 모드가 아닌 것은 확실하지만, 귀하의 제한에 따라이 방법을 사용할 수는 없습니다.

관련 문제