Home Download News FAQ / Knowledge Base Screenshots Documentation Support
philosophical imaginary
Table of Contents

Customizing WebCit

Look & Feel

The default WebCit installation will create an empty directory called static.local. read more on Directories .

You may place a file called webcit.css into this directory. If its present, its referenced after the default stylesheet. If you know CSS and wish to customize your WebCit installation, any styles you declare in static.local/webcit.css will override the styles found in static/webcit.css.

You may also place other files, such as images, in static.local for further customization.

Your customizations will not be overwritten later upgrades.


To ease the datamodel and deeper customizations possible then via CSS, WebCit younger than 7.50 has a Templating engine allowing to alter look & feel or to create whole new workflows and presentation layers with webcit without having to modify C-Code. The templating prints the Citadel generated data into html files (json or latex notation, you name it…) so you can modify the way Webcit looks and works.

To ease development webcit supports the Firebug Wildfire extension.

Wording / Translating

technical details

WebCit utilizes GNU Gettext to provide localization. As WebCit is threadded, you need threadsafe locale support if you want to provide per user/login locale support. They 're available in the GNU libc used in usual Linux Distributions, and Apples MacOS X. *BSD doesn't; if you need it, report a bug to them. You can however choose one locale every user will see.

Howto participate

Gettext is also the right way to change some strings, if you don't like ours.

If you want to create a translation, you should log into Uncensored! and ask if anybody already started this language. launchpad is used to guide the actual process of translating citadel.

Using Launchpad

At first you need to create a launchpad account, and sign in. Then head over to the translation page of citadel project. Maybe you also want to join the team.

External Translation tools

These external tools can be used to process the po-file downloaded from launchpad; it might be better if you're disconnected from the net. Note that Launchpads translator has the neat feature of sugesting translations from other projects with similar strings.

Hints about some strings

… before you ask… RSVP aka Répondez s'il-vous-plaît Is the term that the recipient of an ical-invitation should please answer this request.

Fuzzy translations

You need to watch out for fuzzy translations, as they're guessed by gettext and need to be reviewed. They also appear if the original string was changed (like formats added).

The fuzzy flag needs to be removed afterwards.

#: c-file the string is kept in
#: fuzzy if gettext isn't shure what to do; remove this
msgid "The original Message Text"
msgstr "Your translation in some other or the same ;-) language"

test-driving your translation

Its always a good idea to test your translation so you can see how webcit combines some of your words and correct possible grammer errors; The calendaring section (and the editor) most probably is the most important section to inspect.

Using jshint for javascript syntax checking

Most of you know, that javascript is very forgiving about syntax errors; This may speed up development, but comes back on you later on if you run on a less forgiving browser. Here comes http://jshint.com to the rescue. It proof-reads the js files, and gives you warnings about what should be proofread. Since jshint is written in javascript itself, one needs an environment to run it in. We use arangoDBs arangosh (see the client packages - they include jshint already) for that:

dev@box:~/src/citadel/webcit$ arangosh --jslint static/wclib.js
2015-02-01T12:26:06Z [28541] ERROR jslint: static/wclib.js:31, 38 : Missing semicolon.
Copyright © 1987-2020 Uncensored Communications Group. All rights reserved.     Login (site admin)