문제

우리는 자원 파일에 형식을 포함하는 많은 문자열을 가지고 있습니다.

"{0}은 {1}으로 이동했습니다."

이 문자열은 전달됩니다 String.format () 응용 프로그램에 의해 번역기는 때때로 "형식 마커"를 엉망으로 만들므로 리소스 파일의 모든 문자열에 유효한 형식이 있는지 확인하는 도구를 찾거나 쓰려고합니다.

각 키에 대해 string.format로 전달되는 Args의 수를 알고있어 유효성 검사에도 공급할 수 있습니다.

따라서 "{"일치 "}"가 형식 문자열에서 대부분의 오류를 쉽게 찾을 수있는 방법이 있습니까?

(.NET을 사용하고 있습니다.이 확인은 물론 빌드 프로세스의 일부로 수행됩니다)

도움이 되었습니까?

해결책 3

나는 합리적인 결과를주는 간단한 솔루션을 생각해 냈으며, 형식 문에 대한 인수의 수는 있지만 인수의 유형은 아닙니다. 그러나 대부분의 논쟁은 현입니다.

그래서

if (numberOfArguments == 3)
{
  try
  {
    String.Format(theTranslatorString, "", "", "")
  }
  catch
  {
     // tell the translator there is a problem with the string format
  }
}

물론 이것은 실생활의 각 논쟁에 대해“만약”없이 쓰여질 것입니다.

다른 팁

이것은 고전적인 단위 테스트 시나리오처럼 들립니다. 소스 코드 커밋 트리거에서 자동화 된 빌드/단위 테스트를 구동 할 수 있습니까? 단위 테스트는 단순히 각 형식 문자열이 여전히 구문 분석 할 수 있는지 확인합니다.

표현식의 문자열을 검증하는 것처럼 보이므로 사용해야합니다. 정규 표현보다 링크 텍스트

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top