아포스트로피가 리소스 번들에 배치 될 때 제대로 번역되지 않습니다.
아포스트로피는 리소스 번들에 배치 될 때 제대로 번역되지 않습니다.
key = {0}'s brush is {1} centimeters tall
(e.g. Sam's brush is 4 centimeters tall)
java.util.ResourceBundle
여기서 문제가 될 수있는 항목 에서 위의 키를 형식화하면 아포스트로피가 누락됩니다 .
작은 따옴표를 다음과 같이 이스케이프해야합니다.
key = {0}''s brush is {1} centimeters tall
나는 문제가 자원 번들이 아니라 메시지를 인쇄하는 데 사용 하는 MessageFormater 라고 강력히 믿습니다 .
문자열 내에서 ''( 두 개의 작은 따옴표 )는 작은 따옴표를 나타냅니다. QuotedString은 작은 따옴표를 제외한 임의의 문자를 포함 할 수 있습니다. 둘러싼 작은 따옴표가 제거됩니다. UnquotedString에는 작은 따옴표와 왼쪽 중괄호를 제외한 임의의 문자가 포함될 수 있습니다. 따라서 형식화 된 메시지 '{0}'가되는 문자열은 '' '{'0} ''또는 '' '{0}' ''로 작성 될 수 있습니다.
따라서 다음과 같이 작성해야합니다.
{0}''s brush is {1} centimeters tall
여기 에서 javadoc을보세요
문자열 내에서 " ''"는 작은 따옴표를 나타냅니다. QuotedString은 작은 따옴표를 제외한 임의의 문자를 포함 할 수 있습니다. 둘러싼 작은 따옴표가 제거됩니다. UnquotedString에는 작은 따옴표와 왼쪽 중괄호를 제외한 임의의 문자가 포함될 수 있습니다. 따라서 형식화 된 메시지 " '{0}'"가되는 문자열은 " '' '{'0} ''"또는 " '' '{0}' ''"로 기록 될 수 있습니다.
큰 따옴표가 필요합니다. 즉 {0}의 브러시 높이가 {1} 센티미터입니다.
@Ralph의 답변에 추가 : 다음 MessageFormat
과 같은 텍스트가있을 때 이것이 사실임을 알게 될 것입니다.
text1=It's too late
대
text2={0}''s too late
text1
아마도 MessageFormater를 통해 실행되지 않을 것입니다 (예 : 인자가 전달되거나 전달되지 않으면 spring은 다른 코드 경로를 가짐) text2
. 따라서에서 두 개의 작은 따옴표를 사용하면 그렇게 text1
표시 될 수 있습니다. 따라서 인수가 형식화되었는지 여부를 확인하고 그에 따라 하나 또는 두 개의 작은 따옴표를 사용해야합니다.
위의 방법 중 어느 것도 작동하지 않은 것처럼 완전히 멈춘 경우 아포스트로피 기호를 유니 코드 : \ u0027로 바꿀 수 있습니다. 속성 파일에서 항상 UTF 기호를 사용할 수 있습니다.
속성 편집기 플러그인 사용 고려 (Eclipse 용)
http://propedit.sourceforge.jp/index_en.html
string.xml에 Android 문제가있는 모든 사람은 작은 따옴표 대신 \ '\'를 사용하십시오.
'Programing' 카테고리의 다른 글
Java 객체를 XML 문자열로 변환 (0) | 2020.10.05 |
---|---|
Java Webservice Client (최상의 방법) (0) | 2020.10.05 |
변수에 로컬 JSON 파일로드 (0) | 2020.10.05 |
AngularJS의 ng-options에서 값 속성을 어떻게 설정합니까? (0) | 2020.10.04 |
자바 : 목록 변환 (0) | 2020.10.04 |