Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background::[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

table {border:2px solid [[ColorPalette::TertiaryDark]];}
th, thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
td, tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}

#messageArea {position:absolute; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:200;}
*[id='messageArea'] {position:fixed !important; z-index:200;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0em 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0em 1em;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

table {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:50; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which use a logographic writing system and need larger font sizes.
***/

/*{{{*/
body {font-size:0.8em;}

#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}

.subtitle {font-size:0.8em;}

.viewer table.listView {font-size:0.95em;}

.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser

Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations

----
Also see AdvancedOptions
/***
|''Name:''|CatalanLingo|
|''Description:''|Central Catalan translation for TW|
|''Author:''|Paco Rivière (http://pacoriviere.cat)|
|''Version:''|2.2.1|
|''Source:''|http://pacoriviere.googlepages.com/TiddlyWiki.html|
|''Date:''|Jun 8, 2007|
|''Comments:''|Agrairem els vostres comentaris a https://projectes.lafarga.cat/forum/?group_id=38|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/

/*{{{*/
//--
//-- Translateable strings
//--

// Strings in "double quotes" should be translated; strings in 'single quotes' should be left alone

config.locale = "ca"; // W3C language tag

merge(config.options,{
	txtUserName: "ElVostreNom"});

merge(config.tasks,{
save: {text: "desa", tooltip: "Desa tots els canvis en aquest arxiu", action: saveChanges},
sync: {text: "sincronitza", tooltip: "Sincronitza els canvis amb d'altres fitxers i servidors TiddlyWiki", content: '<<sync>>'},
importTask: {text: "importa", tooltip: "Importa tiddlers i connector d'altres fitxers TiddlyWiki i servidors", content: '<<importTiddlers>>'},
tweak: {text: "opcions", tooltip: "Tria el comportament de TiddlyWiki", content: '<<options>>'},
plugins: {text: "connectors", tooltip: "Gestiona els connectors", content: '<<plugins>>'}
});

// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
	txtUserName: "Nom utilitzat per signar els canvis",
	chkRegExpSearch: "Cerca expressions regulars",
	chkCaseSensitiveSearch: "Distingeix les majúscules en cercar",
	chkAnimate: "Fes servir animacions",
	chkSaveBackups: "Desa una còpia de seguretat abans de desar els canvis",
	chkAutoSave: "Registra els canvis de forma automàtica",
	chkGenerateAnRssFeed: "Genera un fil RSS en desar els canvis",
	chkSaveEmptyTemplate: "Genera un fitxer 'empty.html'en desar els canvis",
	chkOpenInNewWindow: "Obre els vincles externs en un altre finestra",
	chkToggleLinks: "Tanca els elements oberts en clicar sobre els seus vincles",
	chkHttpReadOnly: "Amaga els botons d'edició quan s'accedeix com per HTTP",
	chkForceMinorUpdate: "Tracta les edicions com a Canvis Menors conservant data i hora",
	chkConfirmDelete: "Demana confirmació abans de superimir un element",
	chkInsertTabs: "Inserta un tabulador amb la tecla 3tab en lloc de slatar el camp",
	txtBackupFolder: "Nom de la carpeta per als arxius de còpia",
	txtMaxEditRows: "Màxim nombre de línies d'una capsa d'edició tiddler",
	txtFileSystemCharSet: "Codificació de caractèrs per desar els (només per Firefox/Mozilla)"});

merge(config.messages,{
	customConfigError: "S'han trobat problemes en carregar els connectors. Veieu el PluginManager per a més detalls",
	pluginError: "Error: %0",
	pluginDisabled: "La etiqueta 'systemConfigDisable' no ha permés l'execució",
	pluginForced: "La etiqueta 'systemConfigForce' ha forçat l'execució",
	pluginVersionError: "No s'ha executat el connector donat que cal una versió més recent de TiddlyWiki",
	nothingSelected: "No heu triat res. Selecioneu un o més elements",
	savedSnapshotError: "Sembla que aquest TiddlyWiki s'ha desat malament. Veieu el detalls a http://pacoriviere.googlepages.com/TiddlyWiki.html#BaixaElProgramari",
	subtitleUnknown: "(desconegut)",
	undefinedTiddlerToolTip: "El tiddler '%0' encara no existeix",
	shadowedTiddlerToolTip: "El tiddler '%0' encara no existeix, però té un valor predefinit",
	tiddlerLinkTooltip: "%0 - %1, %2",
	externalLinkTooltip: "Enllaç extern cap a %0",
	noTags: "No hi ha tiddlers amb etiquetes",
	notFileUrlError: "Cal desar aquest TiddlyWiki a un arxiu abans de poder desar els canvis",
	cantSaveError: "No es poden desar els canvis. Pot ser que el vostre navegador no permeti desar (Proveu de fer servir Firefox, en lloc), o degut a que el nom de la ruta de l'arxiu TiddlyWiki té algun caràcter incorrecte",
	invalidFileError: "Sembla que l'arxiu original '%0' no és un TiddlyWiki vàlid",
	backupSaved: "S'ha desat la còpia",
	backupFailed: "No ha estat possible desar la còpia de l'arxiu",
	rssSaved: "S'ha desat el fil RSS",
	rssFailed: "No ha estat possible desar el fil RSS",
	emptySaved: "S'ha desat la plantilla buida",
	emptyFailed: "No ha estat possible desar la plantilla buida",
	mainSaved: "S'ha desat l'arxiu principal de TiddlyWiki",
	mainFailed: "No ha estat possible desar l'arxiu principal de TiddlyWiki. Els vostres canvis no s'han desat",
	macroError: "Hi ha un error a la macro <<%0>>",
	macroErrorDetails: "Hi ha hagut un error a l'executar la macro <<%0>>:\n%1",
	missingMacro: "No es troba la macro",
	overwriteWarning: "Ja hi ha un tiddler amb el nom '%0'. Trieu DAcord si el voleu sobreescriure",
	unsavedChangesWarning: "ATENCIÓ! Hi ha canvis que no s'han desat al TiddlyWiki\n\nTrieu DAcord per desar\nTrieu ANUL·LA per descartar-los",
	confirmExit: "--------------------------------\n\nHi ha canvis que no s'han desat al TiddlyWiki. Si continueu perdreu aquests canvis\n\n--------------------------------",
	saveInstructions: "DesaElsCanvis",
	unsupportedTWFormat: "El format del TiddlyWiki no es permés '%0'",
	tiddlerSaveError: "Hi ha hagut un error en desar el tiddler '%0'",
	tiddlerLoadError: "Hi ha hagut un error en desar el tiddler '%0'",
	wrongSaveFormat: "No es pot desar en el format de magatzament '%0'. Feu servir el format standard per a desar.",
	invalidFieldName: "El nom del camp no és vàlid vàlid %0",
	fieldCannotBeChanged: "No es pot modificar el camp '%0'",
	loadingMissingTiddler: "Intentant recuperar el '%0' del servidor '%1' a:\n\n'%2' a l'espai de treball '%3'"});

merge(config.messages.messageClose,{
	text: "tanca",
	tooltip: "Tanca aquest tiddler"});

config.messages.backstage = {
	open: {text: "bastidors", tooltip: "Obre els bastidors per les tasques d'autor i editor"},
	close: {text: "tanca", tooltip: "Tanca els bastidors"},
	prompt: "bastidors : ",
	decal: {
		edit: {text: "edita", tooltip: "Edita el tiddler '%0'"}
	}
};

config.messages.listView = {
	tiddlerTooltip: "Cliqueu per preveure el tiddler",
	previewUnavailable: "(no es pot preveure)"
};

config.messages.dates.months = ["de gener de", "de febrer de", "de març de", "d'abril de", "de maig de", "de juny de", "de juliol de", "d'agost de", "de setembre de", "d'octubre de", "de novembre de","de desembre de"];
config.messages.dates.days = ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"];
config.messages.dates.shortMonths = ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"];
config.messages.dates.shortDays = ["Diu", "Dil", "Dma", "Dcr", "Dij", "Div", "Dis"];
// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = ["r","n","r","t","é","é","é","é","é","é",
		"é","é","é","é","é","é","é","é","é","é",
		"é","","é","é","é","é","é","é","é","é",
		"é"];
config.messages.dates.am = "m.";
config.messages.dates.pm = "t.";

merge(config.messages.tiddlerPopup,{
	});

merge(config.views.wikified.tag,{
	labelNoTags: "sense etiquetes",
	labelTags: "etiquetes: ",
	openTag: "Obre l'etiqueta '%0'",
	tooltip: "Obre els tiddlers etiquetats amb '%0'",
	openAllText: "obre tots",
	openAllTooltip: "Obre tots aquests tiddlers",
	popupNone: "No hi ha altres tiddlers etiquetats amb '%0'"});

merge(config.views.wikified,{
	defaultText: "El tiddler '%0' no existeix. Cliqueu dos cops per començar-lo",
	defaultModifier: "(falta)",
	shadowModifier: "(tiddler ombra pre-definit)",
	dateFormat: "DD MMM YYYY",
	createdPrompt: "creat el"});

merge(config.views.editor,{
	tagPrompt: "Afegiu les etiquetes separades per espais, [[feu servir corxets]] si cal, o afegiu-ne",
	defaultText: "Entreu el text per a '%0'.'"});

merge(config.views.editor.tagChooser,{
	text: "etiquetes",
	tooltip: "Tria entre les etiquetes actuals per afegir a aquest tiddler",
	popupNone: "No hi ha etiquetes definides",
	tagTooltip: "Atribuir a etiqueta '%0'"});

merge(config.messages,{
	sizeTemplates:
		[
		{unit: 1024*1024*1024, template: "%0\u00a0GB"},
		{unit: 1024*1024, template: "%0\u00a0MB"},
		{unit: 1024, template: "%0\u00a0KB"},
		{unit: 1, template: "%0\u00a0B"}
		]});

merge(config.macros.search,{
	label: "cerca",
	prompt: "Cerca en aquest TiddlyWiki",
	accessKey: "F",
	successMsg: "S'han trobat %0 tiddlers que contenen: '%1'",
	failureMsg: "No s'ha trobat cap tiddler amb: '%0'"});

merge(config.macros.tagging,{
	label: "articles:",
	labelNotTag: "cap article",
	tooltip: "Llista de tiddlers etiquetats amb '%0'"});

merge(config.macros.timeline,{
	dateFormat: "DD MMM YYYY"});

merge(config.macros.allTags,{
	tooltip: "Mostra tiddlers com a etiqueta '%0'",
	noTags: "No hi ha tiddlers amb etiquetes"});

config.macros.list.all.prompt = "Tots els tiddlers per ordre alfabètic";
config.macros.list.missing.prompt = "Tiddlers que tenen enllaços cap a ells, però no estàn definits";
config.macros.list.orphans.prompt = "Tiddlers sense enllaços des de cap altre";
config.macros.list.shadowed.prompt = "Tiddlers amb ombres amb contingut per omisió";
config.macros.list.touched.prompt = "Tiddlers que heu modificat localment";

merge(config.macros.closeAll,{
	label: "tanca tots",
	prompt: "Tanca tots els tiddlers oberts (excepte els que s'estàn editant)"});

merge(config.macros.permaview,{
	label: "torna vista",
	prompt: "Enllaça a una URL que torni tots els tiddlers que es mostren ara"});

merge(config.macros.saveChanges,{
	label: "desa els canvis",
	prompt: "Desa tots els canvis a un arxiu",
	accessKey: "S"});

merge(config.macros.newTiddler,{
	label: "nou tiddler",
	prompt: "Obre un nou tiddler",
	title: "Nou tiddler",
	accessKey: "N"});

merge(config.macros.newJournal,{
	label: "nou diari",
	prompt: "Obre un nou tiddler amb la data i hora actuals",
	accessKey: "J"});

merge(config.macros.options,{
	wizardTitle: "Opcions avançades",
	step1Title: "Aquestes opcions es desen a les galetes del vostre navegador",
	step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Mostre les opcions desconegudes</input>",
	unknownDescription: "//(desconegut)//",
	listViewTemplate: {
		columns: [
			{name: 'Option', field: 'option', title: "Opció", type: 'String'},
			{name: 'Description', field: 'description', title: "Descripció", type: 'WikiText'},
			{name: 'Name', field: 'name', title: "Nom", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
	});

merge(config.macros.plugins,{
	wizardTitle: "Gestor de connectors",
	step1Title: "Connectors carregats",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	skippedText: "(Aquest connector encara no s'ha carregat)",
	noPluginText: "No hi ha cap connector instal·lat",
	confirmDeleteText: "Segur que voleu que suprimir els connectors:\n\n%0",
	removeLabel: "suprimeix l'etiqueta systemConfig",
	removePrompt: "Suprimeix l'etiqueta systemConfig",
	deleteLabel: "suprimeix",
	deletePrompt: "Suprimeix definitivament aquests tiddlers",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Mida", type: 'Size'},
			{name: 'Forced', field: 'forced', title: "Forçat", tag: 'systemConfigForce', type: 'TagCheckbox'},
			{name: 'Disabled', field: 'disabled', title: "Desactivat", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Executed', field: 'executed', title: "Carregat", type: 'Boolean', trueText: "Sí", falseText: "No"},
			{name: 'Startup Time', field: 'startupTime', title: "Temps de càrrega", type: 'String'},
			{name: 'Error', field: 'error', title: "Resultat", type: 'Boolean', trueText: "Error", falseText: "DAcord"},
			{name: 'Log', field: 'log', title: "Registre", type: 'StringList'}
			],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'avís'}
			]}
	});

merge(config.macros.toolbar,{
	moreLabel: "més",
	morePrompt: "Mostra més ordres"
	});

merge(config.macros.refreshDisplay,{
	label: "actualitza",
	prompt: "Torna a carregar tot el TiddlyWiki"
	});

merge(config.macros.importTiddlers,{
	readOnlyWarning: "No podeu importar a un fitxer TiddlyWiki només de lectura. Mireu d'obrir-lo des d'un fitxer, file:// URL",
	wizardTitle: "Importa tiddlers d'un altre fitxer o servidor",
	step1Title: "Pas 1: Indiqueu el fitxer TiddlyWiki o servidor",
	step1Html: "Indiqueu el tipus de servidor: <select name='selTypes'><option value=''>Trieu...</option></select><br>Entreu la URL o la ruta aquí: <input type='text' size=50 name='txtPath'><br>...o navega: <input type='file' size=50 name='txtBrowse'><br><hr>...o trieu un canal predefinit: <select name='selFeeds'><option value=''>Trieu...</option></select>",
	openLabel: "obre",
	openPrompt: "Obre la connexió amb aquest fitxer o servidor",
	openError: "Hi ha hagut un problema en importar el fitxer Tiddlywiki",
	statusOpenHost: "Obrint el servidor",
	statusGetWorkspaceList: "Obtenint la llista d'espais de treball disponibles",
	step2Title: "Pas 2: Trieu un espai de treball",
	step2Html: "Entreu el nom de l'espai de treball: <input type='text' size=50 name='txtWorkspace'><br>...o trieu un espai de treball: <select name='selWorkspace'><option value=''>Trieu...</option></select>",
	cancelLabel: "anul·la",
	cancelPrompt: "Anul·la la importació",
	statusOpenWorkspace: "Obrint l'espai de treball",
	statusGetTiddlerList: "Obtenint la llista de tiddlers",
	step3Title: "Pas 3: Trieu els tiddlers que voleu importar",
	step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Keep these tiddlers linked to this server so that you can synchronise subsequent changes</input><br><input type='checkbox' name='chkSave'>Deseu els detalls del servidor en un tiddler 'systemServer' anomenat:</input> <input type='text' size=25 name='txtSaveTiddler'>",
	importLabel: "importa",
	importPrompt: "Importa aquests tiddlers",
	confirmOverwriteText: "Segur que voleu substituir aquests tiddlers:\n\n%0",
	step4Title: "Pas 4: Important %0 tiddler(s)",
	step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
	doneLabel: "fet",
	donePrompt: "Tanca l'assistent",
	statusDoingImport: "Important els tiddlers",
	statusDoneImport: "S'han importat tots els tiddlers",
	systemServerNamePattern: "%2 de %1",
	systemServerNamePatternNoWorkspace: "%1",
	confirmOverwriteSaveTiddler: "El tiddler '%0' ja existeix. Cliqueu 'DAcord' per sobreescriure'l amb els detalls d'aquest servidor, o 'Anul·la' per deixar-ho tal com és",
	serverSaveTemplate: "|''Tipus:''|%0|\n|''URL:''|%1|\n|''Espai:''|%2|\n\nAquest tiddler es va crear automàticament per registrar els detalls d'aquest servidor",
	serverSaveModifier: "(System)",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Mida", type: 'Size'},
			{name: 'Tags', field: 'tags', title: "Etiquetes", type: 'Tags'}
			],
		rowClasses: [
			]}
	});

merge(config.macros.sync,{
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Server Type', field: 'serverType', title: "Tipus de servidor", type: 'String'},
			{name: 'Server Host', field: 'serverHost', title: "Servidor", type: 'String'},
			{name: 'Server Workspace', field: 'serverWorkspace', title: "Espai de treball", type: 'String'},
			{name: 'Status', field: 'status', title: "Estat de Synchronització", type: 'String'},
			{name: 'Server URL', field: 'serverUrl', title: "URL del servidor", text: "Mostra", type: 'Link'}
			],
		rowClasses: [
			],
		buttons: [
			{caption: "Sync these tiddlers", name: 'sync'}
			]},
	wizardTitle: "Sincronitza amb servidors i fitxers externs",
	step1Title: "Trieu els tiddlers que voleu sincronitzar",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	syncLabel: "sinc",
	syncPrompt: "Sincronitza aquests tiddlers",
	hasChanged: "Ha canviat mentre no era connectat",
	hasNotChanged: "Sense canvis mentre no era connectat",
	syncStatusList: {
		none: {text: "...", color: "cap"},
		changedServer: {text: "Canviat al servidor", color: '#80ff80'},
		changedLocally: {text: "Canviat mentre desconnectat", color: '#80ff80'},
		changedBoth: {text: "Canviat mentre desconnectat i al servidor", color: '#ff8080'},
		notFound: {text: "No s'ha trobat al servidor", color: '#ffff80'},
		putToServer: {text: "S'han desat els canvis al servidor", color: '#ff80ff'},
		gotFromServer: {text: "S'han recuperat els canvis des del servidor", color: '#80ffff'}
		}
	});

merge(config.macros.annotations,{
	});

merge(config.commands.closeTiddler,{
	text: "tanca",
	tooltip: "Tanca aquest tiddler"});

merge(config.commands.closeOthers,{
	text: "tanca altres",
	tooltip: "Tanca tots els altres tiddlers"});

merge(config.commands.editTiddler,{
	text: "edita",
	tooltip: "Edita aquest tiddler",
	readOnlyText: "mostra",
	readOnlyTooltip: "Mostra el codi d'aquest tiddler"});

merge(config.commands.saveTiddler,{
	text: "desa",
	tooltip: "Desa els canvis d'aquest tiddler"});

merge(config.commands.cancelTiddler,{
	text: "anul·la",
	tooltip: "Anul·la els canvis a aquest tiddler",
	warning: "Segur que voleu anul·lar els canvis a '%0'?",
	readOnlyText: "fet",
	readOnlyTooltip: "Torna a l'aspecte normal"});

merge(config.commands.deleteTiddler,{
	text: "suprimeix",
	tooltip: "Suprimeix aquest tiddler",
	warning: "Segur que voleu suprimir '%0'?"});

merge(config.commands.permalink,{
	text: "enllaç permanent",
	tooltip: "Enllaç permanent d'aquest tiddler"});

merge(config.commands.references,{
	text: "referències",
	tooltip: "Obre els tiddlers que enllacen a aquest",
	popupNone: "sense referències"});

merge(config.commands.jump,{
	text: "salta",
	tooltip: "Salta a un altre tiddler obert"});

merge(config.commands.syncing,{
	text: "sincronitzant",
	tooltip: "Control de la sincronització d'aquest tiddler amb un servidor o fitxer extern",
	currentlySyncing: "<div>Es sincromitza <span class='popupHighlight'>'%0'</span> amb:</"+"div><div>servidor: <span class='popupHighlight'>%1</span></"+"div><div>workspace: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
	notCurrentlySyncing: "No s'està sincronitzant",
	captionUnSync: "Atura la sincronització d'aquest tiddler",
	chooseServer: "Sincronitza aquest tiddler amb un altre servidor:",
	currServerMarker: "\u25cf ",
	notCurrServerMarker: "  "});

merge(config.commands.fields,{
	text: "camps",
	tooltip: "Mostra els camps ampliats d'aquest tiddler",
	emptyText: "Aquest tiddler no té camps ampliats",
	listViewTemplate: {
		columns: [
			{name: 'Field', field: 'field', title: "Camp", type: 'String'},
			{name: 'Value', field: 'value', title: "Valor", type: 'String'}
			],
		rowClasses: [
			],
		buttons: [
			]}});
merge(config.shadowTiddlers,{
	DefaultTiddlers: "ComComençar",
	MainMenu: "TiddlyWiki\nComComençar\n[[Aparença]]\n[[BaixaElProgramari]]\n[[Connectors]]\n[[Donacions]]\n\n© 2007 [[UnaMesa|http://www.unamesa.org/]]\n[[©|Copyright]] 2007 [[frivière|http://pacoriviere.cat/]]\n\n\n^^TiddlyWiki versió <<version>>^^",
	SiteTitle: "El meu TiddlyWiki",
	SiteSubtitle: "bloc web personal no lineal, reutilitzable",
	SiteUrl: "http://www.tiddlywiki.com/",
	Aparença: "Podeu canviar l'aspecte i comportament de TiddlyWiki gairebé com volgueu:\n\n* Amb ColorPalette per canviar l'esquema de colors de base\n* Amb [[CustomStyleSheet|http://www.tiddlywiki.com/#CustomStyleSheet]] per a controlar detalladament el seu aspecte\n* Amb PageTemplate, ViewTemplate o EditTemplate per canviar la composició de la pàgina i la disposició de tiddlers individuals\n* Utilitzeu temes preparats de [[TiddlyThemes|http://tiddlythemes.com/]]\n* Visiteu el resum de Configuration per veure tots els tiddlers especials de configuració\n* Instal·leu [[Connectors]] per estendre la funcionalitat bàsica (i també [[podeu escriure o adaptar el vostre|http://gimcrackd.com/etc/src/codex/]] fàcilment)\n\nHi ha també un grapat de [[TiddlyWikiTools|http://www.tiddlywiki.com/#TiddlyWikiTools]] que podeu utilitzar per ampliar TiddlyWiki.",
	BaixaElProgramari: "Anem a baixar una còpia de TiddlyWiki que tú podràs modificar al teu ordinador.\n\nClica [[aquí|https://projectes.lafarga.cat/frs/download.php/958/TiddlyWiki.html]] amb el botó dret del ratolí i tria ''Desa l'enllaç al disc''. (No obris la pàgina).\n\nA partir d'aquí ja pots obrir la pàgina al teu navegador, modificar-la i omplir-la de contingut. Pots fer-la servir al teu ordinador o pujar-la a internet i compartir-la.\n\nAquí trobaràs una [[èxplicació més detallada|http://pacoriviere.googlepages.com/20minuts.html]]",
	Copyright: "CatalanLingo - Localització de TiddlyWiki versió 2.0.0 (c) Paco Rivière, 2006. \n\nSi ''feu servir CatalanLingo públicament'' apreciaria un enllaç cap a (http://pacoriviere.cat/).\n\n''L'ús comercial'' requireix permís previ escrit. Contacteu Paco Rivière a (web [a] pacoriviere [punt] cat).\n\n!LLICÈNCIA\n\nCopyright (c) Paco Rivière 2006\n\nEs permet la distribució del codi font i binari, amb o sense modificacions, sempre que es compleixin les següents condicions:\n\nLa distribució del codi font ha de mantenir el copyright anterior, aquesta llista de condicions i el següent avís.\n\nLa distribució del codi binari ha de mantenir el copyright anterior, aquesta llista de condicions i el següent avís a la documentació i/o altres materials subministrats amb la distribució.\n\nEl nom de Paco Rivière ni els dels seus col·laboradors no es poden fer servir per recolçar o promoure productes derivats d'aquest programari, sense el seu permís explícit previ per escrit.\n\nELS POSSEÏDORS DEL COPYRIGHT I/O ALTRES PARTS FACILITEN EL PROGRAMARI 'TAL QUAL' SENSE CAP MENA DE GARANTIA, NI EXPLÍCITA NI IMPLÍCITA, INCLOSES, ENTRE ALTRES, LES GARANTIES IMPLÍCITES DE COMERCIALITZABILITAT I APTITUD PER A PROPÒSITS DETERMINATS. EN CAP CAS EL POSSEÏDOR DEL COPYRIGHT I/O ALTRES PARTS, TRET DEL QUE REQUEREIXIN ELS ACORDS PER ESCRIT, NO US HAURÀ DE RESPONDRE PER PERJUDICIS, INCLOSOS ELS DIRECTES, INDIRECTES, ESPECIALS, EXEMPLARS, O DANYS CONSEQÜENTS (INCLOSES ENTRE D'ALTRES LES PÈRDUES DE DADES, O BENEFICIS; O INTERRUPCIO DEL NEGOCI), COM SIGUI QUE S'HAGIN PRODUÏT I EN QUALSEVOL TEORIA DE FIABILITAT, TAN SI ÉS EN CONTRACTE, FIABILITAT ESTRICTE, O ALTRES (INCLOSES LA NEGLIGÈNCIA O ALTRES), QUE ES DERIVIN DE L'ÚS DEL PROGRAMA, EN QUALSEVOL FORMA, FINS I TOT SI AQUEST POSSEÏDOR O ALTRA PART HA ESTAT ADVERTIDA DE LA POSSIBILITAT D'AQUESTS PERJUDICIS.",
	ComComençar: "Per començar amb aquest TiddlyWiki en blanc, heu de modificar els següents tiddlers:\n* [[TitolDelLloc|SiteTitle]] & [[SubtitolDelLloc|SiteSubtitle]]: El títol i el subtítol del lloc, com es mostra a sobre (un cop desats, també apareixeran a la barra de títols del navegador)\n* [[MenuPrincipal|MainMenu]]: El menú (normalment a l'esquerra)\n* [[TiddlersPerOmisio|DefaultTiddlers]]: Conté els noms dels tiddlers que voleu que apareguin quan s'obre el TiddlyWiki\nTambé heu d'entrar el vostre nom d'usuari per signar les vostres edicions: <<option txtUserName>>",
	Connectors: "Els connectors (plugins) permeten ampliar les funcions de [[TiddlyWiki]]:\n\n* ''En català'':\n** [[Calendari|http://projectes.lafarga.cat/frs/?group_id=38]] Calendari i agenda.\n** [[Tria el Tema|http://projectes.lafarga.cat/frs/?group_id=38]] Tria l'aspecte de TiddlyWiki entre diversos fulls d'estil.\n** [[Presentació|http://projectes.lafarga.cat/frs/?group_id=38]] Fes presentacions amb TiddlyWiki.\n** [[arxiuPlugin|http://projectes.lafarga.cat/frs/?group_id=38]] Per agrupar els Tiddlers per mesos.\n** [[DissenyUgrudi|http://projectes.lafarga.cat/frs/?group_id=38]] Disseny freaky\n** [[WikiBar|http://projectes.lafarga.cat/frs/?group_id=38]] Una barra d'eines a l'estil Viquipèdia\n** [[RellotgePlugin|http://projectes.lafarga.cat/frs/?group_id=38]] Un rellotge analògic, només amb JavaScript\n\n* ''En anglés'': http://www.tiddlywiki.com/index.html#Plugins",
	Donacions: "La localització de TiddlyWiki al català és programari lliure, disponible gratuitament per tothom i sempre ho serà. Si feu  servir TiddlyWiki de forma regular i us resulta útil, podeu [[contribuïr amb una donació|https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=web%40pacoriviere%2ecat&item_name=Donaci%c3%b3%20per%20la%20localitzaci%c3%b3%20de%20TiddlyWiki%20al%20catal%c3%a0&amount=10%2e00&no_shipping=1&return=http%3a%2f%2fpacoriviere%2egooglepages%2ecom%2fTiddlyWiki%2ehtml&no_note=1&tax=0&currency_code=EUR&lc=ES&bn=PP%2dDonationsBF&charset=UTF%2d8]] encara que sigui modesta  a PayPal (com ara 10 Euros)",
	SideBarOptions: "<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal '0DD MMM YYYY' 'diari'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel opcions 'Canvia les opcions avançades del TiddlyWiki'>>",
	OptionsPanel: "Les opcions per personalitzar TiddlyWiki es desen al vostre navegador\n\nEl vostre nom per signar les vostres edicions. Escribiu-lo com una ParaulaWiki (com ara MartiCliment)\n<<option txtUserName>>\n<<option chkSaveBackups>> DesaCòpies\n<<option chkAutoSave>> AutoDesa\n<<option chkRegExpSearch>> CercaExpReg\n<<option chkCaseSensitiveSearch>> CercaSensibleACaixa\n<<option chkAnimate>> ActivaAnimacions\n\n----\nMostra les OpcionsAvançades",
	SideBarTabs: "<<tabs txtMainTab 'Data' 'Tiddlers per ordre cronològic' TabTimeline 'Títol' 'Tiddlers per ordre alfabètic' TabAll 'Etiquetes' 'Tiddlers etiquetats' TabTags 'Més' 'Més llistes' TabMore>>",
	TabTimeline: "<<timeline>>",
	TabAll: "<<list all>>",
	TabTags: "<<allTags>>",
	TabMore: "<<tabs txtMoreTab 'Falten' 'Tiddlers que no existeixen' TabMoreMissing 'Orfes' 'Tiddlers orfes' TabMoreOrphans Ombres 'Tiddlers amb ombra' TabMoreShadowed>>",
	TabMoreMissing: "<<list missing>>",
	TabMoreOrphans: "<<list orphans>>",
	TabMoreShadowed: "<<list shadowed>>",
	TiddlyWiki: "TiddlyWiki en català:\n\nhttp://pacoriviere.googlepages.com/TiddlyWikiCA.html\n[[Guia ràpida en català|http://pacoriviere.googlepages.com/20minuts.html]]\n\nLloc web original de TiddlyWiki (en anglés):\n\nhttp://www.tiddlywiki.com/",
	PluginManager: "<<plugins>>",
	ImportTiddlers: "<<importTiddlers>>",
        OpcionsAvançades: "<<tiddler AdvancedOptions>>",
        GestorDeConnectors: "<<tiddler PluginManager>>",
        ImportaTiddlers: "<<tiddler ImportTiddlers>>"});
delete config.shadowTiddlers.GettingStarted;

merge(config.annotations,{
	AdvancedOptions: "Aquest tiddler ombra dóna accès a vàries opcions avançades",
	ColorPalette: "Els valors que hi ha en aquest tiddler ombra determinen l'esquema de colors de la interfície d'usuari de ~TiddlyWiki",
	DefaultTiddlers: "Els tiddlers que es llisten en aquest tiddler ombra es mostren quan arrenca ~TiddlyWiki",
	EditTemplate: "La plantilla HTML que hi ha en aquest tiddler ombra determina l'aspecte dels tiddlers mentre s'editen",
	GettingStarted: "Aquest tiddler ombra dóna instruccions bàsiques d'ús",
	ImportTiddlers: "Aquest tiddler ombra permet importar tiddlers",
	MainMenu: "Aquest tiddler ombra es fa servir per al contingut del menú principal de la columna de l'esquerra",
	MarkupPreHead: "Aquest tiddler s'inserta a la part superior de la secció <head> del fitxer HTML de TiddlyWiki",
	MarkupPostHead: "Aquest tiddler s'inserta a la part final de la secció <head> del fitxer HTML de TiddlyWiki",
	MarkupPreBody: "Aquest tiddler s'inserta a la part superior de la secció <body> del fitxer HTML de TiddlyWiki",
	MarkupPostBody: "Aquest tiddler s'inserta a la part final de la secció <body> del fitxer HTML de TiddlyWiki just abans del bloc de seqüències",
	OptionsPanel: "Aquest tiddler ombra es fa servir per al contingut del quadre d'opcions slider de la columna de la dreta",
	PageTemplate: "La plantilla HTML que hi ha en aquest tiddler ombra determina la disposició de ~TiddlyWiki",
	PluginManager: "Aquest tiddler ombra dóna access al gestor de connectors",
	SideBarOptions: "Aquest tiddler ombra es fa servir per al contingut del quadre d'opcions de la columna de la dreta",
	SideBarTabs: "Aquest tiddler ombra es fa servir per al contingut del quadre d'etiquetes de la columna de la dreta",
	SiteSubtitle: "Aquest tiddler ombra es fa servir per la segona part del títol de la pàgina",
	SiteTitle: "Aquest tiddler ombra es fa servir per la primera part del títol de la pàgina",
	SiteUrl: "Aquest tiddler ombra cal escriure l'adreça URL sencera per la publicació",
	StyleSheetColours: "Aquest tiddler ombra conté les definicions CSS relatives al color dels elements de la pàgina",
	StyleSheet: "Aquest tiddler pot contenir les vostres definicions CSS personalitzades",
	StyleSheetLayout: "Aquest tiddler ombra conté les definicions CSS relatives a la disposició dels elements de la pàgina",
	StyleSheetLocale: "Aquest tiddler ombra conté les definicions CSS relatives a la traducció local",
	StyleSheetPrint: "Aquest tiddler ombra conté les definicions CSS per la impressió",
	TabAll: "Aquest tiddler ombra conté el contingut de la pestanya 'Títol'de la columna de la dreta",
	TabMore: "Aquest tiddler ombra conté el contingut de la pestanya 'Més'de la columna de la dreta",
	TabMoreMissing: "Aquest tiddler ombra conté el contingut de la pestanya 'Falten'de la columna de la dreta",
	TabMoreOrphans: "Aquest tiddler ombra conté el contingut de la pestanya 'Orfes'de la columna de la dreta",
	TabMoreShadowed: "Aquest tiddler ombra conté el contingut de la pestanya 'Ombres'de la columna de la dreta",
	TabTags: "Aquest tiddler ombra conté el contingut de la pestanya 'Etiquetes'de la columna de la dreta",
	TabTimeline: "Aquest tiddler ombra conté el contingut de la pestanya 'Data'de la columna de la dreta",
	ViewTemplate: "La plantilla HTML que hi ha en aquest tiddler ombra determina l'aspecte dels tiddlers"
	});

/*}}}*/
[[Presentació]]
ComComençar
/***
|!Name:|SlideShowPlugin |
|!Version:|1.3.0 - 26/02/2006|
|!Source:|http://www.math.ist.utl.pt/~psoares/addons.html |
|!Authors:|[[Paulo Soares|mailto:psoares@math.ist.utl.pt]] and [[Clint Checketts|http://www.checkettsweb.com]] |
|!Type:|Macro  |
|!Requires:|TiddlyWiki >= 2.0.0 |
!Description
This plugin turns a TiddlyWiki tiddler into a simple slide show type display. You can have looping, timed or themed slide shows. It should work in a way that does not interfere with TiddlyWiki. When you close the slide show you get back to your good old TW. 

This plugin has been tested in Firefox, Internet Explorer, Safari, and Opera. Let us know if something seems broken.
!Usage
To use this plugin you //must// be using TiddlyWiki 2.0. Install this tiddler and drop {{{<<slideShow>>}}} at the beginning of the tiddler. Use ! to start each slide with or without a title. Mark the end of your slides with a rule (- - - -). Everything that appears before the first header or after the closing rule is not shown in the slide show. 
There are also a few navigation buttons and a table of contents that shows up if you click the slide number.
See other options in this [[SlideShowExample]].
!Revision history
v1.3.0 26/02/2006 - restore open tiddlers on exit,  fixed problem with markup in headers (should work with NestedSlidersPlugin), added slide comments (blocks of text in the tiddler that don't show up in the presentation)
v1.2.1 28/01/2006 - pause timed slideshow with spacebar, clock with 3 different modes, fixed bugs with style and abbreviation options, general cleanup
v1.2.0 07/01/2006 - added a resume feature and themes support
v1.1.5 Beta 12/14/2005 - added mouse support and cleaned up navbar generation
v1.1.0 Beta 12/12/2005 - added support for IE, added key listeners
v1.0.0 12/11/2005 - initial release
!Todo
*Incremental advancement within a slide
*Cross fade effects
!Code
***/
//{{{
version.extensions.SlideShowPlugin = {
    major: 1, minor: 3, revision: 0,
    date: new Date(2006, 2, 26), 
    type: 'macro',
    source: "http://www.math.ist.utl.pt/~psoares/addons.html#SlideShowPlugin"
};

config.macros.slideShow = {label: "presentació", maxTOCLength: 30};
config.macros.slideShow.messages = {gotoLabel: "Ves a la diapositiva:"};
config.views.wikified.slideShow = {text: "presentació", tooltip: "Inicia la presentació"};
config.views.wikified.slideShow.quit = {text: "fi", tooltip: "Surt de la presentació"};
config.views.wikified.slideShow.firstSlide = {text: "<<", tooltip: "primera diapositiva"};
config.views.wikified.slideShow.previousSlide = {text: "<", tooltip: "diapositiva anterior"};
config.views.wikified.slideShow.nextSlide = {text: ">", tooltip: "següent diapositiva"};
config.views.wikified.slideShow.lastSlide = {text: ">>", tooltip: "darrera diapositiva"};

function changeStyleSheet(tiddlerName) {
	if (tiddlerName == null) tiddlerName = "StyleSheet";
	setStylesheet(store.getTiddlerText("StyleSheetColors"),"StyleSheetColors");
	setStylesheet(store.getTiddlerText("StyleSheetLayout"),"StyleSheetLayout");
        var theCSS = store.getRecursiveTiddlerText(tiddlerName,"");
        setStylesheet(theCSS,"StyleSheet");
}

config.formatters.push({
  name: "slideShowComment",
  match: "%%",
  lookahead: "%%((?:.|\\n)*?)%%",
  className: "slideShowComment",
  handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		var p = createTiddlyElement(w.output,"span",null,this.className);
		wikify( lookaheadMatch[1], p, null, w.tiddler);
		w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
  }
});

//Excellent (and versatile) reparser created by Paul Petterson for parsing the paramString in a macro
function reparse( params ) {
	var re = /([^:\s]+)(?:\:((?:\d+)|(?:["'](?:[^"']+)["']))|\s|$)/g;
	var ret = new Array() ;
	var m ;
	while( (m = re.exec( params )) != null ) ret[ m[1] ] = m[2]?m[2]:true ;
	return ret ;
}

// 'keys' code adapted from S5 which in turn was adapted from MozPoint (http://mozpoint.mozdev.org/)
function keys(key) {
	if (!key) {
		key = event;
		key.which = key.keyCode;
	}
	if (document.getElementById('contentWrapper').className == "slideShowMode"){
		switch (key.which) {
			case 32: // spacebar
                                 if(time>0){
                                      if(autoAdvance){
                                            clearInterval(autoAdvance);
                                            autoAdvance = null;
                                      } else {
                                            autoAdvance=setInterval("GoToSlide(1)", time);
                                      }
                                  }
                                  break;
			case 34: // page down
			case 39: // rightkey
			case 40: // downkey
                                GoToSlide(1);
				break;
			case 33: // page up
			case 37: // leftkey
			case 38: // upkey
                                GoToSlide(-1);
				break;
			case 36: // home
                                GoToSlide("f");
				break;
			case 35: // end
                                GoToSlide("l");
				break;
			case 27: // escape
				endSlideShow();
				break;
		}

	}
	return false;
}

function clicker(e) {
        if (!e) var e = window.event;
        var target = resolveTarget(e);
	//Whenever something is clicked that won't advance the slide make sure that the table of contents gets hidden
	if (target.getAttribute('href') != null || isParentOrSelf(target, 'toc') || isParentOrSelf(target,'embed') || isParentOrSelf(target,'object') || isParentOrSelf(target, 'pageFooter') || isParentOrSelf(target, 'navigator')){
		//Don't hide the TOC if the indexNumbers (which trigger the index) is clicked
		if(isParentOrSelf(target,'indexNumbers') || isParentOrSelf(target,'jumpInput')){
			return true;
		}
		showHideTOC('none');
		return true;
	}
	
	//Advance a slide if the TOC is visible otherwise make sure that the TOC gets hidden
	if ((!e.which && e.button == 1) || e.which == 1) {
		if (document.getElementById('toc').style.display != 'block'){
			GoToSlide(1);
		} else {
			showHideTOC('none');
		}
	}
	
	if ((!e.which && e.button == 2) || e.which == 3) {
		if (document.getElementById('toc').style.display != 'block'){
			GoToSlide(-1);
		} else {
			showHideTOC('none');
		}
		return false;
	}
}

function isParentOrSelf(element, id) {
	if (element == null || element.nodeName=='BODY') return false;
	else if (element.id == id) return true;
	else return isParentOrSelf(element.parentNode, id);
}

function GoToSlide(step) {
	var new_pos;
	var slideHolder = document.getElementById('slideContainer');
	//The parse float ensures that the attribute is returned as a number and not a string.
	var cur_pos = parseFloat(slideHolder.getAttribute('currentslide'));
	var numberSlides = slideHolder.getElementsByTagName("div").length;
	switch (step) {
		case "f":
			new_pos=0;
			break;
		case "l":
			new_pos=numberSlides-1;
			break;
		default:
			new_pos=cur_pos+step;
	}
	
	if(slideShowCircularMode && new_pos == numberSlides) new_pos=0;
	if(slideShowCircularMode && new_pos<0) new_pos=(numberSlides - 1);
	if(step!=0 && new_pos>=0 && new_pos<numberSlides) {
                slideHolder.childNodes[cur_pos].style.display='none';
                slideHolder.childNodes[new_pos].style.display='block';
		slideHolder.setAttribute('currentslide',new_pos);
                new_pos++;
		var indexNumbers = document.getElementById('indexNumbers');
		indexNumbers.firstChild.data = new_pos+'/'+numberSlides;
		if((new_pos==numberSlides) && !slideShowCircularMode && autoAdvance) clearInterval(autoAdvance);
		return true;
	}
	return false;
}

function tocShowSlide(e) {
   if (!e) var e = window.event;
   var target = resolveTarget(e);
   var slide = target.getAttribute('slideNumber');
   var cur_pos = document.getElementById('slideContainer').getAttribute('currentslide');
   var step = slide-cur_pos;
   if(step!=0) GoToSlide(step);
   showHideTOC('none');
   return;
}

//Toggle the display of the table of contents
function showHideTOC(display){
	var toc = document.getElementById('toc');
	//Reset the input box
	document.getElementById('jumpInput').value = "";

	if (display == null || display.length == null){
		if (toc.style.display == 'none' || toc.style.display == ''){
			toc.style.display = 'block';
			document.getElementById('jumpInput').focus();
		} else {
			toc.style.display = 'none';
		}
	} else {
		toc.style.display = display;
		if (display == 'block')
			document.getElementById('jumpInput').focus();
	}
}

function makeSignature(title,params){
        var signature = title+store.getTiddler(title).modified;
	if(params['style']) signature += params['style'];
	if(params['repeat']) signature += "repeat";
	if(params['slidePause'] > 0) signature += params['slidePause'];
	if(params['tocLabel']) signature += params['tocLabel'];
	if(params['autostart']) signature += "autostart";
	if(params['clock']) signature += params['clock'];
        return signature;
}

function padZero(par){
      if(par<10) par="0"+par;
      return par;
}

function setClock(){
      var actualTime = new Date();
      var newTime = actualTime - clockStartTime;
      newTime = clockMultiplier*newTime+clockInterval-3600000;
      actualTime.setTime(newTime);
      newTime = padZero(actualTime.getHours()) + ":" + padZero(actualTime.getMinutes())+ ":" + padZero(actualTime.getSeconds());
      var clock = document.getElementById('slideClock');
      clock.firstChild.nodeValue = newTime;
}

function resetClock(){
        var time = new Date(70,1,1,0,0,0);
        if(clockStartTime-time>0) clockStartTime = new Date();
}

var title;
var place;
var autoAdvance=null;
var slideClock=null;
var time = 0;
var slideShowCircularMode;
var slideShowStyleSheet;
var slideShowParams;
var clockMultiplier;
var clockInterval;
var clockStartTime;
var openTiddlers;

config.macros.slideShow.handler = function(aPlace,macroName,params,wikifier,paramString,tiddler){
	if(tiddler instanceof Tiddler){
                var lingo = config.views.wikified.slideShow;
                var autostart = false;
		if (!e) var e = window.event;
                
                place = aPlace;
		title = tiddler.title;
		params = reparse(paramString);
		var onclick = function(){config.macros.slideShow.onClickSlideShow(params);};
		createTiddlyButton(aPlace,lingo.text,lingo.tooltip,onclick);
		
		var slideShowHolder = document.getElementById('slideShowWrapper');
		//If no show exist previously, create it
		if(params['autostart']){
		   if(slideShowHolder != null){
                        var signature = slideShowHolder.getAttribute('showSignature');
                        if(signature.indexOf("autostart")==-1) autostart = true;
                   } else {autostart = true;}
                   if(autostart){
			slideShowParams = params;
			setTimeout("config.macros.slideShow.onClickSlideShow(slideShowParams);",10);
		   }
		}
	}
}

var disableFunction = function(e){return false;}
var enableFunction = function(e){}

config.macros.slideShow.onClickSlideShow = function(newParams) {

openTiddlers = new Array;
var viewer=document.getElementById('tiddlerDisplay');
for(var i=0; i<viewer.childNodes.length; i++){
     var name = viewer.childNodes[i].getAttribute('tiddler');
     openTiddlers.push(name);
}

        document.oncontextmenu = disableFunction;
        clockMultiplier = 1;
        clockInterval = 0;
        clockStartTime =  new Date(70,1,1,0,0,0);
	slideShowCircularMode = false;
	time = 0;
        slideShowStyleSheet = null;
	if(newParams['style']){
		slideShowStyleSheet = eval(newParams['style']);
	}	
	if(newParams['repeat']){
		slideShowCircularMode = true;
	}
	if(newParams['slidePause'] > 0){
		time = newParams['slidePause'];
	}
        if(newParams['clock']){
		clockStartTime = new Date();
                var clockType= eval(newParams['clock']);
                if(clockType != '+') {
                      clockMultiplier = -1;
                      clockInterval = -clockType*60000;
                }
        }

	var contentWrapper = document.getElementById('contentWrapper');
	if (contentWrapper.className != "slideShowMode"){
		clearMessage();
		//Attach the key and mouse listeners
		document.onkeyup = keys;
		document.onmouseup = clicker;
		
		var slideShowHolder = document.getElementById('slideShowWrapper');
		//If no show exist previously, create it
		if(slideShowHolder == null){
			createSlides(newParams);
		//If there was once waiting in the background and it matches the one we just started, resume it
		} else if (slideShowHolder.getAttribute('showSignature') == makeSignature(title,newParams)){
			
			//Remove dblClick on edit function
			var theTiddler = document.getElementById("tiddler"+title);
			theTiddler.ondblclick = function() {};

			// Grab the 'viewer' element and give it a signature so the show can be resumed if stopped
			var tiddlerElements = theTiddler.childNodes;
			var viewer;
			for (var i = 0; i < tiddlerElements.length; i++){
				if (tiddlerElements[i].className == "viewer") viewer = tiddlerElements[i];
			}
			theTiddler.insertBefore(slideShowHolder,viewer);
			theTiddler.removeChild(viewer);
			slideShowHolder.style.display = 'block';
                        document.getElementById("pageFooter").className = "pageFooterOff";
			
		//If the show we started it totally new than the resumable one, create the new one and kill the resumable one
		} else {
			slideShowHolder.parentNode.removeChild(slideShowHolder);
			createSlides(newParams);
		}
                slideClock=setInterval("setClock()", 1000);	
		if(time>0) autoAdvance=setInterval("GoToSlide(1)", time);	
	        story.closeAllTiddlers(title);
		toggleSlideStyles();
	} else {
		endSlideShow();
	}
	return ;
	
}

function endSlideShow(){
	//Set aside show so it can be resumed later
	var showHolder = document.getElementById('slideShowWrapper');
	showHolder.style.display = 'none';
	document.getElementById('contentWrapper').parentNode.appendChild(showHolder);
	document.oncontextmenu = enableFunction;
	if(autoAdvance) clearInterval(autoAdvance);
        if(slideClock) clearInterval(slideClock);
	story.refreshTiddler(title,null,true);
	story.closeAllTiddlers();
        story.displayTiddlers(null,openTiddlers,DEFAULT_VIEW_TEMPLATE);
	document.onmouseup = function(){};
	toggleSlideStyles();
}

function isInteger(s){
	var i;
	for (i = 0; i < s.length; i++){
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
}

function jumpInputToSlide(e){
	if (!e) {
		e = window.event;
		e.which = e.keyCode;
	}
        if(e.which==13){
		var jumpInput= document.getElementById("jumpInput").value;
		if(isInteger(jumpInput)){
			var step=jumpInput-document.getElementById('slideContainer').getAttribute('currentslide')-1;
			if (GoToSlide(step)){
				showHideTOC('none');	
			}
		}
	}
	return;
}

//Used to shorten the TOC fields
function abbreviateLabel(label){
//    if (label == null) label = "A Slide" //This is just a place holder fix
    var maxTOCLength = config.macros.slideShow.maxTOCLength;
    if(label.length>maxTOCLength) {
       var temp = new Array();
       temp = label.split(' ');
       label = temp[0];
       for(var j=1; j<temp.length; j++){
            if((label.length+temp[j].length)<=maxTOCLength){
               label += " " + temp[j];
            } else {
               label += " ...";
               break;
            }
       }
    }
    return label;
}

createSlides = function(newParams){
	var lingo = config.views.wikified.slideShow;

	//Remove dblClick on edit function
	var theTiddler = document.getElementById("tiddler"+title);
	theTiddler.ondblclick = function() {};

	// Grab the 'viewer' element and give it a signature so the show can be resumed if stopped
	var tiddlerElements = theTiddler.childNodes;
	var viewer;
	for (var i = 0; i < tiddlerElements.length; i++){
		if (tiddlerElements[i].className == "viewer") viewer = tiddlerElements[i];
	}
	viewer.id = 'slideShowWrapper';
	viewer.setAttribute("showSignature",makeSignature(title,newParams));

	//Hide the text that comes before the first H1 element (I think I may put this into a cover page type thing)
	while(viewer.childNodes.length > 0 && viewer.firstChild.nodeName.toUpperCase() != "H1") {
		viewer.removeChild(viewer.firstChild);
	}
	
	//Cycle through the content an each time you hit an H1 begin a new slide div
	var slideNumber = 0;
	var slideHolder = document.createElement('DIV');
	slideHolder.id = "slideContainer";
	
	while(viewer.childNodes.length > 0){
		//Create a new slide a append it to the slide holder
		if (viewer.firstChild.nodeName == "H1"){
			slideNumber++;
			var slide = document.createElement('DIV');
			slide.id = "slideNumber"+slideNumber;
			slide.className = "slide";
			if (slideNumber > 1) {
				slideHolder.setAttribute('currentslide',0);
				slide.style.display='none';
			} else {
				slide.style.display='block';
			}
			slideHolder.appendChild(slide);	
		}

		//Grab the first thing in the viewer and check to see if its an H1, if so put it in a slide, it will shift everything else forward
		slide.appendChild(viewer.firstChild);

if(viewer.childNodes.length > 0 && viewer.firstChild.className=="slideShowComment") {
				viewer.removeChild(viewer.firstChild);
			}

		//If you hit a horizontal rule (HR) remove the remaining elements until you hit an H1
		if(viewer.childNodes.length > 0 && viewer.firstChild.nodeName=="HR") {
			while(viewer.childNodes.length > 0 && viewer.firstChild.nodeName != "H1") {
				viewer.removeChild(viewer.firstChild);
			}
		}
	}
	
	//Stick the slides back into the viewer
	viewer.appendChild(slideHolder);

	
	//Create the navigation bar
	var pagefooter = createTiddlyElement(viewer,"DIV","pageFooter","pageFooterOff");
	var navigator = createTiddlyElement(pagefooter,"SPAN","navigator");

	//Make it so that when the footer is hovered over the class will change to make it visible
	pagefooter.onmouseover = function () {pagefooter.className = "pageFooterOn"};
	pagefooter.onmouseout = function () {pagefooter.className = "pageFooterOff"};

	//Create the control button for the navigation 
	var onClickQuit = function(){endSlideShow();};
	createTiddlyButton(navigator,lingo.quit.text,lingo.quit.tooltip,onClickQuit);
	createTiddlyButton(navigator,lingo.firstSlide.text,lingo.firstSlide.tooltip,first_slide);
	createTiddlyButton(navigator,lingo.previousSlide.text,lingo.previousSlide.tooltip,previous_slide);
	createTiddlyButton(navigator,lingo.nextSlide.text,lingo.nextSlide.tooltip,next_slide);
	createTiddlyButton(navigator,lingo.lastSlide.text,lingo.lastSlide.tooltip,last_slide); 

        var clock = createTiddlyElement(navigator,"SPAN","slideClock","slideClock","");
        clock.onclick = resetClock;

	var indexNumbers = createTiddlyElement(pagefooter,"SPAN","indexNumbers","indexNumbers","1/"+slideNumber)
	indexNumbers.onclick = showHideTOC;

	var toc = createTiddlyElement(pagefooter,"UL","toc");

	
	for (var i=0;i<slideHolder.childNodes.length;i++) {
		//Loop through each slide and check the header's content
		var tocLabel = null;

		if(slideHolder.childNodes[i].firstChild.hasChildNodes()){
                        var htstring = slideHolder.childNodes[i].firstChild.innerHTML;
                        var stripped = htstring.replace(/(<([^>]+)>)/ig,""); 
			tocLabel = abbreviateLabel(stripped);
		} else if (newParams['tocLabel'] != null){
                        j=i+1;
			tocLabel = eval(newParams['tocLabel'])+" "+j;
		}
		
		//If the slide doesn't have a title (explicit or generated) don't include it in the table of contents
		if (tocLabel != null){
			var tocItem = createTiddlyElement(toc,"LI",null,"tocLevel1");
			var tocLink = createTiddlyElement(tocItem,"A",null,"tocItem",tocLabel);
			tocLink.setAttribute("slideNumber",i);
			tocLink.onclick=tocShowSlide;	
		}
		

		for (var j=1;j<slideHolder.childNodes[i].childNodes.length;j++) {
			var node = slideHolder.childNodes[i].childNodes[j];
			if(node.nodeName=="H2" || node.nodeName=="H3" || node.nodeName=="H4") {
                                var htstring = node.innerHTML;
                                var stripped = htstring.replace(/(<([^>]+)>)/ig,"");
				tocLabel = abbreviateLabel(stripped);
				switch (node.nodeName) {
					case "H2":
						var tocItem = createTiddlyElement(toc,"LI",null,"tocLevel2");
						break;
					case "H3":
						var tocItem = createTiddlyElement(toc,"LI",null,"tocLevel3");
						break;
					case "H4":
						var tocItem = createTiddlyElement(toc,"LI",null,"tocLevel4");
				}
			var tocLink = createTiddlyElement(tocItem,"A",null,"tocItem",tocLabel);
			tocLink.setAttribute("slideNumber",i);
			tocLink.onclick=tocShowSlide;
			}
		}
	}
	

	//Input box to jump to s specific slide
	var tocItem = createTiddlyElement(toc,"LI",null,"tocJumpItem",config.macros.slideShow.messages.gotoLabel);
	var tocJumpInput = createTiddlyElement(tocItem,"INPUT","jumpInput");
	tocJumpInput.type="text";
	tocJumpInput.onkeyup=jumpInputToSlide;
}

var next_slide= function(e){GoToSlide(1);}
var first_slide= function(e){GoToSlide("f");}
var previous_slide= function(e){GoToSlide(-1);}
var last_slide= function(e){GoToSlide("l");}

function toggleSlideStyles(){
 var contentWrapper = document.getElementById('contentWrapper');
 if (contentWrapper.className == "slideShowMode"){
   contentWrapper.className = "";
   if(slideShowStyleSheet) changeStyleSheet();
 } else{
   contentWrapper.className = "slideShowMode";
   if(slideShowStyleSheet) changeStyleSheet(slideShowStyleSheet);
 }
}

setStylesheet("/***\n!Slide Mode Styles\n***/\n/*{{{*/\n#contentWrapper.slideShowMode #slideContainer{\n display: block;\n}\n\n#jump{\n text-align: right;\n}\n\n.pageFooterOff #navigator{\n visibility: hidden;\n}\n\n.pageFooterOn #navigator{\n visibility: visible;\n}\n\n#contentWrapper.slideShowMode #slideClock{\n cursor: pointer; margin: 0 5px 0 5px; border: 1px solid #db4\n}\n\n#contentWrapper.slideShowMode,\n #contentWrapper.slideShowMode #displayArea{\n width: 100%;\n font-size: 1.5em;\n margin: 0;\n padding: 0;\n}\n\n#slideContainer{\n display: none;\n}\n\n#contentWrapper.slideShowMode #sidebar,\n#contentWrapper.slideShowMode #mainMenu,\n#contentWrapper.slideShowMode .header,\n#contentWrapper.slideShowMode #displayArea .toolbar,\n#contentWrapper.slideShowMode #displayArea .footer,\n#contentWrapper.slideShowMode #displayArea .subtitle,\n#contentWrapper.slideShowMode #displayArea .tagged,\n#contentWrapper.slideShowMode #displayArea .tagging\n{\n display:none;\n}\n\n.indexNumbers{\n cursor: pointer;\n}\n\n#navigator{\n visibility: hidden;\n bottom: 0;\n}\n\n#toc{\n display: none;\n position: absolute;\n font-size: .75em;\n bottom: 2em;\n right: 0;\n background: #fff;\n border: 1px solid #000;\n text-align: left;\n}\n\nul#toc, #toc li{\n margin: 0;\n padding: 0;\n list-style: none;\n line-height: 1em;\n}\n\n.tocJumpItem{\n margin-right: 2em;\n}\n\n.tocJumpItem input{\nmargin-right: 1em;\n border: 0;\n}\n\n#toc a,\n#toc a.button{\n display: block;\n padding: .1em;\n}\n\n#toc .tocLevel1{\nfont-size: .8em;\n}\n\n#toc .tocLevel2{\n margin-left: 1em;\n font-size: .75em;\n}\n\n#toc .tocLevel3{\n margin-left: 2em;\nfont-size: .75em;\n}\n\n#toc .tocLevel4{\n margin-left: 3em;\nfont-size: .65em;\n}\n\n#toc a{\n cursor: pointer;\n}\n\nh1{\n min-height: 1em;\n}\n\n.slide h1{\n min-height: 0;\n}\n\n/* The '>' selector is ignored by IE6 and earlier so the proper rules are given  */\n#pageFooter{\n position: fixed;\n bottom: 2px;\n right: 2px;\n width: 100%;\n text-align: right;\n}\n\n/* This is a hack to trick IE6 and earlier to put the navbar on the bottom of the page  */\n* html #pageFooter {\n	position: absolute;\n	width: 100%;\n	text-align: right;\n	right: auto; bottom: auto;\n	left: expression( ( -20 - pageFooter.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );\n	top: expression( ( -10 - pageFooter.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );\n}\n\n\n\n/*}}}*/","slideShowStyles");
//}}}
Clique aquest botó per començar:<<slideShow ''p">>
!PresentacioPlugin
Adaptació de [[SlideShowPlugin|http://www.math.ist.utl.pt/~psoares/addons.html#SlideShowPlugin]] de Paulo Soares.
* Això és un subtítol
** Això és un subtítol de segon nivell
!!Navegació de la presentació
# Cliqueu a la diapositiva per passar a la següent (amb el botó esquerre).
# Cliqueu a la diapositiva amb el botó dret del ratolí per passar a la anterior.

Toqueu la tecla ''Esc'' per acabar la presentació
----
Els comentaris es sitúen darrera una línia i no surten a la presentació
!Segona diapositiva

Passeu el ratolí per la part inferior dreta, per veure els controls de diapositives.
Toqueu la tecla ''Esc'' per tornar.
!Instal·lació
Per instal·lar aquest connector, copieu el contingut de PresentacioPlugin al vostre TiddlyWiki i etiqueteu-lo amb 'systemConfig'.
!Com crear les diapositives
* Sortiu de la presentació i feu ''mostra/edita'' per veure el text  d'aquesta presentació que podeu fer servir d'exemple.
La presentació ocupa un sol tiddler.
Passeu el ratolí per la part inferior dreta, per veure els controls de diapositives.
Toqueu la tecla ''Esc'' per tornar.
!Estil de les diapositives

Podeu personalitzar la presentació creant un full de stil (StyleSheet) i afegint-lo com a paràmetre (veieu PresentacioPlugin).

Passeu el ratolí per la part inferior dreta, per veure els controls de diapositives.
Toqueu la tecla ''Esc'' per tornar.
!Fi
Passeu el ratolí per la part inferior dreta, per veure els controls de diapositives.
Toqueu la tecla ''Esc'' per tornar.
per a TiddlyWiki, bloc web personal no lineal, reutilitzable
PresentacioPlugin