|Version 4 (modified by 8 years ago) (diff),|
Content negotiation plugin for Trac wiki
This plugin provides content negotiation mechanism for Trac wiki pages. With this plugin, your trac site can provides multiple localized pages for users.
If you have any issues, create a new ticket.
Download the zipped source from [download:tracwikinegotiatorplugin here].
How to Install
Build egg file and place it appropriate place
If you want to install as system wide plugin:
$ python setup.py install
If you want to build plugin egg file and use it in some projects,
build egg file and copy it into
plugins directory under the trac
$ python setup.py bdist_egg ... $ cp dist/*.egg /your/trac/project/plugins
How to Setup
On using this plugin, do not forget enabling plugin
trac.ini or via
[components] wikinegotiator.* = enabled [wiki] default_lang = en
How to Use
Using the negotiation feature is simply providing suffixed page like
'Foo.ja' for Japanese, 'Foo.fr' for French, so on. When Japanese user
(with Japanese setting in browser) access to the page 'Foo', he will
see the content of
Foo.ja instead of
Foo. Likewise, French use
will see the content of
Foo.fr. So what you should to do is creating
localized page content as usual way. Note that suffix like '.ja' and
'.fr' is to be a standard language code.
Foo is also usable for default content
when no suffixed page is matched to user's request.
To see the page for your language, nothing to do to view localized page. To see the page for other language, specify the appropreate suffix for wiki page name in url explicitly, or add query parameter like "?lang=xx".
To edit the page, you can edit the page now you are seeing by simply press "Edit" button. To edit the page for other language, first, visit the desired page with a way described above, then press "Edit" button.
For bonus, this plugin contains two new macro:
The former is an alternative macro of
The later is an alternative of
(see wiki:tocmacro in Trac-Hacs for more detail)
The differences against
- Display in one line for variants like: "* WikiStart (ja, en, other)".
- List pages in two columns: one is for user's pages, one is for
system provided pages. System pages are the pages made by trac.
SandBoxare exception by default because it is a page to be edited by user.
It is useful for the site having many localized pages.
You can use it by editing
If you installed and enabled
TOC macro on Trac 0.11 (or later),
NTOC macro is also enabled. It is delived macro from
TOC so all
the features in
TOC macro are available and plus handling lang
suffixed pages better.
If you specify normal page name without explicit lang suffix
NTOC look up localized page for language same to
parent page the macro is put on. If not exist, look up localized page
for preferred langs. If not found, use specified name as is.
So, it is easy to get localized TOC by simply specifyng base page names
NTOC also handles wildcard page argument by expanding and removing
TOC can be simply replaced to
- 10723 by gotoh on 2011-10-03 13:26:54
Refresh existing languages on adding/deleting/renaming page.
- 10722 by gotoh on 2011-10-03 13:26:45
Do not remember temporary lang.
- 10718 by gotoh on 2011-10-03 11:19:52
Ignore invalid lang value for security reason.
We should reject lang value which does not have expected format ("xx"