Programmgesteuerte Möglichkeit, um alle verfügbaren Sprachen (in Satelliten-assemblies)
Ich bin der Gestaltung einer mehrsprachigen Anwendung mit .resx-Dateien.
Habe ich ein paar Dateien wie GlobalStrings.resx, GlobalStrings.es.resx, GlobalStrings.de.resx, etc.
Wenn ich dies nutzen wollen, brauche ich nur zum einstellen-Thread.CurrentThread.CurrentCulture.
Problem:
Ich habe eine combobox mit allen verfügbaren Sprachen, aber ich bin be-manuell:
comboLanguage.Items.Add(CultureInfo.GetCultureInfo("en"));
comboLanguage.Items.Add(CultureInfo.GetCultureInfo("es"));
Habe ich versucht, mit
cmbLanguage.Items.AddRange(CultureInfo.GetCultures(CultureTypes.UserCustomCulture));
ohne Erfolg. Habe auch versucht mit alle Elemente in CultureTypes, aber ich bin auch nur immer eine große Liste mit viel mehr Sprachen, die ich nicht verwende, oder eine leere Liste.
Gibt es eine Möglichkeit um nur die unterstützten Sprachen?
InformationsquelleAutor der Frage Matías | 2009-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie programmgesteuert Liste der Kulturen, die in Ihrer Anwendung
InformationsquelleAutor der Antwort Hans Holzbart
Wäre dies eine Lösung auf basis der folgenden Anweisung:
Jeder der Satelliten-assembly für eine bestimmte Sprache heißt das gleiche, aber die liegt in einem Unterordner, nach der bestimmten Kultur, z.B. fr oder fr-CA.
InformationsquelleAutor der Antwort Ankush Madankar
basiert auf der Antwort von @hans-holzbart, aber fest, um nicht wieder die InvariantCulture zu und verpackt in einer wieder verwendbaren Methode:
mithilfe dieser Methode können Sie eine Liste von Zeichenfolgen hinzufügen, um einige ComboBox mit den folgenden:
InformationsquelleAutor der Antwort George Birbilis
Ich bin mir nicht sicher über das erhalten der Sprachen, vielleicht können Sie Scannen Sie Ihr Installations-Ordner für die dll-Dateien, aber die Einstellung Ihrer Sprache auf eine nicht unterstützte Sprache sollte kein problem sein.
.NET-fallback, um die Kultur zu neutralen Ressourcen, wenn keine Kultur-spezifische Dateien, die gefunden werden können, so können Sie sicher wählen Sie nicht unterstützten Sprachen.
Solange Sie die Steuerung der Anwendung selbst, Sie könnten nur speichern Sie die verfügbaren Sprachen in einer Anwendung, die Einstellung irgendwo. Nur ein Komma-getrennter string mit der Kultur, die Namen sollten genügen: "en, es"
InformationsquelleAutor der Antwort Rune Grimstad
Verwenden, was Rune Grimstad, sagte ich am Ende mit diesem:
oder andere Weise
Ich immer noch nicht glaube, dass das eine gute Idee ist ...
InformationsquelleAutor der Antwort Matías
@"Ankush Madankar" stellt einen interessanten Ausgangspunkt, aber es hat zwei Probleme:
1) Findet auch Ressource-Ordner für Ressourcen refrenced Baugruppen
2) Hat die Ressource finden, die für die Basis-assembly-Sprache
Werde ich nicht versuchen zu lösen, Problem 2) aber für Problem 1), der code sollte
InformationsquelleAutor der Antwort Tiago Freitas Leal