Visual Studio 2017 で Xamarin する(3)文字列リソース

リソースファイルを作成する

初めてのAndroid 第4版を一通り読んだ後なので、先にリソースファイルを整備しておいた方が楽なのを知っている。 VisualStudioでリソースファイルを追加するのは慣れたもの。 TicTacToe(移植可能)プロジェクトのプロパティページを開いて、リソースファイルを追加する。 f:id:foohogehoge:20170408200754p:plain:w600

f:id:foohogehoge:20170408201115p:plain:w600

こんな感じになるのだが、多言語対応のために Resources.ja-JP.resx も追加しておく。 Resources.resx と Resources.ja-JP.resx の中身は以下のようにした。

f:id:foohogehoge:20170408214235p:plain:w600

f:id:foohogehoge:20170408214243p:plain:w600

アクセス修飾子をPublicにするのを忘れずに。

Xamlから使うときはこんな感じ。

<?xml version="1.0" encoding="UTF-8"?>
<StackLayout 
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:properties="clr-namespace:TicTacToe.Properties"
    x:Class="TicTacToe.FragmentMain">
    <Label
       Text="{x:Static properties:Resources.Title}"
       VerticalOptions="Start"
       HorizontalOptions="Center" />
    <Button
        Text="{x:Static properties:Resources.Continue}" />
    <Button
        Text="{x:Static properties:Resources.NewGame}" />
    <Button
        Text="{x:Static properties:Resources.About}"/>
</StackLayout>

5行目の

xmlns:properties="clr-namespace:TicTacToe.Properties"

がポイント。

実行してみる

Android

f:id:foohogehoge:20170408221552p:plain:h600

良さそうだが、エミュレーターロケールをja-JPに指定する必要があった。 エミュレーターで日本語表示する際のロケールは単に ja であるが、 ja ではアプリの日本語表示ができなかった。 Resouces.ja.resxを作成しても解決できない。 面倒くさい予感がするので後回しにする。とりあえず色や座標がリソースから指定できていればローカライズは後から何とかなる。

UWP

f:id:foohogehoge:20170408221611p:plain:w600

こちらは何の問題もない。