본 포스트에서는 사용자 정의 라벨(Custom Labal)를 사용하는 방법에 대해 알아보겠습니다.


# 목차

  • 사용자 정의 라벨(Custom Label) 이란?

  • 사용자 정의 라벨(Custom Label) 등록

  • 사용자 정의 라벨에 번역 기능 추가

  • 사용자 정의 라벨을 Apex 와 Visualforce에서 사용하는 방법

  • 번역 기능 실행 결과


# 사용자 정의 라벨(Custom Label) 이란?

개발자는 사용자 정의 라벨을 사용하여 도움말 텍스트 및 오류 메시지 등의 정보를 자동으로 사용자의 모국어로 번역, 표시하는 다국어 프로그램을 만들 수 있습니다.

 

예를 들어, 사용자 정의 라벨을 이용해서 "사과" 라는 단어를 표시하고 있는 페이지가 있다고 가정했을 때, 

사용자의 언어(로그인 중인 유저의 언어)를 영어로 바꾸면 자동으로 "사과"에서 "Apple"로 표시가 됩니다.

 

언어는 Salesforce에서 지원되는 모든 언어로 번역이 가능합니다.

 

하지만, 딱히 번역 기능이 필요하지 않은 경우에는 고정 텍스트를 표시하기 위한 수단만으로도 사용하기도 합니다.

 

예를 들어, 다수의 페이지(화면)에 똑같은 항목명 (ex: 이름, 나이, 등)을 표시할 경우,

사용자 정의 라벨 하나로 편하게 수정, 표시가 가능합니다.


# 사용자 정의 라벨(Custom Label) 등록

사용자 정의 라벨은 [설정 > 사용자 인터페이스 > 사용자 정의 라벨]을 선택해 "사용자 정의 라벨" 화면으로 이동합니다.

 

"사용자 정의 화면" 에서 [새 사용자 정의 라벨] 버튼을 눌러 "사용자 정의 라벨 편집" 화면을 표시합니다.

 

그 후, "사용자 정의 라벨 편집" 화면에서 정보를 입력한 후, [저장] 버튼을 눌러 라벨을 저장합니다.

여기서는 말머리에서 예를 든 "사과"를 예시로 사용하겠습니다.

입력 항목 정보

  • 짧은 설명 : 라벨에 대한 간단 설명 (임의)

  • 이름 : Apex코드 등에서 사용될 API 참조명

  • 언어 : 사용자(로그인 중인 유저)의 언어가 기본값으로 지정되어 있음

  • 보호된 구성요소 : 라벨을 보호 구성요소로 설정

  • 값 : 표시할 텍스트 데이터

위 방법으로 "사용자 정의 라벨"을 등록할 수 있습니다. 

하지만 현재로서는 번역 기능이 추가되지 않은 단순 텍스트를 표시하기 위한 라벨인 상태이기 때문에, 

번역 기능을 따로 추가해 줄 필요가 있습니다.

(번역 기능을 사용하지 않는 경우는 이대로 사용해도 무방)

 

 

 


# 사용자 정의 라벨에 번역 기능 추가

먼저, [설정 > 사용자 인터페이스 > 번역 워크벤치 > 번역]을 클릭해 "번역" 화면을 표시합니다.

그 후, [활성화] 버튼을 눌러 사용자 정의 라벨의 번역 기능을 활성화 합니다.

 

번역 기능이 활성화 되면 "번역 언어 설정" 화면이 자동으로 표시되며, 이 곳에서 사용자 정의 라벨에서 번역 기능을 추가할 언어를 설정해주어야 합니다. [추가] 버튼을 눌러 언어를 추가합니다.

본 포스트에서는 영어, 일본어만 추가하겠습니다.

 

번역할 언어의 설정이 끝났다면, 다시 [설정 > 사용자 인터페이스 > 사용자 정의 라벨]을 클릭해 "사용자 정의 라벨" 화면을 표시합니다.

 

그 후, 번역 기능을 추가할 사용자 정의 라벨의 이름 링크(여기서는 LabelApple)를 클릭해 상세화면을 표시합니다. 

 

사용자 정의 라벨의 상세화면에 번역란이 생긴 것을 확인하실 수 있을겁니다.

 

번역란에서 [새로 만들기] 버튼을 클릭해 "번역 편집" 화면을 표시, 번역할 정보를 입력한 뒤 [저장] 버튼을 눌러 사용자 정의 라벨의 번역 정보를 저장합니다.

 

번역 정보까지 등록이 완료되면, 사용자 정의 라벨의 상세화면은 다음과 같이 표시됩니다.

이것으로 사용자 정의 라벨을 이용한 텍스트 자동 번역 기능 설정이 완료되었습니다.


# 사용자 정의 라벨을 Apex와 Visualforce에서 사용하는 방법

사용자 정의 라벨을 코드상에서 사용하는 방법은 다음과 같습니다.

 

※ Apex

// System.Label.[사용자 정의 라벨 이름]
ex) String labelValue = System.Label.LabelApple;  // 결과: labelValue = "사과"

※ Visualforce 

<!-- $Label.[사용자 정의 라벨 이름] -->
ex) <apex:outputText value="{!$Label.LabelApple}"/>

# 번역 기능 실행 결과

코드 예시)

※ Apex 컨트롤러

public class CntrlCustomLabelTrans {

	// 화면에 표시할 사용자 정의 라벨의 텍스트 값 변수
    public String labelTxt { get; set; }

    public CntrlCustomLabelTrans() {
        
        // 사용자 정의 라벨의 텍스트 값 습득
        labelTxt = System.Label.LabelApple;
    }
}

※ Visualforce 페이지

<apex:page controller="CntrlCustomLabelTrans" sidebar="false">
    <apex:form id="form">
        <apex:pageBlock>
            <apex:pageBlockSection columns="1" showHeader="true" collapsible="true" title="사용자 정의 라벨 테스트">
	        	<apex:pageBlockSectionItem>
	                <apex:outputText value="Apex 컨트롤러에서 사용자 정의 라벨 표시"/>
	                <apex:outputText value="{!labelTxt}"/>
            	</apex:pageBlockSectionItem>

            	<apex:pageBlockSectionItem>
                	<apex:outputText value="Visualforce 내에서 사용자 정의 라벨 표시"/>
                	<apex:outputText value="{!$Label.LabelApple}"/>
            	</apex:pageBlockSectionItem>
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>

 

☆표시 결과(한국어)

 

번역 기능을 확인하기 위해, [설정 > 사용자 > 사용자]를 클릭해 "사용자" 화면을 표시합니다.

그 후, 로그인 중인 유저의 이름 왼쪽에 표시된 편집 링크를 클릭해 "사용자 편집 화면"을 표시합니다.

 

"사용자 편집 화면"의 아래를 보면, 언어를 변경할 수 있는 언어 선택란이 있습니다.

언어를 영어 또는 일본어로 바꾸어 준 후, [저장] 버튼을 눌러 저장합니다.

 

언어 설정이 완료된 후, 다시 한 번 페이지를 표시하면 번역된 텍스트가 표시됩니다.

 

☆표시 결과(영어)

 

☆표시 결과(일본어)

 

주의할 점은 사용자 정의 라벨에 설정한 언어와 그 텍스트 값으로만 표시되기 때문에, 현재 상황에서 중국어 등을 선택하면 한국어인 "사과"가 그대로 표시됩니다.

 

따라서 필요에 따라 언어 설정을 추가해야만 합니다.


이상으로 사용자 정의 라벨(Custom Label)의 사용법에 대해 알아보았습니다.

 

사용자 정의 라벨을 사용할 때의 주의점 중 하나는, 개발한 애플리케이션을 판매하기 위해 패키지를 만들었을 경우

즉, 관리 패키지를 생성한 경우, 사용자 정의 라벨의 텍스트값(여기서는 "사과")의 변경이 불가능합니다.

 

따라서, 패키지를 제공하여 거래처에 따라 서로 다른 항목명 등을 사용할 목적으로 사용자 정의 라벨을 사용하는 것은 바람직하지 않은 방법입니다.

 

현재, 패키지에 관련된 포스팅이 없기 때문에 무슨 말인지 이해하기 힘드실 수도 있지만, 차차 패키지 관련 포스트도 업로드 할 예정이기 때문에 그 때 다시 한 번 전체적으로 주의점을 나열해 볼 생각입니다.

(언제가 될지는 모르겠지만)

 

 

 

 

 

 

 

 

 

 

참고) help.salesforce.com/articleView?id=cl_about.htm&type=5 - Trailhead Community - Custom Labels

+ Recent posts