summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorKris Maglione <kris@vimperator.org>2009-10-24 16:17:33 -0400
committerKris Maglione <kris@vimperator.org>2009-10-24 16:17:33 -0400
commit8b222085ec42fbebf8ac21ffbe23548ee7ecd37d (patch)
tree7e6cae2966fe0c113224ee21a3b5bb9c166430f7 /common
parent4c13eb0798704c01176ea37a2eeb6b9ec4c8f8cd (diff)
downloadpentadactyl-8b222085ec42fbebf8ac21ffbe23548ee7ecd37d.tar.gz
Add machinery to splice in app-specific help entries.
--HG-- branch : xslt rename : vimperator/locale/en-US/all.xml => common/locale/en-US/all.xml rename : vimperator/locale/en-US/autocommands.xml => common/locale/en-US/autocommands.xml rename : vimperator/locale/en-US/browsing.xml => common/locale/en-US/browsing.xml rename : vimperator/locale/en-US/buffer.xml => common/locale/en-US/buffer.xml rename : vimperator/locale/en-US/cmdline.xml => common/locale/en-US/cmdline.xml rename : vimperator/locale/en-US/developer.xml => common/locale/en-US/developer.xml rename : vimperator/locale/en-US/eval.xml => common/locale/en-US/eval.xml rename : vimperator/locale/en-US/gui.xml => common/locale/en-US/gui.xml rename : vimperator/locale/en-US/hints.xml => common/locale/en-US/hints.xml rename : vimperator/locale/en-US/index.xml => common/locale/en-US/index.xml rename : vimperator/locale/en-US/insert.xml => common/locale/en-US/insert.xml rename : vimperator/locale/en-US/intro.xml => common/locale/en-US/intro.xml rename : vimperator/locale/en-US/map.xml => common/locale/en-US/map.xml rename : vimperator/locale/en-US/marks.xml => common/locale/en-US/marks.xml rename : vimperator/locale/en-US/message.xml => common/locale/en-US/message.xml rename : vimperator/locale/en-US/options.xml => common/locale/en-US/options.xml rename : vimperator/locale/en-US/pattern.xml => common/locale/en-US/pattern.xml rename : vimperator/locale/en-US/print.xml => common/locale/en-US/print.xml rename : vimperator/locale/en-US/repeat.xml => common/locale/en-US/repeat.xml rename : vimperator/locale/en-US/starting.xml => common/locale/en-US/starting.xml rename : vimperator/locale/en-US/styling.xml => common/locale/en-US/styling.xml rename : vimperator/locale/en-US/tabs.xml => common/locale/en-US/tabs.xml rename : vimperator/locale/en-US/tutorial.xml => common/locale/en-US/tutorial.xml rename : vimperator/locale/en-US/various.xml => common/locale/en-US/various.xml
Diffstat (limited to 'common')
-rw-r--r--common/content/help.xsl32
-rw-r--r--common/locale/en-US/all.xml109
-rw-r--r--common/locale/en-US/autocommands.xml132
-rw-r--r--common/locale/en-US/browsing.xml546
-rw-r--r--common/locale/en-US/buffer.xml544
-rw-r--r--common/locale/en-US/cmdline.xml119
-rw-r--r--common/locale/en-US/developer.xml72
-rw-r--r--common/locale/en-US/eval.xml127
-rw-r--r--common/locale/en-US/gui.xml278
-rw-r--r--common/locale/en-US/hints.xml109
-rw-r--r--common/locale/en-US/index.xml447
-rw-r--r--common/locale/en-US/insert.xml50
-rw-r--r--common/locale/en-US/intro.xml211
-rw-r--r--common/locale/en-US/map.xml605
-rw-r--r--common/locale/en-US/marks.xml353
-rw-r--r--common/locale/en-US/message.xml82
-rw-r--r--common/locale/en-US/options.xml1351
-rw-r--r--common/locale/en-US/pattern.xml103
-rw-r--r--common/locale/en-US/print.xml52
-rw-r--r--common/locale/en-US/repeat.xml225
-rw-r--r--common/locale/en-US/starting.xml159
-rw-r--r--common/locale/en-US/styling.xml208
-rw-r--r--common/locale/en-US/tabs.xml385
-rw-r--r--common/locale/en-US/tutorial.xml369
-rw-r--r--common/locale/en-US/various.xml237
25 files changed, 6905 insertions, 0 deletions
diff --git a/common/content/help.xsl b/common/content/help.xsl
index b40d1a24..7736d18c 100644
--- a/common/content/help.xsl
+++ b/common/content/help.xsl
@@ -1,3 +1,5 @@
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
<xsl:stylesheet version="1.0"
xmlns="http://vimperator.org/namespaces/liberator"
xmlns:liberator="http://vimperator.org/namespaces/liberator"
@@ -8,6 +10,9 @@
<xsl:output method="xml"/>
+ <xsl:variable name="local" select="concat('chrome://&liberator.name;/locale/', /liberator:document/@name, '.xml')"/>
+ <xsl:variable name="localdoc" select="document($local)/liberator:document"/>
+
<xsl:template match="liberator:document">
<html:html liberator:highlight="Help">
<html:head>
@@ -137,6 +142,33 @@
</xsl:call-template>
</xsl:template>
+ <xsl:template name="splice-locals">
+ <xsl:param name="elem"/>
+ <xsl:param name="tag"/>
+ <xsl:for-each select="$localdoc/*[@insertbefore=$tag]">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ <xsl:for-each select="$elem">
+ <xsl:copy><xsl:apply-templates select="node()"/></xsl:copy>
+ </xsl:for-each>
+ <xsl:for-each select="$localdoc/*[@insertafter=$tag]">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="liberator:document/*[liberator:tags]">
+ <xsl:call-template name="splice-locals">
+ <xsl:with-param name="tag" select="substring-before(concat(liberator:tags, ' '), ' ')"/>
+ <xsl:with-param name="elem" select="self::node()"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template match="liberator:*[@tag]">
+ <xsl:call-template name="splice-locals">
+ <xsl:with-param name="tag" select="substring-before(concat(@tag, ' '), ' ')"/>
+ <xsl:with-param name="elem" select="self::node()"/>
+ </xsl:call-template>
+ </xsl:template>
+
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
diff --git a/common/locale/en-US/all.xml b/common/locale/en-US/all.xml
new file mode 100644
index 00000000..465a09a5
--- /dev/null
+++ b/common/locale/en-US/all.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="all"
+ title="&liberator.appname; All"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<tags>all</tags>
+
+<!-- TODO: this should be generated by the Makefile in the same order as
+ config.helpFiles -->
+
+<tags>intro.html</tags>
+
+<include href="intro"/>
+
+<tags>tutorial.html</tags>
+
+<include href="tutorial"/>
+
+<tags>starting.html</tags>
+
+<include href="starting"/>
+
+<tags>browsing.html</tags>
+
+<include href="browsing"/>
+
+<tags>buffer.html</tags>
+
+<include href="buffer"/>
+
+<tags>cmdline.html</tags>
+
+<include href="cmdline"/>
+
+<tags>insert.html</tags>
+
+<include href="insert"/>
+
+<tags>options.html</tags>
+
+<include href="options"/>
+
+<tags>pattern.html</tags>
+
+<include href="pattern"/>
+
+<tags>tabs.html</tags>
+
+<include href="tabs"/>
+
+<tags>hints.html</tags>
+
+<include href="hints"/>
+
+<tags>map.html</tags>
+
+<include href="map"/>
+
+<tags>eval.html</tags>
+
+<include href="eval"/>
+
+<tags>marks.html</tags>
+
+<include href="marks"/>
+
+<tags>repeat.html</tags>
+
+<include href="repeat"/>
+
+<tags>autocommands.html</tags>
+
+<include href="autocommands"/>
+
+<tags>print.html</tags>
+
+<include href="print"/>
+
+<tags>gui.html</tags>
+
+<include href="gui"/>
+
+<tags>styling.html</tags>
+
+<include href="styling"/>
+
+<tags>message.html</tags>
+
+<include href="message"/>
+
+<tags>developer.html</tags>
+
+<include href="developer"/>
+
+<tags>various.html</tags>
+
+<include href="various"/>
+
+<tags>index.html</tags>
+
+<include href="index"/>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/autocommands.xml b/common/locale/en-US/autocommands.xml
new file mode 100644
index 00000000..2524c0b1
--- /dev/null
+++ b/common/locale/en-US/autocommands.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="autocommands"
+ title="&liberator.appname; Autocommands"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h2 tag="autocommands">Automatic commands</h2>
+
+<p>
+ Autocommands are a way to automatically execute code when
+ certain events happen.
+</p>
+
+<item>
+ <tags>:au :autocmd</tags>
+ <spec>:au[tocmd]</spec>
+ <description>
+ <p>Execute commands automatically on events.</p>
+
+ <p><ex>:au[tocmd]</ex> <a>event</a> <a>pat</a> <a>cmd</a></p>
+
+ <p>
+ If the <em>-javascript</em> (short name <em>-js</em>)
+ option is specified, <a>cmd</a> is executed as JavaScript
+ code, with any supplied arguments available as
+ variables.
+ </p>
+
+ <p>Add <a>cmd</a> to the list of commands Vimperator will execute on <a>event</a> for a URL matching <a>pat</a>:</p>
+
+ <ul>
+ <li><ex>:autocmd[!]</ex> <a>events</a> <a>pat</a>: list/remove autocommands filtered by <a>events</a> and <a>pat</a></li>
+ <li><ex>:autocmd[!]</ex> <a>events</a>: list/remove autocommands matching <a>events</a></li>
+ <li><ex>:autocmd[!]</ex> <a>pat</a>: list/remove autocommands matching <a>pat</a></li>
+ <li><ex>:autocmd[!]</ex>: list/remove all autocommands</li>
+ </ul>
+
+ <p>Available <a>events</a>:</p>
+
+ <dl>
+ <dt>BookmarkAdd</dt> <dd>Triggered after a page is bookmarked</dd>
+ <dt>ColorScheme</dt> <dd>Triggered after a color scheme has been loaded</dd>
+ <dt>DOMLoad</dt> <dd>Triggered when a page's DOM content has fully loaded</dd>
+ <dt>DownloadPost</dt> <dd>Triggered when a download has completed</dd>
+ <dt>Fullscreen</dt> <dd>Triggered when the browser's fullscreen state changes</dd>
+ <dt>LocationChange</dt> <dd>Triggered when changing tabs or when navigating to a new location</dd>
+ <dt>PageLoadPre</dt> <dd>Triggered after a page load is initiated</dd>
+ <dt>PageLoad</dt> <dd>Triggered when a page gets (re)loaded/opened</dd>
+ <dt>PrivateMode</dt> <dd>Triggered when private mode is activated or deactivated</dd>
+ <dt>Sanitize</dt> <dd>Triggered when privata data are sanitized</dd>
+ <dt>ShellCmdPost</dt> <dd>Triggered after executing a shell command with <ex>:!</ex><a>cmd</a></dd>
+ <dt>VimperatorEnter</dt> <dd>Triggered after Firefox starts</dd>
+ <dt>VimperatorLeavePre</dt><dd>Triggered before exiting Firefox, just before destroying each module</dd>
+ <dt>VimperatorLeave</dt> <dd>Triggered before exiting Firefox</dd>
+ </dl>
+
+ <p><a>pat</a> is a regular expression, use .* if you want to match all URLs.</p>
+
+ <note>This differs from Vim which uses a glob rather than a regex for <a>pat</a>.</note>
+
+ <p>The following keywords are available where relevant:</p>
+
+ <dl>
+ <dt>&lt;url></dt> <dd>The URL against which the event was selected.</dd>
+ <dt>&lt;title></dt> <dd>The page, bookmark or download title.</dd>
+ <dt>&lt;doc></dt> <dd>The document for which the event occurred. Only for <em>DOMLoad</em>, <em>PageLoad</em> and <em>PageLoadPre</em>.</dd>
+ <dt>&lt;tab></dt> <dd>The tab in which the event occurred. Only for <em>DOMLoad</em>, <em>PageLoad</em> and <em>PageLoadPre</em>.</dd>
+ <dt>&lt;tags></dt> <dd>The tags applied to &lt;url>. Only for <em>BookmarkAdd</em>.</dd>
+ <dt>&lt;keyword></dt> <dd>The keywords applied to the bookmark. Only for <em>BookmarkAdd</em>.</dd>
+ <dt>&lt;icon></dt> <dd>The icon associated with &lt;url>. Only for <em>BookmarkAdd</em>.</dd>
+ <dt>&lt;size></dt> <dd>The size of a downloaded file. Only for <em>DownloadPost</em>.</dd>
+ <dt>&lt;file></dt> <dd>The target destination of a download. Only for <em>DownloadPost</em>.</dd>
+ <dt>&lt;state></dt> <dd>The new state. Only for "Fullscreen" and <em>PrivateMode</em>.</dd>
+ <dt>&lt;name></dt> <dd>The name of the item. Only for <em>ColorScheme</em> and <em>Sanitize</em>.</dd>
+ </dl>
+ </description>
+</item>
+
+<item>
+ <tags>:doautoa :doautoall</tags>
+ <spec>:doautoa[ll] <a>event</a> <oa>url</oa></spec>
+ <description>
+ <p>
+ Apply the autocommands matching the specified URL to all buffers. If no
+ <oa>url</oa> is specified use the current URL.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:do :doautocmd</tags>
+ <spec>:do[autocmd] <a>event</a> <oa>url</oa></spec>
+ <description>
+ <p>
+ Apply the autocommands matching the specified URL to the current buffer. If no
+ <oa>url</oa> is specified use the current URL.
+ </p>
+ </description>
+</item>
+<h2 tag="autocmd-examples">Examples</h2>
+
+<p>Enable <em>passthrough</em> mode on all Google sites:</p>
+
+<p>
+ <ex>:autocmd LocationChange .* js modes.passAllKeys = /google\.com/.test(buffer.URL)</ex>
+</p>
+
+<p>Enable <em>passthrough</em> mode on *some* Google sites:</p>
+
+<p>
+ <ex>:autocmd LocationChange .* js modes.passAllKeys = /(www|mail)\.google\.com/.test(buffer.URL)</ex>
+</p>
+
+<p>
+ Set the filetype to mail when editing email at Gmail:
+</p>
+
+<p>
+ <ex>:autocmd LocationChange .* :set editor=<str>gvim -f</str></ex>
+</p>
+
+<p>
+ <ex>:autocmd LocationChange mail\\.google\\.com :set editor=<str>gvim -f -c 'set ft=mail'</str></ex>
+</p>
+
+</document>
+
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/browsing.xml b/common/locale/en-US/browsing.xml
new file mode 100644
index 00000000..fe4b2d69
--- /dev/null
+++ b/common/locale/en-US/browsing.xml
@@ -0,0 +1,546 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="browsing"
+ title="&liberator.appname; Browsing"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h2 tag="surfing browsing">Browsing</h2>
+
+Vimperator overrides nearly all Firefox keys in order to make browsing more
+pleasant for Vim users. On the rare occasions when you want to pass a keystroke
+to Firefox, or to the web page, and have it retain its original meaning you
+have 2 possibilities:
+
+<item>
+ <tags><![CDATA[pass-through <C-z> CTRL-Z]]></tags>
+ <spec>CTRL-Z</spec>
+ <description>
+ <p>
+ Disable all Vimperator keys except <k name="Esc"/> and pass them to the next event
+ handler. This is especially useful if JavaScript controlled forms (e.g., the
+ RichEdit form fields of Gmail) don't work anymore. To exit this mode, press
+ <k name="Esc"/>. If you also need to pass <k name="Esc"/> in this mode to the web page,
+ prepend it with <k name="C-v"/>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[send-key <C-v> CTRL-V]]></tags>
+ <spec>CTRL-V</spec>
+ <description>
+ <p>
+ If you only need to pass a single key to a JavaScript form field or another
+ extension prefix the key with <k name="C-v"/>. Also works to unshadow Firefox
+ shortcuts like <k name="C-o"/> which are otherwise hidden in Vimperator. When
+ Vimperator mode is temporarily disabled with <k name="C-z"/>, <k name="C-v"/> will pass
+ the next key to Vimperator instead of the web page.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="opening">Opening web pages</h2>
+
+<item>
+ <tags>o :o :open</tags>
+ <spec>:o<oa>pen</oa> <oa>arg1</oa>, <oa>arg2</oa>, …</spec>
+ <spec>o</spec>
+ <description>
+ <p>
+ Open one or more URLs in the current tab.
+ Multiple URLs can be separated with <o>urlseparator</o> (default: ", " Note that the
+ space after the comma is required.)
+ The first URL is opened in the current tab, and all other URLs are
+ opened in new tabs.
+ Each token is analyzed and in this order:
+ </p>
+
+ <ol>
+ <li>
+ Opened as a local file if it is an existing relative or absolute filename.
+ <ul>
+ <li><ex>:open /etc/fstab</ex> shows the file system table.</li>
+ <li><ex>:open ../other/foo.html</ex> in your home directory opens <tt>/home/other/foo.html</tt></li>
+ </ul>
+ </li>
+ <li>
+ Opened with the specified search engine if the
+ token looks like a search string and the first word
+ is the name of a search engine (
+ <ex>:open wikipedia linus torvalds</ex> opens the Wikipedia entry for
+ linus torvalds). The short name of a search engine
+ is automatically guessed from its name. If you want
+ to set a custom name, you can change it with
+ <ex>:dialog searchengines</ex>.
+ </li>
+ <li>
+ Opened with the default search engine or keyword
+ (specified with the <o>defsearch</o> option) if the first
+ word is no search engine (<ex>:open linus torvalds</ex>
+ opens a Google search for linus torvalds).
+ </li>
+ <li>
+ Passed directly to Firefox in all other cases
+ (<ex>:open www.osnews.com, www.slashdot.org</ex>
+ opens OSNews in the current, and Slashdot in a new
+ background tab).
+ </li>
+ </ol>
+
+ <p>
+ You can use <ex>:open -tags linux torvalds<k name="Tab"/></ex> to complete bookmarks with
+ tag "linux" and which contain "torvalds". Note that -tags support is only
+ available for tab completion, not for the actual command.
+ The items which are completed on <k name="Tab"/> are specified in the <o>complete</o>
+ option.
+ </p>
+
+ <p>
+ Sometimes, you might not be aware if you already have a certain page loaded in
+ some background tab or not. Therefore you can just type <ex>:open facebook<k name="Tab"/></ex>
+ and switch to it if Facebook is already open, or otherwise open it (if you
+ have Facebook in your bookmarks or history cache). This behavior can be turned
+ off by removing "t" from your <o>complete</o> option.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>t :t :tabopen :tabnew :tabe :tabedit</tags>
+ <spec>:tabopen<oa>!</oa> <oa>arg1</oa>, <oa>arg2</oa>, …</spec>
+ <spec>t</spec>
+ <description>
+ <p>
+ Just like <ex>:open</ex> but also uses a new tab for the first URL. When
+ used with <oa>!</oa>, the <em>tabopen</em> value of the <o>activate</o> option is negated.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>T</tags>
+ <spec>T</spec>
+ <description>
+ <p>
+ Show a <ex>:tabopen</ex> prompt containing the current URL. Useful if you want to
+ go somewhere by editing the URL of the current page.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:tabdu :tabduplicate</tags>
+ <spec>:<oa>count</oa>tabdu<oa>plicate</oa><oa>!</oa></spec>
+ <description>
+ <p>
+ Duplicates current tab <oa>count</oa> times. Uses <em>tabopen</em> value of the <o>activate</o>
+ option to determine if the last cloned tab should be activated. When used with
+ <oa>!</oa>, <em>tabopen</em> value is negated.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>O</tags>
+ <spec>O</spec>
+ <description>
+ <p>
+ Show an <ex>:open</ex> prompt containing the current URL. Useful if you want to
+ go somewhere by editing the URL of the current page.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>w :winopen :wopen :winedit</tags>
+ <spec>:wino<oa>pen</oa><oa>!</oa> <oa>arg1</oa>, <oa>arg2</oa>, …</spec>
+ <spec>w</spec>
+ <description>
+ <p>Just like <ex>:tabopen</ex> but opens the resulting web page(s) in a new window.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>W</tags>
+ <spec>W</spec>
+ <description>
+ <p>
+ Open one or more URLs in a new window based on current location. Works like
+ <k>w</k> but preselects current URL in the <ex>:winopen</ex> query.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<MiddleMouse> p]]></tags>
+ <spec>p</spec>
+ <description>
+ <p>
+ Open (put) a URL based on the current clipboard contents in the current buffer.
+ You can also just select (for non-X11 users: copy) some non-URL text, and
+ search for it with the default search engine or keyword (specified by the
+ <o>defsearch</o> option) with <k>p</k>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>P</tags>
+ <spec>P</spec>
+ <description>
+ <p>
+ Open (put) a URL based on the current clipboard contents in a new buffer. Works
+ like <k>p</k> but opens a new tab.
+ </p>
+ <p>
+ Whether the new buffer is activated, depends on the <o>activate</o> option.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gP</tags>
+ <spec>gP</spec>
+ <description>
+ <p>
+ Open (put) a URL based on the current clipboard contents in a new buffer.
+ Works like <k>P</k> but inverts the <o>activate</o> option.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-x>]]></tags>
+ <spec><oa>count</oa>&lt;C-x></spec>
+ <description>
+ <p>
+ Decrements the last number in URL by 1, or by <oa>count</oa> if given. Negative
+ numbers are not supported, as this is not generally useful, so the number cannot
+ be decremented past 0.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-a>]]></tags>
+ <spec><oa>count</oa>&lt;C-a></spec>
+ <description>
+ <p>Increments the last number in URL by 1, or by <oa>count</oa> if given.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>~</tags>
+ <spec>~</spec>
+ <description>
+ <p>
+ Open home directory. You can also use the hints and have the probably fastest
+ file browser on earth. :)
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="navigating">Navigating</h2>
+
+<item>
+ <tags><![CDATA[H <C-o> CTRL-O :ba :back]]></tags>
+ <spec>:<oa>count</oa>ba<oa>ck</oa> <oa>url</oa></spec>
+ <spec>:ba<oa>ck</oa>!</spec>
+ <spec>CTRL-o</spec>
+ <description>
+ <p>
+ Go <oa>count</oa> pages back in the browser history. If <oa>url</oa> is specified go back to
+ the first matching URL. The special version <ex>:back!</ex> goes to the beginning
+ of the browser history.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[L <C-i> CTRL-i :fo :fw :forward]]></tags>
+ <spec>:<oa>count</oa>fo<oa>rward</oa> <oa>url</oa></spec>
+ <spec>:fo<oa>rward</oa>!</spec>
+ <spec>CTRL-i</spec>
+ <description>
+ <p>
+ Go <oa>count</oa> pages forward in the browser history. If <oa>url</oa> is specified go
+ forward to the first matching URL. The special version <ex>:forward!</ex> goes to
+ the end of the browser history.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:ju :jumps</tags>
+ <spec>:ju<oa>mps</oa></spec>
+ <description>
+ <p>List all jumps aka current tab's history aka session history.</p>
+
+ <p>
+ Current history position is marked with >, jump numbers are counters to be used
+ with <ex>:back</ex> (above zero record) or <ex>:forward</ex> (below zero record).
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gh</tags>
+ <spec>gh</spec>
+ <description>
+ <p>Go home. Opens the homepage in the current tab.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gH</tags>
+ <spec>gH</spec>
+ <description>
+ <p>
+ Go home in a new tab. Opens the homepage in a new tab. Whether the new tab is
+ activated or not depends on the <o>activate</o> option.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gu</tags>
+ <spec><oa>count</oa>gu</spec>
+ <description>
+ <p>Go to <oa>count</oa>th parent directory.</p>
+
+ <p>
+ <k>2gu</k> on
+ <tt>http://www.example.com/dir1/dir2/file.htm</tt> opens
+ <tt>http://www.example.com/dir1/</tt>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gU</tags>
+ <spec>gU</spec>
+ <description>
+ <p>Go to the root of the web site.</p>
+
+ <p>
+ <k>gU</k> on <tt>http://www.example.com/dir1/dir2/file.htm</tt> opens
+ <tt>http://www.example.com/</tt>.
+ When browsing a local directory, it goes to the root directory.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="reloading">Reloading</h2>
+
+<item>
+ <tags>r</tags>
+ <spec>r</spec>
+ <description>
+ <p>Force reloading of the current web page.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>R</tags>
+ <spec>R</spec>
+ <description>
+ <p>Force reloading of the current web page skipping the cache.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:re :reload</tags>
+ <spec>:re<oa>load</oa><oa>!</oa></spec>
+ <description>
+ <p>
+ Reload current web page. Forces reloading of the current page. If <oa>!</oa> is given,
+ skip the cache.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:reloada :reloadall</tags>
+ <spec>:reloada<oa>ll</oa><oa>!</oa></spec>
+ <description>
+ <p>Reload all pages. Forces reloading of all pages. If <oa>!</oa> is given, skip the cache.</p>
+ </description>
+</item>
+
+
+<h2 tag="stopping">Stopping</h2>
+
+<item>
+ <tags><![CDATA[<C-c>]]></tags>
+ <spec>&lt;C-c></spec>
+ <description>
+ <p>Stop loading the current web page.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:st :stop</tags>
+ <spec>:st<oa>op</oa></spec>
+ <description>
+ <p>Stop loading the current web page.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:stopa :stopall</tags>
+ <spec>:stopa<oa>ll</oa></spec>
+ <description>
+ <p>Stop loading all web pages.</p>
+ </description>
+</item>
+
+
+<h2 tag="writing save-file">Writing</h2>
+
+<item>
+ <tags>:w :write :sav :saveas</tags>
+ <spec>:sav<oa>eas</oa><oa>!</oa> <oa>file</oa></spec>
+ <description>
+ <p>
+ Save current web page to disk. If <oa>file</oa> is omitted, save to the page's
+ default filename. Existing documents will only be overwritten if <oa>!</oa> is given.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="quitting save-session">Quitting</h2>
+
+<item>
+ <tags>:q :quit</tags>
+ <spec>:q<oa>uit</oa></spec>
+ <description>
+ <p>
+ Quit current tab. If this is the last tab in the window, close the window. If
+ this was the last window, close Vimperator. When quitting Vimperator, the
+ session is not stored.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:qa :qall :quita :quitall</tags>
+ <spec>:quita<oa>ll</oa></spec>
+ <description>
+ <p>
+ Quit Vimperator. Quit Vimperator, no matter how many tabs/windows are open.
+ The session is not stored.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:wc :wclose :winc :winclose</tags>
+ <spec>:winc<oa>lose</oa></spec>
+ <description>
+ <p>Close window.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:winon :winonly</tags>
+ <spec>:winon<oa>ly</oa></spec>
+ <description>
+ <p>Close all other windows.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:xa :xall :wq :wqa :wqall</tags>
+ <spec>:wqa<oa>ll</oa></spec>
+ <spec>:xa<oa>ll</oa></spec>
+ <description>
+ <p>
+ Save the session and quit. Quit Vimperator, no matter how many tabs/windows
+ are open. The session is stored. <ex>:wq</ex> is different from Vim, as it
+ closes the window instead of just one tab by popular demand. Complain on the
+ mailing list if you want to change that.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>ZQ</tags>
+ <spec>ZQ</spec>
+ <description>
+ <p>Quit and don't save the session. Works like <ex>:qall</ex>.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>ZZ</tags>
+ <spec>ZZ</spec>
+ <description>
+ <p>
+ Quit and save the session. Quit Vimperator, no matter how many tabs/windows
+ are open. The session is stored. Works like <ex>:xall</ex>.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="current-directory">The current directory</h2>
+
+<item>
+ <tags>:chd :chdir :cd</tags>
+ <spec>:cd <oa>-|path</oa></spec>
+ <description>
+ <p>Change the current directory. <ex>:cd -</ex> changes to the last directory.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:pw :pwd</tags>
+ <spec>:pw<oa>d</oa></spec>
+ <description>
+ <p>Print the current directory name.</p>
+ </description>
+</item>
+
+
+</document>
+
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/buffer.xml b/common/locale/en-US/buffer.xml
new file mode 100644
index 00000000..9fc9b8e3
--- /dev/null
+++ b/common/locale/en-US/buffer.xml
@@ -0,0 +1,544 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="buffer"
+ title="&liberator.appname; Buffer"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h2 tag="buffer document">Buffer</h2>
+
+Vimperator holds exactly one buffer object for each tab. It is usually an
+(X)HTML document with advanced features.
+
+<h2 tag="buffer-information">Buffer information</h2>
+
+<item>
+ <tags><![CDATA[<C-g>]]></tags>
+ <spec>&lt;C-g></spec>
+ <description>
+ <p>
+ Print the current file name. Also shows some additional file information like
+ file size or the last modified date.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[g<C-g>]]></tags>
+ <spec>g&lt;C-g></spec>
+ <description>
+ <p>Print file information. Same as <ex>:pa<oa>geinfo</oa></ex>.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:pa :pageinfo</tags>
+ <spec>:pa<oa>geinfo</oa></spec>
+ <description>
+ <p>Show various page information. See <ex>:help <o>pageinfo</o></ex> for available options.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gf</tags>
+ <spec>gf</spec>
+ <description>
+ <p>
+ View source. Opens the source code of the current web site with the internal
+ editor in the current tab.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gF</tags>
+ <spec>gF</spec>
+ <description>
+ <p>
+ View source with an external editor. Opens the source code of the current web
+ site with the external editor specified by the <o>editor</o> option. For now the
+ external editor must be able to download and open files from a remote URL.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:vie :viewsource</tags>
+ <spec>:vie<oa>wsource</oa><oa>!</oa> <oa>url</oa></spec>
+ <description>
+ <p>
+ View source code of current document. If <oa>url</oa> is specified then view the
+ source of that document. When <oa>!</oa> is given, it is opened with the external
+ editor.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>|</tags>
+ <spec>|</spec>
+ <description>
+ <p>
+ Toggle between rendered and source view. Alternates the page in the current tab
+ between a normally rendered view and the internal editor source view.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="motion scrolling">Motion commands</h2>
+
+<item>
+ <tags>^ 0</tags>
+ <spec>0</spec>
+ <description>
+ <p>
+ Scroll to the absolute left of the document. Unlike in Vim, <k>0</k> and <k>^</k>
+ work exactly the same way.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>$</tags>
+ <spec>$</spec>
+ <description>
+ <p>Scroll to the absolute right of the document</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<Home> gg]]></tags>
+ <spec><oa>count</oa>gg</spec>
+ <description>
+ <p>
+ Go to the top of the document. When used with <oa>count</oa> like in <k>35gg</k>, it
+ scrolls to 35% of the document.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<End> G]]></tags>
+ <spec><oa>count</oa>G</spec>
+ <description>
+ <p>
+ Go to the end of the document. When used with <oa>count</oa> like in <k>35G</k>, it
+ scrolls to 35% of the document.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>N%</tags>
+ <spec><a>count</a>%</spec>
+ <description>
+ <p>Scroll to <a>count</a> percent of the document.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<Left> h]]></tags>
+ <spec><oa>count</oa>h</spec>
+ <description>
+ <p>
+ Scroll document to the left. If <oa>count</oa> is specified then move <oa>count</oa> times as
+ much to the left.
+ </p>
+ <p>
+ If the document cannot scroll more, a beep is emitted (unless <o>visualbell</o> is
+ set).
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-e> <Down> j]]></tags>
+ <spec><oa>count</oa>j</spec>
+ <description>
+ <p>
+ Scroll document down. If <oa>count</oa> is specified then move <oa>count</oa> times as much
+ down.
+ </p>
+ <p>
+ If the document cannot scroll more, a beep is emitted (unless <o>visualbell</o> is
+ set).
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-y> <Up> k]]></tags>
+ <spec><oa>count</oa>k</spec>
+ <description>
+ <p>
+ Scroll document up. If <oa>count</oa> is specified then move <oa>count</oa> times as much up.
+ </p>
+ <p>
+ If the document cannot scroll more, a beep is emitted (unless <o>visualbell</o> is
+ set).
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<Right> l]]></tags>
+ <spec><oa>count</oa>l</spec>
+ <description>
+ <p>
+ Scroll document to the right. If <oa>count</oa> is specified then move <oa>count</oa> times
+ as much to the right.
+ </p>
+ <p>
+ If the document cannot scroll more, a beep is emitted (unless <o>visualbell</o> is
+ set).
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-d>]]></tags>
+ <spec><oa>count</oa>&lt;C-d></spec>
+ <description>
+ <p>
+ Scroll window downwards in the buffer. The number of lines is set by the
+ <o>scroll</o> option which defaults to half a page. If <oa>count</oa> is given <o>scroll</o> is
+ first set to this value.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-u>]]></tags>
+ <spec><oa>count</oa>&lt;C-u></spec>
+ <description>
+ <p>
+ Scroll window upwards in the buffer. The number of lines is set by the
+ <o>scroll</o> option which defaults to half a page. If <oa>count</oa> is given <o>scroll</o> is
+ first set to this value.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<S-Space> <PageUp> <C-b>]]></tags>
+ <spec><oa>count</oa>&lt;C-b></spec>
+ <description>
+ <p>Scroll up a full page. Scroll window <oa>count</oa> pages Backwards (upwards) in the buffer.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<Space> <PageDown> <C-f>]]></tags>
+ <spec><oa>count</oa>&lt;C-f></spec>
+ <description>
+ <p>Scroll down a full page. Scroll window <oa>count</oa> pages Forwards (downwards) in the buffer.</p>
+ </description>
+</item>
+
+
+<h2 tag="jumping">Jumping to elements</h2>
+
+<item>
+ <tags><![CDATA[<Tab>]]></tags>
+ <spec>&lt;Tab></spec>
+ <description>
+ <p>Advance keyboard focus to the next element.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<S-Tab>]]></tags>
+ <spec>&lt;S-Tab></spec>
+ <description>
+ <p>Rewind keyboard focus to the previous element.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gi</tags>
+ <spec><oa>count</oa>gi</spec>
+ <description>
+ <p>
+ Focus last used input field. If there is no last input field, it focuses the
+ first input field. When used with <oa>count</oa> it directly jumps to the <oa>count</oa>th input
+ field.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>]f</tags>
+ <spec><oa>count</oa>]f</spec>
+ <description>
+ <p>
+ Focus next frame. Transfer keyboard focus to the <oa>count</oa>th next frame in
+ order. The newly focused frame is briefly colored red. Does not wrap.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>[f</tags>
+ <spec><oa>count</oa>[f</spec>
+ <description>
+ <p>
+ Focus previous frame. Transfer keyboard focus to the <oa>count</oa>th previous frame
+ in order. The newly focused frame is briefly colored red. Does not wrap.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>]]</tags>
+ <spec><oa>count</oa>]]</spec>
+ <description>
+ <p>
+ Follow the link labeled <str>next</str> or <str>></str>
+ if it exists. Useful when browsing forums or
+ documentation. Change <o>nextpattern</o> to modify its
+ behavior. It follows relations between files too.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>[[</tags>
+ <spec><oa>count</oa>[[</spec>
+ <description>
+ <p>
+ Follow the link labeled <str>prev</str>,
+ <str>previous</str> or <str>&lt;</str> if it exists. Useful
+ when browsing forums or documentation. Change
+ <o>previouspattern</o> to modify its behavior. It
+ follows relations between files too.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="zooming zoom">Zooming</h2>
+
+The zooming commands are dependent on two properties -- a zoom range and a
+series of levels within that range.
+
+The absolute value of the page zoom is limited to a value within the configured
+zoom range (default: 30%--300%). The zoom levels are used by
+<k>zi</k>/<k>zo</k>, and similar commands, to change the zoom value in steps. The
+default zoom levels are 30%, 50%, 67%, 80%, 90%, 100%, 110%, 120%, 133%, 150%,
+170%, 200%, 240%, 300%.
+
+The available zoom range can be changed by setting the
+<link topic="http://kb.mozillazine.org/Zoom.minPercent">'zoom.minPercent'</link> and
+<link topic="http://kb.mozillazine.org/Zoom.maxPercent">'zoom.maxPercent'</link> Firefox
+preferences. The zoom levels can be changed using the
+<link topic="http://kb.mozillazine.org/Toolkit.zoomManager.zoomValues">'toolkit.ZoomManager.zoomLevels'</link>
+preference.
+
+<note>
+ 'toolkit.ZoomManager.zoomLevels' is specified as a list of
+ values between 0 and 1, not as a percentage.
+</note>
+
+<item>
+ <tags>+ zi</tags>
+ <spec><oa>count</oa>zi</spec>
+ <description>
+ <p>Enlarge text zoom of current web page. Mnemonic: zoom in.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>zm</tags>
+ <spec><oa>count</oa>zm</spec>
+ <description>
+ <p>Enlarge text zoom of current web page by a larger amount. Mnemonic: zoom more.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>- zo</tags>
+ <spec><oa>count</oa>zo</spec>
+ <description>
+ <p>Reduce text zoom of current web page. Mnemonic: zoom out.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>zr</tags>
+ <spec><oa>count</oa>zr</spec>
+ <description>
+ <p>Reduce text zoom of current web page by a larger amount. Mnemonic: zoom reduce.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>zz</tags>
+ <spec><oa>count</oa>zz</spec>
+ <description>
+ <p>
+ Set text zoom value of current web page. Zoom value can be between 30% and 300%.
+ If it is omitted, text zoom is reset to 100%.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>zI</tags>
+ <spec><oa>count</oa>zI</spec>
+ <description>
+ <p>Enlarge full zoom of current web page. Mnemonic: zoom in.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>zM</tags>
+ <spec><oa>count</oa>zM</spec>
+ <description>
+ <p>Enlarge full zoom of current web page by a larger amount. Mnemonic: zoom more.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>zO</tags>
+ <spec><oa>count</oa>zO</spec>
+ <description>
+ <p>Reduce full zoom of current web page. Mnemonic: zoom out.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>zR</tags>
+ <spec><oa>count</oa>zR</spec>
+ <description>
+ <p>Reduce full zoom of current web page by a larger amount. Mnemonic: zoom reduce.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>zZ</tags>
+ <spec><oa>count</oa>zZ</spec>
+ <description>
+ <p>
+ Set full zoom value of current web page. Zoom value can be between 30 and
+ 300%. If it is omitted, full zoom is reset to 100%.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:zo :zoom</tags>
+ <spec>:zo<oa>om</oa><oa>!</oa> <oa>value</oa></spec>
+ <spec>:zo<oa>om</oa><oa>!</oa> +<a>value</a> | -<a>value</a></spec>
+ <description>
+ <p>
+ Set zoom value of current web page. <oa>value</oa> can be an absolute value
+ between 30% and 300% or a relative value if prefixed with "-" or "+". If
+ <oa>value</oa> is omitted, zoom is reset to 100%.
+ </p>
+
+ <p>
+ Normally this command operates on the text zoom; if used with <oa>!</oa>, it
+ operates on full zoom.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="frames">Working with frames</h2>
+
+<item>
+ <tags>:frameo :frameonly</tags>
+ <spec>:frameo<oa>nly</oa></spec>
+ <description>
+ <p>Show only the current frame's page.</p>
+ </description>
+</item>
+
+
+<h2 tag="copying yanking">Copying text</h2>
+
+When running in X11, the text of the following commands is not only
+copied to the clipboard but is also put into the X11 selection, which
+can be pasted with the middle mouse button:
+
+<item>
+ <tags>y</tags>
+ <spec>y</spec>
+ <description>
+ <p>
+ Yank current location to the clipboard. When running in X11 the location is
+ also put into the selection, which can be pasted with the middle mouse button.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>Y</tags>
+ <spec>Y</spec>
+ <description>
+ <p>Copy currently selected text to the system clipboard.</p>
+ </description>
+</item>
+
+
+<h2 tag="alternate-stylesheet">Alternate style sheets</h2>
+
+Page authors may specify alternate style sheets for an HTML document. Users can
+then switch between these various style sheets, selecting their favorite.
+
+<item>
+ <tags>:pagest :pagestyle</tags>
+ <spec>:pagest<oa>yle</oa> <oa>stylesheet</oa></spec>
+ <description>
+ <p>
+ Select the author style sheet to apply. If <oa>stylesheet</oa> is not specified
+ the page's default style sheet is used.
+ </p>
+
+ <p>All author styling can be removed by setting the <o>usermode</o> option.</p>
+ </description>
+</item>
+
+
+</document>
+
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/cmdline.xml b/common/locale/en-US/cmdline.xml
new file mode 100644
index 00000000..9c548499
--- /dev/null
+++ b/common/locale/en-US/cmdline.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="cmdline"
+ title="&liberator.appname; Command-line"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h2 tag="Command-line-mode Command-line mode-cmdline">Command-line mode</h2>
+
+Command-line mode is used to enter Ex commands (<k>:</k>) and text search patterns
+(<k>/</k> and <k>?</k>).
+
+<item>
+ <tags>:</tags>
+ <spec>:</spec>
+ <description>
+ <p>
+ Start Command-line mode. In Command-line mode, you can perform extended
+ commands, which may require arguments.
+ </p>
+ </description>
+</item>
+
+
+
+<h2 tag="cmdline-editing">Command-line editing</h2>
+
+<item>
+ <tags><![CDATA[c_<C-c>]]></tags>
+ <spec>&lt;C-c></spec>
+ <description>
+ <p>Quit Command-line mode without executing.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[c_<C-]>]]></tags>
+ <spec>&lt;C-]></spec>
+ <description>
+ <p>Expand a command-line abbreviation.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[c_<Up>]]></tags>
+ <spec>&lt;Up></spec>
+ <description>
+ <p>
+ Recall the previous command line from the history list which matches the
+ current command line.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[c_<Down>]]></tags>
+ <spec>&lt;Down></spec>
+ <description>
+ <p>
+ Recall the next command line from the history list which matches the current
+ command line.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[c_<S-Up> c_<PageUp>]]></tags>
+ <spec>&lt;S-Up></spec>
+ <spec>&lt;PageUp></spec>
+ <description>
+ <p>Recall the previous command line from the history list.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[c_<S-Down> c_<PageDown>]]></tags>
+ <spec>&lt;S-Down></spec>
+ <spec>&lt;PageDown></spec>
+ <description>
+ <p>Recall the next command line from the history list.</p>
+ </description>
+</item>
+
+
+<h2 tag="cmdline-completion">Command-line completion</h2>
+
+<item>
+ <tags><![CDATA[c_<Tab>]]></tags>
+ <spec>&lt;Tab></spec>
+ <description>
+ <p>
+ Complete the word in front of the cursor according to the behavior specified in
+ <o>wildmode</o>. If <o>wildmode</o> contains "list" and there are multiple matches then
+ the completion menu window is opened.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[c_<S-Tab>]]></tags>
+ <spec>&lt;S-Tab></spec>
+ <description>
+ <p>Complete the previous full match when <o>wildmode</o> contains "full".</p>
+ </description>
+</item>
+
+
+</document>
+
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/developer.xml b/common/locale/en-US/developer.xml
new file mode 100644
index 00000000..ed743938
--- /dev/null
+++ b/common/locale/en-US/developer.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="developer"
+ title="&liberator.appname; Developer information"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h2 tag="developer-information">Developer information</h2>
+
+<h2 tag="writing-docs documentation">Writing documentation</h2>
+
+<p>
+ For every new feature, writing documentation is <em>mandatory</em> for the
+ patch to be accepted. The docs are written in an XML dialect similar to
+ XHTML, with a few tags specific to our documentation. For example:
+</p>
+
+<code><![CDATA[
+<item>
+ <tags><![CDATA[<F1> :help :h help]]]]><![CDATA[></tags>
+ <spec>:h<oa>elp</oa> <a>subject</a></spec>
+ <spec><![CDATA[<F1>]]]]><![CDATA[></spec>
+ <description>
+ <p>
+ Open help window.
+ The default section is shown unless <a>subject</a> is specified.
+ If you need help for a specific topic, try <ex>:help overview</ex>.
+ </p>
+ </description>
+</item>
+]]></code>
+
+<p>
+ creates a new help section for the command <ex>:help</ex> and for
+ the related key binding, <k name="F1"/>. It also creates help tags
+ for the command, its shortcuts, the key binding, and the general
+ topic, 'help'. These tags enable linking to this section when from
+ other mentions of the topic and from the <ex>:help</ex> command.
+ The above code displays as:
+</p>
+
+<html:div style="margin: 2em;">
+<item>
+ <tags><![CDATA[<F1> :help :h help]]></tags>
+ <spec>:h<oa>elp</oa> <a>subject</a></spec>
+ <spec><![CDATA[<F1>]]></spec>
+ <description>
+ <p>
+ Open help window.
+ The default section is shown unless <a>subject</a> is specified.
+ If you need help for a specific topic, try <ex>:help overview</ex>.
+ </p>
+ </description>
+</item>
+</html:div>
+
+If you don't know in which file/section you should put some
+documentation, ask on the mailing list or on #vimperator.
+
+<h2 tag="generating-docs">Generating documentation</h2>
+
+You can also autogenerate most of the XML help after you have
+written a new command, mapping or option. For this, use:
+
+ :echo util.generateHelp(commands.get("addons"), "Extra text")
+
+</document>
+
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/eval.xml b/common/locale/en-US/eval.xml
new file mode 100644
index 00000000..d68b7c4d
--- /dev/null
+++ b/common/locale/en-US/eval.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="eval"
+ title="&liberator.appname; Expression Evaluation"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="expression expr eval">Expression evaluation</h1>
+
+<!-- INTRO TO BE WRITTEN… -->
+
+<item>
+ <tags>:ec :echo</tags>
+ <spec>:ec<oa>ho</oa> <a>expr</a></spec>
+ <description>
+ <p>
+ Echo the expression. Useful for showing informational messages. Multiple lines
+ can be separated by \n. <a>expr</a> can either be a quoted string, or any expression
+ which can be fed to eval() like 4+5. You can also view the source code of
+ objects and functions if the return value of <a>expr</a> is an object or function.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:echoe :echoerr</tags>
+ <spec>:echoe<oa>rr</oa> <a>expr</a></spec>
+ <description>
+ <p>
+ Echo the expression as an error message. Just like <ex>:ec<oa>ho</oa></ex> but echoes
+ the result highlighted as ErrorMsg and saves it to the message history.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:echom :echomsg</tags>
+ <spec>:echom<oa>sg</oa> <a>expr</a></spec>
+ <description>
+ <p>
+ Echo the expression as an informational message. Just like <ex>:ec<oa>ho</oa></ex> but
+ also saves the message in the message history.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:exe :execute</tags>
+ <spec>:exe<oa>cute</oa> <a>expr</a></spec>
+ <description>
+ <p>
+ Execute the string that results from the evaluation of <a>expr</a> as an Ex command.
+ Example: <ex>:execute "source " + io.getRCFile().path</ex> sources the appropriate
+ RC file.
+ </p>
+
+ <p>Note: Unlike Vim this currently only supports a single argument.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:js :javas :javascript</tags>
+ <spec>:javas<oa>cript</oa> <a>cmd</a></spec>
+ <spec>:javascript &lt;&lt;<a>endpattern</a>\n<a>empty</a><a>script</a>\n<a>empty</a><a>endpattern</a></spec>
+ <spec>:javascript<oa>!</oa></spec>
+ <description>
+ <p>
+ Run any JavaScript command through eval(). Acts as a JavaScript interpreter by
+ passing the argument to <tt>eval()</tt>.
+ <ex>:javascript alert(<str>Hello world</str>)</ex> shows
+ a dialog box with the text "Hello world".
+ <ex>:javascript &lt;&lt;EOF</ex> reads all the lines
+ until a line starting with "EOF"
+ is found, and interpret them with the JavaScript <em>eval()</em> function.
+ </p>
+
+ <p>
+ The special version <ex>:javascript!</ex> opens the JavaScript console of
+ Firefox.
+ </p>
+
+ <p>
+ <k name="Tab"/> completion is available for <ex>:javascript <a>cmd</a><k name="Tab"/></ex> (but not
+ yet for the <ex>:js &lt;&lt;EOF</ex> multiline widget). Be aware that Vimperator needs
+ to run <a>cmd</a> through eval() to get the completions, which could have unwanted
+ side effects.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:let</tags>
+ <spec>:let <a>var-name</a> [+-.]= <a>expr1</a></spec>
+ <spec>:let <a>var-name</a></spec>
+ <spec>:let</spec>
+ <description>
+ <p>
+ Sets or lists a variable. Sets the variable {var-name} to the value of the
+ expression <a>expr1</a>. If no expression is given, the value of the variable is
+ displayed. Without arguments, displays a list of all variables.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:unl :unlet</tags>
+ <spec>:unl<oa>et</oa><oa>!</oa> <a>name</a> …</spec>
+ <description>
+ <p>
+ Deletes the variable <a>name</a>. Several variable names can be given. When used
+ with <oa>!</oa> no error message is output for non-existing variables.
+ </p>
+ </description>
+</item>
+
+</document>
+
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/gui.xml b/common/locale/en-US/gui.xml
new file mode 100644
index 00000000..949e0ed8
--- /dev/null
+++ b/common/locale/en-US/gui.xml
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="gui"
+ title="&liberator.appname; GUI"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h2 tag="gui">&liberator.appname;'s GUI</h2>
+
+<p>
+ Although &liberator.appname; offers the most frequently used &liberator.host; functionality via
+ Ex and Normal mode commands there may be times when directly accessing the GUI
+ is required. There are commands for accessing the menu system, standard dialogs
+ and the sidebar.
+</p>
+
+<h2 tag="menu">Menus</h2>
+
+<item>
+ <tags>:emenu</tags>
+ <spec>:emenu <a>menu</a></spec>
+ <description>
+ <p>
+ Execute <a>menu</a> from the command line. This command provides command-line access
+ to all menu items available from the main &liberator.host; menubar. <a>menu</a> is a
+ hierarchical path to the menu item with each submenu separated by a period.
+ E.g. <ex>:emenu File.Open File…</ex>
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="dialogs">Dialogs</h2>
+
+<item>
+ <tags>:addo :addons</tags>
+ <spec>:addo<oa>ns</oa></spec>
+ <description>
+ <p>
+ Show available &liberator.host; Extensions and Themes.
+ You can add/remove/disable browser extensions from this dialog.
+ Be aware that not all &liberator.host; extensions work, because &liberator.appname; overrides
+ some key bindings and changes &liberator.host;'s GUI.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:dia :dialog</tags>
+ <spec>:dia<oa>log</oa> <oa>firefox-dialog</oa></spec>
+ <description>
+ <p>Open a &liberator.host; dialog.</p>
+
+ <p>Available dialogs:</p>
+ <dl>
+ <dt>about</dt> <dd>About Mozilla &liberator.host;;</dd>
+ <dt>addbookmark</dt> <dd>Add bookmark for the current page</dd>
+ <dt>addons</dt> <dd>Manage Add-ons</dd>
+ <dt>bookmarks</dt> <dd>List your bookmarks</dd>
+ <dt>checkupdates</dt> <dd>Check for updates</dd>
+ <dt>cleardata</dt> <dd>Clear private data</dd>
+ <dt>cookies</dt> <dd>List your cookies</dd>
+ <dt>console</dt> <dd>JavaScript console</dd>
+ <dt>customizetoolbar</dt><dd>Customize the Toolbar</dd>
+ <dt>dominspector</dt> <dd>DOM Inspector</dd>
+ <dt>downloads</dt> <dd>Manage Downloads</dd>
+ <dt>history</dt> <dd>List your history</dd>
+ <dt>import</dt> <dd>Import Preferences, Bookmarks, History, etc. from other browsers</dd>
+ <dt>openfile</dt> <dd>Open the file selector dialog</dd>
+ <dt>pageinfo</dt> <dd>Show information about the current page</dd>
+ <dt>pagesource</dt> <dd>View page source</dd>
+ <dt>places</dt> <dd>Places Organizer: Manage your bookmarks and history</dd>
+ <dt>preferences</dt> <dd>Show &liberator.host; preferences dialog</dd>
+ <dt>printpreview</dt> <dd>Preview the page before printing</dd>
+ <dt>printsetup</dt> <dd>Setup the page size and orientation before printing</dd>
+ <dt>print</dt> <dd>Show print dialog</dd>
+ <dt>saveframe</dt> <dd>Save frame to disk</dd>
+ <dt>savepage</dt> <dd>Save page to disk</dd>
+ <dt>searchengines</dt> <dd>Manage installed search engines</dd>
+ <dt>selectionsource</dt> <dd>View selection source</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>:dl :downl :downloads</tags>
+ <spec>:downl<oa>oads</oa></spec>
+ <description>
+ <p>
+ Show progress of current downloads. Open the original &liberator.host; download dialog
+ in a new tab. Here, downloads can be paused, canceled and resumed.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="extensions add-ons">Add-ons</h2>
+
+<item>
+ <tags>:exta :extadd</tags>
+ <spec>:exta<oa>dd</oa> <a>file</a></spec>
+ <description>
+ <p>Install an extension. <a>file</a> is an extension XPInstall file (*.xpi).</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:extde :extdelete</tags>
+ <spec>:extde<oa>lete</oa> <a>extension</a></spec>
+ <spec>:extde<oa>lete</oa>!</spec>
+ <description>
+ <p>
+ Uninstall an extension. <a>extension</a> is the extension's name. When <oa>!</oa> is given
+ all extensions are uninstalled.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:extd :extdisable</tags>
+ <spec>:extd<oa>isable</oa> <a>extension</a></spec>
+ <spec>:extd<oa>isable</oa>!</spec>
+ <description>
+ <p>
+ Disable an extension. <a>extension</a> is the extension's name. When <oa>!</oa> is given
+ all extensions are disabled.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:exte :extenable</tags>
+ <spec>:exte<oa>nable</oa> <a>extension</a></spec>
+ <spec>:exte<oa>nable</oa>!</spec>
+ <description>
+ <p>
+ Enable an extension. <a>extension</a> is the extension's name. When <oa>!</oa> is given all
+ extensions are enabled.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:extens :extensions</tags>
+ <spec>:extens<oa>ions</oa></spec>
+ <description>
+ <p>List all installed extensions.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:exto :extoptions</tags>
+ <tags>:extp :extpreferences</tags>
+ <spec>:exto<oa>ptions</oa><oa>!</oa> <a>extension</a></spec>
+ <spec>:extp<oa>references</oa><oa>!</oa> <a>extension</a></spec>
+ <description>
+ <p>
+ Open the preferences dialog for an extension. If <oa>!</oa> is given, open a dialog,
+ otherwise open a buffer. See also <o>newtab</o>.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="sidebar">Sidebar</h2>
+
+<item>
+ <tags>:sbcl :sbclose</tags>
+ <spec>:sbcl<oa>ose</oa></spec>
+ <description>
+ <p>Close the sidebar window.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:sbope :sbopen :sb :sbar :sideb :sidebar</tags>
+ <spec>:sidebar <a>name</a></spec>
+ <description>
+ <p>
+ Open the sidebar window. <a>name</a> is any of the menu items listed under the
+ standard &liberator.host; View->Sidebar menu. Add-ons, Preferences and Downloads are
+ also available in the sidebar.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="status-line status-bar">Status line</h2>
+
+<p>
+ The status line appears at the bottom of each window. The <o>laststatus</o>
+ option can be used to specify when the status line appears.
+</p>
+
+<p>
+ The status line contains several fields that provide information about the
+ state of the current buffer. These are, in order:
+</p>
+
+<ul>
+ <li>
+ URL: The URL of the currently loaded page. While the page is loading
+ progress messages are also output to this field.
+ </li>
+ <li>
+ History and bookmark status ([+-❤]): The position of the current page in
+ the tab's session history; + and - indicate that it's possible to move
+ backwards and forwards through the history respectively. ❤ indicates that
+ the current page is bookmarked.
+ </li>
+ <li>
+ Tab index ([N/M]): N is the index of the currently selected tab and M is
+ the total number of tabs in the current window.
+ </li>
+ <li>
+ Vertical scroll: The vertical scroll percentage of the current buffer.
+ This is a percentage or Top for 0% and Bot for 100%.
+ </li>
+ <li>
+ Security: The security information button is displayed when appropriate
+ as per &liberator.host;. The color of the status bar also changes to reflect the
+ current security status of the loaded page.
+ <ul>
+ <li>black – the site's identity is unverified and the connection is unencrypted</li>
+ <li>blue – the site's domain has been verified and the connection is encrypted</li>
+ <li>green – the site's domain and owner have been fully verified via an</li>
+ </ul>
+ Extended Validation certificate and the connection is encrypted
+ </li>
+ <li>
+ Extensions: Any extension buttons that would normally be installed to the
+ &liberator.host; status bar are appended to the end of the status line.
+ </li>
+</ul>
+
+<h2 tag="toolbar">Toolbars</h2>
+
+<item>
+ <tags>:tbs :tbshow :toolbars :toolbarshow</tags>
+ <spec>:toolbarshow <a>name</a></spec>
+ <description>
+ <p>Shows the named toolbar.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:tbh :tbhide :toolbarh :toolbarhide</tags>
+ <spec>:toolbarhide <a>name</a></spec>
+ <description>
+ <p>Hides the named toolbar.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:tbt :tbtoggle :toolbart :toolbartoggle</tags>
+ <spec>:toolbartoggle <a>name</a></spec>
+ <description>
+ <p>Toggles the named toolbar.</p>
+ </description>
+</item>
+
+
+</document>
+
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/hints.xml b/common/locale/en-US/hints.xml
new file mode 100644
index 00000000..cc22babc
--- /dev/null
+++ b/common/locale/en-US/hints.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="hints"
+ title="&liberator.appname; Hints"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="quick-hints hints">Hints</h1>
+
+Hints are the way in which Vimperator allows you to follow links on a page. By
+providing each link with a suitable hint, you can access all links with a
+similar amount of minimal effort. This contrasts strongly with the traditional
+approaches offered by the mouse, in which you must first find and then aim for
+the link you would like, and by using repeated tabbing which quickly becomes
+tedious unless you always visit the first link on a page.
+
+<item>
+ <tags>f</tags>
+ <spec>f<a>hint</a></spec>
+ <description>
+ <p>
+ Start QuickHint mode. In QuickHint mode, every hintable item
+ (according to the <o>hinttags</o> XPath query) is assigned a
+ unique number. You can either type this number or type part of the
+ link text as specified by the <o>hintmatching</o> option, and it
+ is followed as soon as it can be uniquely identified. Often it can
+ be useful to combine these techniques to narrow down results with
+ some letters, and then typing a single digit to make the match
+ unique. Pressing <k name="Leader"/> (defaults to
+ <ex>:let mapleader = "\"</ex>) toggles "escape-mode", where numbers are
+ treated as normal text. <k name="Esc"/> stops this mode at any
+ time.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>F</tags>
+ <spec>F<a>hint</a></spec>
+ <description>
+ <p>
+ Start QuickHint mode, but open link in a new tab. Like normal QuickHint
+ mode (activated with <k>f</k>) but opens the link in a new tab. The new
+ tab will be loaded in background according to the
+ <str>browser.tabs.loadInBackground</str> Firefox preference.
+ </p>
+ </description>
+</item>
+
+
+<tags>extended-hints</tags>
+
+<item>
+ <tags>;</tags>
+ <spec>;<a>mode</a><a>empty</a><a>hint</a></spec>
+ <description>
+ <p>
+ Start an extended hint mode. ExtendedHint mode is useful for
+ performing operations on hinted elements other than the default
+ left mouse click. For example, you can yank link locations, open
+ them in a new window or save images. If you want to yank the
+ location of hint <em>24</em>, press <k>;y</k> to start this hint
+ mode. Then press <em>24</em> to copy the hint location.
+ </p>
+
+ <p><a>mode</a> can be one of:</p>
+
+ <ul>
+ <li><tag>;;</tag> <em>;</em> to focus a link and hover it with the mouse</li>
+ <li><tag>;?</tag> <em>?</em> to show information about the element (incomplete)</li>
+ <li><tag>;s</tag> <em>s</em> to save its destination</li>
+ <li><tag>;a</tag> <em>a</em> to save its destination (prompting for save location)</li>
+ <li><tag>;f</tag> <em>f</em> to focus a frame</li>
+ <li><tag>;o</tag> <em>o</em> to open its location in the current tab</li>
+ <li><tag>;t</tag> <em>t</em> to open its location in a new tab</li>
+ <li><tag>;b</tag> <em>b</em> to open its location in a new background tab</li>
+ <li><tag>;w</tag> <em>w</em> to open its destination in a new window</li>
+ <li><tag>;F</tag> <em>F</em> to follow a sequence of <k name="CR"/>-delimited hints in background tabs</li>
+ <li><tag>;O</tag> <em>O</em> to generate an <ex>:open</ex> with hint's URL (like <k>O</k>)</li>
+ <li><tag>;T</tag> <em>T</em> to generate a <ex>:tabopen</ex> with hint's URL (like <k>T</k>)</li>
+ <li><tag>;W</tag> <em>W</em> to generate a <ex>:winopen</ex> with hint's URL</li>
+ <li><tag>;v</tag> <em>v</em> to view its destination source</li>
+ <li><tag>;V</tag> <em>V</em> to view its destination source in the external editor</li>
+ <li><tag>;y</tag> <em>y</em> to yank its destination location</li>
+ <li><tag>;Y</tag> <em>Y</em> to yank its text description</li>
+ <li><tag>;c</tag> <em>c</em> to open its context menu</li>
+ <li><tag>;i</tag> <em>i</em> to open an image</li>
+ <li><tag>;I</tag> <em>I</em> to open an image in a new tab.</li>
+ </ul>
+
+ <p>
+ Depending on the value of <o>complete</o>, you can get a list of
+ extended hint modes by pressing <k name="Tab"/> from the <k>;</k>
+ prompt.
+ </p>
+
+ <p>
+ Hintable elements for all extended hint modes can be set in the
+ <o>extendedhinttags</o> XPath string.
+ </p>
+ </description>
+</item>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/index.xml b/common/locale/en-US/index.xml
new file mode 100644
index 00000000..2d94c576
--- /dev/null
+++ b/common/locale/en-US/index.xml
@@ -0,0 +1,447 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="index"
+ title="&liberator.appname; Index"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="index">Index</h1>
+
+This file contains a list of all available commands, mappings and options.
+
+<h2 tag="insert-index">Insert mode</h2>
+
+<dl>
+ <dt><k name="C-i"/></dt> <dd>Launch the external editor</dd>
+ <dt><k name="C-]"/></dt> <dd>Expand an Insert-mode abbreviation</dd>
+</dl>
+
+
+<h2 tag="normal-index">Normal mode</h2>
+
+<dl>
+ <dt><k name="C-^"/></dt> <dd>Select the alternate tab or the <oa>count</oa>th tab</dd>
+ <dt><k name="C-a"/></dt> <dd>Increment last number in URL</dd>
+ <dt><k name="C-b"/></dt> <dd>Scroll up a full page</dd>
+ <dt><k name="C-c"/></dt> <dd>Stop loading the current web page</dd>
+ <dt><k name="C-d"/></dt> <dd>Scroll window downwards in the buffer</dd>
+ <dt><k name="C-f"/></dt> <dd>Scroll down a full page</dd>
+ <dt><k name="C-g"/></dt> <dd>Print the current file name</dd>
+ <dt><k name="C-i"/></dt> <dd>Go to a newer position in the jump list</dd>
+ <dt><k name="C-l"/></dt> <dd>Redraw the screen</dd>
+ <dt><k name="C-o"/></dt> <dd>Go to an older position in the jump list</dd>
+ <dt><k name="C-u"/></dt> <dd>Scroll window upwards in the buffer</dd>
+ <dt><k name="C-v"/></dt> <dd>Pass through next key</dd>
+ <dt><k name="C-x"/></dt> <dd>Decrement last number in URL</dd>
+ <dt><k name="C-z"/></dt> <dd>Temporarily ignore all &liberator.appname; key bindings</dd>
+</dl>
+
+
+<dl>
+ <dt><k name="Esc"/></dt> <dd>Focus content</dd>
+</dl>
+
+
+<dl>
+ <dt><k name="F1"/></dt> <dd>Open help window</dd>
+</dl>
+
+
+<dl>
+ <dt><k name="S-Tab"/></dt> <dd>Rewind keyboard focus</dd>
+ <dt><k name="Tab"/></dt> <dd>Advance keyboard focus</dd>
+</dl>
+
+
+<dl>
+ <dt><k>0</k></dt> <dd>Scroll to the absolute left of the document</dd>
+ <dt><k>$</k></dt> <dd>Scroll to the absolute right of the document</dd>
+</dl>
+
+
+<dl>
+ <dt><k>A</k></dt> <dd>Toggle bookmarked state of current URL</dd>
+ <dt><k>B</k></dt> <dd>Show buffer list</dd>
+ <dt><k>D</k></dt> <dd>Delete current buffer, focus tab to the left</dd>
+ <dt><k>F</k></dt> <dd>Start QuickHint mode, but open link in a new tab</dd>
+ <dt><k>G</k></dt> <dd>Go to the end of the document</dd>
+ <dt><k>H</k></dt> <dd>Go back in the browser history</dd>
+ <dt><k>L</k></dt> <dd>Go forward in the browser history</dd>
+ <dt><k>M</k></dt> <dd>Add new QuickMark for current URL</dd>
+ <dt><k>N</k></dt> <dd>Find previous</dd>
+ <dt><k>O</k></dt> <dd>Open one or more URLs, based on current location</dd>
+ <dt><k>P</k></dt> <dd>Open (put) a URL based on the current clipboard contents in a new buffer</dd>
+ <dt><k>R</k></dt> <dd>Reload while skipping the cache</dd>
+ <dt><k>T</k></dt> <dd>Open one or more URLs in a new tab, based on current location</dd>
+ <dt><k>Y</k></dt> <dd>Copy selected text or current word</dd>
+ <dt><k>W</k></dt> <dd>Open one or more URLs in a new window, based on current location</dd>
+</dl>
+
+
+<dl>
+ <dt><k>a</k></dt> <dd>Open a prompt to bookmark the current URL</dd>
+ <dt><k>b</k></dt> <dd>Open a prompt to switch buffers</dd>
+ <dt><k>d</k></dt> <dd>Delete current buffer</dd>
+ <dt><k>f</k></dt> <dd>Start QuickHint mode</dd>
+ <dt><k>h</k></dt> <dd>Scroll document to the left</dd>
+ <dt><k>i</k></dt> <dd>Start Caret mode</dd>
+ <dt><k>j</k></dt> <dd>Scroll document down</dd>
+ <dt><k>k</k></dt> <dd>Scroll document up</dd>
+ <dt><k>l</k></dt> <dd>Scroll document to the right</dd>
+ <dt><k>m</k></dt> <dd>Set mark at the cursor position</dd>
+ <dt><k>n</k></dt> <dd>Find next</dd>
+ <dt><k>o</k></dt> <dd>Open one or more URLs</dd>
+ <dt><k>p</k></dt> <dd>Open (put) a URL based on the current clipboard contents in the current buffer</dd>
+ <dt><k>q</k></dt> <dd>Record a key sequence into a macro</dd>
+ <dt><k>r</k></dt> <dd>Reload the current web page</dd>
+ <dt><k>t</k></dt> <dd>Open one or more URLs in a new tab</dd>
+ <dt><k>u</k></dt> <dd>Undo closing of a tab</dd>
+ <dt><k>y</k></dt> <dd>Yank current location to the clipboard</dd>
+ <dt><k>w</k></dt> <dd>Open one or more URLs in a new window</dd>
+</dl>
+
+
+<dl>
+ <dt><k>;</k></dt> <dd>Start an extended hint mode</dd>
+</dl>
+
+
+<dl>
+ <dt><k>:</k></dt> <dd>Enter Command-line mode</dd>
+</dl>
+
+
+<dl>
+ <dt><k>~</k></dt> <dd>Open home directory</dd>
+</dl>
+
+
+<dl>
+ <dt><k>\</k></dt> <dd>Toggle between rendered and source view</dd>
+</dl>
+
+
+<dl>
+ <dt><k>/</k></dt> <dd>Search forward for a pattern</dd>
+ <dt><k>?</k></dt> <dd>Search backwards for a pattern</dd>
+ <dt><k>*</k></dt> <dd>Find word under cursor</dd>
+ <dt><k>#</k></dt> <dd>Find word under cursor backwards</dd>
+</dl>
+
+
+<dl>
+ <dt><k>N%</k></dt> <dd>Scroll to <a>count</a> percent of the document</dd>
+</dl>
+
+
+<dl>
+ <dt><k>'</k></dt> <dd>Jump to the mark</dd>
+</dl>
+
+
+<dl>
+ <dt><k>@</k></dt> <dd>Play a macro</dd>
+</dl>
+
+
+<dl>
+ <dt><k>.</k></dt> <dd>Repeat the last keyboard command</dd>
+ <dt><k>@:</k></dt> <dd>Repeat the last Ex command <oa>count</oa> times</dd>
+</dl>
+
+
+<dl>
+ <dt><k>]f</k></dt> <dd>Focus next frame</dd>
+ <dt><k>[f</k></dt> <dd>Focus previous frame</dd>
+ <dt><k>]] </k></dt> <dd>Follow the link labeled 'next' or '>' if it exists</dd>
+ <dt><k>[[ </k></dt> <dd>Follow the link labeled 'prev', 'previous' or '&lt;' if it exists</dd>
+</dl>
+
+
+<dl>
+ <dt><k>g$</k></dt> <dd>Go to the last tab</dd>
+ <dt><k>g&lt;</k></dt> <dd>Redisplay the last command output</dd>
+ <dt><k>g0</k></dt> <dd>Go to the first tab</dd>
+ <dt><k>g&lt;C-g></k></dt> <dd>Print file information</dd>
+ <dt><k>gB</k></dt> <dd>Repeat last <ex>:buffer<oa>!</oa></ex> command in reverse direction</dd>
+ <dt><k>gF</k></dt> <dd>View source with an external editor</dd>
+ <dt><k>gH</k></dt> <dd>Open homepage in a new tab</dd>
+ <dt><k>gP</k></dt> <dd>Open (put) a URL based on the current clipboard contents in a new buffer</dd>
+ <dt><k>gT</k></dt> <dd>Go to previous tab</dd>
+ <dt><k>gU</k></dt> <dd>Go to the root of the website</dd>
+ <dt><k>gb</k></dt> <dd>Repeat last <ex>:buffer<oa>!</oa></ex> command</dd>
+ <dt><k>gf</k></dt> <dd>View source</dd>
+ <dt><k>gg</k></dt> <dd>Go to the top of the document</dd>
+ <dt><k>gh</k></dt> <dd>Open homepage</dd>
+ <dt><k>gi</k></dt> <dd>Focus last used input field</dd>
+ <dt><k>gn</k></dt> <dd>Jump to a QuickMark in a new tab</dd>
+ <dt><k>go</k></dt> <dd>Jump to a QuickMark</dd>
+ <dt><k>gt</k></dt> <dd>Go to the next tab</dd>
+ <dt><k>gu</k></dt> <dd>Go to parent directory</dd>
+</dl>
+
+
+<dl>
+ <dt><k>ZQ</k></dt> <dd>Quit and don't save the session</dd>
+ <dt><k>ZZ</k></dt> <dd>Quit and save the session</dd>
+ <dt><k>zI</k></dt> <dd>Enlarge full zoom of current web page</dd>
+ <dt><k>zM</k></dt> <dd>Enlarge full zoom of current web page by a larger amount</dd>
+ <dt><k>zO</k></dt> <dd>Reduce full zoom of current web page</dd>
+ <dt><k>zR</k></dt> <dd>Reduce full zoom of current web page by a larger amount</dd>
+ <dt><k>zZ</k></dt> <dd>Set full zoom value of current web page</dd>
+ <dt><k>zi</k></dt> <dd>Enlarge text zoom of current web page</dd>
+ <dt><k>zm</k></dt> <dd>Enlarge text zoom of current web page by a larger amount</dd>
+ <dt><k>zo</k></dt> <dd>Reduce text zoom of current web page</dd>
+ <dt><k>zr</k></dt> <dd>Reduce text zoom of current web page by a larger amount</dd>
+ <dt><k>zz</k></dt> <dd>Set text zoom value of current web page</dd>
+</dl>
+
+
+<h2 tag="ex-edit-index">Command-line editing</h2>
+
+<dl>
+ <dt><k name="C-c"/></dt> <dd>Quit Command-line mode without executing</dd>
+</dl>
+
+
+<dl>
+ <dt><k name="C-]"/></dt> <dd>Expand a command-line abbreviation</dd>
+</dl>
+
+
+<dl>
+ <dt><k name="Up"/></dt> <dd>Recall the previous command line from the history list which matches the current command line</dd>
+ <dt><k name="Down"/></dt> <dd>Recall the next command line from the history list which matches the current command line</dd>
+</dl>
+
+
+<dl>
+ <dt><k name="Tab"/></dt> <dd>Complete the word in front of the cursor according to the behavior specified in <o>wildmode</o></dd>
+ <dt><k name="S-Tab"/></dt> <dd>Complete the previous full match when <o>wildmode</o> contains "full"</dd>
+</dl>
+
+
+<h2 tag="ex-cmd-index :index">Ex commands</h2>
+
+<dl>
+ <dt><ex>:!</ex></dt> <dd>Run a command</dd>
+ <dt><ex>:!!</ex></dt> <dd>Repeat last <ex>:!<a>cmd</a></ex></dd>
+ <dt><ex>:abbreviate</ex></dt> <dd>Abbreviate a key sequence</dd>
+ <dt><ex>:abclear</ex></dt> <dd>Remove all abbreviations</dd>
+ <dt><ex>:addons</ex></dt> <dd>Manage available Extensions and Themes</dd>
+ <dt><ex>:autocmd</ex></dt> <dd>Execute commands automatically on events</dd>
+ <dt><ex>:back</ex></dt> <dd>Go back in the browser history</dd>
+ <dt><ex>:bdelete</ex></dt> <dd>Delete current buffer</dd>
+ <dt><ex>:beep</ex></dt> <dd>Play a system beep</dd>
+ <dt><ex>:bmark</ex></dt> <dd>Add a bookmark</dd>
+ <dt><ex>:bmarks</ex></dt> <dd>List or open multiple bookmarks</dd>
+ <dt><ex>:buffer</ex></dt> <dd>Switch to a buffer</dd>
+ <dt><ex>:buffers</ex></dt> <dd>Show a list of all buffers</dd>
+ <dt><ex>:cabbrev</ex></dt> <dd>Abbreviate a key sequence in Command-line mode</dd>
+ <dt><ex>:cabclear</ex></dt> <dd>Remove all abbreviations in Command-line mode</dd>
+ <dt><ex>:cd</ex></dt> <dd>Change the current directory</dd>
+ <dt><ex>:cmap</ex></dt> <dd>Map a key sequence in Command-line mode</dd>
+ <dt><ex>:cmapclear</ex></dt> <dd>Remove all mappings in Command-line mode</dd>
+ <dt><ex>:cnoremap</ex></dt> <dd>Map a key sequence without remapping keys in Command-line mode</dd>
+ <dt><ex>:colorscheme</ex></dt> <dd>Load a color scheme</dd>
+ <dt><ex>:comclear</ex></dt> <dd>Delete all user-defined commands</dd>
+ <dt><ex>:command</ex></dt> <dd>List and define commands</dd>
+ <dt><ex>:cunabbrev</ex></dt> <dd>Remove an abbreviation in Command-line mode</dd>
+ <dt><ex>:cunmap</ex></dt> <dd>Remove a mapping in Command-line mode</dd>
+ <dt><ex>:delbmarks</ex></dt> <dd>Delete a bookmark</dd>
+ <dt><ex>:delcommand</ex></dt> <dd>Delete the specified user-defined command</dd>
+ <dt><ex>:delmacros</ex></dt> <dd>Delete macros</dd>
+ <dt><ex>:delmarks</ex></dt> <dd>Delete the specified marks</dd>
+ <dt><ex>:delqmarks</ex></dt> <dd>Delete the specified QuickMarks</dd>
+ <dt><ex>:delstyle</ex></dt> <dd>Delete any matching styles</dd>
+ <dt><ex>:dialog</ex></dt> <dd>Open a &liberator.host; dialog</dd>
+ <dt><ex>:doautoall</ex></dt> <dd>Apply the autocommands matching the specified URL to all buffers</dd>
+ <dt><ex>:doautocmd</ex></dt> <dd>Apply the autocommands matching the specified URL to the current buffer</dd>
+ <dt><ex>:downloads</ex></dt> <dd>Show progress of current downloads</dd>
+ <dt><ex>:echo</ex></dt> <dd>Echo the expression</dd>
+ <dt><ex>:echoerr</ex></dt> <dd>Echo the expression as an error message</dd>
+ <dt><ex>:echomsg</ex></dt> <dd>Echo the expression as an informational message</dd>
+ <dt><ex>:emenu</ex></dt> <dd>Execute the specified menu item from the command line</dd>
+ <dt><ex>:execute</ex></dt> <dd>Execute the argument as an Ex command</dd>
+ <dt><ex>:extadd</ex></dt> <dd>Install an extension</dd>
+ <dt><ex>:extdelete</ex></dt> <dd>Uninstall an extension</dd>
+ <dt><ex>:extdisable</ex></dt> <dd>Disable an extension</dd>
+ <dt><ex>:extenable</ex></dt> <dd>Enable an extension</dd>
+ <dt><ex>:extensions</ex></dt> <dd>List all installed extensions</dd>
+ <dt><ex>:extoptions</ex></dt> <dd>Open an extension's preference dialog</dd>
+ <dt><ex>:exusage</ex></dt> <dd>List all Ex commands with a short description</dd>
+ <dt><ex>:finish</ex></dt> <dd>Stop sourcing a script file</dd>
+ <dt><ex>:forward</ex></dt> <dd>Go forward in the browser history</dd>
+ <dt><ex>:frameonly</ex></dt> <dd>Show only the current frame's page</dd>
+ <dt><ex>:hardcopy</ex></dt> <dd>Print current document</dd>
+ <dt><ex>:help</ex></dt> <dd>Open the help page</dd>
+ <dt><ex>:helpall</ex></dt> <dd>Open the single unchunked help page</dd>
+ <dt><ex>:highlight</ex></dt> <dd>Style &liberator.appname;</dd>
+ <dt><ex>:history</ex></dt> <dd>Show recently visited URLs</dd>
+ <dt><ex>:iabbrev</ex></dt> <dd>Abbreviate a key sequence in Insert mode</dd>
+ <dt><ex>:iabclear</ex></dt> <dd>Remove all abbreviations in Insert mode</dd>
+ <dt><ex>:imap</ex></dt> <dd>Map a key sequence in Insert mode</dd>
+ <dt><ex>:imapclear</ex></dt> <dd>Remove all mappings in Insert mode</dd>
+ <dt><ex>:inoremap</ex></dt> <dd>Map a key sequence without remapping keys in Insert mode</dd>
+ <dt><ex>:iunabbrev</ex></dt> <dd>Remove an abbreviation in Insert mode</dd>
+ <dt><ex>:iunmap</ex></dt> <dd>Remove a mapping in Insert mode</dd>
+ <dt><ex>:javascript</ex></dt> <dd>Run a JavaScript command through eval()</dd>
+ <dt><ex>:jumps</ex></dt> <dd>Show jumplist</dd>
+ <dt><ex>:keepalt</ex></dt> <dd>Execute a command without changing the current alternate buffer</dd>
+ <dt><ex>:let</ex></dt> <dd>Set or list a variable</dd>
+ <dt><ex>:loadplugins</ex></dt> <dd>Immediately load all unloaded plugins</dd>
+ <dt><ex>:macros</ex></dt> <dd>List all macros</dd>
+ <dt><ex>:map</ex></dt> <dd>Map a key sequence</dd>
+ <dt><ex>:mapclear</ex></dt> <dd>Remove all mappings</dd>
+ <dt><ex>:mark</ex></dt> <dd>Mark current location within the web page</dd>
+ <dt><ex>:marks</ex></dt> <dd>Show all location marks of current web page</dd>
+ <dt><ex>:messages</ex></dt> <dd>Display previously given messages</dd>
+ <dt><ex>:messclear</ex></dt> <dd>Clear the message history</dd>
+ <dt><ex>:mkvimperatorrc</ex></dt> <dd>Write current key mappings and changed options to the config file</dd>
+ <dt><ex>:nmap</ex></dt> <dd>Map a key sequence in Normal mode</dd>
+ <dt><ex>:nmapclear</ex></dt> <dd>Remove all mappings in Normal mode</dd>
+ <dt><ex>:nnoremap</ex></dt> <dd>Map a key sequence without remapping keys in Normal mode</dd>
+ <dt><ex>:nohlsearch</ex></dt> <dd>Remove the search highlighting</dd>
+ <dt><ex>:noremap</ex></dt> <dd>Map a key sequence without remapping keys</dd>
+ <dt><ex>:normal</ex></dt> <dd>Execute Normal mode commands</dd>
+ <dt><ex>:nunmap</ex></dt> <dd>Remove a mapping in Normal mode</dd>
+ <dt><ex>:open</ex></dt> <dd>Open one or more URLs in the current tab</dd>
+ <dt><ex>:optionusage</ex></dt> <dd>List all options with a short description</dd>
+ <dt><ex>:pageinfo</ex></dt> <dd>Show various page information</dd>
+ <dt><ex>:pagestyle</ex></dt> <dd>Select the author style sheet to apply</dd>
+ <dt><ex>:play</ex></dt> <dd>Replay a recorded macro</dd>
+ <dt><ex>:preferences</ex></dt> <dd>Show &liberator.host; preferences dialog</dd>
+ <dt><ex>:pwd</ex></dt> <dd>Print the current directory name</dd>
+ <dt><ex>:qmark</ex></dt> <dd>Mark a URL with a letter for quick access</dd>
+ <dt><ex>:qmarks</ex></dt> <dd>Show all QuickMarks</dd>
+ <dt><ex>:quit</ex></dt> <dd>Quit current tab</dd>
+ <dt><ex>:quitall</ex></dt> <dd>Quit &liberator.appname;</dd>
+ <dt><ex>:redraw</ex></dt> <dd>Redraw the screen</dd>
+ <dt><ex>:reload</ex></dt> <dd>Reload the current web page</dd>
+ <dt><ex>:reloadall</ex></dt> <dd>Reload all tab pages</dd>
+ <dt><ex>:restart</ex></dt> <dd>Force the browser to restart</dd>
+ <dt><ex>:runtime</ex></dt> <dd>Source the specified file from each directory in <o>runtimepath</o></dd>
+ <dt><ex>:sanitize</ex></dt> <dd>Clear private data</dd>
+ <dt><ex>:saveas</ex></dt> <dd>Save current document to disk</dd>
+ <dt><ex>:sbclose</ex></dt> <dd>Close the sidebar window</dd>
+ <dt><ex>:scriptnames</ex></dt> <dd>List all sourced script names</dd>
+ <dt><ex>:set</ex></dt> <dd>Set an option</dd>
+ <dt><ex>:setglobal</ex></dt> <dd>Set global option</dd>
+ <dt><ex>:setlocal</ex></dt> <dd>Set local option</dd>
+ <dt><ex>:sidebar</ex></dt> <dd>Open the sidebar window</dd>
+ <dt><ex>:silent</ex></dt> <dd>Execute a command silently</dd>
+ <dt><ex>:source</ex></dt> <dd>Read Ex commands from a file</dd>
+ <dt><ex>:stop</ex></dt> <dd>Stop loading the current web page</dd>
+ <dt><ex>:stopall</ex></dt> <dd>Stop loading all tab pages</dd>
+ <dt><ex>:style</ex></dt> <dd>Style &liberator.appname; and web sites</dd>
+ <dt><ex>:styledisable</ex></dt> <dd>Disable a user style sheet</dd>
+ <dt><ex>:styleenable</ex></dt> <dd>Enable a user style sheet</dd>
+ <dt><ex>:styletoggle</ex></dt> <dd>Toggle a user style sheet</dd>
+ <dt><ex>:tab</ex></dt> <dd>Execute a command and tell it to output in a new tab</dd>
+ <dt><ex>:tabattach</ex></dt> <dd>Attach the current tab to another window</dd>
+ <dt><ex>:tabdetach</ex></dt> <dd>Detach current tab to its own window</dd>
+ <dt><ex>:tabdo</ex></dt> <dd>Execute a command in each tab</dd>
+ <dt><ex>:tabduplicate</ex></dt> <dd>Duplicate current tab</dd>
+ <dt><ex>:tablast</ex></dt> <dd>Switch to the last tab</dd>
+ <dt><ex>:tabmove</ex></dt> <dd>Move the current tab after tab N</dd>
+ <dt><ex>:tabnext</ex></dt> <dd>Switch to the next or <oa>count</oa>th tab</dd>
+ <dt><ex>:tabonly</ex></dt> <dd>Close all other tabs</dd>
+ <dt><ex>:tabopen</ex></dt> <dd>Open one or more URLs in a new tab</dd>
+ <dt><ex>:tabprevious</ex></dt> <dd>Switch to the previous tab or go <oa>count</oa> tabs back</dd>
+ <dt><ex>:tabrewind</ex></dt> <dd>Switch to the first tab</dd>
+ <dt><ex>:time</ex></dt> <dd>Profile a piece of code or run a command multiple times</dd>
+ <dt><ex>:toolbarhide</ex></dt> <dd>Hide the named toolbar</dd>
+ <dt><ex>:toolbarshow</ex></dt> <dd>Show the named toolbar</dd>
+ <dt><ex>:toolbartoggle</ex></dt> <dd>Toggle the named toolbar</dd>
+ <dt><ex>:unabbreviate</ex></dt> <dd>Remove an abbreviation</dd>
+ <dt><ex>:undo</ex></dt> <dd>Undo closing of a tab</dd>
+ <dt><ex>:undoall</ex></dt> <dd>Undo closing of all closed tabs</dd>
+ <dt><ex>:unlet</ex></dt> <dd>Delete a variable</dd>
+ <dt><ex>:unmap</ex></dt> <dd>Remove a mapping</dd>
+ <dt><ex>:verbose</ex></dt> <dd>Execute a command with <o>verbose</o> set</dd>
+ <dt><ex>:version</ex></dt> <dd>Show version information</dd>
+ <dt><ex>:viewsource</ex></dt> <dd>View source code of current document</dd>
+ <dt><ex>:viusage</ex></dt> <dd>List all mappings with a short description</dd>
+ <dt><ex>:vmap</ex></dt> <dd>Map a key sequence in Visual mode</dd>
+ <dt><ex>:vmapclear</ex></dt> <dd>Remove all mappings in Visual mode</dd>
+ <dt><ex>:vnoremap</ex></dt> <dd>Map a key sequence without remapping keys in Visual mode</dd>
+ <dt><ex>:vunmap</ex></dt> <dd>Remove a mapping in Visual mode</dd>
+ <dt><ex>:winclose</ex></dt> <dd>Close window</dd>
+ <dt><ex>:window</ex></dt> <dd>Execute a command and tell it to output in a new window</dd>
+ <dt><ex>:winonly</ex></dt> <dd>Close all other windows</dd>
+ <dt><ex>:winopen</ex></dt> <dd>Open one or more URLs in a new window</dd>
+ <dt><ex>:wqall</ex></dt> <dd>Save the session and quit</dd>
+ <dt><ex>:zoom</ex></dt> <dd>Set zoom value of current web page</dd>
+</dl>
+
+
+<h2 tag="option-index">Options</h2>
+
+<dl>
+ <dt><o>activate</o></dt> <dd>Define when tabs are automatically activated</dd>
+ <dt><o>cdpath</o></dt> <dd>List of directories searched when executing <ex>:cd</ex></dd>
+ <dt><o>complete</o></dt> <dd>Items which are completed at the <ex>:open</ex> prompts</dd>
+ <dt><o>defsearch</o></dt> <dd>Set the default search engine</dd>
+ <dt><o>editor</o></dt> <dd>Set the external text editor</dd>
+ <dt><o>encoding</o></dt> <dd>Changes the character encoding of the current buffer</dd>
+ <dt><o>errorbells</o></dt> <dd>Ring the bell when an error message is displayed</dd>
+ <dt><o>eventignore</o></dt> <dd>List of autocommand event names which should be ignored</dd>
+ <dt><o>exrc</o></dt> <dd>Allow reading of an RC file in the current directory</dd>
+ <dt><o>extendedhinttags</o></dt> <dd>XPath string of hintable elements activated by <k>;</k></dd>
+ <dt><o>fileencoding</o></dt> <dd>Changes the character encoding that &liberator.appname; uses to read and write files</dd>
+ <dt><o>focuscontent</o></dt> <dd>Try to stay in Normal mode after loading a web page</dd>
+ <dt><o>followhints</o></dt> <dd>Change the behaviour of <k name="Return"/> in Hints mode</dd>
+ <dt><o>fullscreen</o></dt> <dd>Show the current window fullscreen</dd>
+ <dt><o>guioptions</o></dt> <dd>Show or hide certain GUI elements like the menu or toolbar</dd>
+ <dt><o>helpfile</o></dt> <dd>Name of the main help file</dd>
+ <dt><o>hintinputs</o></dt> <dd>How text input fields are hinted</dd>
+ <dt><o>hintmatching</o></dt> <dd>How links are matched</dd>
+ <dt><o>hinttags</o></dt> <dd>XPath string of hintable elements activated by <k>f</k> and <k>F</k></dd>
+ <dt><o>hinttimeout</o></dt> <dd>Timeout before automatically following a non-unique numerical hint</dd>
+ <dt><o>history</o></dt> <dd>Number of Ex commands and search patterns to store in the command-line history</dd>
+ <dt><o>hlsearch</o></dt> <dd>Highlight previous search pattern matches</dd>
+ <dt><o>ignorecase</o></dt> <dd>Ignore case in search patterns</dd>
+ <dt><o>incsearch</o></dt> <dd>Show where the search pattern matches as it is typed</dd>
+ <dt><o>insertmode</o></dt> <dd>Use Insert mode as the default for text areas</dd>
+ <dt><o>laststatus</o></dt> <dd>Show the status line</dd>
+ <dt><o>linksearch</o></dt> <dd>Limit the search to hyperlink text</dd>
+ <dt><o>loadplugins</o></dt> <dd>Load plugin scripts when starting up</dd>
+ <dt><o>maxitems</o></dt> <dd>Maximum number of items to display at once in a listing</dd>
+ <dt><o>messages</o></dt> <dd>Number of messages to store in the message history</dd>
+ <dt><o>more</o></dt> <dd>Pause the message list window when more than one screen of listings is displayed</dd>
+ <dt><o>newtab</o></dt> <dd>Define which commands should output in a new tab by default</dd>
+ <dt><o>nextpattern</o></dt> <dd>Patterns to use when guessing the 'next' page in a document sequence</dd>
+ <dt><o>online</o></dt> <dd>Set the 'work offline' option</dd>
+ <dt><o>pageinfo</o></dt> <dd>Desired info in the <ex>:pageinfo</ex> output</dd>
+ <dt><o>popups</o></dt> <dd>Where to show requested popup windows</dd>
+ <dt><o>previouspattern</o></dt> <dd>Patterns to use when guessing the 'previous' page in a document sequence</dd>
+ <dt><o>private</o></dt> <dd>Set the 'private browsing' option</dd>
+ <dt><o>runtimepath</o></dt> <dd>List of directories searched for runtime files</dd>
+ <dt><o>sanitizeitems</o></dt> <dd>The default list of private items to sanitize</dd>
+ <dt><o>sanitizetimespan</o></dt> <dd>The default sanitizer time span</dd>
+ <dt><o>scroll</o></dt> <dd>Number of lines to scroll with <k name="C-u"/> and <k name="C-d"/> commands</dd>
+ <dt><o>shell</o></dt> <dd>Shell to use for executing <ex>:!</ex> and <ex>:run</ex> commands</dd>
+ <dt><o>shellcmdflag</o></dt> <dd>Flag passed to shell when executing <ex>:!</ex> and <ex>:run</ex> commands</dd>
+ <dt><o>showmode</o></dt> <dd>Show the current mode in the command line</dd>
+ <dt><o>showstatuslinks</o></dt> <dd>Show the destination of the link under the cursor in the status bar</dd>
+ <dt><o>showtabline</o></dt> <dd>Control when to show the tab bar of opened web pages</dd>
+ <dt><o>smartcase</o></dt> <dd>Override the <o>ignorecase</o> option if the pattern contains uppercase characters</dd>
+ <dt><o>suggestengines</o></dt> <dd>Engine Alias which has a feature of suggest</dd>
+ <dt><o>titlestring</o></dt> <dd>Change the title of the window</dd>
+ <dt><o>urlseparator</o></dt> <dd>Set the separator regex used to separate multiple URL args</dd>
+ <dt><o>usermode</o></dt> <dd>Show current website with a minimal style sheet to make it easily accessible</dd>
+ <dt><o>verbose</o></dt> <dd>Define which info messages are displayed</dd>
+ <dt><o>visualbell</o></dt> <dd>Use visual bell instead of beeping on errors</dd>
+ <dt><o>wildcase</o></dt> <dd>Completion case matching mode</dd>
+ <dt><o>wildignore</o></dt> <dd>List of file patterns to ignore when completing files</dd>
+ <dt><o>wildmode</o></dt> <dd>Define how command-line completion works</dd>
+ <dt><o>wildoptions</o></dt> <dd>Change how command-line completion is done</dd>
+ <dt><o>wordseparators</o></dt> <dd>How words are split for hintmatching</dd>
+</dl>
+
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/insert.xml b/common/locale/en-US/insert.xml
new file mode 100644
index 00000000..d13f406f
--- /dev/null
+++ b/common/locale/en-US/insert.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="insert"
+ title="&liberator.appname; Insert Mode"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h2 tag="Insert-mode Insert mode-insert">Insert mode</h2>
+
+<p>
+ Insert mode is used to enter text in text boxes and text areas. When
+ <o>insertmode</o> is set, focusing on a text area immediately switches to
+ Insert mode.
+</p>
+
+<item>
+ <tags>i_i</tags>
+ <spec>i_i</spec>
+ <description>
+ <p>Starts Insert mode in text areas when <o>insertmode</o> is not set.</p>
+ </description>
+</item>
+
+
+
+<h2 tag="ins-special-keys">Insert-mode special keys</h2>
+
+<item>
+ <tags><![CDATA[i_<C-i>]]></tags>
+ <spec>&lt;C-i></spec>
+ <description>
+ <p>Launch the external editor. See the <o>editor</o> option.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[i_<C-]>]]></tags>
+ <spec>&lt;C-]></spec>
+ <description>
+ <p>Expand an Insert-mode abbreviation.</p>
+ </description>
+</item>
+
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/intro.xml b/common/locale/en-US/intro.xml
new file mode 100644
index 00000000..751530e4
--- /dev/null
+++ b/common/locale/en-US/intro.xml
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="intro"
+ title="&liberator.appname; Introduction"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+
+<logo/>
+
+<html:p style="text-align: center; font-weight: bold;">
+First there was a Navigator, then there was an Explorer.
+Later it was time for a Konqueror. Now it's time for an Imperator, the
+VIMperator :)
+</html:p>
+
+<h1 tag="intro">Introduction</h1>
+
+<link topic="http://vimperator.org">&liberator.appname;</link> is a free browser add-on for &liberator.host;,
+which makes it look and behave like the
+<link topic="http://www.vim.org">Vim</link>
+text editor. It has similar key bindings, and you could call it a modal
+web browser, as key bindings differ according to which mode you are in.
+
+<warning tag="warning">
+ To provide the most authentic Vim experience, the &liberator.host; menubar and toolbar are hidden.
+</warning>
+
+<p>If you really need them, type: <ex>:set guioptions+=mT</ex> to get them back.</p>
+<p>
+ If you don't like &liberator.appname; at all, you can uninstall it by typing
+ <ex>:extdelete &liberator.appname;</ex> or <ex>:extdisable &liberator.appname;</ex> to disable it.
+</p>
+<p>
+ If you like it but can't remember the shortcuts, then press
+ <key name="F1"/> or <ex>:help</ex> to get this help window back.
+</p>
+
+<tags>author donaton sponsor</tags>
+<p>
+ &liberator.appname; was initially written by
+ <link topic="mailto:stubenschrott@vimperator.org">Martin
+ Stubenschrott</link> but has found many other
+ <link topic="http://vimperator.org/trac/wiki/&liberator.appname;/Authors">contributors</link>
+ in the meanwhile. If you appreciate the work on &liberator.appname; and want to
+ encourage us working on it more, you can send us greetings, patches, or
+ donations (thanks a lot to
+ <link topic="http://vimperator.org/trac/wiki/&liberator.appname;/Donors">these
+ people</link>
+ who already did):
+</p>
+
+<html:form style="text-align: center;" action="https://www.paypal.com/cgi-bin/webscr" method="post"><fieldset class="paypal">
+<input type="hidden" name="cmd" value="_s-xclick"/>
+<input type="image" src="chrome://liberator/content/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"/>
+<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHPwYJKoZIhvcNAQcEoIIHMDCCBywCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBDDJfc+lXLBSAM9XSWv/ebzG/L7PTqYiIXaWVg8pfinDsfYaAcifcgCTuApg4v/VaZIQ/hLODzQu2EvmjGXP0twErA/Q8G5gx0l197PJSyVXb1sLwd1mgOdLF4t0HmDCdEI9z3H6CMhsb3xVwlfpzllSfCIqzlSpx4QtdzEZGzLDELMAkGBSsOAwIaBQAwgbwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI8ZOwn5QkHgaAgZjjtPQxB7Vw2rS7Voap9y+xdVLoczUQ97hw+bOdZLcGykBtfoVjdn76MS51QKjGp1fEmxkqTuQ+Fxv8+OVtHu0QF/qlrhmC3fJBRJ0IFWxKdXS+Wod4615BDaG2X1hzvCL443ffka8XlLSiFTuW43BumQs/O+6Jqsk2hcReP3FIQOvtWMSgGTALnZx7x5c60u/3NSKW5qvyWKCCA4cwggODMIIC7KADAgECAgEAMA0GCSqGSIb3DQEBBQUAMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTAeFw0wNDAyMTMxMDEzMTVaFw0zNTAyMTMxMDEzMTVaMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwUdO3fxEzEtcnI7ZKZL412XvZPugoni7i7D7prCe0AtaHTc97CYgm7NsAtJyxNLixmhLV8pyIEaiHXWAh8fPKW+R017+EmXrr9EaquPmsVvTywAAE1PMNOKqo2kl4Gxiz9zZqIajOm1fZGWcGS0f5JQ2kBqNbvbg2/Za+GJ/qwUCAwEAAaOB7jCB6zAdBgNVHQ4EFgQUlp98u8ZvF71ZP1LXChvsENZklGswgbsGA1UdIwSBszCBsIAUlp98u8ZvF71ZP1LXChvsENZklGuhgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAgV86VpqAWuXvX6Oro4qJ1tYVIT5DgWpE692Ag422H7yRIr/9j/iKG4Thia/Oflx4TdL+IFJBAyPK9v6zZNZtBgPBynXb048hsP16l2vi0k5Q2JKiPDsEfBhGI+HnxLXEaUWAcVfCsQFvd2A1sxRr67ip5y2wwBelUecP3AjJ+YcxggGaMIIBlgIBATCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA3MDMyMTIyMzI1OFowIwYJKoZIhvcNAQkEMRYEFCirrvlwYVHQiNEEbM6ikfx9+Dm5MA0GCSqGSIb3DQEBAQUABIGAtbsR8GdCdURLziozXLSdtY+zJZUPPeQFXXy2V1S/3ldiN+pRvd4HI7xz8mOY1UaKJZpwZnOosy9MflL1/hbiEtEyQ2Dm/s4jnTcJng/NjLIZu+0NYxXRJhB+zMJubnMMMjzNrGlqI4F2HAB/bCA1eOJ5B83Of3dA4rk/T/8GoSQ=-----END PKCS7-----"/>
+</fieldset>
+</html:form>
+
+<p>
+ If you prefer getting some nice products for your money, you can also support
+ us by buying some cool
+ <link topic="http://www.zazzle.com/maxauthority*">merchandise</link> like
+ t-shirts or mugs. Of course, as we believe in free, open source software, only
+ support us financially if you really like &liberator.appname; and the money doesn't hurt
+ — otherwise just use it, recommend it, and like it :)
+</p>
+
+<h2 tag="overview">Help topics</h2>
+
+<ol>
+ <li>
+ <link topic="tutorial">Quick-start tutorial</link>:
+ A quick-start tutorial for new users.
+ </li>
+ <li>
+ <link topic="starting">Starting &liberator.appname;</link>:
+ How &liberator.appname; starts up, where it reads the config file…
+ </li>
+ <li>
+ <link topic="browsing">Browsing</link>:
+ Basic mappings and commands needed for a browsing session (how to open
+ a web page or go back in history).
+ </li>
+ <li>
+ <link topic="buffer">Buffer</link>:
+ Operations on the current document like scrolling or copying text.
+ </li>
+ <li>
+ <link topic="cmdline">Command-line mode</link>:
+ Command-line editing.
+ </li>
+ <li>
+ <link topic="insert">Insert mode</link>:
+ Insert-mode editing.
+ </li>
+ <li>
+ <link topic="options">Options</link>:
+ A description of all options.
+ </li>
+ <li>
+ <link topic="pattern">Text search commands</link>:
+ Searching for text in the current buffer.
+ </li>
+ <li>
+ <link topic="tabs">Tabs</link>:
+ Managing your tabbed browsing session.
+ </li>
+ <li>
+ <link topic="hints">Hints</link>:
+ Selecting hyperlinks and other page elements.
+ </li>
+ <li>
+ <link topic="">Key mappings, abbreviations, and user-defined commands</link>:
+ Defining new key mappings, abbreviations and user commands.
+ </li>
+ <li>
+ <link topic="eval">Expression evaluation</link>:
+ Executing JavaScript.
+ </li>
+ <li>
+ <link topic="marks">Marks</link>:
+ Using bookmarks, QuickMarks, history and local marks.
+ </li>
+ <li>
+ <link topic="repeat">Repeating commands</link>:
+ Using macros to repeat recurring workflows.
+ </li>
+ <li>
+ <link topic="autocommands">Automatic commands</link>:
+ Automatically executing code on certain events.
+ </li>
+ <li>
+ <link topic="print">Printing</link>:
+ Printing pages.
+ </li>
+ <li>
+ <link topic="gui">&liberator.appname;'s GUI</link>:
+ Accessing &liberator.host; menus, dialogs and the sidebar.
+ </li>
+ <li>
+ <link topic="styling">Styling the GUI and web pages</link>:
+ Changing the styling of content pages and &liberator.appname; itself.
+ </li>
+ <li>
+ <link topic="message">Error and informational messages</link>:
+ A description of messages and error messages.
+ </li>
+ <li>
+ <link topic="developer">Developer information</link>:
+ How to write docs or plugins.
+ </li>
+ <li>
+ <link topic="various">Various commands</link>:
+ Other help which didn't fit into any other category.
+ </li>
+ <li>
+ <link topic="index">Index</link>:
+ An index of all commands and options.
+ </li>
+</ol>
+
+<p>
+You can also jump directly to the help of a specific command with <ex>:help o</ex>
+or <ex>:help :set</ex>.
+</p>
+
+<h2 tag="features">Features</h2>
+
+<ul>
+ <li>Vim-like keybindings (<k>h</k>, <k>j</k>, <k>k</k>, <k>l</k>, <k>gg</k>, <k>G</k>, <k>0</k>, <k>$</k>, <k>ZZ</k>, <k name="C-f"/>, etc.)</li>
+ <li>Ex commands (<ex>:quit</ex>, <ex>:open www.foo.com</ex>, …)</li>
+ <li>Tab completion available for all commands with support for "longest" matching when set in 'wildmode'</li>
+ <li>Hit-a-hint like navigation of links (start with <k>f</k> to follow a link)</li>
+ <li>Advanced completion of bookmark and history URLs (searching also in title, not only URL)</li>
+ <li>Vim-like statusline with a Wget-like progress bar</li>
+ <li>Minimal GUI (easily hide useless menubar and toolbar with <ex>:set guioptions=</ex>)</li>
+ <li>Ability to <ex>:source</ex> JavaScript files, and to use a <em>~/.vimperatorrc</em> file with syntax highlighting if you install vimperator.vim</li>
+ <li>Easy quick searches (<ex>:open foo</ex> will search for "foo" in google, <ex>:open ebay terminator</ex> will search for "terminator" on ebay) with support for &liberator.host; keyword bookmarks and search engines</li>
+ <li>Count supported for many commands (<em>3</em><k name="C-o"/> will go back 3 pages)</li>
+ <li>Beep on errors</li>
+ <li>Marks support (<k>m</k><em>a</em> to set mark a on a web page, <k>'</k><em>a</em> to go there)</li>
+ <li>QuickMarks support (quickly go to previously marked web pages with <k>go</k><a>a-zA-Z0-9</a>)</li>
+ <li><ex>:map</ex> and <ex>:command</ex> support (and feedkeys() for script writers)</li>
+ <li><ex>:time</ex> support for profiling</li>
+ <li>Move the text cursor and select text with Vim keys and a Visual mode</li>
+ <li>External editor support</li>
+ <li>Macros to replay key strokes</li>
+ <li>AutoCommands to execute actions on certain events</li>
+ <li>A comprehensive help system, explaining all commands, mappings and options</li>
+</ul>
+
+<h2 tag="contact">Contact</h2>
+
+<p>
+ Please send comments/bug reports/patches to the mailing list, where we will
+ properly answer any questions. You can also join the
+ <link topic="irc://irc.freenode.net/vimperator">#vimperator</link> IRC channel
+ on <link target="http://www.freenode.net/">Freenode</link> or check the
+ <link topic="http://vimperator.org/trac/wiki/&liberator.appname;/Wiki">Wiki</link> for
+ <link topic="http://vimperator.org/trac/wiki/&liberator.appname;/FAQ">
+ frequently asked questions (FAQ)
+ </link>. Make sure, you have read the TODO file first, as we are aware of many
+ things which can be improved when we find time for it or receive patches.
+</p>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/map.xml b/common/locale/en-US/map.xml
new file mode 100644
index 00000000..c5fb6f5c
--- /dev/null
+++ b/common/locale/en-US/map.xml
@@ -0,0 +1,605 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="map"
+ title="&liberator.appname; Key Mappings"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1>Key mappings, abbreviations, and user-defined commands</h1>
+
+<h2 tag="key-mapping mapping map macro">Key mapping</h2>
+
+<p>
+ The key mapping commands can be used to either redefine the standard key
+ bindings or define new ones. A mapping consists of a key, or <t>key-sequence</t>,
+ which is translated to a string of characters. Example:
+</p>
+<code><ex>:map <k name="F2"/> :echo new Date().toDateString()<k name="CR"/></ex></code>
+<p>
+ will echo the current date to the command line when <k name="F2"/> is pressed.
+</p>
+
+<tags>:map-modes</tags>
+
+<p>
+ Keys can be mapped in four distinct modes:
+</p>
+
+<ul>
+ <li>Normal mode: When browsing normally</li>
+ <li>Visual mode: When selecting text with the cursor keys</li>
+ <li>Insert mode: When interacting with text fields on a website</li>
+ <li>Command-line mode: When typing into the &liberator.appname; command line</li>
+</ul>
+
+<warning>
+ Mappings are NOT saved between sessions, make sure you put them in your
+ vimperatorrc file!
+</warning>
+
+<h3 tag=":map-commands">Map commands</h3>
+
+<item>
+ <tags>:map</tags>
+ <spec>:map <a>lhs</a> <a>rhs</a></spec>
+ <tags>:nm :nmap</tags>
+ <spec>:nm<oa>ap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:vm :vmap</tags>
+ <spec>:vm<oa>ap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:im :imap</tags>
+ <spec>:im<oa>ap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:cm :cmap</tags>
+ <spec>:cm<oa>ap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <description>
+ <p>
+ Map the <t>key-sequence</t> <a>lhs</a> to <a>rhs</a> for the applicable mode(s). The <a>rhs</a> is
+ remapped, allowing for nested and recursive mappings.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:no :noremap</tags>
+ <spec>:no<oa>remap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:nn :nnoremap</tags>
+ <spec>:nn<oa>oremap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:vn :vnoremap</tags>
+ <spec>:vn<oa>oremap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:ino :inoremap</tags>
+ <spec>:ino<oa>remap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:cno :cnoremap</tags>
+ <spec>:cno<oa>remap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <description>
+ <p>
+ Map the <t>key-sequence</t> <a>lhs</a> to <a>rhs</a> for the applicable mode(s). No remapping of
+ the <a>rhs</a> is performed.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:unm :unmap</tags>
+ <spec>:map <a>lhs</a> <a>rhs</a></spec>
+ <tags>:nun :nunmap</tags>
+ <spec>:nun<oa>map</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:vun :vunmap</tags>
+ <spec>:vun<oa>map</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:iu :iunmap</tags>
+ <spec>:iu<oa>nmap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <tags>:cu :cunmap</tags>
+ <spec>:cu<oa>nmap</oa> <a>lhs</a> <a>rhs</a></spec>
+ <description>
+ <p>Remove the mapping of <a>lhs</a> for the applicable mode(s).</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:mapc :mapclear</tags>
+ <spec>:mapc<oa>lear</oa></spec>
+ <tags>:nmapc :nmapclear</tags>
+ <spec>:nmapc<oa>lear</oa></spec>
+ <tags>:vmapc :vmapclear</tags>
+ <spec>:vmapc<oa>lear</oa></spec>
+ <tags>:imapc :imapclear</tags>
+ <spec>:imapc<oa>lear</oa></spec>
+ <tags>:cmapc :cmapclear</tags>
+ <spec>:cmapc<oa>lear</oa></spec>
+ <description>
+ <p>
+ Remove all mappings for the applicable mode(s). All user-defined mappings are
+ cleared.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <spec>:map</spec>
+ <spec>:nm<oa>ap</oa></spec>
+ <spec>:vm<oa>ap</oa></spec>
+ <spec>:im<oa>ap</oa></spec>
+ <spec>:cm<oa>ap</oa></spec>
+ <description>
+ <p>List all mappings for the applicable mode(s).</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:map_l</tags>
+ <spec>:map <a>lhs</a></spec>
+ <tags>:nmap_l</tags>
+ <spec>:nm<oa>ap</oa> <a>lhs</a></spec>
+ <tags>:vmap_l</tags>
+ <spec>:vm<oa>ap</oa> <a>lhs</a></spec>
+ <tags>:imap_l</tags>
+ <spec>:im<oa>ap</oa> <a>lhs</a></spec>
+ <tags>:cmap_l</tags>
+ <spec>:cm<oa>ap</oa> <a>lhs</a></spec>
+ <description>
+ <p>List all mappings starting with <a>lhs</a> for the applicable mode(s).</p>
+ </description>
+</item>
+
+
+
+<h3 tag=":map-arguments">Special arguments</h3>
+
+<tags>:map-&lt;silent></tags>
+
+<p>
+ When the first argument to one of the mapping commands is <k name="silent"/>,
+ <a>rhs</a> is not echoed to the command line, nor, for that matter, anything
+ else until the command has completed.
+</p>
+
+
+<p>
+ Below is an overview of which modes each map command applies to:
+</p>
+
+<!-- TODO: table format -->
+
+<code>
+:map :noremap :unmap :mapclear – both Normal and Visual modes
+:nmap :nnoremap :nunmap :nmapclear – Normal mode
+:vmap :vnoremap :vunmap :vmapclear – Visual mode
+:imap :inoremap :iunmap :imapclear – Insert mode
+:cmap :cnoremap :cunmap :cmapclear – Command-line mode
+</code>
+
+<h3 tag="key-notation,key-sequence">Key sequences</h3>
+
+<p>
+ For most keys, the key-sequence is the same as the character you see when you
+ type that key, however there are some exceptions which allow for a much larger
+ number of keys to be used in mappings.
+</p>
+
+<ul>
+ <li><k name="lt"/>, <k>&lt;</k>, <k name="Space"/>, <k>\ </k> allow a literal &lt; or space character.</li>
+ <li>', " and \ must be used to avoid escaping issues when mapping a quote or backslash.</li>
+ <li>
+ <k name="Left"/> <k name="Right"/> <k name="Up"/>
+ <k name="Down"/> <k name="PageUp"/> <k name="PageDown"/>
+ <k name="Esc"/> <k name="CR"/> (for carriage return/enter)
+ </li>
+ <li><k name="CapsLock"/> <k name="NumLock"/> <k name="Ins"/> <k name="Del"/> <k name="Tab"/> <k name="BS"/> (for a backspace)</li>
+ <li><k name="F1"/> through <k name="F12"/> work as expected</li>
+</ul>
+
+<p>
+ Most keyboards have some modifiers such as the control, alt or meta keys. In
+ order to create a mapping that uses these keys the correct prefix must be used
+ within the angle brackets.
+</p>
+
+<ol>
+ <li><k name="C-x"/>: The control or ctrl key.</li>
+ <li><k name="A-x"/>: The alt key.</li>
+ <li><k name="M-x"/>: The meta key, windows key, or command key</li>
+ <li><k name="S-x"/>: The shift key.</li>
+</ol>
+
+<p>
+ These prefixes can be combined however you see fit, though you should note that
+ within angle brackets all alphabetic characters are read as lowercase. In order
+ to force them to be uppercase, you must specify the S- prefix as well.
+ Additionally, you should never use the S- prefix with a number or piece of
+ punctuation, even if you require a shift to type that character; doing so will
+ give you a mapping that cannot be typed. With non-character keys, tab and
+ space, the S- modifier works just like C- A- and M-. Some examples may clarify
+ the situation:
+</p>
+
+<ol>
+ <li><k>xc</k>: type x, and then type c</li>
+ <li><k name="C-x">c</k>: hold control and type x, then type c without control</li>
+ <li><k name="C-2"/>: type 2 while holding control</li>
+ <li><k name="C-@"/>: type @ while holding control</li>
+ <li><k name="S-Space"/>: press space while holding shift</li>
+ <li><k name="C-A-j"/>: press j while holding control and alt</li>
+ <li><k name="C-A-J"/>: exactly the same as above</li>
+ <li><k name="C-A-S-j"/>: press J while holding control and alt</li>
+</ol>
+
+<h3 tag=":map-special-chars">Special characters</h3>
+
+<item>
+ <tags><![CDATA[<Nop>]]></tags>
+ <spec>&lt;Nop></spec>
+ <description>
+ <p>
+ Do nothing. This command is useful for disabling a specific mapping.
+ <ex>:map <k name="C-n"/> <k name="Nop"/></ex> will prevent <k name="C-n"/> from doing anything.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<CR> map_return]]></tags>
+ <spec>&lt;CR></spec>
+ <description>
+ <p>
+ Expand to a line terminator in a key mapping. An Ex command in the <a>rhs</a> of a
+ mapping requires a line terminator after it so that it is executed when the
+ mapping is expanded. <k name="CR"/> should be used for this purpose.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<Leader> mapleader]]></tags>
+ <spec>&lt;Leader></spec>
+ <description>
+ <p>
+ Expands to the value of the "mapleader" variable in key mapping. If
+ "mapleader" is unset or empty then <str>\</str> is used. Example:
+ </p>
+ <code><ex>:map <k name="Leader"/>h :echo <str>Hello</str><k name="CR"/></ex></code>
+ <p>works like</p>
+ <code><ex>:map \h :echo <str>Hello</str><k name="CR"/></ex></code>
+ <p>but after</p>
+ <code><ex>let mapleader = <str>,</str></ex></code>
+ <p>it works like</p>
+ <code><ex>:map ,h :echo <str>Hello</str><k name="CR"/></ex></code>
+ </description>
+</item>
+
+
+<h2 tag="abbreviations">Abbreviations</h2>
+
+<p>
+ &liberator.appname; can automatically replace words identified as abbreviations,
+ which may be used to save typing or to correct commonly misspelled
+ words. An abbreviation can be one of three types that are defined by the
+ types of constituent characters. Whitespace and quotes are non-keyword
+ types, and all other characters are keyword types.
+</p>
+
+<ol>
+ <li>A "full-id" abbreviation consists entirely of keyword characters (e.g., "teh", "msoft").</li>
+ <li>An "end-id" abbreviation ends in keyword character but otherwise contains all non-keyword characters (e.g., "'i").</li>
+ <li>A "non-id" abbreviation ends in a non-keyword character but otherwise contains any non-whitespace character (e.g., "def'").</li>
+</ol>
+
+<p>
+ Strings that cannot be abbreviations include "a'b" and "a b".
+</p>
+
+<p>
+ An abbreviation is recognized when a space, quote character, or
+ <k name="C-]"/> is typed after the abbreviation. There are no default
+ abbreviations, and abbreviations are never recursive.
+</p>
+
+<item>
+ <tags>:ab :abbreviate</tags>
+ <spec>:ab<oa>breviate</oa> <a>lhs</a> <a>rhs</a></spec>
+ <spec>:ab<oa>breviate</oa> <a>lhs</a></spec>
+ <spec>:ab<oa>breviate</oa></spec>
+ <description>
+ <p>
+ Abbreviate a key sequence. Abbreviate <a>lhs</a> to <a>rhs</a>. If only <a>lhs</a> is given,
+ list all abbreviations that start with <a>lhs</a>. If no arguments are given,
+ list all abbreviations.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:ca :cabbrev</tags>
+ <spec>:ca<oa>bbrev</oa> <a>lhs</a> <a>rhs</a></spec>
+ <spec>:ca<oa>bbrev</oa> <a>lhs</a></spec>
+ <spec>:ca<oa>bbrev</oa></spec>
+ <description>
+ <p>
+ Abbreviate a key sequence for Command-line mode. Same as <ex>:ab<oa>breviate</oa></ex>,
+ but for Command-line mode only.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:ia :iabbrev</tags>
+ <spec>:ia<oa>bbrev</oa> <a>lhs</a> <a>rhs</a></spec>
+ <spec>:ia<oa>bbrev</oa> <a>lhs</a></spec>
+ <spec>:ia<oa>bbrev</oa></spec>
+ <description>
+ <p>
+ Abbreviate a key sequence for Insert mode. Same as <ex>:ab<oa>breviate</oa></ex> but
+ for Insert mode only.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:una :unabbreviate</tags>
+ <spec>:una<oa>bbreviate</oa> <a>lhs</a></spec>
+ <description>
+ <p>Remove an abbreviation.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:cuna :cunabbrev</tags>
+ <spec>:cuna<oa>bbrev</oa> <a>lhs</a></spec>
+ <description>
+ <p>
+ Remove an abbreviation for Command-line mode. Same as <ex>:una<oa>bbreviate</oa></ex>,
+ but for Command-line mode only.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:iuna :iunabbrev</tags>
+ <spec>:iuna<oa>bbrev</oa> <a>lhs</a></spec>
+ <description>
+ <p>
+ Remove an abbreviation for Insert mode. Same as <ex>:una<oa>bbreviate</oa></ex> but for
+ Insert mode only.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:abc :abclear</tags>
+ <spec>:abc<oa>lear</oa></spec>
+ <description>
+ <p>Remove all abbreviations.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:cabc :cabclear</tags>
+ <spec>:cabc<oa>lear</oa></spec>
+ <description>
+ <p>Remove all abbreviations for Command-line mode.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:iabc :iabclear</tags>
+ <spec>:iabc<oa>lear</oa></spec>
+ <description>
+ <p>Remove all abbreviations for Insert mode.</p>
+ </description>
+</item>
+
+
+<h2 tag="user-commands">User-defined commands</h2>
+
+<item>
+ <tags>:com :command</tags>
+ <spec>:com<oa>mand</oa></spec>
+ <description>
+ <p>List all user-defined commands.</p>
+ </description>
+</item>
+
+
+<item>
+ <spec>:com<oa>mand</oa> <a>cmd</a></spec>
+ <description>
+ <p>List all user-defined commands that start with <a>cmd</a>.</p>
+ </description>
+</item>
+
+
+<item>
+ <spec>:com<oa>mand</oa><oa>!</oa> <oa><a>attr</a>…</oa> <a>cmd</a> <a>rep</a></spec>
+ <description>
+ <p>
+ Define a new user command. The name of the command is <a>cmd</a> and its replacement
+ text is <a>rep</a>. The command's attributes are <a>attr</a>. If a command with this name
+ already exists an error is reported unless <oa>!</oa> is specified, in which case the
+ command is redefined. Unlike Vim, the command may start with a lowercase
+ letter.
+ </p>
+
+ <p>
+ The command's behavior can be specified by providing attributes when the
+ command is defined.
+ </p>
+
+ <p tag="E175 E176 :command-nargs">
+ Argument handling
+ </p>
+
+ <p>
+ By default user commands accept no arguments. This can be changed by specifying
+ the -nargs attribute.
+ </p>
+
+ <p>The valid values are:</p>
+
+ <dl>
+ <dt>-nargs=0</dt><dd>No arguments are allowed (default)</dd>
+ <dt>-nargs=1</dt><dd>One argument is allowed</dd>
+ <dt>-nargs=*</dt><dd>Zero or more arguments are allowed</dd>
+ <dt>-nargs=?</dt><dd>Zero or one argument is allowed</dd>
+ <dt>-nargs=+</dt><dd>One or more arguments are allowed</dd>
+ </dl>
+
+ <p tag="E180 E181 :command-complete">
+ Argument completion
+ </p>
+
+ <p>
+ Completion for arguments to user defined commands is not available by default.
+ Completion can be enabled by specifying one of the following arguments to the
+ -complete option when defining the command.
+ </p>
+
+ <dl>
+ <dt>altstyle</dt> <dd>alternate author style sheets</dd>
+ <dt>bookmark</dt> <dd>bookmarks</dd>
+ <dt>buffer</dt> <dd>buffers</dd>
+ <dt>color</dt> <dd>color schemes</dd>
+ <dt>command</dt> <dd>Ex commands</dd>
+ <dt>dialog</dt> <dd>&liberator.host; dialogs</dd>
+ <dt>dir</dt> <dd>directories</dd>
+ <dt>environment</dt> <dd>environment variables</dd>
+ <dt>event</dt> <dd>autocommand events</dd>
+ <dt>file</dt> <dd>files</dd>
+ <dt>help</dt> <dd>help tags</dd>
+ <dt>highlight</dt> <dd>highlight groups</dd>
+ <dt>javascript</dt> <dd>JavaScript expressions</dd>
+ <dt>macro</dt> <dd>named macros</dd>
+ <dt>mapping</dt> <dd>user mappings</dd>
+ <dt>menu</dt> <dd>menu items</dd>
+ <dt>option</dt> <dd>&liberator.appname; options</dd>
+ <dt>preference</dt> <dd>&liberator.host; preferences</dd>
+ <dt>search</dt> <dd>search engines and keywords</dd>
+ <dt>shellcmd</dt> <dd>shell commands</dd>
+ <dt>sidebar</dt> <dd>sidebar panels</dd>
+ <dt>url</dt> <dd>URLs</dd>
+ <dt>usercommand</dt> <dd>user commands</dd>
+ <dt>custom,<a>func</a></dt><dd>custom completion, provided by <a>func</a></dd>
+ </dl>
+
+ <p tag="E467 E468 :command-completion-custom">
+ Custom completion
+ </p>
+
+ <p>
+ Custom completion can be provided by specifying the <str>custom,<a>func</a></str> argument to
+ -complete. The <a>func</a> is called with two arguments, a completion context, and
+ an object describing the command's arguments. It should set the context's
+ <str>completions</str> property, or return an object, with <str>items</str> and <str>start</str>
+ properties, describing the completions and where the replacement is to start.
+ </p>
+
+ <p>
+ <em>start</em> is the index into the word being completed at which the returned values
+ should be applied and <em>completions</em> is a two dimensional array of the form:
+ [[arg1, description1], [arg2, description2], …]
+ </p>
+
+ <!-- TODO: add examples -->
+
+ <p tag="E177 E178 :command-count">
+ Count handling
+ </p>
+
+ <p>
+ By default user commands do not accept a count. Use the -count attribute if
+ you'd like to have a count passed to your user command. This will then be
+ available for expansion as &lt;count> in the argument.
+ </p>
+
+ <p tag=":command-bang">
+ Special cases
+ </p>
+
+ <p>
+ By default a user command does not have a special version, i.e. a version
+ executed with the ! modifier. Providing the -bang attribute will enable this
+ and &lt;bang> will be available in the argument.
+ </p>
+
+ <p tag=":command-description">
+ Command description
+ </p>
+
+ <p>
+ The command's description text can be set with -description. Otherwise it will
+ default to "User-defined command".
+ </p>
+
+ <p tag=":command-replacement-text">
+ Replacement text
+ </p>
+
+ <p>
+ The replacement text <a>rep</a> is scanned for escape sequences and these are
+ replaced with values from the user-entered command line. The resulting string
+ is then executed as an Ex command.
+ </p>
+
+ <p>The valid escape sequences are:</p>
+
+ <dl>
+ <dt>&lt;args></dt> <dd>The command arguments exactly as supplied</dd>
+ <dt>&lt;count></dt><dd>Any supplied count, e.g. 5</dd>
+ <dt>&lt;bang></dt> <dd>! if the command was executed with the ! modifier</dd>
+ <dt>&lt;lt></dt>
+ <dd>
+ A literal '&lt;' character to allow for a literal copy of one
+ of the escape sequences. E.g., &lt;lt>args> will expand to a
+ literal &lt;args>
+ </dd>
+ </dl>
+
+ <p>
+ "q-" can be prefixed to the escape sequence so that the value is quoted, making
+ it suitable for expression evaluation. Example: &lt;q-args>
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:comc :comclear</tags>
+ <spec>:comc<oa>lear</oa></spec>
+ <description>
+ <p>Delete all user-defined commands.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:delc :delcommand</tags>
+ <spec>:delc<oa>ommand</oa> <a>cmd</a></spec>
+ <description>
+ <p>Delete the user-defined command <a>cmd</a>.</p>
+ </description>
+</item>
+
+
+<h2 tag="command-examples">Examples</h2>
+
+<p>Add a :Google command to search via google:</p>
+<code><ex>:command -nargs=* Google open google &lt;args></ex></code>
+
+<!-- TODO: add decent examples -->
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/marks.xml b/common/locale/en-US/marks.xml
new file mode 100644
index 00000000..084cc64b
--- /dev/null
+++ b/common/locale/en-US/marks.xml
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="marks"
+ title="&liberator.appname; Marks"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="different-marks marks">Marks</h1>
+
+<p>
+ Vimperator supports a number of different marks:
+</p>
+
+<ul>
+ <li>Bookmarks which allow you to mark a web page as one of your favorites for easy access.</li>
+ <li>QuickMarks allow you to define up to 62 (a-zA-Z0-9) web sites (or groups of web sites) which you visit most often.</li>
+ <li>Local marks to store the position within a web page.</li>
+ <li>History is also a special type of marks, as Vimperator automatically remembers sites which you have visited in the past.</li>
+</ul>
+
+<h1 tag="bookmarks">Bookmarks</h1>
+
+<item>
+ <tags>a :bma :bmark</tags>
+ <spec>:bma[rk][!] <oa>-title=title</oa> <oa>-keyword=kw</oa> <oa>-tag=tag1,tag2</oa> <oa>url</oa></spec>
+ <spec>a</spec>
+ <description>
+ <p>Add a bookmark.</p>
+
+ <p>The following options are interpreted:</p>
+
+ <ul>
+ <li>-title="custom title" (short option: -t)</li>
+ <li>-tag=comma,separated,tag,list (short option: -T)</li>
+ <li>-keyword=keyword (short option: -k)</li>
+ </ul>
+
+ <p>
+ If [!] is present, a new bookmark is always added. Otherwise, the first
+ bookmark matching <oa>url</oa> is updated.
+ </p>
+
+ <p>
+ When creating a new bookmark, if <oa>-title</oa> isn't given, either the web
+ page's title or URL is used. You can omit the optional <oa>url</oa> argument, so
+ just do <ex>:bmark</ex> to bookmark the currently loaded web page with a default
+ title and without any tags.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>A</tags>
+ <spec>A</spec>
+ <description>
+ <p>
+ Toggle bookmarked state of current URL. Add/remove a bookmark for the current
+ location, depending on if it is already bookmarked or not. In contrast to the
+ <ex>:bmark</ex> command, the bookmark is just <em>starred</em> which means it is placed
+ in the <em>Unfiled Bookmarks Folder</em> instead of the bookmarks menu.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:bmarks</tags>
+ <spec>:bmarks[!] <oa>filter</oa></spec>
+ <description>
+ <p>
+ List or open multiple bookmarks. Open the message window at the bottom of the
+ screen with all bookmarks which match <oa>filter</oa> either in the title or
+ URL. You can then use extended hint commands like <k>;o</k> to open the desired
+ bookmark.
+ </p>
+
+ <p>
+ The special version <ex>:bmarks!</ex> works the same as <ex>:bmarks</ex> except it
+ opens all the found bookmarks in new tabs.
+ </p>
+
+ <p>Filter can also contain the following options:</p>
+
+ <ul>
+ <li>-tag=comma,separated,tag,list (short option: -T)</li>
+ <li>-max=N (short options: -m)</li>
+ </ul>
+ </description>
+</item>
+
+<item>
+ <tags>:delbm :delbmarks</tags>
+ <spec>:delbm[arks] <oa>url</oa></spec>
+ <spec>:delbm[arks]!</spec>
+ <description>
+ <p>
+ Delete a bookmark. Deletes *all* bookmarks which match the <oa>url</oa>. If
+ omitted, <oa>url</oa> defaults to the URL of the current buffer. Use <k name="Tab"/>
+ key on a string to complete the URL which you want to delete.
+ </p>
+
+ <p>If ! is specified then all bookmarks will be deleted.</p>
+ </description>
+</item>
+<!-- TODO: why is this duplicated in browsing? -->
+<h1 tag="history">History</h1>
+
+<item>
+ <tags><![CDATA[<C-o>]]></tags>
+ <spec><![CDATA[[count]<C-o>]]></spec>
+ <description>
+ <p>
+ Go to an older position in the jump list. The jump list is just the browser
+ history for now. If <oa>count</oa> is specified go back <oa>count</oa> pages.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags><![CDATA[<C-i>]]></tags>
+ <spec><![CDATA[[count]<C-i>]]></spec>
+ <description>
+ <p>
+ Go to a newer position in the jump list. The jump list
+ is just the browser history for now. If <oa>count</oa>
+ is specified go forward <oa>count</oa> pages.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags><![CDATA[<M-Left> <A-Left> H]]></tags>
+ <spec>[count]H</spec>
+ <description>
+ <p>Go back in the browser history. If <oa>count</oa> is specified go back <oa>count</oa> pages.</p>
+ </description>
+</item>
+
+<item>
+ <tags><![CDATA[<M-Right> <A-Right> L]]></tags>
+ <spec>[count]L</spec>
+ <description>
+ <p>
+ Go forward in the browser history. If <oa>count</oa> is specified go forward <oa>count</oa>
+ pages.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:ba :back</tags>
+ <spec>:[count]ba[ck] <oa>url</oa></spec>
+ <spec>:[count]ba[ck]!</spec>
+ <description>
+ <p>
+ Go back in the browser history. If <oa>count</oa> is specified go back <oa>count</oa> pages.
+ </p>
+ <p>
+ The special version <ex>:back!</ex> goes to the beginning of the browser history.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:fw :fo :forward</tags>
+ <spec>:[count]fo[rward] <oa>url</oa></spec>
+ <spec>:[count]fo[rward]!</spec>
+ <description>
+ <p>
+ Go forward in the browser history. If <oa>count</oa> is specified go forward <oa>count</oa>
+ pages.
+ </p>
+ <p>
+ The special version <ex>:forward!</ex> goes to the end of the browser history.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:hs :hist :history</tags>
+ <spec>:hist[ory][!] <oa>filter</oa></spec>
+ <description>
+ <p>
+ Show recently visited URLs. Open the message window at the bottom of the screen
+ with all history items which match <oa>filter</oa> either in the title or URL.
+ </p>
+
+ <p>
+ The special version <ex>:history!</ex> works the same as <ex>:history</ex> except
+ it opens all the found items in new tabs.
+ </p>
+
+ <p>Filter can also contain the following options:</p>
+
+ <ul>
+ <li>-max=N (short options: -m)</li>
+ </ul>
+ </description>
+</item>
+
+<h1 tag="quickmarks">QuickMarks</h1>
+
+<item>
+ <tags>go</tags>
+ <spec>a-zA-Z0-9</spec>
+ <description>
+ <p>
+ Jump to a QuickMark in the current tab. Open any QuickMark in the current tab.
+ You can mark any URLs with <k>M</k><a>a-zA-Z0-9</a>. These QuickMarks are
+ persistent across browser sessions.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>gn</tags>
+ <spec>a-zA-Z0-9</spec>
+ <description>
+ <p>
+ Jump to a QuickMark in a new tab. Works like
+ <k>go</k><a>a-zA-Z0-9</a> but opens the QuickMark in a
+ new tab. Whether the new tab is activated or not depends
+ on the <o>activate</o> option.
+ </p>
+ <p>
+ Mnemonic: Go in a new tab. <k>gt</k> would make more
+ sense but is already taken.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>M</tags>
+ <spec>a-zA-Z0-9</spec>
+ <description>
+ <p>
+ Add new QuickMark for current URL. You can go to a
+ marked URL in the current tab with
+ <k>go</k><a>a-zA-Z0-9</a> or in a new tab with
+ <k>gn</k><a>a-zA-Z0-9</a>. These QuickMarks are
+ persistent across browser sessions.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:delqm :delqmarks</tags>
+ <spec>marks</spec>
+ <spec>:delqm[arks]!</spec>
+ <description>
+ <p>Delete the specified QuickMarks. QuickMarks are presented as a list.</p>
+
+ <p>Examples:</p>
+
+ <ul>
+ <li><ex>:delqmarks Aa b p</ex> deletes QuickMarks A, a, b and p</li>
+ <li><ex>:delqmarks b-p</ex> deletes all QuickMarks in the range b to p</li>
+ <li><ex>:delqmarks!</ex> deletes all QuickMarks</li>
+ </ul>
+ </description>
+</item>
+
+<item>
+ <tags>:qma :qmark</tags>
+ <spec>a-zA-Z0-9</spec>
+ <description>
+ <p>
+ Mark a URL with a letter for quick access. You can also mark whole groups
+ like this:
+ </p>
+
+ <p>
+ <ex>:qmark f http://forum1.com, http://forum2.com, imdb some artist</ex>
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:qmarks</tags>
+ <spec>:qmarks <oa>arg</oa></spec>
+ <description>
+ <p>
+ Show all QuickMarks. If <oa>arg</oa> is specified then
+ limit the list to those QuickMarks mentioned.
+ </p>
+ </description>
+</item>
+<h1 tag="localmarks">Local marks</h1>
+
+<item>
+ <tags>m</tags>
+ <spec>a-zA-Z</spec>
+ <description>
+ <p>
+ Set mark at the cursor position. Marks a-z are local to the buffer, whereas
+ A-Z are valid between buffers.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>` '</tags>
+ <spec>a-zA-Z</spec>
+ <description>
+ <p>
+ Jump to the mark. Marks a-z are local to the buffer, whereas A-Z are valid
+ between buffers.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:delm :delmarks</tags>
+ <spec>marks</spec>
+ <spec>:delm[arks]!</spec>
+ <description>
+ <p>Delete the specified marks. Marks are presented as a list.</p>
+
+ <p>Examples:</p>
+
+ <ul>
+ <li><ex>:delmarks Aa b p</ex> deletes marks A, a, b and p</li>
+ <li><ex>:delmarks b-p</ex> deletes all marks in the range b to p</li>
+ <li><ex>:delmarks!</ex> deletes all marks for the current buffer</li>
+ </ul>
+
+ </description>
+</item>
+
+<item>
+ <tags>:ma :mark</tags>
+ <spec>a-zA-Z</spec>
+ <description>
+ <p>Mark current location within the web page.</p>
+ </description>
+</item>
+
+<item>
+ <tags>:marks</tags>
+ <spec>:marks <oa>arg</oa></spec>
+ <description>
+ <p>
+ Show all location marks of the current web page. If
+ <oa>arg</oa> is specified then limit the list to those
+ marks mentioned.
+ </p>
+ </description>
+</item>
+</document>
+
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/message.xml b/common/locale/en-US/message.xml
new file mode 100644
index 00000000..e4b134ef
--- /dev/null
+++ b/common/locale/en-US/message.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="message"
+ title="&liberator.appname; Messages"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="messages">Error and informational messages</h1>
+
+<tags>message-history</tags>
+
+<p>
+ &liberator.appname; stores all info and error messages in a message
+ history. The type of info messages output can be controlled by
+ the <o>verbose</o> option. The number of stored messages can be set
+ with the <o>messages</o> option.
+</p>
+
+<item>
+ <tags>:mes :messages</tags>
+ <spec>:mes<oa>sages</oa></spec>
+ <description>
+ <p>Display previously given messages.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:messc :messclear</tags>
+ <spec>:messc<oa>lear</oa></spec>
+ <description>
+ <p>Clear the message history.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[g<]]></tags>
+ <spec>g&lt;</spec>
+ <description>
+ <p>
+ Redisplay the last command output. Only the most recent command's output is
+ available.
+ </p>
+ </description>
+</item>
+
+<tags>pager more-prompt</tags>
+
+<code>
+ -- More --
+ -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit
+</code>
+
+<p>
+ This message is given when the message window is filled with messages. It is
+ only given when the <o>more</o> option is on. It is highlighted with the <em>MoreMsg</em>
+ group.
+</p>
+
+<dl>
+ <dt><k name="CR"/> or j or <k name="Down"/> </dt><dd>one more line</dd>
+ <dt>d </dt><dd>down a page (half a screen)</dd>
+ <dt><k name="Space"/> or <k name="PageDown"/></dt><dd>down a screen</dd>
+ <dt>G </dt><dd>down all the way, until the hit-enter prompt</dd>
+ <dt/><dd/>
+ <dt><k name="BS"/> or k or <k name="Up"/> </dt><dd>one line back</dd>
+ <dt>u </dt><dd>up a page (half a screen)</dd>
+ <dt>b or <k name="PageUp"/> </dt><dd>back a screen</dd>
+ <dt>g </dt><dd>back to the start</dd>
+ <dt/><dd/>
+ <dt>q, <k name="Esc"/> or CTRL-C </dt><dd>stop the listing</dd>
+ <dt>: </dt><dd>stop the listing and enter a command-line</dd>
+ <dt>; </dt><dd>start an <t>extended-hints</t> command</dd>
+ <dt><k name="C-Y"/> </dt><dd>yank (copy) a modeless selection to the clipboard</dd>
+</dl>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/options.xml b/common/locale/en-US/options.xml
new file mode 100644
index 00000000..f891c79c
--- /dev/null
+++ b/common/locale/en-US/options.xml
@@ -0,0 +1,1351 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="options"
+ title="&liberator.appname; Options"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="options">Options</h1>
+
+<p>
+ &liberator.appname; has a number of internal variables and switches which can be set to
+ achieve special effects. These options come in 5 forms:
+</p>
+
+<dl>
+ <dt>boolean</dt> <dd>can only be on or off</dd>
+ <dt>number</dt> <dd>has a numeric value</dd>
+ <dt>string</dt> <dd>has a string value</dd>
+ <dt>charlist</dt> <dd>like a string but with unique characters</dd>
+ <dt>stringlist</dt> <dd>a comma-separated list of strings</dd>
+</dl>
+
+<h2 tag="set-option E764">Setting options</h2>
+
+<item>
+ <tags>:set :se</tags>
+ <spec>:se[t]</spec>
+ <description>
+ <p>Show all options that differ from their default value.</p>
+ </description>
+</item>
+
+<item>
+ <spec>:se[t] all</spec>
+ <description>
+ <p>Show all options.</p>
+ </description>
+</item>
+
+<item>
+ <tags>E518 E519</tags>
+ <spec>:se[t] <a>option</a>?</spec>
+ <description>
+ <p>Show value of <a>option</a>.</p>
+ </description>
+</item>
+
+<item>
+ <spec>:se[t] <a>option</a> […]</spec>
+ <description>
+ <p>
+ Toggle option: set, switch it on.
+ Number option: show value.
+ String option: show value.
+ </p>
+ </description>
+</item>
+
+<item>
+ <spec>:se[t] no<a>option</a> […]</spec>
+ <description>
+ <p>Toggle option: Reset, switch it off.</p>
+ </description>
+</item>
+
+<item>
+ <spec>:se[t] <a>option</a>! […]</spec>
+ <spec>:se[t] inv<a>option</a> […]</spec>
+ <description>
+ <p>Toggle option: Invert value.</p>
+ </description>
+</item>
+
+<item>
+ <spec>:se[t] inv<a>option</a>=<a>value</a> […]</spec>
+ <spec>:se[t] <a>option</a>!=<a>value</a> […]</spec>
+ <description>
+ <p>For list options, toggle the specified values.</p>
+
+ <p>If the option is a list, the given values are toggled. Given</p>
+ <code><ex>:set opt=foo,bar</ex></code>
+ <p>then,</p>
+ <code><ex>:set opt!=foo,baz</ex></code>
+ <p>has the same result as</p>
+ <code><ex>:set opt=bar,baz</ex></code>
+ </description>
+</item>
+
+<item>
+ <tags>:set-default</tags>
+ <spec>:se[t] <a>option</a>&amp; […]</spec>
+ <description>
+ <p>Reset option to its default value.</p>
+ </description>
+</item>
+
+<item>
+ <spec>:se[t] all&amp;</spec>
+ <description>
+ <p>Set all options to their default value.</p>
+ </description>
+</item>
+
+<item>
+ <tags>:set-args E487 E521</tags>
+ <spec>:se[t] <a>option</a>=<a>value</a> […]</spec>
+ <description>
+ <p>
+ Set string or number option to <a>value</a>.
+ For numeric options the value must be given in decimal.
+ The old value can be inserted by typing <k name="Tab"/>.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:set+=</tags>
+ <spec>:se[t] <a>option</a>+=<a>value</a> […]</spec>
+ <description>
+ <p>
+ Add the <a>value</a> to a number option, or append the <a>value</a>
+ to a string option. When the option is a comma separated list, a
+ comma is added, unless the value was empty. If the option is a list
+ of flags, superfluous flags are removed. When adding a flag that
+ was already present the option value doesn't change.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:set^=</tags>
+ <spec>:se[t] <a>option</a>^=<a>value</a> […]</spec>
+ <description>
+ <p>
+ Multiply the <a>value</a> to a number option, or prepend the
+ <a>value</a> to a string option. When the option is a comma
+ separated list, a comma is added, unless the value was empty.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:set-=</tags>
+ <spec>:se[t] <a>option</a>-=<a>value</a> […]</spec>
+ <description>
+ <p>
+ Subtract the <a>value</a> from a number option, or remove the
+ <a>value</a> from a string option if it is there. If the
+ <a>value</a> is not found in a string option, there is no error or
+ warning. When the option is a comma separated list, a comma is
+ deleted, unless the option becomes empty. When the option is a list
+ of flags, <a>value</a> must be exactly as they appear in the option.
+ Remove flags one by one to avoid problems.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:setlocal :setl</tags>
+ <spec>:setl[ocal]</spec>
+ <spec>:setl[ocal] all</spec>
+ <spec>:setl[ocal] <a>option</a>?</spec>
+ <spec>:setl[ocal] <a>option</a></spec>
+ <spec>:setl[ocal] no<a>option</a></spec>
+ <spec>:setl[ocal] inv<a>option</a></spec>
+ <spec>:setl[ocal] <a>option</a>&amp;</spec>
+ <spec>:setl[ocal] all&amp;</spec>
+ <spec>:setl[ocal] <a>option</a>=<a>value</a></spec>
+ <spec>:setl[ocal] <a>option</a>+=<a>value</a></spec>
+ <spec>:setl[ocal] <a>option</a>^=<a>value</a></spec>
+ <spec>:setl[ocal] <a>option</a>-=<a>value</a></spec>
+ <description>
+ <p>
+ The same as <ex>:set</ex> command, but operates on current tab options
+ only. See <ex>:set</ex> for details.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:setglobal :setg</tags>
+ <spec>:setg[lobal]</spec>
+ <spec>:setg[lobal] all</spec>
+ <spec>:setg[lobal] <a>option</a>?</spec>
+ <spec>:setg[lobal] <a>option</a></spec>
+ <spec>:setg[lobal] no<a>option</a></spec>
+ <spec>:setg[lobal] inv<a>option</a></spec>
+ <spec>:setg[lobal] <a>option</a>&amp;</spec>
+ <spec>:setg[lobal] all&amp;</spec>
+ <spec>:setg[lobal] <a>option</a>=<a>value</a></spec>
+ <spec>:setg[lobal] <a>option</a>+=<a>value</a></spec>
+ <spec>:setg[lobal] <a>option</a>^=<a>value</a></spec>
+ <spec>:setg[lobal] <a>option</a>-=<a>value</a></spec>
+ <description>
+ <p>
+ The same as <ex>:set</ex> command, but operates on global options only.
+ See <ex>:set</ex> for details.
+ </p>
+ </description>
+</item>
+
+<tags>expand-environment-var expand-env :set_env</tags>
+
+<p>
+ Environment variables are expanded for path options like <o>cdpath</o> and
+ <o>runtimepath</o>. The variable notation is <em>$VAR</em> (terminated by a non-word
+ character) or <em>$<a>VAR</a></em>. <em>%VAR%</em> is also supported on Windows.
+</p>
+
+<h2 tag="firefox-options preferences">Setting &liberator.host; options</h2>
+
+<p>&liberator.host; options can be viewed and set with the following commands:</p>
+
+<item>
+ <tags>:prefs :preferences</tags>
+ <spec>:pref[erences]</spec>
+ <description>
+ <p>
+ Show the &liberator.host; preferences dialog. You can change the browser
+ preferences from this dialog. Be aware that not all &liberator.host;
+ preferences work, because &liberator.appname; overrides some key bindings and
+ changes &liberator.host;'s GUI.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:prefs! :preferences!</tags>
+ <spec>:pref[erences]!</spec>
+ <description>
+ <p>
+ Opens about:config in the current tab where you can change advanced &liberator.host;
+ preferences.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>:set! :set-!</tags>
+ <spec>:se[t]! <a>preference</a>=<a>value</a></spec>
+ <description>
+ <p>
+ Change any &liberator.host; <a>preference</a> (those in the about:config
+ window). You can also reset/delete those preferences with
+ <ex>:set! <a>preference</a>&amp;</ex>.
+ </p>
+ </description>
+</item>
+
+<tags>overridden-preferences</tags>
+
+<p>
+ &liberator.appname; sets several &liberator.host; preferences at startup. If this is undesirable,
+ they can be changed to a different value in your RC file using
+ <ex>:set! <a>preference</a>=<a>value</a></ex>
+</p>
+
+<p>The following preferences are set:</p>
+
+<ul>
+ <li><link target="http://kb.mozillazine.org/Dom.popup_allowed_events">dom.popup_allowed_events</link></li>
+ <li><link target="http://kb.mozillazine.org/Accessibility.typeaheadfind.autostart">accessibility.typeaheadfind.autostart</link></li>
+ <li><link target="http://kb.mozillazine.org/Accessibility.typeaheadfind">accessibility.typeaheadfind</link></li>
+</ul>
+
+<!-- TODO: others? -->
+
+<h2 tag="list-options">List of options</h2>
+
+<item>
+ <tags>'act' 'activate'</tags>
+ <spec>'activate' 'act'</spec>
+ <type>stringlist</type>
+ <default>homepage,quickmark,tabopen,paste</default>
+ <description>
+ <p>Define when tabs are automatically activated. Available items:</p>
+
+ <dl>
+ <dt>homepage</dt> <dd><k>gH</k> mapping</dd>
+ <dt>quickmark</dt> <dd><k>go</k> and <k>gn</k> mappings</dd>
+ <dt>tabopen</dt> <dd><ex>:tabopen[!]</ex> command</dd>
+ <dt>paste</dt> <dd><k>P</k> and <k>gP</k> mappings</dd>
+ </dl>
+
+ </description>
+</item>
+
+
+<item>
+ <tags>$CDPATH</tags>
+ <tags>'cd' 'cdpath'</tags>
+ <spec>'cdpath' 'cd'</spec>
+ <type>string</type>
+ <default type="plain">equivalent to <em>$CDPATH</em> or <str>,,</str></default>
+ <description>
+ <p>
+ List of directories searched when executing the <ex>:cd</ex>
+ command. This is only used for relative paths if an absolute path is
+ specified then the option is ignored.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'cpt' 'complete'</tags>
+ <spec>'complete' 'cpt'</spec>
+ <type>charlist</type>
+ <default>slf</default>
+ <description>
+ <p>Items which are completed at the <ex>:open</ex> prompts. Available items:</p>
+
+ <dl>
+ <dt>s</dt> <dd>Search engines and keyword URLs</dd>
+ <dt>f</dt> <dd>Local files</dd>
+ <dt>l</dt> <dd>&liberator.host; location bar entries (bookmarks and history sorted in an intelligent way)</dd>
+ <dt>b</dt> <dd>Bookmarks</dd>
+ <dt>h</dt> <dd>History</dd>
+ <dt>S</dt> <dd>Search engine suggestions</dd>
+ <dt>t</dt> <dd>Open tabs</dd>
+ </dl>
+
+ <p>
+ The order is important, so <ex>:set complete=bs</ex> would list bookmarks first,
+ and then any available quick searches.
+ </p>
+
+ <warning>
+ Using <em>b</em> and <em>h</em> can make completion very slow if there are many items.
+ </warning>
+ </description>
+</item>
+
+
+<item>
+ <tags>'ds' 'defsearch'</tags>
+ <spec>'defsearch' 'ds'</spec>
+ <type>string</type>
+ <default>google</default>
+ <description>
+ <p>
+ Sets the default search engine. The default search engine name is
+ used in the <ex>:open [arg]</ex> command if [arg] neither
+ looks like a URL nor like a specified search engine/keyword.
+ </p>
+
+ <p>
+ This means that if you set <o>defsearch</o> to <str>youtube</str>,
+ then <ex>:open arnold schwarzenegger</ex> will be exactly the same as
+ <ex>:open youtube arnold schwarzenegger</ex>. Therefore, you need
+ to add a keyword or search engine <str>youtube</str> first.
+ </p>
+
+ <p>
+ If <o>defsearch</o> is empty, then &liberator.host; will always attempt to
+ open the raw [arg].
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'editor'</tags>
+ <spec>'editor'</spec>
+ <type>string</type>
+ <default>gvim -f</default>
+ <description>
+ <p>
+ Set the external text editor.
+ Sets the editor to run when <k name="C-i"/> is pressed in Insert and TextArea
+ modes.
+ </p>
+
+ <warning>
+ &liberator.appname; will not behave correctly if the editor forks its own
+ process, such as with gvim without the -f argument.
+ </warning>
+ </description>
+</item>
+
+
+<item>
+ <tags>'noex' 'noexrc'</tags>
+ <tags>'ex' 'exrc'</tags>
+ <spec>'exrc' 'ex'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>
+ Allow reading of an RC file in the current directory. This file is
+ sourced in addition to, and after, your default RC file.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'eht' 'extendedhinttags'</tags>
+ <spec>'extendedhinttags' 'eht'</spec>
+ <type>string</type>
+ <default>
+ //*[@onclick or @onmouseover or @onmousedown or @onmouseup or
+ @oncommand or @class='lk' or @role='link'] |
+ //input[not(@type='hidden')] | //xhtml:input[not(@type='hidden')] |
+ //a | //xhtml:a | //area | //xhtml:area | //iframe | //xhtml:iframe |
+ //textarea | //xhtml:textarea | //button | //xhtml:button |
+ //select | //xhtml:select</default>
+ <description>
+ <p>The XPath string of hintable elements activated by <k>;</k>.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'noeb' 'noerrorbells'</tags>
+ <tags>'eb' 'errorbells'</tags>
+ <spec>'errorbells' 'eb'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>Ring the bell when an error message is displayed.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'ei' 'eventignore'</tags>
+ <spec>'eventignore'</spec>
+ <type>stringlist</type>
+ <default></default>
+ <description>
+ <p>
+ A list of autocommand event names which should be ignored. If the list contains
+ the value <str>all</str> then all events are ignored.
+ </p>
+ </description>
+</item>
+
+<item>
+ <tags>'enc' 'encoding'</tags>
+ <spec>'encoding'</spec>
+ <type>string</type>
+ <default>UTF-8</default>
+ <description>
+ <p>
+ Changes the character encoding of the current buffer. Valid only for
+ the current page.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'fenc' 'fileencoding'</tags>
+ <spec>'fileencoding'</spec>
+ <type>string</type>
+ <default>UTF-8</default>
+ <description>
+ <p>Changes the character encoding that &liberator.appname; uses to read and write files.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nofc' 'nofocuscontent'</tags>
+ <tags>'fc' 'focuscontent'</tags>
+ <spec>'focuscontent' 'fc'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>
+ Focus the content after a page has loaded. This is useful if you
+ always want to stay in Normal mode when browsing between web sites.
+ When <str>on</str>, it blurs any textbox which often is
+ automatically focused on page load. If you usually like
+ <o>focuscontent</o> but sometimes you'd like to focus the first
+ input field, you can use <k>gi</k> to jump to it.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'fh' 'followhints'</tags>
+ <spec>'followhints' 'fh'</spec>
+ <type>number</type>
+ <default>0</default>
+ <description>
+ <p>Change the behaviour of <k name="Return"/> in Hints mode.</p>
+
+ <p>Possible values:</p>
+
+ <dl>
+ <dt>0</dt> <dd>Follow the first hint as soon as typed text uniquely identifies it.</dd>
+ <dt>1</dt> <dd>Follow the selected hint on <k name="Return"/>.</dd>
+ <dt>2</dt> <dd>Follow the selected hint on <k name="Return"/> only if it's been <k name="Tab"/>-selected.</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nofs' 'nofullscreen'</tags>
+ <tags>'fs' 'fullscreen'</tags>
+ <spec>'fullscreen' 'fs'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>
+ Show the current window fullscreen. Also hide certain GUI elements like the
+ statusline.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'go' 'guioptions'</tags>
+ <spec>'guioptions' 'go'</spec>
+ <type>charlist</type>
+ <default></default>
+ <description>
+ <p>Show or hide certain GUI elements like the menu or toolbar.</p>
+
+ <p>Supported characters:</p>
+
+ <dl>
+ <dt>m</dt> <dd>Menubar</dd>
+ <dt>T</dt> <dd>Toolbar</dd>
+ <dt>B</dt> <dd>Bookmark bar</dd>
+ <dt>n</dt> <dd>Tab number</dd>
+ <dt>N</dt> <dd>Tab number over image</dd>
+ <dt>b</dt> <dd>Bottom scrollbar</dd>
+ <dt>r</dt> <dd>Right scrollbar</dd>
+ <dt>l</dt> <dd>Left scrollbar (<em>l</em> and <em>r</em> are mutually exclusive)</dd>
+ </dl>
+
+ <p>You can also hide the tab bar with <ex>:set showtabline=0</ex>.</p>
+
+ <note>Scrollbar changes require a page reload to take effect.</note>
+ </description>
+</item>
+
+
+<item>
+ <tags>'hf' 'helpfile'</tags>
+ <spec>'helpfile' 'hf'</spec>
+ <type>string</type>
+ <default>intro</default>
+ <description>
+ <p>
+ Name of the main help file. This is the tail component of the chrome
+ URL as displayed in the status line when viewing the page.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'hin' 'hintinputs'</tags>
+ <spec>'hintinputs' 'hin'</spec>
+ <type>stringlist</type>
+ <default>label,value</default>
+ <description>
+ <p>
+ When generating hints for input elements that do not have an
+ explicit caption, this specifies the methods to try and generate a
+ textual hint. It tries the options in the order that you give, and
+ uses the first that it finds.
+ </p>
+
+ <dl>
+ <dt>value</dt> <dd>The hint is the value displayed in a text input, or the selected option for a dropdown.</dd>
+ <dt>label</dt> <dd>The value of an explicit label for the input, this will not match most manually added labels that are found on sites.</dd>
+ <dt>name </dt> <dd>The name of the input will be used, although the name is not designed for user consumption, it is frequently very similar to the label.</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>'hm' 'hintmatching'</tags>
+ <spec>'hintmatching' 'hm'</spec>
+ <type>string</type>
+ <default>contains</default>
+ <description>
+ <p>Change the hint matching algorithm during Hints mode.</p>
+
+ <p>Possible values:</p>
+
+ <dl>
+ <dt>contains</dt> <dd>The typed characters are split on whitespace, and these character groups have to match anywhere inside the text of the link.</dd>
+ <dt>wordstartswith</dt> <dd>The typed characters are matched with the beginning of the first word (see <o>wordseparators</o>) in the link as long as possible. If no matches occur in the current word, then the matching is continued at the beginning of the next word. The words are worked through in the order they appear in the link. If the typed characters contain spaces, then the characters are split on whitespace. These character groups are then matched with the beginning of the words, beginning at the first one and continuing with the following words in the order they appear in the link.</dd>
+ <dt>firstletters</dt> <dd>Behaves like wordstartswith, but non-matching words aren't overleaped.</dd>
+ <dt>custom</dt> <dd>Delegate to a custom function: liberator.plugins.customHintMatcher(hintString)</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>'ht' 'hinttags'</tags>
+ <spec>'hinttags' 'ht'</spec>
+ <type>string</type>
+ <default>//*[@onclick or @onmouseover or @onmousedown or @onmouseup or
+ @oncommand or @class='lk' or @role='link'] |
+ //input[not(@type='hidden')] | //a | //area |
+ //iframe | //textarea | //button | //select |
+//xhtml:input[not(@type='hidden')] | //xhtml:a | //xhtml:area |
+//xhtml:iframe | //xhtml:textarea | //xhtml:button | //xhtml:select</default>
+ <description>
+ <p>XPath string of hintable elements activated by <k>f</k> and <k>F</k></p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'hto' 'hinttimeout'</tags>
+ <spec>'hinttimeout' 'hto'</spec>
+ <type>number</type>
+ <default>0</default>
+ <description>
+ <p>
+ Timeout before automatically following a non-unique numerical hint. Set to 0
+ (the default) to only follow numeric hints after pressing <k name="Return"/> or
+ when the hint is unique.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'hi' 'history'</tags>
+ <spec>'history' 'hi'</spec>
+ <type>number</type>
+ <default>500</default>
+ <description>
+ <p>Number of Ex commands and search patterns to store in the command-line history.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'noprivate' 'private'</tags>
+ <spec>'private'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>
+ Set the <str>private browsing</str> option. In private browsing mode
+ history, cache files, cookies, form data, passwords, download list
+ entries, local and URL marks, command-line history and macros are
+ available only for the duration of the private browsing session and
+ deleted when returning to normal browsing mode.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nohls' 'nohlsearch'</tags>
+ <tags>'hls' 'hlsearch'</tags>
+ <spec>'hlsearch' 'hls'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>Highlight previous search pattern matches</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'noic' 'noignorecase'</tags>
+ <tags>'ic' 'ignorecase'</tags>
+ <spec>'ignorecase' 'ic'</spec>
+ <type>boolean</type>
+ <default>on</default>
+ <description>
+ <p>Ignore case in search patterns.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nois' 'noincsearch'</tags>
+ <tags>'is' 'incsearch'</tags>
+ <spec>'incsearch' 'is'</spec>
+ <type>boolean</type>
+ <default>on</default>
+ <description>
+ <p>Show where the search pattern matches as it is typed.</p>
+
+ <note>Incremental searching currently only works in the forward direction.</note>
+ </description>
+</item>
+
+
+<item>
+ <tags>'noim' 'noinsertmode'</tags>
+ <tags>'im' 'insertmode'</tags>
+ <spec>'insertmode' 'im'</spec>
+ <type>boolean</type>
+ <default>on</default>
+ <description>
+ <p>
+ Use Insert mode as the default for text areas. This is useful if you
+ want to use the known &liberator.host; interface for editing text areas.
+ Input fields default to this behaviour irrespective of this option's
+ setting.
+ </p>
+
+ <p>
+ Textarea mode can be entered with <k name="C-t"/> from Insert mode.
+ <!-- TODO: <C-t> is not documented yet. -->
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'ls' 'laststatus'</tags>
+ <spec>'laststatus' 'ls'</spec>
+ <type>number</type>
+ <default>2</default>
+ <description>
+ <p>Determines when the last window will have a status line.</p>
+
+ <p>Possible values:</p>
+
+ <dl>
+ <dt>0</dt> <dd>Never</dd>
+ <dt>1</dt> <dd>Only if there are multiple windows</dd>
+ <dt>2</dt> <dd>Always</dd>
+ </dl>
+
+ <note>laststatus=1 not implemented yet.</note>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nolks' 'nolinksearch'</tags>
+ <tags>'lks' 'linksearch'</tags>
+ <spec>'linksearch' 'lks'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>
+ Limit the search to hyperlink text. This includes (X)HTML elements
+ with an <str>href</str> atrribute and XLink <str>simple</str> links.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nolpl' 'lpl'</tags>
+ <tags>'noloadplugins' 'loadplugins'</tags>
+ <spec>'loadplugins' 'lpl'</spec>
+ <type>boolean</type>
+ <default>on</default>
+ <description>
+ <p>
+ Load plugin scripts when starting up. When on, yet unloaded plugins
+ are automatically loaded after the vimperatorrc file has been
+ sourced. To load plugins earlier, use the <ex>:loadplugins</ex>
+ command within the vimperatorrc.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'maxitems'</tags>
+ <spec>'maxitems'</spec>
+ <type>number</type>
+ <default>20</default>
+ <description>
+ <p>Maximum number of items to display at once in a listing.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'msgs' 'messages'</tags>
+ <spec>'messages' 'msgs'</spec>
+ <type>number</type>
+ <default>100</default>
+ <description>
+ <p>Number of messages to store in the message history.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nomore' 'more'</tags>
+ <spec>'more'</spec>
+ <type>boolean</type>
+ <default>on</default>
+ <description>
+ <p>Pause the message list window when more than one screen of listings is displayed.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nextpattern'</tags>
+ <spec>'nextpattern'</spec>
+ <type>stringlist</type>
+ <default>\bnext,^>$,^(>>|»)$,^(>|»),(>|»)$,\bmore\b</default>
+ <description>
+ <p>
+ Patterns to use when guessing the <o>next</o> page in a document
+ sequence when the user hits <k>]]</k>. Each pattern, in order, is
+ matched against all links in the page with the first match being
+ used. The patterns are case insensitive regular expressions and the
+ link elements are those defined by <o>hinttags</o>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'newtab'</tags>
+ <spec>'newtab'</spec>
+ <type>stringlist</type>
+ <default></default>
+ <description>
+ <p>
+ Define which Ex commands output the result in a new tab
+ automatically. You can also use <ex>:tab command</ex> to manually
+ output a command in a new tab.
+ </p>
+
+ <p>The possible values:</p>
+
+ <dl>
+ <dt>all</dt> <dd>All commands</dd>
+ <dt>addons</dt> <dd><ex>:addo[ns]</ex> command</dd>
+ <dt>downloads</dt> <dd><ex>:downl[oads]</ex> command</dd>
+ <dt>extoptions</dt> <dd><ex>:exto[ptions]</ex> command</dd>
+ <dt>help</dt> <dd><ex>:h[elp]</ex> command</dd>
+ <dt>javascript</dt> <dd><ex>:javascript!</ex> or <ex>:js!</ex> command</dd>
+ <dt>prefs</dt> <dd><ex>:pref[erences]!</ex> or <ex>:prefs!</ex> command</dd>
+ </dl>
+
+ </description>
+</item>
+
+
+<item>
+ <tags>'noonline' 'online'</tags>
+ <spec>'online'</spec>
+ <type>boolean</type>
+ <default>on</default>
+ <description>
+ <p>Show and set the 'work offline' behavior.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'pageinfo' 'pa'</tags>
+ <spec>'pageinfo' 'pa'</spec>
+
+ <type>charlist</type>
+ <default>gfm</default>
+ <description>
+ <p>Desired info in the <ex>:pageinfo</ex> output.</p>
+
+ <p>Available items:</p>
+
+ <dl>
+ <dt>g</dt> <dd>General info</dd>
+ <dt>f</dt> <dd>Feeds</dd>
+ <dt>m</dt> <dd>Meta tags</dd>
+ </dl>
+
+ <p>
+ The order of the options defines the order in which they appear in
+ the result.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'pps' 'popups'</tags>
+ <spec>'popups' 'pps'</spec>
+ <type>stringlist</type>
+ <default>tab</default>
+ <description>
+ <p>
+ Define where to show requested popup windows. Does not apply to
+ windows which are opened by middle clicking a link, they always open
+ in a new tab.
+ </p>
+
+ <p>Possible values:</p>
+
+ <dl>
+ <dt>tab</dt> <dd>Open popups in a new tab</dd>
+ <dt>window</dt> <dd>Open popups in a new window</dd>
+ <dt>resized</dt> <dd>Open resized popups in a new window</dd>
+ </dl>
+
+ <p>
+ If neither <em>tab</em> nor <em>window</em> is provided, all popups open in the current tab.
+ <em>tab</em> and <em>window</em> are mutually exclusive, and the last one listed is
+ effective.
+ </p>
+
+ <note>This option does not change the popup blocker of &liberator.host; in any way.</note>
+ </description>
+</item>
+
+
+<item>
+ <tags>'previouspattern'</tags>
+ <spec>'previouspattern'</spec>
+ <type>stringlist</type>
+ <default><![CDATA[\bprev|previous\b,^<$,^(<<|«)$,^(<|«),(<|«)$]]></default>
+ <description>
+ <p>
+ Patterns to use when guessing the <o>previous</o> page in a document
+ sequence when the user hits <ex>[[</ex>. Each pattern, in order, is
+ matched against all links in the page with the first match being
+ used. The patterns are case insensitive regular expressions and the
+ link elements are those defined by <o>hinttags</o>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>$VIMPERATOR_RUNTIME</tags>
+ <tags>'rtp' 'runtimepath'</tags>
+ <spec>'runtimepath' 'rtp'</spec>
+ <type>stringlist</type>
+ <default type="plain"><str>$VIMPERATOR_RUNTIME</str> or
+ Unix, Mac: <str>~/.vimperator</str>,
+ Windows: <str>~/vimperator</str></default>
+ <description>
+ <p>List of directories searched for runtime files:</p>
+
+ <ul>
+ <li>colors/</li>
+ <li>macros/</li>
+ <li>plugin/</li>
+ </ul>
+
+ <p>Example:</p>
+
+ <code><ex>:set runtimepath=$$~/myvimperator,~/.vimperator$$</ex></code>
+
+ <p>
+ This will search for plugins in both
+ <str>~/myvimperator/plugin</str> and
+ <str>~/.vimperator/plugin</str>
+ </p>
+
+ <p>
+ On startup, if the environment variable <em>$VIMPERATOR_RUNTIME</em> does not
+ exist, &liberator.appname; will set it to match this value.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'si' 'sanitizeitems'</tags>
+ <spec>'sanitizeitems' 'si'</spec>
+ <type>stringlist</type>
+ <default>cache,commandline,cookies,formdata,history,marks,sessions</default>
+ <description>
+ <p>The default list of private items to sanitize.</p>
+
+ <dl>
+ <dt>cache </dt> <dd>Cache</dd>
+ <dt>commandline </dt> <dd>Command-line history</dd>
+ <dt>cookies </dt> <dd>Cookies</dd>
+ <dt>downloads </dt> <dd>Download history</dd>
+ <dt>formdata </dt> <dd>Saved form and search history</dd>
+ <dt>history </dt> <dd>Browsing history</dd>
+ <dt>marks </dt> <dd>Local and URL marks</dd>
+ <dt>macros </dt> <dd>Saved macros</dd>
+ <dt>offlineapps </dt> <dd>Offline website data</dd>
+ <dt>passwords </dt> <dd>Saved passwords</dd>
+ <dt>sessions </dt> <dd>Authenticated sessions</dd>
+ <dt>sitesettings</dt> <dd>Site preferences</dd>
+ </dl>
+
+ <p>
+ When history items are sanitized <ex>:open</ex>,
+ <ex>:tabopen</ex> and <ex>:winopen</ex> command-line
+ history entries are also removed.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'sts' 'sanitizetimespan'</tags>
+ <spec>'sanitizetimespan' 'sts'</spec>
+ <type>number</type>
+ <default>1</default>
+ <description>
+ <p>
+ The default sanitizer time span. Only items created within this timespan are
+ deleted.
+ </p>
+
+ <note>This only applies to <em>cookies</em>, <em>history</em>, <em>formdata</em>, and <em>downloads</em>.</note>
+
+ <dl>
+ <dt>0</dt> <dd>Everything</dd>
+ <dt>1</dt> <dd>Last hour</dd>
+ <dt>2</dt> <dd>Last two hours</dd>
+ <dt>3</dt> <dd>Last four hours</dd>
+ <dt>4</dt> <dd>Today</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>'scr' 'scroll'</tags>
+ <spec>'scroll' 'scr'</spec>
+ <type>number</type>
+ <default>0</default>
+ <description>
+ <p>
+ Number of lines to scroll with <k name="C-u"/> and <k name="C-d"/>
+ commands. The number of lines scrolled defaults to half the window
+ size. When a [count] is specified to the <k name="C-u"/> or
+ <k name="C-d"/> commands this is used to set the value of
+ <o>scroll</o> and also used for the current command. The value can
+ be reset to half the window height with <ex>:set scroll=0</ex>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'shell' 'sh'</tags>
+ <spec>'shell' 'sh'</spec>
+ <type>string</type>
+ <default>_$SHELL_ or "sh", Win32: "cmd.exe"</default>
+ <description>
+ <p>Shell to use for executing <ex>:!</ex> and <ex>:run</ex> commands.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'shellcmdflag' 'shcf'</tags>
+ <spec>'shellcmdflag' 'shcf'</spec>
+ <type>string</type>
+ <default type="plain"><str>-c</str>, Win32: <str>/c</str></default>
+ <description>
+ <p>Flag passed to shell when executing <ex>:!</ex> and <ex>:run</ex> commands.</p>
+
+ <example><str>bash -c gvim</str></example>
+ </description>
+</item>
+
+
+<item>
+ <tags>'nosmd' 'noshowmode'</tags>
+ <tags>'smd' 'showmode'</tags>
+ <spec>'showmode' 'smd'</spec>
+ <type>boolean</type>
+ <default>on</default>
+ <description>
+ <p>Show the current mode in the command line.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'ssli' 'showstatuslinks'</tags>
+ <spec>'showstatuslinks' 'ssli'</spec>
+ <type>number</type>
+ <default>1</default>
+ <description>
+ <p>
+ Show the destination of the link under the cursor in the status bar.
+ Also links which are focused by keyboard commands like
+ <k name="Tab"/> are shown.
+ </p>
+
+ <p>Possible values:</p>
+
+ <dl>
+ <dt>0</dt> <dd>Don't show link destination</dd>
+ <dt>1</dt> <dd>Show the link in the status line</dd>
+ <dt>2</dt> <dd>Show the link in the command line</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>'stal' 'showtabline'</tags>
+ <spec>'showtabline' 'stal'</spec>
+ <type>number</type>
+ <default>2</default>
+ <description>
+ <p>Control when to show the tab bar of opened web pages.</p>
+
+ <p>Possible values:</p>
+
+ <dl>
+ <dt>0</dt> <dd>Never show tab bar</dd>
+ <dt>1</dt> <dd>Show tab bar only if more than one tab is open</dd>
+ <dt>2</dt> <dd>Always show tab bar</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>'noscs' 'nosmartcase'</tags>
+ <tags>'scs' 'smartcase'</tags>
+ <spec>'smartcase' 'scs'</spec>
+ <type>boolean</type>
+ <default>on</default>
+ <description>
+ <p>
+ Override the <o>ignorecase</o> option if the pattern contains
+ uppercase characters. This is only used if the <o>ignorecase</o>
+ option is set.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'suggestengines'</tags>
+ <spec>'suggestengines'</spec>
+ <type>stringlist</type>
+ <default>google</default>
+ <description>
+ <p>
+ Set the search engines which can be used for completion suggestions.
+ Add <str>S</str> to the <o>complete</o> option if you want to use
+ this feature.
+ </p>
+
+ <warning>
+ This feature could make tab-completion slower because it needs to
+ wait for changes, so use it only if you have a fast internet
+ connection.
+ </warning>
+ </description>
+</item>
+
+
+<item>
+ <tags>'titlestring'</tags>
+ <spec>'titlestring'</spec>
+ <type>string</type>
+ <default>&liberator.appname;</default>
+ <description>
+ <p>
+ Change the title of the browser window. &liberator.appname; changes the
+ browser title from <str>Title of web page - Mozilla &liberator.host;</str>
+ to <str>Title of web page - &liberator.appname;</str>. If you don't like
+ that, you can restore it with:
+ </p>
+ <code><ex>:set titlestring=<str>Mozilla &liberator.host;</str></ex></code>
+ </description>
+</item>
+
+
+<item>
+ <tags>'noum' 'nousermode'</tags>
+ <tags>'um' 'usermode'</tags>
+ <spec>'usermode' 'um'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>Show current website with a minimal style sheet to make it easily accessible.</p>
+
+ <note>This is a local option for now, a global value may be supported in the future.</note>
+ </description>
+</item>
+
+
+<item>
+ <tags>'urlseparator'</tags>
+ <spec>'urlseparator'</spec>
+ <type>string</type>
+ <default>,\s</default>
+ <description>
+ <p>
+ Set the separator regex used to separate multiple URL args. Multiple
+ arguments can be specified for <ex>:open</ex>, and similar commands,
+ using this regex as the separator. Using whitespace alone is not
+ generally useful since it is often contained in a single argument.
+ E.g., <ex>:open linus torvalds</ex> should perform a single search
+ for the key words <str>linus</str> and <str>torvalds</str>. If this
+ is set to the empty string then these arguments will never be split.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'verbose', 'vbs'</tags>
+ <spec>'verbose' 'vbs'</spec>
+ <type>number</type>
+ <default>1</default>
+ <description>
+ <p>
+ Define which info messages are displayed. When bigger than zero,
+ &liberator.appname; will give messages about what it is doing. These can be
+ viewed at any time with the <ex>:messages</ex> command. The highest
+ value is 15, being the most verbose mode.
+ </p>
+ <!-- TODO: list levels and associated messages -->
+ </description>
+</item>
+
+
+<item>
+ <tags>'novb' 'novisualbell'</tags>
+ <tags>'vb' 'visualbell'</tags>
+ <spec>'visualbell' 'vb'</spec>
+ <type>boolean</type>
+ <default>off</default>
+ <description>
+ <p>
+ Use visual bell instead of beeping on errors. The visual bell style is
+ controlled by <ex>:hi Bell</ex>.
+ </p>
+
+ <p>
+ To disable both the audible and visual bells use <ex>:set visualbell</ex>
+ and <ex>:hi Bell display: none;</ex>
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>'wildcase' 'wic'</tags>
+ <spec>'wildcase' 'wic'</spec>
+ <type>string</type>
+ <default>smart</default>
+ <description>
+ <p>Defines how completions are matched with regard to character case. Possible values:</p>
+
+ <dl>
+ <dt><str>smart</str></dt> <dd>Case is significant when capital letters are typed</dd>
+ <dt><str>match</str></dt> <dd>Case is always significant</dd>
+ <dt><str>ignore</str></dt> <dd>Case is never significant</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>'wildignore' 'wig'</tags>
+ <spec>'wildignore' 'wig'</spec>
+ <type>stringlist</type>
+ <default></default>
+ <description>
+ <p>
+ List of file patterns to ignore when completing files. E.g., to ignore object
+ files and Vim swap files
+ <ex>:set wildignore=<str>.<em>\\.o,\\..</em>\\.s[a-z]\\<a>2</a></str></ex>
+ </p>
+
+ <note>Unlike Vim each pattern is a regex rather than a glob.</note>
+ </description>
+</item>
+
+
+<item>
+ <tags>'wim' 'wildmode'</tags>
+ <spec>'wildmode' 'wim'</spec>
+ <type>stringlist</type>
+ <default>list:full</default>
+ <description>
+ <p>
+ Defines how command-line completion works. It is a comma-separated
+ list of parts, where each part specifies what to do for each
+ consecutive use of the completion key. The first part specifies the
+ behavior for the first use of the completion key, the second part
+ for the second use, etc.
+ </p>
+
+ <p>These are the possible values for each part:</p>
+
+ <dl>
+ <dt><str></str></dt> <dd>Complete only the first match.</dd>
+ <dt><str>full</str></dt> <dd>Complete the next full match. After the last, the original string is used.</dd>
+ <dt><str>longest</str></dt> <dd>Complete till the longest common string.</dd>
+ <dt><str>list</str></dt> <dd>When more than one match, list all matches.</dd>
+ <dt><str>list:full</str></dt> <dd>When more than one match, list all matches and complete the first match.</dd>
+ <dt><str>list:longest</str></dt>
+ <dd>
+ When more than one match, list all matches and
+ complete till the longest common string. When there
+ is only a single match, it is fully completed
+ regardless of the case.
+ </dd>
+ </dl>
+
+ </description>
+</item>
+
+
+<item>
+ <tags>'wop' 'wildoptions'</tags>
+ <spec>'wildoptions' 'wop'</spec>
+ <type>stringlist</type>
+ <default></default>
+ <description>
+ <p>A list of words that change how command-line completion is done.</p>
+
+ <p>Possible words:</p>
+
+ <dl>
+ <dt>auto</dt> <dd>Automatically show completions while you are typing.</dd>
+ <dt>sort</dt> <dd>Always sort the completion list, overriding the <o>complete</o> option.</dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>'wsp' 'wordseparators'</tags>
+ <spec>'wordseparators' 'wsp'</spec>
+ <type>string</type>
+ <default><![CDATA[[\.,!\?:;/\\"\^\$%&?\(\)\[\]\\<a>\\</a><>#\\*\+\\|=~ _\\-]]]></default>
+ <description>
+ <p>
+ A regex which defines the word separators which are used for the
+ <o>hintmatching</o> types <str>wordstartswith</str> and
+ "firstletters" to split the words in the text of a link.
+ </p>
+ </description>
+</item>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/pattern.xml b/common/locale/en-US/pattern.xml
new file mode 100644
index 00000000..3d1277e6
--- /dev/null
+++ b/common/locale/en-US/pattern.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="pattern"
+ title="&liberator.appname; Patterns"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="text-search-commands">Text search commands</h1>
+
+<p>
+ &liberator.appname; provides a Vim-like interface to &liberator.host;'s standard text search
+ functionality. There is no support for using regular expressions in search
+ commands as &liberator.host; does not provide native regex support. It is unlikely that
+ this will ever be available.
+</p>
+
+<item>
+ <tags>/</tags>
+ <spec>/<a>pattern</a>[/]&lt;CR></spec>
+ <description>
+ <p>Search forward for the first occurrence of <a>pattern</a>.</p>
+
+ <p>
+ If <str>\c</str> appears anywhere in the pattern the whole pattern is handled as though
+ <o>ignorecase</o> is on. <str>\C</str> forces case-sensitive matching for the whole pattern.
+ </p>
+ <p>
+ If <str>\l</str> appears in the pattern only the text of links is searched for a
+ match as though <o>linksearch</o> is on. <str>\L</str> forces the entire page to be searched
+ for a match.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>?</tags>
+ <spec>?<a>pattern</a>[?]&lt;CR></spec>
+ <description>
+ <p>Search backwards for <a>pattern</a>.</p>
+
+ <p><a>pattern</a> can use the same modifiers as for <k>/</k>.</p>
+
+ <note>Incremental searching currently only works in the forward direction.</note>
+ </description>
+</item>
+
+
+<item>
+ <tags>n</tags>
+ <spec>n</spec>
+ <description>
+ <p>Find next. Repeat the last search 1 time (until count is supported).</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>N</tags>
+ <spec>N</spec>
+ <description>
+ <p>
+ Find previous. Repeat the last search 1 time (until count is supported) in the
+ opposite direction.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>*</tags>
+ <spec>*</spec>
+ <description>
+ <p>Search forward for the next word under the cursor.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>#</tags>
+ <spec>#</spec>
+ <description>
+ <p>Search backward for the previous word under the cursor.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:noh :nohlsearch</tags>
+ <spec>:noh<oa>lsearch</oa></spec>
+ <description>
+ <p>
+ Remove the search highlighting. The document highlighting is turned back on
+ when another search command is used or the <o>hlsearch</o> option is set.
+ </p>
+ </description>
+</item>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/print.xml b/common/locale/en-US/print.xml
new file mode 100644
index 00000000..9c9c30b7
--- /dev/null
+++ b/common/locale/en-US/print.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="print"
+ title="&liberator.appname; Printing"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="printing">Printing</h1>
+
+<item>
+ <tags>:ha :hardcopy</tags>
+ <spec>:ha<oa>rdcopy</oa><oa>!</oa></spec>
+ <description>
+ <p>
+ Print current document. Open a GUI dialog where you can select the printer,
+ number of copies, orientation, etc. When used with <oa>!</oa>, the dialog is skipped
+ and the default printer used.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <spec>:ha<oa>rdcopy</oa><oa>!</oa> ><a>filename</a></spec>
+ <description>
+ <p>As above, but write the output to <a>filename</a>.</p>
+
+ <note>Not available on Windows.</note>
+ </description>
+</item>
+
+
+<h2 tag="firefox-print-dialogs">&liberator.host; printing dialogs</h2>
+
+<p>
+ The "Print Preview" and "Page Setup" dialogs can be opened via the <ex>:dialog</ex>
+ command
+</p>
+<code><ex>:dialog printpreview</ex></code>
+<p>
+ and
+</p>
+<code><ex>:dialog printsetup</ex></code>
+<p>
+ respectively.
+</p>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/repeat.xml b/common/locale/en-US/repeat.xml
new file mode 100644
index 00000000..e57a4230
--- /dev/null
+++ b/common/locale/en-US/repeat.xml
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="repeat"
+ title="&liberator.appname; Repeating Commands"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="repeating">Repeating commands</h1>
+
+<p>&liberator.appname; can repeat a number of commands and record macros.</p>
+
+<h2 tag="single-repeat">Single repeats</h2>
+
+<item>
+ <tags>.</tags>
+ <spec><oa>count</oa>.</spec>
+ <description>
+ <p>
+ Repeat the last keyboard mapping <oa>count</oa> times. Note that, unlike in Vim, this
+ does not apply solely to editing commands, mainly because &liberator.appname; doesn't
+ have them.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>@:</tags>
+ <spec><oa>count</oa>@:</spec>
+ <description>
+ <p>Repeat the last Ex command <oa>count</oa> times.</p>
+ </description>
+</item>
+
+
+
+<h2 tag="macros complex-repeat">Macros</h2>
+
+<item>
+ <tags>q</tags>
+ <spec>q<a>0-9a-zA-Z</a></spec>
+ <description>
+ <p>
+ Record a key sequence into a macro.
+ Available macros are {0-9a-zA-Z} (uppercase to append).
+ Type <k>q</k> to stop recording.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:macros</tags>
+ <spec>:mac<oa>ros</oa> <oa>pat</oa></spec>
+ <description>
+ <p>
+ List recorded macros matching the optional regular expression <oa>pat</oa>. If
+ no regex is given, list all macros.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:delmac :delmacros</tags>
+ <spec>:delmac<oa>ros</oa> <a>args</a></spec>
+ <spec>:delmac<oa>ros</oa>!</spec>
+ <description>
+ <p>
+ Delete recorded macros matching the regular expression <a>args</a>. If <oa>!</oa> is given
+ all macros are deleted.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>@ :play</tags>
+ <spec>:pl<oa>ay</oa> <a>arg</a></spec>
+ <spec><oa>count</oa>@<a>arg</a></spec>
+ <description>
+ <p>
+ Plays the contents of macro with name <a>arg</a> <oa>count</oa> times. The <k>@</k> mapping
+ only accepts {0-9a-z} as <a>arg</a>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>@@</tags>
+ <spec><oa>count</oa>@@</spec>
+ <description>
+ <p>Replay the last executed macro <oa>count</oa> times.</p>
+ </description>
+</item>
+
+
+
+<h2 tag="using-scripts">Using scripts</h2>
+
+<item>
+ <tags>:so :source</tags>
+ <spec>:so<oa>urce</oa><oa>!</oa> <a>file</a></spec>
+ <description>
+ <p>
+ Read Ex commands, JavaScript, or CSS from <a>file</a>. You can either source files
+ which mostly contain Ex commands like <ex>map &lt; gt</ex> and put JavaScript code
+ within a:
+ </p>
+
+ <code><![CDATA[
+js <<EOF
+hello = function () {
+ alert("Hello world");
+}
+EOF
+]]></code>
+
+ <p>
+ Or you can alternatively source a file which ends in <tt>.js</tt>. These files are
+ automatically sourced as pure JavaScript files.
+ </p>
+
+ <p>
+ Note: In both cases you must add functions to the global window object like
+ shown above, functions written as:
+ </p>
+
+<code><![CDATA[
+function hello2() {
+ alert("Hello world");
+}
+]]></code>
+ <p>are only available within the scope of the script.</p>
+
+ <p>
+ The <tt>.vimperatorrc</tt> file in your home directory and any
+ files in <tt>~/.vimperator/plugin/</tt> are always
+ sourced at startup. <tt>~</tt> is supported as a
+ shortcut for the <tt>$HOME</tt> directory. If <oa>!</oa> is
+ specified, errors are not printed.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:lpl :loadplugins</tags>
+ <spec>:loadplugins</spec>
+ <description>
+ <p>
+ Load all unloaded plugins immediately. Because plugins are automatically
+ loaded after vimperatorrc is sourced, this command must be placed early
+ in the vimperatorrc file if vimperatorrc also includes commands that are
+ implemented by plugins. Additionally, this command allows for sourcing
+ new plugins without restarting &liberator.appname;.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:ru :runtime</tags>
+ <spec>:runt<oa>ime</oa><oa>!</oa> <a>file</a> …</spec>
+ <description>
+ <p>
+ Source the specified file from each directory in <o>runtimepath</o>. Example:
+ </p>
+ <code><ex>:runtime plugin/foobar.vimp</ex></code>
+ <p>
+ Only the first found file is sourced. When <oa>!</oa> is given, all found files are
+ sourced.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:scrip :scriptnames</tags>
+ <spec>:scrip<oa>tnames</oa></spec>
+ <description>
+ <p>List all sourced script names, in the order they were first sourced.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:fini :finish</tags>
+ <spec>:fini<oa>sh</oa></spec>
+ <description>
+ <p>
+ Stop sourcing a script file. This can only be called from within a &liberator.appname;
+ script file.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="profile profiling">Profiling</h2>
+
+<item>
+ <tags>:time</tags>
+ <spec>:<oa>count</oa>time<oa>!</oa> <a>code|:command</a></spec>
+ <description>
+ <p>
+ Profile a piece of code or a command. Run <a>code</a> <oa>count</oa> times (default: 1)
+ and returns the elapsed time. <a>code</a> is always passed to JavaScript's eval(),
+ which might be slow, so take the results with a grain of salt.
+ </p>
+
+ <p>If <a>code</a> starts with a <ex>:</ex>, it is executed as a &liberator.appname; command.</p>
+
+ <p>
+ Use the special version with <oa>!</oa> if you just want to run any command multiple
+ times without showing profiling statistics.
+ </p>
+ </description>
+</item>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/starting.xml b/common/locale/en-US/starting.xml
new file mode 100644
index 00000000..bd074d47
--- /dev/null
+++ b/common/locale/en-US/starting.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="starting"
+ title="&liberator.appname; Starting"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="starting">Starting &liberator.appname;</h1>
+
+<tags>startup-options</tags>
+
+<p>
+ Command-line options can be passed to &liberator.appname; via the -vimperator &liberator.host;
+ option. These are passed as single string argument.
+ E.g., firefox -vimperator <str>++cmd 'set exrc' +u 'tempRcFile' ++noplugin</str>
+</p>
+
+<item>
+ <tags>+c</tags>
+ <spec>+c <a>command</a></spec>
+ <description>
+ <p>
+ Execute a single Ex command after all initialization has been performed. See
+ <t>initialization</t>.
+ </p>
+
+ <p>This option can be specified multiple times.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>++cmd</tags>
+ <spec>++cmd <a>command</a></spec>
+ <description>
+ <p>
+ Execute a single Ex command before any initialization has been performed. See
+ <t>initialization</t>.
+ </p>
+
+ <p>This option can be specified multiple times.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>+u</tags>
+ <spec>+u <a>rcfile</a></spec>
+ <description>
+ <p>
+ The file <a>rcfile</a> is used for user initialization commands. If <a>rcfile</a> is
+ "NORC" then no startup initialization is performed except for the loading of
+ plugins, i.e., steps 1. and 2. in <t>initialization</t> are skipped. If <a>rcfile</a>
+ is "NONE" then plugin loading is also skipped.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>++noplugin</tags>
+ <spec>++noplugin</spec>
+ <description>
+ <p>Prevents plugin scripts from being loaded at startup. See <o>loadplugins</o>.</p>
+ </description>
+</item>
+
+
+<h2 tag="initialization startup">Initialization</h2>
+
+<p>At startup, &liberator.appname; completes the following tasks in order. </p>
+
+<ol>
+ <li> &liberator.appname; can perform user initialization commands. When
+ one of the following is successfully located, it is executed,
+ and no further locations are tried.
+
+ <ol>
+ <li tag="$VIMPERATOR_INIT">
+ <em>$VIMPERATOR_INIT</em> — May contain a single Ex command (e.g.,
+ "<ex>:source <a>file</a></ex>").
+ </li>
+ <li tag="$MY_VIMPERATORRC">
+ <em>~/vimperatorrc</em> — Windows only. If this file exists, its contents
+ are executed and <em>$MY_VIMPERATORRC</em> set to its path.
+ </li>
+ <li>
+ <em>~/.vimperatorrc</em> — If this file exists, its contents are executed.
+ </li>
+ </ol>
+ </li>
+ <li>
+ If <o>exrc</o> is set and the +u command-line option was not
+ specified, then any RC file in the current directory is also
+ sourced.
+ </li>
+ <li>
+ All directories in <o>runtimepath</o> are searched for a
+ "plugin" subdirectory and all yet unloaded plugins are loaded.
+ For each plugin directory, all *.{js,vimp} files (including
+ those in further subdirectories) are sourced alphabetically. No
+ plugins will be sourced if:
+
+ <ul>
+ <li><o>noloadplugins</o> is set.</li>
+ <li>the ++noplugin command-line option was specified.</li>
+ <li>the +u=NONE command-line option specified set.</li>
+ </ul>
+
+ Any particular plugin will not be loaded if it has already been
+ loaded (e.g., by an earlier <ex>:loadplugins</ex> command).
+ </li>
+</ol>
+
+The user's ~ (i.e., "home") directory is determined as follows:
+
+* On Unix and Mac, the environment variable <em>$HOME</em> is used.
+* On Windows, &liberator.appname; checks for the existence of <em>%HOME%</em>, then
+<em>%USERPROFILE%</em>, and then <em>%HOMEDRIVE%%HOMEPATH%</em>. It uses the first one
+it finds.
+
+<h2 tag="save-settings">Saving settings</h2>
+
+<item>
+ <tags>:mkv :mkvimperatorrc</tags>
+ <spec>:mkv<oa>imperatorrc</oa><oa>!</oa> <oa>file</oa></spec>
+ <description>
+ <p>
+ Write current key mappings and changed options to <oa>file</oa>. If no
+ <oa>file</oa> is specified then <em>~/.vimperatorrc</em> is written unless this file
+ already exists. The special version <ex>:mkvimperatorrc!</ex> will overwrite
+ <oa>file</oa> if it exists.
+ </p>
+
+ <p>
+ Warning: this differs from Vim's behavior which defaults to writing the file
+ in the current directory.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="restarting">Restarting</h2>
+
+<item>
+ <tags>:res :restart</tags>
+ <spec>:res<oa>tart</oa></spec>
+ <description>
+ <p>Force &liberator.host; to restart. Useful when installing extensions.</p>
+ </description>
+</item>
+
+
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/styling.xml b/common/locale/en-US/styling.xml
new file mode 100644
index 00000000..8ce7fa0c
--- /dev/null
+++ b/common/locale/en-US/styling.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="styling"
+ title="&liberator.appname; Styling"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="styling">Styling the GUI and web pages</h1>
+
+<p>
+ &liberator.appname; allows you to style both the browser and any web pages you view. All
+ styling is specified via CSS. Although you may style any user interface element
+ via the <ex>:style</ex> command, most &liberator.appname; elements can be styled with the
+ <ex>:highlight</ex> command, for convenience.
+</p>
+
+<item>
+ <tags>E185 :colo :colorscheme</tags>
+ <spec>:colo<oa>rscheme</oa> <a>name</a></spec>
+ <description>
+ <p>
+ Load a color scheme. <a>name</a> is found by searching the <o>runtimepath</o> for the
+ first file matching colors/<a>name</a>.vimp.
+ </p>
+
+ <p>
+ The ColorScheme autocommand is triggered after the color scheme has been
+ sourced.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:hi :highlight</tags>
+ <spec>:hi<oa>ghlight</oa><oa>!</oa> <oa>-append</oa> <a>group</a> [[<a>selector</a>] <a>css</a>]</spec>
+ <description>
+ <p>
+ Highlight <a>group</a> with <a>css</a>. <a>css</a> is one or more comma separated CSS
+ declarations (E.g. <em>color: blue; background-color: red</em>). Normally, <a>css</a> is
+ checked for valid syntax before it's applied. Once you're certain it's valid,
+ <oa>!</oa> can be used to skip the check to speed up &liberator.appname; startup. <a>selector</a>
+ can be any valid CSS selector, such as <ex>:hover</ex>, and, if provided, will
+ restrict the match to matching elements.
+ </p>
+
+ <p>Valid groups are:</p>
+
+ <dl>
+ <dt>Bell</dt> <dd>&liberator.appname;'s visual bell</dd>
+ <dt>Boolean</dt> <dd>A JavaScript Boolean object</dd>
+ <dt>CmdLine</dt> <dd>The command line</dd>
+ <dt>CmdOutput</dt> <dd></dd>
+ <dt>CompDesc</dt> <dd>The description column of the completion list</dd>
+ <dt>CompGroup</dt> <dd></dd>
+ <dt>CompIcon</dt> <dd>The favicon of a completion row</dd>
+ <dt>CompItem</dt> <dd>A row of completion list</dd>
+ <dt>CompItem[selected]</dt><dd>A selected row of completion list</dd>
+ <dt>CompLess</dt> <dd>The indicator shown when completions may be scrolled up</dd>
+ <dt>CompLess::after</dt> <dd>The character of indicator shown when completions may be scrolled up</dd>
+ <dt>CompMore</dt> <dd>The indicator shown when completions may be scrolled down</dd>
+ <dt>CompMore::after</dt> <dd>The character of indicator shown when completions may be scrolled down</dd>
+ <dt>CompMsg</dt> <dd></dd>
+ <dt>CompResult</dt> <dd>The result column of the completion list</dd>
+ <dt>CompTitle</dt> <dd>Completion row titles</dd>
+ <dt>ErrorMsg</dt> <dd>Error messages</dd>
+ <dt>Filter</dt> <dd>The matching text in a completion list</dd>
+ <dt>FrameIndicator</dt> <dd>The indicator shown when a new frame is selected</dd>
+ <dt>Function</dt> <dd>A JavaScript Function object</dd>
+ <dt>Gradient</dt> <dd></dd>
+ <dt>GradientLeft</dt> <dd></dd>
+ <dt>GradientRight</dt> <dd></dd>
+ <dt>Hint</dt> <dd>A hint indicator. See <ex>:help hints</ex></dd>
+ <dt>HintActive</dt> <dd>The hint element of link which will be followed by <k name="Return"/></dd>
+ <dt>HintElem</dt> <dd>The hintable element</dd>
+ <dt>HintImage</dt> <dd>The indicator which floats above hinted images</dd>
+ <dt>Indicator</dt> <dd></dd>
+ <dt>InfoMsg</dt> <dd>Information messages</dd>
+ <dt>Keyword</dt> <dd>A bookmark keyword for a URL</dd>
+ <dt>LineNr</dt> <dd>The line number of an error</dd>
+ <dt>Message</dt> <dd></dd>
+ <dt>ModeMsg</dt> <dd>The mode indicator in the command line</dd>
+ <dt>MoreMsg</dt> <dd>The indicator that there is more text to view</dd>
+ <dt>NonText</dt> <dd></dd>
+ <dt>Normal</dt> <dd>Normal text in the command line</dd>
+ <dt>Null</dt> <dd>A JavaScript Null object</dd>
+ <dt>Number</dt> <dd>A JavaScript Number object</dd>
+ <dt>Object</dt> <dd>A JavaScript Object</dd>
+ <dt>Preview</dt> <dd></dd>
+ <dt>Question</dt> <dd>A prompt for a decision</dd>
+ <dt>Search</dt> <dd>Highlighted search results in a web page</dd>
+ <dt>StatusLine</dt> <dd>The status bar</dd>
+ <dt>StatusLineBroken</dt> <dd>The status bar for a broken web page</dd>
+ <dt>StatusLineSecure</dt> <dd>The status bar for a secure web page</dd>
+ <dt>StatusLineExtended</dt><dd>The status bar for a secure web page with an Extended Validation(EV) certificate</dd>
+ <dt>String</dt> <dd>A JavaScript String object</dd>
+ <dt>TabClose</dt> <dd>The close button of a browser tab</dd>
+ <dt>TabIcon</dt> <dd>The icon of a browser tab</dd>
+ <dt>TabIconNumber</dt> <dd>The number of a browser tab, over its icon</dd>
+ <dt>TabNumber</dt> <dd>The number of a browser tab, next to its icon</dd>
+ <dt>TabText</dt> <dd>The text of a browser tab</dd>
+ <dt>Tag</dt> <dd>A bookmark tag for a URL</dd>
+ <dt>Title</dt> <dd>The title of a listing, including <ex>:pageinfo</ex>, <ex>:jumps</ex></dd>
+ <dt>URL</dt> <dd>A URL</dd>
+ <dt>WarningMsg</dt> <dd>A warning message</dd>
+ </dl>
+
+ <p>
+ Every invocation completely replaces the styling of any previous invocation,
+ unless <em>-append</em> (short option: <em>-a</em>) is provided, in which case <a>css</a> is
+ appended to its current value. If <a>css</a> is not provided, any styles matching
+ <a>group</a> are listed, or all styles if no <a>group</a> provided.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:highlight-clear</tags>
+ <spec>:hi<oa>ghlight</oa> clear <oa><a>group</a> <oa><a>selector</a></oa></oa></spec>
+ <description>
+ <p>
+ Reset the highlighting for <a>group</a> to its default value. If
+ <a>group</a> is not given, reset all highlighting groups.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:sty :style</tags>
+ <spec>:sty<oa>le</oa><oa>!</oa> <oa>-name=<a>name</a></oa> <oa>-append</oa> <a>filter</a> [<a>css</a>]</spec>
+ <description>
+ <p>
+ Add CSS styles to the browser or to web pages. <a>filter</a> is a comma separated
+ list of URLs to match. URLs ending with <em>*</em> are matched as prefixes, URLs not
+ containing any <em>:</em> or <em>/</em> characters are matched as domains. <a>css</a> is a full
+ CSS rule set (e.g., <tt>body { color: blue; }</tt>).
+ </p>
+
+ <p>
+ If <a>name</a> (short option: *-n*) is provided, any existing style with the same
+ name is overridden, and the style may later be deleted using <a>name</a>. If
+ *-append* (short option: *-a*) is provided along with *-name*, <a>css</a> and
+ <a>filter</a> are appended to its current value.
+ </p>
+
+ <p>If <a>css</a> isn't provided, matching styles are listed.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:dels :delstyle</tags>
+ <spec>:dels<oa>tyle</oa> [-name=<a>name</a>] [-index=<a>index</a>] [<a>filter</a>] [<a>css</a>]</spec>
+ <description>
+ <p>
+ Delete any matching styles. If <a>filter</a> is provided, only matching elements of
+ the filter are disabled. For instance, a filter <str>mozilla.org</str>, given a
+ style for <str>www.google.com,mozilla.org</str>, will result in a style for
+ <str>www.google.com</str>. The available options are:
+ </p>
+
+ <ul>
+ <li><em>-name</em>: The name provided to <ex>:style</ex> (short option: *-n*)</li>
+ <li><em>-index</em>: For unnamed styles, the index listed by <ex>:style</ex>
+ (short option: *-i*)</li>
+ </ul>
+ </description>
+</item>
+
+
+<item>
+ <tags>:styleenable :stylee</tags>
+ <tags>:styenable :stye</tags>
+ <spec>:styled<oa>isable</oa> <oa>-name=<a>name</a></oa> <oa>-index=<a>index</a></oa> <a>filter</a> <a>css</a></spec>
+ <description>
+ <p>Enable any matching styles. Arguments are the same as for <ex>:delstyle</ex>.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:styledisable :styled</tags>
+ <tags>:stydisable :styd</tags>
+ <spec>:stylee<oa>nable</oa> <oa>-name=<a>name</a></oa> <oa>-index=<a>index</a></oa> <a>filter</a> <a>css</a></spec>
+ <description>
+ <p>Disable any matching styles. Arguments are the same as for <ex>:delstyle</ex>.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:styletoggle :stylet</tags>
+ <tags>:stytoggle :styt</tags>
+ <spec>:stylet<oa>oggle</oa> <oa>-name=<a>name</a></oa> <oa>-index=<a>index</a></oa> <a>filter</a> <a>css</a></spec>
+ <description>
+ <p>Toggle any matching styles. Arguments are the same as for <ex>:delstyle</ex>.</p>
+ </description>
+</item>
+
+
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/tabs.xml b/common/locale/en-US/tabs.xml
new file mode 100644
index 00000000..bf75f153
--- /dev/null
+++ b/common/locale/en-US/tabs.xml
@@ -0,0 +1,385 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="tabs"
+ title="&liberator.appname; Tabs"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1 tag="tabs">Tabs</h1>
+
+<p>
+ Tabs are used to be able to view many web pages at the same time. Each tab
+ contains exactly one buffer—multiple buffers per tab are not supported. As a
+ result many buffer and tab commands are interchangeable.
+</p>
+
+<h2 tag="listing-tabs">Listing tabs</h2>
+
+<item>
+ <tags>B :tabs :ls :files :buffers</tags>
+ <spec>:buffers <oa>filter</oa></spec>
+ <spec>B</spec>
+ <description>
+ <p>
+ Show a list of buffers (=tabs) matching <oa>filter</oa>. Without <oa>filter</oa>
+ list all tabs.
+ </p>
+
+ <p>A buffer may be marked with one of the following indicators:</p>
+
+ <dl>
+ <dt>%</dt><dd>The current buffer</dd>
+ <dt>#</dt><dd>The alternate buffer for <ex>:e #</ex> and <k name="C-^"/></dd>
+ </dl>
+ </description>
+</item>
+
+
+<item>
+ <tags>:keepa :keepalt</tags>
+ <spec>:keepa<oa>lt</oa> <a>cmd</a></spec>
+ <description>
+ <p>Execute a command without changing the current alternate buffer.</p>
+ </description>
+</item>
+
+
+<h2 tag="opening-tabs">Opening tabs</h2>
+
+<item>
+ <tags>:tab</tags>
+ <spec>:tab <a>cmd</a></spec>
+ <description>
+ <p>
+ Execute <a>cmd</a> and tell it to output in a new tab. Works only for commands that
+ support it, currently:
+ </p>
+
+ <p>
+ * <ex>:tab addons</ex>
+ * <ex>:tab downloads</ex>
+ * <ex>:tab extoptions</ex>
+ * <ex>:tab help</ex>
+ * <ex>:tab javascript!</ex>
+ * <ex>:tab preferences!</ex>
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <!-- TODO: move this somewhere more appropriate -->
+ <tags>:window :wind</tags>
+ <spec>:wind<oa>ow</oa> <a>cmd</a></spec>
+ <description>
+ <p>
+ Execute <a>cmd</a> and tell it to output in a new window. See <ex>:tab</ex> for the
+ list of supported commands.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:tabdu :tabduplicate</tags>
+ <spec>:<oa>count</oa>tabdu<oa>plicate</oa></spec>
+ <description>
+ <p>
+ Duplicate the current tab and switch to the duplicate. If <oa>count</oa> is given,
+ duplicate the tab <oa>count</oa> times.
+ </p>
+ </description>
+</item>
+
+
+<!-- TODO: should the tab commands be moved back here? -->
+See <t>opening</t> for other ways to open new tabs.
+
+<h2 tag="changing-tabs">Changing tabs</h2>
+
+<item>
+ <tags>gb</tags>
+ <spec><oa>count</oa>gb</spec>
+ <description>
+ <p>
+ Repeat last <ex>:buffer<oa>!</oa></ex> command. This is useful to quickly jump between
+ buffers which have a similar URL or title.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gB</tags>
+ <spec><oa>count</oa>gB</spec>
+ <description>
+ <p>
+ Repeat last <ex>:buffer<oa>!</oa></ex> command in reverse direction. Just like <k>gb</k>
+ but in the other direction.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>gt</tags>
+ <spec><oa>count</oa>gt</spec>
+ <description>
+ <p>
+ Go to the next tab. Cycles to the first tab when the last is selected. +
+ If <oa>count</oa> is specified go to the <oa>count</oa>th tab.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-PageDown> <C-Tab> <C-n>]]></tags>
+ <spec><oa>count</oa>&lt;C-n></spec>
+ <description>
+ <p>
+ Go to the next tab. Cycles to the first tab when the last is selected. +
+ If <oa>count</oa> is specified go to the <oa>count</oa>th next tab.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-PageUp> <C-S-Tab> <C-p> gT]]></tags>
+ <spec><oa>count</oa>gT</spec>
+ <description>
+ <p>
+ Go to the previous tab. Cycles to the last tab when the first is selected. +
+ If <oa>count</oa> is specified go to the <oa>count</oa>th previous tab.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:bn :bnext :tn :tnext :tabn :tabnext</tags>
+ <spec>:<oa>count</oa>tabn<oa>ext</oa> <oa>count</oa></spec>
+ <spec>:<oa>count</oa>tn<oa>ext</oa> <oa>count</oa></spec>
+ <spec>:<oa>count</oa>bn<oa>ext</oa> <oa>count</oa></spec>
+ <description>
+ <p>
+ Switch to the next or <oa>count</oa>th tab. Cycles to the first tab when the last is
+ selected and <oa>count</oa> is not specified.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:bN :bNext :bp :bprevious :tN :tNext :tabN :tabNext :tp :tprevious :tabp :tabprevious</tags>
+ <spec>:<oa>count</oa>tabp<oa>revious</oa> <oa>count</oa></spec>
+ <spec>:<oa>count</oa>tp<oa>revious</oa> <oa>count</oa></spec>
+ <spec>:<oa>count</oa>tabN<oa>ext</oa> <oa>count</oa></spec>
+ <spec>:<oa>count</oa>bp<oa>revious</oa> <oa>count</oa></spec>
+ <spec>:<oa>count</oa>bN<oa>ext</oa> <oa>count</oa></spec>
+ <description>
+ <p>
+ Switch to the previous tab or go <oa>count</oa> tabs back. Wraps around from the
+ first tab to the last tab.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-6> <C-^>]]></tags>
+ <spec><oa>count</oa>&lt;C-^></spec>
+ <description>
+ <p>
+ Select the previously selected tab. This provides a quick method of toggling
+ between two tabs. If <oa>count</oa> is specified, go to the <oa>count</oa>th tab.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>b :b :buffer</tags>
+ <spec>:<oa>count</oa>b<oa>uffer</oa><oa>!</oa> <oa>url|index</oa></spec>
+ <spec><oa>count</oa>b</spec>
+ <description>
+ <p>
+ Go to the specified buffer from the buffer list. Argument can be either the
+ buffer index or the full URL. If <oa>count</oa> is given, go to the <oa>count</oa>th buffer.
+ </p>
+
+ <p>
+ If argument is neither a full URL nor an index but uniquely identifies a
+ buffer, it is selected. With <oa>!</oa> the next buffer matching the argument is
+ selected, even if it cannot be identified uniquely. Use <k>b</k> as a
+ shortcut to open this prompt.
+ </p>
+
+ <p>If argument is <em>#</em>, the alternate buffer will be selected (see <k name="C-^"/>).</p>
+
+ <p>If no argument is given the current buffer remains current.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>g^ g0 :bf :bfirst :br :brewind :tabfir :tabfirst :tabr :tabrewind</tags>
+ <spec>:tabr<oa>ewind</oa></spec>
+ <spec>:tabfir<oa>st</oa></spec>
+ <spec>:br<oa>ewind</oa></spec>
+ <spec>:bf<oa>irst</oa></spec>
+ <spec>g0</spec>
+ <spec>g^</spec>
+ <description>
+ <p>Switch to the first tab.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>g$ :bl :blast :tabl :tablast</tags>
+ <spec>:tabl<oa>ast</oa></spec>
+ <spec>:bl<oa>ast</oa></spec>
+ <spec>g$</spec>
+ <description>
+ <p>Switch to the last tab.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:tabde :tabdetach</tags>
+ <spec>:tabde<oa>tach</oa></spec>
+ <description>
+ <p>
+ Detach the current tab, and open it in its own window. As each window must
+ contain at least one tab it is not possible to detach the only tab in a window.
+ Use <ex>:tabduplicate</ex> to copy the tab then call <ex>:tabdetach</ex>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:taba :tabattach</tags>
+ <spec>:taba<oa>ttach</oa> <a>window-index</a> <oa>tab-index</oa></spec>
+ <description>
+ <p>
+ Attach the current tab to another window. {window-index} is an index into the
+ list of open windows and <oa>tab-index</oa> is the index at which to insert the
+ tab in the other window's tab list. If this is the last tab in a window, the
+ window will be closed.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="reordering-tabs">Reordering tabs</h2>
+
+<item>
+ <tags>:tabm :tabmove</tags>
+ <spec>:tabm<oa>ove</oa> <oa>N</oa></spec>
+ <spec>:tabm<oa>ove</oa><oa>!</oa> <oa>+N</oa> | <oa>-N</oa></spec>
+ <description>
+ <p>
+ Move the current tab to a position after tab <oa>N</oa>. When <oa>N</oa> is 0, the
+ current tab is made the first one. Without <oa>N</oa> the current tab is made the
+ last one. <oa>N</oa> can also be prefixed with "+" or "-" to indicate a relative
+ movement. If <oa>!</oa> is specified the movement wraps around the start or end of the
+ tab list.
+ </p>
+ </description>
+</item>
+
+
+
+<h2 tag="closing-tabs">Closing tabs</h2>
+
+<item>
+ <tags>d :tabc :tabclose :bun :bunload :bw :bwipeout :bd :bdelete</tags>
+ <spec>:<oa>count</oa>bd<oa>elete</oa><oa>!</oa> <oa>arg</oa></spec>
+ <spec><oa>count</oa>d</spec>
+ <description>
+ <p>
+ Delete current buffer (=tab). If <oa>count</oa> is specified then <oa>count</oa> tabs are
+ removed. Afterwards, the tab to the right of the deleted tab(s) is selected.
+ </p>
+
+ <p>
+ When used with <oa>arg</oa>, remove all tabs which contain <oa>arg</oa> in the
+ hostname. <oa>!</oa> forces this command to also search for <oa>arg</oa> in the full
+ URL and also the title of the tab. Use with care.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>D</tags>
+ <spec><oa>count</oa>D</spec>
+ <description>
+ <p>Like <k>d</k> but selects the tab to the left of the deleted tab.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:tabo :tabonly</tags>
+ <spec>:tabo<oa>nly</oa></spec>
+ <description>
+ <p>Close all other tabs.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>u :u :undo</tags>
+ <spec>:<oa>count</oa>u<oa>ndo</oa> <oa>url</oa></spec>
+ <spec><oa>count</oa>u</spec>
+ <description>
+ <p>
+ Undo closing of a tab. If a count is given, don't undo the last but the
+ <oa>count</oa>th last closed tab. With <oa>url</oa> restores the tab matching the URL.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:undoa :undoall</tags>
+ <spec>:undoa<oa>ll</oa></spec>
+ <description>
+ <p>
+ Undo closing of all closed tabs. &liberator.host; stores up to 10 closed tabs, even
+ after a browser restart.
+ </p>
+ </description>
+</item>
+
+
+
+<h2 tag="looping-over-tabs">Looping over tabs</h2>
+
+<item>
+ <tags>:tabd :tabdo :bufd :bufdo</tags>
+ <spec>:tabd<oa>o</oa> <a>cmd</a></spec>
+ <description>
+ <p>
+ Execute <a>cmd</a> in each tab. <a>cmd</a> is executed in each tab starting with the
+ first and ending with the last which becomes the current tab.
+ </p>
+
+ <p>
+ <a>cmd</a> should not alter the tab list state by adding, removing or reordering
+ tabs.
+ </p>
+ </description>
+</item>
+
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/tutorial.xml b/common/locale/en-US/tutorial.xml
new file mode 100644
index 00000000..c6b43358
--- /dev/null
+++ b/common/locale/en-US/tutorial.xml
@@ -0,0 +1,369 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="tutorial"
+ title="&liberator.appname; Tutorial"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<!-- Initial revision: Sun Jun 8 10:07:05 UTC 2008 (penryu) -->
+
+<h1 tag="tutorial">Quick-start tutorial</h1>
+
+<html:p style="text-align: center">
+ This is a quickstart tutorial to help get new users up and running
+ in &liberator.appname;. It is not intended as a full reference explaining all
+ features.
+</html:p>
+
+<p>
+ If you've started using &liberator.appname; from scratch (i.e., without any
+ customization), you should be looking at this help page in a relatively
+ bare-looking window. The menubar, navigation bar, and bookmark bars are hidden.
+ In case you missed the notice in the <t>intro</t>, you can
+ regain these by issuing the command
+</p>
+
+<code><ex>:set go+=mTB<key name="CR"/></ex></code>
+
+<p>
+ where <k name="CR"/> represents pressing the <key name="Enter"/> or <key name="Return"/> key.
+ If you're a veteran Vim user, this may look familiar. It should.
+</p>
+
+<p>
+ However, in this author's opinion, the best way to get familiar with
+ &liberator.appname; is to leave these disabled for now. (The above action can be
+ reversed with <ex>:set go=<key name="CR"/></ex>) You can look at the entry for <o>guioptions</o> in
+ <t>options</t> for more information on this.
+</p>
+
+<h2 tag="modal">&liberator.appname;'s modal interface</h2>
+
+<p>
+ &liberator.appname;'s power, like Vim's, comes from it's modal interface. Keys have
+ different meanings depending on which mode the browser is in. &liberator.appname; has
+ several modes, but the 2 most important are <em>Normal</em> mode and
+ <em>Command-line</em> mode.
+</p>
+
+<p>
+ When &liberator.appname; starts, it is in Normal mode by default. This is probably where
+ you will spend the majority of your time.
+</p>
+
+<p>
+ The other core mode of &liberator.appname;, Command-line mode, can be entered from
+ Normal mode by typing a <k>:</k> (colon). You will frequently see &liberator.appname;
+ commands start with a <k>:</k>, indicating that what follows is a command.
+</p>
+
+<p>
+ To return to Normal mode from Command-line mode, type <k name="Esc"/>. Pressing
+ <k name="Esc"/> will also return you to Normal mode from most other modes in
+ &liberator.appname;.
+</p>
+
+<h2 tag="getting-help">Getting help</h2>
+
+<p>
+ Vim is a great editor but it's not much of a web browser. So even seasoned Vim
+ users will probably have to look at &liberator.appname; documentation sooner or later.
+ Most of the documentation for &liberator.appname;'s features are easily found using the
+ <ex>:help</ex> command. For example, you can find help on the <ex>:help</ex> command
+ by typing
+</p>
+
+<code><ex>:help :help<key name="CR"/></ex></code>
+
+<p>
+ Similarly, help on configurable options is available with
+ <ex>:help '<a>option_name</a>'</ex>. (Note the single quotes
+ around the option name as in Vim.) Information on all available
+ options is, predictably, <ex>:help options</ex>.
+</p>
+
+<p>
+ And you can find out about the <k>gt</k> and <k>gT</k> mapping with
+</p>
+
+<code>
+<ex>:help gt<key name="CR"/></ex>
+<ex>:help gT<key name="CR"/></ex>
+</code>
+
+<p>
+ Finally, in addition to the help system itself, <ex>:exusage</ex>, <ex>:viusage</ex>
+ and <ex>:optionusage</ex> are useful quick-reference commands.
+</p>
+
+<h2 tag="living-mouseless">Mouseless</h2>
+
+<em>– or how I learned to stop worrying and love the 80+ buttons I already have.</em>
+
+<p>
+ The efficiency of &liberator.appname;, as with the legendary editor it was inspired by,
+ relies on the user being able to keep his fingers on the keyboard where they
+ can do the most good. While there are some areas where the mouse is clearly
+ superior at, such as GUI design or some games, &liberator.appname; acts on the
+ assumption that a web browser doesn't have to be one of those.
+</p>
+
+<p>
+ Here are some areas where the mouse is typically considered indisposable, and
+ how &liberator.appname; challenges this preconception.
+</p>
+
+<h2 tag="keyboard-scrolling">Scrolling</h2>
+
+<p>
+ Scrolling the browser window is done with simple keystrokes:
+</p>
+
+<ul>
+ <li><k>j</k>/<k>k</k> –
+ scroll window down/up by one line, respectively
+ </li>
+ <li><k>h</k>/<k>l</k> –
+ scroll window left/right
+ </li>
+ <li><k name="Space"/>/<k name="C-b"/> –
+ scroll down/up by one page
+ </li>
+ <li><k name="C-d"/>/<k name="C-u"/> –
+ scroll down/up by 1/2 page
+ </li>
+</ul>
+
+<p>
+ Your standard buttons (<k name="Up"/>/<k name="Down"/>/<k name="PgUp"/>/<k name="PgDn"/>) will
+ also work as expected.
+</p>
+
+<h2 tag="history-navigation tab-navigation">History and tabs</h2>
+
+<p>
+ History navigation (e.g., <em>Back</em>, <em>Forward</em>) are done similarly to
+ scrolling.
+</p>
+
+<ul>
+ <li><k name="C-o"/>/<k name="C-i"/> –
+ move Back/Forward in the current window/tab's history, respectively
+ </li>
+</ul>
+
+<p>
+ Move between tabs using these keystrokes which may also be familiar to tabbing
+ Vimmers.
+</p>
+
+<ul>
+ <li><k>gt</k>/<k name="C-n"/> –
+ go to the next tab
+ </li>
+ <li><k>gT</k>/<k name="C-p"/> –
+ go to the previous tab
+ </li>
+ <li><k>g0</k>/<k>g$</k> –
+ go to the first/last tab
+ </li>
+ <li><k>d</k> –
+ close the active tab (delete the buffer)
+ </li>
+</ul>
+
+<p>
+ To open a web page in a new tab, use the <ex>:tabopen <a>url</a></ex>. To open a URL in
+ the current tab, use <ex>:open</ex>. The Normal mode mappings <k>t</k> and <k>o</k>,
+ respectively, map to these commands, so the following pairs of sequences are
+ equivalent:
+</p>
+
+<code>
+<ex>:open my.webmail.com<key name="CR"/></ex>
+<k>o</k>my.webmail.com<key name="CR"/>
+
+<ex>:tabopen vimperator.org<key name="CR"/></ex>
+<k>t</k>vimperator.org<key name="CR"/>
+</code>
+
+<h2 tag="hints-tutorial">Some hints about surfing…</h2>
+
+<p>
+ So now you can navigate around in &liberator.appname;. But wait… how do you <em>open</em> a
+ page or tab linked in a web page? How do you <em>click</em> on all those links
+ without your tailed friend?
+</p>
+
+<p>
+ The answer is <em>hints</em>. Activating hints displays a number next to every link
+ &liberator.appname; can find. To follow the link, simply type the number corresponding
+ to the hint, a white number inside a red square by default.
+</p>
+
+<p>
+ For text links, there's an additional shortcut; you can type some text
+ contained in the link and &liberator.appname; will search all the links it can find and
+ only hint the matching links, further narrowing down the list. If the text you
+ type uniquely identifies any given link, &liberator.appname; will follow that link
+ immediately without any further user input.
+</p>
+
+<p>
+ Whichever way you choose to indicate your target link, once &liberator.appname; has
+ highlighted the link you want, simply hit <k name="Enter"/> to open it.
+</p>
+
+<p>
+ The most common hint mode is called <t>quick-hints</t>.
+ To activate QuickHint mode, press either <k>f</k> or <k>F</k>. The lower-case
+ <k>f</k> will open the resulting link in the current tab, while the upper-case
+ <k>F</k> will open it in a new tab.
+</p>
+
+<p>
+ To test it, try this link: <link target="http://vimperator.org/">&liberator.appname; Homepage</link>.
+ Activate QuickHint mode with <k>f</k> or <k>F</k> to highlight all currently
+ visible links. Then start typing the text of the link. The link should be
+ uniquely identified soon, and &liberator.appname; will open it. Once you're done,
+ remember to use <k name="C-o"/> (<em>History Back</em>) or <k>d</k> (<em>Delete Buffer</em>)
+ to return here, depending on which key you used to activate QuickHint mode.
+</p>
+
+<h2 tag="common-issues">Common issues</h2>
+
+<p>
+ Say you get half-way done typing in a new URL, only to remember that you've
+ already got that page open in the previous tab. Your command line might look
+ something like this:
+</p>
+
+<code><ex>:open my.partial.url/fooba</ex></code>
+
+<p>
+ You can exit the command line and access the already loaded page with the
+ following:
+</p>
+
+<code><k name="Esc"/></code>
+
+<h2 tag="vimperatorrc">Saving for posterity - vimperatorrc</h2>
+
+<p>
+ Once you get &liberator.appname; set up with your desired options, maps, and commands,
+ you'll probably want them to be available the next time you open &liberator.appname;.
+ Continuing the Vim theme, this is done with a vimperatorrc file.
+</p>
+
+<p>
+ To save your current settings and allow them to be loaded automatically
+ next time you start &liberator.appname;, issue the <ex>:mkv</ex> command.
+</p>
+
+<p>
+ This will create the file <em>$HOME/.vimperatorrc</em> containing your settings.
+ It is a simple text file, just like a vimrc file and can be easily
+ edited to suit your preferences.
+</p>
+
+<h2 tag="quitting-without-menus">Find the exit nearest you</h2>
+
+<p>
+ &liberator.appname; supports all of Vim's classic methods of exiting.
+</p>
+
+<ul>
+ <li><ex>:xall</ex> – command to quit and save the current browsing
+ session for next time; the default.
+ </li>
+ <li><ex>:qall</ex> – command to quit <em>without</em> saving the session
+ </li>
+ <li><k>ZZ</k> – Normal mode mapping equivalent to <ex>:xall</ex>
+ </li>
+ <li><k>ZQ</k> – Normal mode mapping equivalent to <ex>:qall</ex>
+ </li>
+</ul>
+
+<h2 tag="whither-firefox">Where did &liberator.host; go?</h2>
+
+<p>
+ You might feel pretty disoriented now. Don't worry. This is still &liberator.host;
+ underneath. Here are some ways &liberator.appname; allows &liberator.host; to shine through. See
+ the <ex>:help</ex> for these commands and mappings for more information on how to
+ make the best use of them.
+</p>
+
+<ul>
+ <li><ex>:dialog</ex> –
+ To access some of &liberator.host;'s many dialog windows, you can use the
+ <ex>:dialog</ex> command. See <ex>:help :dialog</ex>.
+ </li>
+ <li><ex>:bmarks</ex> –
+ &liberator.appname; provides a new interface to bookmarks, but they're still your
+ standard &liberator.host; bookmarks under the hood. <ex>:bmark</ex> will add a new
+ bookmark, while <ex>:bmarks</ex> will list the bookmarks currently defined.
+ </li>
+ <li><ex>:history</ex> –
+ It's exactly what it sounds like. This command will display a colorized,
+ scrollable and clickable list of the locations in &liberator.appname;'s history.
+ </li>
+ <li><ex>:emenu</ex> –
+ Access the &liberator.host; menus through the &liberator.appname; command line.
+ </li>
+</ul>
+
+<p>
+ Feel free to explore at this point. If you use the <ex>:tabopen</ex> command,
+ remember to use the <k>gt</k>/<k>gT</k> mappings to get back to this page. If
+ using the <ex>:open</ex> command, use the history keys (e.g., <k>H</k>) to return.
+ If you get hopelessly lost, just type <ex>:help<key name="CR"/></ex> and click the
+ <em>Tutorial</em> link to return.
+</p>
+
+
+<!-- TODO: other sections? -->
+
+
+<h2 tag="removal">Get me out of here!</h2>
+
+<p>
+ If you've given it a fair shot and determined … TODO
+</p>
+
+<p>
+ The &liberator.appname; way to do this is with the command <ex>:addons</ex>. Issuing this
+ command brings up the &liberator.host; Add-ons dialog window; you can then remove it as
+ normal, selecting &liberator.appname; from the list and clicking (yes, clicking)
+ <em>Uninstall</em>.
+</p>
+
+<p>
+ Alternatively, you can do this the old-fashioned way: re-enable the menubar,
+ as above, with <ex>:set go+=m</ex>, and select <em>Add-ons</em> from the <em>Tools</em> menu.
+</p>
+
+
+<h2 tag="support">I'm interested… but lost!</h2>
+
+<p>
+ &liberator.appname; has an energetic and growing user base. If you've run into a problem
+ that you can't seem to solve with &liberator.appname;, or if you think you might have
+ found a bug, please let us know! There is support available on the
+ <link target="http://code.google.com/p/vimperator-labs/w/list?q=label%3Aproject-vimperator">wiki</link>
+ or in the <link target="irc://irc.freenode.net/vimperator">#vimperator</link> IRC
+ channel on <link target="http://freenode.net/">freenode</link>.
+</p>
+
+<p>
+ If you have any feature requests or (even better) offers to help, we'd love to
+ hear from you as well. Developers work on &liberator.appname; whenever possible, but we
+ are neither infinite nor omnipotent; please bear with us. If you can't wait for
+ us to get around to it, rest assured patches are welcome! See the
+ <t>developer</t> page for more information.
+</p>
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->
diff --git a/common/locale/en-US/various.xml b/common/locale/en-US/various.xml
new file mode 100644
index 00000000..cec82832
--- /dev/null
+++ b/common/locale/en-US/various.xml
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
+
+<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
+
+<document
+ name="various"
+ title="&liberator.appname; Other"
+ xmlns="http://vimperator.org/namespaces/liberator"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+<h1>Other help</h1>
+
+<h2 tag="various">Various commands</h2>
+
+<item>
+ <tags>:beep</tags>
+ <spec>:beep</spec>
+ <description>
+ <p>Play a system beep.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<C-l> CTRL-L :redr :redraw]]></tags>
+ <spec>:redr<oa>aw</oa></spec>
+ <description>
+ <p>Redraws the screen. Useful to update the screen halfway executing a script or function.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:norm :normal</tags>
+ <spec>:norm<oa>al</oa><oa>!</oa> <a>commands</a></spec>
+ <description>
+ <p>
+ Execute Normal mode commands <a>commands</a>. This makes it possible to execute
+ Normal mode commands typed on the command line. <a>commands</a> is executed like it
+ is typed. If the <oa>!</oa> is given, mappings will not be used. <a>commands</a> should be
+ a complete command. <a>commands</a> cannot start with a space. Put 1 space before
+ it, 1 space is one space.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:run :! :!cmd</tags>
+ <spec>:!<a>cmd</a></spec>
+ <description>
+ <p>
+ Run a command. Runs <a>cmd</a> through system() and displays its output. Any '!' in
+ <a>cmd</a> is replaced with the previous external command, but not when there is a
+ backslash before the '!', then the backslash is removed.
+ </p>
+
+ <p>
+ Warning: Input redirection (&lt; foo) not done, also do not run commands which
+ require stdin or it will hang &liberator.host;! It is possible to launch background
+ processes, though (e.g. <ex>:! xterm &amp;</ex>).
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:!!</tags>
+ <spec>:!!</spec>
+ <description>
+ <p>Repeat last <ex>:!<a>cmd</a></ex>.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:sa :sanitize</tags>
+ <spec>:sa<oa>nitize</oa> [-timespan=<a>timespan</a>] <a>item</a> …</spec>
+ <spec>:sa<oa>nitize</oa>! [-timespan=<a>timespan</a>]</spec>
+ <description>
+ <p>
+ Clear private data items. Where <a>item</a> … is a list of private items to
+ delete. These may be any of the items valid for <o>sanitizeitems</o>.
+ </p>
+
+ <p>
+ If <oa>!</oa> is specified then <o>sanitizeitems</o> is used for the list of items to
+ delete.
+ </p>
+
+ <p>
+ If <a>timespan</a> is specified then only items within that timespan are deleted,
+ otherwise the value of <o>sanitizetimespan</o> is used.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:sil :silent</tags>
+ <spec>:sil<oa>ent</oa> <a>command</a></spec>
+ <description>
+ <p>
+ Execute a command silently. Normal messages and error messages generated by the
+ command invocation will not be given and will not be added to the message
+ history.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:verb :verbose</tags>
+ <spec>:<oa>count</oa>verb<oa>ose</oa> <a>command</a></spec>
+ <description>
+ <p>
+ Execute a command with <o>verbose</o> set to <oa>count</oa>. If <oa>count</oa> is not specified
+ then 1 is used as the value.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:ve :version</tags>
+ <spec>:ve<oa>rsion</oa><oa>!</oa></spec>
+ <description>
+ <p>
+ Show version information. You can show the &liberator.host; version page with
+ <ex>:version!</ex>.
+ </p>
+ </description>
+</item>
+
+
+<h2 tag="online-help">Online help</h2>
+
+<item>
+ <tags><![CDATA[<F1> :help :h help]]></tags>
+ <spec>:h<oa>elp</oa> <oa>subject</oa></spec>
+ <spec>&lt;F1></spec>
+ <description>
+ <p>
+ Open the help page. The default page, as specified by <o>helpfile</o> is shown
+ unless <oa>subject</oa> is specified. If you need help for a specific topic, try
+ <ex>:help overview</ex>.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:helpall :helpa help-all</tags>
+ <spec>:helpa<oa>ll</oa> <oa>subject</oa></spec>
+ <description>
+ <p>Open the single unchunked help page.</p>
+
+ <p>See <ex>:help</ex>.</p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:exu :exusage</tags>
+ <spec>:exu<oa>sage</oa><oa>!</oa></spec>
+ <description>
+ <p>
+ Show help on Ex commands. If <oa>!</oa> is given then the help is listed in the
+ command output window.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:optionu :optionusage</tags>
+ <spec>:optionu<oa>sage</oa><oa>!</oa></spec>
+ <description>
+ <p>
+ Show help on options. If <oa>!</oa> is given then the help is listed in the command
+ output window.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags>:viu :viusage</tags>
+ <spec>:viu<oa>sage</oa><oa>!</oa></spec>
+ <description>
+ <p>
+ Show help on Normal mode commands. If <oa>!</oa> is given then the help is listed in
+ the command output window.
+ </p>
+ </description>
+</item>
+
+
+
+<tags>42</tags>
+
+What is the meaning of life, the universe and everything?
+Douglas Adams, the only person who knew what this question really was about is
+now dead, unfortunately. So now you might wonder what the meaning of death
+is…
+
+
+<h2 tag="uncategorized">Uncategorized help</h2>
+
+<item>
+ <tags><![CDATA[<C-[> <Esc>]]></tags>
+ <spec>&lt;Esc></spec>
+ <description>
+ <p>
+ Focus content. Exits Command-line or Hints mode and returns to Normal
+ mode. Also focuses the web page in case a form field has focus and eats
+ our key presses.
+ </p>
+ </description>
+</item>
+
+
+<item>
+ <tags><![CDATA[<Insert> i]]></tags>
+ <spec>i</spec>
+ <description>
+ <p>
+ Start caret mode. This mode resembles the Vim's Normal mode where you see a
+ text cursor and can move around. If you want to select text in this mode, press
+ <k>v</k> to start its Visual mode.
+ </p>
+ </description>
+</item>
+
+
+</document>
+<!-- vim:se sts=4 sw=4 et: -->