Skip to content
Snippets Groups Projects
Unverified Commit 1d7b4482 authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

gluon-web: add renderer._translate()

_translate() will return nil when no match is found.
parent e70ced9c
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment