O Qt fornece ferramentas e uma metodologia para internacionalizar seu aplicativo. Para detalhes completos, consulte Internacionalização e Localização com Qt Quick.
As etapas gerais são como segue:
- Tenha certeza que a internacionalização é tomada em consideração em seus arquivos QML, incluindo o uso de strings de texto, eliminando a ambiguidade de texto idêntico, e o uso de parâmetros e lugares.
- Utilize a ferramenta lupdate.exe da linha de comando para gerar o arquivo de tradução base, e copie o arquivo de tradução base e o nomeie para cada idioma exigido.
- Utilize o Qt Linguist para abrir estes arquivos e forneça as traduções.
- No Qt Linguist, escolha Arquivo > Versão ou utilize a ferramenta lrelease.exe da linha de comando para gerar os arquivos de tradução.
- Inclua estes arquivos de tradução no projeto que será feito em um aplicativo independente.
Internacionalizar seu QML
O The Qt Company recomenda completar as seguintes etapas para internacionalizar seu QML:
- Utilize qsTr() para todas as strings da interface de usuário literal.
- Adicione contexto. Utilize linhas de comentário para descrever onde uma string é utilizada, pelo uso de uma sintaxe específica. //: é um comentário para o tradutor, embora //~ seja uma informação extra opcional.
- Solucione a ambiguidade de texto idêntico. Se um termo puder ter múltiplos significados, adicione um segundo parâmetro para diferenciar, por exemplo, text: qsTr("back", "not front"); text: qsTr("back", "go backward").
- Utilize %x para inserir parâmetros em uma string, por exemplo, text: qsTr("File %1 of %2").arg(counter).arg(total).
- Utilize %Lx para que os números sejam localizados, por exemplo, text: qsTr("%L1").arg(total).
- Internacionalize datas, horas e moedas, por exemplo, text: qsTr("Date %1").arg(Date().toLocaleString(Qt.locale())).
- Utilize QT_TR_NOOP() para strings do texto de dados traduzíveis.
- Utilize o lugar para estender os recursos de localização sempre que possível.
Para detalhes sobre cada etapa, consulte Internacionalização e Localização com Qt Quick.
Você também deve considerar a internacionalização ao incluir imagens no seu aplicativo. A imagem que você exibir pode diferir dependendo do idioma selecionado. O seguinte exemplo mostra como detectar se um idioma da direita para esquerda (RTL) está em uso, e configura uma propriedade definida pelo usuário denominada mirror. Esta propriedade é então utilizada para determinar qual imagem será exibida.
property var localeForRTL:["ar", "he", "he-IL"]
property bool mirror: localeForRTL.indexOf(Qt.locale().uiLanguages[0]) > -1
Image{
source: mirror ? "./RTLimage.png" : "./Image.png"
}
lupdate
lupdate é uma ferramenta da linha de comando do Qt localizada na pasta de instalação do AppStudio.
Para executar, abra uma janela de comando no seu diretório de projeto e execute o seguinte comando. Tenha em mente que o período utilizado em cada um dos exemplos a seguir representa o diretório atual, que é a pasta do aplicativo que contém os arquivos .qml.
No Windows:
C:\Users\UserName\ArcGIS\AppStudio\Apps\MyApp>"C:\Users\Username\Applications\ArcGIS\AppStudio\bin\lupdate.exe" . -extensions qml -ts languages/MyApp_en.ts
No macOS:
/Users/UserName/applications/ArcGIS/AppStudio/tools/lupdate . -extensions qml -ts languages/MyApp_en.ts
No Ubuntu:
~/Applications/ArcGIS/AppStudio/bin/lupdate . -extensions qml -ts languages/MyApp_en.ts
Um novo arquivo será criado denominado MyApp_en.ts.
As traduções para novos idiomas são criadas ao copiar e renomear o arquivo MyApp_en.ts uma vez para cada idioma exigido, e ao substituir EN pelo código de idioma para cada idioma exigido. Os arquivos .ts podem então ser editados com Qt Linguist.
Para detalhes adicionais, consulte Utilizando lupdate.
Qt Linguist
Linguist é uma ferramenta GUI localizada na pasta da instalação do AppStudio. Você abre os arquivos .ts que foram criados com lupdate no Linguist e adiciona as traduções para cada uma das strings listadas. Somente strings marcadas como concluídas serão processadas pela ferramenta lrelease.
Para detalhes adicionais, consulte Manual do Qt Linguist.
lrelease
Você pode gerar os arquivos de versão das seguintes maneiras:
- Abra o arquivo .ts finalizado no Linguist, e do menu Arquivo, escolha Versão. Um arquivo .qm será criado para corresponder ao seu arquivo .ts.
- Utilize a ferramenta da linha de comando. lrelease é uma ferramenta de comando do Qt localizada na pasta de instalação do AppStudio. Os arquivos de tradução do runtime podem ser gerados executando o seguinte comando, listando cada arquivo de idioma a ser gerado:
lrelease.exe languages\MyApp_ar.ts languages\MyApp_fr.ts
- Valide a opção -help no lrelease para visualizar as opções suportadas.
Para mais informações, consulte Utilizando lrelease.
Implantar arquivos de localização com seu aplicativo
Antes de utilizar a ferramenta Make para criar arquivos de instalação, tenha certeza de incluir seus arquivos .qm no seu projeto. Uma pasta recomendada da convenção de nome segue:
MyApp > languages > qml_localecode.qm
Por exemplo, se o seu aplicativo tiver localização para Alemão, Francês e Chinês, você incluirá os seguintes arquivos:
- MyApp > languages > qml_de.qm
- MyApp > languages > qml_fr.qm
- MyApp > languages > qml_zh.qm
Você também deve dizer ao seu aplicativo onde encontrar estes arquivos. Estas informações são definidas no arquivo appinfo.json. Abra appinfo.json em um editor de texto e adicione a seguinte propriedade:
"translations": {
"fileName": "qml",
"path": "languages"
},
No exemplo acima, o nome do arquivo é qml. Você não precisa incluir o underscore e código do idioma. O nome da pasta na amostra de código é languages, que também corresponde ao exemplo acima. Você pode escolher sua própria pasta e nomes de arquivo, apenas tenha certeza de nomeá-los no arquivo appinfo.json.
Quando você executa seu aplicativo em um dispositivo com um local de sistema que corresponde a um idioma que você forneceu um arquivo de tradução, o aplicativo exibirá automaticamente strings a partir do arquivo correto. Uma alternativa para propósitos de testes é o parâmetro de linha de comandos --locale, que substituirá o local do sistema com qualquer código local que você incluiu no parâmetro. Por exemplo, anexar --locale fr à linha de comando iniciará o aplicativo utilizando arquivos de nacionalização em Francês. Estes parâmetros da linha de comando também podem ser utilizados ao executar seu aplicativo no AppStudio, configurando o parâmetro no campo Parâmetros da linha de comando: na guia Projetos do Qt Creator.
Ao utilizar um aplicativo com arquivos de tradução fornecidos e configurados, diferentes arquivos de tradução podem ser carregados no aplicativo utilizando o método loadTranslator no componente do AppFramework.
Localizar sua lista de lojas
Se você escolher para distribuir seu aplicativo via uma loja, e se você fez o esforço de globalizar seu aplicativo, você também deverá considerar a localização da sua lista de lojas. Ambos o App Store e Google Play oferecem a habilidade de localizar sua lista de lojas. Em ambos os casos, você tem a oportunidade de fornecer descrições e capturas de tela localizadas para cada idioma da loja em seu único envio de aplicativo.
Para mais informações, veja o seguinte:
- Localizar informações do App Store para AppleApp Store
- Traduza e localize seu aplicativo para Google Play