가젯 문서 검색
죄송합니다. 이 문서는 더 이상 최신 버전이 아닙니다. 가장 최근 업데이트된 문서를 보시려면 영어 버전을 참고로 해주십시오. 불편을 끼쳐드려 죄송합니다.

Google 가젯 및 현지화(i18n)

본 설명서는 해외 사용자를 위해 쉽게 현지화할 수 있는 가젯을 만드는 방법에 대한 내용입니다.

목차

  1. 소개
  2. 기본 개념
  3. 현지화를 위한 인코딩
  4. 현지화된 가젯 만들기
  5. 메시지 묶음
    1. 이름 붙이기
    2. 모범사례
  6. 가젯에 메시지 묶음 사용하기
    1. 대체 메시지
    2. 메시지 묶음에서 메시지 액세스하기
    3. 가젯 HTML에 메시지 표시하기
  7. 'Hello World' 가젯 사양
  8. 테스트하기
  9. 캐시
  10. 문제 해결하기
  11. 지원 언어 및 국가

소개

Google 가젯 API를 사용하여 해외 사용자도 손쉽게 사용할 수 있는 가젯을 만들어 보세요. 방법은 간단합니다. 사용자에게 보이는 텍스트(번역해야 할 텍스트)가 가젯과 분리되어 있는 메시지 묶음에 들어가도록 가젯을 구성하세요. 그 다음 번역사가 문자열을 번역하여 가젯 사양에 추가할 새 로케일별 메시지 묶음을 만들면 새 사용자 그룹이 가젯을 사용할 수 있게 됩니다.

I18n 가젯은 Google 데스크톱 및 Google 페이지 작성기와 같은 다른 모든 Google 제품에서 별도의 수정 없이 작동합니다.

iGoogle에서 지원하는 언어 및 국가 목록은 지원 언어 및 국가를 참조하세요.

비영어권 가젯 사용에 대한 내용은 비영어권 가젯을 참조하세요.

기본 개념

본 설명서는 현지화(i18n) 및 현지화(l10n)에 대한 내용입니다.

사용자의 '현지화 프로필'은 본 설명서의 목적에 따라 사용자의 도메인을 기준으로 하는 국가와 기본 사용자 인터페이스 언어라는 두 가지 구성 요소로 이루어집니다. 자세한 내용은 테스트하기를 참조하세요.

현지화를 위한 인코딩

Google 가젯 API는 XML 속성 값으로 UTF-8 인코딩을 지원하며 해당 값은 <Content> 섹션에 지정됩니다. 콘텐츠 유형이 html로 설정된 경우 UTF-8이 명시적으로 기본 인코딩으로 설정됩니다. 이를 직접 설정하지 마세요.

본 설명서에 사용된 샘플 가젯은 'Hello World'라는 메시지를 중국어로 표시합니다.

Hello World-중국어

위 예에서 사용자는 사용자 환경설정 드롭다운 메뉴를 사용하여 'Hello World'라는 메시지의 폰트 색상을 지정할 수 있습니다. 메뉴에 나타나는 색상 이름은 외부 파일(메시지 묶음)에 정의됩니다. 메뉴의 표시 언어는 사용자의 국가/언어 프로필에 따라 결정됩니다. 영어 프로필을 사용하는 사용자가 해당 가젯을 실행하면 텍스트가 영어로 나타납니다. 다음은 위 예에 드롭다운 사용자 환경설정(userprefs) 메뉴가 영어로 표시되는 모습입니다.

Hello World-영어

여기를 클릭하면 'Hello World' 가젯의 사양을 볼 수 있습니다.

현지화된 가젯 만들기

현지화된 가젯을 만들려면 다음 단계를 따르세요.

  1. 가젯을 만듭니다.
  2. 번역이 필요한 텍스트를 메시지 묶음으로 추출합니다.
  3. 메시지를 번역할 번역사를 찾습니다.
  4. 번역사가 특정 로케일의 새 메시지 묶음을 작성합니다. 프랑스어나 중국어 등 언어별로 작성할 수도 있고 프랑스어/캐나다, 혹은 프랑스어/프랑스 등 언어/국가별로 작성할 수도 있습니다. 알파벳을 쓰지 않는 메시지 묶음은 UTF-8 형식으로 저장해야 합니다.
  5. 번역가가 URL을 새 묶음으로 보냅니다.
  6. 메시지 묶음을 사용할 수 있도록 가젯 사양을 수정합니다.
  7. 가젯이 콘텐츠 디렉토리에 있는 경우, 크롤러와 파이프라인에서 업데이트된 가젯을 검색하여 새 시장에 적용하기까지 1-2주 정도 소요됩니다.

메시지 묶음

Google 가젯 i18n 전략은 메시지 묶음에 초점을 맞춥니다. 메시지 묶음은 지정된 로케일에 맞게 번역된 문자열이 있는 XML 파일입니다. 각 문자열은 묶음 내에서 동일한 고유 이름으로 식별합니다.

메시지 묶음은 임의의 URL에서 호스팅할 수 있고 응용 프로그램 간에 공유할 수도 있습니다. 메시지 묶음은 하나의 로케일만 포함합니다.

메시지 묶음의 형식은 다음과 같습니다.

<messagebundle>
  <msg name="hello_world"> 
    Hello World. 
  </msg> 
  <msg name="color">Color</msg> 
  <msg name="red">Red</msg> 
  <msg name="green">Green</msg> 
  <msg name="blue">Blue</msg> 
  <msg name="gray">Gray</msg> 
  <msg name="purple">Purple</msg> 
  <msg name="black">Black</msg> 
</messagebundle> 

메시지 묶음 파일에 포함시킬 수 있는 필드는 다음과 같습니다.

이름 붙이기

메시지 묶음은 다음 규칙에 따라 이름 붙일 수 있습니다.

<language>_<country>.xml 

언어 또는 국가별 값이 없는 경우의 규칙은 'ALL'을 사용하는 것입니다. 예를 들어, de_ALL.xml 파일은 국가와 상관없이 모든 독일어 사용자에게 적용됩니다. ALL_ALL.xml 메시지 묶음 파일은 기본적으로 사용되는 파일입니다.

모범사례

이름 붙이기를 준수하기 위해 메시지 묶음에 적용되는 특별한 요구 사항은 없습니다. 가젯에서는 <Locale>langcountry 속성을 사용하여 사용자 프로필에 맞는 정확한 메시지 묶음을 식별합니다. 메시지 묶음 자체의 이름은 사용하지 않습니다.

Google 가젯 API는 유연성이 매우 뛰어나긴 하지만 다음 도움말을 따를 것을 권장합니다.

가젯에 메시지 묶음 사용하기

<Locale> 태그(<ModulePrefs> 섹션 안에 중첩됨)를 사용하여 가젯이 사용하는 메시지 묶음 목록을 작성하세요. 다음은 해당 예입니다.

<ModulePrefs title="i18n Example"> 
  <Locale messages="http://doc.examples.googlepages.com/ALL_ALL.xml"/> 
  <Locale lang="de" messages="http://doc.examples.googlepages.com/de_ALL.xml"/> 
  <Locale lang="zh-cn" messages="http://doc.examples.googlepages.com/zh_cn_ALL.xml"/> 
  <Locale lang="fr" messages="http://doc.examples.googlepages.com/fr_ALL.xml"/> 
  <Locale lang="ja" messages="http://doc.examples.googlepages.com/ja_ALL.xml"/> 
  <Locale lang="es" messages="http://doc.examples.googlepages.com/es_ALL.xml"/> 
  <Locale lang="it" messages="http://doc.examples.googlepages.com/it_ALL.xml"/> 
  <Locale lang="ru" messages="http://doc.examples.googlepages.com/ru_ALL.xml"/> 
</ModulePrefs>

<Locale>에는 다음과 같은 속성이 있습니다.

<Locale lang="fr" country="CA" messages="http://example.com/fr_CA.xml"/> 

런타임 시 가젯은 사용자의 프로필과 가장 근접하게 일치하는 메시지 묶음을 사용합니다.

지원되는 언어 및 국가 코드 목록은 지원 언어 및 국가를 참조하세요.

대체 메시지

메시지 묶음에는 대체 기능이 있습니다. 가젯은 대체 메시지 기능을 통해 사용자의 국가 및 언어 UI 환경설정에 가장 근접한 메시지 묶음을 사용합니다. 가젯에서 정확하게 일치하는 항목을 찾지 못하면 사용 가능한 메시지 묶음을 '검색'하여 가장 근접한 항목을 찾습니다.

대체 메시지 기능을 사용하면 특정 로케일에 대한 메시지를 사용할 수 없는 경우 일반적으로 ALL_ALL.xml 파일에 지정되는 '기본' 메시지를 사용할 수 있습니다. 

예를 들어, 가젯에 다음 내용을 지정했다고 가정합니다.

<Locale messages="http://x.com/ALL_ALL.xml"/> 
<Locale lang="de" messages="http://x.com/de_ALL.xml"/>
<Locale lang="de" country="DE" messages="http://x.com/de_DE.xml"/> 
<Locale lang="de" country="US" messages="http://x.com/de_US.xml"/>

위 파일은 어떻게 사용됩니까? 도메인은 미국(http://www.google.com)이지만 언어 환경설정은 독일어인 사용자가 있다고 가정합시다. 해당 사용자는 de_US.xml 파일의 메시지를 보게 됩니다. 해당 파일에 특정 메시지가 없는 경우 사용자는 de_ALL.xml 파일의 메시지를 보고 최종적으로 ALL_ALL.xml 파일의 메시지를 보게 됩니다.

독일어 UI를 사용하는 독일의 사용자는 de_DE.xml부터 시작하고, 독일어 UI를 사용하는 스위스 사용자는 de_ALL.xml부터 시작하며, 프랑스어 UI를 사용하는 스위스 사용자는 ALL_ALL.xml.부터 시작합니다.

메시지 묶음에서 메시지 액세스하기

가젯은 메시지 묶음의 해당 메시지에 어떻게 액세스합니까? 'Hello World'라는 예제의 de_ALL.xml(언어는 독일어, 국가는 모두) 파일을 살펴보겠습니다.

<messagebundle>
  <msg name="hello_world">
    Hallo Welt.
  </msg>
  <msg name="color">Farbe</msg> 
  <msg name="red">Rot</msg> 
  <msg name="green">Grün</msg> 
  <msg name="blue">Blau</msg> 
  <msg name="gray">Grau</msg> 
  <msg name="purple">Purpurrot</msg> 
  <msg name="black">Schwarz</msg>
</messagebundle>

각 메시지에는 해당 메시지를 식별하는 고유한 이름 문자열이 있습니다. 예를 들어, 위 메시지의 문자열은 다음과 같습니다.

<msg name="red">Rot</msg> 

고유한 메시지 이름은 'red'이고 가젯의 userprefs 드롭다운 메뉴에 표시되는 번역된 문자열은 'Rot'인데 이는 'red'에 대한 독일어 단어입니다. 다음은 ALL_ALL.xml 메시지 묶음 파일에서의 해당 영어 메시지 문자열입니다.

<msg name="red">Red</msg> 

'Hello World' 가젯 사양은 __MSG_ 대체 변수를 사용하여 해당 메시지 묶음의 값을 대체해야 하는지 여부를 나타냅니다. 예를 들어, 'Hello World' 가젯 사양의 다음 XML 문은 메뉴 항목을 userprefs '색상' 드롭다운 메뉴에 추가합니다.

<EnumValue value="Red" display_value="__MSG_red__" /> 

실제로 위 행은 '사용자의 국가/언어 프로필과 가장 많이 일치하는 메시지 묶음으로 이동하여 이름이 'red'인 메시지의 값을 가져와 __MSG_red__를 대체하라'라는 뜻입니다. 이런 방식으로 'Hello World'라는 예제의 사용자 환경설정 드롭다운 메뉴가 색상 이름으로 채워집니다. 여기서는 색상 이름이 독일어로 표시됩니다. Hello World-독일어

가젯 HTML에 메시지 표시하기

가젯의 XML 부분에 메시지를 표시하려면 에서 설명한 대로 대체 변수를 사용해야 합니다. 가젯의 CDATA 부분에서 사용할 수 있는 몇 가지 옵션이 있습니다.

가장 간단한 방법은 HTML에 대체 변수를 포함시키는 것입니다.

<b>__MSG_hello_world__</b>. 

또는 userprefs 함수 getMsg()를 사용할 수도 있습니다. 해당 함수를 사용하면 사용자 환경설정(userprefs)와 관련된 메시지뿐 아니라 메시지 묶음의 모든 메시지에 액세스할 수 있습니다. 하지만 _IG_Prefs 개체에서 해당 함수를 호출해야 합니다. 다음은 해당 예입니다.

var prefs = new _IG_Prefs(__MODULE_ID__);
prefs.getMsg(“red”);

'Hello World' 가젯 사양

다음은 'Hello World'라는 예제의 가젯 사양입니다.

<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
  <ModulePrefs title="i18n Example"> 
    <Locale messages="http://doc.examples.googlepages.com/ALL_ALL.xml"/>
    <Locale lang="de" messages="http://doc.examples.googlepages.com/de_ALL.xml"/>
    <Locale lang="zh-cn" messages="http://doc.examples.googlepages.com/zh_cn_ALL.xml"/>
    <Locale lang="fr" messages="http://doc.examples.googlepages.com/fr_ALL.xml"/>
    <Locale lang="ja" messages="http://doc.examples.googlepages.com/ja_ALL.xml"/>
    <Locale lang="es" messages="http://doc.examples.googlepages.com/es_ALL.xml"/>
    <Locale lang="it" messages="http://doc.examples.googlepages.com/it_ALL.xml"/>
    <Locale lang="ru" messages="http://doc.examples.googlepages.com/ru_ALL.xml"/> 
  </ModulePrefs>
  <UserPref name="fontcolor" display_name="__MSG_color__" default_value="Red" datatype="enum">
    <EnumValue value="Red" display_value="__MSG_red__" /> 
    <EnumValue value="Green" display_value="__MSG_green__" /> 
    <EnumValue value="Blue" display_value="__MSG_blue__" /> 
    <EnumValue value="Gray" display_value="__MSG_gray__" /> 
    <EnumValue value="Purple" display_value="__MSG_purple__" /> 
    <EnumValue value="Black" display_value="__MSG_black__" /> 
  </UserPref>
  <Content type="html">
  <![CDATA[
    <script type="text/javascript"> 

      displayMsg();
      function displayMsg(){

          // Get userprefs
          var prefs = new _IG_Prefs(__MODULE_ID__);
          // Set font color to user's color choice
          document.fgColor = prefs.getString("fontcolor");
          // Display message
          document.write("<br><h1>");
          // Use prefs.getMsg to go to the appropriate message bundle
          // and get the string associated with the "hello_world" message.
          document.write(prefs.getMsg("hello_world"));
          document.write("</h1>"); 
      }
    </script>
  ]]>
  </Content>
</Module> 

테스트하기

가젯을 테스트하려면 가젯에 포함된 메시지 묶음에 맞춰 국가 및 언어 설정을 변경하세요.

국가 및 언어 설정을 변경하는 가장 간단한 방법은 iGoogle 페이지의 URL을 수정하는 것입니다.

http://www.google.com/ig?&gl=<country>&hl=<lang>

예를 들어, 다음 URL의 경우 국가는 독일(DE)이고 언어는 영어(en)입니다. 일반적으로 국가가 언어보다 우선순위가 높기 때문에 해당 URL의 경우 iGoogle 페이지에서는 독일어로 텍스트가 표시됩니다.

http://www.google.com/ig?&gl=DE&hl=en

다음 예에서 국가는 암시적으로 미국이 되고 언어는 스페인어입니다.

http://www.google.com/ig?hl=es

지원되는 언어 및 국가 코드 목록은 지원 언어 및 국가를 참조하세요. 특정 언어에 맞춰 정확한 URL을 구성하려면 다음 페이지를 참조하세요. http://www.google.co.kr/help/customize.html#searchlang.

캐시

메시지 묶음에는 가젯 사양과 동일한 캐시 작용이 있습니다. Google은 일반적으로 캐시를 1-2 시간마다 새로 고칩니다. 호스팅 서버는 메시지 묶음에 대해 하루에 100-200개 요청만 확인하는데, 특정 사항에 대한 캐시의 요청 확인이 되지 않는 경우 '오래된' 캐시 버전이 계속해서 사용됩니다.  developer.xml 가젯에서 가젯의 캐시를 비활성화하면 가젯의 메시지 묶음에 대해서도 캐시가 비활성화됩니다.

문제 해결하기

개발 중에 가젯이 비어 있거나 메시지가 있어야 할 곳에 ???가 표시될 수 있습니다. 이는 다음과 같은 이유 때문일 수 있습니다.

지원 언어 및 국가

본 섹션에서는 iGoogle에서 지원하는 언어 및 국가 코드 목록을 소개합니다. 규칙에 따라 언어 코드는 소문자, 국가 코드는 대문자로 사용되지만 이는 필수조건은 아닙니다.

iGoogle에서는 다음 언어를 지원합니다.

언어 코드 언어
da
덴마크어
de 독일어
en 영어
es 스페인어
fi 핀란드어
fr 프랑스어
it 이탈리아어
ja 일본어
ko 한국어
nl 네덜란드어
no 노르웨이어
pt-BR
포르투갈어(브라질)
sv 스웨덴어
ru 러시아어
zh-CN 중국어 간체

iGoogle에서는 다음 국가를 지원합니다.

국가 코드 국가
AU 호주
BR 브라질
CA 캐나다
CH 스위스
CN 중국
DE 독일
DK 덴마크
ES 스페인
FI 핀란드
FR 프랑스
IE 아일랜드
IN 인도
IT 이탈리아
JP 일본
KR 한국
MX 멕시코
NL 네덜란드
NO 노르웨이
NZ 뉴질랜드
RU 러시아
SE 스웨덴
UK 영국
US 미국

위로 이동

업데이트 날짜: