Version 8 (modified by 15 years ago) (diff) | ,
---|
Content negotiation plugin for Trac wiki
Description
This plugin provides content negotiation mechanism for Trac wiki pages. With this plugin, your Trac site can provides localized pages for users.
A live example site is here.
Bugs/Feature Requests
Existing bugs and feature requests for TracWikiNegotiatorPlugin are here.
If you have any issues, create a new ticket.
Download
Download the zipped source from [download:tracwikinegotiatorplugin here].
Source
You can check out TracWikiNegotiatorPlugin from here using Subversion, or browse the source with Trac.
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
environment directory:
$ python setup.py bdist_egg ... $ cp dist/*.egg /your/trac/project/plugins
How to Setup
On using this plugin, do not forget enabling plugin
WikiNegotiator
in trac.ini
or via WebAdmin
page.
[components] wikinegotiator.* = enabled [wiki] default_lang = en
Note that TitleIndex
macro and TOC
macro (by tractoc plugin) is
overridden by enabling this plugin. To use original macro, you should
disable new macro explicitly. See Bonus Macro for
more detail.
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.
Non-suffixed page 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.
Language Menu
By using this plugin, you can see new language menu bar above the wiki context navigation menu. It displays available languages on this site automatically by finding language suffixes of wiki pages.
Notice: Users who installed earlier version (before r4974) on trac 0.11 may need enabling
WikiNegotiatorMenuBar
component to display language menu.
You can select language via this menu. Because it is holded in the session information, you can walk with the language without re-selection.
The selected language are displayed underlined and bolded on the menu. If specific language content is not availabe, the language item in the menu is grayed.
There are 5 kind of display styles:
simple
- Solid menu bar above the wiki context navigation menu. This is default style.
ctxnav
-
Like
simple
but displayed on the right of the wiki context menu. It looks like a one of the context menu item. button
- Button faced selection menu.
tab
- Tabbed page style of selector.
none
- Hide language menu.
The style of language menu can be changed by menu_style
option:
[wiki-negotiator] menu_style=ctxnav
Bonus Macro
For bonus, this plugin contains two new macro: MultiLangTitleIndex
and NTOC
.
The former is an alternative macro of TitleIndex
.
The later is an alternative of TOC
macro.
(see tocmacro in Trac-Hacs for more detail)
And this plugin has the definitions to override original
TitleIndexMacro
and TOCMacro
automatically.
So you do not need to edit wiki pages to use both two new macros.
If you want to disable new feature and use original,
disable new macros explicitly in trac.ini
like this:
[components] wikinegotiator.macros.titleindexmacro = disabled wikinegotiator.macros.tocmacro = disabled
MultiLangTitleIndex
The differences against TitleIndex
are:
- 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.
WikiStart
andSandBox
are exception by default because it is a page to be edited by user.
It is useful for the site having many localized pages.
This feature is automatically enabled by overriding TitleIndexMacro
when this plugin is enabled.
NTOC
NTOC
macro delives TOC
macro, so all the features in TOC
macro
are available except handling lang suffixed pages.
If you specify normal page name without explicit lang suffix
(i.e. WikiStart
), 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
in argument.
NTOC
also handles wildcard page argument by expanding and removing
suffixed pages.
This feature is automatically enabled by overriding TOCMacro
if available
when this plugin is enabled.
Recent Changes
- 10723 by gotoh on 2011-10-03 11:26:54
-
Refresh existing languages on adding/deleting/renaming page.
- 10722 by gotoh on 2011-10-03 11:26:45
-
Do not remember temporary lang.
- 10718 by gotoh on 2011-10-03 09:19:52
-
Ignore invalid lang value for security reason.
We should reject lang value which does not have expected format ("xx"
or "xx-yy").
(more)
Author/Contributors
Author: gotoh
Contributors: