Criar suporte global para aplicações de tela

O Power Apps é um produto global. Pode criar e utilizar aplicações baseadas em telas em vários idiomas e regiões diferentes.

Ambos durante a criação e execução de aplicações, o texto apresentado no Power Apps foi traduzido para diferentes tipos de idiomas. Irá ver itens de menu, caixas de diálogo, separadores de friso e outro texto no seu idioma nativo. A escrita e apresentação de datas e números também é adaptada para a sua região e idioma. Por exemplo, algumas regiões do mundo utilizam um . (ponto ou período) como separador decimal, enquanto outros utilizam uma , (vírgula).

As aplicações que cria também podem estar conscientes do mundo. Utilize o Idioma, Texto, Valor, DateValue e outras funções para adaptar o que é apresentado e utilizado como entrada em idiomas diferentes.

Definições de idioma

Ao utilizar o estúdio nativo ou um leitor nativo, o idioma utilizado é indicado pelo sistema operativo anfitrião. Para o Windows, esta definição pode ser controlado em "Todas as Definições" e, em seguida, nas definições de "Hora e idioma". O Windows também permite especificar os carateres a utilizar para o separador decimal, ao substituir a definição de idioma.

Ao utilizar as experiências Web, o idioma utilizado é indicado pelo browser. A maioria das predefinições de browser na definição do sistema de operativo anfitrião também oferecem uma forma de definir o idioma manualmente.

Ambiente de criação

O ambiente de criação adapta-se à definição de idioma do autor. A própria aplicação é armazenada de uma forma agnóstica de idioma, para que os autores que utilizam idiomas diferentes possam editar a mesma aplicação.

Nomes nas fórmulas

A maioria dos elementos na fórmula encontram-se sempre em inglês:

  • Nomes de função: Se, Navegar, Recolher, etc.
  • Nomes de propriedade de controlo: Screen.Fill, Button.OnSelect, Textbox.Font, etc.
  • Nomes de enumeração: Color.Aqua, DataSourceInfo.MaxValue, FontWeight.Bold, etc.
  • Registos de sinal: Compass.Heading, Location. Latitude, App.ActiveScreen, etc.
  • Operadores: Principal, em, exactIn, etc.

Uma vez que a experiência de criação é localizada, o controlo e outros nomes de objeto irão aparecer no idioma nativo do autor. Em espanhol, alguns dos nomes do controlo aparecem como:

Nomes de controlo em espanhol

Ao inserir um destes controlos na sua aplicação, o respetivo nome será predefinido para inglês. Esta alteração é feita para estar coerente com os nomes de propriedade de controlo e o resto da fórmula. Por exemplo, Casilla listado acima é inserido como Caixa de verificação1.

Assim que um controlo é inserido, pode alterar o nome para o que quiser. Quando selecionado, o lado mais à esquerda do friso "Conteúdo" apresenta o nome do controlo. Ao selecionar este nome, uma caixa de texto é suspensa, onde pode editar o nome:

Experiência em espanhol

Se assim o desejar, pode mudar aqui o nome do controlo para Casilla1. O squiggly vermelho, neste caso apresentado por um browser, é porque o nome não é uma palavra espanhola e de nenhuma preocupação.

Pode utilizar quaisquer nomes que queira para:

  • Nomes de controlos
  • Nomes de coleções
  • Nomes de variáveis de contexto

Separadores de fórmulas e operador de encadeamento

Alguns separadores e operadores irão deslocar-se com base no separador decimal do idioma do autor:

Separador decimal do idioma do autor Separador decimal do Power Apps Separador de lista do Power Apps Operador de encadeamento do Power Apps
. (ponto ou período) . (ponto ou período) , (vírgula) ; (ponto e vírgula)
, (vírgula) , (vírgula) ; (ponto e vírgula) ;; (ponto e vírgula duplo)

A alteração no separador de lista do Power Apps é consistente com o que acontece com o separador de lista do Excel. Tem impacto sobre:

  • Argumentos em chamadas de função.
  • Campos num registo.
  • Registos numa tabela.

Por exemplo, considere a fórmula seguinte expressa num idioma e região que utiliza ponto ou período como separador decimal, tal como o Japão ou o Reino Unido:

Fórmula Power Apps Se abre paren slider1 ponto valor superior a 12 ponto 59 vírgula notificar abre paren aspas duplas Válido! aspas duplas vírgula sucesso fecha paren ponto e vírgula Navegar abre paren aspas duplas NextScreen aspas duplas vírgula Nenhum fecha paren vírgula notificar abre paren aspas Inválido, tente novamente aspas duplas vírgula erro fecha paren fecha paren

Agora, veja esta mesma fórmula num idioma e região onde é utilizada uma vírgula para o separador decimal, tal como França ou Espanha:

Fórmula Power Apps Se abre paren slider1 ponto valor superior a 12 vírgula 59 ponto e vírgula notificar abre paren aspas duplas Válido! aspas duplas ponto e vírgula sucesso fecha paren ponto e vírgula duplo Navegar abre paren aspas duplas NextScreen aspas duplas ponto e vírgula Nenhum fecha paren ponto e vírgula notificar abre paren aspas Inválido, tente novamente aspas duplas ponto e vírgula erro fecha paren fecha paren

O realce mostra os operadores que são alterados entre as duas versões. O operador de seleção de propriedade . (ponto ou período) em Slider1.Value é sempre o mesmo, independentemente do separador decimal.

Internamente a fórmula não se altera, só é alterada a forma como é apresentada e editada pelo autor. Dois autores diferentes com dois idiomas diferentes podem ver e editar a mesma fórmula, com cada um a ver os operadores e os separadores adequados para o seu idioma.

Criar uma aplicação global

A aplicação que cria pode adaptar-se a idiomas diferentes, proporcionando uma experiência de utilizador excelente para os seus utilizadores em todo o mundo.

Função de idioma

A função Idioma devolve a etiqueta de idioma ao utilizador atual. Por exemplo, esta função devolve "pt-PT" para os utilizadores em Portugal e "de-DE" para utilizadores na Alemanha.

Entre outras coisas, pode utilizar Idioma para apresentar texto traduzido para os seus utilizadores. A sua aplicação pode incluir uma tabela dos valores traduzidos na sua aplicação:

Tabela com texto localizado

E, em seguida, utilize uma fórmula como a seguinte para obter cadeias traduzidas da tabela:

LookUp( Table1, TextID = "Hello" && (LanguageTag = Left( Language(), 2 ) || IsBlank( LanguageTag ))).LocalizedText

As cadeias traduzidas noutros idiomas podem ser maiores do que no seu idioma. Em muitos casos, as etiquetas e outros elementos que apresentam as cadeias na sua interface de utilizador terão de ser maiores para caber.

Para obter mais informações, veja a documentação para a função Idioma.

Formatação de números, datas e horas

Os números, datas e horas são escritos em diferentes formatos em diferentes partes o mundo. O significado das vírgulas, casas decimais e a ordem do mês, dia e ano variam de acordo com a localização.

A função Texto formata números e datas com a definição de idioma do utilizador.

O Texto necessita de uma cadeia de formato para saber como pretende formatar o número ou a data. Esta cadeia de formato pode ter uma de duas formas:

  • Uma enumeração com suporte global. Por exemplo, Text( Now(), DateTimeFormat.LongDate ). Esta fórmula irá formatar a data atual para um formato adequado do idioma. Este método é a forma preferencial para especificar a cadeia de formato.
  • Uma cadeia de formato personalizado. Por exemplo, Text( Now(), "[$-en-US]dddd, mmmm dd, yyyy" ) apresenta o mesmo texto que a enumeração quando utilizado no idioma "en-US". A vantagem da cadeia de formato personalizado é que pode especificar exatamente o que pretende.

O "[$-en-US]" no início da cadeia de formato personalizado diz ao Texto em que idioma interpretar a cadeia de formato personalizado. Esta cadeia é inserida para si e predefinida para o idioma de criação. Normalmente, não tem de alterar esta cadeia. É útil quando os autores de diferentes idiomas estão a editar a mesma aplicação.

O terceiro argumento para Texto especifica o idioma a utilizar para o resultado da função. A predefinição é a definição de idioma do utilizador atual.

Para obter mais informações, veja a documentação para a função Texto.

Leitura de números, datas e horas

Existem quatro funções para a leitura de números, datas e horas apresentadas pelo utilizador:

  • Valor: converte um número numa cadeia de texto para um valor numérico.
  • DateValue: converte um valor de data numa cadeia de texto para um valor de data/hora. Qualquer período de tempo especificado na cadeia de texto é ignorado.
  • TimeValue: converte um valor de hora numa cadeia de texto para um valor de data/hora. Qualquer data especificada na cadeia de texto é ignorada.
  • DateTimeValue: converte um valor de data e hora numa cadeia de texto para um valor de data/hora.

Se tiver utilizado o Excel, todas estas funções são combinadas numa função de Valor única. Estas são divididas aqui, uma vez que o Power Apps tem tipos separados para valores de data/hora e números.

Todas estas funções têm os mesmos argumentos:

  • Cadeia, obrigatório: uma cadeia do utilizador. Por exemplo, uma cadeia escreve num controlo de Introdução de texto e lê a partir do controlo com a propriedade de Texto.
  • Idioma, opcional: O idioma em que interpreta a Cadeia. Por predefinição, a definição de idioma do utilizador.

Por exemplo:

  • Value( "12,345.678", "en-US" ) ou Value( "12,345.678" ) quando localizados onde "en-US" é o idioma do utilizador devolve o número 12345.678, pronto para cálculos.
  • DateValue ("1/2/01", "es-ES") ou DateValue ("1/2/01") quando localizados onde "es-ES" é o idioma do utilizador devolve o valor de data/hora 1 de fevereiro de 2001 à meia-noite.
  • TimeValue( "11:43:02", "fr-FR" ) ou TimeValue( "11:43:02" ) quando localizados onde "fr-FR" é o idioma do utilizador devolve o valor de data/hora 1 de janeiro de 1970 às 11:43:02.
  • DateTimeValue( "11:43:02 1/2/01", "de-DE" ) ou DateTimeValue( "11:43:02 1/2/01" ) quando localizado em que "de-DE" é o idioma que o utilizador obtém do valor data/hora 1 de fevereiro de 2001 às 11:43:02.

Para obter mais informações, veja a documentação para as funções de Valor e DateValue, TimeValue e DateTimeValue e trabalhar com datas e horas.

Informações de Calendário e Relógio

As funções de Calendário e Relógio apresentam informações de calendário e relógio para o idioma atual do utilizador.

Entre outras coisas, utilize estas funções para oferecer um controlo Pendente com uma lista de opções.

Para obter mais informações, veja a documentação para as funções de Calendário e Relógio.