언어 설정

Menu
Sites
Language
tizen wearable localization 구현

tizen wearable localization을 구현하기위해

localization wizard로 필요한 파일들을 추가해서 하는데,

이렇게 하면 같은 파일이 두개가 만들어져서 소스를 변경하면 두개의 파일에서 다 변경을 해주어야하는데

다국어 처리하는 방법이 이것밖에 없나요??

답변 바로가기

Responses

4 댓글
Mark as answer
daniel kim

안녕하세요..

globalize.js와 같은 open source libary도 tizen에서 사용가능하니 참고하시기 바랍니다.

    https://github.com/jquery/globalize

 

Seoghyun Kang

안녕하세요.

아래 샘플 코드를 참고하여 JSON을 사용하여 직접 구현도 가능합니다.

 

function getMessage(key, alter) {
    var ret = alter || '';
   
    if (typeof this.messages == 'undefined') {
        try {
            var request = new XMLHttpRequest();
            request.open("GET", "_locales/" + locale + "/messages.json", false);
            request.send();
            var res = request.responseText;
            this.messages = window.eval(res);
        } catch (err) {
            return ret;
        }
    }
    if (this.messages && (this.messages.hasOwnProperty(key)) && (this.messages[key].hasOwnProperty('message'))) {
        ret = this.messages[key].message;
    }
 
    return ret;
};

$('#license').html(getMessage('license', 'License'));

 

 

[_locales/en/messages.json]

{
    "locale": {"message": "en"},
    "description": {"message": "A Reversi/Othello game"},
    "license": {"message": "License"},
}

 

[_locales/zh_CN/messages.json ]

{
    "locale": {"message": "zh_CN"},
    "description": {"message": "一个黑白棋游戏"},
    "license": {"message": "授权"},
}

 

전체 소스는 아래에서 확인이 가능합니다. (단 실행환경이 달라 일부 코드는 수정이 필요합니다.)

https://github.com/01org/webapps-annex/tree/master/app

Seoghyun Kang

참고사항으로 위 Annex Sample의 경우  크롬 기반의 chrome.i18n.getMessage를 사용하여 localization를 구현하고 있습니다.

 

자세한 정보는 아래 주소에서 확인이 가능합니다.

https://developer.chrome.com/extensions/i18n

pius lee

음 혹시나 해서 붙여 봅니다.

다국어 처리를 하기 위해서는 단지 스트링의 다국어 관리 뿐만 아니라 시스템 언어설정의 변경사항 또한 챙겨야 합니다.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
</head>

<body>
<script>
function languageChange(lang, country) {
    // do something;
	console.log(lang);
	console.log(country);
}

function propertyError(err) {
	console.log(err.name + " : " + err.message);
}
tizen.systeminfo.getPropertyValue("LOCALE", function(prop) {
	languageChange(prop.language, prop.country);
}, propertyError);
tizen.systeminfo.addPropertyValueChangeListener("LOCALE", function(prop) {
	languageChange(prop.language, prop.country);
}, null, propertyError);
</script>
</body>
</html>

위 코드로 시스템 언어설정에 따라 동작하는 코드를 만들 수 있습니다.