gpt4 book ai didi

javascript - Django makemessages javascript(xgettext)

转载 作者:数据小太阳 更新时间:2023-10-29 04:20:29 26 4
gpt4 key购买 nike

我想使用 django i18n 支持来翻译我的 javascript 文件。我有以下 javascript 文件:

var test_text = gettext('example');

@withStyles(styles)
export default class HomePage {
static contextTypes = {
i18n: PropTypes.object
}

constructor() {
this.componentDidMount.bind(this);
this.handleCitySearch.bind(this);
}

render() {
return (
<Grid className="HomePage">
<Row className="HomePage-hero">
<Col md={8} style={{ textAlign: 'center' }}>
<Input ref="city" bsSize="large" type="text" />
<Button bsSize="large" bsStyle="default" onClick={this.handleCitySearch}>{gettext('button text')}</Button>
</Col>
<Col md={4}>
<ul>
<li>{gettext('SOME TEXT')}</li>
<li>{gettext('MORE TEXT')}</li>
</ul>
</Col>
</Row>
</Grid>
);
}
}

现在我运行 djangos makemessages 命令:

python manage.py makemessages -l de -d djangojs -v 3 -s

我希望创建的翻译文件有四个条目('example'、'button text'、'SOME TEXT' 和 'MORE TEXT'),因为 gettext 在.js 文件。但是创建的语言环境文件只有两个“示例”条目:

#: ../HomePage.js:1
msgid "example"
msgstr ""

#: ../HomePage.js:25
msgid "MORE TEXT"
msgstr ""

我也收到了这个警告。但是不知道是什么意思(文件只有32行)

HomePage.js:33: warning: RegExp literal terminated too early

有谁知道为什么 django 会忽略其他条目?也许是因为我使用了 jsx 语法或者因为我使用了 es6 类?

更新:

我发现这不是django的问题,而是xgettext的问题。Django 使用以下命令调用 xgettext:

xgettext  --language=JavaScript --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 --output=- --from-code=UTF-8 --add-comments=Translators  ../HomePage.js

那么有没有xgettext高手可以帮帮我呢?

最佳答案

我用最新版本的 Django (1.10.3) 尝试了这个。它似乎工作得很好。你能升级你的 Django 版本吗?

对我有用的代码在这里:https://github.com/guitarmanvt/stackoverflow-question-32403632

此外,请记住您的 JavaScript 函数 gettext 需要在某处定义。当我最后一次查看时,有几个 JavaScript i18n 库,但没有多少能很好地与 xgettextDjango 配合使用。您可能需要自己动手。

或者,看看 Sentry 如何使用 JSX 进行国际化。 https://blog.sentry.io/2016/01/07/react-i18n.html

翻译愉快!

关于javascript - Django makemessages javascript(xgettext),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32403632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com