Komfortabler Dateimanager mit vielen Funktionen

Lokalisierte Ordner- und Dateinamen

By Sven on 09.05.2007 - 12:47 in SpeedCommander 12

Viele Vista-Umsteiger wundern sich, dass SpeedCommander einige Ordner- und Dateinamen in englisch anzeigt, während der Explorer wie gewohnt deutsche Namen präsentiert. Wenn man sich dagegen die Ordner in der Eingabeaufforderung (cmd.exe) anschaut, dann entdeckt man wieder englische Namen.

Die Ursache dafür liegt darin, dass es im Gegensatz zu früheren Betriebssystemen von Vista nur noch eine einzige sprachunabhängige Version gibt. Alle sprachabhängigen Daten (Dialoge, Zeichentabellen, Menüs) sind von den Binärdateien getrennt. Damit müssen auch alle Patches nur noch in einer sprachunabhängigen Version ausgeliefert werden, was den Entwicklungs- und Verwaltungsaufwand verringern soll. Bei der Installation von Vista wird das auf der DVD vorhandene Image einer Basisversion (.WIM) auf die Festplatte kopiert, welches bereits die englischen Datei- und Ordnernamen enthält.

Doch wie kommt der Explorer nun dazu, die gewohnten deutschen Namen anzuzeigen? Er verwendet dazu einen kleinen Trick, der auch schon in früheren Windows-Versionen zum Einsatz kam. Ist ein Ordner mit den Attributen ‚Schreibgeschützt‘ oder ‚System‘ versehen und befindet sich im Ordner eine Datei ‚desktop.ini‘, dann wird diese zur Namensbestimmung herangezogen. Die ‚desktop.ini‘ in ‚C:\Program Files‘ schaut z.B. so aus:

[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21781

Der lokalisierte Name wird durch den Eintrag ‚LocalizedResourceName‘ bestimmt, der auf einen Modulnamen (DLL oder ausführbare Datei) sowie der entsprechenden Ressourcen-ID zeigt. Trifft der Explorer auf einen solchen Eintrag und kann er mit Erfolg den lokalisierten Ordnernamen aus der Ressource laden, dann wird anstatt des eigentlichen Namens der lokalisierte Ordnername angezeigt. Fehlt das am Anfang stehende @, dann wird der Text nach dem Gleichheitszeichen als lokalisierter Ordnername verwendet.

Das gleiche System wird auch für Dateinamen angewandt. Die ‚desktop.ini‘ aus dem Verzeichnis mit den Beispielbildern sieht folgendermaßen aus:

[LocalizedFileNames]
Creek.jpg=@%systemroot%\system32\SampleRes.dll,-101
Frangipani Flowers.jpg=@%systemroot%\system32\SampleRes.dll,-102
Forest.jpg=@%systemroot%\system32\SampleRes.dll,-103
Toco Toucan.jpg=@%systemroot%\system32\SampleRes.dll,-104
Forest Flowers.jpg=@%systemroot%\system32\SampleRes.dll,-105
Waterfall.jpg=@%systemroot%\system32\SampleRes.dll,-106
Dock.jpg=@%systemroot%\system32\SampleRes.dll,-107
Green Sea Turtle.jpg=@%systemroot%\system32\SampleRes.dll,-108
Humpback Whale.jpg=@%systemroot%\system32\SampleRes.dll,-109
Tree.jpg=@%systemroot%\system32\SampleRes.dll,-110
Desert Landscape.jpg=@%systemroot%\system32\SampleRes.dll,-111
Oryx Antelope.jpg=@%systemroot%\system32\SampleRes.dll,-112
Winter Leaves.jpg=@%systemroot%\system32\SampleRes.dll,-113
Autumn Leaves.jpg=@%systemroot%\system32\SampleRes.dll,-114
Garden.jpg=@%systemroot%\system32\SampleRes.dll,-115

Gibt es in der Sektion ‚LocalizedFileNames‘ einen zum jeweiligen Dateinamen passenden Eintrag, dann wird dieser anstelle des eigentlichen Dateinamens angezeigt. Bei ausführbaren Dateien kann dies aber nicht ganz ungefährlich sein. Mit Hilfe des Eintrags

[LocalizedFileNames]
virus.exe=Urlaub in Calella.jpg

wird aus dem Dateinamen ‚virus.exe‘ ein Urlaubsbild aus Calella, welches zum Doppelklick einlädt. SpeedCommander 12 unterbindet daher aus Sicherheitsgründen die Anzeige von lokalisierten Dateinamen für ausführbare Dateien.

Für Anwender, die immer sehen möchten, was sich auf ihrer Festplatte wirklich befindet, ist die Anzeige lokalisierter Ordner- und Dateinamen in SpeedCommander 12 selbstverständlich auch abschaltbar.

Es gibt 9 Kommentare zu diesem Beitrag

Trackback URL | RSS-Feed für Kommentare

  1. hanni sagt:

    Find ich klasse, dass du uns die Wahl lässt ob es wie im Explorer mit Hilfe der Ini angezeigt werden soll oder nicht. Gerade das Virus Beispiel zeigt mal wieder wie wenig das Konzept von MS durchdacht ist.

    Der 12 wird ein ganz großer Wurf und gehört jetzt schon zum Pflichtupgrade!!!

  2. Lefteous sagt:

    Das ist wirklich eine sehr elegante Lösung. Wir hatten im TC-Forum auch schon eine lange und erfolglose Diskussion, aber die Idee mit der speziellen Behandlung der ausführbaren Dateien ist wirklich klasse – warum bin ich da nicht drauf gekommen?

  3. PIGSgrame sagt:

    Ich finde das auch gut, aber ich denke, darauf hätte eher Microsoft kommen müssen. Dass so eine unsinnige Spielerei dem Missbrauch mal wieder Tür und Tor öffnet, sollte eigentlich nicht erst die c’t mitteilen müssen.
    Und mal ehrlich: Welchen praktischen nutzen hat es, auch die Erweiterung lokalisieren zu können? Welches Programm gibt es, das in der englischen Version eine andere Erweiterung benutzt als in der deutschen? Wo macht Windows es so?

    Für eines großen Softwarekonzern, der vor allem die verbesserten Sicherheitsfeautres seines neusten Betriebssystems anpresit, ist so ein grober Designfehler doch ziemlich peinlich. Ich bin jedenfalls gespannt, wann die erste Malware auftaucht, die dieses simple Sicherheitsleck ausnutzt.

  4. Lefteous sagt:

    Wie haben es die Verantwortlichen geschrieben? Vista is „secure by design“ 😆

  5. Sven sagt:

    Unter Windows XP funktioniert die Lokalisierung von Datei- und Ordnernamen übrigens genauso. Allerdings werden hier nur Dateinamen lokalisiert, die einen gültigen Ressourcen-Eintrag haben. Einfacher Text wird im Gegensatz zu Vista ignoriert.

  6. Kay sagt:

    Hallo!
    Die Einträge waren ja bisher schon sehr informativ jedoch stell sich mir die frage, warum sich bei jedem neustart selbstständig ein Editor öffnet in dem nichts weiter steht ausser
    [.ShellClassInfo]
    LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21787

    kann man das irgendwie abstellen? soll ich die benannte Datei einfach umbenennen? würde mich über ein paar tipps freuen…

  7. sloking sagt:

    mhm…müsste einfach sein…eine datei namens desktop.ini scheint sich in deiner autostart zu befinden…

  8. Bachsau sagt:

    Die gehört da auch hin. Dass sie ausgeführt wird liegt wohl daran, dass jemand oder ein Programm die Attribute „Versteckkt und „System“ entfernt.

    Das ganze solltest du mal per Eingabeaufforderung mit dem Befehl „attrib“ ändern. Kannst die datei aber auch einfach löschen. Normalerweise macht Windows die dann irgendwann von selbst wieder richtig rein.

Top