Autor Beitrag
c#ler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176
Erhaltene Danke: 1

Win7 64Bit
C#, VBA, VS2013 Ultimate
BeitragVerfasst: Mo 16.11.09 17:03 
Liebe #er,
Ein unternehmlich von uns geschriebenes Program ist mit vs 2008 und c# geschrieben und nun wollte ich es mehrsprachig machen. Englisch und Deutsch...
Nun bin ich ,nachdem ich die Oberfläche im VS08 auf localizable gesetzt habe und die Oberfläche in Englisch und deutsch bearbeitet habe (Buttons und Texte in die andere Sprache umgeschrieben), auf folgendes Problem gestoßen.
Ich habe einen ResourcenManager eingebaut und die passenden rsex datein verwendet.
Jedoch muss ich nun dem Program sagen, dass es die Sprache des OS (Win CE in diesem Fall) auslesen soll und die Englische resx datei verwenden soll, sobald das OS auf Englisch GB gesetzt wird.

Dazu habe ich einen Befehl gefunden:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
using System.Threading; 
using System.Globalization; 
...

public Form1() { 
   Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB"); 
   InitializeComponent(); 
}


jedoch ist es mir ein rätsel, warum mir VS 08 beim Debuggen sagt, dass folgender Fehler entsteht -->

Zitat:
"System.Threading.Thread" enthält keine Definition für "CurrentUICulture", und es konnte keine Erweiterungsmethode "CurrentUICulture" gefunden werden, die ein erstes Argument vom Typ "System.Threading.Thread" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) C:\Dokumente und Einstellungen\....\Desktop\1.0.091022(try)\source\....\fMain.cs 1218 34 ...


ein paar Dinge musste ich hier natürlich ausblenden ;)

Habt ihr eine Idee warum er die CurrentUICulture nicht aus den Assemblys lesen kann?
Hänge hier echt fest...
Wäre für Hilfe echt dankbar

Moderiert von user profile iconChristian S.: Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 16.11.09 19:46 
Zitat:
Jedoch muss ich nun dem Program sagen, dass es die Sprache des OS (Win CE in diesem Fall) auslesen soll und die Englische resx datei verwenden soll, sobald das OS auf Englisch GB gesetzt wird.


Das sollte eigentlich automatisch passieren sobald du die Sprache in den 'Regions- und Sprachoptionen' des OS änderst.


Folgendes Zitat aus der Hilfe zu Thread.CurrentUICulture
Zitat:
Version Information
.NET Framework
Supported in: 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Da dort nichts von CE steht wird es das im CompactFramework wohl auch nicht geben. Wie alle anderen Culture* Propeties auch nicht.
c#ler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176
Erhaltene Danke: 1

Win7 64Bit
C#, VBA, VS2013 Ultimate
BeitragVerfasst: Mi 18.11.09 17:35 
Ich Frag mal so...
"was machen?"^^
also wir setzen auf CE Geräten aus Partnerproduktion auf, das Program läuft auf diesen und naja...ich wills mehrsprachig machen. Die Oberfläche habe ich bereits in Englisch und Deutsch. Kann diese auch als Release auf dem Gerät laufen lassen, jedoch kann ich die Sprache nicht wechseln. Es wird jeweils für Englisch UND Deutsch eine Resource datei in einem seperaten Ordner erstellt. gibt es eine möglichkeit die Resourcedatei zu wechseln? d.h. ein Button erstellen, mit dessen hilfe ich sage..."wechsel die Sprache / Sprich: lade die en-GB Resource datei?"
Ich komme absolut nicht weiter...

bitte....hilfe^^
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 18.11.09 23:31 
Zitat:
gibt es eine möglichkeit die Resourcedatei zu wechseln? d.h. ein Button erstellen, mit dessen hilfe ich sage..."wechsel die Sprache / Sprich: lade die en-GB Resource datei?"


Wie gesagt du kannst die Sprache nur über die Ländereinstellungen des Geräts ändern(wenn dein Endgerät das unterstütz). In WindowsCE umd damit auch im Compact Framework sind die Spracheinstellungen gerätebasiert ein umstellen der Sprache je Thread oder Prozess ist nicht vorgesehen.

Guckst du z.B. hier

Wenn du unbedingt trotzdem selbst die Sprache umschalten willst fällt mir nur ein das du selbst die Resourcendateien verwaltest und beim ändern der Sprache, dessen Resourcendateien in den Ordner der Standardsprache dieses CE Geräts kopierst. Also wenn du z.B. auf English klicks auf einem deutschen CE Gerät das die englischen Resourcendateien in den 'de'-Ordner kopiert werden und du dann die Anwendung neustartest damit nun die englischen Resourcen ziehen.
c#ler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176
Erhaltene Danke: 1

Win7 64Bit
C#, VBA, VS2013 Ultimate
BeitragVerfasst: Di 24.11.09 11:59 
Meine Güte stell ich mich blöd an!
Also auf dem Gerät finde ich keinen Ordner für die Sprache bzw auch keine passende Resx datei oder sonstiges...kann Sie auch nicht durch einen Reg edit herausfinden...hatte den Plan die Registry zu sichern in der einen Sprache und dann mit der geänderten Version zu vergleichen...Problem ist...ich kann nur bei den Regional Settings die Sprache ändern, aber USERINTERFACE LANGUAGE und INPUTLANGUAGE bleiben immer auf Englisch (united States)...

Mein Program schreibt beim Release ja einen Ordner mit den Sprachdatein also den Ordner für Englisch "en" mit der Resourcedatei "xxx.xxxx.xxx.logistic.resources.dll"
und eine weitere im Ordner "de" wenn ich das Programm mit der deutschen Oberfläche Erstelle.
Nun finde ich kein Code sample, mit dem ich die Resource.dll einfach per Buttonclick im Programm ändere "Buttonclick Deutsch --> Deutsche Sprache / Buttonclick Englisch --> Englische Sprache"...hat jemand rein zufällig^^ nen Codesample oder eine hilfreiche Anleitung hierzu was mir helfen könnte?

Sorry, dass ich mich so blöd anstell...aber ich bin Neueinsteiger im Proggen...deshalb brauch ich dann doch Hilfe Professioneller ;)

Lg Marian
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 24.11.09 20:53 
user profile iconc#ler hat folgendes geschrieben Zum zitierten Posting springen:
mit dem ich die Resource.dll einfach per Buttonclick im Programm ändere
Über Resx-Localization wird das wohl einfach nicht funktionieren:
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
und du dann die Anwendung neustartest damit nun die englischen Resourcen ziehen.

_________________
>λ=
c#ler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176
Erhaltene Danke: 1

Win7 64Bit
C#, VBA, VS2013 Ultimate
BeitragVerfasst: Mi 02.12.09 12:11 
Okay, danke...Dann werd ich mir wohl was andres suchen müssen. Viele Dank für die Hilfe an alle.

Lg Marian