Internacionalização E Localização No iOS
-
Upload
kae-angeli-coutinho -
Category
Software
-
view
183 -
download
2
Transcript of Internacionalização E Localização No iOS
![Page 1: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/1.jpg)
Internacionalização e localização no iOS
Kaê Angeli Coutinho
![Page 2: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/2.jpg)
Introdução
Kaê Angeli Coutinho
• Muitas vezes queremos portar nossos aplicativos para outros países presentes na App Store, porém, há varias maneiras de fazer isso, algumas bem complicadas e outras mais simples.
!• Quando feito com eficácia, o número de pessoas visualizando o
aplicativo em questão aumenta significativamente, e o mesmo se torna global.
!• Este material tem, como objetivo, ensinar de maneira teórica e
prática a utilização de strings pela IDE Xcode para portabilidade de aplicativos em diversos países.
![Page 3: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/3.jpg)
Porque portar?
Kaê Angeli Coutinho
• Mais usuários terão acesso ao apl icat ivo, consequentemente, mais possíveis downloads. !
• Maior divulgação da marca ou empresa. !• Maior satisfação dos usuários da App Store, “pense
global, desenvolva local”. !• Processo ágil e fácil, quando feito corretamente.
![Page 4: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/4.jpg)
Motor de localização
Kaê Angeli Coutinho
• Um motor de localização é uma espécie de gerenciador que tem como principal função, exibir e adaptar conteúdo (de um determinado repositório) para uma linguagem especifica. !
• O iOS já conta com um motor de localização integrado que é muito potente. Vamos utilizar arquivos com extensão .strings, responsáveis por serem nossos repositórios de dados, para atingirmos nosso objetivo.
![Page 5: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/5.jpg)
Arquivo .strings
Kaê Angeli Coutinho
• Como a própria extensão já diz, o arquivo contém nada mais do que strings acompanhadas pelo padrão chave-valor (dicionário). !
• Cada linguagem corresponde ao seu próprio repositório de informações. Por exemplo, certo aplicativo fora portado para as línguas Inglesa, Espanhola e Portuguesa, isto quer dizer que o projeto engloba três arquivos .strings, cada um correspondente a sua linguagem.
!• O Xcode, por padrão, distribui esses arquivos em pastas físicas
c o m n o m e s p r o p o s i t a i s . O p a d r ã o s e g u e p o r : “siglaLinguagem.lproj”.
![Page 6: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/6.jpg)
NSLocalizedString
Kaê Angeli Coutinho
• Os arquivos .strings são somente repositórios de dados. É necessário algum tipo de mecanismo para resgatar esses dados e popular a interface do aplicativo. Este mecanismo se dá por uma macro que se comporta como uma função cujo o nome é NSLocalizedString.
!!!• A “função” recebe dois parâmetros, sendo o primeiro a chave
desejada, definida nos arquivos .strings e o segundo sendo uma string com contexto suficiente para deixar a tarefa do motor de localização mais precisa, geralmente este parâmetro é nulo. O retorno da função será a string definida para a chave desejada, já traduzida para a linguagem em uso pelo aparelho.
![Page 7: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/7.jpg)
Mãos à obra
Kaê Angeli Coutinho
• Iremos agora, criar um projeto simples no Xcode para demonstrar a teoria apresentada.
!• Crie um novo projeto “Single View Application”. !!!!!!!!!
![Page 8: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/8.jpg)
Kaê Angeli Coutinho
• Começaremos desenvolvendo a interface gráfica via Storyboard e atrelaremos a ViewController.h.
![Page 9: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/9.jpg)
Kaê Angeli Coutinho
• Vamos rapidamente as informações do projeto. !• Repare que para cada linguagem existe um arquivo .strings
responsável, no caso do idioma Inglês há duas, mas isto é por causa do módulo de teste, que também está habilitado.
!!!!!
![Page 10: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/10.jpg)
Kaê Angeli Coutinho
• Nota-se que o Xcode já vem com uma linguagem “base” habilitada, a linguagem padrão do projeto, neste caso o Inglês. Este projeto tem como objetivo ensinar este recurso do zero, portanto delete a linguagem base. Faça isso com a lingua Inglesa também, pois iremos criar os arquivos .strings mais posteriormente.
!!!!!!
![Page 11: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/11.jpg)
Kaê Angeli Coutinho
• Neste ponto, o arquivo InfoPlist.strings deve ter sido excluído no projeto e fisicamente, ficando assim: !!!!!!!!!!!
• Exclua também a pasta Base.lproj do diretório do projeto.
![Page 12: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/12.jpg)
Kaê Angeli Coutinho
• Vamos agora criar o arquivo .strings principal, vamos chama-lo de “Localizable.strings”.
![Page 13: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/13.jpg)
Kaê Angeli Coutinho
• Com o arquivo já criado, voltamos as informações do projeto para habilitar as linguagens suportadas. Nota-se que o já fora detectada a lingua Inglesa por conta da criação do arquivo .strings no diretório “en.lproj”.
!• Clique no botão “+” e selecione a lingua Portuguesa. !!!!!!
![Page 14: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/14.jpg)
Kaê Angeli Coutinho
• Faça isso para a lingua Francesa também.
![Page 15: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/15.jpg)
Kaê Angeli Coutinho
• Quando terminado, o projeto deverá ficar assim ou similar.
![Page 16: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/16.jpg)
Kaê Angeli Coutinho
• Agora iremos popular nossos repositórios de localização, vulgo arquivos .strings
Localizable.strings (French)
Localizable.strings (Portuguese)
Localizable.strings (English)
![Page 17: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/17.jpg)
Kaê Angeli Coutinho
• Já com os arquivos .strings criados e o projeto já configurado, só nos resta popular a interface gráfica, vamos para o ViewController.m
![Page 18: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/18.jpg)
Kaê Angeli Coutinho
• Para testar os diferentes idiomas, aqui está as instruções para mudança do idioma padrão no aparelho.
![Page 19: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/19.jpg)
Kaê Angeli Coutinho
• Resultado final.
![Page 20: Internacionalização E Localização No iOS](https://reader033.fdocumentos.tips/reader033/viewer/2022042723/58f2e9331a28aba4648b4585/html5/thumbnails/20.jpg)
Kaê Angeli Coutinho
Obrigado