Javascript JQUERY的html函数内部的国际化

Javascript JQUERY的html函数内部的国际化,javascript,php,jquery,Javascript,Php,Jquery,我正在做一个PHP项目的国际化。 在PHP中,我使用getText()函数和poedit程序。 例如: <?php echo gettext("Hello world"); ?> 问题是:如何将gettext函数调用为“newword”,然后与poedit程序一起使用?您不希望每次需要翻译时都从javascript文件调用gettext/php,因为这意味着您必须为每个文本向服务器发出ajax请求 相反,您可以在php中生成一个包含所需的所有键和翻译的对象,并将其发送到浏览器

我正在做一个PHP项目的国际化。 在PHP中,我使用getText()函数和poedit程序。 例如:

<?php 
  echo gettext("Hello world");
?>

问题是:如何将gettext函数调用为“newword”,然后与poedit程序一起使用?

您不希望每次需要翻译时都从javascript文件调用gettext/php,因为这意味着您必须为每个文本向服务器发出ajax请求

相反,您可以在php中生成一个包含所需的所有键和翻译的对象,并将其发送到浏览器,使其成为javascript中的全局变量

<?php
...
$needed_translations = array(
    'Hello world' => gettext("Hello world")
    ...
);
?>
<script>
var needed_translations = <?php echo json_encode($needed_translations); ?>;
// or
window.needed_translations = <?php echo json_encode($needed_translations); ?>;
</script>

谢谢,这个解决方案非常有用,但是有一种方法可以直接在javascript上调用gettext?例如:如果(exchange=='mo'){$(#hopen.title).html(gettext(“NEW WORD”);}并且在我可以在linux中执行xgettext以生成文件mo?@raoen之后,当javascript在浏览器中启动时,php已经完成了处理,所以唯一的方法是,通过进行ajax调用,并使用返回正确值的php脚本。但这是大量的要求和额外的工作,所以我不建议这样做。
<?php
...
$needed_translations = array(
    'Hello world' => gettext("Hello world")
    ...
);
?>
<script>
var needed_translations = <?php echo json_encode($needed_translations); ?>;
// or
window.needed_translations = <?php echo json_encode($needed_translations); ?>;
</script>
if(exchange=='mo'){
    $(#hopen.title).html( needed_translations['Hello world'] );
}