VI 현지화하기
- 업데이트 날짜:2025-08-27
- 6분 (읽기 시간)
태그된 파일로 VI 문자열을 반출한 후 파일을 번역하고 다시 VI로 반입하여 VI를 현지화할 수 있습니다. LabVIEW의 현지화된 버전은 영어 버전과 같은 실행 프로그램을 사용합니다. 따라서, 현지화된 버전은 영어 버전과 호환 가능합니다.
VI 문자열 파일로도 알려진 태그된 텍스트 파일은 VI 제목, 설명, 컨트롤 캡션, 컨트롤 설명, 기타 컨트롤의 프라이빗 데이터를 현지화하는 정보를 포함합니다. 컨트롤 라벨은 현지화할 수 없으므로, 컨트롤은 캡션도 가지고 있습니다. VI 문자열을 텍스트 파일로 반출하여, LabVIEW는 각 컨트롤에 캡션을 생성하며 프런트패널에서 라벨을 캡션으로 대체합니다.
프런트패널의 문자열을 번역하는 것 이외에, 숫자를 문자열로 변환할 때 현지화된 소수점을 사용할 수 있습니다. [날짜/시간 문자열로 포맷] 함수를 사용하여 날짜와 시간을 디스플레이하는 방법을 지정합니다.
다음 VI 문자열을 현지화할 수 있습니다:
- VI 윈도우 제목과 설명
- 객체 캡션과 설명
- 독립 라벨
- 기본 데이터(문자열, 테이블, 경로, 배열 기본 데이터)
- 프라이빗 데이터(리스트박스 아이템 이름, 테이블 행과 열 헤더, 그래프 플롯 이름, 그래프 커서 이름, 그래프 주석 이름)
- 지정하는 경우 블록다이어그램 문자열(독립 라벨과 문자열 상수)
VI 문자열 파일의 구문
VI 문자열 파일의 포맷은 HTML 파일과 비슷합니다. 시스템은 모든 원소를 시작 태그와 끝 태그로 표시합니다. 시작 태그는 <로 시작하여 >로 끝납니다. 끝 태그는 </로 시작하여 >로 끝납니다. LabVIEW는 텍스트 내에서를 제외하고 화이트 스페이스 문자를 무시합니다. <라는 문자가 태그의 시작을 나타내기 때문에, LabVIEW는 <<를 사용하여 텍스트에서 보다 작음을 표시합니다. >를 대신하여, LabVIEW는 >>를 사용하여 보다 큼을 표시합니다. LabVIEW는 큰 따옴표를 ""로 대체합니다. 또한, LabVIEW는 라인 끝 문자를 <CR>, <CRLF>, 또는 <LF>로 표시하는데, 이는 각각 캐리지 리턴, 캐리지 리턴과 그 다음의 라인 피드, 라인 피드로 취급됩니다. VI 문자열 파일의 포맷은 컴퓨터에서 읽을 수 있도록 만들어졌습니다. 따라서 읽기 어려운 경우에도 염려하지 마십시오. 반출 파일의 각 라인은 프라이빗 혹은 기본 데이터에 해당하는 두 개의 태그 이상을 포함하지 않습니다. 또한, LabVIEW는 각 포함된 레벨의 경우, 아이템을 들여쓰기합니다. 태그를 변경하거나 삭제하는 경우, LabVIEW는 파일을 VI로 반입할 때 에러를 발생시킵니다. 반출된 VI 문자열을 포함하는 텍스트 파일의 예는 반출된 VI 문자열의 예 항목을 참조하십시오.
다음 테이블은 VI 태그 타입과 대응하는 VI 태그 구문을 나열합니다.
| VI 태그 타입 | VI 태그 구문 |
|---|---|
| [VI 문자열 파일]. | <VI [vi attributes] > [vi 정보] </VI> |
| [VI 속성]. | syntaxVersion=5 LVversion=nnn revision=nnn name="텍스트" |
| [VI 정보]. | [vi 제목] [설명] [내용] [배경내용] |
| [VI 제목]. | <TITLE>텍스트</TITLE>|.<TITLE><NO_TITLE></TITLE>. |
| [설명]. | <DESC>텍스트</DESC>. |
| [내용]. | <CONTENT>[그룹][객체]</CONTENT> |
| [배경 내용]. | <BDCONTENT>[배경 객체] </BDCONTENT> |
스페이스는 VI 속성을 구분합니다. 속성 이름과 다음 등호 사이, 등호와 속성 값 사이에는 스페이스가 허용되지 않습니다.
예를 들면:
<VI syntaxVersion=5 LVversion=4502007 revision=10 name="AO Generate Waveform.vi">
<TITLE>AO Generate Waveform.vi</TITLE>
<DESC>이 VI는 지정된 업데이트 속도로 주어진 출력 채널에 대해 단순 버퍼 Timed 웨이브폼을 생성합니다.</DESC>
<CONTENT>
........
</CONTENT>
</VI>
다음 테이블은 프런트패널의 내용(독립과 고유 라벨, 캡션 라벨, 속성)을 설명하는 태그와 이에 상응하는 태그 구문을 나열합니다.
| 내용 태그 타입 | 내용 태그 구문 |
|---|---|
| [내용] | <CONTENT>[그룹][객체]</CONTENT> |
| [그룹] | <GROUPER>[부분]</GROUPER> |
| [객체] | ([컨트롤]|[라벨]) * |
| [컨트롤] | <CONTROL [control attributes]> [컨트롤 정보] </CONTROL> |
| [라벨] | <LABEL>[스타일 텍스트] </LABEL> |
| [스타일 텍스트] | <STEXT>폰트 정보를 가진 텍스트 </STEXT> |
<STEXT>와 </STEXT> 사이에 폰트 스펙을 타이핑할 수 있습니다. LabVIEW는 다음 포맷을 사용하여 폰트 정보를 인코딩합니다: <FONT name="font name" size='3' style='BIUSO' color=00ff00> 폰트 속성은 순서와 관계 없이 나열할 수 있습니다. 폰트 스펙은 끝 태그가 없으므로 다른 원소와 다릅니다. 예를 들어, 다음과 같이 캡션을 텍스트 "굵은체 라벨"로 설명할 수 있습니다.
<LABEL><STEXT><FONT name="times new roman" size=12 style='B'>Bold <FONT style='I'>label</STEXT></LABEL>
폰트를 사전 정의로 정의하여 사전에 정의된 폰트 중 하나를 지정할 수 있습니다―어플리케이션 폰트, 시스템 폰트, 또는 대화 상자 폰트.
<GROUPER></GROUPER> 태그는 함께 그룹화한 프런트패널 객체를 둘러쌉니다. 또한, 이 태그는 분리자 막대로 설정한 각 구획을 둘러쌉니다. 프런트패널이 언제나 적어도 하나 이상의 구획을 포함하므로, VI 문자열 파일은 항성 적어도 한 세트 이상의 <GROUPER></GROUPER> 태그를 포함합니다. 또한, 클러스터도 구획을 포함합니다.
다음 테이블은 데이터를 포함하는 객체를 설명하는 태그와 대응하는 태그 구문을 나열합니다.
| 내용 태그 타입 | 내용 태그 구문 |
|---|---|
| [컨트롤] | <CONTROL [control attributes]> [컨트롤 정보] </CONTROL> |
| [컨트롤 속성] | ID=xxx type="불리언" name="스위치" |
| [컨트롤 정보] | [설명] [팁 상자] [부분] [프라이빗 데이터 섹션] [기본 데이터 섹션] [내용] |
| [팁 상자] | <TIP>텍스트</TIP> |
| [부분] | <PARTS> [부분]*</PARTS> |
| [부분] | <PART [part attributes]> [부분 정보] </PART> |
| [부분 속성] | partID=nnn partOrder=nnn |
| [부분 정보] | [컨트롤]|[라벨]|[여러 라벨] |
다음은 "링" 캡션과 Load, Unload, Open 및 Close 옵션을 가진 링 컨트롤 설명의 예제입니다.
<CONTROL ID=87 type="Ring" name="RINGcontrol">
<DESC>링 컨트롤</DESC>
<PARTS>
<PART ID=12 order=0
type="Ring Text"><MLABEL><STRINGS><STRING>Load</STRING><STRING>Unload</STRING><STRING>Open</STRING><STRING>Close</STRING></STRINGS></MLABEL></PART>
<PART ID=82 order=0 type="Caption"><LABEL><STEXT><FONT color=FF0033 size=12>Ring</STEXT></LABEL></PART>
</PARTS>
</CONTROL>
LabVIEW는 위의 MLABEL (여러 라벨) 태그를 사용하여 옵션 문자열을 링 컨트롤 또는 4가지 각 상태에 대한 문자열인 불리언 버튼의 문자열에 지정합니다. 다음은 MLABEL 태그 구문의 일반적인 설명입니다:
[여러 라벨]<MLABEL> [여러 라벨 정보] </MLABEL>
[여러 라벨 정보][폰트][문자열]
다음 테이블은 문자열, 테이블, 배열, 경로의 기본 데이터를 설명하는 태그와 대응하는 태그 구문을 나열합니다.
| 내용 태그 타입 | 내용 태그 구문 |
|---|---|
| [기본 데이터 섹션] | <DEFAULT> [기본 데이터] </DEFAULT> |
| [기본 데이터] | [문자열 기본]|[테이블 기본]|[배열 데이터]|[경로 데이터] |
| [문자열 기본] | [문자열]|<SAME_AS_TEXT> |
| [테이블 기본] | [문자열] |
| [배열 데이터] | <ARRAY nElems=n> [배열 원소 데이터] </ARRAY> |
| [배열 원소 데이터] | [클러스터 데이터]|[문자열 데이터]|[비 문자열 데이터] |
| [문자열 데이터] | [문자열] |
| [비 문자열 데이터] | <NON_STRING> |
| [클러스터 데이터] | <CLUSTER nElems=n> [클러스터 원소 데이터] </CLUSTER> |
| [클러스터 원소 데이터] | [클러스터 데이터]|[문자열 데이터]|[비 문자열 데이터]|[배열 데이터]|[경로 데이터] |
| [경로 데이터] | <PATH type ="absolute"> a<SEP> 시스템 </PATH> |
[배열 데이터]의 경우, n [배열 원소 데이터]는 <ARRAY> 태그 다음에 와야 합니다. 마찬가지로 [클러스터 데이터]의 경우, n [클러스터 원소 데이터]는 <CLUSTER> 태그 다음에 와야 합니다.
문자열 컨트롤 기본 데이터 [문자열 기본]의 경우, 특별한 태그인 <SAME_AS_LABEL>를 사용합니다. 이 태그는 문자열 기본 데이터가 문자열 부분 리스트의 텍스트 라벨과 같음을 나타냅니다. <SAME_AS_LABEL>을 사용할 때, 텍스트 라벨과 문자열 기본 데이터 모두에 같은 텍스트를 타이핑할 필요가 없습니다.
경로 컨트롤 기본 데이터 [경로 데이터]의 경우, <PATH> 시작 태그는 경로 타입을 지정하는 속성을 가질 수 있습니다. 가능한 속성 값은 "absolute", "relative", "not-a-path" 및 "unc"입니다. <SEP> 태그는 <PATH>와 </PATH> 태그 사이에 오는 경로 부분을 구분합니다. 예를 들면, Windows 플랫폼에서 절대 경로 c:\windows\temp\temp.txt는 다음과 같이 쓰입니다:
<PATH type="absolute">c<SEP>windows<SEP>temp<SEP>temp.txt</PATH>
다음 테이블은 프라이빗 데이터를 설명하는 태그와 이에 상응하는 태그 구문을 나열합니다.
| 내용 태그 타입 | 내용 태그 구문 |
|---|---|
| [프라이빗 데이터 섹션] | <PRIV> [프라이빗 데이터]* </PRIV> |
| [프라이빗 데이터] | ([문자열]|[열 헤더]|[행 헤더]|[셀 폰트]|[플롯]|[커서]|[경로 프라이빗 데이터]|[탭 컨트롤 프라이빗 데이터]) |
| [문자열] | <STRINGS> [문자열]* </STRINGS> |
| [문자열] | <STRING> 텍스트 </STRING> |
| [열 헤더] | <COL_HEADER> [문자열]* </COL_HEADER> |
| [행 헤더] | <ROW_HEADER> [문자열]* </ROW_HEADER> |
| [셀 폰트] | <CELL_FONTS> [셀 폰트]* </CELL_FONTS> |
| [플롯] | <PLOTS> [문자열]* </PLOTS> |
| [커서] | <CURSORS> [문자열]* </CURSORS> |
| [셀 폰트] | [행 수 열 수][폰트] |
| [폰트] | <FONT name="font name" size='x' style='BIUSO' color=000000> |
| [경로 프라이빗 데이터] | <PROMPT>텍스트</PROMPT> <MTCH_PTN>텍스트</MTCH_PTN> <STRT_PTH>[경로 데이터]</STRT_PTH> |
| [탭 컨트롤 프라이빗 데이터] | <PAGE_CAPTIONS>[문자열]*</PAGE_CAPTIONS> |
| [탭 컨트롤 페이지] | <PAGE> [설명] [팁 상자] [객체] </PAGE> |
| 내용 태그 타입 | 내용 태그 구문 |
|---|---|
| [배경 내용] | <BDCONTENT>[배경 객체] </BDCONTENT> |
| [배경 객체] | ([컨트롤]|[라벨]|[노드])* |
| [노드] | <NODE [node attributes]>[노드 정보]</NODE> |
| [노드 속성] | ID=xxx type="시퀀스" |
| [노드 정보] | [설명][배경 내용] |
VI 윈도우 제목 편집하기
VI 윈도우 제목을 사용자 정의하여 VI 파일 이름보다 더 상세하게 설명할 수 있으며, 이는 현지화된 VI에서 중요합니다. VI 윈도우 제목은 현지화할 수 있으며, 파일 시스템 이름짓기 제한을 받지 않으면서도 윈도우를 호출하는 VI가 인식할 수 있습니다. 그 이유는 VI 호출 시 제목이 아니라 파일 이름으로 subVI를 참조하기 때문입니다. 반출/반입 도구를 사용하여 윈도우 제목을 현지화하거나, VI를 편집할 때 VI 프로퍼티 대화 상자의 윈도우 모양 페이지를 사용하여 수동으로 VI 윈도우 제목을 변경합니다. 또한, VI 서버를 사용하여 프로그램적으로 VI 윈도우 제목을 변경할 수 있습니다.
마침표와 쉼표 소수점
기본적으로, LabVIEW는 사용자의 OS 환경에 맞는 적당한 소수점을 찾아 사용하며, 이는 컨트롤내의 숫자 디스플레이와 숫자와 문자열 사이를 변환하는 함수의 작동에 영향을 미칩니다. 이렇게 되면 숫자를 문자열로 인스트루먼트에 전달하거나 인스트루먼트 출력 문자열을 분석할 때 문제가 발생합니다.
다음 함수는 기본으로 OS 셋팅을 사용합니다. 마침표를 사용하려면 거짓값을 시스템 소수점 사용(+) 이라고 불리는 불리언 입력에 연결해야 합니다.
- 소수점/지수 문자열을 숫자로
- 숫자를 소수점형 문자열로
- 숫자를 지수형 문자열로
- 숫자를 공학 문자열로
포맷 문자열을 받는 함수의 경우, 포맷 코드 %x는 해당 특정 호출에 대한 소수점을 지정하는데 사용될 수 있습니다. 여기서 x는 소수점 문자를 나타냅니다. 해당되는 함수는 다음과 같습니다:
- 문자열로 포맷
- 문자열로부터 스캔
- 값을 문자로 포맷
- 값 스캔
- 배열을 스프레드시트 문자열로
- 스프레드시트 문자열을 배열로
- 구분된 스프레드시트 읽기
도구≫옵션을 선택한 후 항목 리스트에서 프런트패널을 선택하고 현지화된 소수점 사용 확인란에 확인 표시를 하여 소수점 또는 마침표에 시스템 셋팅(로캘)을 사용할 것인지 지정합니다.
날짜와 시간 값을 문자열로 디스플레이하기
기본으로 [날짜/시간 문자열로 포맷] 함수를 사용하여 문자열의 날짜와 시간 디스플레이 포맷을 설정할 수 있습니다. LabVIEW는 OS 셋팅을 읽고 현재 로캘에 맞는 날짜/시간 형을 디스플레이합니다. LabVIEW는 중국어와 한국어와 같이 단축된 이름을 지원하지 않는 시스템을 위해 단축된 요일과 달 이름을 숫자값으로 반환합니다. 바로 가기 메뉴에서 디스플레이 포맷을 선택하여 디스플레이를 사용자 정의할 수 있습니다.
컨트롤의 시간과 날짜 포맷
정확성이 높은 절대 시간을 사용하고, 보고, 저장하려면 타임스탬프 컨트롤을 사용하십시오. 바로 가기 메뉴에서 디스플레이 포맷을 선택한 후 디스플레이 포맷 페이지를 설정하여 사용자 고정 포맷을 선택하거나 시스템(로캘 특정) 포맷을 사용할 수 있습니다. 또한, 숫자 컨트롤을 사용하여 타임스탬프 값을 디스플레이할 수 있지만 숫자 컨트롤은 상대적인 양을 가지고 있습니다. 타임스탬프 컨트롤은 절대적인 양을 가지고 있습니다.