2009-05-22 3 views
22

저는 언어 번역에 사용할 문자열을 저장하기위한 몇 가지 리소스 파일을 포함 할 가능성이있는 C# 응용 프로그램을 만들고 있습니다. 내 리소스 파일에서 키에 대한 명명 규칙을 생각해 내려고합니다. 나 전에 이걸 다 털어 놓은 사람 있니?리소스 (.resx) 파일 주요 명명 규칙?

답변

11

파스칼 명명 규칙을 사용하십시오. 모듈이나 클래스에 키를 지정하지 마십시오. 재사용 할 수 있도록 일반화하십시오.

는 예 : ReadWriteWarningMessage

는 점은 규칙이 메뉴 항목에 대한 잘 작동 분리. 그러나 동적으로 생성 된 문자열이나 사용자 메시지는 어떻게됩니까?

0

당신이

CloseConfirmation 같은 자원의 이름 값 쌍이있는 경우 - 저장하지 않고 창을 닫으시겠습니까?

메시지라는 새 클래스를 추가하십시오.

public static class Messages 
{ 
    public const String CloseConfirmation = "CloseConfirmation"; 
    public static String GetMessage(String messageId) 
    { 
     return //your namespace//.Properties.Resources.ResourceManager.GetString(messageId); 
    }} 

하고이 도움이 될 것입니다

MessageBox.Show(Messages.GetMessage(Messages.CloseConfirmation)); 

희망을 사용하여 액세스 할 수 있습니다.

+1

이것은 이름 지정 규칙이 아니라 리소스 파일의 메시지에 액세스하는 방법에 대한 전략에 대해 자세히 설명합니다. – Juri

+0

감사합니다. Prajeesh, 문제없이 리소스에 액세스 할 수 있습니다. 내 문제는 내가 몇 백 개의 키를 가질 수 있으며, 그들을 찾는 쉬운 방법을 원한다는 것이다. 나는 다음과 같은 창작 컨벤션을 보았습니다 : Menu.File.Open은 메뉴 캡션의 예입니다. 이 방법이 마음에 들지만 강력하게 형식화 된 리소스를 사용할 때는 소수를 미리 준비하지 않았습니다. 그래도 고마워... – Dawsy

4

Menu_File_Open 또는 Place_StringDescription과 같은 밑줄을 사용하셨습니까? 저는 현재 공통 항목이 Common_PressHereTo와 같이 Common_로 이동하고 특정보기가 MainMenu_FileOpen과 같은 각각의 장소로 이동하는 계획을 사용합니다. 일반적으로 밑줄 앞에는 리소스가 나타나는 위치를 입력하고 밑줄 뒤에는 설명 텍스트를 입력하십시오.

2

프로그램 구조를 레이아웃하는 데 사용하는 네임 스페이스와 비슷한 방식으로 구성하려고합니다. 따라서 MyCompany.MyProduct.MyModule을 사용하면 해당 모듈의 문자열은 MyModule_Blah_Blah가됩니다. 그렇게하면 제품 전체에서 고유합니다.