The npm package xgettext-template as of v2.3.0 now includes Volt template parsing for gettext messages. I maintain a near identical development branch of this software with xgettext-webird
but I recommend that you use the original package.
So what can you do with this?
You can use this node tool to extract the gettext messages from a Volt template.
{{ t('This message is in English') }}
and this:
{%- set menus = [
'features': t('Features'),
'admin': t('Admin')
] -%}
This message is then pulled out of the template and your translator (person) can then convert that message into another language.
With this xgettext-template
message extractor you can pull messages out of many of the Jinja style templates, so; Nunjucks, Swig, Jinja, Volt, etc.
You can use a similar templates for the front and back end to help keep your mind thinking in a similar way as you move between different parts of the stack.
Take a look at my Webird system where I am using Nunjucks templates on the front end and Volt templates on the backend.