2017-10-06 1 views
0

이 제목을 붙이는 방법을 모르겠습니다. 내 응용 프로그램은 지역화를 위해 .regx를 사용하고 일부 문자열은 {0-9} 태그를 가지며 string.Format에 입력됩니다. 첫 번째 RTL 번역을받을 때까지 제대로 작동했습니다. string.Format이 충돌하여 문자열의 형식이 잘못되었다고 불평했습니다. 여기에 충돌 문자열의 예입니다string.Format의 부분적으로 {0} 인 RTL 및 LTR을 수정하는 방법

는 "{اعاده تسميه"{0

그것은 올바른 보이지만이 {0} 실제로 절반으로 분할됩니다 -은 RTL 및 LTR 텍스트의 혼합입니다. 문자열을 마우스로 선택하여 드래그하여 문제를 볼 수 있습니다.

저는 이것을 대량으로 수정하려고합니다. (전체 가치 RTL을 만드십시오) 놀랍게도 (그리고 매우 실망 스럽습니다.) 입증되었습니다. 이것을 고치는 좋은 방법이 있습니까?

+0

문제는 문자열이 "'{'로 시작하고'"{0' "로 끝나는 문자열처럼 보입니다. 나는 유니 코드에 능숙하지 않지만 [아랍어/RTL 텍스트를 왼쪽에서 오른쪽으로 구문 분석] (https://stackoverflow.com/q/12630566/580951)은 왼쪽에서 오른쪽으로 표시 (U + 200E) 아랍어를 구별하는 것. – Romoku

답변

0

string.Format()은 소스 문자열이나 매개 변수와 상관이 없습니다. 예를 들어 다음 사항을 고려 :

string.Format("لغه العربیه {0} زبان فارسی {1} کشور افغانستان {2}", p1, p2, p3);

모든 문자열이 p1, p2, p3에서 설정할 수있는 어떤 오른쪽에서 왼쪽 또는 왼쪽에서 오른쪽으로 문자열입니다. 또한 무의미한 방식으로 작동합니다. 기본 문자열은 왼쪽에서 오른쪽 문자열이고 매개 변수는 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽입니다.

여기서 중요한 점은 텍스트 방향은 문자열 자체가 아닌 UI의 문제라는 점입니다. UI 구성 요소는 문자열을 오른쪽에서 왼쪽 또는 왼쪽에서 오른쪽으로 표시하려고 할 수 있습니다.

+0

주문은 여전히 ​​정확합니다. 여는 괄호는 나머지 태그 옆에 있습니다. string.Format ("{معالجه {0", p1) throws 'System.FormatException'in mscorlib.dll 추가 정보 : 입력 문자열의 형식이 올바르지 않습니다. – Klocman

+0

'string.Format ("معالجه {0}", p1)'을 사용하면 예외를 throw해서는 안됩니다. 이 경우, 리터럴 인''معالجه ''은'{0}'매개 변수 앞에옵니다. –

관련 문제