Enviar búsqueda
Cargar
Tech Fielders 2009/9/18 LT
•
0 recomendaciones
•
1,475 vistas
T
terurou
Seguir
「Silverlight 3 アプリの国際化」のハマりどころ
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 39
Descargar ahora
Descargar para leer sin conexión
Recomendados
Deep dive into instanceof
Deep dive into instanceof
Hiroshi Saito
Scalaでプログラムを作りました
Scalaでプログラムを作りました
Tomoharu ASAMI
Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks
Hiroshi Ito
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
Shinsuke Sugaya
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
yamahige
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
ひとし あまの
XSLT 2010-03-03
XSLT 2010-03-03
kmiyako
Recomendados
Deep dive into instanceof
Deep dive into instanceof
Hiroshi Saito
Scalaでプログラムを作りました
Scalaでプログラムを作りました
Tomoharu ASAMI
Reladomo in Scala #scala_ks
Reladomo in Scala #scala_ks
Hiroshi Ito
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
Shinsuke Sugaya
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
yamahige
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
ひとし あまの
XSLT 2010-03-03
XSLT 2010-03-03
kmiyako
Metro Style AppsでMSIL
Metro Style AppsでMSIL
terurou
Scala×silverlight
Scala×silverlight
terurou
Önemli Olan, Nelere Değer Verdiğin ve Neleri Önemsediğindir..
Önemli Olan, Nelere Değer Verdiğin ve Neleri Önemsediğindir..
Kref.net
Metro Style AppsでMSILver.2012/06/09
Metro Style AppsでMSILver.2012/06/09
terurou
Iron Python / Iron Ruby で .NET Programming
Iron Python / Iron Ruby で .NET Programming
terurou
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
terurou
Silverlight 4 のはなし
Silverlight 4 のはなし
terurou
FIRST STEP to Haxe/JavaScript
FIRST STEP to Haxe/JavaScript
terurou
jjugccc2018 app review postmortem
jjugccc2018 app review postmortem
tamtam180
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Mitsuru Katoh
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Datomic&datalog紹介
Datomic&datalog紹介
あしたのオープンソース研究所
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
Masanori Machii
ざっくり DDD 入門!!
ざっくり DDD 入門!!
Yukei Wachi
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Sotaro Kimura
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Kentaro Yoshida
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
Satomi Tsujita
Más contenido relacionado
Destacado
Metro Style AppsでMSIL
Metro Style AppsでMSIL
terurou
Scala×silverlight
Scala×silverlight
terurou
Önemli Olan, Nelere Değer Verdiğin ve Neleri Önemsediğindir..
Önemli Olan, Nelere Değer Verdiğin ve Neleri Önemsediğindir..
Kref.net
Metro Style AppsでMSILver.2012/06/09
Metro Style AppsでMSILver.2012/06/09
terurou
Iron Python / Iron Ruby で .NET Programming
Iron Python / Iron Ruby で .NET Programming
terurou
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
terurou
Silverlight 4 のはなし
Silverlight 4 のはなし
terurou
FIRST STEP to Haxe/JavaScript
FIRST STEP to Haxe/JavaScript
terurou
Destacado
(8)
Metro Style AppsでMSIL
Metro Style AppsでMSIL
Scala×silverlight
Scala×silverlight
Önemli Olan, Nelere Değer Verdiğin ve Neleri Önemsediğindir..
Önemli Olan, Nelere Değer Verdiğin ve Neleri Önemsediğindir..
Metro Style AppsでMSILver.2012/06/09
Metro Style AppsでMSILver.2012/06/09
Iron Python / Iron Ruby で .NET Programming
Iron Python / Iron Ruby で .NET Programming
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
Silverlight 4 のはなし
Silverlight 4 のはなし
FIRST STEP to Haxe/JavaScript
FIRST STEP to Haxe/JavaScript
Similar a Tech Fielders 2009/9/18 LT
jjugccc2018 app review postmortem
jjugccc2018 app review postmortem
tamtam180
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
Shumpei Shiraishi
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Mitsuru Katoh
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Datomic&datalog紹介
Datomic&datalog紹介
あしたのオープンソース研究所
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
Masanori Machii
ざっくり DDD 入門!!
ざっくり DDD 入門!!
Yukei Wachi
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Sotaro Kimura
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Kentaro Yoshida
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
Satomi Tsujita
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
Shuyo Nakatani
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
Taiji Miyabe
Jjug springセッション
Jjug springセッション
Yuichi Hasegawa
scala+liftで遊ぼう
scala+liftで遊ぼう
youku
Similar a Tech Fielders 2009/9/18 LT
(20)
jjugccc2018 app review postmortem
jjugccc2018 app review postmortem
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Datomic&datalog紹介
Datomic&datalog紹介
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
第2回品川Redmine勉強会(日本語全文検索)
第2回品川Redmine勉強会(日本語全文検索)
ざっくり DDD 入門!!
ざっくり DDD 入門!!
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
実践 Reactive Extensions
実践 Reactive Extensions
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
Jjug springセッション
Jjug springセッション
scala+liftで遊ぼう
scala+liftで遊ぼう
Más de terurou
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
terurou
自社サービスでDurable Functionsを採用した話
自社サービスでDurable Functionsを採用した話
terurou
Computation Expressions for Haxe
Computation Expressions for Haxe
terurou
デンキヤギの採用の考え方
デンキヤギの採用の考え方
terurou
Vue.jsをhaxeで
Vue.jsをhaxeで
terurou
MQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
altJSの選び方
altJSの選び方
terurou
DataGridを自前実装する話
DataGridを自前実装する話
terurou
オブジェクト指向の皮をかぶった関数型プログラミング言語 Haxe
オブジェクト指向の皮をかぶった関数型プログラミング言語 Haxe
terurou
動的なILの生成と編集
動的なILの生成と編集
terurou
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
terurou
大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
terurou
CommonJSの話
CommonJSの話
terurou
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
クラウドGPS(仮)
クラウドGPS(仮)
terurou
IronRuby on Silverlight っておいしいの?
IronRuby on Silverlight っておいしいの?
terurou
Dynamic Language による Silverlight2 アプリケーション開発
Dynamic Language による Silverlight2 アプリケーション開発
terurou
Más de terurou
(18)
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
自社サービスでDurable Functionsを採用した話
自社サービスでDurable Functionsを採用した話
Computation Expressions for Haxe
Computation Expressions for Haxe
デンキヤギの採用の考え方
デンキヤギの採用の考え方
Vue.jsをhaxeで
Vue.jsをhaxeで
MQTTとAMQPと.NET
MQTTとAMQPと.NET
altJSの選び方
altJSの選び方
DataGridを自前実装する話
DataGridを自前実装する話
オブジェクト指向の皮をかぶった関数型プログラミング言語 Haxe
オブジェクト指向の皮をかぶった関数型プログラミング言語 Haxe
動的なILの生成と編集
動的なILの生成と編集
大規模なギョームシステムにHaxeを採用してみた話
大規模なギョームシステムにHaxeを採用してみた話
大規模なJavaScript開発の話
大規模なJavaScript開発の話
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
CommonJSの話
CommonJSの話
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
クラウドGPS(仮)
クラウドGPS(仮)
IronRuby on Silverlight っておいしいの?
IronRuby on Silverlight っておいしいの?
Dynamic Language による Silverlight2 アプリケーション開発
Dynamic Language による Silverlight2 アプリケーション開発
Último
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Último
(10)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Tech Fielders 2009/9/18 LT
1.
「Silverlight 3 アプリの国際化の
ハマりどころ ⼋⽊照朗 / terurou 株式会社コスモルート DSTokai / FLOSS桜⼭ / DeLLa.JS / Python東海
2.
⾃⼰紹介 1
3.
⾃⼰紹介 • 株式会社コスモルート(名古屋の会社)に勤務
– Enterprise RIA エンジニア(JavaScript、Silverlight) – いちおう研究開発要員(WEB技術全般) – たまにプロジェクトマネージャも – 現在は Silverlight 3 開発案件のため、東京に常駐中 • 昨⽇から急にインフラ要員になりましたけどね…! • DSTokai(東海地⽅のメタコミュニティ)管理⼈ 2
4.
⾃⼰紹介 ⽐較的最近の活動 •
Tech Fielders インタビュー #23 – IronPython は、⽤途によって凄く便利な道具になる http://www.microsoft.com/japan/powerpro/TF/interview/23_1.mspx – 他の⽅と⽐較すると、明らかに⼀⼈だけ浮いている… • PHP 逆引きレシピ(翔泳社)を執筆 – PHP本の中では⼀番売れてるらしいです 3
5.
さて、本題。
4
6.
さて、本題。 Silverlight 3
アプリケーションを国際化する際の 基本的な⼿順とハマリどころをまとめてきました。 5
7.
さて、本題。
ライトニングトークのネタになる程度には ⼿順がめんどくさくて、ハマります…。 6
8.
さて、本題。 ちなみに今⽇のスライド、調⼦に乗って作ってたら 37枚になりました。たぶん時間⾜りません。
7
9.
国際化の⼿順
8
10.
国際化の⼿順 1.プロジェクトファイルに対応する⾔語
(カルチャ)を記述 2.アセンブリリソースファイル(.resx)を作成 3.XAMLにリソース埋め込む 4.【実⾏時】表⽰する⾔語(カルチャ)を指定 ※基本的にはMSDNの⼿順の変形です。 Silverlight ベースのアプリケーションのローカライズ http://msdn.microsoft.com/ja-jp/library/cc838238%28VS.95%29.aspx 9
11.
国際化の⼿順
⽇本語(ja-JP)と英語(en-US)に 対応させる例をベースに解説していきます。 10
12.
国際化の⼿順 1.プロジェクトファイルに対応する⾔語
(カルチャ)を記述 プロジェクトファイル(.csproj, .vbproj)を お好みのテキストエディタで開いて、 <SupportedCultures> に対応させたい カルチャ名を記述します。 Visual Studio 単独では設定不可能! 11
13.
国際化の⼿順 <Project ToolsVersion="3.5"
DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>9.0.30729</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{87702BBC-F726-481B-AE35-18F56F6EEF4D}</ProjectGuid> <SupportedCultures>ja-JP;en-US</SupportedCultures> <ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> セミコロンで区切ると複数カルチャを指定できます。 <RootNamespace>i18n</RootNamespace> <AssemblyName>i18n</AssemblyName> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <SilverlightApplication>true</SilverlightApplication> <SupportedCultures>ja -JP;en-US</SupportedCultures> <XapOutputs>true</XapOutputs> <GenerateSilverlightManifest>true</GenerateSilverlightManifest> <XapFilename>i18n.xap</XapFilename> <SilverlightManifestTemplate>PropertiesAppManifest.xml</SilverlightManifestTemplate> <SilverlightAppEntry>i18n.App</SilverlightAppEntry> <TestPageFileName>TestPage.html</TestPageFileName> <CreateTestPage>true</CreateTestPage> <ValidateXaml>true</ValidateXaml> ・ ・ ・ 12
14.
国際化の⼿順 2.アセンブリリソースファイル(.resx)を作成
ソリューションエクスプローラの 右クリックメニューから [追加] → [新しい項⽬] を選択し、 [アセンブリリソースファイル]を 選択します。 13
15.
国際化の⼿順 ⽇本語(ja-JP)、英語(en-US)に対応する場合は 以下のように3つのリソースファイルを作成します。 •
Resource.resx(インバリアントカルチャ⽤) • Resource.ja-JP.resx • Resource.en-US.resx ※インバリアントカルチャとは特定の⾔語/地域に 依存していないカルチャのことです。 14
16.
国際化の⼿順 Resouce.resx を開いて、アクセス修飾⼦
を Public に変更します。(初期値は Internal ) Resouce.ja-JP.resx、Resouce.en-US.resx は コード⽣成なし のままにしておきます。 15
17.
国際化の⼿順 3つのリソースファイルに置き換え⽂字列を 同じ名前で追加します。
Resource.resx Resource.ja-JP.resx Resource.en-US.resx 16
18.
国際化の⼿順 3.XAMLにリソース埋め込む App.xaml
の <App.Resouces> にリソースを 埋め込んで、Bindingするだけなのですが…。 アセンブリリソースファイルの⾃動⽣成コードは なぜかコンストラクタが internal なので、 そのままでは XAML に埋め込めません…。 これはバグなのか仕様なのか…。 17
19.
国際化の⼿順 解決するには以下のどちらかを⾏います。 •
⾃動⽣成コードのコンストラクタを public にする – リソースを変更する度にアクセス修飾⼦が internal に 戻されてしまう…。 • リソースをプロパティとするクラスを作る – MSDN の⼿順ではこちらの⼿順を紹介 – Binding の際のパス⽂字列が⻑くなる…。 18
20.
国際化の⼿順 リソースをプロパティとするクラスを作る場合は、 こんな感じに定義します。
public class LocalizedResouce { public LocalizedResouce() { } private static Resource resource = new Resource(); public Resource Resource { get { return resource; } } } 19
21.
国際化の⼿順 あとは App.xaml
にリソースを埋め込み、 <Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:resources="clr-namespace:i18n" x:Class="i18n.App"> <Application.Resources> <resources:Resource x:Key="Resource" /> </Application.Resources> </Application> ⾃動⽣成コードを public にした場合 <resources:Resource x:Key="Resource" /> クラスを作った場合 <resources:Resource x:Key="LocalizedResource" /> 20
22.
国際化の⼿順 置き換え箇所で Binding
していきます。 ⾃動⽣成コードを public にした場合 <TextBlock Text="{Binding NameLabel, Source={StaticResource Resouce}}" /> クラスを作った場合 <TextBlock Text="{Binding Resource.NameLabel, Source={StaticResource LocalizedResouce}}" /> 21
23.
国際化の⼿順 CJK(中国語、⽇本語、韓国語)対応 CJKを適切に表⽰するためには更に設定が必要です。
ルート要素で以下のように指定します。 <UserControl Language="ja-JP" /> 22
24.
国際化の⼿順 4.【実⾏時】表⽰する⾔語(カルチャ)を指定 2つの指定⽅法があります。
• HTMLの<object>要素内で指定 • プログラム中で指定 23
25.
国際化の⼿順 HTMLの<object>要素内でカルチャを指定 <object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="Sample.xap"/> <param name="culture" value="ja-JP" /> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" /> <param name="uiculture" value="ja-JP" /> <param name="minRuntimeVersion" value="3.0.40624.0" /> <param name="autoUpgrade" value="true" /> <param name="culture" value="ja-JP" /> <param name="uiculture" value="ja-JP" /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Microsoft Silverlight を入手" style="border-style:none"/> </a> </object> 24
26.
国際化の⼿順 プログラム中でカルチャを指定 private void
Application_Startup(object sender, StartupEventArgs e) { Thread.CurrentThread.CurrentCulture = new CultureInfo("ja-JP"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("ja-JP"); this.RootVisual = new MainPage(); } Thread.CurrentThread.CurrentCulture = new CultureInfo("ja-JP"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("ja-JP"); 25
27.
国際化の⼿順
以上で基本的な⼿順は完了です。 ⾮常に簡単でしたね! 26
28.
補⾜(注意するポイント)
27
29.
補⾜(注意するポイント) 1.カルチャ指定時の注意点
XP と Vista/7 ではデフォルトカルチャの 解決ルールが異なるため、環境によって挙動が 変わってしまう場合があります。 カルチャは明⽰的に初期値を指定しましょう。 28
30.
補⾜(注意するポイント) 追記(2009/09/30) この部分の記載内容は誤りです。
実際に遭遇したケース カルチャを何も指定せずにアプリを実⾏。 • XP → インバリアントカルチャ • Vista/7 → OSのカルチャ設定に依存? ⽇本語版では ja-JP になった。 29
31.
補⾜(注意するポイント) 追記(2009/09/30) この部分の記載内容は誤りです。
また、ja-JP と en-US しか⽤意していないのに fr-FR などを指定した場合も同じ挙動に…。 30
32.
補⾜(注意するポイント) 追記(2009/09/30) 実際に遭遇したケース
アセンブリリソースを⽤意していない カルチャを表⽰⾔語として指定した場合、 読み込まれるカルチャが環境によって 異なる。(OSに依存している…?) 31
33.
補⾜(注意するポイント) 追記(2009/09/30)
Resource.rexs と Resource.ja-JP.resx の 2つを⽤意し、en-US を指定した場合 • XP → インバリアントカルチャ • Vista/7 → ⽇本語版OSでは ja-JP 32
34.
補⾜(注意するポイント) 2.アセンブリリソースファイルの⾃動⽣成コードは INotifyPropertyChanged、DependencyProperty
ではない。 普通に Binding すると、こういう⾔語切り替え UIは実装できない。 33
35.
補⾜(注意するポイント) 解決策
• Binding しない。プログラムで代⼊する。 NameLabelTextBlock.Text = Resource.NameLabel.toString(); • ⾃動⽣成コードをラッッピングする。 カルチャを切り替えたタイミングで INotifyPropertyChanged, DependencyProperty が 動作するように。 34
36.
補⾜(注意するポイント) ちなみに私は全部 Binding
に切り替えた後で、 気がついちゃったので、⾃動⽣成コードから INotifyPropertyChanged な動的クラスを⽣成する ジェネレータを作ることで解決しました。 35
37.
まとめ 36
38.
まとめ 開発者が意識することが多すぎです。 マイクロソフトさんには是⾮改善して頂きたい。
※これを⾔うために国際化なんて地味なネタでライトニングトークに 申し込んだとか、そうでないとか。 37
39.
ご清聴ありがとうございました
38
Descargar ahora