/
githubmirror
/
icu
Обзор
Документация
Войти
/
githubmirror
/
icu
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tools/colprobe/doComparisonTable.pl
214 строк
6 KB
Yoshito Umaoka
ICU-13358 Fixed cpyscan problems. Enhanced cpyscan.pl to use online version of cpyskip.txt by default. Added the new Unicode copyright comment in many tools files.
03 окт 2017, 05:32
03 окт 2017, 05:32
1870215
Код
Авторство
О чём код?
#! /usr/bin/perl -w # # Copyright (C) 2017 and later: Unicode, Inc. and others. # License & terms of use: http://www.unicode.org/copyright.html # use strict; use IO::File; my $locale = $ARGV[0]; my $long_name = `/home/weiv/src/icu/source/extra/colprobe/longname $locale`; print "Long name is $long_name\n"; my $pageTitle = $locale." collation"; my $filename = $locale.".html"; open TABLE, ">$filename"; print TABLE <<"EndOfTemplate"; <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>$pageTitle</title> <style> <!-- table { border-spacing: 0; border-collapse: collapse; width: 100%; border: 1px solid black } td, th { width: 10%; border-spacing: 0; border-collapse: collapse; color: black; vertical-align: top; border: 1px solid black } --> </style> </head> <body bgcolor="#FFFFFF"> <p><b><font color="#FF0000">Collation:</font> $locale ($long_name) <a href="http://oss.software.ibm.com/cgi-bin/icu/lx/en/?_=$locale">Demo</a>, <a href="../../comparison_charts.html">Cover Page</a>, <a href="../main/index.html">Locale Diffs Index</a>, <a href="index.html">Collation Diffs Index</a></b></p> <table> <tr> EndOfTemplate my $dirCommon = "icucollations"; my $refCommon = $dirCommon."/UCARules.txt"; my $nameCommon = $dirCommon."/".$locale."_collation.html"; my $colorCommon = "#AD989D"; my $loc = $locale; if(!(-e $nameCommon)) { $locale =~ /_/; $loc = $`; $nameCommon = "$dirCommon/$loc"."_collation.html"; } print "Common is $nameCommon\n"; print TABLE " <th bgcolor=\"$colorCommon\">COMMON ("; if(-e $nameCommon) { print TABLE "<a href=\"../../common/collation/$loc.xml\">xml</a> "; } print TABLE "<a href=\"../../common/collation/root.xml\">UCA</a>)</th>\n"; my $dirLinux = "linuxcollations"; my $refLinux = $dirLinux."/".$locale.".utf8_default_raw.html"; my $rawLinux = $dirLinux."/".$locale.".utf8_raw.html"; my $defLinux = $dirLinux."/".$locale; my $nameLinux = "$dirLinux/$locale"."_collation.html"; my $colorLinux = "#1191F1"; print TABLE " <th bgcolor=\"$colorLinux\">LINUX"; if (!(-e $nameLinux)) { #try the variant that has @euro stuck in $nameLinux = "$dirLinux/$locale".'.utf8@euro_collation.html'; if(-e $nameLinux) { $refLinux = $dirLinux."/".$locale.'.utf8@euro_default_raw.html'; $rawLinux = $dirLinux."/".$locale.'.utf8@euro_raw.html'; } } if (-e $nameLinux) { print TABLE " (<a href=\"../../linux/collation/$locale.xml\">xml</a>"; my $linuxBase = &getBaseLocale("$dirLinux/base", $locale); if($linuxBase ne "") { print TABLE " <a href=\"../../linux/collation/$linuxBase.xml\">Base ($linuxBase)</a>"; } print TABLE ")"; } print TABLE "</th>\n"; my $dirWin = "w2kcollations"; my $refWin = $dirWin."/".$locale."_default_raw.html"; my $rawWin = $dirWin."/".$locale."_raw.html"; my $nameWin = "$dirWin/$locale"."_collation.html"; my $colorWin = "#98FB98"; $loc = $locale; #try fallback for windows print TABLE " <th bgcolor=\"$colorWin\">WINDOWS"; if(!(-e $nameWin)) { $locale =~ /_/; $loc = $`; $nameWin = "$dirWin/$loc"."_collation.html"; } print "Windows loc is $loc\n"; if (-e $nameWin) { print TABLE " (<a href=\"../../windows/collation/$loc.xml\">xml</a>"; my $winBase = &getBaseLocale("$dirWin/base", $locale); if($winBase ne "") { print TABLE "<a href=\"../../windows/collation/$winBase.xml\">base ($winBase)</a>"; } print TABLE ")"; } print TABLE "</th>\n"; print TABLE " </tr>\n <tr>"; readRules($nameCommon, "#AD989D", "Same as the UCA."); readRules($nameLinux, "#1191F1", "No data available."); readRules($nameWin, "#98FB98", "No data available."); print TABLE <<"EndOfFooter"; </tr> </table> </body> </html> EndOfFooter sub readRules { # readRules($file, $color) my $filename = shift; my $color = shift; my $comment = shift; my $noLines = 0; my $printOut = 0; my $file; if(-e $filename) { open($file, "<$filename") || die "something very strange happened\n"; print TABLE "<td bgcolor=\"$color\">\n"; while (<$file>) { if (/\}\<br\>$/) { $printOut = 0; } if ($printOut) { if(!/^$/ && !/ <br>$/) { print TABLE $_; $noLines++; } } if (/Sequence/) { $printOut = 1; print "found sequence\n"; $noLines = 0; } } if (!$noLines) { print TABLE "Same ordering as base\n"; } print TABLE "</td>\n"; } else { print TABLE "<td bgcolor=\"$color\">\n$comment</td>\n"; } } sub getBaseLocale(){ my $basefile = shift; my $locale = shift; my $baseFH = IO::File->new($basefile,"r") or die "could not open the file $basefile for reading: $! \n"; my $bse; my $loc; while(defined ( my $line = <$baseFH>)){ if( $line =~ /\<$locale\>/){ ($loc,$bse) = split (/\>/, $line); $bse =~ s/^\s+\<//; return $bse; } } } # Tasting of food product # 650-574-4551 $50 1 hour # <td bgcolor="#AD989D">1.0-alpha</td> # <td bgcolor="#FF6633">1.0</td> # <td bgcolor="#FF6633">=</td> # <td bgcolor="#FF6633"><span title="006E {LATIN SMALL LETTER N}">&n</span><br> # <span title="006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y}"> < ny</span><br> # <span title="006E 006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y} / 006E 0079 {LATIN SMALL LETTER N} {LATIN SMALL LETTER Y}"> = nny / ny</span><br> # <span title="006E 0059 {LATIN SMALL LETTER N} {LATIN CAPITAL LETTER Y}"> <<< nY</span><br> # </td> # <td bgcolor="#FF6633">=</td> # <td bgcolor="#FFFF33">1.2</td> # <td bgcolor="#98FB98">Windows XP</td> # <td bgcolor="#FF6633">=</td> # <td bgcolor="#FF6633">=</td>