Avatar billede Slettet bruger
24. januar 2009 - 16:01 Der er 5 kommentarer og
1 løsning

Multilanguage program

Hej.
Jeg arbejder på et lille test-program som skal være multilanguage.
Dvs. når man klikker på en knap skal programmet kunne skifte til f.eks engelsk. Desværre virker det ikke helt.

Indtil videre har jeg gjort følgende:
1) Lavet en knap med navn "oversæt" og nogle andre små labels.
2) Sat localizable = true
3) valgt Engelsk under language, oversat mine knapper osv
4) tilføjet denne kode "Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture;" lige før "InitializeComponent();"
5) Tilføjet denne kode til oversæt knappen:      Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
      Application.Restart();

Desværre virker det ikke og jeg har prøvet at lege lidt med det:(
Avatar billede Syska Mester
24. januar 2009 - 17:47 #1
Hvad havde du forventet den ville gøre ? Oversætte det for dig ?

Du skal kigge på resource files ... og ja, så nok google men de henviser måske mest til asp.net ... men principper burde være de samme ...

// ouT
Avatar billede Slettet bruger
24. januar 2009 - 17:56 #2
Jeg har selv oversat det... Jeg vil ikke have den til at skifte sprog automatisk, men gøre det når brugeren vælger at klikke på knappen.

Ved jo godt den ikke gør det selv? har indtastet det Danske og engelske?!
Avatar billede Slettet bruger
24. januar 2009 - 23:36 #3
har fået det til at virke selv..
Avatar billede Syska Mester
25. januar 2009 - 02:06 #4
post gerne løsningen ... så kan andre måske for brug for den en anden god gang :-)

// ouT
Avatar billede Slettet bruger
25. januar 2009 - 13:21 #5
Res.resx indeholder 2 strings:
hello : hello
world : world
Res.da-DK.resx indeholder også 2:
hello : hej
world : verden

ergo efter hvilket sprog systemet er på, skriver den hello på Dansk eller Engelsk.
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Threading;
using System.Resources;
using System.Reflection;


namespace ConsoleApplication2
{
  class Program
  {
    static void Main(string[] args)
    {
      ResourceManager rm = new ResourceManager("ConsoleApplication2.Res", Assembly.GetExecutingAssembly());
      CultureInfo ci = Thread.CurrentThread.CurrentCulture;
      String str = rm.GetString("hello", ci);
      Console.WriteLine(str);
      Console.ReadLine();
    }
  }
}
Avatar billede Slettet bruger
25. januar 2009 - 13:39 #6
her er en lidt bedre kode:

    static void Main(string[] args)
    {
      ResourceManager rm = new ResourceManager("ConsoleApplication2.Res", Assembly.GetExecutingAssembly());
      Console.WriteLine("Type da-DK or en-US: ");
      string strCi = Console.ReadLine();
      CultureInfo ci = new CultureInfo(strCi);
      string str = rm.GetString("hello", ci) + " " + rm.GetString("world", ci);
      Console.WriteLine(str.Substring(0,1).ToUpper() + str.Substring(1,str.Length - 1).ToLower());
      Console.ReadLine();
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester