Como localizar seu modelo LookML

A localização de modelos geralmente ocorre em conjunto com a localização de formato de número e a seleção de idioma da interface do usuário. Para saber mais sobre esses tópicos, acesse as páginas de documentação Formatação do número de localização e Idiomas da interface do usuário compatíveis.

Com a localização de modelos, você pode personalizar como os rótulos e as descrições do seu modelo são exibidos de acordo com a localidade do usuário.

A localização não precisa ser com base em localização geográfica ou idioma. Você pode usar localidades para representar outros fatores característicos, como usuários internos ou externos, ou gerentes em comparação com colaboradores individuais, e personalizar seus rótulos e descrições conforme necessário.

No momento, a localização de modelos não é compatível com a importação de projetos.

Esta página descreve as etapas para localizar seu projeto:

Para saber mais sobre como localizar a interface do usuário do Looker ou localizar a formatação de números, acesse as páginas de documentação Idiomas da interface do usuário compatíveis e Como formatar a formatação de números.

Como usar elementos localizados nos arquivos de modelo

É possível localizar rótulos, rótulos de grupos e descrições em seu modelo, incluindo o seguinte:

Não há suporte para a localização no dimension_group. Em vez disso, use group_label e group_item_label para criar seu próprio conjunto de dimensões que podem ser localizadas.

Você também pode criar painéis do LookML localizados no seu projeto. Os seguintes parâmetros do painel LookML podem ser localizados:

Para ver todos os campos do projeto que podem ser localizados, defina o nível de localização do projeto como strict. Com essa configuração, o ambiente de desenvolvimento integrado do Looker retorna um erro de validação LookML para todos os elementos LookML que podem ser localizados, mas que não têm rótulos, e para qualquer string no modelo LookML que possa ser localizada, mas que não estejam definidas em seus arquivos de string de localidade.

Veja um exemplo de arquivo de visualização com alguns rótulos e descrições:

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

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

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

  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 ;;
  }

Localizaremos esses valores nos arquivos de string usando um nível de localização permissive. A dimensão location não tem um rótulo para demonstrarmos como uma dimensão sem localização é exibida.

Criar arquivos de strings de localidade

Os arquivos de strings de localidade usam pares de chave-valor para definir como os rótulos e as descrições no seu modelo são exibidos em cada localidade. À esquerda de cada par de chave-valor, está a chave de localização, que é uma string de descrição ou de rótulo do seu modelo. O lado direito do par de chave-valor é onde você define como quer que a string seja exibida na IU do Looker.

Para cada localidade que você quiser no seu projeto, crie um arquivo dedicado a strings. Crie apenas um arquivo de strings para cada localidade no seu projeto. É preciso haver um arquivo de strings nomeado para corresponder à localidade padrão. Por exemplo, se você especificou default_locale: en no arquivo de manifesto do projeto, é necessário ter um arquivo no modelo chamado en.strings.json. Cada string precisa ser definida no arquivo de strings de localidade padrão. Caso contrário, ela não será localizada.

A localização do modelo não precisa ser baseada em uma localização geográfica ou idioma. No entanto, se você estiver usando a localização de modelos e também quiser usar o painel nativo e a interface do usuário de visualização nativa do Looker, será necessário corresponder o título do arquivo de strings com os códigos de localidades compatíveis do Looker.

Este é um exemplo de arquivo en.strings.json que será utilizado por todos os usuários com o valor Locale de en. Neste exemplo, en também é especificado como nossa localidade padrão, portanto, todas as strings precisam ser definidas nesse arquivo para que sejam localizadas.

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

O que um usuário do en veria no Looker:

Observe o seguinte:

  • No arquivo de visualização acima, não fornecemos um rótulo para a dimensão location. Por isso, o Looker exibe o nome da dimensão em letras maiúsculas: "Local".
  • Não definimos a localização do rótulo "quot;country"" em nosso arquivo en.strings.json. Por isso, o Looker exibe o rótulo conforme é definido no arquivo de visualização, sem letras maiúsculas: "quoquo;country".

Como outro exemplo, podemos criar um arquivo es_ES.strings.json que seja utilizado por todos os usuários com o valor Locale de es_ES:

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

O que um usuário do es_ES veria no Looker:

Observe o seguinte:

  • Como no exemplo anterior, no arquivo de visualização acima, não fornecemos um rótulo para a dimensão location. Por isso, o Looker exibe o nome da dimensão em letras maiúsculas: "Location".
  • Não definimos a localização do marcador "quot;country"" em nosso arquivo en.strings.json, que é o arquivo de strings de localidade padrão. Assim, mesmo que tenhamos definido "country" em nosso arquivo es_ES.strings.json, o Looker não localizará essa string e exibirá o rótulo conforme definido em nosso arquivo de visualização: "country".

Adicionar configurações de localização ao arquivo de manifesto do seu projeto

Para ativar a localização do projeto, adicione o parâmetro localization_settings ao arquivo de manifesto do projeto.

Caso seu projeto ainda não tenha um arquivo de manifesto, crie um usando o ícone + na parte superior do navegador de arquivos do ambiente de desenvolvimento integrado do Looker.

No arquivo de manifesto, adicione as configurações de localização. Veja um exemplo:

localization_settings: {
  default_locale: en
  localization_level: permissive
}

default_locale

O parâmetro default_locale especifica o nome do arquivo de strings de localidade padrão no seu projeto.

O arquivo de strings de localidade padrão determina quais strings do seu modelo estão localizadas. Mesmo que uma string de rótulo ou descrição seja definida em outro arquivo de strings de localidade, se ela não for definida no arquivo de strings de localidade padrão, a IU do Looker exibirá a string não localizada. Consulte esta seção acima para ver mais informações sobre a configuração de arquivos de string de localidade.

A localidade padrão do seu projeto não deve ser confundida com a localidade padrão para usuários do Looker. O administrador do Looker pode definir uma localidade padrão para sua instância. Se nenhum padrão for definido, o Looker usará como padrão en. Se o administrador não inserir especificamente um valor de Locale para um usuário ou um grupo de usuários a que o usuário pertence, o Looker atribuirá o usuário à localidade padrão da instância. Se o administrador não tiver definido uma localidade padrão da instância, o Looker atribuirá o usuário à localidade en.

Por esse motivo, a menos que você tenha certeza de que o administrador do Looker definirá o valor de Locale para todos os usuários do Looker, defina o parâmetro default_locale do projeto como a localidade padrão da sua instância (ou en se nenhum padrão tiver sido definido) e defina a localização de todos os rótulos e descrições no arquivo .strings.json para essa localidade.

localization_level

O nível de localização do seu projeto especifica se elementos não localizados são permitidos em seu modelo:

  • Defina o nível de localização como strict para exigir rótulos localizados em todos os modelos, "explores", "visualizações" e "campos" no seu projeto. O ambiente de desenvolvimento integrado do Looker retornará um erro de validação do LookML para qualquer um desses elementos que não tiverem rótulos e para quaisquer rótulos e descrições que não estiverem definidos no arquivo de strings da localidade padrão.
  • Defina o nível de localização como permissive para permitir elementos sem rótulos e para permitir rótulos e descrições que não estão definidos no arquivo de strings de localização padrão.

Mesmo que você queira o nível de localização de strict, pode ser útil definir o nível de localização do seu projeto como permissive quando estiver desenvolvendo seu projeto para evitar erros de validação. Quando terminar de localizar todos os marcadores e descrições, defina o nível de localização como strict para ver os erros.

Atribuir usuários a uma localidade

Depois de configurar os arquivos de strings de localidade, você poderá atribuir usuários a uma localidade que corresponda a um dos arquivos de strings de localidade. Isso pode ser feito em instância, grupo de usuários ou usuário individual usando o campo Localidade ou o atributo de usuário locale.

Por exemplo, se você quiser que um usuário veja os marcadores e as descrições definidos no arquivo es_ES.strings.json, seu administrador do Looker deverá definir a configuração de Localidade do usuário como es_ES:

As localidades personalizadas criadas com arquivos de string podem ser inseridas no campo Local. Para isso, clique no campo e digite o nome do arquivo de string, em vez de selecionar uma localidade integrada no menu suspenso. Veja mais informações na página de documentação Usuários.

Quando uma localidade não está definida para usuários no nível do indivíduo ou do grupo de usuários, o Looker atribui usuários à localidade da instância. No entanto, se não houver um arquivo .strings configurado para a localidade da instância, a localização do modelo não funcionará para esses usuários. Por isso, um arquivo .strings precisa ser configurado para cada localidade padrão da instância. Saiba mais nas seções default_locale ou Como criar arquivos de strings de localidade.

Configuração da localidade para usuários de incorporação de SSO

É possível incluir o valor da localidade de um usuário em um URL de incorporação de SSO como qualquer outro atributo de usuário. O formato exato necessário para incorporações de SSO depende da linguagem de programação usada para criar o script do URL de incorporação de SSO, mas o nome do atributo de usuário é locale. Consulte a página de documentação Incorporação de Logon único (SSO) para ver mais informações sobre URLs de incorporação de SSO e ferramentas para criar seu URL de incorporação de SSO.

Como usar a localidade em variáveis líquidas

Como descrito acima, a localização de modelo permite personalizar a exibição dos rótulos e descrições do modelo para diferentes localidades. Mas você também pode incluir chaves de localização em Variáveis líquidas, que permitem localizar os valores de dados.

Por exemplo, em nosso arquivo de strings de localidade padrão chamado en.strings.json, podemos criar as chaves de localização domestic e international com as seguintes entradas:

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

Em seguida, no arquivo es_ES.strings.json, podemos fornecer versões em espanhol destas chaves de localização:

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

A partir daí, podemos usar as chaves de localização domestic e international nas variáveis líquidas para localizar a saída de uma dimensão:

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

Agora, nossos usuários com a localidade en podem ver o seguinte:

Veja o que nossos usuários da localidade es_ES veem:

Também é possível usar o líquido em filtros de painel e painel para localizar o valor padrão em um filtro. Por exemplo, se um painel LookML tiver um bloco do Explorar acima e houver um filtro nesse bloco definido da seguinte forma:

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

Veja o que os usuários da localidade en veriam ao explorar o bloco no painel:

Veja o que os usuários da localidade es_ES veriam ao explorar o bloco no painel:

Como as regras de localização se aplicam a objetos refinados e estendidos

Lembre-se de que as regras de localização se aplicam quando você estende visualizações, explorações ou painéis LookML e quando refina visualizações ou explorações.

Se você tiver estendido ou refinado um objeto e adicionado novos rótulos ou descrições, forneça definições de localização nos arquivos de strings de localidade.

Por exemplo, se tivermos uma visualização flights:


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

Em seguida, criamos uma nova visualização que estende a visualização flights:

include: "/views/flights.view"

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

Nos arquivos de strings de localidade, é necessário definir as duas strings de rótulo de visualização ("flight_info" e "enhanced_flight_info"). Se o nível de localização do projeto estiver definido como strict, não poderemos realizar atualizações até definirmos os novos rótulos ou descrições.