현지화 메시지 형식

다국어화된 각 확장 프로그램에는 언어별 문자열을 제공하는 messages.json라는 파일이 하나 이상 있습니다. 이 페이지에서는 messages.json 파일의 형식을 설명합니다. 다국어화 및 현지화 방법에 관한 자세한 내용은 다국어화 페이지를 참고하세요.

필드 요약

다음 코드는 messages.json에 지원되는 필드를 보여줍니다. 'name' 및 'message' 필드만 필요합니다.

messages.json:

{
 
"name": {
   
"message": "Message text, with optional placeholders.",
   
"description": "Translator-aimed description of the message.",
   
"placeholders": {
     
"placeholder_name": {
       
"content": "A string to be placed within the message.",
       
"example": "Translator-aimed example of the placeholder string."
     
},
     
...
   
}
 
},
 
...
}

다음은 'prompt_for_name', 'hello', 'bye'라는 세 개의 메시지를 정의하는 messages.json 파일입니다.

messages.json:

{
 
"prompt_for_name": {
   
"message": "What's your name?",
   
"description": "Ask for the user's name"
 
},
 
"hello": {
   
"message": "Hello, $USER$",
   
"description": "Greet the user",
   
"placeholders": {
     
"user": {
       
"content": "$1",
       
"example": "Cira"
     
}
   
}
 
},
 
"bye": {
   
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!",
   
"description": "Say goodbye to the user",
   
"placeholders": {
     
"our_site": {
       
"content": "Example.com",
     
},
     
"user": {
       
"content": "$1",
       
"example": "Cira"
     
}
   
}
 
}
}

필드 세부정보

이 섹션에서는 messages.json 파일에 표시될 수 있는 각 필드를 설명합니다. 메시지 파일이 사용되는 방식(예: 특정 언어가 모든 메시지를 정의하지 않는 경우 발생하는 상황)에 관한 자세한 내용은 다국어화를 참고하세요.

이름

'이름'이라는 필드가 없습니다. 이 필드의 이름은 메시지 이름으로, __MSG__name___ 또는 getMessage("_name_")에 표시되는 것과 동일한 이름입니다.

이름은 현지화된 메시지 텍스트를 검색할 수 있는 대소문자를 구분하지 않는 키입니다. 이름에는 다음 문자를 포함할 수 있습니다.

  • 가나다순
  • a-z
  • 0-9
  • _ (밑줄)
  • @

다음은 섹션에서 가져온 이름의 세 가지 예입니다.

messages.json:

"prompt_for_name": {
 
...
},
"hello": {
 
...
},
"bye": {
 
...
}

이름 사용 예시를 더 보려면 다국어화 페이지를 참고하세요.

메시지

placeholders를 포함할 수 있는 문자열 형식의 번역된 메시지입니다. 특정 자리표시자를 참조하려면 $_placeholder_name_$ (대소문자를 구분하지 않음)를 사용합니다. 예를 들어 'our_site'라는 자리표시자를 $our_site$, $OUR_SITE$, $oUR_sITe$로 참조할 수 있습니다.

다음은 섹션에서 가져온 메시지의 세 가지 예입니다.

messages.json:

"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"

문자열에 달러 기호 ($)를 넣으려면 $$. For example, use the following code to specify the message Amount (in $):

messages.json:

"message": "Amount (in $$)"
사용합니다.

$USER$ 같은 자리표시자가 대체 문자열(i18n.getMessage substitutions 매개변수를 사용하여 지정된 문자열)을 참조하는 선호되는 방법이지만 메시지 내에서 직접 대체 문자열을 참조할 수도 있습니다. 예를 들어 다음 메시지는 getMessage() 전달된 처음 3개의 대체 문자열을 참조합니다.



messages.json:



예에도 불구하고 메시지 내에서 $_n_ 문자열 대신 자리표시자를 계속 사용하는 것이 좋습니다. 자리표시자를 좋은 변수 이름으로 생각하세요. 코드를 작성하고 1주일 후에 $1 무엇을 의미하는지 잊어버리겠지만 자리표시자의 의미는 있습니다.
자리표시자 대체 문자열에 관한 자세한 내용은 placeholders 섹션을 참고하세요.



설명



선택사항. 메시지에 대한 설명으로, 번역사가 최상의 번역을 만드는 도움이 되는 맥락 또는 세부정보를 제공합니다.



다음은 섹션에서 가져온 가지 설명 예입니다.



messages.json:



placeholders



선택사항. 메시지 내에 사용할 하나 이상의 하위 문자열을 정의합니다. 자리표시자를 사용하는 것이 좋은 가지 이유는 다음과 같습니다.




  • 메일에서 번역하면 되는 텍스트를 정의할 있습니다. 예: HTML 코드, 상표 등록 이름, 형식 지정자

  • getMessage() 전달된 대체 문자열을 참조합니다. 예: $1.



자리표시자에는 이름, '콘텐츠' 항목, 선택사항인 '예시' 항목이 있습니다. 자리표시자의 이름은 대소문자를 구분하지 않으며 메시지 이름 동일한 문자를 포함할 있습니다.



'content' 항목의 값은 i18n.getMessage 메서드의 substitutions 매개변수를 사용하여 지정되는 대체 문자열을 참조할 있는 문자열입니다. '콘텐츠' 항목의 값은 일반적으로 'Example.com' 또는 '$1'입니다. 존재하지 않는 대체 문자열을 참조하는 경우 문자열이 생성됩니다. 다음 표는 $_n_ 문자열이 substitutions 매개변수로 지정된 문자열에 어떻게 대응하는지 보여줍니다.



substitutions 매개변수1달러의 가치2달러의 가치3달러의 가치
userNameuserName """"
["Cira", "Kathy"]"Cira""Kathy"""


'example' 항목 (선택사항이지만 적극 권장됨)은 콘텐츠가 최종 사용자에게 표시되는 방식을 보여주므로 번역사에게 도움이 됩니다. 예를 들어 달러 금액의 자리표시자에는 "$23.45" 같은 예가 있어야 합니다.



섹션에서 가져온 다음 스니펫은 'our_site' 'user'라는 자리표시자 개가 포함된 '자리표시자' 항목을 보여줍니다. 'our_site' 자리표시자에는 값이 'content' 필드에서 명확하므로 'example' 항목이 없습니다.



messages.json: