• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Joca

[RESOLVIDO] [vb 2005] Aplicação multilingue

6 mensagens neste tópico

Gostava de saber qual é o meu erro no seguinte código, já que o mesmo não activa correctamente os botões (quero que o Button1 só fique activo quando seleccionar um dos idiomas no meu Form1 e, que exiba correctamente a mensagem referente ao idioma escolhido).

Adicionem o seguinte código a uma Form com uma ComboBox e dois Buttons:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       Button1.Enabled = False

        ComboBox1.Items.AddRange(New Object() {"Choose Idiom", "English", _
            "Français", "Português"})

        ComboBox1.SelectedIndex = 0 'Para manter sempre o "Choose Idiom" visível ao iniciar.


End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Me.DialogResult = Windows.Forms.DialogResult.OK

    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Me.DialogResult = Windows.Forms.DialogResult.Cancel


    End Sub

    
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        If ComboBox1.SelectedIndex <> 0 Then
            Button1.Enabled = True

            If ComboBox1.SelectedIndex <> 0 And Me.DialogResult = Windows.Forms.DialogResult.OK Then                
                MessageBox.Show("You choose" & ComboBox1.SelectedItem.ToString)

                ElseIf ComboBox1.SelectedIndex = 0 And Me.DialogResult = Windows.Forms.DialogResult.Cancel Then
                MessageBox.Show("You have chosen 'CANCEL', so program will not open!" _
                & vbNewLine & "You can try later to chose any idiom!", _
                "Warning!", MessageBoxButtons.OK)
                Application.Exit()
            End If
        End If

    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas...

O que podes fazer se queres fazer um programa multi linguagem é, guardares um ficheiro por exemplo "ling.ini".

Imagina que tens um programa com 2 butões (button1 e button2) e queres tornar esses butões "traduziveis", então vais meter no ficheiro o seguinte:

[button1]

Botão 1

[button2]

Botão 2

E depois cada vez que o se abre o programa, ele abre esse ficheiro, lê os dados nesse ficheiro e depois é uma questão de programação...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Esqueci de postar aqui que já resolvi o meu problema. Era só fazer o seguinte:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        Button1.Enabled = False

        ComboBox1.Items.AddRange(New Object() {"Choose Idiom", "English", _
        "Français", "Português"})

        ComboBox1.SelectedIndex = 0 'Para mostrar sempre o "Choose Idiom" visível ao iniciar.


    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Me.DialogResult = Windows.Forms.DialogResult.OK

        MessageBox.Show("You Choose " & ComboBox1.SelectedItem.ToString)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Me.DialogResult = Windows.Forms.DialogResult.Cancel

        MessageBox.Show("You have chosen 'CANCEL', so program will not open!" _
        & vbNewLine & "You can try later to chose any idiom!", _
        "Warning!", MessageBoxButtons.OK)

        Application.Exit()


    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        If ComboBox1.SelectedIndex <> 0 Then
            Button1.Enabled = True
        End If


    End Sub

Foi distracção da minha parte...

Mas, a propósito do que o NuGuN disse:

1.º É melhor usar ficheiros *.ini do que *.txt?

2.º Nunca "trabalhei" com ficheiros *.ini. Onde posso ver informação sobre isso?

3.º Como poderia chamar o texto? Num ficheiro *.txt tenho ideia de como seria feito, mas julgo que o *.ini não poderia exibir o texto directamente num menu ou, num botão... Como ainda não vi nenhum exemplo, não posso afirmá-lo com toda a certeza!...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Actualmente a utilização dos Resources faz mais sentido na criação de aplicações multi-lingua.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E exemplos sobre como fazer isso usando:

->  ficheiros *.ini;

->  utilização dos Resources.

Basta inventar um exemplo de código simples com um botão ou, então, com um dos itens de um menu... Só para eu ter uma ideia de como se faz!... :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já solucionei!

Usei os resources. Pena foi o tempo usado para descobrir como fazê-lo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora