知識マップ: WinForms/WPFアプリの多言語化 ── resx・サテライトアセンブリ・カルチャ切り替えの実務
記事「WinForms/WPFアプリの多言語化 ── resx・サテライトアセンブリ・カルチャ切り替えの実務」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
WinForms/WPFアプリの多言語化を、CurrentCulture(書式)とCurrentUICulture(リソース言語)を分けて設計する土台から整理する記事で、resxが本体のニュートラルリソースと言語別サテライトアセンブリに分かれ、CurrentUICultureを起点に特定カルチャからニュートラルへ自動フォールバックする仕組みを説明する。WinFormsはLocalizableプロパティによるデザイナー方式と共有resx方式を併用し、WPFは.NET(Core)では動かないLocBaml方式ではなくresx+x:Staticバインディングを第一候補とする。翻訳後もレイアウトの伸縮・RTL対応・InvariantCultureへのログ書式固定など文字列以外の対応が残ることも指摘する。
flowchart LR
accTitle: WinForms/WPFの多言語化の知識マップ
accDescr: resxとサテライトアセンブリによるリソースフォールバックの仕組み、CurrentCultureとCurrentUICultureの役割分担、WinFormsのデザイナー方式とWPFのresxと静的リソース参照による方式、RTLやInvariantCultureなど文字列以外の対応の関係を示す図
resx["resxリソースファイル"]
satellite_assembly["サテライトアセンブリ"]
currentuiculture["CultureInfo.CurrentUICulture"]
windows_forms["Windows Forms"]
wpf["WPF"]
resource_fallback["リソースフォールバック"]
neutral_resources_language["NeutralResourcesLanguage属性"]
winforms_designer_localization["デザイナー方式(Localizable=true)"]
locbaml["LocBaml"]
dotnet[".NET(Core以降)"]
baml["BAML(Binary Application Markup Language)"]
x_static_binding["x:Static参照(resx)"]
tablelayoutpanel_autosize["TableLayoutPanel+AutoSizeによる可変レイアウト"]
rtl_layout["右から左へ書く言語(RTL)対応"]
clickonce["ClickOnce"]
invariant_culture["CultureInfo.InvariantCulture"]
log_search_degradation["多言語ログによる検索性の低下"]
currentculture["CultureInfo.CurrentCulture"]
windows_forms -.->|"利用する"| resx
wpf -.->|"利用する"| resx
resx -.->|"前提とする"| satellite_assembly
resource_fallback -->|"利用する"| satellite_assembly
resource_fallback -->|"前提とする"| currentuiculture
resx -->|"で構成できる"| neutral_resources_language
windows_forms -->|"利用する"| winforms_designer_localization
winforms_designer_localization -->|"前提とする"| resx
locbaml -->|"両立しない"| dotnet
locbaml -->|"前提とする"| baml
wpf -->|"利用する"| baml
wpf -.->|"利用する"| x_static_binding
x_static_binding -->|"推奨される対応"| wpf
tablelayoutpanel_autosize -->|"推奨される対応"| windows_forms
windows_forms -->|"で構成できる"| rtl_layout
wpf -->|"で構成できる"| rtl_layout
clickonce -->|"自動化する"| satellite_assembly
invariant_culture -->|"推奨される対応"| log_search_degradation
currentculture -.->|"原因になり得る"| log_search_degradation
windows_forms -->|"利用する"| currentculture
wpf -.->|"利用する"| currentculture
windows_forms -->|"利用する"| currentuiculture
wpf -->|"利用する"| currentuiculture
概念間の関係(全23件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- Windows Formsはresxリソースファイルを利用します。
- WPFはresxリソースファイルを利用します。
- resxリソースファイルはサテライトアセンブリを前提とします。
- リソースフォールバックはサテライトアセンブリを利用します。
- リソースフォールバックはCultureInfo.CurrentUICultureを前提とします。
- resxリソースファイルはNeutralResourcesLanguage属性で構成できます。
- Windows Formsはデザイナー方式(Localizable=true)を利用します。
- デザイナー方式(Localizable=true)はresxリソースファイルを前提とします。
- LocBamlは.NET(Core以降)と両立しません。
- LocBamlはBAML(Binary Application Markup Language)を前提とします。
- WPFはBAML(Binary Application Markup Language)を利用します。
- WPFはx:Static参照(resx)を利用します。
- x:Static参照(resx)はWPFに対する本記事の推奨です。
- TableLayoutPanel+AutoSizeによる可変レイアウトはWindows Formsに対する本記事の推奨です。
- Windows Formsは右から左へ書く言語(RTL)対応で構成できます。
- WPFは右から左へ書く言語(RTL)対応で構成できます。
- ClickOnceはサテライトアセンブリを自動化します。
- CultureInfo.InvariantCultureは多言語ログによる検索性の低下に対する本記事の推奨です。
- CultureInfo.CurrentCultureは多言語ログによる検索性の低下の原因になることがあります。
- Windows FormsはCultureInfo.CurrentCultureを利用します。
- WPFはCultureInfo.CurrentCultureを利用します。
- Windows FormsはCultureInfo.CurrentUICultureを利用します。
- WPFはCultureInfo.CurrentUICultureを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。