Monoでの.NETアプリケーションのキリル文字

WinFormsを使用する.NetアプリケーションはMonoでも動作する可能性がありますが、一部のLinuxディストリビューションでは、ロシア語のフォントの代わりに、正方形の細長い行と分割されたインターフェイスが表示されます。





この問題の調査により、同じバージョンのモノ(特に2.4.2.3)上の異なるLinuxディストリビューションでは、プログラムは通常のインターフェースと正方形の両方であることが示されました。 インターネットで解決策を見つけると、Ubuntu xserver-xorg-video-intelのIntelグラフィックスカードのドライバーに関する問題の説明につながりました。 最新のドライバーを使用してこのソリューションを説明する英語フォーラムの数十のさまざまなトピック。 たとえば、 hereおよびhere 。 ただし、実際には、ドライバーを更新しても問題は解決しませんでした。

2番目に人気のあるアドバイス-msttcorefontsフォントパッケージをインストールしても解決しませんでした。 しかし、少し掘り下げてみると、プログラムでArialなどの単純なフォントを明示的に使用すると、正方形の問題がなくなることがわかりました。 WinFormsのすべてのフォームにデフォルトで使用される「Ms Sans Serif」フォントは「非難する」ことが判明しました。 どうやら、Ubuntu 9.04でそれを置き換えるフォントにはキリル文字が含まれていますが、9.10以降、このフォントにはすでにキリル文字が含まれていません。



あなたのプログラムがそうであれば、その中のフォントをArial、またはディストリビューションで利用可能な別のフォントに変更することは完全に可能です。ただし、Windowsではアプリケーションは他のものとは異なって見えます。 ソースコードがない場合、またはアプリケーションを変更する必要がある場合は、追加のフォントをインストールすると役立ちます。 Windowsをお持ちの場合、C:\ Windows \ Fontsからmicross.ttfファイルを取得して、任意のサブディレクトリ/ usr / share / fonts / truetype /に配置する方がはるかに簡単です(winfontsという名前を付けて、その中のすべてのWindowsフォントを収集しました)。 .ttfファイルに関連付けられているFontViewerアプリケーションを使用し、それを使用してフォントをインストールすることもできます。





フォントをインストールしたら、アプリケーションを再起動するだけで、すべてが適切に配置されます。





このシンプルなソリューションがあなたの役に立つことを願っています、%ユーザー名%。 私たちは長い間他のソリューションを試していませんでしたが、アプリケーションのソースコードを手元に置いて、この問題を解決する他の方法を知って喜んでいます。 たぶん、モノには設定で使用されるフォントを指定する機能がありますか?

コメントや提案をお待ちしております。 理想的なソリューション-すべてのフォームとコントロールでユーザーの参加とフォントのグローバルな変更を必要としません。



Upd1:別の方法があります。

-FontForgeでDejaVu Sansを開きました

-ttf情報セクションのフォント名をMicrosoft Sans Serifに変更しました

-[ttfの生成]をクリックしました

-結果はフォントとともにディレクトリにコピーされました。

この方法は、Windowsのライセンスを持っているという問題を解決します。



PS私たちはxeonであり、現時点ではhabrahabrに招待されていない同僚のfo2ristです。 無料の招待状と支援を希望する場合は、プライベートメッセージで私を書いてください。 ありがとう



All Articles