<!-- Copyright (c) 2005 by Michaël Larouche <michael.larouche@kdemail.net> -->
<!-- Licensed under the GNU Free Documentation License  -->

<appendix id="chatwindowstyleguide">
<title>Stilguide for chatvindue i &kopete;</title>
<sect1 id="chatstyle-reference">
<title>Stilreference for chatvindue i &kopete;</title>
<para>Fra og med &kopete; 0.12, bruger vi nu formatet <ulink url="http://www.adiumx.com/">Adium</ulink> til chatvinduestil. Temaformatet er baseret på <acronym>HTML</acronym>-skabeloner og <acronym>CSS</acronym>. De er enklere at oprette og udvikle, kun kunskab om <acronym>HTML</acronym> og <acronym>CSS</acronym> behøves. Desuden kan stiler have varianter (definerede med en <acronym>CSS</acronym>-fil), som tilføjer flere egenindstillede værdier). </para>

<sect2 id="chatstyle-reference-guide">
	<title>Reference guide.</title>
<para>Adium-formatet består af en mappestruktur, <acronym>HTML</acronym>-skabeloner, <acronym>CSS</acronym>-filer og nøgleord som erstattes hver gang skabelonen behandles. Den endelige konvertering er en <acronym>XHTML</acronym>-side hvor meddelelser tilføjes med <acronym>DOM</acronym>-handlinger. Det centrale element er et div-element som hedder <filename>Chat</filename>. Før og efter dette div-element findes skabeloner for sidehoved og sidefod. Meddelelser findes under div-elementet <filename>Chat</filename>. </para>

<sect3 id="chatstyle-refrerence-directory">
	<title>Mappestruktur</title>
<para>En stil skal holde sig til denne mappestruktur. Koden i &kopete; styres af denne mappestruktur. Når stilen arkiveres, arkivér så mappen <filename>styleName</filename>. Mappestrukturen er en struktur ifølge med en bundle i <application>Mac OS X</application>, for dem som kender til det operativsystem. Du skal desuden følge versaltilstanden som vises her, eftersom <acronym>Unix</acronym>-systemer er versalfølsome.</para>
<programlisting>styleName\ (kan have .adiumMessageStyle som suffix, eftersom det er en bundle i Mac OS X)
        Contents\
                Info.plist
                Resources\
                        main.css
                        Header.html
                        Footer.html
                        Status.html
                        Incoming\ (och Outgoing\)
                                Content.html
                                NextContent.html (for efterfølgende meddelelsen)
                                Contekst.html (for meddelelsehistorik)
                                NextContekst.html
                                Action.html
                        Variants\
                                *.css
</programlisting>
</sect3>

<sect3 id="chatstyle-reference-divinsert">
	<title>Om &lt;div id="insert"&gt;&lt;/div&gt;</title>
	<para>Dette er et særligt div-element som bruges internt. Det er en pladsmarkør som angiver hvor næste meddelelse skal indsættes. Hvis det er en ny meddelelse, fjernes det og den nye meddelelse tager dens plads. Men hvis det er en efterfølgende meddelelse erstattes div-elementet med den nye meddelelses indhold. Dette særlige div-element <emphasis>kræves</emphasis> i skabelonerne Content, Context, NextContent, NextContext. Det skader dog ikke også at tilføje det i skabelonerne Action og Status. </para>
</sect3>

<sect3 id="chatstyle-reference-templates">
	<title>HTML-skabeloner.</title>

<variablelist><title>Skabelonbeskrivelse.</title>

<varlistentry><term><filename>Header.html</filename> (kræves)</term>
<listitem>
<para>Brug skabelonen Header til at vise et pænt sidehoved for konversationen. Denne skabelon indsættes inden div-elementet <filename>Chat</filename>. Hvis du ikke bruger det, så brug blot en tom fil. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>Footer.html</filename> (kræves)</term>
<listitem>
<para>Dette er i hovedsagen det samme som Header, men er for konversationens sidefod. Denne skabelon indsættes efter div-elementet <filename>Chat</filename>. Hvis du ikke bruger det, bruges blot en tom fil. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>Status.html</filename> (kræves)</term>
<listitem>
<para>Denne skabelon bruges til at vise en intern meddelelse. Interne meddelelser såsom statusændringer, meddelelser fra Kopete (f.eks. indkommende filoverførsel) vises. Når stilen ikke sørger for skabelonen Action, bruges den til at vise sådanne meddelelser. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>Incoming/Content.html</filename></term>
              <term><filename>Outgoing/Content.html</filename> (kræves)</term>
<listitem>
<para>Indholdsskabelonen er meddelelsens kerne. Forestil dig det som en blok som vil indeholde meddelelser. Sørg for at det er parat til at tage imod de efterfølgende meddelelser, konstruér den ikke til kun at vis en meddelelse. Efterfølgende meddelelser indsættes ved div-elementet. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>Incoming/NextContent.html</filename></term>
              <term><filename>Outgoing/NextContent.html</filename> (kræves)</term>
<listitem>
<para>Skabelonen NextContent er meddelelsefragment for efterfølgende meddelelser. Den indsættes i hovedmeddelelsesblokken. HTML-skabelonen skal kun indeholde det som minimalt behøves for at vise en meddelelse. </para>
</listitem>
</varlistentry>


<varlistentry><term><filename>Incoming/Action.html</filename></term>
              <term><filename>Outgoing/Action.html</filename> (valgfri) (udvidelse i &kopete;)</term>
<listitem>
<para>Denne skabelon er en udvidelse af Adium-formatet i &kopete;. Den er tilgængelig for indkommende og udgående retninger. Handlingsmeddelelser er specialmeddelelser som fortæller at en handling udføres. For eksempel: "/me installerer &kopete;" vil blive vist som "DarkShock installerer &kopete;".  </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>Incoming/Content.html</filename></term>
              <term><filename>Incoming/NextContent.html</filename></term>
              <term><filename>Outgoing/Context.html</filename></term>
              <term><filename>Outgoing/NextContext.html</filename> (valgfri)</term>
<listitem>
<para>Disse skabeloner bruges ikke i Kopete. I Adium bruges de til at vise historik. De er i hovedsagen ligesom Content og NextContent men med visse forskelle for at adskille dem fra normale meddelelser. </para>
</listitem>
</varlistentry>

</variablelist>

</sect3>

<sect3 id="chatstyle-reference-css">
	<title>Om CSS-stilskabeloner og varianter</title>
	<para>HTML-skabeloner bruges til at beskrive hvordan strukturen laves, men alle stiler beskrives i <acronym>CSS</acronym>-filer. <filename>main.css</filename> er hovedstilen, hvor varianter kun er ændringer af hovedstilen. Eksempel på varianter er anderledes farver, ingen visning af brugerfoto. Både <filename>main.css</filename> og varianter importeres i de endelige <acronym>XHTML</acronym>-sider.</para>
	<sect4 id="chatstyle-reference-css-main">
		<title>-<filename>main.css</filename></title>
		<para>Dette er den hoved <acronym>CSS</acronym>-filen som er fælles for alle varianter. Denne fil skal indeholde al hovedbeskrivelse af stilen.</para>
	</sect4>
	<sect4 id="chatstyle-refrence-css-variants">
		<title>Varianter</title>
		<para>Varianter er <acronym>CSS</acronym>-filer placerede i mappen <filename>Variants/</filename>. Hver variant er en enkelt <acronym>CSS</acronym>-fil som inkluderer <filename>main.css</filename> og gør ændringer af hovedstilen.</para>
	</sect4>
</sect3>

<sect3 id="chatstyle-reference-debug">
	<title>Fejlsøgning af stiler</title>
	<para>Her er to vink om hvordan man tester en stil mens den laves.</para>
	<sect4 id="chatstyle-reference-debug-save">
		<title>- Gem et eksempel på en konversation.</title>
		<para>Du kan <action>gemme</action> en konversation i chatvinduet. Dette er en kopi af den interne XHTML-side som vises. Brug den i <application>Konqueror</application> for at teste dine <acronym>CSS</acronym>-filer.</para>
	</sect4>
	<sect4 id="chatstyle-reference-debug-disable-cache">
		<title>- Deaktivér stilcachen.</title>
		<para>Et lille indstillingsflag findes til at deaktivere stilcachen. Når den aktiveres, genindlæses HTML-skabeloner hver gang en stil efterspørges. Tilføj følgende rækker i <filename>kopeterc</filename>. Meget nyttigt når en stil testes i &kopete;.</para>
		<programlisting>[KopeteStyleDebug]
disableStyleCache=true
</programlisting>
	</sect4>
</sect3>

</sect2>

<sect2 id="chatstyle-reference-keywords">
	<title>Nøgleordsreference</title>
	<para>Nøgleord ligner huller som skal udfyldes med information. For hver ny meddelelse erstattes de af den rigtige værdi som svarer til deres sammenhæng. For helt at støtte alle funktioner i Kopete, er visse udvidelser af nøgleord tilføjet i Adium. Visse nøgleord er desuden også kun tilgængelige i visse sammenhænge.</para>

<variablelist><title>Nøgleordsliste for skabelonerne Header og Footer. </title>
<para>Der behandles nøgleord når chatten starter.</para>
<varlistentry><term><filename>%chatName%</filename></term>
<listitem>
<para>Dette er navnet på nuværende chatsession. I en typisk session viser dette navn og status for kontakten. For <acronym>IRC</acronym> vises kanalens emne. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%sourceName%</filename></term>
              <term><filename>%destinationName%</filename></term>
<listitem>
<para>Disse er navnene på kontakterne i en chatsession. <filename>%sourceName%</filename> er dit navn. <filename>%destinationName%</filename> er navnet på kontakten du chatter med. Foretræk <filename>%chatName%</filename> frem for disse, eftersom de kan være forvirrende i gruppechatter og IRC. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%incomingIconPath%</filename></term>
              <term><filename>%outgoingIconPath%</filename></term>
<listitem>
<para>Dette er kontakternes billede, foto eller avatar for en chatsession. Incoming repræsenterer kontaktfotoet og Outgoing repræsenterer dit eget foto. Hvis et foto ikke er tilgængeligt, bruges billedet <filename>buddy_icon.png</filename> som findes i mappen <filename>Incoming</filename> eller <filename>Outgoing</filename>. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%timeOpened%</filename></term>
              <term><filename>%timeOpened{X}%</filename></term>
<listitem>
<para>Dette er tiden da chatsessionen begyndte. <filename>%timeOpened%</filename> bruger standardtidformatet for den nuværende landsindstilling. Hvis du vil bruge et specifikt tidsformat, brug <filename>%timeOpened{X}%</filename> hvor X er en streng som indeholder tidsformatet. Tidsparametrene er de samme som i glibc-funktionen <function>strftime</function>. Skriv <command>man strftime</command> for at få en liste med tilgængelige parametre. </para>
</listitem>
</varlistentry>

</variablelist>

<variablelist><title>Nøgleordsliste for skabelonerne Content, NextContent, Context, NextContext, Action</title>
<para>Der behandles nøgleord for hver meddelelse.</para>

<varlistentry><term><filename>%userIconPath%</filename></term>
<listitem>
<para>Dette er kontaktens billede, foto eller avatar som hører sammen med meddelelsen. Hvis et foto ikke er tilgængeligt, bruges billedet <filename>buddy_icon.png</filename> som findes i mappen <filename>Incoming</filename> eller <filename>Outgoing</filename> afhængig af meddelelsens retning. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%senderScreenName%</filename></term>
<listitem>
<para>Dette er kontaktidentifikationen for kontakten som hører sammen med meddelelsen, Eksempelvis jeg@hotmail.com, 45566576, AnnaKrogh. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%sender%</filename></term>
<listitem>
<para>Dette er kontaktens navn som hører sammen med meddelelsen. Det bruger metakontaktens navn at vise som kilde. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%service%</filename></term>
<listitem>
<para>Viser tjenestens navn som hører sammen med meddelelsen. Eksempel: Jabber, Yahoo, MSN. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%textbackgroundcolor{X}%</filename></term>
<listitem>
<para>Dette nøgleord bruges til at repræsentere markeret baggrundsfarve i &kopete;. Ignorér parametrene indenfor parenteserne og brug det kun som <filename>%textbackgroundcolor{}</filename>. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%senderStatusIcon%</filename> (udvidelse af &kopete;)</term>
<listitem>
<para>Viser kontaktens statusikon som hører sammen med meddelelsen. Det er en filsøgesti. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%senderColor%</filename></term>  <term><filename>%senderColor{N}%</filename> (udvidelse af &kopete;)</term>
<listitem>
<para>Opret en farve fra afsenderens kontaktidentifikation. Kan bruges til at vise en anden farve for kontaktens alias. </para>
<para><filename>%senderColor{N}%</filename> hvor N er et positivt tal. Hvis N er større end 100 repræsenterer det en lysere farve end kontaktens farve. Hvis N er lig med 150 er det en farve som er 50 % lysere. Hvis N er mindre end 100 er det en mørkere farve. Brugbar for at lade baggrunden farves forskelligt for hver kontakt. </para>
<para>Hvis du vil bruge farverne i en variant, men ikke i hovedstilen, findes en måde at komma rundt om det. <programlisting>
<![CDATA[
<div style="color:%senderColor%;border:none;border-color:%senderColor{40}%;"><p class="message">...</p></div>
]]>
</programlisting> Du kan bruge farven for elementet p.message i filen <filename>main.css</filename>, og skrive noget som ligner følgende i varianten: <programlisting>p.message { color:inherit; border-color:inherit; }
</programlisting>

</para>
</listitem>
</varlistentry>

</variablelist>

<variablelist><title>Nøgleordsliste fælles for meddelelser og Status.html</title>

<varlistentry><term><filename>%message%</filename></term>
<listitem>
<para>Selve meddelelsen. Det er et HTML-fragment. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%time%</filename></term>
              <term><filename>%time{X}%</filename></term>
<listitem>
<para>Tiden da meddelelsen blev modtaget. <filename>%time%</filename> bruger standardtidsformatet for den nuværende landsindstilling. Hvis du vil bruge et specifikt tidformat, brug så <filename>%time{X}%</filename> hvor X er en streng som indeholder tidsformatet. Tidsparametrene er de samme som i glibc-funktionen <function>strftime</function>. Skriv <command>man strftime</command> for at få en liste med tilgængelige parametre. </para>
</listitem>
</varlistentry>

<varlistentry><term><filename>%messageDirection%</filename> (udvidelse af &kopete;)</term>
<listitem>
<para>Repræsenterer meddelelsens retning, om meddelelsen skal vises skrevet fra højre til venstre eller fra venstre til højre. Værdierne er enten "rtl" eller "ltr". Læs <link linkend="chatstyle-guideline-direction">Guide for meddelelseretning</link> for at finde ud af hvordan nøgleordet bruges på en rigtig måde. </para>
</listitem>
</varlistentry>
</variablelist>

</sect2>
</sect1>

<sect1 id="chatstyle-guideline">
	<title>Stilguide for chatvindue i &kopete;</title>
<para>Stilguide for chatvindue i &kopete; er et sæt ting som din chatvinduesstil skal støtte for at fungere sammen med Kopete.</para>
<sect2 id="chatstyle-guideline-highlight">
	<title>Understøt markeringer</title>
	<para>Stilen skal vise markeringer. I Kopete og Adium erstattes <filename>%textbackgroundcolor{}%</filename> med markeringsfarven. Tilføj stilattributten <userinput>background-color: %textbackgroundcolor{}%</userinput> i HTML-elementet som viser meddelelsen.</para>
</sect2>
<sect2 id="chatstyle-guideline-consecutive">
	<title>Meddelelsesskabeloner for efterfølgende meddelelser kræves.</title>
	<para>Denne guide er til for dem som skriver gamle XSL-stiler om til det nye format. Alle stiler skal sørge for en skabelon for efterfølgende meddelelser. Det er nu en standardfunktion.</para>
</sect2>

<sect2 id="chatstyle-guideline-encoding">
	<title>Brug kodningen <acronym>UTF-8</acronym>.</title>
	<para>Overskriften siger alt. Du skal gemme filerne som <acronym>UTF-8</acronym>.</para>
</sect2>

<sect2 id="chatstyle-guideline-info">
	<title>Sørg for at <filename>Contents/Info.plist</filename> for at virke  sammen med Adium</title>
	<para>Filen <filename>Contents/Info.plist</filename> bruges ikke endnu i Kopete, men hvis du ønsker at stilen skal fungere sammen med <application>Adium</application> skal du sørge ofr denne fil. Her er en grundlæggende eksempelfil. Strenge at erstatte omgives af "$".</para>
<programlisting><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>CFBundleDevelopmentRegion</key>
        <string>English</string>
        <key>CFBundleGetInfoString</key>
        <string>$Your style full name$</string>
        <key>CFBundleIdentifier</key>
        <string>$Your style ID in the form: com.adiumx.smooth.operator.style$</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>1.0</string>
        <key>CFBundleName</key>
        <string>$Your style name here$</string>
        <key>CFBundlePackageType</key>
        <string>AdIM</string>
        <key>MessageViewVersion</key>
        <integer>3</integer>
</dict>
</plist>
]]>
</programlisting>

</sect2>

<sect2 id="chatstyle-guideline-buddyicon">
	<title>Sørg for <filename>buddy_icon.png</filename></title>
	<para>Du skal placere en fil som hedder <filename>buddy_icon.png</filename> i <filename>Incoming</filename> og <filename>Outgoing</filename>. Billederne bruges når kontakten ikke har noget foto.</para>
</sect2>

<sect2 id="chatstyle-guideline-direction">
	<title>Støtte for sprog som skrives fra højre til venstre med nøgleordet <filename>%messageDirection%</filename>.</title>
	<para>Nøgleordet <filename>%messageDirection%</filename> er til for de sprog i verden som skrives fra højre til venstre. Det definerer meddelelsens retning om det er "rtl" (højre til venstre) eller "ltr" (venstre til højre). Tilføj stilattributten i HTML-elementet som viser meddelelsen: <userinput>direction: %messageDirection%</userinput>. Forhåndsvisning af stilen i udseendeindstillingen indeholder en kontrol af at stilen viser højre til venstre rigtigt. Den skal vise strengen med begyndelse fra højre.</para>
</sect2>
</sect1>
</appendix>
