AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?
Thema durchsuchen
Ansicht
Themen-Optionen

Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

Ein Thema von Benmik · begonnen am 4. Mai 2014 · letzter Beitrag vom 7. Mai 2014
Antwort Antwort
Benmik

Registriert seit: 11. Apr 2009
557 Beiträge
 
Delphi 12 Athens
 
#1

Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

  Alt 4. Mai 2014, 00:21
Bekanntlich übersetzt der Explorer die englischen Bezeichnungen für die special folder.
"C:\Users\Anwendername\Pictures\" wird als "C:\Users\Anwendername\Eigene Bilder\" angezeigt.

Gibt es eine Funktion, die mir die lokalisierten Namen für solche Verzeichnisse liefert?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

  Alt 4. Mai 2014, 01:17
Bekanntlich übersetzt der Explorer die englischen Bezeichnungen für die special folder.
"C:\Users\Anwendername\Pictures\" wird als "C:\Users\Anwendername\Eigene Bilder\" angezeigt.

Gibt es eine Funktion, die mir die lokalisierten Namen für solche Verzeichnisse liefert?
Ja, hier im Forum nachzulesen unter
http://www.delphipraxis.net/94230-%5...tml#post695528
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
557 Beiträge
 
Delphi 12 Athens
 
#3

AW: Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

  Alt 4. Mai 2014, 17:28
Vielen Dank, Sir Rufo.

Ich hatte gesucht, aber nicht die richtigen Suchbegriffe gefunden. Hast du sowas im Kopf?

Der Link hat mir sehr weitergeholfen, aber bei ShGetFileInfo() bin ich natürlich auch auf die beiden dort ungelösten Probleme gestoßen, nämlich dass die Funktion nicht den vollen Pfad, sondern nur das letzte Verzeichnis zurückgibt, und dass es keinen Weg zurück gibt (deutsch -> englisch).

Das erste Problem habe ich gelöst, indem ich jedes einzelne Teilverzeichnis des Pfades durch die Funktion jage:
Delphi-Quellcode:
uses ShellApi;

function ErmittleDtVerznamen(Verzname:string):string;
var FileInfo: SHFILEINFO; p1,p2:integer; Verz,Teilverz:string;
const Tz = '\';
begin
  Result := '';
  If DirectoryExists(Verzname) then begin
    Verz := IncludeTrailingBackSlash(Verzname);
    Result := Copy(Verzname,1,3);
    p1 := 3;
    p2 := PosEx(Tz,Verz,p1 + 1);
    While p2 > 0 do begin
      Teilverz := IncludeTrailingBackSlash(Copy(Verz,1,p2 - 1));
      If SHGetFileInfo(PChar(Teilverz), 0, FileInfo,SizeOf(FileInfo),SHGFI_DISPLAYNAME) <> 0
        then Result := Result + IncludeTrailingBackSlash(FileInfo.szDisplayName)
        else exit;
      p1 := p2 + 1;
      p2 := PosEx(Tz,Verz,p1 + 1);
    end;
  end;
end;
Da wird unseren Experten noch einiges an Verbesserungspotenzial einfallen , aber es funktioniert und vielleicht hilft es ja jemandem.

Das zweite Problem habe ich nur proprietär gelöst, indem ich eine Liste aller eingedeutschten Namen anlege, was unter meinen Gegebenheiten lückenlos möglich ist.

Geändert von Benmik ( 4. Mai 2014 um 20:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

  Alt 4. Mai 2014, 17:31
Nein im Kopf habe ich das nicht, aber es hilft die Suchbegriffe in englisch bei Tante Google einzutippen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
557 Beiträge
 
Delphi 12 Athens
 
#5

AW: Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

  Alt 4. Mai 2014, 19:48
Vielleicht noch ein Tipp für die, die hier mal landen. Die obige Funktion schlägt manchmal scheinbar (ja wirklich: scheinbar (!)) fehl und liefert zum Beispiel "pictures" statt "Eigene Bilder".
Ein Blick in den Dateimanager zeigt dann aber, dass dort auch die englische Bezeichnung angezeigt wird. Es kann ohne Weiteres zu einem wilden Durcheinander von deutschen und englischen Bezeichnungen kommen.
Grund hierfür ist die desktop.ini, die für die deutschen Bezeichnungen in jedem Verzeichnis vorhanden sein und (im Falle von "Pictures"!) folgenden Inhalt haben muss:
Delphi-Quellcode:
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21779
InfoTip=@%SystemRoot%\system32\shell32.dll,-12688
IconResource=%SystemRoot%\system32\imageres.dll,-113
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-236
Der entscheidende Punkt ist "LocalizedResourceName=@%SystemRoot%\system32\shel l32.dll" mit der richtigen Nummer.

ABER - und jetzt kommt die ganz große Fußangel - diese Desktop.ini funktioniert nur, wenn das entsprechende Verzeichnis das Attribut "Schreibgeschützt" hat. Da muss man erstmal drauf kommen. Gibt man bei korrekter Desktop.ini in einer Konsole den Befehl "attrib +r C:\Users\Anwendername\Pictures" ein, so kann man zusehen, wie im Dateimanager die Anzeige von "Pictures" plötzlich auf "Eigene Dateien" umspringt.

Eine Reihe von Desktop.ini-Dateiinhalten bei den verschiedenen Verzeichnissen findet man dankenswerter Weise hier.

Geändert von Benmik ( 4. Mai 2014 um 20:06 Uhr) Grund: Präzisierungen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#6

AW: Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

  Alt 4. Mai 2014, 20:36
Schreibschutz:

Wobei das Absicht ist, denn so braucht der Explorer nur nach der Desktop.ini zu suchen, wenn das Verzeichnis entsprechend markiert ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
557 Beiträge
 
Delphi 12 Athens
 
#7

AW: Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

  Alt 7. Mai 2014, 21:05
Absicht ist das sicher, aber ob das eine der glücklicheren Lösungen von Microsoft ist, wage ich doch zu bezweifeln.

Ich kanns ja leider nicht mehr editieren, aber die Anzeige springt im Falle von "Pictures" natürlich auf "Eigene Bilder" um.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

AW: Deutsche Übersetzung für CSIDL_MYDOCUMENTS und Konsorten?

  Alt 7. Mai 2014, 21:32
Damals, als das eingeführt erfunden wurde, waren Computer noch nicht so leistungsstark (RAM, CPU usw.) und da war das schon eine gute Idee.
Und selbst jetzt hat das immernoch vorteile, auch wenn die Verzeichnisstruktur immer mehr aus den Explorerfenstern verdrengt wird. (b.z. wo sich sie nicht mehr ordentlich nutzen lässt, seitdem sie sich "standardmäßig" nicht mehr synchronisiert)

Unglücklich ist nur, daß man über den Explorer solche "System"-Properties nicht ändern kann (System, Schreibschutz bei Verzeichnissen),
außer man verwendet die Experten dafür. (z.B. Verzeichnis-Eigenschaften > Anpassen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 7. Mai 2014 um 21:35 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz