Localizer 객체의
getString()
메서드는 특정 로캘의 리소스에 대해 정의된 문자열을 반환합니다. 이 메서드를 호출할 때
locale
값을 지정할 필요가 없습니다. 이 경우 메서드에서는 전체 로캘 체인을 확인하고 지정된 리소스 이름을 제공하는 첫 번째 로캘의 문자열을 반환합니다. 이 메서드의 매개 변수는 다음과 같습니다.
매개 변수
|
설명
|
|
리소스를 포함하는 번들입니다. .properties 확장명을 제외한 속성 파일의 파일 이름입니다. 예를 들어 이 매개 변수를
"alerts"
로 설정하면 Localizer 코드에서는 alerts.properties라는 지역화 파일을 확인합니다.
|
|
리소스 이름입니다.
|
|
선택 사항입니다. 대체 문자열에서 번호 지정된 태그를 대체할 문자열 배열입니다. 예를 들어
templateArgs
매개 변수가
["Raúl", "4"]
이고 일치하는 리소스 문자열이
"Hello, {0}. You have {1} new messages."
인 함수를 호출한다고 가정합니다. 이 경우 함수는
"Hello, Raúl. You have 4 new messages."
를 반환합니다. 이 설정을 무시하려면
null
값을 전달합니다.
|
|
선택 사항입니다. 사용할 로캘 코드입니다(예:
"en"
,
"en_us"
또는
"fr"
). 로캘을 지정하고 일치하는 값이 없으면 메서드에서는 로캘 체인의 다른 로캘에서 값을 검색하지 않습니다. 로캘 코드를 지정하지 않으면 함수에서는 지정된 리소스 이름에 대한 값을 제공하는 로캘 체인의 첫 번째 로컬에 있는 문자열을 반환합니다.
|
지역화 프레임워크에서 표시된 HTML DOM 특성을 업데이트할 수 있습니다. 그러나 지역화된 문자열을 다른 방법으로 사용할 수 있습니다. 예를 들어 문자열을 동적으로 생성된 HTML에서 사용하거나 함수 호출의 매개 변수로 사용할 수 있습니다. 예를 들어 다음 코드에서는 fr_FR 로캘의 기본 속성 파일에서
error114
리소스에 정의된 문자열을 사용하여
alert()
함수를 호출합니다.
alert(air.Localizer.localizer.getString("default", "error114", null, "fr_FR"));
getString()
메서드는 지정된 번들에서 리소스를 찾을 수 없는 경우
resourceNotFound
이벤트를 전달합니다.
air.Localizer.RESOURCE_NOT_FOUND
상수는 문자열
"resourceNotFound"
를 정의합니다. 이 이벤트에는
bundleName
,
resourceName
및
locale
의 세 가지 속성이 있습니다.
bundleName
속성은 리소스가 없는 번들의 이름입니다.
resourceName
속성은 리소스가 없는 번들의 이름입니다.
locale
속성은 리소스가 없는 로캘의 이름입니다.
getString()
메서드는 지정된 번들을 찾을 수 없는 경우
bundleNotFound
이벤트를 전달합니다.
air.Localizer.BUNDLE_NOT_FOUND
상수는 문자열
"bundleNotFound"
를 정의합니다. 이 이벤트에는
bundleName
및
locale
의 두 가지 속성이 있습니다.
bundleName
속성은 리소스가 없는 번들의 이름입니다.
locale
속성은 리소스가 없는 로캘의 이름입니다.
getString()
메서드는 비동기적으로 작동하며
resourceNotFound
및
bundleNotFound
이벤트를 비동기적으로 전달합니다. 다음 코드에서는
resourceNotFound
및
bundleNotFound
이벤트에 대한 이벤트 리스너를 설정합니다.
air.Localizerlocalizer.addEventListener(air.Localizer.RESOURCE_NOT_FOUND, rnfHandler);
air.Localizerlocalizer.addEventListener(air.Localizer.BUNDLE_NOT_FOUND, bnfHandler);
var str = air.Localizer.localizer.getString("default", "error114", null, "fr_FR");
function rnfHandler(event)
{
alert(event.bundleName + ": " + event.resourceName + ":." + event.locale);
}
function bnfHandler(event)
{
alert(event.bundleName + ":." + event.locale);
}
Localizer 객체의
getResourceBundle()
메서드는 제공된 로캘에 대해 지정된 번들을 반환합니다. 이 메서드의 반환 값은 번들의 키와 일치하는 속성이 있는 객체입니다. 응용 프로그램에서 지정된 번들을 찾을 수 없는 경우 이 메서드는
null
을 반환합니다.
이 메서드는
locale
및
bundleName
이라는 두 가지 매개 변수를 사용합니다.
매개 변수
|
설명
|
|
로캘(예:
"fr"
)입니다.
|
|
번들 이름입니다.
|
예를 들어 다음 코드에서는
document.write()
메서드를 호출하여 fr 로캘의 기본 번들을 로드합니다. 그런 다음
document.write()
메서드를 호출하여 해당 번들에 있는
str1
및
str2
키의 값을 작성합니다.
var aboutWin = window.open();
var bundle = localizer.getResourceBundle("fr", "default");
aboutWin.document.write(bundle.str1);
aboutWin.document.write("<br/>");
aboutWin.document.write(bundle.str2);
aboutWin.document.write("<br/>");
getResourceBundle()
메서드는 지정된 번들을 찾을 수 없는 경우
bundleNotFound
이벤트를 전달합니다.
air.Localizer.BUNDLE_NOT_FOUND
상수는 문자열
"bundleNotFound"
를 정의합니다. 이 이벤트에는
bundleName
및
locale
의 두 가지 속성이 있습니다.
bundleName
속성은 리소스가 없는 번들의 이름입니다.
locale
속성은 리소스가 없는 로캘의 이름입니다.
Localizer 객체의
getFile()
메서드는 지정된 로캘에 대해 번들의 내용을 문자열로 반환합니다. 번들 파일은 UTF-8 파일로 읽습니다. 이 메서드의 매개 변수는 다음과 같습니다.
매개 변수
|
설명
|
|
리소스 파일의 파일 이름입니다(예:
"about.html"
).
|
|
선택 사항입니다. 대체 문자열에서 번호 지정된 태그를 대체할 문자열 배열입니다. 예를 들어
templateArgs
매개 변수가
["Raúl", "4"]
이고 일치하는 리소스 파일에 두 줄이 포함된 함수를 호출한다고 가정합니다.
<html>
<body>Hello, {0}. You have {1} new messages.</body>
</html>
이 경우 함수는 다음과 같이 두 줄이 포함된 문자열을 반환합니다.
<html>
<body>Hello, Raúl. You have 4 new messages. </body>
</html>
|
|
사용할 로캘 코드입니다(예:
"en_GB"
). 로캘을 지정하고 일치하는 파일이 없으면 메서드에서는 로캘 체인의 다른 로캘에서 검색을 계속하지 않습니다. 로캘 코드를 지정하지
않으면
함수에서는
resourceFileName
과 일치하는 파일이 있는 로캘 체인의 첫 번째 로캘에 있는 텍스트를 반환합니다.
|
예를 들어 다음 코드에서는 fr 로캘의 about.html 파일의 내용을 사용하여
document.write()
메서드를 호출합니다.
var aboutWin = window.open();
var aboutHtml = localizer.getFile("about.html", null, "fr");
aboutWin.document.close();
aboutWin.document.write(aboutHtml);
getFile()
메서드는 로캘 체인에서 리소스를 찾을 수 없는 경우
fileNotFound
이벤트를 전달합니다.
air.Localizer.FILE_NOT_FOUND
상수는 문자열
"resourceNotFound"
를 정의합니다.
getFile()
메서드는 비동기적으로 작동하며
fileNotFound
이벤트를 비동기적으로 전달합니다. 이 이벤트에는
fileName
및
locale
의 두 가지 속성이 있습니다.
fileName
속성은 찾지 못한 파일의 이름입니다.
locale
속성은 리소스가 없는 로캘의 이름입니다. 다음 코드에서는 이 이벤트에 대한 이벤트 리스너를 설정합니다.
air.Localizer.localizer.addEventListener(air.Localizer.FILE_NOT_FOUND, fnfHandler);
air.Localizer.localizer.getFile("missing.html", null, "fr");
function fnfHandler(event)
{
alert(event.fileName + ": " + event.locale);
}