Page 1 of 1
Ve Windows Vista jsou složky uživatele zobrazovány anglicky
Posted: 20 Oct 2008, 22:27
by zdenek bulin
Dobrý den,
nainstaloval jsem Altap Salamander 2.51 na česká Windows Vista Home Premium a zjistil jsem, že Salamander zobrazuje složky, které jsou uloženy pod uživatelem anglicky a ne jako samotná Windows. Například složka Dokumenty se zobrazuje jako Documents, složka Kontakty je zobrazována jako Contacts, složka oblíbené položky jako Favorites atd. Nejsem si jist, jestli se to stejně chová od začátku, ale neví prosím někdo, proč tomu tak je ?
Zdeněk Bulín
Posted: 20 Oct 2008, 22:33
by Ether
Je tomu tak, protože opravdu mají anglické názvy. Systém ovšem podle jazykového nastavení daného uživatele upravuje zobrazované názvy složek ve většině programů. Salamander je v tomto směru pokročilým nástrojem a zobrazuje tedy skutečné názvy.
Proces tedy funguje opačným směrem, než jste popsal. Za použití vašeho příkladu: v počítači je uložen adresář Documents a tento adresář vám Salamander předkládá; Průzkumník a jiní ovšem přeloží název na Dokumenty a tuto složku (spolu s dalšími menšími úpravami) zobrazí.
Poznámka: tento koncept je z mnoha hledisek výhodnější nežli varianta, kdy jsou názvy adresářů uloženy v daném jazyce. Kupříkladu může uživatel bez jakýchkoli obtíží měnit jazyk, ve kterém Windows komunikují, a přitom skutečná struktura adresářů v počítači zůstane nedotčena. Zmíněná druhá varianta byla využívána Windows od verze 95 až po XP a působila více či méně problémů.
Posted: 20 Oct 2008, 22:52
by zdenek bulin
Díky za odpověď. Rozumím tomu co píšete, ale pokud by to šlo, tak bych umožnil uživateli vobu, jak chce názvy těchto složek zobrazit. V každé z těchto složek je skrytý soubor desktop.ini ve kterém je níže uvedená informace. Neurčuje LocalizedResourceName to jak se tato složka jmenuje v daném jazyce ? Pokud to tak je, tak by to pro Salamander nemusel být takový problém. Pokud plácám, tak se omlouvám.
Z.Bulín
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21814
IconResource=%SystemRoot%\system32\imageres.dll,-186
Posted: 21 Oct 2008, 01:02
by Ether
Nemám zrovna u sebe nainstalovaný některý z Windows v6 (Vista aj.), takže se mohu pouze domnívat. Nicméně, podle obsahu jednoho z vašich desktop.ini soudím, že to není tak jednoduchá práce, jak to vypadá. Překlady totiž sídlí v MUI souborech (měly by být k nalezení někde kolem %SystemRoot%\system32\cs-CZ), ale v desktop.ini je odkaz k shell32.dll, takže je potřeba hledat další návaznosti.
---
Ze zvědavosti jsem se jal vykuchat můj Windows 2008, abych zjistil, jak se věci mají.
---
Potvrzeno - samotný shell32.dll neobsahuje jakékoli názvy. Ovšem můj %SystemRoot%\system32\en-US\shell32.dll.mui obsahuje název Saved Games pod příslušným číslem. Tedy ano, neplácáte, obsah desktop.ini odkazuje na zobrazované názvy. (Omlouvám se za angličtinu, ale 300MB balíček s českou lokalizaci se mi nechtělo stahovat.)
Tedy existuje relativně jednoduchý způsob, jak zjistit lokalizovaný název, otázkou zůstává pouze, zda chceme, aby se zobrazoval. Pokud by taková schopnost měla objevit, tak jedině jako vypnutelná. Pokud ale předpokládáme v panelu zvolené řazení podle názvu, nastává takový nehezká věc. Jsou dvě možnosti, obě mají své zápory:
x) Buď se názvy načtou "na popředí", ale jakmile se objeví například adresář, do kterého nemá uživatel práva přistupovat, nastane zdržení. Pokud takových adresářů bude víc, je toto zdržení neomluvitelné pro takový program, jako je Salamander. Takové zdržení také nastane, pokud bude v panelu více adresářů (řádově desítky).
x) Nebo se názvy načtou "na pozadí". (Například načítání ikon složek je odsunuto "na pozadí", aby okno Salamandera nezatěžovalo a uživatel mohl pracovat, zatímco se mu načítají tyto ikony.) Pak ale může nastat (a nastane) situace, kdy se najednou začnou adresáře v panelu přeuspořádávat, aby zůstaly abecedně seřazeny. To je ovšem také neomluvitelné.
V obou případech se dostáváme se Salamanderem k situaci, kdy by načítání adresáře do panelu mohlo trvat desítky sekund a jednotlivé položky se budou muset proto objevovat postupně tak, jak se právě načítají. To je podle mě směr, kterým se Salamander ubírat nemůže.
(Následuje techničtější mluva, pokusím se vše vysvětlit.) Další, a ještě větší, problém je v cestách k souborům. Lokalizované názvy nemají žádný podklad v souborovém systému, takže jakákoli cesta, která je obsahuje, je nepoužitelná. Příkladem buď třeba C:\Users\Jarda\Oblíbené položky\Položka.lnk. Úkolem této cesty je dovést uživatele nebo program k souboru Položka.lnk. Salamander se dostane do adresáře Jarda, přičemž narazí na neexistující adresář Oblíbené položky (je nemyslitelné, aby kvůli tomu prohledával všechny podadresáře, zda-li se jejich český název neshoduje s požadovaným Oblíbené položky) a k souboru Položka.lnk se nedostane. Tedy - taková cesta je, ač česká, nepoužitelná. Varianta, kdy by názvy byly lokalizované, ale cesty by se zobrazovaly s původními názvy, mi připadá jako paskvil. (Průzkumník se s tímto vypořádává vlastními způsoby - cesty do těchto složek nezpracovává pomocí názvů, ale vlastní, vnitřní reprezentace.)
Doufám, že jste z mého výkladu pochopil, proč se Salamander v tomto musí odlišovat od Průzkumníka a podobných. Nicméně vývojáři plánují do příští verze plugin, který by mohl zčásti toto kompenzovat. Sám přesně nevím, jak bude vypadat, nechme se překvapit.