WebSVN Patch #WebSVN에서 소스파일 내용을 볼때나, 비교, 수정한 사람 보기에서 한글이 깨지는 것을 수정한 패치입니다. enscript를 사용한 상태에서도 문제 없이 한글을 표시 할 수 있으며 시간 및 날짜도 정상적으로 표시됩니다.
버전은 2.0 기준입니다. 최신 수정 내용은 http://www.pyrasis.com/repos/websvn에서 확인 할 수 있습니다.
강제 줄바꿈이 되어 있는 줄은 한줄로 붙여서 적용해 주시기 바랍니다.
Index: include/svnlook.php
===================================================================
--- include/svnlook.php (revision 16)
+++ include/svnlook.php (revision 19)
@@ -212,9 +212,10 @@
$m = substr("00".$m, -2);
$s = substr("00".$s, -2);
- $curLog->curEntry->date = "$y-$mo-$d $h:$m:$s GMT";
+ setLocale(LC_TIME, "ko_KR");
+ $curLog->curEntry->date = date("Y-m-d H:i:s \G\M\TO",
gmmktime($h, $m, $s, $mo, $d, $y));
- $committime = strtotime($curLog->curEntry->date);
+ $committime = mktime($h, $m, $s, $mo, $d, $y); // GMT+0
$curLog->curEntry->committime = $committime;
$curtime = time();
Index: include/command.php
===================================================================
--- include/command.php (revision 16)
+++ include/command.php (revision 19)
@@ -68,6 +68,9 @@
if (empty($inputEncoding))
$inputEncoding = $config->inputEnc;
+
+ if (isUTF8($str))
+ return $str;
// Try to convert the messages based on the locale information
if ($config->inputEnc && $config->outputEnc)
Index: include/utils.php
===================================================================
--- include/utils.php (revision 16)
+++ include/utils.php (revision 19)
@@ -148,6 +148,27 @@
return $url;
}
+function isUTF8 ($Str) {
+ for ($i = 0 ; $i < strlen ($Str); $i ++)
+ {
+ if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb
+ elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n = 1 ; # 110bbbbb
+ elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n = 2 ; # 1110bbbb
+ elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n = 3 ; # 11110bbb
+ elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n = 4 ; # 111110bb
+ elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n = 5 ; # 1111110b
+ else
+ return false; # Does not match any model
+
+ for ($j = 0 ; $j < $n ; $j ++) # n bytes matching 10bbbbbb follow ?
+ {
+ if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80))
+ return false;
+ }
+ }
+ return true;
+}
+
@@ -160,6 +181,10 @@
function hardspace($s)
{
+ global $rep;
+
+ $s = toOutputEncoding($s, $rep->getContentEncoding());
+
return '<code>' . expandTabs($s) . '</code>';
}
Index: include/feedcreator.class.php
===================================================================
--- include/feedcreator.class.php (revision 16)
+++ include/feedcreator.class.php (revision 19)
@@ -613,7 +613,7 @@
* @return a date in RFC 822 format
*/
function rfc822() {
- return gmdate("r",$this->unix);
+ return date("r",$this->unix);
}
Index: languages/korean.php
===================================================================
--- languages/korean.php (revision 16)
+++ languages/korean.php (revision 19)
@@ -32,6 +32,8 @@
$lang["NOREP"] = "저장소가 지정되어 있지 않습니다.";
$lang["NOPATH"] = "경로를 찾을 수 없습니다.";
+$lang["NOACCESS"] = "디렉토리를 읽을 수 있는 권한이 없습니다.";
+$lang["RESTRICTED"] = "제한된 접근";
$lang["SUPPLYREP"] = "include/config.php 파일의 \$config->parentPath 또는 \$config->
addRepository에 저장소의 경로를 지정해 주십시오.<p>설치 설명서를 참조해 주십시오.";
$lang["DIFFREVS"] = "리비전간 비교";
@@ -41,6 +43,7 @@
$lang["SHOWENTIREFILE"] = "모두 보기";
$lang["SHOWCOMPACT"] = "바뀐 부분만 보기";
+$lang["FILEDETAIL"] = "파일 세부 내용";
$lang["DIFFPREV"] = "이전 리비전과 비교";
$lang["BLAME"] = "수정한 사람 보기";
@@ -67,16 +70,22 @@
$lang["SHOWALL"] = "모두 보기";
$lang["BADCMD"] = "명령 실행 에러";
+$lang["UNKNOWNREVISION"] = "리비전을 찾을 수 없습니다.";
$lang["POWERED"] = "Powered by <a href=\"http://websvn.tigris.org/\">WebSVN</a>";
$lang["PROJECTS"] = "Subversion 프로젝트";
$lang["SERVER"] = "Subversion 서버";
+$lang["FILTER"] = "필터링 옵션";
+$lang["STARTLOG"] = "에서";
+$lang["ENDLOG"] = "까지";
+$lang["MAXLOG"] = "최대 리비전";
$lang["SEARCHLOG"] = "로그 검색";
$lang["CLEARLOG"] = "검색 조건 삭제";
$lang["MORERESULTS"] = "나머지 검색 결과...";
$lang["NORESULTS"] = "검색 조건에 맞는 결과가 없습니다.";
$lang["NOMORERESULTS"] = "더 이상 검색 조건에 맞는 결과가 없습니다.";
+$lang['NOPREVREV'] = '이전 리비전이 없습니다.';
$lang["RSSFEEDTITLE"] = "WebSVN RSS feed";
$lang["FILESMODIFIED"] = "파일 수정됨";
@@ -85,12 +94,10 @@
$lang["LINENO"] = "행번호";
$lang["BLAMEFOR"] = "수정한 사람 보기, 리비전 ";
-$lang["YEARS"] = "년";
-$lang["MONTHS"] = "개월";
-$lang["WEEKS"] = "주일";
-$lang["DAYS"] = "일";
-$lang["HOURS"] = "시간";
-$lang["MINUTES"] = "분";
+$lang["DAYLETTER"] = "년";
+$lang["HOURLETTER"] = "시간";
+$lang["MINUTELETTER"] = "분";
+$lang["SECONDLETTER"] = "초";
$lang["GO"] = "Go";
@@ -103,6 +110,8 @@
$lang["REVCOMP"] = "역 비교";
$lang["COMPPATH"] = "비교 경로:";
$lang["WITHPATH"] = "경로:";
+$lang["FILEDELETED"] = "파일 삭제됨";
+$lang["FILEADDED"] = "새 파일";
// The following are defined by some languages to stop unwanted line splitting
// in the template files.
|
|
|
|
|
|