gluon-web: add renderer._translate()
_translate() will return nil when no match is found.
This commit is contained in:
parent
e70ced9caa
commit
1d7b4482b7
@ -17,10 +17,11 @@ i18n support in Gluon
|
|||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
Internationalization support is available in all components (models, view and
|
Internationalization support is available in all components (models, view and
|
||||||
contrllers) of *gluon-web*-based packages. Strings are translated using the *translate*
|
contrllers) of *gluon-web*-based packages. Strings are translated using the *translate*,
|
||||||
and *translatef* functions (*translate* for static strings, *translatef*
|
*_translate* and *translatef* functions (*translate* for static strings, *translatef*
|
||||||
for printf-like formatted string); in views, the special tags ``<%:...%>`` can
|
for printf-like formatted string; *_translate* works the same as *translate*, but
|
||||||
be used to translate the contained string.
|
will return *nil* instead of the original string when no translation is available)
|
||||||
|
. In views, the special tags ``<%:...%>`` can be used to translate the contained string.
|
||||||
|
|
||||||
Example from the *gluon-config-mode-geo-location* package:
|
Example from the *gluon-config-mode-geo-location* package:
|
||||||
|
|
||||||
|
@ -52,4 +52,4 @@ variables and functions should always be available for the embedded Lua code:
|
|||||||
Use ``node(unpack(request))`` to get the node for the current page.
|
Use ``node(unpack(request))`` to get the node for the current page.
|
||||||
- *pcdata* (*str*): Escapes HTML entities in the passed string.
|
- *pcdata* (*str*): Escapes HTML entities in the passed string.
|
||||||
- *urlencode* (*str*): Escapes the passed string for use in an URL.
|
- *urlencode* (*str*): Escapes the passed string for use in an URL.
|
||||||
- *translate* and *translatef*: see :doc:`i18n`
|
- *translate*, *_translate* and *translatef*: see :doc:`i18n`
|
||||||
|
@ -25,6 +25,7 @@ function renderer(env)
|
|||||||
renderer = ctx,
|
renderer = ctx,
|
||||||
translate = ctx.translate,
|
translate = ctx.translate,
|
||||||
translatef = ctx.translatef,
|
translatef = ctx.translatef,
|
||||||
|
_translate = ctx._translate,
|
||||||
include = function(name)
|
include = function(name)
|
||||||
ctx.render(name, scope)
|
ctx.render(name, scope)
|
||||||
end,
|
end,
|
||||||
@ -79,13 +80,19 @@ function renderer(env)
|
|||||||
return tparser.load_catalog(lang, i18ndir)
|
return tparser.load_catalog(lang, i18ndir)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Returns a translated string, or nil if none is found
|
||||||
|
function ctx._translate(key)
|
||||||
|
return (tparser.translate(key))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Returns a translated string, or the original string if none is found
|
||||||
function ctx.translate(key)
|
function ctx.translate(key)
|
||||||
return tparser.translate(key) or key
|
return tparser.translate(key) or key
|
||||||
end
|
end
|
||||||
|
|
||||||
function ctx.translatef(key, ...)
|
function ctx.translatef(key, ...)
|
||||||
local t = ctx.translate(key)
|
local t = ctx.translate(key)
|
||||||
return t and t:format(...)
|
return t:format(...)
|
||||||
end
|
end
|
||||||
|
|
||||||
return ctx
|
return ctx
|
||||||
|
Loading…
Reference in New Issue
Block a user