当前位置

合并两组msgid和msgstr到.po翻译文件中

James Qi 在 2013年8月14日 - 12:51 提交

在制作Drupal多语言网站的时候,使用.po文件来进行翻译,这个翻译的过程一般是通过Google翻译加人工纠正,然后复制到.po文件中,再导入到Drupal网站中。

从Google翻译的界面复制翻译结果到.po文件来比较麻烦,以前是需要逐条复制粘贴,很花费时间,现在想到搞个小工具来合并From和To,并加上msgid与msgstr到一起,方便整体复制粘贴。

使用步骤:

  1. 先在Google翻译中进行多行翻译,纠正、改善;
  2. 然后复制到2个输入框From和To中;
  3. 按“提交”按钮,在2个输入框的下方得到输出结果;
  4. 输出框中的内容可以复制出来,粘贴到.po文件中。

注意事项:

  • 2个输入框行数要一样、中间不要有空白行;
  • 2个输入框最后一行是一个空白行。
From输入框
复制要翻译的原词到以上输入框中
To输入框
复制翻译的目标词到以上输入框中
msgid与msgstr合并后的输出框:

合并行数:6
按ctrl-a全选,按ctrl-c复制

自由标签:

评论

下面是单独的PHP程序:

<?php
/*
* 合并msgid.txt与msgstr.txt到msgid_msgstr.txt中
* 请注意:2个输入文件行数要一样、不要有空白行,且全部需要用UTF-8 Unix格式,输出也是一样的格式
* James Qi 2013-8-14
*/
$file_msgid="msgid.txt";
$file_msgstr="msgstr.txt";
$file_msgid_msgstr="msgid_msgstr.txt";

$fp_msgid=fopen($file_msgid,"r");
$fp_msgstr=fopen($file_msgstr,"r");
$fp_msgid_msgstr=fopen($file_msgid_msgstr,"w");

$count=0;

while(!(feof($fp_msgid))) {
    $line_msgid=fgets($fp_msgid);
    $line_msgstr=fgets($fp_msgstr);
    if ($line_msgid=="" && $line_msgstr=="") {
      break;
    }
    $count++;
    print "line=$count\n";
    print "line_msgid=\n$line_msgid";
    print "line_msgstr=\n$line_msgstr";
    $output='msgid "';
    $output.=substr($line_msgid,0,-1);
    $output.='"';
    $output.="\n";
    $output.='msgstr "';
    $output.=substr($line_msgstr,0,-1);
    $output.='"';
    $output.="\n\n";
    fputs($fp_msgid_msgstr,$output);
    print "output=\n$output";
}
fclose($fp_msgid);
fclose($fp_msgstr);
fclose($fp_msgid_msgstr);
print "\n----------\ntotal=$count\n";
?>

 

James Qi / 祁劲松

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。