[dokuwiki] Re: Questions about parser

  • From: "Chris Smith" <chris@xxxxxxxxxxxxx>
  • To: <dokuwiki@xxxxxxxxxxxxx>
  • Date: Thu, 15 Sep 2005 00:32:58 +0100

Hi,

For your point about diferent article names for different languages. I would
think the file name should be identical across all languages.  Using
localisation, I would think its important to set the useheading flag to one
and show the heading from the translated page. Your example maybe fine for a
simple page name like chien/suo/dog but I suspect with more complex page
names and requirements for non-standard characters might make that solution
inadequate.

You shouldn't really need to touch the parser files.  I would think the
language selection box will be separate from the wiki page - so its part of
the template rather than the parser.  It is the template that ultimately
asks for a wiki page to be displayed through the tpl_content($ID) function.
I expect you would breakdown the $ID and investigate what languages are
available for the requested page and determine which final $ID to submit to
tpl_content for display.


a possible implementation could go like this ...

$ID is broken into namespace/pagename, you then need to break down the
namespace to extract the language code, see what other languages are
available for that namespace and whether this requested page is available in
any of those languages.  From the list of languages you would create a set
of select/option html statements and reconstruct the correct id for the page
you wish to display before forwarding it to tpl_content.

The only area where I think you would need to modify the parser is in your
handling of wiki links.
Have you decided how you wish to show wiki links?  Perhaps with three
colours, e.g.
- red, doesn't exist
- amber, exists but not in current language
- green, exists in current language

For that you could modify the parser, but it may be easier to provide a
syntax plugin to go along with the template.

The other area you may want to consider is ACL. Does it need to be modified
to ensure page specific settings are used on all translations of a given
page?

I hope this helps you some.

Chris



> -----Original Message-----
> From: dokuwiki-bounce@xxxxxxxxxxxxx
> [mailto:dokuwiki-bounce@xxxxxxxxxxxxx]On Behalf Of Linas Valiukas
> Sent: 14 September 2005 14:55
> To: dokuwiki@xxxxxxxxxxxxx
> Subject: [dokuwiki] Re: Questions about parser
>
>
> Aaargh, I'm using most of my free time on this and you don't bother
> answering :-(.
>
>
> On 9/10/05, Linas Valiukas <shirshegsm@xxxxxxxxx> wrote:
> > Hello,
> >
> > I'm proud to say that multilanguage add-on I promised a week ago is
> > almost done ;-).
> >
> > I've chosen the data/<lang_id>/<article's_name_in_that_language>.txt
> > "syntax". Also you can choose preferred language in the
> drop down box.
> > Everything (almost) working right now but the only thing left is to
> > somehow relate pages in different languages (i.e. en/dog.txt and
> > fr/chien.txt).
> >
> > I'm thinking about adding a new "tag" to the parser which will let
> > editors to define links to other pages about the same subject, For
> > example:
> >
> > <article>
> > ==== Dog ====
> >
> > Beware of big dogs!
> >
> > {{fr:chien}}
> > {{lt:?uo}}
> > </article>
> >
> > And so visitors will see a star near their language ID in the drop
> > down box. That star would mean that the page they're seeing is
> > translated in that language.
> >
> > So, the questions:
> > 1) where the parser is (there are several files in
> inc/parser/, but I
> > don't know which one do I need)?
> > 2) how to add the feature described above without much ass pain?
> > 3) is there a way to move that feature outside the class (I want to
> > encapsulate the whole multilanguage thing to inc/multilang.php)
> >
> > Regards,
> >
> > --
> > Linas Valiukas
> > gsm: +370 687 65 870
> > email: shirshegsm@xxxxxxxxx
> > icq: 147235316
> >
>
>
> --
> Linas Valiukas
> gsm: +370 687 65 870
> email: shirshegsm@xxxxxxxxx
> icq: 147235316
> Z???¢?¶§?¦n?ÿ???

-- 
DokuWiki mailing list - more info at
http://wiki.splitbrain.org/wiki:mailinglist

Other related posts: