다국어화된 각 확장 프로그램에는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."
},
...
}
},
...
}
예
messages.json
파일은 'prompt_for_name', 'hello',
"안녕히 계세요":
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
파일에 표시될 수 있는 각 필드를 설명합니다. 자세한 내용은
메시지 파일이 사용되는지 여부를 예로 들 수 있습니다.
다국어 지원.
이름
실제로 '이름'이라는 필드는 없습니다. 이 필드의 이름은 메시지의 이름이며
name(__MSG__name___
또는 getMessage("_name_")
에 표시되는 이름)입니다.
이름은 현지화된 메시지 텍스트를 검색할 수 있게 해 주는 대소문자를 구분하지 않는 키입니다. 이름은 다음 문자를 포함해야 합니다.
- 가나다순
- a-z
- 0-9
- _ (밑줄)
- @
다음은 예시 섹션에서 가져온 세 가지 이름의 예입니다.
messages.json:
"prompt_for_name": {
...
},
"hello": {
...
},
"bye": {
...
}
이름 사용에 관한 더 많은 예는 다국어화 페이지를 참고하세요.
메시지
자리표시자가 포함될 수 있는 문자열 형식의 번역된 메시지입니다. $_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()
에 전달된 처음 세 개의 대체 문자열을 나타냅니다.messages.json:
"message": "Params: $1, $2, $3"
이러한 예에도 불구하고
$_n_
문자열 대신 자리표시자를 계속 사용하는 것이 좋습니다. 찾을 수 있습니다. 자리표시자를 좋은 변수 이름으로 생각해 보세요. 1주일 후 코드가 포함된 경우$1
가 무엇을 가리키는지 잊어버릴 수 있지만 자리표시자의 의미는 알 수 있습니다. 자리표시자 및 대체 문자열에 관한 자세한 내용은 자리표시자 섹션을 참고하세요.설명
선택사항. 통역사를 돕기 위한 맥락이나 세부정보를 제공하기 위한 메시지 설명입니다. 가능한 한 최상의 번역이 되어야 합니다.
다음은 예 섹션에서 발췌한 세 가지 설명 예입니다.
messages.json:
"description": "Ask for the user's name" ... "description": "Greet the user" ... "description": "Say goodbye to the user"
자리표시자
선택사항. 메시지 내에 사용할 하위 문자열을 하나 이상 정의합니다. 자리표시자를 사용하는 이유는 다음과 같습니다.
- 번역하지 않을 메시지 부분의 텍스트를 정의합니다. 예: HTML 코드, 등록상표 이름, 형식 지정자
getMessage()
에 전달된 대체 문자열을 참조합니다. 예:$1
각 자리표시자에는 이름과 '콘텐츠' 선택사항인 'example' 있습니다. 자리표시자의 이름 대소문자를 구분하지 않으며 메시지 이름과 동일한 문자를 포함할 수 있습니다.
'콘텐츠' 항목의 값은 지정된 대체 문자열을 참조할 수 있는 문자열입니다.
i18n.getMessage 메서드의 substitutions 매개변수를 사용하여 메시지를 처리할 수 있습니다. '콘텐츠' 항목의 값은 일반적으로 'Example.com' 또는 '1달러'와 같습니다. 존재하지 않는 대체 문자열을 참조하면 빈 문자열이 반환됩니다. 다음 표는 $_n_
문자열이 substitutions 매개변수로 지정된 문자열에 어떻게 대응하는지 보여줍니다.
substitutions 매개변수 | 1달러 값 | $2의 가치 | 3,000원의 가치 |
---|---|---|---|
userName | userName 의 값 | "" | "" |
["Cira", "Kathy"] | "Cira" | "Kathy" | "" |
'예시' 항목(선택사항이지만 권장됨)은 콘텐츠가 최종 사용자에게 표시되는 방식을 보여줌으로써 번역자에게 도움이 됩니다. 예를 들어 달러 금액의 자리표시자에는 다음과 같은 예가 있어야 합니다.
"$23.45"
예 섹션에서 가져온 다음 스니펫은 'our_site' 및 'user'라는 두 개의 자리표시자를 포함하는 '자리표시자' 항목을 보여줍니다. 'our_site' 자리표시자에 '예'가 없습니다. 아이템의 가치가 '콘텐츠' 필드를 확인합니다.
messages.json:
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}