為 ydict 加上kk音標

Updated:

新的附加KK音標版本
直接以對應音標的文字顯示,不用再浪費前往 cdic 抓取資料的時間。

ydict 起先由Tsung’s Blog首發,可以讓你在終端機中查詢英文單字,而後又衍生出幾個版本,我所使用的Yahoo!奇摩字典 command line version就是其中一個衍生版,這個版本可以一次查詢多個單字。

可以在終端機直接查詢單字方便歸方便,然而少了音標總是感覺怪怪的,查了一下奇摩字典,發現它的音標標注是以圖片方式顯示。因為不想另做 table 去對應圖片,只好從cdict 線上英漢字典去取音標字符。修改好的顯示畫面如下:

奇摩字典

perl · [高亮] · [原始]

  1. #==================== Step 1
  2. # 找到
  3. use LWP::Simple;
  4. # 後面加上
  5. use Encode;
  6. use HTML::Entities;
  7.  
  8. #==================== Step 2
  9. # 找到
  10. sub parser
  11. # 前面加上
  12. sub pronun
  13. {
  14.     my $p = shift;
  15.     my $cdict= get("http://cdict.giga.net.tw/?q=$p");
  16.  
  17.     $cdict =~ s/\r//g;
  18.     $cdict =~ s/\n//g;
  19.  
  20.     if($cdict =~ m{<span class=pronun>\s*/(.*?)/\s*</span>}i) {
  21.         my $line = $1;
  22.         $line =~ s/<[^>]+>//g;
  23.         return encode(‘utf8′, decode_entities($line)).RESET;
  24.     } else {
  25.         return "沒有音標";
  26.     }
  27. }
  28.  
  29. #==================== Step 3
  30. # 找到
  31.         print "<h2>" if $debug;
  32.         print BOLD."$line".RESET."\n";
  33. # 改 print BOLD."$line".RESET."\n"; 那一行
  34.         print BOLD.$line."  [".pronun($line)."]".RESET."\n";
#==================== Step 1
# 找到
use LWP::Simple;
# 後面加上
use Encode;
use HTML::Entities;

#==================== Step 2
# 找到
sub parser
# 前面加上
sub pronun
{
	my $p = shift;
	my $cdict= get("http://cdict.giga.net.tw/?q=$p");

	$cdict =~ s/\\r//g;
	$cdict =~ s/\\n//g;

	if($cdict =~ m{<span class=pronun>\\s*/(.*?)/\\s*</span>}i) {
		my $line = $1;
		$line =~ s/<[^>]+>//g;
		return encode(\'utf8\', decode_entities($line)).RESET;
	} else {
		return "沒有音標";
	}
}

#==================== Step 3
# 找到
		print "<h2>" if $debug;
		print BOLD."$line".RESET."\\n";
# 改 print BOLD."$line".RESET."\\n"; 那一行
		print BOLD.$line."  [".pronun($line)."]".RESET."\\n";

已經修改好的檔案 ydict


One Response to “為 ydict 加上kk音標”

  1. 今日連結 (2007-06-08) [JeffHung.Blog] Says:

    [...] 為 ydict 加上kk音標 [...]

Leave a Comment