ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 12 years ago

#2873 closed defect (fixed)

IE6で韓国語が正しく表示されない

Reported by: ogawa Owned by: nakasone
Priority: major Milestone: OpenPNE2.12.3
Component: pne-xhtmlcss Version: 2.12.x & 2.14.x
Keywords: OpenPNE2.13.2 Cc:

Description (last modified by nakasone)

■現象

2.12にバージョンアップ後、韓国語の文字が正しく表示されない。

報告していただいた内容です。

  • 表示できないのは韓国語の文字全て
  • 「안녕하세요」だと文字数分「・・・・・」となる
  • IE6以外(IE7、Firefox)では問題なく表示できる
  • Javascriptを無効にしても表示されない
  • IE6でも表示できている場合もある
  • 中国語の簡体字は表示できる
  • バージョンアップ前(2.10)は表示されていた

■原因

IE6では不適切な言語情報(韓国語なのに lang="ja")が指定されていると、ある程度適切な判断ができず、無理やり日本語で表示しようとして"・"が表示されてしまうため。

■修正内容

IE6で韓国語が正しく表示されるようにする。

■関連情報

Change History (13)

comment:1 Changed 12 years ago by ogawa

Keywords: 再現待ち added

報告者の方から、

「xml:lang="ja" lang="ja"」の部分が怪しいかも知れません

という情報をいただいています。

comment:2 Changed 12 years ago by kiwa

以下のように適当に選んだ文字を日記・マイニュース・テンプレート挿入に入力して確認してみました。

韓国語:안녕하세
台湾語:歡迎光臨
簡体字:登录及密
タミル:ஔஐ௯ல
ヘブライ:לנױמ
囲み文字:㈵㈽㉁㉃
アラビア:ﮕﮪﭒﯼﰌ
龥

結果、WinXP IE6で以下のような表示になりました。
(同OS:IE7,!FireFox3,Safari3,Opera9では問題なし)

韓国語:・・・・
台湾語:歡迎光臨
簡体字:登・及密
タミル:ஔஐ௯ல
ヘブライ:・・・・
囲み文字:㈵㈽㉁㉃
アラビア:ﯼ□□ﮕ□
龥 

<html>タグの「lang="ja"」を外すことで韓国語の文字は表示されました。

中文簡体字の一部(・になった部分)とヘブライ文字・アラビア文字は表示されませんでしたが、これはIE6だと入力の時点で正しく表示されないので、別の原因かもしれないです。

2.10系は韓国語の文字は問題なく表示されています。

comment:3 Changed 12 years ago by takai

lang属性について

(XHTMLではxml:lang属性、XHTML1.0では指定するならlang属性とxml:lang属性の両方)

lang属性を指定すると、ある区間(マークアップされた部分)の言語が明示できる。

  • ブラウザが、その言語に適した表記で表示することができる
  • 音声ブラウザが、正しい言語の発音で読むことができる
  • サーチエンジンが、言語に関して適切なデータ収拾をできる

といったあたりのメリットがあるようです。

今回の問題は、理想的には言語が異なる時点でその部分をマークアップして、lang属性を指定する(日本語ならlang="ja"でマークアップ、韓国語ならlang="ko"でマークアップ)ことだと思いますが、様々なところに登場する文字を言語ごとにマークアップするのは大変です。

lang属性を指定しないと言語情報は unknown となるようで、ブラウザが何らかの判断で、ある程度適切な文字を表示するようです。このとき、不適切な言語情報(韓国語なのに lang="ja")が指定されていると、ある程度適切な判断ができず、無理やり日本語で表示しようとして"・"が表示されてしまうようです。

対応

lang属性(xml:lang属性)を外してしまってよいかもしれません。

参考文献

comment:4 Changed 12 years ago by kiwa

Keywords: 再現待ち removed

「再現待ち」キーワード外しました。

comment:5 Changed 12 years ago by takai

高井です。

『IE6で』という部分を読み落としていました。

このとき、不適切な言語情報(韓国語なのに lang="ja")が指定されていると、ある程度適切な判断ができず、無理やり日本語で表示しようとして"・"が表示されてしまうようです。

これはIE6だけで、多くのブラウザはちゃんと対応できる。といえそうです。

更に参考文献です。

comment:6 Changed 12 years ago by takai

Keywords: 確認中 added
Owner: changed from nobody to takai
Status: newassigned

対応をまとめます。

  • html要素のlang属性、xml:lang属性を外す(=全体を lang="unknown" にする)
  • または、韓国語を用いている場所だけlang属性、xml:lang属性を指定し直す
    • 値は "ko" か "unknown" であればよさそう

韓国語(他国語)の出現頻度を考えると前者の方がよさそうです。

comment:7 Changed 12 years ago by kiwa

Keywords: OpenPNE2.13.2 added; 確認中 removed
Milestone: OpenPNE2.12.3

comment:8 Changed 12 years ago by nakasone

Owner: changed from takai to nakasone
Status: assignednew

やります。

comment:9 Changed 12 years ago by nakasone

Description: modified (diff)
Keywords: OpenPNE2.13.2 確認中 added; OpenPNE2.13.2 removed

以下のリビジョンで修正しました。ご確認ください。

comment:10 Changed 12 years ago by ogawa

Keywords: OpenPNE2.13.2 差し戻し added; OpenPNE2.13.2 確認中 removed

以下のファイルで「xml:lang="ja" lang="ja"」が残っています。

  • webapp/modules/openid/templates/home.tpl
  • webapp/modules/openid/templates/server_confirm.tpl
  • webapp/modules/openid/templates/server_error.tpl
  • webapp/modules/pc/templates/h_album_image_insert_dialog.tpl
  • webapp/modules/pc/templates/h_album_insert_dialog.tpl
  • webapp/modules/pc/templates/h_googlemap.tpl

また、以下のファイルに「lang="ja"」が残っています。

  • public_html/js/pc_emoji_palet/pc_emoji_palet.html
  • webapp/modules/setup/page/setup.php
  • webapp/modules/setup/templates/inc_header.tpl

comment:11 Changed 12 years ago by nakasone

Keywords: OpenPNE2.13.2 確認中 added; OpenPNE2.13.2 差し戻し removed

該当箇所を以下のリビジョンで修正しました。ご確認ください。

comment:12 Changed 12 years ago by ebihara

Keywords: OpenPNE2.13.2 テスト待ち added; OpenPNE2.13.2 確認中 removed

webapp/modules/admin/do/download_xml.php で生成しようとしているXMLに xml:lang="ja" を指定しようとしている(151行目)のが気にかかりましたが、この XML をブラウザで直接表示することは考えにくいためこのままでも問題はないと思われます。

136     /*
137      *  シリアルoption生成
138      */
139     function create_serial_option(){
140         $options = array(
141                 "indent" => " ",
142                 "linebreak" => "\n",
143                 "typeHints" => false,
144                 "addDecl" => true,
145                 "encoding" => "UTF-8",
146                 "rootName" => "rdf:RDF",
147                 "rootAttributes" => array("xmlns"   => "http://purl.org/rss/1.0/",
148                     "xmlns:rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#" ,
149                     "xmlns:dc" => "http://purl.org/dc/elements/1.1/",
150                     "xmlns:taxo" => "http://purl.org/rss/1.0/modules/taxonomy/",
151                     "xml:lang"  => "ja"),
152                 "defaultTagName" => array('rdf:RDF'=>'item', 'rdf:Seq'=>'rdf:li'),
153                 "attributesArray" => "_attributes",
154                 );
155         return $options;
156     }

テスト待ちにキーワードを変更します。

comment:13 Changed 12 years ago by kiwa

Keywords: テスト待ち removed
Resolution: fixed
Status: newclosed

以下のブラウザで確認したところ、問題ありませんでした。

確認ブラウザ

WindowsXP SP2

  • Firefox1.5
  • Firefox3
  • Safari3
  • Opera9
  • !InternetExplorer6
  • !InternetExplorer7
Note: See TracTickets for help on using tickets.