Vlastní codepage proti problémům s Unicode

Zde můžete volně diskutovat o programu Altap Salamander. Ptejte se, odpovídejte a vyjadřujte své názory. Prosíme, nevkládejte sem hlášení problémů či návrhy na nové funkce.
User avatar
Ether
Posts: 1459
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Vlastní codepage proti problémům s Unicode

Post by Ether » 05 Jan 2014, 16:23

V případě, že potřebujete pracovat se soubory, v jejichž názvech se vyskytuje diakritika nebo znaky jiných národních abeced, je možné přesvědčit Salamandera, aby s nimi uměl pracovat. Pokud vám stačí některá z předpřipravených codepage ve Windows, můžete skočit přímo do sekce "změna codepage". Pokud vám žádná nevyhovuje, je možné si sestavit vlastní. Momentálně mám připravenou takovou, která obsahuje české, slovenské, německé a ruské znaky, ale na požádání můžu připravit i jiné. Pokud máte dotazy či připomínky, rád si je přečtu.

Instalace codepage

Zkusím popsat, jak na to, ale prvně si dovolím upozornit, že jde o nebezpečnou aktivitu. Postup jsem sice vyzkoušel na vlastním (virtuálním) systému, ale na vašem fungovat nemusí, nebo dokonce může něco pokazit. Pokud se rozhodnete postupovat podle mého návodu a zasahovat do svého systému, udělejte si prvně zálohu (alespoň zálohu registru nebo bod obnovy, ale lepší je samozřejmě zálohovat úplně vše, co je vám milé). Postup je vyzkoušený na Windows XP, ale měl by být funkční i pro Windows Vista, 7, 8 a 8.1. Funkčnost na Windows 2000 zkoušet neplánuju, ale pokud mi ji někdo potvrdí, budu mu věřit.

Stáhněte si přiložený soubor c_1253x.nls a nakopírujte ho do svého adresáře System32 (nejčastěji C:\Windows\System32). Pokud máte 64bitový Windows, použijte ke kopírování nejlépe 64bitový proces (například 64bitového Salamandera či Průzkumníka) a nakopírujte soubor do adresářů System32 i SysWOW64. V registrech v klíči HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage upravte položku 1253 a původní hodnotu c_1253.nls přepište na c_1253x.nls. K oběma těmto operacím jsou potřeba práva správce. Počítač restartujte. Po restartu by měla být upravená codepage dostupná jako CP1253; tato codepage je využívána pro podporu řečtiny v ne-Unicode programech. Teoreticky by mělo fungovat i přímo nahrazení souboru c_1253.nls upraveným souborem, ale je to komplikovanější z hlediska přístupových práv a při mém testování se stejně soubor pokaždé vrátil do původního, nezměněného stavu.

Změna codepage

Codepage se dá využít/aktivovat dvěma způsoby.

Trochu bezpečnější metoda je použití programu AppLocale, který codepage nastaví pouze pro konkrétní proces. AppLocale má ale bohužel problém s vkládáním textu, takže se hodí pouze v případě, že nebudete potřebovat v cizí abecedě psát. Skočte na stránku AppLocale na Microsoft Download Center a stáhněte si nabízený instalátor apploc.msi. Ve Windows XP lze program nainstalovat normálně, ve vyšších verzích Windows je potřeba instalátor spustit explicitně jako správce (tedy například z administrátorského Salamandera nebo příkazového řádku), více například zde: Workaround to Install Microsoft AppLocale Utility. AppLocale se dá spustit z nabídky Start a ukáže se průvodce, ve kterém lze vybrat jazyk a program, který chcete spustit s vybraným jazykovým nastavením. Řečtina, která je potřebná pro moji codepage, je v seznamu uvedená jako Ελληνικά a nachází se někde dole. Průvoce nabízí i vytvoření zástupce v nabídce Start, pomocí kterého se dá kdykoli spustit stejný program se stejným jazykovým nastavením. Stejného efektu lze dosáhnout i spuštěním následujícího příkazu:
C:\Windows\apppatch\AppLoc.exe "[cesta k Salamanderovi]\salamand.exe" /L0408
Druhou možností je změnit jazykové nastavení globálně. Touto změnou může poněkud utrpět vzhled různých částí systému, ve kterých jsou použité některé paznaky, které jsem z codepage odstranil (například znak copyrightu v dialogu About Altap Salamander). Změnu je potřeba provést přes Ovládací panely v panelu Místní a jazykové nastavení v poslední záložce (trochu podrobněji je to popsáno na stránce Unicode Support v nápovědě Salamandera. Pro aktivaci mé codepage je potřeba vybrat řečtinu.
Attachments
c_1253x.zip
(1.46 KiB) Downloaded 188 times
Ελληνικά rulez.