[]
SpreadJS는 CalcEngine 함수 이름, 테이블 함수 이름, 특수 함수 로직, CalcError
이름 및 불리언 값 리소스에 대해 전역화(Globalization) 및 지역화(Localization)를 지원하기 위해 18개 이상의 언어 팩(Language Package)을 제공합니다. 원하는 언어 팩을 사용하면 번역을 신경 쓰지 않고 선호하는 로컬 언어로 작업할 수 있습니다.
SpreadJS의 기본 언어 팩은 "en"
(영어)입니다. 사용자가 다른 언어로 작업할 수 있도록 SpreadJS에서는 아래와 같은 언어 코드와 함께 다양한 언어 팩을 제공합니다:
1. China/중국어 ('zh') | 7. French/프랑스어('fr') | 13. Dutch/네덜란드어 ('nl') |
2. Japan/일본어 ('ja') | 8. German/독일어 ('de') | 14. Spanish/스페인어('es') |
3. korea/한국어 ('ko') | 9. Portuguese/포르투갈어 ('pt') | 15. Russian/러시아어 ('ru') |
4. Swedish/스웨덴어 ('sv') | 10. Italian/이탈리아어 ('it') | 16. Danish/덴마크어 ('da') |
5. Polish/폴란드어 ('pl') | 11. Finnish/핀란드어('fi') | 17. Norwegian Bokmål/노르웨이어 ('no') |
6. Czech/체코어 ('cs') | 12. Hungarian/헝가리어('hu') | 18. Turkish/터키어 ('tr') |
사용자는 LanguagePackages 클래스의 languagePackages 메서드를 사용하여 언어를 전환할 수 있습니다.
사용자 지정 언어 팩을 만들고 사용하려는 경우에는 사용자 지정 언어 패키지 항목을 참조하시기 바랍니다.
아래 이미지는 언어 팩별로 지역화된 함수 이름의 예를 보여줍니다.
아래 이미지는 언어 팩별로 지역화된 테이블 함수 이름의 예를 보여줍니다.
아래 이미지는 언어 팩별 특수 함수 로직(LENB 함수 등)의 예를 보여줍니다.
아래 이미지는 언어 팩별 CalcError
이름의 예를 보여줍니다.
아래 이미지는 언어 팩별 불리언 값 리소스의 예를 보여줍니다.
참고: SpreadJS에서 언어 팩을 사용할 때 다음 사항에 유의하세요
언어 팩을 변경하면 사용자는 기본 언어(예: 영어) 또는 새 언어 중 어떤 언어로도 함수 이름을 입력할 수 있습니다. 하지만 결과적으로 화면에는 새 언어로 함수 이름이 표시됩니다.
예: 영어에서 프랑스어 언어 팩으로 전환한 경우
"SUM()"
또는"SOMME()"
둘 다 입력 가능하지만, 결과는 항상"SOMME()"
로 표시됩니다.중국어, 일본어, 한국어(CJK) 언어 팩을 사용하는 경우 일부 함수는 계산 로직이 달라질 수 있습니다.
이는 Excel에서 유니코드 문자열 등 로케일에 따라 동작이 달라지는 함수에서 발생하는 표준 동작입니다.
예:
LENB
함수는 DBCS 언어(CJK)에서는 바이트 단위로 길이를 반환하지만, 그 외 언어에서는LEN
함수처럼 동작합니다.해당 함수에는
FINDB
,LEFTB
,RIGHTB
,MIDB
,LENB
,REPLACEB
,SEARCHB
등이 포함됩니다.→ 이는 Excel의 공식 문서에 명시된 동작입니다.
Import/Export – Excel 및 SpreadJS는 내부적으로 수식을 영어 이름으로 저장합니다.
언어 팩이 존재하고 사용자의 로캘에 따라 언어가 지정된 경우, 언어별 함수 이름은 자동으로 표시됩니다.
→ Excel과 동일한 동작입니다.
수식 언어를 변경한 후에는
spread.calculate()
를 호출해야 합니다.→ 내부 수식 테이블과 파서가 새 함수 이름으로 업데이트됩니다.
다음은 언어 팩을 다른 언어로 전환하는 코드 샘플입니다:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<link href="css/gc.spread.sheets.excel2013white.x.x.x.css" rel="stylesheet" />
<script src="scripts/gc.spread.sheets.all.x.x.x.min.js"></script>
<script src="scripts/gc.spread.sheets.print.x.x.x.min.js"></script>
<script src="scripts/gc.spread.calcengine.languagepackages.x.x.x.min.js"></script>
<script>
$(document).ready(function ()
{
// Spread 초기화
var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
spread.suspendPaint();
// 활성 시트 가져오기
activeSheet = spread.getSheet(0);
activeSheet.setColumnWidth(1, 130);
activeSheet.setColumnWidth(2, 70);
activeSheet.setColumnWidth(3, 70);
activeSheet.setColumnWidth(4, 70);
activeSheet.setColumnWidth(5, 100);
var source =
[
{ Course: "Calculus", Term: 1, Credit: 5, Score: 80, Teacher: "Nancy.Feehafer" },
{ Course: "P.E.", Term: 1, Credit: 3.5, Score: 85, Teacher: "Andrew.Cencini" },
{ Course: "Political Economics", Term: 1, Credit: 3.5, Score: 95, Teacher: "Jan.Kotas" },
{ Course: "Basic of Computer", Term: 1, Credit: 2, Score: 85, Teacher: "Steven.Thorpe" },
{ Course: "Micro-Economics", Term: 1, Credit: 4, Score: 62, Teacher: "Jan.Kotas" },
{ Course: "Linear Algebra", Term: 2, Credit: 5, Score: 73, Teacher: "Nancy.Feehafer" },
{ Course: "Accounting", Term: 2, Credit: 3.5, Score: 86, Teacher: "Nancy.Feehafer" },
{ Course: "Statistics", Term: 2, Credit: 5, Score: 85, Teacher: "Robert.Zare" },
{ Course: "Marketing", Term: 2, Credit: 4, Score: 70, Teacher: "Laura.Giussani" }
];
var table = activeSheet.tables.addFromDataSource("Table1", 2, 1, source,GC.Spread.Sheets.Tables.TableThemes.medium2);
spread.resumePaint();
var select = document.getElementById('languageSelect');
select.onchange = function ()
{
var languageName = this.value;
GC.Spread.CalcEngine.LanguagePackages.languagePackages(languageName);
spread.calculate();
}
});
</script>
</head>
<body>
<table style="width:100%">
<tr>
<td valign="top">
<select id="languageSelect">
<option value="zh">China</option>
<option value="ja">Japan</option>
<option value="ko">korea/Korean </option>
<option value="fr">French</option>
<option value="nl">Dutch</option>
<option value="de">German</option>
<option value="es">Spanish</option>
<option value="pt">Portuguese</option>
<option value="ru">Russian</option>
<option value="sv">Swedish</option>
<option value="it">Italian</option>
<option value="da">Danish</option>
<option value="pl">Polish</option>
<option value="fi">Finnish</option>
<option value="no">Norwegian</option>
<option value="cs">Czech </option>
<option value="hu">Hungarian</option>
<option value="tr">Turkish</option>
</select>
</td>
<td><div id="ss" style="height:360px;width:1000px; margin-left:1px"></div></td>
</tr>
</table>
</body>
</html>