b655bf | 2004-06-30 | Martin Stjernholm | |
|
afcffc | 2000-07-09 | Martin Nilsson | |
#include <module.h>
inherit "module";
|
b3281f | 2000-09-10 | Martin Nilsson | | constant module_type = MODULE_TAG;
|
bc0fa0 | 2001-03-08 | Per Hedbor | | constant module_name = "Tags: Translation module";
|
afcffc | 2000-07-09 | Martin Nilsson | | constant module_doc = "This module provides an RXML API to the Pike localization system.";
|
ea0a98 | 2000-07-17 | Andreas Lange | | constant thread_safe = 1;
|
b655bf | 2004-06-30 | Martin Stjernholm | | constant cvs_version = "$Id: translation_mod.pike,v 1.14 2004/06/30 16:59:27 mast Exp $";
|
ea0a98 | 2000-07-17 | Andreas Lange | |
|
afcffc | 2000-07-09 | Martin Nilsson | |
class TagTranslationRegistration {
inherit RXML.Tag;
constant name = "trans-reg";
|
1b2d74 | 2001-10-08 | Anders Johansson | | constant flags = RXML.FLAG_EMPTY_ELEMENT;
|
afcffc | 2000-07-09 | Martin Nilsson | |
|
9dda09 | 2000-07-21 | Andreas Lange | | mapping(string:RXML.Type) req_arg_types =
([ "project" : RXML.t_text(RXML.PEnt) ]);
mapping(string:RXML.Type) opt_arg_types =
([ "path" : RXML.t_text(RXML.PEnt) ]);
|
afcffc | 2000-07-09 | Martin Nilsson | |
class Frame {
inherit RXML.Frame;
array do_return(RequestID id) {
|
b9a702 | 2000-07-15 | Andreas Lange | | if(args->path && args->path!="") {
Locale.register_project(args->project, args->path);
}
|
9dda09 | 2000-07-21 | Andreas Lange | | id->misc->translation_proj = args->project;
|
afcffc | 2000-07-09 | Martin Nilsson | | result = "";
return 0;
}
}
}
class TagTranslate {
inherit RXML.Tag;
constant name = "translate";
|
9dda09 | 2000-07-21 | Andreas Lange | | mapping(string:RXML.Type) opt_arg_types = ([
"id":RXML.t_text(RXML.PEnt),
"project":RXML.t_text(RXML.PEnt),
"variable":RXML.t_text(RXML.PEnt),
"scope":RXML.t_text(RXML.PEnt) ]);
|
afcffc | 2000-07-09 | Martin Nilsson | | class Frame {
inherit RXML.Frame;
|
9dda09 | 2000-07-21 | Andreas Lange | |
array do_return( RequestID id ) {
|
2de57b | 2000-07-13 | Martin Nilsson | | string proj = args->project || id->misc->translation_proj;
|
b9a702 | 2000-07-15 | Andreas Lange | | string trans = Locale.translate(proj, roxen.locale->get(),
|
9dda09 | 2000-07-21 | Andreas Lange | | (int)args->id || args->id,
|
afcffc | 2000-07-09 | Martin Nilsson | | content);
if(args->variable) {
RXML.user_set_var(args->variable, trans, args->scope);
return 0;
}
result = trans;
return 0;
}
}
}
|
9b0365 | 2001-03-07 | Kenneth Johansson | | TAGDOCUMENTATION;
#ifdef manual
constant tagdoc=([
"trans-reg":#"<desc tag='tag'><p><short>
Registers a locale project in the locale system.</short> Used
internally by Roxen. You don't know how to use this tag. </p>
</desc>
<attr name='project' value='string'><p>
The name of the project.</p></attr>
<attr name='path' value='string'><p>
The path to the projects language files.</p></attr>
",
"translate":#"<desc tag='tag'><p><short>
Translates the string to an apropriate string in the current
locale.</short> Used internally by Roxen. You don't know how to use
this tag.
</p></desc>
<attr name='id' value='string|number'><p>
The ID of the string.</p></attr>
<attr name='project' value='string'><p>
The name of the project in which to look up the string. If only one
project is registered on the page the translation tag will default to
that project.</p></attr>
<attr name='variable' value=''><p>
If set, the string will be put in this variable instead of inserted
into the current page.</p></attr>
<attr name='scope' value=''><p>
The scope for the variable.</p></attr>
",
]);
#endif
|