Com a localização de modelos, é possível 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 baseada em localização geográfica ou idioma. Você pode usar localidades para representar outros fatores distintivos, como usuários internos versus externos, ou gerentes versus colaboradores individuais, e personalizar seus rótulos e descrições de acordo com eles.
Esta página descreve as etapas para localizar seu projeto:
- Determine quais elementos serão localizados adicionando rótulos, rótulos de grupo e descrições ao seu modelo.
- Forneça as definições de localização do seu projeto criando arquivos de strings de localidade.
- Ative a localização do seu projeto adicionando configurações de localização ao arquivo de manifesto dele.
- Determine a exibição para diferentes usuários atribuindo usuários a localidades.
Em geral, a localização do modelo ocorre em conjunto com um administrador que especifica a localização do formato de número e as configurações de idioma da interface do usuário.
Como localizar rótulos e descrições no modelo
Você pode localizar rótulos, de grupo e descrições no seu modelo, incluindo o seguinte:
label
para campo, model, Explorar ou visualizaçãolabel
para aplicativos no framework de extensão do Lookergroup_label
para Explorar egroup_label
para campogroup_item_label
para o campodescription
para Explorar edescription
para campo
Também é possível criar painéis do LookML localizados no seu projeto. Os seguintes parâmetros do dashboard do LookML podem ser localizados:
title
description
text
(que é um subparâmetro do parâmetronote
e pode ser aplicado a todos os tipos de elementos do painel, além dos elementos detype: text
)comparison_label
single_value_title
Para conferir todos os campos que podem ser localizados no seu projeto, defina o nível de localização dele como strict
. Com essa configuração, o ambiente de desenvolvimento integrado do Looker retorna um erro de validação do LookML para qualquer elemento do LookML que possa ser localizado, mas que não tenha rótulos, e para qualquer string no modelo LookML que possa ser localizada, mas não definida nos arquivos de strings de localidade.
No exemplo do LookML a seguir, são fornecidos rótulos para a visualização flights
e os campos id
, country
e number_of_engines
. Também há uma descrição para o campo 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 ;;
}
Nos exemplos a seguir nesta página, localizaremos esses valores nos arquivos de strings usando um nível de localização permissive
. A dimensão location
não tem um rótulo, então podemos demonstrar como uma dimensão sem localização é mostrada.
Como 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 modelo são mostrados para cada localidade. No lado esquerdo de cada par de chave-valor está a chave de localização, que é um rótulo ou uma string de descrição do modelo. O lado direito do par de chave-valor é onde você define como quer que essa string seja exibida na interface do Looker.
É necessário criar um arquivo de strings dedicado para cada localidade que você quer usar no seu projeto. Crie apenas um arquivo de strings para cada localidade. Você precisa ter um arquivo de strings nomeado para corresponder à localidade padrão. Por exemplo, se você especificou default_locale: en
no arquivo de manifesto do seu projeto, precisa ter um arquivo no seu modelo chamado en.strings.json
. Cada string precisa ser definida no arquivo de strings de localidade default. Caso contrário, ela não será localizada.
Este exemplo de arquivo en.strings.json
vai ser utilizado para todos os usuários que têm o valor de Locale de en
. No LookML de exemplo a seguir, en
também é especificado como a localidade padrão. Portanto, todas as strings precisam ser definidas nesse arquivo para serem localizadas.
{
"flight_info": "Flights",
"id": "Identifier",
"country_of_departure": "Country of Departure",
"number_engines": "Number of Engines"
}
A tabela a seguir mostra o que um usuário com a localidade definida como en
encontraria na tabela de dados de uma Análise do Looker:
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 |
Observações:
- No LookML de amostra de visualização de
flights
mostrado anteriormente, não fornecemos um rótulo para a dimensãolocation
. Portanto, o Looker mostra o nome da dimensão com a primeira letra maiúscula: "Local". - Como não definimos a localização para o rótulo "country" no arquivo
en.strings.json
, o Looker mostra o rótulo conforme definido no arquivo de visualização, sem usar letras maiúsculas: "country".
Como outro exemplo, podemos criar um arquivo es_ES.strings.json
que será utilizado para todos os usuários com um valor de Locale de es_ES
:
{
"flight_info": "Vuelos",
"id": "Identificador",
"country": "País",
"country_of_departure": "País de Partida",
"number_engines": "Número de Motores"
}
A tabela a seguir mostra o que um usuário com a localidade definida como es_ES
encontraria no 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 |
Observações:
- Como no exemplo anterior, na visualização original com rótulos e descrições adicionados, não fornecemos um rótulo para a dimensão
location
, então o Looker mostra o nome da dimensão, com a primeira letra maiúscula: "Local". - Não definimos a localização para o rótulo "country" no arquivo
en.strings.json
, que é o arquivo de strings de localidade padrão. Então, mesmo que tenhamos definido "country" no arquivoes_ES.strings.json
, o Looker não vai localizar essa string e mostrar o rótulo como definido no nosso arquivo de visualização: "country".
Adicionar configurações de localização ao arquivo de manifesto do projeto
Para ativar a localização, adicione o parâmetro localization_settings
ao arquivo de manifesto do seu projeto.
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 são localizadas. Mesmo que uma string de rótulo ou de descrição seja definida em outro arquivo de strings de localidade, se ela não estiver definida no arquivo de strings de localidade default, a interface do Looker exibirá a string não localizada.
Não confunda a localidade padrão para seu projeto 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á en
por padrão. Se o administrador não inserir um valor específico de Locale para um usuário ou um grupo de usuários a que ele pertence, o Looker vai atribuir o usuário à localidade da instância padrão. Se o administrador não tiver definido uma localidade de instância padrão, o Looker vai atribuir o usuário à localidade en
.
Por esse motivo, a menos que você tenha certeza de que o administrador do Looker vai 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 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
dessa localidade.
localization_level
O nível de localização do projeto especifica se elementos não localizados são permitidos no modelo:
- Defina o nível de localização como
strict
para exigir rótulos localizados em todos os modelos, Análises, visualizações e campos do projeto. O ambiente de desenvolvimento integrado do Looker vai retornar um erro de validação do LookML para qualquer um desses elementos que não tenham rótulos e para todos os rótulos e descrições que não estiverem definidos no arquivo de strings de 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 do strict
, pode ser útil definir o nível de localização do seu projeto como permissive
durante o desenvolvimento para evitar erros de validação. Depois de localizar todos os rótulos e descrições, defina o nível de localização como strict
para conferir os erros.
Atribuir usuários a uma localidade
Depois de configurar os arquivos de strings de localidade, é possível atribuir usuários a uma localidade que corresponda a um dos arquivos de strings de localidade. Isso pode ser feito no nível da instância, do grupo de usuários ou do usuário individual, usando o campo Localidade ou o atributo de usuário locale
.
Por exemplo, se você quiser que um usuário acesse os rótulos e as descrições definidos no arquivo es_ES.strings.json
, o administrador do Looker precisa definir a configuração Locale do usuário como es_ES
.
Para inserir as localidades personalizadas criadas com arquivos de string no campo Locale, clique no campo e digite o nome do arquivo da string em vez de selecionar uma localidade integrada no menu suspenso. Para mais informações, consulte a página de documentação Usuários.
Como definir a localidade para usuários incorporados assinados
É possível incluir o valor de localidade de um usuário em um URL de incorporação assinado, assim como qualquer outro atributo de usuário. O formato exato necessário para incorporações assinadas depende da linguagem de programação usada para criar o script do URL de incorporação assinado, mas o nome do atributo do usuário é locale
. Consulte a página de documentação Incorporação assinada para mais informações sobre URLs de incorporação assinados e ferramentas para criar seu URL de incorporação assinado.
Como usar a localidade em variáveis líquidas
Conforme descrito anteriormente, a localização de modelos permite personalizar a exibição dos rótulos e descrições do seu modelo para diferentes localidades. No entanto, você também pode incluir chaves de localização em Variáveis líquidas, que também 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"
}
Depois, no arquivo es_ES.strings.json
, podemos fornecer versões em espanhol dessas chaves de localização:
{
"domestic": "Nacional",
"international": "Internacional"
}
Depois, podemos usar as teclas de localização domestic
e international
em 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;;
}
Os usuários com a localidade en
vão encontrar os seguintes resultados:
Flights Identifier | Flights country | Flights From the US? |
---|---|---|
289 | United States | Domestic |
400 | Canada | International |
493 | Congo | International |
936 | United States | Domestic |
Os usuários com a localidade es_ES
vão encontrar os seguintes resultados:
Vuelos Identificador | Vuelos País | Vuelos ¿De Los Estados Unidos? |
---|---|---|
289 | United States | Nacional |
400 | Canada | Internacional |
493 | Congo | Internacional |
936 | United States | Nacional |
Os usuários com a localidade es_ES
veem os dados "Doméstico" e "Internacional" localizados como "Nacional" e "Internacional", respectivamente.
Também é possível usar o Liquid em filtros do painel do LookML e filtros de elementos do painel do LookML para localizar o valor padrão em um filtro. Por exemplo, se um dashboard do LookML tiver um bloco usando dados desse modelo localizado e houver um filtro nesse bloco definido no LookML da seguinte maneira:
filters:
flights.from_US: "{{ _localization['domestic'] }}"
Quando um usuário com a localidade en
explora nesse bloco no painel, a Análise é filtrada no valor Domestic para o campo Flights From the US?, e a tabela de dados em "Explorar" inclui os seguintes resultados:
Flights Identifier | Flights country | Flights From the US? |
---|---|---|
289 | United States | Domestic |
936 | United States | Domestic |
Quando um usuário com a localidade es_ES
explora esse bloco no painel, a Análise é filtrada no valor Nacional para o campo Vuelos ¿De Los Estados Unidos?, e a tabela de dados em "Explorar" inclui os seguintes resultados:
Vuelos Identificador | Vuelos País | Vuelos ¿De Los Estados Unidos? |
---|---|---|
289 | United States | Nacional |
936 | United States | Nacional |
Como as regras de localização se aplicam a objetos estendidos e refinados
As regras de localização se aplicam quando você está estendendo visualizações, Análises ou painéis do LookML e quando está refinando visualizações ou Análises.
Se você estendeu ou refinou um objeto e depois adicionou 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 nossos arquivos de strings de localidade, precisamos definir as duas strings do 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 fazer atualizações até definir os novos rótulos ou descrições.