jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/217284 )

Change subject: Add pronounce table of alphabet and numbers to help choosing 
appropriate josa
......................................................................


Add pronounce table of alphabet and numbers to help choosing appropriate josa

Change-Id: I370e85b97587cef798a08462ea7ea718a841d6ff
---
M Josa.class.php
M tests/parserTests.txt
2 files changed, 417 insertions(+), 0 deletions(-)

Approvals:
  jenkins-bot: Verified
  devunt: Looks good to me, approved



diff --git a/Josa.class.php b/Josa.class.php
index 621f939..6dbad1c 100644
--- a/Josa.class.php
+++ b/Josa.class.php
@@ -17,6 +17,24 @@
                'E/'  => [ '이', '', '(이)' ], // 태준이가 / 철수가
        ];
 
+       // This dictionary matches each numbers and alphabets to the 
corresponding hangul pronounces
+       private static $pronounceMap = [
+               '0' => '영', '1' => '일', '2' => '이',
+               '3' => '삼', '4' => '사', '5' => '오',
+               '6' => '육', '7' => '칠', '8' => '팔',
+               '9' => '구',
+
+               'A' => '이', 'B' => '비', 'C' => '씨',
+               'D' => '디', 'E' => '이', 'F' => '프',
+               'G' => '지', 'H' => '치', 'I' => '이',
+               'J' => '이', 'K' => '이', 'L' => '엘',
+               'M' => '엠', 'N' => '엔', 'O' => '오',
+               'P' => '피', 'Q' => '큐', 'R' => '알',
+               'S' => '스', 'T' => '티', 'U' => '유',
+               'V' => '이', 'W' => '유', 'X' => '스',
+               'Y' => '이', 'Z' => '지',
+       ];
+
        /**
         * @param Parser $parser
         * @return bool
@@ -44,6 +62,9 @@
                // @codingStandardsIgnoreLine
                $str = preg_replace( 
'/[\x{0000}-\x{0027}\x{002A}-\x{002F}\x{003A}-\x{0040}\x{005B}-\x{0060}\x{007B}-\x{00FF}]/u',
 '', $str );
                $chr = mb_substr( $str, -1, 1, 'utf-8' );
+               if ( array_key_exists( $chr, self::$pronounceMap ) ) {
+                       $chr = self::$pronounceMap[$chr];
+               }
                $code = self::convertToJohabCode( $chr );
                if ( !$code ) {
                        // Not hangul
diff --git a/tests/parserTests.txt b/tests/parserTests.txt
index 35cdd0c..384bafb 100644
--- a/tests/parserTests.txt
+++ b/tests/parserTests.txt
@@ -205,3 +205,399 @@
 <p>사과 (과일)을(를)
 </p>
 !! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (0)
+!! options
+language=ko
+!! input
+{{#을를:0}}
+!! result
+<p>0을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (1)
+!! options
+language=ko
+!! input
+{{#을를:1}}
+!! result
+<p>1을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (2)
+!! options
+language=ko
+!! input
+{{#을를:2}}
+!! result
+<p>2를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (3)
+!! options
+language=ko
+!! input
+{{#을를:3}}
+!! result
+<p>3을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (4)
+!! options
+language=ko
+!! input
+{{#을를:4}}
+!! result
+<p>4를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (5)
+!! options
+language=ko
+!! input
+{{#을를:5}}
+!! result
+<p>5를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (6)
+!! options
+language=ko
+!! input
+{{#을를:6}}
+!! result
+<p>6을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (7)
+!! options
+language=ko
+!! input
+{{#을를:7}}
+!! result
+<p>7을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (8)
+!! options
+language=ko
+!! input
+{{#을를:8}}
+!! result
+<p>8을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Number (9)
+!! options
+language=ko
+!! input
+{{#을를:9}}
+!! result
+<p>9를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (A)
+!! options
+language=ko
+!! input
+{{#을를:A}}
+!! result
+<p>A를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (B)
+!! options
+language=ko
+!! input
+{{#을를:B}}
+!! result
+<p>B를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (C)
+!! options
+language=ko
+!! input
+{{#을를:C}}
+!! result
+<p>C를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (D)
+!! options
+language=ko
+!! input
+{{#을를:D}}
+!! result
+<p>D를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (E)
+!! options
+language=ko
+!! input
+{{#을를:E}}
+!! result
+<p>E를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (F)
+!! options
+language=ko
+!! input
+{{#을를:F}}
+!! result
+<p>F를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (G)
+!! options
+language=ko
+!! input
+{{#을를:G}}
+!! result
+<p>G를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (H)
+!! options
+language=ko
+!! input
+{{#을를:H}}
+!! result
+<p>H를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (I)
+!! options
+language=ko
+!! input
+{{#을를:I}}
+!! result
+<p>I를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (J)
+!! options
+language=ko
+!! input
+{{#을를:J}}
+!! result
+<p>J를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (K)
+!! options
+language=ko
+!! input
+{{#을를:K}}
+!! result
+<p>K를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Uppercase Alphabet (L)
+!! options
+language=ko
+!! input
+{{#을를:L}}
+!! result
+<p>L을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Uppercase Alphabet (M)
+!! options
+language=ko
+!! input
+{{#을를:M}}
+!! result
+<p>M을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Uppercase Alphabet (N)
+!! options
+language=ko
+!! input
+{{#을를:N}}
+!! result
+<p>N을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (O)
+!! options
+language=ko
+!! input
+{{#을를:O}}
+!! result
+<p>O를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (P)
+!! options
+language=ko
+!! input
+{{#을를:P}}
+!! result
+<p>P를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (Q)
+!! options
+language=ko
+!! input
+{{#을를:Q}}
+!! result
+<p>Q를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Eul: Uppercase Alphabet (R)
+!! options
+language=ko
+!! input
+{{#을를:R}}
+!! result
+<p>R을
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (S)
+!! options
+language=ko
+!! input
+{{#을를:S}}
+!! result
+<p>S를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (T)
+!! options
+language=ko
+!! input
+{{#을를:T}}
+!! result
+<p>T를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (U)
+!! options
+language=ko
+!! input
+{{#을를:U}}
+!! result
+<p>U를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (V)
+!! options
+language=ko
+!! input
+{{#을를:V}}
+!! result
+<p>V를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (W)
+!! options
+language=ko
+!! input
+{{#을를:W}}
+!! result
+<p>W를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (X)
+!! options
+language=ko
+!! input
+{{#을를:X}}
+!! result
+<p>X를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (Y)
+!! options
+language=ko
+!! input
+{{#을를:Y}}
+!! result
+<p>Y를
+</p>
+!! end
+
+!! test
+Josa {{#Eul/Ruel:}} -> Ruel: Uppercase Alphabet (Z)
+!! options
+language=ko
+!! input
+{{#을를:Z}}
+!! result
+<p>Z를
+</p>
+!! end

-- 
To view, visit https://gerrit.wikimedia.org/r/217284
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I370e85b97587cef798a08462ea7ea718a841d6ff
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Josa
Gerrit-Branch: master
Gerrit-Owner: devunt <dev...@gmail.com>
Gerrit-Reviewer: Aklapper <aklap...@wikimedia.org>
Gerrit-Reviewer: Revi <w...@ymhong.com>
Gerrit-Reviewer: devunt <dev...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to