LookML 모델 현지화

모델 현지화를 사용하면 사용자의 언어에 따라 모델의 라벨과 설명이 표시되는 방식을 맞춤설정할 수 있습니다.

현지화는 지리적 위치나 언어에 기반할 필요가 없습니다. 언어를 사용하면 내부 사용자와 외부 사용자, 관리자 또는 개별 참여자 등 다른 차별화 요소를 나타내고 그에 따라 라벨과 설명을 맞춤설정할 수 있습니다.

이 페이지에서는 프로젝트를 현지화하는 절차를 설명합니다.

  1. 모델에 라벨, 그룹 라벨, 설명을 추가하여 현지화할 요소를 결정합니다.
  2. 언어 문자열 파일을 만들어 프로젝트에 현지화 정의를 제공합니다.
  3. 프로젝트의 매니페스트 파일에 현지화 설정을 추가하여 프로젝트의 현지화를 사용 설정합니다.
  4. 언어에 사용자를 할당하여 여러 사용자별로 디스플레이를 결정합니다.

모델 현지화는 종종 관리자가 숫자 형식 현지화사용자 인터페이스 언어 설정을 지정할 때 함께 진행됩니다.

모델의 라벨 및 설명 현지화

다음을 포함하여 모델의 라벨, 그룹 라벨, 설명을 현지화할 수 있습니다.

프로젝트에서 현지화된 LookML 대시보드를 만들 수도 있습니다. 현지화할 수 있는 LookML 대시보드 매개변수는 다음과 같습니다.

프로젝트에서 현지화할 수 있는 모든 필드를 보려면 프로젝트의 현지화 수준strict로 설정하면 됩니다. 이렇게 설정하면 Looker IDE는, 현지화될 수 있지만 라벨이 없는 LookML 요소 및 현지화될 수 있지만 언어 문자열 파일에서 정의되지 않은 LookML 모델의 모든 문자열에 대하여 LookML 유효성 검사 오류를 반환합니다.

다음 샘플 LookML에서는 flights 뷰와 id, country, number_of_engines 필드에 라벨이 제공됩니다. country 필드에 대한 설명도 제공됩니다.

view: flights {
  label: "flight_info"
  sql_table_name: flightstats.accidents ;;

  dimension: id {
    label: "id"
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }

  dimension: country {
    label: "country"
    description: "country_of_departure"
    type: string
    map_layer_name: countries
    sql: ${TABLE}.country ;;
  }

  dimension: number_of_engines {
    label: "number_of_engines"
    type: string
    sql: ${TABLE}.number_of_engines ;;
  }

  dimension: location {
    type: string
    sql: ${TABLE}.location ;;
  }

이 페이지의 다음 예시에서는 permissive 현지화 수준을 사용하여 문자열 파일에서 이러한 값을 현지화합니다. location 측정기준에는 라벨이 없으므로 현지화되지 않은 측정기준이 표시되는 방식을 보여줄 수 있습니다.

언어 문자열 파일 만들기

언어 문자열 파일은 키-값 쌍을 사용하여 각 언어에서 모델의 라벨과 설명이 표시되는 방식을 정의합니다. 각 키-값 쌍의 왼쪽에 모델의 라벨 또는 설명 문자열인 현지화 키가 있습니다. 키-값 쌍의 오른쪽에서 해당 문자열을 Looker UI에 표시할 방법을 정의합니다.

프로젝트에 사용하려는 각 언어별로 전용 문자열 파일을 만들어야 합니다. 각 언어별로 문자열 파일을 하나만 만드세요. 기본 언어와 일치하도록 이름이 지정된 문자열 파일이 있어야 합니다. 예를 들어 프로젝트의 매니페스트 파일에 default_locale: en을 지정한 경우 모델에 en.strings.json이라는 파일이 있어야 합니다. 각 문자열은 기본 언어 문자열 파일에서 정의되어야 하며, 현지화되지 않습니다.

en.strings.json 파일 예시는 언어 값이 en인 모든 사용자에게 활용됩니다. 다음 샘플 LookML에서는 en도 기본 언어로 지정되므로 현지화하려면 이 파일에서 모든 문자열을 정의해야 합니다.

{
  "flight_info": "Flights",
  "id": "Identifier",
  "country_of_departure": "Country of Departure",
  "number_engines": "Number of Engines"
}

다음 표에서는 언어가 en으로 설정된 사용자가 Looker Explore의 데이터 테이블에서 볼 수 있는 사항을 보여줍니다.

Flights Identifier Flights country Flights Location Flights Number of Engines
493 Congo Kisangani, Congo 3
2167 Saudi Arabia Riyadh, Saudi Arabia 3
2657 Austria Vienna, Austria 2
17992 United States Kansas City, MO 2
18893 United States Anchorage, AK 4

다음에 유의하세요.

  • 이전에 표시된 flights 뷰 샘플 LookML에서는 location 측정기준에 라벨을 제공하지 않았으므로 Looker에서 측정기준 이름인 '위치'를 대문자로 표시합니다.
  • en.strings.json 파일에서 '국가' 라벨의 현지화를 정의하지 않았으므로 Looker는 뷰 파일에 정의된 대로 라벨을 대문자로 표시하지 않고 '국가'로 표시합니다.

또 다른 예시로, 언어 값이 es_ES인 모든 사용자에게 활용되는 es_ES.strings.json 파일을 만들 수 있습니다.

{
  "flight_info": "Vuelos",
  "id": "Identificador",
  "country": "País",
  "country_of_departure": "País de Partida",
  "number_engines": "Número de Motores"
}

다음 표에서는 언어가 es_ES로 설정된 사용자가 Looker에서 볼 수 있는 사항을 보여줍니다.

Vuelos Identificador Vuelos country Vuelos Location Vuelos Número de Motores
493 Congo Kisangani, Congo 3
2167 Saudi Arabia Riyadh, Saudi Arabia 3
2657 Austria Vienna, Austria 2
17992 United States Kansas City, MO 2
18893 United States Anchorage, AK 4

다음에 유의하세요.

  • 앞에서의 예와 마찬가지로 라벨과 설명이 추가된 원본 뷰에서 location 측정기준에 대한 라벨을 전혀 제공하지 않았으므로 Looker는 측정기준의 이름인 대문자 'Location'을 표시합니다.
  • 기본 언어 문자열 파일인 en.strings.json 파일에서 '국가' 라벨의 현지화를 정의하지 않았습니다. 따라서 es_ES.strings.json 파일에 '국가'를 정의했더라도 Looker는 이 문자열을 현지화하지 않고 뷰 파일 '국가'에 정의된 대로 라벨을 표시합니다.

프로젝트의 매니페스트 파일에 현지화 설정 추가

프로젝트에서 현지화를 사용 설정하려면 localization_settings 매개변수를 프로젝트의 매니페스트 파일에 추가합니다.

매니페스트 파일에 현지화 설정을 추가합니다. 예를 들면 다음과 같습니다.

localization_settings: {
  default_locale: en
  localization_level: permissive
}

default_locale

default_locale 매개변수는 프로젝트의 기본 언어 문자열 파일 이름을 지정합니다.

기본 언어 문자열 파일은 모델의 어떤 문자열이 현지화되는지 결정합니다. 라벨 또는 설명 문자열이 다른 언어 문자열 파일에 정의되어 있어도 기본 언어 문자열 파일에 정의되지 않은 경우 Looker UI에 현지화되지 않은 문자열이 표시됩니다.

프로젝트의 기본 언어는 Looker 사용자의 기본 언어와 혼동해서는 안 됩니다. Looker 관리자는 인스턴스의 기본 언어를 설정할 수 있습니다. 기본값이 설정되어 있지 않으면 Looker는 기본적으로 en으로 설정됩니다. 관리자가 사용자가 속한 사용자 또는 사용자 그룹언어 값을 구체적으로 입력하지 않은 경우 Looker는 사용자를 기본 인스턴스 언어에 할당합니다. 관리자가 기본 인스턴스 언어를 설정하지 않은 경우 Looker는 사용자를 en 언어에 할당합니다.

따라서 Looker 관리자가 모든 Looker 사용자에 대해 언어를 설정할 것으로 확신하는 경우를 제외하면, 프로젝트의 default_locale 매개변수를 인스턴스의 기본 언어로(또는 기본값이 설정되지 않은 경우 en으로) 설정하고, 해당 언어에 대해 .strings.json 파일에서 모든 라벨 및 설명에 대한 현지화를 정의해야 합니다.

localization_level

프로젝트의 현지화 수준은 모델에서 현지화되지 않은 요소가 허용되는지 지정합니다.

  • 프로젝트의 모든 모델, Explore, 뷰, 필드에 현지화된 라벨을 요구하려면 현지화 수준을 strict로 설정합니다. Looker IDE는 라벨이 없는 요소와 기본 언어 문자열 파일에 정의되지 않은 라벨 및 설명에 대해 LookML 유효성 검사 오류를 반환합니다.
  • 현지화 수준을 permissive로 설정하여 라벨이 없는 요소를 허용하고, 기본 현지화 문자열 파일에 정의되지 않은 라벨과 설명을 허용할 수 있습니다.

strict 현지화 수준을 원하는 경우에도 프로젝트를 개발할 때 유효성 검사 오류를 방지하기 위해 프로젝트의 현지화 수준을 permissive로 설정하는 것이 좋습니다. 모든 라벨 및 설명의 현지화를 완료한 후 현지화 수준을 strict로 설정하여 오류를 확인할 수 있습니다.

언어에 사용자 할당

언어 문자열 파일을 설정하면 언어 문자열 파일 중 하나에 해당하는 언어에 사용자를 할당할 수 있습니다. 이 작업은 언어 필드 또는 locale 사용자 속성을 사용하여 .인스턴스, 사용자 그룹, 또는개별 사용자 수준에서 수행할 수 있습니다.

예를 들어, 사용자가 es_ES.strings.json 파일에 정의된 라벨과 설명을 보게 하고 싶은 경우, Looker 관리자는 사용자의 언어 설정을 es_ES로 설정해야 합니다.

문자열 파일로 만든 맞춤 언어는 드롭다운 메뉴에서 기본 제공 언어를 선택하는 대신 필드를 클릭하고 문자열 파일 이름을 입력하여 언어 필드에 입력할 수 있습니다. 자세한 내용은 사용자 문서 페이지를 참고하세요.

서명된 임베드 사용자의 언어 설정

다른 사용자 속성과 마찬가지로 서명된 임베드 URL에 사용자의 언어 값을 포함할 수 있습니다. 서명된 임베드에 필요한 정확한 형식은 서명된 임베드 URL 스크립트를 빌드하는 데 사용되는 프로그래밍 언어에 따라 달라지지만, 사용자 속성 이름은 locale입니다. 서명된 임베드 URL 및 서명된 임베드 URL 빌드용 도구에 대한 자세한 내용은 서명된 임베딩 문서 페이지를 참조하세요.

Liquid 변수에서 언어 사용

앞에서 설명한 것처럼 모델 현지화를 사용하면 여러 언어에 대한 모델 라벨 및 설명 표시를 맞춤설정할 수 있습니다. 하지만 Liquid 변수에 현지화 키를 포함하여 데이터 값도 현지화할 수 있습니다.

예를 들어 en.strings.json이라는 기본 언어 문자열 파일에서 다음 항목이 포함된 현지화 키 domesticinternational을 만들 수 있습니다.

{
  "domestic": "Domestic",
  "international": "International"
}

es_ES.strings.json 파일에서 다음 현지화 키의 스페인어 버전을 제공할 수 있습니다.

{
  "domestic": "Nacional",
  "international": "Internacional"
}

이 경우 Liquid 변수의 domesticinternational 현지화 키를 사용하여 측정기준의 출력을 현지화할 수 있습니다.

dimension: from_US {
    label: "from_us"
    type: string
    sql: CASE
         WHEN ${TABLE}.country = 'United States' THEN '{{ _localization['domestic'] }}'
         ELSE '{{ _localization['international'] }}'
         END;;
  }

en 언어 사용자는 다음과 같은 결과를 볼 수 있습니다.

Flights Identifier Flights country Flights From the US?
289 United States Domestic
400 Canada International
493 Congo International
936 United States Domestic

es_ES 언어 사용자는 다음과 같은 결과를 볼 수 있습니다.

Vuelos Identificador Vuelos País Vuelos ¿De Los Estados Unidos?
289 United States Nacional
400 Canada Internacional
493 Congo Internacional
936 United States Nacional

es_ES 언어 사용자는 각각 'Nacional' 및 'Internacional'로 현지화된 '국내' 및 '국제' 데이터를 볼 수 있습니다.

또한 LookML 대시보드 필터LookML 대시보드 요소 필터에서 Liquid를 사용하여 필터의 기본값을 현지화할 수도 있습니다. 예를 들어 LookML 대시보드에 이 현지화된 모델의 데이터를 사용하는 타일이 있고 해당 타일에 LookML에서 정의된 필터가 있는 경우 다음과 같습니다.

filters:
  flights.from_US: "{{ _localization['domestic'] }}"

en 언어를 사용하는 사용자가 대시보드의 타일을 탐색하면 Explore가 Flights From the US? 필드의 Domestic 값으로 필터링되며, Explore의 데이터 테이블에 다음 결과가 포함됩니다.

Flights Identifier Flights country Flights From the US?
289 United States Domestic
936 United States Domestic

es_ES 언어가 있는 사용자가 대시보드의 타일에서 탐색하면 Explore 필드가 Vuelos ¿De Los Estados Unidos? 필드의 Nacional 값으로 필터링되며 Explore의 데이터 테이블에는 다음 결과가 포함됩니다.

Vuelos Identificador Vuelos País Vuelos ¿De Los Estados Unidos?
289 United States Nacional
936 United States Nacional

확장된 객체 및 세분화된 객체에 현지화 규칙이 적용되는 방식 이해

뷰, Explore 분석 또는 LookML 대시보드를 확장할 때와 뷰 또는 Explore 미세 조정 시에 현지화 규칙이 적용되는 점에 유의하세요.

객체를 확장하거나 상세검색한 다음 새 라벨 또는 설명을 추가한 경우 언어 문자열 파일에 현지화 정의를 제공해야 합니다.

예를 들어 flights 뷰가 있는 경우 다음과 같습니다.


view: flights {
  label: "flight_info"
  sql_table_name: flightstats.accidents ;;
  ...
}

그런 다음 flights 뷰를 확장하는 새 뷰를 만듭니다.

include: "/views/flights.view"

view: flights_enhanced {
  extends: [flights]
  label: "enhanced_flight_info"
}

언어 문자열 파일에서 두 가지 뷰 라벨 문자열("flight_info""enhanced_flight_info")을 모두 정의해야 합니다. 프로젝트의 현지화 수준이 strict로 설정된 경우 새 라벨 또는 설명을 정의할 때까지 업데이트를 커밋할 수 없습니다.