2009-10-08  Leif Andersson Henriksbergsvägen 104  136 67 VENDELSÖ

喜 人

2009-11-09 Att skriva från tangentbordet (ändringar 2009-11-22) ======================================== Kan man med ett svenskt tangentbord skriva kinesiska skrivtecken och skriva ett brev lika snabbt som om man skrev på svenska? Det borde inte vara så svårt. Charset 134 är ju tvåbytestecken. För att skriva ett tecken måste man alltså skriva två bytes vilket för många tecken borde gå att göra med två tangenttryckningar. Men problemet är att hitta rätt tecken i hela charsetet. Jag har inte hittat någon enkel ordningsprincip som gör att man kan komma ihåg var alla tecken ligger. Jag provade i musskrift att gruppera tecken efter vanlighet med 32 tecken per grupp (se nedan). Det verkar inte helt fel. Och en 32-grupp är ju vad tangentbordet kan adressera. Det bör alltså gå att använda liknande system för förhandsvisning av tecken som vid musskrift även för tangentbordet. Jag försökte göra ett tangentbord baserat på musskriftsrutiner. Koden blev ganska snårig och det var mycket som jag fick lov att ändra men nu börjar det ändå fungera hjälpligt. Mycket återstår att göra men om du vill leka med det som finns går det att prova hur det fungerar. Du hittar tangentbordet under "Options - Tangentbord - Universalbord". Om du hämtar och packar upp det kinesiska lexikonet hittar du en mapp som heter 134. I den finns ett lexikon som heter svkin134. Om du lägger det som Lexikon1 aktiveras en fil som heter teck.tab och du får en fråga om du vill köra den. Svarar du Ja sätts charset till 134. Från 2009-11-22 innehåller teck.tab en rad som aktiverar Universalbordet. I det lexikonet finns även filen mustecken.tab som kodar om tecknen för visning i mustecken och i Universalbordet. När du avslutar LexSup sparas dina inställningar så att LexSup nästa gång öppnar direkt med svkin134 som Lexikon1 Hittills har jag bara lagt in ett par hundra tecken i mustecken.tab men man kan ana hur det hela är tänkt att fungera. Vid första tangenttryckning väljer man teckengrupp. För varje grupp förhandsvisas inledningstecknet. När man skriver inledningstecknet förhandsvisas resten av gruppen. Vill man ha inledningstecknet skriver man mellanslag som andra byte. Än så länge är det bara de första tangenterna som är inledningstecken till teckengrupper. Övriga tecken som visas i förstabytestablån är prov som jag lagt in. De går att skriva om man skriver mellanslag efter dem men de aktiverar ingen teckengrupp. Uppslag med dubbelkomma skall fungera som vanligt. När man så har valt tecken skall focus återlämnas till den lilla rutan i övre högra hörnet av tangentbordet. När man använder Universalbordet är det den som tar emot tangenttecken. Ibland vill man skriva något direkt i Utfilrutan utan att gå via Universalbordet. Använder man dubbelkomma får Utfilrutan automatiskt focus tills man valt ett alternativ. Vill man tvinga focus till utfilrutan klickar man på den. Och för att återföra focus till Universalbordet klickar man på den lilla rutan i övre högra hörnet på tangentbordet och låter muspekaren stå på Universalbordet. Jag har försökt använda tangenten med §-tecknet för att nollställa ett val av första byte. Det fungerar ofta men det kan hända att det hela hänger sig. Gör det det kan du aktivera Musskrift. Det går att använda tangentbordet och musskrift samtidigt men man kan inte ställa musskrift till Stor för då täcks tangentbordet över. Pekar du med musen på tangenterna i tangentbordet visas en antydan till tecknets användning. Du kan också skriva tecknen genom att klicka på tangenterna. Rutorna längst ner har jag tänkt använda för vidareutveckling av tangentbordet. Med x och c kan du tvinga tangenttecken till önskad nibble. z återför teckenval till 3:e nibble för första och 1:a nibble för andra byte. Shift ger tillgång till övre nibble-halvan. 2009-10-08 Om 32-grupper ======================== När man skriver tvåbytestecken väljer man med första byte en grupp om högst 256-tecken. Med andra byte väljer man så ett tecken ur denna grupp. Men 256-tecken är en svårhanterligt stor grupp. Det är svårt att lära sig alla tecken i gruppen och svårt att skaffa sig en överblick över den. Att många alfabet består av c:a trettio tecken beror naturligtvis på att det är en hanterligt stor grupp. Charset 134 använder inte teckenbytens första nibble. En nibble är 64 positioner vilket innebär att första byten i charset 134 adresserar en grupp om 192 tecken. Även det är en ohanterligt stor grupp. Om man med mustecken.tab (se nedan) kodar in tecken i teckenbytens första nibble skulle man kunna få grupper om 64 tecken, Men det är i mesta laget. Jag har därför börjat lägga tecken i vanlighetsordning i grupper om 32 tecken. Jag hämtar tecknen från http://www.zein.se/patrick/3000char.html. Om man vill lära sig känna igen tecken kan man alltså börja med den första teckengruppen som innehåller de 32 vanligaste tecknen. Jag har också gjort så att om man i musskrift klickar på ett tecken för första byte visas alla tecken i teckengruppen. Man får på det viset en bild av hela teckengruppen (klicka på Stor så blir storleken tillräcklig för att man skall se alla detaljer i tecknen). Tittar man på en sådan bild hamnar den någonstans i minnet och ger en känsla för hur tecknen ligger. (2009-10-08 fungerar detta bara för första halvan av första nibble). Om man klickar på ett tecken för första byte och upptäcker att man valt fel teckengrupp kan man nollställa tecknet genom att klicka på den vita ramen runt den centrala teckenrutan. När man börjar få en uppfattning om vilka tecken som ingår i första gruppen kan man gå vidare till andra gruppen och sedan till tredje. Och så småningom känner man igen tillräckligt många tecken för att kunna läsa med lexikonstöd. På detta sätt använder man alltså hälften av teckenbytens första nibble. Från teckenbytens fjärde nibble kan man då adressera 64 grupper om 32 tecken. Det blir 2048 tecken. Från det skulle man kunna fortsätta och lägga tecken från vanlighetsordning 2049 och uppåt i andra halvan av teckenbytens första nibble. Om man även använder röd skift för första byte alltså röd-röd i stället för blå-röd blir teckenbytens tredje nibble tillgänglig för val av forsta byte. Det gör att antalet åtkomliga tecken fördubblas. Men än är det långt dit. Tänk på att du enkelt kan skapa egna teckengrupper. Det är bara att öppna mustecken.tab i någon ordehandlare som kan skriva oformaterad text, till exempel Anteckningar eller LexSup. I den kan du ändra omkodningen som du vill ha den. Du kan till exempel använda röd-röd skift för egna grupper. På det här sättet kan man alltså ganska snabbt komma så långt att man kan staka sig igenom en text med hjälp av lexikonstöd. Men det gäller inte bara att tragla sig igenom tecknen, man måste också förstå textens innehåll och det är inte alltid självklart hur en människa som talar kinesiska tänker. Man kan behöva ganska omfattande kommentarer kring varje tecken för att förstå vad tecknet anger. I Lexsup finns möjlighet att lägga in långa kommentartexter. Men ju mer man lär sig ju mindre kommentarer behöver man. Möjligheten att använda tilläggslexikon i LexSup erbjuder en möjlighet att lösa detta. Man kan skapa tilläggslexikon med omfattande kommentarer som man använder så länge man behöver dem för att därefter inaktivera tilläggslexikonet. Men det här är överkurs. Jag har ännu inte lyckats få fram mer än första början på ett baslexikon. 2009-09-22 De 100 vanligaste tecknen i charset 134 via musskrift ================================================================ I det kinesiska lexikonet finns en mapp som heter 134. I den finns ett svensk-kinesiskt lexikon i mappen svkin. I det finns en fil som heter teck.tab och en som heter mustecken.tab. Om du lägger in det lexikonet som Lexikon1 aktiverar teck.tab frågan "Lexikon1 innehåller en fil (teck.tab) som ställer in font och teckentolkning. Vill du köra den?". Om du klickar på ja ställs LexSup i kinesmod med tvåbytestecken enligt charset 134. Om du klickar på Musskrift på huvudmenyn öppnas musskriftpanelen. På den finns normalt en knapp som heter Font eller ANSI som väljer font för tecknen i musskriftrutorna. Om man har en tvåbytesfont fungerar detta enbart om man har ANSI-tecken i rutorna. Denna knapp försvinner därför i kinesmod. Peka med muspekaren på Á i övre vänstra kanten på högra rutfältet (näst översta rutan)! I vänstra rutfältet får du då en textruta med ett kinesiskt tecken följt av texten " Detta 33(-66)". Det betyder att detta tecken kan användas i betydelsen "Detta" och att tecknet inleder en teckengrupp som omfattar 33 till 66 i vanlighetsordning. Om du klickar på rutan Á byts texten i textrutan till "Avvaktar next". Vill du skriva det tecknet för du muspekaren till den vita rutan i mitten (ovanför den gröna LF-rutan). Även om du har musskrift i klickmod skrivs då tecknet direkt när muspekaren kommer in i den rutan. Vill du i stället skriva något annat tecken i den teckengruppen för du muspekaren genom den blå Sh-rutan. Den skall då bli röd. Du fortsätter med muspekaren till vänstra kanten av vänstra rutfältet. Översta vänstra rutan i vänstra rutfältet vid röd Sh används för att stänga av förvalshanteringen av tvåbytestecken. Övriga tecken i de fyra vänstra kolumnerna går till tecken i teckengruppen 33-66. Om du för muspekaren till ruta  (sjätte rutan uppifrån) får du i högra rutfältet en textruta som börjar med ett kinesiskt tecken följt av texten "kan 38". Det betyder att tecknet är nummer 38 i vanlighetsordning och att det kan användas i betydelsen "kan". Om du vill skriva tecknet klickar du där du står. 2009-03-11 Tillägg =============== Att skriva och läsa kinesiska med html-Unicode i Utfilrutan och tecknen i en Browserruta är en enkel och rättfram metod som ofta fungerar (bortsett från att jag inte förstår mig på kinesernas sätt att uttrycka sig). Hur man gör det finns beskrivet nedan. Men skriver man ofta och mycket kan det vara lite arbetsamt att använda html-Unicode. Så frågan är om man kan skriva förenklad kinesiska direkt med Charset. Jag har provat och det tycks fungera även om jag ännu inte har kontrollerat att det inte skadat något annat och att alla möjliga kom- binationer fungerar. Så här gör man: I det kinesiska lexikonet finns nu ett lexikon för Charset 134. Packa upp det kinesiska lexikonet. Klicka på "Lexikonval" och sätt Lexikon1 till svkin134 och Lexikon2 till kinsv134. Klicka på "Options - Font" och sätt Charset till 134. Du måste välja en font som har detta Charset. Eftersom 134 ligger i intervallet 128 -138 sätts LexSup i Kines-mod när du klickar på OK. Du kan nu på vanligt sätt slå upp ord i Lexikon1 med hjälp av dubbelkomma. Men åtminstone på mina datorer ställs inte Utfilrutan om till Charset 134 så du ser inte tecknen utan teckenkoden i Utfilrutan. Och om du skriver via tangentbordet får du bara tecken i första bytehalvan (utom ÅÄÖ). För att direkt kunna skriva kinesiska tecken och se resultatet behöver du komma åt övre bytehalvan och du behöver se tecknen i en ruta som visar tecken i stället för teckenkod. Det finns fyra sätt att lösa detta. Du kan klicka på "Musskrift" och om du då inte direkt får fram en Memoruta som kan visa tecknen klickar du på "MemoOn". I Musskrift kommer du åt alla tecken i hela byten. Ett annat sätt är att klicka på "Options - Teckenförskjutning". Du får då möjlighet att förskjuta tangentbordets tecken så att du kan nå tecken som normalt inte är åtkomliga. Om du har Teckenförskjutning aktiverad ger inte återuppslag uppslag i Lexikon2 utan i stället teckenkoden som hexadecimal siffra. Detta kan ibland vara praktiskt om man vill se en viss kod som hexadecimal siffra. När du har Teckenförskjutning aktiverad har du en knapp där du kan öppna eller stänga memorutan. Den tredje möjligheten är att klicka på "Options - Främmande latinskt till special". Tangentbordet förskjuts då med en siffra som visas som en liten ruta i högra kanten på Kommentarrutan. Du kan ändra förskjutningen genom att ändra denna siffra, Eftersom du har satt LexSup i Kinesmod öppnas även Memorutan. Du kan nu skriva tecken direkt eller slå upp i Lexikon1 med hjälp av dubbelkomma. Om du markerar eller dubbelklickar på en kod i Utfilrutan eller ett tecken eller en teckengrupp i Memorutan slås den upp i Lexikon2. Den fjärde möjligheten är att använda "Options - Tangentbord". Under "Bruksanvisningar - Alfabet" finns beskrivet hur man använder den möjligheten. Den är från början tänkt för enbytesfonter. Egentligen borde den kanske kompletteras för att kunna hantera tvåbytestecken som i Charset 134 men jag vet för lite om hur tecknen är ordnade för att våga mig på att försöka göra en sådan komplettering. En text som du åstadkommit på detta sätt kan du använda i en Browser. Men tänk på att en Browser skall ha ett filnamn med tillägget .htm eller .html och markering av html-text och preformatering för att visa en text på rätt sätt. Och för att koda texten rätt sätter du kodningen till "Kinesiska, förenklad(GB2312)". I LexSup kommer du åt kodningen genom att högerklicka i Browserrutan och i Internet Explorer genom att klicka på "Visa". Mera om att skriva på kinesiska (2009-02-10) =========================================== Det har hänt en del med LexSup sedan jag skrev nedanstående text. Det kinesiska lexikonet har växt så att det nu omfattar mer än 500 ord. Under "Arkiv" finns möjligheter att "Hämta filtrerad fil" vilket ger möjlighet att koda om t ex UTF-8 eller UCS2 till tvåbytes unicode för html-text. Lexikonet bygger på tvåbytes unicode för html-text. I Utfilrutan skriver man alltså &#xxxxx; och om man sparar Utfilrutan som en fil kan man via "Internet - Browse" öppna en Browserruta där man direkt ser hur tecknen ser ut. Observera att den sparade filen måste ha filnamnstillägget .htm eller .html för att Browserrutan skall koda den på rätt sätt. På det sättet kan man alltså skriva kinesiska tecken. Men hur skall man kunna komma ihåg unicode-nummer för alla de tecken man behöver? Om man har svkin som Lexikon1 kan man skriva dubbelkomma följt av ett svenskt ord. Ordet slås då upp i Lexikon1 och koden för unicode-tecknet visas på vanligt sätt i Utordrutorna. Man behöver alltså inte komma ihåg unicode-nummret, det räcker om man vet den svenska motsvarigheten till tecknet. Men Utordrutorna visar unicode-koden inte tecknet. Det är först när man valt tecken (t ex genom att skriva en siffra som motsvarar Utordrutans nummer) som innehållet i Utordrutan läggs in i Utfilrutan och Browserrutan uppdaterar så att tecknet syns i Browserrutan. Men det finns en möjlighet att se tecknet innan man bestämmer sig för det. Om första raden i kommentarer till ordet är enbart QFZ visas Utorden som tecken i Kommentarrutans första rad. Att lägga in unicode-tecken i RichEdit är knepigt. Det gäller att komma förbi alla listiga omkodningar som finns inbyggda i systemet. Tills vidare kommer några radbörjansmarkeringar med. Det blir lite fult men det fungerar. Och om man vill läsa en kinesisk text? Under rubriken "Internet" finns "Översätt tecken". Om du hämtar en kinesisk text och sparar den som en fil kan du hämta den filen till Utfilrutan med "Hämta filtrerad fil" och få den kodad med tvåbytes unicode för html-text. När du har den i Utfilrutan kan du klicka på "Internet - Översätt tecken". Utfilrutans text sparas då som en fil som heter LexSupTrans2Qvaolett.htm. Detta är en tillfällig hjälpfil som skrivs över och ändras utan någon varning. Normalt behöver man inte bry sig om den men det kan vara bra att veta vad det är om man hittar den i någon mapp. Detsamma gäller för filen LexSupQFZ.tmp som är en hjälpfil som används för att visa tecken i kommentarrutan och LSFM.tmp som används av programmet FontMap. När Utfilrutan sparats till fil öppnas en Browserruta kopplad till filen. I den ser man då tecknen som tecken. I överkanten på Browserrutan finns en knapp som heter "Översätt några tecken". Om man klickar på den startar översättningen där cursorn står i Utfilrutan. Orden slås upp i Lexikon2 och för varje uppslagsord skjuts det första översättningsalternativet in efter uppslagsordet. Efter 6 uppslagsord läggs ett radskift in. Och efter några rader uppdateras Browserrutan och översättningen stannar med cursorn där den stannade. Om man då klickar på "Översätt några tecken" fortsätter alltså översättningen där den slutade förra gången. Finns inte uppslagsordet i Lexikon2 skjuts uppslagsordet följt av _ in efter uppslagsordet. I Browserrutan upprepas alltså tecken som saknas i Lexikon2. I Browserrutan ser man alltså tecken och översättningsalternativ tillsammans. Det gör att man får en koppling mellan dem som kan vara bra om man vill lära sig tecknen och som gör att man i vissa fall kan använda tecknet för att gissa sig till betydelsen. Jag har provat att använda den här läsmetoden på några texter som jag hittat på http://www.gutenberg.org men med nuvarande lexikon kan jag inte säga att resultatet blev godtagbart. Jag begrep inte vad texterna handlade om. Men jag ser tre skäl till detta. Lexikonet innehåller huvudsakligen vanliga småord som ger liten information om textens innehåll Den teckenbetydelse som jag hittat kan vara fel eller ovanlig Jag förstår inte kinesisk ordföljd och uttryckssätt Men även om jag inte förstår innehållet har jag ändå fått en viss aning om vad vissa tecken står för. Och en antydan om ett sätt att utbyta information som är olikt det sätt vi är vana vid. 2008-04-19 Leif Andersson Henriksbergsvägen 104 136 67 VENDELSÖ Att skriva brev på kinesiska ============================ Hur gör jag om jag vill skriva ett brev på kinesiska? Ganska snart inser jag att jag måste klara av tre problem. 1. Hur hittar jag de kinesiska tecken som jag behöver? 2. Hur vet jag vad tecknen betyder? 3. Hur uttrycker man sig på kinesiska? Vad säger kinesisk grammatik? När det gäller punkt 1 så kan jag hitta kinesiska skrivtecken i charset 134 eller charset 136. Och från hexadecimalt värde 4E00 det vill säga decimalt värde 19968 och uppåt innehåller unicode kinesiska tecken. På http://en.wikibooks.org/wiki/Unicode/Character_reference/4000-4FFF finns en lista som visar unocode-tecken mellan hexadecimalt 4000 och 4FFF. I början finns också länkar till andra avsnitt av unicode. För att använda dessa tecken i html-text kan man antingen ange dem som decimala värden mellan &# och ; eller använda utf8-kodning. Om man vill använda charset kan man skriva med musskrift i LexSup och lägga in vilket charset man använder i html-textens HEAD-del. När det gäller punkt 2 finns på http://www.zein.se/patrick/3000char.html en engelsk förklaring för de 3000 vanligaste kinesiska skrivtecknen. Denna sida använder charset 134 och genom att se på källfilen kan man alltså hitta de teckenpar som motsvarar tecknen i charset 134. När det gäller punkt 3 finns lite information om kinesisk grammatik på http://www.zein.se/patrick/chinsv2p.html När det gäller att slå i lexikon är ett problem att de kinesiska tecknen inte är ordnade på samma sätt som orden i västerländska språk. Men man kan ju ordna dem efter unicode-nummer antingen inom ett charset eller inom hela unicode. Det enklaste är nog att arbeta direkt med hela unicode och alltså använda &#xxxxx; för tecknen. Man kan då göra lexikon som fungerar som vanliga LexSup-lexikon där man slår upp med dubbelkomma eller genom att markera tecken. Jag har också i OrdFras2.tab lagt in några kinesiska tecken som jag gett enkla namn, en sorts mnemonics, så att man kan hämta dem och lägga in dem i en text.