JavaScript 파일에서 텍스트에 대한 언어 파일을 만드는 방법은 무엇입니까?
-
06-07-2019 - |
문제
내 웹 응용 프로그램은 JavaScript의 Allot을 사용하고 JavaScript에는 사용자에게 다시보고하는 메시지가 있습니다.
내 JavaScript에서 텍스트를 추출하여 다른 .js 언어 파일에 외부로 저장하는 가장 좋은 방법은 무엇이며, 앞으로 JS 코드에서 어떻게 참조 할 수 있습니까?
이것에 대한 모범 사례가 있습니까?
해결책
객체 문자 그대로 만들기 :
var messages = {
welcome: "Welcome",
goodbye: "Goodbye",
error: "Something bad happend. Sowwy!"
};
그런 다음 참조 할 수 있습니다.
if (error) alert(messages.error);
여러 언어를 구현하려면 훌륭합니다. 내가 일반적으로하는 것은 앱 구성에서 또는 UI-Culture (ASP.NET의 경우)에 따라 선택된 언어에 따라 "메시지"객체를 렌더링하는 서버 측 파일을 포함하는 것입니다.
인라인으로 사용하는 방법은 다음과 같습니다.
<head>
<!-- messages.aspx renders out the object literal -->
<script type="text/javascript" src="messages.aspx"></script>
<script type="text/javascript">
/* when messages.aspx is included it provides you with an object literal
as a global variable. The example below would alert "Something bad
happend. Sowwy!" */
if (error) alert(messages.error);
</script>
</head>
문자 그대로 사용하는 것에 대한 깔끔한 점은 코드가 더 장점이라는 것입니다. 다음과 같은 배열을 사용하는 대신 : alert(messages[0])
당신은 이것을합니다 : alert(messages.error)
조금 더 설명 적입니다.
사이드 노트 : 모든 메시지는 많은 변수로 정의되는 대신 한 객체로 정의되어 전역 네임 스페이스를 오염시키지 않습니다.
JavaScript에서는 런타임에 객체를 수정할 수 있습니다. 따라서 객체에 더 많은 메시지를 추가하고 싶다면 나중에 코드에서 다음을 수행 할 수 있습니다.
messages.newMessageAddedLaterOnInTheCode = "This is a new message";
다른 팁
다른 사람들이 JS 파일에 저장하는 방법을 알려주었습니다 (요청대로). 그러나 대신 XML 파일에 저장하는 것이 좋습니다. 관리하기가 다소 쉽습니다 (IMO).
다음과 같은 항목으로 XML 파일을 만듭니다.
<text id="welcome_to_site">Welcome to our site!</text>
<text id="come_back_soon">Come back soon!</text>
그런 다음 일반 JS/JQuery에서 필요한 모든 텍스트를 쉽게 가져올 수 있습니다.
var text = new Object();
$.ajax({
async: false,
type: 'GET',
url: 'text.xml',
dataType: "xml",
success: function(xml){
$(xml).find('text').each(function(){
text[$(this).attr('id')] = $(this).text();
});
}
});
그리고 텍스트를 호출하려면 이것만큼 간단합니다.
alert(text['welcome_to_site']);
XML 파일에서 언제든지 쉽게 변경할 수 있습니다. 텍스트 추가, 텍스트 제거, 텍스트 편집. 매우 간단합니다. 또한 디자인을 분리하는 데 도움이되고 다른 사람들이 텍스트를 편집 할 수 있도록 도어를 열어줍니다.
이를 수행하는 한 가지 방법은 페이지에 실제로 서버 측 스크립트를 가리키는 별도의 JS가 포함되어 있습니다. 이 스크립트는 다음과 같이 필요한 문자열을 반영 할 수 있습니다.
var STRINGS = {'greeting': "Hello", 'error': "Something went wrong"};
웹 페이지에는 다음과 같습니다.
우리는 이것을 위해 이것을합니다 http://addons.mozilla.org 여기: http://addons.mozilla.org/en-us/firefox/pages/js_constants.js