3 * Japanese (日本語) specific code.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * http://www.gnu.org/copyleft/gpl.html
29 class LanguageJa
extends Language
{
32 * @param string $string
35 function segmentByWord( $string ) {
36 // Strip known punctuation ?
37 // $s = preg_replace( '/\xe3\x80[\x80-\xbf]/', '', $s ); # U3000-303f
39 // Space strings of like hiragana/katakana/kanji
40 $hiragana = '(?:\xe3(?:\x81[\x80-\xbf]|\x82[\x80-\x9f]))'; # U3040-309f
41 $katakana = '(?:\xe3(?:\x82[\xa0-\xbf]|\x83[\x80-\xbf]))'; # U30a0-30ff
42 $kanji = '(?:\xe3[\x88-\xbf][\x80-\xbf]'
43 . '|[\xe4-\xe8][\x80-\xbf]{2}'
44 . '|\xe9[\x80-\xa5][\x80-\xbf]'
45 . '|\xe9\xa6[\x80-\x99])';
46 # U3200-9999 = \xe3\x88\x80-\xe9\xa6\x99
47 $reg = "/({$hiragana}+|{$katakana}+|{$kanji}+)/";
48 $s = self
::insertSpace( $string, $reg );
53 * Italic is not appropriate for Japanese script
54 * Unfortunately most browsers do not recognise this, and render `<em>` as italic
59 function emphasize( $text ) {