현지화 메시지 형식

다국어화된 각 확장 프로그램 또는 앱에는messages.json 언어별 문자열을 사용합니다. 이 페이지에서는 messages.json 파일의 형식을 설명합니다. 자세한 내용은 자세한 내용은 다국어화 페이지를 참고하세요.

필드 요약

다음 코드는 messages.json에 지원되는 필드를 보여줍니다. 'name'만 'message' 필수 입력란입니다.

{
  "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', "안녕히 계세요":

{
  "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'이라는 필드가 없습니다. 이 필드의 이름은 메시지의 이름이며 name(__MSG__name___ 또는 getMessage("_name_")에 표시되는 이름)입니다.

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

  • 가나다순
  • a-z
  • 0-9
  • _ (밑줄)
  • @
참고: '@@'로 시작하는 이름은 정의하지 마세요. 이러한 이름은 사전 정의된 메일용으로 예약되어 있습니다.

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

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

이름 사용에 관한 더 많은 예는 다국어화 페이지를 참고하세요.

메시지

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

다음은 섹션에서 발췌한 세 가지 메시지 예입니다.

"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 $):

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

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

"message": "Params: $1, $2, $3"

이러한 예에도 불구하고 $_n_ 문자열 대신 자리표시자를 계속 사용하는 것이 좋습니다. 찾을 수 있습니다. 자리표시자를 적절한 변수 이름으로 생각하세요. 1주일 후 코드가 포함된 경우 $1가 무엇을 가리키는지 잊어버릴 수 있지만 자리표시자의 의미는 알 수 있습니다. 자리표시자 및 대체 문자열에 관한 자세한 내용은 자리표시자 섹션을 참고하세요.

설명

선택사항. 통역사를 돕기 위한 맥락이나 세부정보를 제공하기 위한 메시지 설명입니다. 가능한 한 최상의 번역이 되어야 합니다.

다음은 섹션에서 발췌한 세 가지 설명 예입니다.

"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,000원3,000원의 가치
userNameuserName의 값""""
["Cira", "Kathy"]"Cira""Kathy"""

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

섹션에서 발췌한 다음 스니펫은 '자리표시자'를 보여줍니다. 해당 항목 'our_site'라는 자리표시자 두 개를 포함 '사용자'가 포함됩니다 'our_site' 자리표시자에 '예'가 없습니다. 왜냐하면 해당 콘텐츠는 '콘텐츠' 필드를 확인합니다.

"placeholders": {
  "our_site": {
    "content": "Example.com",
  },
  "user": {
    "content": "$1",
    "example": "Cira"
  }
}