| 

.NET C# Java Javascript Exception

5
Wo werden die lokalisierten Pfad-/Dateinamen hinterlegt und wie kann ich aus .NET darauf zugreifen?

Beispielsweise auf die Datei "Qualle" in den W7-Bildbeispielen - der Original-Dateiname ist Jellyfish.jpg.
News:
12.12.2011
philipp 167 1 7
2 Antworten
2
Hallo,

im Ordner "C:\Users\Public\Pictures\Sample Pictures" liegt bei mir eine desktop.ini Datei.
Dort wird auf eine DLL "C:\Windows\System32\SampleRes.dll" mit id 101-108 verwiesen.
Unter "C:\Windows\System32\de-DE" gibt es dann wieder eine Resourcedatei zur Lokalisierung.
Bei mir "SampleRes.dll.mui" hier stehen bei mir die lokalisierten Bildernamen (String Table 7):
STRINGTABLE
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
{
101, "Chrysantheme"
102, "Wüste"
103, "Hortensien"
104, "Qualle"
105, "Koala"
106, "Tulpen"
107, "Leuchtturm"
108, "Pinguine"
}


Eventuell hilft das bei deiner Suche.
Gruß
12.12.2011
PinBack 687 1 8
Danke. Mit dieser Info und Google habe ich folgendes gefunden:

http://blogs.msdn.com/b/michkap/archive/2007/01/18/1487464.aspx

Kein 3-Zeilen-Script, aber es funktioniert.
philipp 12.12.2011
0
Hallo Philipp,

ich muss ein wenig Raten um dir eine Antwort zu geben. Ich schätze einfach mal du möchtest auf die vorinstallierten Bilder im Ordner "Eigene Bilder / Pictures" zugreifen. Ich denke nicht das die Übersetzungen irgendwo definiert sind, aber evt. hilft dir folgender Ansatz trotzdem weiter:

Folgendes Beispiel schreibt den Pfad zu den Eigenen Bilder in die Konsole:
static void Main(string[] args)
{

Console.WriteLine(
"GetFolderPath: {0}",
Environment.GetFolderPath(Environment.SpecialFolder.MyPictures));

Console.ReadLine();
}


Bei mir ist die Ausgabe: "GetFolderPath: C:\Daten\Eigene Bilder"

Nun kannst du mit diesem Pfad auch alle JPG-Dateien in dem Ordner aufrufen:
static void Main(string[] args)
{

var picturePath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
var jpegArray = Directory.GetFiles(picturePath, "*.jpg");

foreach (var file in jpegArray)
{
Console.WriteLine(file);
}

Console.ReadLine();
}


Bei mir ist die Ausgabe wie folgt:
C:\Daten\Eigene Bilder\Blaue Berge.jpg
C:\Daten\Eigene Bilder\Sonnenuntergang.jpg
C:\Daten\Eigene Bilder\Wasserlilien.jpg
C:\Daten\Eigene Bilder\Winter.jpg

Eine komplette Auflistung aller "Special Folder" findest du übriegens bei MSDN: http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

Ich hoffe ich konnte helfen, Gruß
12.12.2011
Nicolai Schönberg 2,4k 2 9
Schönes Beispiel - bei mir sind die Namen hier tatsächlich nicht lokalisiert.

Mit

var picturePath = Environment.GetFolderPath(Environment.SpecialFolder.CommonPictures);
picturePath += "\\Sample Pictures";

bekomme ich folgendes Ergebnis:

C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg
C:\Users\Public\Pictures\Sample Pictures\Desert.jpg
C:\Users\Public\Pictures\Sample Pictures\Hydrangeas.jpg
C:\Users\Public\Pictures\Sample Pictures\Jellyfish.jpg
[...]

Stattdessen möchte ich hier die deutsch lokalisierten Namen bekommen, z.B. "Qualle" statt Jellyfish.
philipp 12.12.2011
Sprich: Es reicht dir nicht das dein Code auf einem deutschen System genau so funktionieren würde - Du willst also unbedingt die Übersetzung haben? Falls ja: Kein Plan :)
Nicolai Schönberg 12.12.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH