リムナンテスは愉快な気分

徒然なるままに、言語、数学、音楽、プログラミング、時々人生についての記事を書きます

旅酒記(5)20番 平泉・花巻

訪問日:2024-08-13

宮城県の松島・塩釜観光を終えて八戸に向かっていましたが、途中岩手県で何もしないというのも勿体ないので平泉に寄り道しました。

今回は駅から徒歩圏内でアクセスできる「道の駅平泉」に立ち寄りました。平泉駅から急げば15分くらい。

平泉といえば中尊寺金色堂世界遺産になっていますが、その他の関連史跡も一緒に世界遺産に指定されているようです。
道の駅の隣にも「柳之御所遺跡」というものが。(こちらは世界遺産ではないようですが、追加登録を目指しているとか)
hiraizumi.or.jp

着いた頃には閉園時間過ぎていたので入ることはできませんでしたが、また機会があればゆっくり観光したいですね。

旅酒記(4)36番 常陸国

訪問日:2024-08-12

日本三大瀑布の一つ、茨城県袋田の滝へ向かいます。残り2つは華厳の滝(栃木)、那智の滝(和歌山)。
上野駅を08:49に出ると、最寄り駅の袋田駅には12:30頃に着きます。

水戸駅では常磐線(10:58着)→水郡線(11:15発)の乗り換えで17分の接続待ちです。
旅酒はこの時間を利用して購入しました。水戸駅のお土産屋に売っていました。
改札を出て向かい側、奥の方まで行かないといけないので最初は迷うかも。

水郡線に乗って袋田駅まで行きますと直行バスに乗れます。10分ほどで袋田の滝(滝本)到着です。
www.daigo-kanko.jp

ここ、バス停の場所に滝があるわけではなく、結構歩きます。スーツケース等の大きい荷物はどこかに置いていくのがよいかも。この時はバス降りたところのレストランで預かってもらえました(さすがにアレなので帰りに鮎の塩焼き頂きました。閑散期だったので屋内で食べれました)。

夏に行ったせいか、水量はあまり多くなく。でも涼しかった。

14:15発のバスで袋田駅に戻りましたが、もし郡山方面に抜けるなら15:00発の大子駅行きに乗る方が効率よさそう。観光時間を稼ぎつつ、大子駅始発に乗れるので。逆に袋田駅に行っても大子駅までしか行けない。

旅酒記(3)43番 加賀・金沢

訪問日:2024-06-29

たまたま加賀に寄れる機会があったので回収しに行きました。
金沢は何度か訪れたことがありましたが、加賀温泉は初です。

東京駅を出発し、夜行バスで加賀温泉駅到着。07:15の予定が07:00くらいに。

ここから、山代温泉までバスで移動します。
加賀温泉という温泉は無いんですね。周辺の山代温泉山中温泉片山津温泉を総称して加賀温泉郷。

さてバスで山代温泉に到着、温泉入浴しまして、旅酒購入です。

さて、まだ朝の09:30ですが加賀観光は終了。これから福井県永平寺に向かいます。
なんと、加賀温泉から永平寺に直行するバス「永平寺おでかけ号」というものがありまして。
www.tabimati.net

一応、宿泊者優先、予約優先でしたが、普通に乗れました。
1日1往復で、山代温泉発は朝9時半とかなり早い時間なので、なかなか使うのが難しいのかも。

旅酒記(2)11番「横浜から湘南」

訪問日:2024-02-04

どこで旅酒が販売されているか調べたら、コンビニで売っているものもあるんですね。
お土産屋や酒造でしか買えないものだと思っていましたが、コンビニで買えるならお手軽。

というわけでさくっと行ってきて購入してきました。

旅酒記(1)9番 琵琶湖

訪問日:2024-01-04

この日、多賀大社に行くつもりだったんですよね。
瀬戸内海からの帰り道、中継地点の明石に泊まっていまして、明石から新快速で滋賀方面へ。

折角朝早く新快速に乗ったのに、こういうときに限って遅延しまして。

多賀大社に行く時間は無いけど、草津くらいまで来ちゃったしなぁ…」なんて思っていたら、彦根があるじゃないですか。彦根城なら彦根駅から歩いて行けるし、ということに気づいて急遽予定変更し彦根観光へ向かいます。

彦根滋賀県の真ん中よりちょっと上、東側にありまして、彦根城が有名です。今回は彦根城天守閣に登って琵琶湖を一望してきました。ひこにゃんいなかったけど。

「9番 琵琶湖」は「彦根みやげ本陣」で購入しました。お土産として日本酒買いたいなぁ…と思っていたところに、旅酒を見つけました。「現地でしか買えない酒」なら買うしかないな?と思い、山積みの酒から1本取ってレジへ。

この時は全種類集めようとか微塵も考えてなかった。レジ行ったら店員さんにスタンプラリーの存在を教えて頂きまして、ついでに旅酒新聞を貰いました。51個もあるのか…

その後ひこね丼を食べつつ旅酒の公式サイトを調べてみたら、今まで旅行したことがあるような場所がたくさん書いてあるじゃないですか。年中旅行行っているのに5年近く存在に気付かなかったとは…

というわけで、折角なので集めてみようと思う。旅酒。

「旅酒」記

「旅酒」というものをご存じでしょうか。
旅酒|地域限定・日本の地酒 旅行のお土産に

「旅酒」とは、「旅をしなければ飲めない酒がある」をキャッチフレーズに、通信販売をせず、現地でしか買えないというコンセプトのもと作られたお酒のシリーズです。旅とお酒を一緒に楽しんでいただくという目的でつくられました。
「旅酒」は、全国47都道府県にある酒蔵との提携によって、日本酒を中心に全52種類(一部、焼酎・梅酒・ウイスキーも有)あり、それぞれに、No.1~52の番号と地名がつけられています。(筆者注:2024-08-25現在は51種類)

旅好きの筆者が(旅酒発足から5年遅れで)偶然出会った旅酒を「何故もっと早くに気づかなかったのか…」と嘆きながら、行ったことあったりなかったりする場所へ回収に出かける…そんな記録です。

訪問記事は下記の各リンクから。

訪問順
# 番号 訪問日 記事作成日
1 9番 琵琶湖 2024-01-04 2024-08-24
2 11番 横浜から湘南 2024-02-04 2024-08-31
3 43番 加賀・金沢 2024-06-29 2024-10-14
4 36番 常陸国 2024-08-12 2025-01-25
5 20番 平泉・花巻 2024-08-13 2025-02-02
6 31番 越後 2024-08-18
7 12番 秩父長瀞 2024-10-13
8 47番 宮城 2024-10-24
9 26番 吉野川 2024-11-14
10 35番 倉敷 2024-12-31
11 3番 松江・出雲 2025-01-01
12 39番 鳥取砂丘 2025-01-02
番号順
番号 訪問日 記事作成日
3番 松江・出雲 2025-01-01
9番 琵琶湖 2024-01-04 2024-08-24
11番 横浜から湘南 2024-02-04 2024-08-31
12番 秩父長瀞 2024-10-13
20番 平泉・花巻 2024-08-13 2025-02-02
26番 吉野川 2024-11-14
31番 越後 2024-08-18
35番 倉敷 2024-12-31
36番 常陸国 2024-08-12 2025-01-25
39番 鳥取砂丘 2025-01-02
43番 加賀・金沢 2024-06-29 2024-10-14
47番 宮城 2024-10-24

C#(WPF)アプリ多言語対応の落とし穴と解決法

C#WPFアプリで多言語対応するためにリソースファイルを使おうと思ったのですが、いろんなところで躓いたので、解決策のメモです。
Visual Studio 2022です。

その1 リソースファイル/「Properties」フォルダ/「Resource」フォルダがない

プロジェクト作成直後のデフォルトの状態では、ソリューションエクスプローラーを見てもリソースファイル(.resx)や「Properties」フォルダ、「Resource」フォルダなどが見当たらないと思います。

プロジェクトを作成してデフォルトの状態ではリソースファイルが存在しません。そのため、プロジェクトのプロパティを開いてリソースファイルを作成します。
プロパティは、メニューバーの「プロジェクト」>「WpfApp1 のプロパティ」(例えば。WpfApp1のところは作成したプロジェクト名が入ります)で開きます。

「リソース」>「全般」の「アセンブリ リソースを作成する/開く」をクリックすることで、「Properties」フォルダと「Resources.resx」が作成され、ソリューションエクスプローラーに表示されます。

新しい言語のリソースファイルを追加する場合は、「Properties」フォルダを右クリック>「追加」>「新しい項目」でリソースファイルを追加できます。

その2 リソースの参照の仕方がわからない

XAML

その1のように、「Properties」フォルダにリソースファイル(.resx)が配置されているというディレクトリ構成であれば、Windowブロックにxmlns:properties="clr-namespace:WpfApp1.Properties"を挿入したうえで、

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:properties="clr-namespace:WpfApp1.Properties"
        Title="MainWindow"
        Width="300"
        Height="100"
        mc:Ignorable="d">

多言語対応したい文字列のところを{x:Static properties:Resources.String1}に置き換えて書きます。この場合、UI上の表示は、該当言語のリソースファイルの「String1」に対応する値を参照して表示します。

例えばTextBlockのTextを置き換えるのであれば、

<TextBlock FontSize="20"
           Text="{x:Static properties:Resources.String1}" />
C#

String1の値を参照する場合は、Properties.Resources.String1のように書きます。
例えば、下記のようにするとメッセージボックスの文字列に使えます。

namespace MultiLangApp
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void ButtonText_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show(Properties.Resources.String1);
        }
    }
}

その3 .xamlのプレビューが表示されない

一旦ビルドしましょう。ビルドに成功すれば表示されるようになります。

その4 ビルドするとエラーがでて成功しない

リソースファイルのアクセス修飾子を「Public」に変更しましょう。

リソースファイル(.rsax)を開きまして、上の方に「アクセス修飾子」があります。
デフォルトでは「Internal」になっているっぽいので、これを「Public」に変更すればビルドが通る。