HB++: Utilizando MsgBox em Português e outros idiomas

Gostou deste artigo? Compartilhe!

CategoriasPalm OS, Handheld Basic
ComentáriosComentários (1)

MsgBox em Português

Introduçã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 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
    Informação
  • hbMsgBoxConfirmation
    Confirmação
  • hbMsgBoxWarning
    Aviso / Alerta
  • hbMsgBoxError
    Erro

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:

MsgBox Exemplo

    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 If

Utilizar 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".

Selecionar Idioma/Localização para o Projeto

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.

Adicionar Idioma no Handheld Basic

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.

MsgBox em Português

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

  • 03/05/2007 - Primeira versão deste artigo.

Sobre o Autor

Caio ProieteCaio Proiete é Arquiteto de Soluções, especialista em desenvolvimento de softwares para PDAs e telefones celulares, principalmente nas plataformas Palm OS, Windows Mobile e Symbian OS.

Atualmente suas principais ferramentas/tecnologias de trabalho incluem CodeWarrior C++, Handheld Basic, eMbedded Visual C++, .NET Compact Framework, C# .NET, e Carbide.c++.

Possui extensa experiência em arquitetura e desenvolvimento de sistemas baseados em web e smart-clients, gerenciamento de projetos e treinamento, e atua também como instrutor oficial Microsoft em centros de treinamentos (CLPS), e é detentor das seguintes certificações:

  • MCT - Microsoft Certified Trainer;
  • MCSD - Microsoft Certified Solution Developer;
  • MCDBA - Microsoft Certified Database Administrator;
  • MCAD .NET - Microsoft Certified Application Developer;
  • MCSD .NET - Microsoft Certified Solution Developer for .NET;
  • MCTS - Microsoft Certified Technology Specialist for Windows Mobile.

Veja o todos os artigos publicados por Caio Proiete no PDAExpert.

Artigos Relacionados

1 Comentário »

Comentários via RSS TrackBack URI

  1. Luis Wagner dos Santos em 18/02/2008 10:10

    Abaixo segue nova configuração do locale.dat para o idioma Português ( Brasil ). As linhas abaixo funcionam na versão nova do hb++ 2.51 ( 2.51.655.732 )
    somente copiar e colar no arquivo locale.dat contido no diretório de instalação.


    Terminado
    OK
    Cancelar
    Sim
    Não


    Domingo, Dom
    Segunda-feira, Seg
    Terça-feira, Ter
    Quarta-feira, Qua
    Quinta-feira, Qui
    Sexta-feira, Sex
    Sábado, Sáb

    Janeiro, Jan
    Fevereiro, Fev
    Março, Mar
    Abril, Abr
    Maio, Mai
    Junho, Jun
    Julho, Jul
    Agosto, Ago
    Setembro, Set
    Outubro, Out
    Novembro, Nov
    Dezembro, Dez

    Feito isso ir para Menu-> Project - > Settings. Em Locale escolher a nova configuração de idioma.
    Espero ter ajudado em algo.
    Abraços a todos e para o Caio por ceder este espaço.

    Luis Wagner

Envie seu comentário

ATENÇÃO: A área de comentários deve ser utilizada apenas para dúvidas sobre este artigo. Para dúvidas não relacionadas a este artigo, utilize o Fórum PDAExpert.net.

Nome

E-mail

URL

Comentário

XHTML: São permitidas as seguintes tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

campos obrigatórios