1

我有这行代码:

$('#ss_account_submit').val('Create Account!');

所以 .val() 里面有一个文本。我想知道我是否可以使用 qTranslate(WordPress 插件)翻译 .js 代码中的文本,如上面的行:

qTranslate 允许使用快速简码或常规简码,例如:

[:pt] For Brazilian Portuguese Language
[:en] For English Language
<!--:pt--><!--:--> For Brazilian Portuguese Language
<!--:en--><!--:--> For English Language

我尝试了很多对 PHP/JS 知之甚少但不起作用的东西,例如:

$('#ss_account_submit').val('[:pt]Crie uma conta![:en]Create Account!');

$('#ss_account_submit').val('<--:pt-->Crie uma conta!<--:--><--:en-->Create Account!<--:pt-->');

$('#ss_account_submit').val __(('<--:pt-->Crie uma conta!<--:--><--:en-->Create Account!<--:pt-->'));

$('#ss_account_submit').val (<?php __('<--:pt-->Crie uma conta!<--:--><--:en-->Create Account!<--:pt-->') ?>);

使翻译工作的另一种方法是使用这种代码:

<?php echo __('<--:pt-->Crie uma conta!<--:--><--:en-->Create Account!<--:pt-->') ?>

或者

(__('[:pt]Crie uma conta![:en]Create Account!'))

知道什么可以适用于这条原始线路吗?

$('#ss_account_submit').val('Create Account!');
4

2 回答 2

0

你的格式看起来有点不对劲。你有没有尝试过:

<?php _e("<!--:pt-->Crie uma conta<!--:--><!--:en-->Create Account<!--:-->"); ?>

注意:这在标准 .js 文件中不起作用。

于 2014-01-04T15:08:29.983 回答
0

虽然已经很晚了。但我看到没有人以正确的方式回答它。

当您使用_()or __()or gettext()or _e()or or _x()or _ex()or _n()or _nx()方法时,您应该只在其中包含一种语言。查看i18n的完整指南

下面一行的意思是:

$('#ss_account_submit').val('<?php __('Create Account!')?>');

执行时,它将以站点的当前语言添加 val。

您必须在模板上运行 PoEdit 并将这些行__()放入.po并翻译它们。

或者,

您必须编写条件 php 部分来选择正确的语言。

        $lingo = qtrans_getLanguage();
        if ( 'en' == $lingo )
            echo "$('#ss_account_submit').val('Create Account!')";
        if ( 'pt' == $lingo )
            echo "$('#ss_account_submit').val('Crie uma conta!');";

于 2020-10-19T16:09:39.507 回答