コンテンツへスキップ

Category: 未分類

ブラウザによるモンゴル文字のレンダリングサポート状況

2025-11-22 | 未分類

2025年11月現在、W3Cの最新情報と関連する調査結果によると、ウェブブラウザによるモンゴル文字のレンダリングサポートは進展しているものの、依然として課題が残っており、特に文脈依存の文字整形(コンテクスチュアル・シェイピング)に関しては、フォント内部の技術(GSUBテーブル)に大きく依存している状況である。 垂直方向のレンダリング: ブラウザはモンゴル文字の垂直方向の表示(writing-mode: vertical-lr)を正しく回転させるようになった。これは以前のバージョンのWebKitベースのブラウザでの問題が解決されたことを示す。 文脈依存の文字整形(シェイピング): W3Cのギャップ分析レポート(2023年6月/7月、および最新の2025年8月のドラフト)は、モンゴル文字のUnicodeエンコーディングモデルの複雑さに起因する、フォントやレンダリングエンジン間の相互運用性の欠如を指摘している。 同じ意味の単語でも、フォントによって正しい表示が異なる場合があり、標準化された方法で表示を保証することは「不可能」とされている。 このため、フォント開発者は依然として多くのフォールバックGSUBパッチや非標準のバリエーションシーケンス定義に頼らざるを得ない状況。 W3Cレポートの見解: ギャップ分析レポートは、ブラウザがモンゴル文字のコンテクスチュアル・ルール(結合、後続文字に応じた字形変化など)を完全に実装しているとは述べていない。むしろ、これらのルールの多くは十分に定義されておらず、結果としてレンダリングが曖昧になると結論付けている。 MVS/FVSの扱い: モンゴル母音分離記号(MVS)や自由異体字セレクター(FVS)の振る舞いは、ブラウザやフォントの実装によって異なり、一貫性がない。これは、ブラウザのテキストエンジンがこれらの特殊な規則を標準化された方法で処理できないため。 全体像: 現状、正しいモンゴル文字の表示は、フォントが非公式な「ハック」を含むかどうかに大きく左右される傾向がある。特定のフォント(例えばMongolian Baiti)で正しく表示されるのは、そのフォントが独自のGSUBルールでブラウザの制限を補っているため。 結論として、2025年現在も、標準的なブラウザのレンダリングパイプラインだけで、すべてのモンゴル文字フォントで一貫した正しいコンテクスチュアル・シェイピングを保証できるわけではない、という状況は変わっていない。

モンゴル語辞書420冊の書誌データ標準化プロジェクト

2025-11-19 | 未分類

20年越しのデータと向き合う Webサイトの引っ越しを機に、長年蓄積してきたデータを整理している。その中で改めて数えてみたところ、モンゴル語の辞書の書誌データが420冊分もあることがわかった。昔からコツコツと入力してきたものだが、こうして数字にしてみると、自分でも驚く量になっていた。 便利だが限界がある「漢字表記システム」 これまで、辞書を区別するために「モ英(生)2013」のような記号を使ってきた。モンゴル語の辞書には似たような名前のものが多いため、後で整理しやすいように工夫したものだ。 漢字は1文字が1つの概念を表すため、情報を圧縮して表記するには非常に便利だ。しかし、非漢字圏の閲覧者には理解しにくいという問題がある。 ISO言語コードへの移行 そこで、国際標準であるISO言語コードを採用することにした。これにより、誰にでも理解できる形式になる。 具体的な変換例 キリル文字モンゴル語の辞書: 伝統モンゴル文字の辞書: これまで便宜的に「蒙」の字を使用してきたが、ISO表記では以下のようになる: 文字コードの利点 この表記方法には、さらなる工夫がある。文字の順番で、どちらが見出し語でどちらが訳語かが自動的にわかるようになっている: 標準化がもたらすもの この標準化により、データの管理が格段に楽になるだけでなく、国際的な協力や情報共有の可能性も広がる。420冊という膨大な書誌データが、より多くの研究者や学習者にとってアクセスしやすくなることを期待している。

KhamagBichig多文字入力システムの開発

モンゴル系文字(伝統モンゴル文字、パスパ文字、ソヨンボ文字)およびモンゴル語の借用語の語源としてチベット文字やディーバナーガリー文字(サンスクリット用)を入力するためのWebベースのキーボードツール、KhamagBichigを開発した。Google Apps Scriptで動作し、ブラウザから直接アクセスできる。 最大の技術的課題は、Shiftキーの状態管理だった。物理キーボードのShiftキー、画面上の仮想SHIFTボタン、そして「Unshifted/Shifted」表示ボタンの3つを完全に同期させる必要があったからだ。 当初の実装では、これらが独立して動作してしまい、Shiftキーを押しても仮想キーボードの表示が切り替わらない、または逆に仮想ボタンをクリックしても入力が変わらないという問題が発生した。 解決策は、すべてのShift状態を唯一の情報源(single source of truth)として管理することだった。shiftStateという変数を定義し、すべてのShift関連イベント(キーボード、ボタンクリック、表示切替)がこの変数を参照・更新するように実装した。 もう一つの課題は、各文字体系の文字マッピングデータの整備だった。scriptMappingsとscriptLegendsという2つのオブジェクトに、すべての文字体系の完全なキーマップと凡例を格納する必要があった。データの欠損があると、一部のキーが機能しないという問題が起きる。 現在、KhamagBichigは安定稼働している。伝統モンゴル文字だけでなく、パスパ文字、ソヨンボ文字、チベット文字やディーバナーガリー文字の入力にも対応しており、モンゴル系文字研究者にとって便利なツールになった。

Google Apps ScriptにおけるMongoliaan Script表示の苦闘

2025-09-29 | 未分類

伝統モンゴル文字のビューアをGoogle Apps Scriptで実装する際、縦書きテキストの折り返し処理に長時間苦労した。最終的に、CSS Columnsレイアウトモデルを使った解決策にたどり着いた。 当初、flexboxを使った実装を試みた。親要素にdisplay: flexとflex-direction: columnを指定し、子要素を縦に並べる方式だ。しかし、これではテキストが折り返される位置を制御できなかった。長いテキストは画面外に突き抜けてしまう。 次に、white-space: nowrapとinline-blockの組み合わせを試した。これはある程度機能したが、複数の記事を表示する際に、記事間の区切りが不明瞭になるという問題があった。 最終的に、CSS Columnsモデルが最も安定していることがわかった。親要素にheightを指定し、column-widthでカラムの幅を制御し、column-fill: autoで自動的に折り返させる。box-sizing: border-boxを併用することで、パディングとボーダーも計算に含められる。 この実装で重要だったのは、記事全体の高さを正確に計算することだった。行数×行の高さ+パディングで総高さを算出し、それを親要素のheightに設定する。これにより、記事が適切に折り返され、次の記事が正しい位置に表示される。 現在のビューアはシンプル化されたバージョンで、最新の記事のみを表示する。完全版では、記事リスト、追加・編集機能などのUIを統合する必要がある。しかし、核心となるテキスト表示ロジックは完成した。この安定したCSS基盤の上に、残りの機能を構築していく予定だ。

Google Apps ScriptによるInventory自動化

2025-09-21 | 未分類

辞書プロジェクトのGoogle Driveには、数千のファイルが複数のサブフォルダに分散して保存されている。これらのファイルの状態(処理段階、担当ペルソナなど)を追跡するため、Inventory自動化システムを開発した。 最大の技術的課題は、Google Apps Scriptの実行時間制限(6分)だった。数千のファイルを一度に処理しようとすると必ずタイムアウトする。そこで、バッチ処理とステート管理を実装した。 具体的には、100ファイルごとに処理を区切り、進捗状況をScript Propertiesに保存する方式だ。処理が途中で止まっても、次回実行時に続きから再開できる。さらに、5つのサブフォルダを順番に処理する「チェーン実行」機能も実装した。 興味深かったのは、ファイル名からメタデータを抽出する処理だ。ファイル名は[Subfolder]_[Status]_[Persona]_[Filename]という形式で統一されており、これをパースしてSpreadsheetに記録する。正規表現を使った柔軟なパース処理が必要だった。 当初、チェーン実行に小さなバグがあった。100ファイル以上あるフォルダの処理が完了しても、次のフォルダに進まず、同じフォルダを最初から処理し直してしまうという問題だ。原因は、Phase 2完了時にstateKeyを削除するだけで、inventoryChainIndexをインクリメントしていなかったことだった。 このバグを修正した後、システムは完璧に動作するようになった。現在は日次トリガーで自動実行されており、Inventoryシートには常に最新のファイル状態が反映されている。このデータをもとに、ダッシュボードで進捗状況を可視化している。

麻婆ナスのレシピ

2013-08-01 | 未分類

今日、適当に作った麻婆ナスがおいしかったのでメモしておく。 <材料 2人分> ナス 3本 ひき肉 150g 玉ねぎ 1個 ニンニク 1かけ かいわれ 1パック 油 適量 塩 小さじ1/2 醤油 適量 豆板醤 小さじ1 ごま油 大さじ1 ナンプラー 適量 1. みじん切りにしたニンニクを炒め、細切りにした玉ねぎを加えて炒める。 2. ひき肉も加えて炒め、ボールに移しておく。 3. 油を追加し、細切りにしたナスを炒める。 4. ボールに移しておいたものを戻し入れて、塩、醤油、豆板醤、ごま油、ナンプラーを加える。 5. かいわれを加えて軽く炒める。 注:鹿児島の醤油を使ったので、もともと甘みが含まれている。通常の醤油を使う場合は砂糖少々を加えたほうが良い。

辞書データの移植

2012-12-27 | 未分類

ここ半年ほど、Twitterに毎日平均3語の割合でБяцхан толь(豆辞書)と称してモンゴル語と日本語対訳の単語または句を投稿してきた。従来のモンゴル語辞書にあまり収録されていない語句で、しかも頻用されるものを選んで投稿している。つまり、専門的すぎる語は避け、なるべく基礎語彙に近いものを優先させる方針だ。 一日平均3語なので、月に約90語、一年で約千余語、十年でやっと一万余語となる計算だ。亀のような歩みだが、これにはいくつかの理由がある。 まず、基礎語彙以上、専門用語未満ということなので、語彙選別にもそれなりに時間がかかる。日々、モンゴル語のニュースサイト、モンゴル語書籍などに目を通し、インターネットで視聴可能なモンゴル国のテレビ放送などからも、これはと思った語句は直ちに書き留めておく。 その場でぴったりとした訳語が浮かぶ場合もあるし、意味を調べなければならない場合もある。意味はわかっていも、日本語としてうまい表現がうかばない場合には、類義語辞書などを利用して検討する。Googleで検索をかけて、見出し語となるモンゴル語の用例にもできるだけ多く当たるようにしている。 そんなわけで、語彙選別から訳語の決定と自己チェックに至るまで、それなりに時間を要するので、あまり多くの語句はこなせない。また、毎日必ず投稿というのを自己課題としているので、どんなに忙しい日でも無理なくこなせる量として、やはり3語あたりが適当なのである。 さらに、投稿した語句は、Twitter経由でfacebook, mixiなどのSNSサイトに自動投稿するようにしている。できるだけ多くの日本語を解するモンゴル人、モンゴル語を解する日本人の目に触れることで、チェック機能を働かせるというわけだ。現にこれまで、多くの善意の読者から、折に触れて適切なご助言とご批判をいただいている。 特定の誰かに校正を依頼するというのでは、負担が大きすぎるだろうが、SNSならば基本的に時間に余裕があるときにログインするものなので、ニュースのチェックやコミュニケーションのついでに皆が目を通してくれるはずだ。 読者側の心理的負担という意味でも、チェックによる校正精度を上げるという意味でも、一日の投稿数はあまり多すぎないほうがよいだろう。 さて、この半年で溜まった豆辞書をTwitterからCSV形式で取り出してみた。TwitterのRSSから直接取り出すのは文字化けなどの問題もあってなかなか難しいので、Twilogというサイトを利用した。自分のTwitterのIDを登録しておくと、Twitterの投稿をまとめたブログを自動生成してくれるサービスで、ログインした状態でCSVまたはXML形式でログをまとめてダウンロードすることができる。 UTF-8のCSV形式で取り出したデータを表計算ソフトで加工する。これにはExcelよりもモンゴル語版のOpenOfficeを使った方が文字化けなどの心配もなくて具合がよい。 もちろん、取り出したデータにはTwitterのツイートがすべて含まれているので、ソートをかけてБяцхан тольで始まる投稿だけを抜き出しておく。さらにエディターで整形して、検索用のラベルもつけておく。本来ならばPerlなどでスクリプトを書いて一発で整形すればよいのだろうが、エディター上で正規表現を使って様子を見ながらちまちまと整形した。 こうして出来上がったデータにBlogger用のXMLタグを書き足す。各行がブログのひとつの投稿となるようにする。見出し語と訳語とラベルの前後にうまい具合にタグをつけると、ブログにインポートした際に各語句がブログの記事のタイトル、その訳語がブログの記事、ラベルが該当記事のラベルとなる。 そんな感じで、Twitterに投稿してきた辞書データ約500語分をBloggerのブログに移植してみた。各見出し語のキリル文字、または訳語の平仮名の最初の一文字から検索することができる。カテゴリ別にも検索が可能だが、今のところページナビゲーションがまだ整っていない。検索フォームからも検索できるが、もっと収録語彙数が増えてからでないと機能しないだろう。 http://mongolian-dictionary.blogspot.jp/ Twitter以外にも、VIMOというSNSサイトで作りためてきた専門用語辞書がある。現時点で、約数千語になっているはずだ。これもぼちぼちと移植していく予定だが、整形などにそれなりに時間がかかるので、移植が完了するまでに1~2週間かかるだろう。

冷製パスタ(七夕風)

2010-07-07 | 未分類

ナイR氏から冷製パスタが食べたいとリクエストがあったので、七夕風に作ってみた。作り方をメモしておく。材料費がけっこうかかるが、見た目も味もそれなりのものができる。ブラジル製のドレッシング用調味料があったので、それを使ったが、ドレッシングで代用してもかまわない。 【材料】スパゲティー 適量オリーブオイル 適量ドレッシング用調味料 1袋半プチトマト 7粒モッツァレラチーズ 7粒ベビーリーフ 1袋ハム 4枚スモークサーモン 5枚 【作り方】・スパゲティーをゆでて、水を切ってオリーブオイルとドレッシング用調味料をまぜて冷ましておく。・プチトマトとモッツァレラチーズは半分に、スモークサーモンは3cm角ぐらいに切っておく。・ハムはクッキー用の星型でくり抜き、抜いた余りはみじん切りにしておく。・お皿にスパゲティー、ベビーリーフを盛る。・プチトマトとモッツァレラチーズをお皿の周りに1つおきに並べる。・天の川に見たたて、みじん切りのハムを真ん中に一筋散らし、その周りに星型のハムとスモークサーモンを散らす。・お好みでドレッシングをかけて食べる。

エビチリ

2010-07-05 | 未分類

昨日適当に作ったエビチリがやけに美味しかったので、作り方をメモしておく。 冷蔵庫にあったタイ製のチリソースを入れてみたのだが、それがけっこう効いたのかも知れない。チリソースがない場合は、ニンニクとチリペッパーも入れるべし。 本場中国での作り方とはやや違うが、中国人が食べてもそれなりに納得してもらえる味だと思う。中国人向けには、これより多少油を多め、塩味も強めに仕上げるべきだろう。 「内蔵も栄養のうち」などと都合のいい言い訳をして、背わたを取るのは省略したが、味にうるさい向きの方は取ったほうがよいかもしれない。また、炒り卵を入れるのは単にカサを増やすためなので、豪勢に倍量のエビだけで作っても、もちろん構わない。 【材料】エビ 1パックネギ 1本卵(なくても可) 3個コンソメ 1個ケチャップ 大さじ3醤油 大さじ1砂糖 大さじ1/2チリソース 大さじ1片栗粉 小さじ1塩 小さじ1/2 【作り方】・エビの殻をむく。ネギをみじん切りにする。・卵をほぐして大き目の炒り卵にしてボールに取っておく。・コンソメと砂糖をお湯で溶かす。ケチャップ、醤油、チリソースを加える。・エビとネギを炒め、上記の調味料を入れる。炒り卵も戻し入れる。・塩で味を調えて、水溶き片栗粉を加える。

白アスパラのワイン蒸し

2010-06-23 | 未分類

いただきものの白アスパラガスの残りと、冷蔵庫の中のあり合わせのもので、創作料理を作ってみた。味付けはフランス料理あたりを標榜して、それらしいものに仕上げた。フランス人やフランス帰りの諸氏には、「こんなものはフランス料理じゃない」とお叱りを受けるかもしれないが、我ながらなかなかよくできたと思う。ナイR氏にも、食べ終わってから「おいしかった」と頭をなでなでされたので、作り方をメモしておく。 材料:白アスパラ 10~15本玉ねぎ 1個ニンニク 2かけ鶏肉 100gしめじ 半パックニンジン 1本ベーコン 2~3枚ワイン 少々バター 大さじ1オリーブオイル 少々塩コショウ 少々ハーブ 少々 (うちにあった、フランス風ハーブミックスを使用) 作り方:1. 玉ねぎの細切り、ニンニクのみじん切りをオリーブオイルで軽く色づくまで炒める。2. 鶏肉、斜めに切った白アスパラ、ニンジンの輪切り、しめじ、ベーコンを加えて炒める。3. バター、ワイン、水、塩コショウ、ハーブを入れてしばらく煮る。