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
|
||||
contrllers) of *gluon-web*-based packages. Strings are translated using the *translate*
|
||||
and *translatef* functions (*translate* for static strings, *translatef*
|
||||
for printf-like formatted string); in views, the special tags ``<%:...%>`` can
|
||||
be used to translate the contained string.
|
||||
contrllers) of *gluon-web*-based packages. Strings are translated using the *translate*,
|
||||
*_translate* and *translatef* functions (*translate* for static strings, *translatef*
|
||||
for printf-like formatted string; *_translate* works the same as *translate*, but
|
||||
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:
|
||||
|
||||
|
@ -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.
|
||||
- *pcdata* (*str*): Escapes HTML entities in the passed string.
|
||||
- *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,
|
||||
translate = ctx.translate,
|
||||
translatef = ctx.translatef,
|
||||
_translate = ctx._translate,
|
||||
include = function(name)
|
||||
ctx.render(name, scope)
|
||||
end,
|
||||
@ -79,13 +80,19 @@ function renderer(env)
|
||||
return tparser.load_catalog(lang, i18ndir)
|
||||
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)
|
||||
return tparser.translate(key) or key
|
||||
end
|
||||
|
||||
function ctx.translatef(key, ...)
|
||||
local t = ctx.translate(key)
|
||||
return t and t:format(...)
|
||||
return t:format(...)
|
||||
end
|
||||
|
||||
return ctx
|
||||
|
Loading…
Reference in New Issue
Block a user