Translate not match html lang

I’m make custom theme base on casper theme
I have route.yml:
routes:

collections:
/:
permalink: /{slug}/
template: index
filter: ‘tag:-[hash-en]’
/en/:
permalink: /en/{slug}/
template: index-en
filter: ‘tag:hash-en’

taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/

In my theme:
I’m change default.hbs with <html lang="{{{block “lang”}}}">
index.hbs:
{{!< default}}
{{!-- The tag above means: insert everything in this file
into the {body} of the default.hbs template --}}
{{#contentFor “lang”}}{{@site.lang}}{{/contentFor}}
index-en.hbs
{{#contentFor “lang”}}en{{/contentFor}}
post.hbs
{{#post}}

{{#has tag="#en"}}

{{#contentFor "lang"}}en{{/contentFor}}

{{else}}

{{#contentFor "lang"}}{{@site.lang}}{{/contentFor}}

{{/has}}

{{/post}}

I configure Publication Language : vi
When i request /en, translator helper not use locales en.json,
translator helper only use value of Publication Language setting.
Help please! Thanks.

1 Like

I’m also having this issue, did you had any success @thuongph ? Anyone from ghost could help out here?

Btw this is my stacktrace

[index-en.hbs] Cannot read property ‘length’ of undefined

Error ID:
d75fc300-9cd0-11eb-ac64-ab28b95a8d61


IncorrectUsageError: [index-en.hbs] Cannot read property ‘length’ of undefined
at new IncorrectUsageError (/var/www/site_user/versions/4.1.2/node_modules/@tryghost/errors/node_modules/ghost-ignition/lib/errors/index.js:98:23)
at _private.prepareError (/var/www/site_user/versions/4.1.2/core/server/web/shared/middlewares/error-handler.js:47:19)
at Layer.handle_error (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/layer.js:71:5)
at trim_prefix (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:315:13)
at /var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:335:12)
at next (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:275:10)
at handle404 (/var/www/site_user/versions/4.1.2/core/frontend/apps/private-blogging/lib/middleware.js:171:20)
at Layer.handle_error (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/layer.js:71:5)
at trim_prefix (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:315:13)
at /var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:335:12)
at next (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:275:10)
at Layer.handle_error (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/layer.js:67:12)
at trim_prefix (/var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:315:13)
at /var/www/site_user/versions/4.1.2/node_modules/express/lib/router/index.js:284:7

TypeError: [index-en.hbs] Cannot read property ‘length’ of undefined
at ThemeI18n._findString (/var/www/site_user/versions/4.1.2/core/server/lib/common/i18n.js:120:21)
at ThemeI18n.t (/var/www/site_user/versions/4.1.2/core/server/lib/common/i18n.js:50:23)
at Object.t (/var/www/site_user/versions/4.1.2/core/frontend/helpers/t.js:24:22)
at Object.wrapper (/var/www/site_user/versions/4.1.2/node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js:15:19)
at Object.eval [as main] (eval at createFunctionContext (/var/www/site_user/versions/4.1.2/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:262:23), :18:92)
at main (/var/www/site_user/versions/4.1.2/node_modules/handlebars/dist/cjs/handlebars/runtime.js:208:32)
at ret (/var/www/site_user/versions/4.1.2/node_modules/handlebars/dist/cjs/handlebars/runtime.js:212:12)
at ret (/var/www/site_user/versions/4.1.2/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:519:21)
at renderTemplate (/var/www/site_user/versions/4.1.2/node_modules/express-hbs/lib/hbs.js:490:13)
at render (/var/www/site_user/versions/4.1.2/node_modules/express-hbs/lib/hbs.js:526:5)
at renderIt (/var/www/site_user/versions/4.1.2/node_modules/express-hbs/lib/hbs.js:588:18)
at /var/www/site_user/versions/4.1.2/node_modules/express-hbs/lib/hbs.js:598:11
at _returnLayouts (/var/www/site_user/versions/4.1.2/node_modules/express-hbs/lib/hbs.js:124:7)
at /var/www/site_user/versions/4.1.2/node_modules/express-hbs/lib/hbs.js:135:7
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)