2012-12-15 3 views
2

내 응용 프로그램 (및 다른 많은 응용 프로그램)에서 나는 현지화를 사용하고자합니다. 그러나 거의 동일한 문자열을 관리하는 가장 좋은 방법은 무엇인지 모르겠습니다.C#/WPF에서 비슷하게 나타나는 지역화 된 문자열을 관리하는 방법은 무엇입니까?

몇 가지 질문 :

버튼의 '편집'는 메뉴 이름, 메뉴 항목의 이름으로 사용됩니다
  1. 내가해야 두 개의 리소스 문자열 또는 유일한 1 (동등한 가치 "편집"과 함께)?
  2. 화면에 편집 단추가 있고 Alt 키를 사용하려면 문자열을 "_ 편집"해야합니다.이 문자열을 별도의 문자열로 사용해야합니까?
  3. 그리고 새 페이지를 보여주는 버튼이있어서 내 대회의 경우 값은 "_ 수정"이어야합니다.

답변

3

그것은 신속한 답변 항목 (현지화)이 아니다하지만 난 적어도 질문에 대한 답변을하려고합니다 :

1) 예, 강제적이지 더 나은 경우에도 분리 된 각각의 텍스트를 유지.둘 중 하나를 변경하면 두 가지를 모두 변경할 위험이 없습니다 (다른 언어로 된 경우 컨텍스트로 인해 다른 언어로 번역되어야 함).

2) 물론 가능합니다. 이 문자열이 있다고 가정 해보십시오 (_Edit_Mark as read). 예를 들어, 이탈리아어에서는 _ModificaSegna come già letto으로 번역됩니다. 두 문자열 모두 동일한 문자에 "_"을 사용할 수 없지만 번역자가 신경 써야 할 문제입니다.

3) 아니요. 1) 다른 문자열을 분리 된 상태로 유지하십시오 (전에 말했던 것과 같은 이유로). 번역의 돈을 저축하기를 원한다면 문자열을 미리 파싱하여 번역자에게 줄 수있는 "정규화 된"결과물을 생성하는 프로그램을 작성할 수 있습니다 (가능한 경우 중복 문자열을 제거하고 유사한 문자열을 병합합니다).). 그러나 프로그램에서 세부 사항을 알지 못하게해야합니다.

요약 : 아니요, 내부의 유사한 문자열을 병합하지 마십시오. 정말 필요하다면 외부 프로그램 (다른 모듈의 문자열을 계정에 넣을 수 있으므로 더 나은 작업을 수행 할 수 있습니다) 및 적용 가능한 경우에만 완료됩니다 (케이스 3의 경우, 케이스 1의 경우 2 절대적으로 아닙니다).

+0

정교한 답변 주셔서 감사합니다 ... 귀하의 의견은 매우 사실이라고 생각합니다. 나는 현지화 비용을 지불 할 필요가 없기 때문에 아마도 3으로 갈 것입니다. 합리적으로 커질지라도 프로젝트 자체가 '취미 프로젝트'이기 때문에 번역을 위해 '자원 봉사자'를 사용합니다. –

+1

@MichelKeijzers 동의합니다. 국제화는 이러한 세부 사항 없이도 충분히 복잡합니다. 적어도 당신은 어디서나 복잡성을 옮길 것입니다. –

3

예 별도의 리소스 문자열을 만들어야합니다. 영어로 응용 프로그램의 여러 작업을 설명하기 위해 편집이라는 단어를 사용하고 있습니다. 그러나 다른 언어에서는 이러한 동작이 다른 단어로 설명 될 수 있습니다 (하나는 "편집"이고 다른 하나는 "변경"일 수 있음). 그래서 메뉴와 버튼에 다른 문자열을 지정해야합니다.

2

1) 당신은 디커플링 추상화을 선호한다 : 두 개념가하십시오 카테고리 "판"과 행동 "편집"을, 그래서 의미가 두 개의 문자열을 가지고 있습니다, 왜냐하면 영어가 아닌 "편집/편집"이 다른 언어에서는 허용 될 수 없기 때문입니다.

2) 여기서 두 개의 서로 다른 형식이있는 개념이 하나이므로 하나의 문자열과 변환 규칙 ("_"+ myString) 만 의미가 있습니다.

3) 다음에 따라 다릅니다.이 버튼에 의해 트리거되는 동작은 위의 것과 똑같은 개념입니다. 사용하는 경우 동일한 문자열을 사용하십시오.

이 모든 일반적인 고려 사항 당신은 물론 당신의 필요에 적응해야한다 : 당신이 정말로 다음 선행 n 개의 언어를 지원하는 다음 지침을 따르해야하는 경우

  • , 그들이 지역화하는 동안 자연스럽게 등장한다 과정 당신이 당신이 을 많이 가지고 영어가 아닌 다른 언어를 지원하고 있습니다 것을어딘가에 미래에 있음을 예상하는 경우

  • 같은 문자열을 사용하면 이제는 많은 일을하려고 너무 많은 시간을 허비하지 않을 수도 있습니다. 기회가 많아서 시간이 많이 걸리거나 핵심 기능을 더 잘 보완하거나 추가 할 수 있습니다.

관련 문제