についての記事は何ですか:
- インストールされたアプリケーションはどこにあり、何で構成されていますか?
- 華氏を摂氏に切り替える方法
- インストールされたアプリケーションをVS2011に転送してデバッガーで実行する方法
- アプリケーションへのボタンの追加
- 部分的および完全なロシア化
どこにある
ビルドを見ていない、または注意を払っていない人の場合、アプリケーションフォルダーへのフルパスは次のとおりです。C:\ Program Files \ Applications \ microsoft.weather_1.0.0.26_neutral_neutral_8wekyb3d8bbwe
アプリケーションフォルダーを表示するには、エクスプローラーでプログラムファイルを開き、[表示]タブの[非表示のアイテム]チェックボックスをオンにする必要があります。 このようにアプリケーションフォルダーにアクセスすることはできません。そのためには、アクセス許可を追加する必要があります。そのためには、このフォルダーのプロパティの[セキュリティ]タブに移動します。
アプリケーションはJavaScriptで記述されており、一連の.css、.html、.jsファイル形式、.priリソースファイル、.p7x署名証明書、および背景用の一連の画像とビデオファイルで構成されています。
華氏を摂氏に切り替える
華氏を摂氏に切り替えるには、ソースを取得する必要がありました。 まだそこにたどり着けていない人は、Win + Cをクリックして[設定]を選択し、右のポップアップパネルで[天気]の設定をクリックして、通常の摂氏を選択します。
Visual Studio 2011でのアプリケーションの起動
これを行うには、VSで空のjavascriptプロジェクトを作成する必要がありました。 次に、プロジェクト構造を見て、default.htmlという名前をdefaultHost.htmlに変更し、ファイルの内容を転送しました。 次に、写真、ビデオ、スタイルシート、jsスクリプトをプロジェクトに追加し、AppxManifest.xmlの内容をpackage.appxmanifestにコピーする必要がありました。 インストールされたアプリケーションの「タイル」がMetroから消えないように、パッケージ名をMicrosoft.Weatherからこのファイルの別の名前に変更するだけです。
VS2010では、プロジェクトプロパティのメニューからテキストリソースを追加できますが、ここではプロジェクトに新しいリソースファイル(.resjson)を追加するだけで十分です。 追加した後、ファイルを開くと、テキストリソースの使用に関するコメント付きの説明が表示されます。 それがすべてのようです。 デバッグまたはリリースでアプリケーションを実行し、ブレークポイントを設定して、その動作を学習できます。
ボタンを追加してクリックをサブスクライブする
defaultHost.htmlを見て、コードをいじって、イベントハンドラーと画像を使用して独自のボタンを追加することにしました。
ボタンをアプリバーに配置しました。このため、[都市を削除]ボタンのコードをコピーして、次に貼り付けました。 起こったことは次のとおりです。
< button id = "ruCulture" class = "win-command" > <br/>
< span class = "win-spritestates win-commandicon win-large ruicon" ></ span > <br/>
< span id = "cultureText" class = "win-label" data - win - res = "textContent: ruCulture" > ru - RU </ span > <br/>
</ button >
次に、クリックハンドラーを追加する必要があります。このため、defaultNew.jsで、クリックハンドラーを[市の削除]に追加し、コード行を挿入します。
id ( "ruCulture" ) . addEventListener ( "click" , switchCulture ) ;
id関数はdocument.getElementByIdのラッパーであり、currentCityControl.jsにあります。 switchCultureは、ローカライズ言語を切り替える私の機能です。これについては、記事の後半で説明します。
部分的および完全なロシア化
partialはどういう意味ですか? これは、天気サーバーへの要求でロケールをru-RUに変更し、それに応じてロシア語でサーバーから天気予報を受信することを意味します。 アプリケーションは独自の言語のままです。 また、ロシア語のテキストリソースを追加することで、完全なロシア語化が可能になります。
タスクを設定して、ロケールをru-RUからfr-FRに切り替えてこの設定を保存するためのボタンを作成し、アプリケーションを再起動した後、保存されたロケールの言語で天気データを取得します。
data.jsファイルに行があります
var culture = R. getString ( "/webservice/culture" ) ;
RはdefaultHost.jsからR = new Windows.ApplicationModel.Resources.ResourceLoader();
リソースファイルの現在のロケールがカルチャ変数に入力されます。 私はgetCulture()関数を書いていますが、この行を次のように変更します:
var culture = getCulture ( ) ;
次に、defaultHost.jsに移動してカルチャを追加します。
WinJS. Namespace . define ( "Weather.Settings" , { <br/>
hourly : ApplicationData. current . localSettings . values [ "hourlydaily" ] == "h" , <br/>
celsius : ApplicationData. current . localSettings . values [ "temp" ] == "c" , <br/>
setForecastHourly : setForecastHourly , <br/>
setForecastDaily : setForecastDaily , <br/>
setUnitCelsius : setUnitCelsius , <br/>
setUnitFahrenheit : setUnitFahrenheit , <br/>
// <br/>
culture : ApplicationData. current . localSettings . values [ "culture" ] <br/>
} ) ; <br/>
<br/>
// <br/>
Weather. Settings . culture = getCulture ( ) ;
defaultHost.jsの最後に関数を挿入します
function getCulture ( ) { <br/>
if ( ! Weather. Settings . culture ) <br/>
{ <br/>
// ru-RU <br/>
var idc = Windows. Storage . ApplicationData . current . localSettings . values [ "culture" ] ; <br/>
if ( idc ) { <br/>
setCulture ( idc ) ; <br/>
} else { <br/>
setCulture ( "ru-RU" ) ; <br/>
} <br/>
} <br/>
return Weather. Settings . culture ; <br/>
} <br/>
function setCulture ( culture1 ) { <br/>
if ( Weather !== undefined ) { <br/>
Weather. Settings . culture = culture1 ; <br/>
Windows. Storage . ApplicationData . current . localSettings . values [ "culture" ] = culture1 ; <br/>
} else { <br/>
var idc = Windows. Storage . ApplicationData . current . localSettings . values [ "culture" ] ; <br/>
if ( idc ) { <br/>
Weather. Settings . culture = idc ; <br/>
} else { <br/>
Weather. Settings . culture = "ru-RU" ; <br/>
} <br/>
} <br/>
}
defaultHost.htmlでのデバッグの利便性のために、デバッグ情報を出力するためのdivが追加され、defaultHost.jsの関数deb()に追加されました。 この関数は、スクリプト内のどこからでも呼び出して、任意の情報を出力できます。
function deb ( stok ) { <br/>
var deb = document. getElementById ( "debugText" ) ; <br/>
if ( deb ) { <br/>
deb. innerText = stok ; <br/>
} <br/>
}
設定を維持しながらロケールの切り替えを行うことは残ります
ボタンは既に追加されているので、そのアイコンを描画します。 Weather_Commands_PNG_STRIP_40x.pngファイルには、すべてのボタンアイコンが含まれています。 ファイルを開いて画像のサイズを小さくし、ボタンのさまざまな状態のボタンを描画します。
ボタンアイコンを表示するには、defaultHost.cssにスタイル設定を追加します
<br/>
button .ruicon <br/>
{ <br/>
background-position : 0px -280px ; <br/>
} <br/>
<br/>
button :active .ruicon <br/>
{ <br/>
background-position : -80px -280px ; <br/>
} <br/>
<br/>
button :disabled .ruicon <br/>
{ <br/>
background-position : -120px -280px ; <br/>
}
ボタンがあり、その上にアイコンがあり、サブスクライブされたボタンをクリックすると、機能を追加するために残ります:
function switchCulture ( e ) { <br/>
if ( getCulture ( ) == "ru-RU" ) { <br/>
setCulture ( "fr-FR" ) ; <br/>
} else { <br/>
setCulture ( "ru-RU" ) ; <br/>
} <br/>
var culture = id ( "cultureText" ) ; <br/>
if ( Weather. Settings . culture ) { <br/>
culture. innerText = Weather. Settings . culture ; <br/>
} <br/>
// TO-DO: <br/>
// <br/>
// - - <br/>
mainData. refresh ( true ) . then ( function ( ) { } ) ; <br/>
updateAllTiles ( ) ; <br/>
}
リリースでアプリケーションを起動し、ボタンを押すと、ロシア語のロケールが設定されます。 アプリケーションを停止し、再度実行すると、アプリケーションは天気を母国語で読み込みます。 weather.service.msn.comによるロード
リソースを介したアプリケーションの完全なロシア化
予測はすでにロシア語で行われており、プログラムのインターフェースを翻訳するために残っています。
Metroアプリケーションはローカル言語設定を決定し、これに応じてテキストリソースをロードします。 resources.resjsonファイルを使用して文字列フォルダーをプロジェクトに追加し、同じファイルを使用してru-RUフォルダーを追加します。 ファイルの内容:
{ <br/>
"Add" : "" , <br/>
"Pin" : "" , <br/>
"CurrentCitySearch" : " " , <br/>
"Tomorrow" : "" , <br/>
"Unpin" : "" , <br/>
"CurrentCityFound" : " " , <br/>
"Weather" : "" , <br/>
"Description" : "" , <br/>
"GatheringInfo" : " " , <br/>
"PinCity" : "PinCity" , <br/>
"RemoveCity" : "" , <br/>
"CurrentCity" : " " , <br/>
"AddCity" : " " , <br/>
"SummaryView" : " " , <br/>
"Hourly" : " " , <br/>
"EnterCity" : " " , <br/>
"AddCityError" : " " , <br/>
"MaxCities" : " " , <br/>
"Preferences" : "" , "Temperature" : "" , <br/>
"Celsius" : "" , <br/>
"Fahrenheit" : "" , <br/>
"ruCulture" : "" , <br/>
"debugText" : "" , <br/>
"LastUpdated" : " <span id='lastUpdated'></span>." , <br/>
"Wind" : "" , <br/>
"UVIndex" : " " , <br/>
"Today" : "" , <br/>
"SplashScreenImage" : "" , <br/>
"Search" : "" , <br/>
"ResultsFor" : " " , <br/>
"PercChanceOfRain" : "<span data-win-bind='innerText:precip'></span> " , <br/>
"Low" : "" , <br/>
"Humidity" : "" , <br/>
"High" : "" , <br/>
"FeelsLike" : " " , <br/>
"CurrentCondition" : "" , <br/>
"ChanceOfRain" : " " , <br/>
"NetworkConnection" : " . ." , <br/>
"CannotRetrieveData" : " " <br/>
}
アプリケーションを起動すると、天気が天気に変わります!