我已经创建了一个注册表单。我正在使用i18next服务器端。
这是我的服务器端配置:
var i18n = require('i18next');
i18n.init({
saveMissing: true,
debug: true
});
app.use(i18n.handle);
以下是我的语言环境json“
{
"app": {
"lblalreadyhaveanaccount": "¿Ya tienes una cuenta?",
"lblsignin": "Ingresar",
"lblhelp": "Ayuda",
"lblletscreateyouraccount": "Vamos a crear su cuenta",
"lblname": "Nombre",
"phfirstname": "Nombre de pila",
....
}
我使用ejs作为我的模板引擎。这个代码如下:
...
<form ng-submit="validateForm()">
<div class="form-group">
<!-- Name -->
<label><%= t('app.lblname') %></label>
<div class="row">
<div class="col-md-6">
<input id="fname" type="text" class="form-control"
placeholder=<%= t('app.phfirstname') %>>
</div>
<div class="col-md-6">
<input id="lname" type="text" class="form-control"
placeholder=<%= t('app.phlastname') %>>
</div>
</div>
....
我的问题是具有多字符串的标签是正确呈现的,但占位符仅显示区域设置json中字符串中的第一个单词。
以下是检查元素显示的内容:
<input id="fname" type="text" class="form-control" placeholder="Nombre" de="" pila="">
我无法找到解决此问题的方法。请帮助我。 提前谢谢。
答案 0 :(得分:1)
It looks like the browser is trying to make sense of the words in the input tags. To help it along, try adding double quotes around your placeholder text, like so:
<div class="row">
<div class="col-md-6">
<input id="fname" type="text" class="form-control"
placeholder="<%= t('app.phfirstname') %>"
</div>
<div class="col-md-6">
<input id="lname" type="text" class="form-control"
placeholder="<%= t('app.phlastname') %>"
</div>
</div>