Liebe Freunde,
ich dachte eigentlich, mich von meinem Schlaganfall voll erholt zu haben bis zu dem Zeitpunkt, an dem ich in ein von mir geschriebenes Programm mehrsprachige Texte verwenden wollte.
Ich habe dieses Tutorial umgesetzt (Vorschlag 3) aber ich bekomme immer die Meldung:
Fehlermeldung:
System.Resources.MissingManifestResourceException: "Für die angegebene Kultur oder die neutrale Kultur konnten keine Ressourcen gefunden werden. Stellen Sie sicher, dass Application.Text.ResStrings.resources beim Kompilieren richtig in die Assembly DartGames eingebettet wurde, oder dass die erforderlichen Satellitenassemblys geladen werden können und vollständig signiert sind."
Hat der kleine Schlaganfall mein altes Hirn jetzt komplett fritiert?
Seit zwei Tagen suche ich überall und finde keine Lösung.
Ich habe zwei Resourcedateien angelegt mit den Namen: "ResStrings.resx" und "ResStrings.de-DE.resx".
Beim Aufruf von
public static string getString(String pattern)
{
return resMgr.GetString(pattern);
}
kommt dann die o.a. Fehlermeldung.
Aufgerufen wird das ganze so:
public Haupt()
{
InitializeComponent();
var Culture = CultureInfo.CurrentCulture;
Localization.UpdateLanguage(Culture.ToString());
string f = Localization.getString("POWERED_BY");
// nur um ma zu kucken
Beschriften();
}
private void Beschriften()
{
label1.Text = Localization.getString("POWERED_BY");
linkLabel1.Text = Localization.getString("CONTACT");
Tauziehen.Text = Localization.getString("TAUZIEHEN");
}
Alles was ich möchte ist, einige Buttons und Labels mehrsprachig zu beschriften und diverse Meldungen (Game drawn by Stalemate wird zu: Patt) je nach Sprache des Systems ändern.
Ich danke schonmal im voraus für Eure Hilfe.
2 stupid 4 chess? No way.
2 stupid 4 C#? It seems so X(
Was sind denn die Projekteigenschaften dieser beiden Dateien (bes. BuildAction
, Custom Tool
)?
Im Buildvorgang steht :"Eingebettete Resource" und das Tool ist der "ResXFileCodeGenerator"
Mir ist beim Nachschauen aufgefallen, dass bei einem der Namespace gefehlt hat. Aber daran lag's wohl auch nicht.
2 stupid 4 chess? No way.
2 stupid 4 C#? It seems so X(
Ja, das sollte so richtig sein.
Hast du mal versucht, die Datei(en) noch mal neu zum Projekt hinzuzufügen?
Ansonsten gibt es in What does MissingManifestResourceException mean and how to fix it? noch weitere Hinweise und Möglichkeiten.
Das liest sich für mich wie Suaheli und hilft mir null.
Dennoch danke ich Dir herzlich für Deine Antwort. Was ich dadurch gelernt habe ist, daß ich das wohl besser sein lassen sollte. Bin wohl zu blöd
<edit>
Ich habe es jetzt so umgesetzt, wie der freundliche Vietnamese in diesem Video vorführt und es tut wirklich. Allerdings muss ich tatsächlich bei den Sprachdateien einmalig das Externe Tool laufen lassen.
Ich mag zwar dämlich sein, aber Youtube - Videos kucken kann ich noch.
Das Ganze sieht jetzt so aus:
private void Beschriften(CultureInfo ci)
{
Assembly a = Assembly.Load("DartGames");
ResourceManager rm = new ResourceManager("DartGames.Lang.Language",a);
linkLabel1.Text = rm.GetString("str_Contact");
Tauziehen.Text = rm.GetString("str_Tauziehen");
label1.Text = rm.GetString("str_Power");
Settings.Text = rm.GetString("str_Settings");
Exit.Text = rm.GetString("str_Exit");
}
2 stupid 4 chess? No way.
2 stupid 4 C#? It seems so X(