[prev in list] [next in list] [prev in thread] [next in thread]
List: pear-doc
Subject: [PEAR-DOC] cvs: peardoc /scripts make-chm.php
From: "TAKAGI Masahiro" <takagi () php ! net>
Date: 2006-07-29 6:12:02
Message-ID: cvstakagi1154153522 () cvsserver
[Download RAW message or body]
takagi Sat Jul 29 06:12:02 2006 UTC
Modified files:
/peardoc/scripts make-chm.php
Log:
- convert Japanese CHM files to Shift_JIS, because MS HtmlHelp
compiler doesn't know anything about UTF-8
http://cvs.php.net/viewvc.cgi/peardoc/scripts/make-chm.php?r1=1.7&r2=1.8&diff_format=u
Index: peardoc/scripts/make-chm.php
diff -u peardoc/scripts/make-chm.php:1.7 peardoc/scripts/make-chm.php:1.8
--- peardoc/scripts/make-chm.php:1.7 Thu Dec 8 22:05:44 2005
+++ peardoc/scripts/make-chm.php Sat Jul 29 06:12:01 2006
@@ -18,7 +18,7 @@
| Mark Wiesemann <wiesemann@php.net> |
+----------------------------------------------------------------------+
- $Id: make-chm.php,v 1.7 2005/12/08 22:05:44 techtonik Exp $
+ $Id: make-chm.php,v 1.8 2006/07/29 06:12:01 takagi Exp $
*/
/**
@@ -42,6 +42,10 @@
* - iconv extension is required to build russian version of CHM.
* MS HtmlHelp doesn't support russian KOI8-R encoding in CHM index
* and ToC, so pages should be converted to windows-1251
+ * - either mbstring extension or iconv extension is required
+ * to build Japanese version of CHM.
+ * MS HtmlHelp doesn't support UTF-8 encoding in CHM index
+ * and ToC, so pages should be converted to Shift_JIS
*/
// Note: File_SearchReplace >= 1.1.0 is needed
@@ -60,6 +64,12 @@
if ($lang === 'ru' && !function_exists('iconv')) {
die("Error: Iconv is required to produce russian version of manual");
}
+// ja:
+if ($lang === 'ja') {
+ if (!function_exists('mb_convert_encoding') && !function_exists('iconv')) {
+ die("Error: Either iconv or mbstring is required to produce japanese version of manual");
+ }
+}
$ind = "$cwd/../html"; // source directory
$chmd = "$cwd/../chm"; // path for HH project files (autopurged)
@@ -235,6 +245,12 @@
$replace[] = 'text/html; charset=windows-1251';
// look conversion code is at the end of this script
}
+// ja:
+if ($lang === 'ja') {
+ $find_rx[] = '|text/html; charset=UTF-8|ims';
+ $replace[] = 'text/html; charset=Shift_JIS';
+ // look conversion code is at the end of this script
+}
$sr = &new File_SearchReplace(
$find_rx,
@@ -538,6 +554,25 @@
fclose($fp);
}
}
+// ja: MS HtmlHelp engine support only Shift_JIS japanese encoding in ToC and index
+if ($lang === 'ja') {
+ echo "\nJapanese CHM must be converted to Shift_JIS. Processing... ";
+ $thtmlfiles = array_merge(
+ glob("$chmd/$pref.hh[kc]"),
+ glob("$outd/*.html")
+ );
+ foreach ($thtmlfiles as $f) {
+ $fcontents = file_get_contents($f);
+ if (function_exists('mb_convert_encoding')) {
+ $converted = mb_convert_encoding($fcontents, 'sjis', 'utf-8');
+ } else if (function_exists('iconv')) {
+ $converted = iconv('utf-8', 'sjis', $fcontents);
+ }
+ $fp = fopen($f,"w");
+ fwrite($fp, $converted);
+ fclose($fp);
+ }
+}
echo "Done.\n";
echo "\nNow you can follow into \"$chmd\" directory and launch MS HTMLHELP compiler to build CHM";
--
PEAR Documentation List Mailing List (http://pear.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic