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