Desenvolvimento - Mobile
HB++: Utilizando MsgBox em Português e outros idiomas
O sistema operacional Palm OS possui um recurso nativo conhecido como Alert, e que no Handheld Basic pode ser utilizado através da função MsgBox.
por Caio ProieteIntrodução
O sistema operacional Palm OS possui um recurso nativo conhecido como Alert, e que no Handheld Basic pode ser utilizado através da função MsgBox. Estes Alerts são utilizados para exibir simples caixas de diálogo com mensagens de alerta, informação, erro ou para pedir a confirmação do usuário antes de executar alguma ação.
Conceito
A função responsável por mostrar estas caixas de diálogo é a MsgBox, que recebe como parâmetro o texto a ser mostrado para o usuário, o tipo do diálogo (Informação, Erro, Confirmação, Aviso) combinado com as opções de resposta do usuário (OK, Cancelar, Sim, Não) e o título da caixa de diálogo. Exemplo:
MsgBox "Mensagem de Alerta", hbMsgBoxWarning + hbMsgBoxOKCancel, "Alerta"Parâmetros e Combinações
O Palm OS possui 4 (quatro) tipos diferentes de Alerts, e cada um deles está representado por uma das variáveis constantes abaixo:
- hbMsgBoxInformation
- hbMsgBoxConfirmation
- hbMsgBoxWarning
- hbMsgBoxError
Juntamente com os tipos de Alerts, podemos combinar opções de resposta para o usuário:
- hbMsgBoxDoneOnly - Exibe apenas o botão "Done" ("OK" para Português do Brasil e "Terminado" para Português de Portugal);
- hbMsgBoxOKCancel - Exibe os botões "OK" e "Cancel" ("OK" e "Cancelar" para Português do Brasil e "OK" e "Anular" para Português de Portugal);
- hbMsgBoxYesNo - Exibe os botões "Yes" e "No" ("Sim" e "Não");
- hbMsgBoxYesNoCancel - Exibe os botões "Yes", "No" e "Cancel" ("Sim", "Não" e "Cancelar" ou "Anular").
Detectando a Resposta do Usuário
A função MsgBox retorna um valor do tipo , que corresponde à opção que o usuário escolheu. Os possíveis valores são:
- hbMsgBoxDone - Usuário clicou em "Done" ("OK" ou "Terminado" em Português);
- hbMsgBoxYes - Usuário clicou em "Sim";
- hbMsgBoxNo - Usuário clicou em "Não";
- hbMsgBoxOk - Usuário clicou em "OK";
- hbMsgBoxCancel - Usuário clicou em "Cancel" ("Cancelar" ou "Anular" em Português);
Por exemplo, para verificar o resultado de um pedido de confirmação do usuário:
Dim resposta As HbMsgBoxReturn resposta = MsgBox("Mensagem de Confirmação", hbMsgBoxConfirmation + hbMsgBoxYesNo, "Confirmação") If (resposta = hbMsgBoxYes) Then MsgBox "Usuário selecionou "Sim"", hbMsgBoxInformation, "Sim" ElseIf (resposta = hbMsgBoxNo) Then MsgBox "Usuário selecionou "Não"", hbMsgBoxInformation, "Não" End IfUtilizar MsgBox em Diferentes Idiomas
Por padrão, o Handheld Basic possui suporte aos idiomas Inglês, Espanhol, Francês, Alemão, Italiano, Holandês e Português de Portugal. Para alterar o idioma que será utilizado no projeto, e que consequentemente irá alterar as descrições dos botões utilizados pela função MsgBox, vá ao menu "Project / Settings", localize a aba "Locale" e selecione o idioma desejado. Lembre-se de alterar o idioma nas duas configurações: "Debug" e "Release".
Utilizar MsgBox em Português do Brasil
Como vimos acima, o Português do Brasil não é suportado por padrão pelo Handheld Basic, pelo menos até a versão 2.11, que é a mais recente na data da publicação deste artigo. Para contornar este problema, precisaremos apenas definir as descrições para o nosso idioma em um arquivo de configuração do Handheld Basic. Desta forma, localize a pasta onde foi instalado o HB++ (Normalmente C:\Arquivos de Programas\HB++ 2.0) e abra o arquivo "locale.dat" em um editor de textos, como por exemplo o Bloco de Notas padrão do Windows.
Em seguida, copie e cole o código abaixo para o final do arquivo. Note ainda que você pode mudar as descrições se desejar.
"--------------- Portuguese (Brazil) ------------------------- begin locale 1046 "Opções do MsgBox done = "OK" ok = "OK" cancel = "Cancelar" yes = "Sim" no = "Não" "Dias da semana utilizados no calendário day_1 = "Domingo", "Dom" day_2 = "Segunda-feira", "Seg" day_3 = "Terça-feira", "Ter" day_4 = "Quarta-feira", "Qua" day_5 = "Quinta-feira", "Qui" day_6 = "Sexta-feira", "Sex" day_7 = "Sábado", "Sáb" "Meses do ano utilizados no calendário month_1 = "Janeiro", "Jan" month_2 = "Fevereiro", "Fev" month_3 = "Março", "Mar" month_4 = "Abril", "Abr" month_5 = "Maio", "Mai" month_6 = "Junho", "Jun" month_7 = "Julho", "Jul" month_8 = "Agosto", "Ago" month_9 = "Setembro", "Set" month_10 = "Outubro", "Out" month_11 = "Novembro", "Nov" month_12 = "Dezembro", "Dez"Grave as alterações, e reinicie o Handheld Basic para que as alterações no arquivo sejam carregadas. Abra seu projeto, vá ao menu "Project / Settings" e perceba que agora o idioma "Português (Brasil)" já aparece na lista.
Adicionar Outros Idiomas
Repetindo o procedimento acima, podemos adicionar muitos outros idiomas para serem utilizados em seus projetos. Cada idioma é definido por um número conhecido como Locale ID (Identificação da Localização). Por exemplo, o Locale ID do idioma Português (Brasil) é 1046, enquanto o Locale ID do idioma Português (Portugal) é 2070. Assim, para adicionar novos idiomas, basta utilizar a tabela abaixo, que contém todos os idiomas suportados pelo Handheld Basic.
- 1078 - Afrikaans
- 1052 - Albanian
- 5121 - Arabic - Algeria
- 15361 - Arabic - Bahrain
- 3073 - Arabic - Egypt
- 2049 - Arabic - Iraq
- 11265 - Arabic - Jordan
- 13313 - Arabic - Kuwait
- 12289 - Arabic - Lebanon
- 4097 - Arabic - Libya
- 6145 - Arabic - Morocco
- 8193 - Arabic - Oman
- 16385 - Arabic - Qatar
- 1025 - Arabic - Saudia Arabia
- 10241 - Arabic - Syria
- 7169 - Arabic - Tunisia
- 14337 - Arabic - U.A.E.
- 9217 - Arabic - Yemen
- 1069 - Basque
- 1059 - Belarusian
- 1026 - Bulgarian
- 1027 - Catalan
- 3076 - Chinese - Hong Kong
- 2052 - Chinese - PRC
- 4100 - Chinese - Singapore
- 1028 - Chinese - Taiwan
- 4 - Chinese
- 1050 - Croatian
- 1029 - Czech
- 1030 - Danish
- 2067 - Dutch - Belgium
- 1043 - Dutch
- 3081 - English - Australia
- 10249 - English - Belize
- 4105 - English - Canada
- 6153 - English - Ireland
- 8201 - English - Jamaica
- 5129 - English - New Zealand
- 7177 - English - South Africa
- 11273 - English - Trinidad
- 2057 - English - United Kingdom
- 1033 - English - United States
- 9 - English
- 1061 - Estonian
- 1080 - Faeroese
- 1065 - Farsi
- 1035 - Finnish
- 2060 - French - Belgium
- 3084 - French - Canada
- 5132 - French - Luxembourg
- 1036 - French - Standard
- 4108 - French - Switzerland
- 1084 - Gaelic - Scotland
- 3079 - German - Austrian
- 5127 - German - Lichtenstein
- 4103 - German - Luxembourg
- 1031 - German - Standard
- 2055 - German - Switzerland
- 1032 - Greek
- 1037 - Hebrew
- 1081 - Hindi
- 1038 - Hungarian
- 1039 - Icelandic
- 1057 - Indonesian
- 1040 - Italian - Standard
- 2064 - Italian - Switzerland
- 1041 - Japanese
- 1042 - Korean
- 1062 - Latvian
- 1063 - Lithuanian
- 1071 - Macedonian
- 1086 - Malay - Malaysia
- 1082 - Maltese
- 1044 - Norwegian - Bokmål
- 1045 - Polish
- 1046 - Portuguese - Brazil
- 2070 - Portuguese - Standard
- 1047 - Raeto-Romance
- 2072 - Romanian - Moldova
- 1048 - Romanian
- 2073 - Russian - Moldova
- 1049 - Russian
- 3098 - Serbian - Cyrillic
- 1074 - Setsuana
- 1051 - Slovak
- 1060 - Slovenian
- 2074 - Serbian
- 11274 - Spanish - Argentina
- 16394 - Spanish - Bolivia
- 13322 - Spanish - Chile
- 9226 - Spanish - Columbia
- 5130 - Spanish - Costa Rica
- 7178 - Spanish - Dominican Republic
- 12298 - Spanish - Ecuador
- 17418 - Spanish - El Salvador
- 4106 - Spanish - Guatemala
- 18442 - Spanish - Honduras
- 2058 - Spanish - Mexico
- 19466 - Spanish - Nicaragua
- 6154 - Spanish - Panama
- 15370 - Spanish - Paraguay
- 10250 - Spanish - Peru
- 20490 - Spanish - Puerto Rico
- 1034 - Spanish - Standard
- 14346 - Spanish - Uruguay
- 8202 - Spanish - Venezuela
- 1072 - Sutu
- 2077 - Swedish - Finland
- 1053 - Swedish
- 1054 - Thai
- 1073 - Tsonga
- 1055 - Turkish
- 1058 - Ukranian
- 1056 - Urdu - Pakistan
- 1066 - Vietnamese
- 1076 - Xhosa
- 1085 - Yiddish
- 1077 - Zulu
Histórico
- 08/06/2007 - Primeira versão deste artigo.
- Como criar um player de audio para Windows PhoneDisp. móveis
- Windows Phone: Criando e lendo arquivos de textoDisp. móveis
- Inserindo, editando e lendo dados no Windows Phone com IsolatedStorageSettingsDisp. móveis
- Introdução ao jQuery MobileJavascript
- Entendendo a navegação entre páginas no Windows Phone 7Disp. móveis