Transifex でリソースを翻訳しよう

Transifex https://www.transifex.com/ でリソース翻訳できるんだってー 「マジで?」というようなのでやってみました

1.Transifexのアカウントをとろう
grabacr.net
を参考にアカウントをとってリソースファイルを上げておきましょう

2.Transifexで機械翻訳を使うためにMicrosoft Translator APIを使えるようにしよう
MicrosoftGetting Started with Microsoft Translatorという解説ページを作ってくれているのでありがたく参考にしてAPIキーを参照できるようにしましょう
身元確認のために無料プランでもクレジットカード情報が必要です。カードがない人はあきらめてください。

3.Transifexで機械翻訳を使えるようにしよう
Transifexの組織名のところをクリックしてそこから出てくる「組織の設定」をクリックして左側のメニューに出てくる「機械翻訳」をクリックしよう
機械翻訳サービス 」から「Microsoft Translator Text API」を選択して下のテキストボックスにAPIキーを入力し、「変更を保存」ボタンを押しましょう

4.翻訳してみよう
ダッシュボードをクリックして左側メニューの「言語」をクリックして「言語の編集」ボタンを押して翻訳する言語を追加しましょう
f:id:reniris:20180215002019p:plain
追加したら翻訳するファイルをクリックして「翻訳」ボタンをクリックして翻訳ページへ遷移しましょう
f:id:reniris:20180214233221p:plain
真ん中辺りにあるチェックボックスをチェックして「機械翻訳」ボタンを押すと、チェックされた語が機械翻訳されます
言語が機械翻訳に対応してないとボタンが押せないので気をつけてください(zhは対応していませんでした。zh_CNは対応していました。)
f:id:reniris:20180215002726p:plain

3.ファイルをダウンロードしよう
f:id:reniris:20180214233221p:plain
翻訳ファイル名をクリックして出てくるポップアップメニューから「利用のためにダウンロード」をクリックすればダウンロードできます。
f:id:reniris:20180215003549p:plain
そのままだとプログラムでは使いにくいので、いい感じにファイル名を変更しましょう。

Xamarinで文字列リソース使うよ

Xamarinで文字列リソース使おうとして地獄を垣間見たのでメモ

最初に
grabacr.net
を元に Resource.resxとResourceService.csを作成
しかし表示できない

悩んだ末に
blog.pieeatingninjas.be
を参考に

public string this[string key]
    {
        get
        {
            return ResourceManager.GetString(key, CurrentCultureInfo);
        }
    }

をResourceService.csに追加

XAML

<Label Text = "{Binding Source={x:Static m:ResourceService.Current}, Path=[Result], Mode=OneWay}" />

ソースコードでは

 var str = ResourceService.Current["Result"];

でキー「Result」が使えます。

最終的に使ったResourceService.csをGistに貼りました。(2018/5/14 そのままだと多言語切り替えが動かない部分を修正)

提督業も忙しい!プラグイン更新してみた

提督業も忙しい!プラグインをユーザー定義レシピも表示できるようにしました
プラグインと同じ場所にあるUserRecipe.xamlを編集すればいいです
バイナリもGitHubで公開しています
github.com

参考サイト
GitHub - ruhiel/ImprovementArsenalPlugin: KanColleViewer用の改修工廠装備一覧を表示するプラグイン

提督業も忙しい!プラグイン作ってみた

急に作りたくなったのでやった

艦これWikiの開発レシピのページをパースして表示してます
いらない部分は手動で飛ばしたりしてます
他のレシピは入れてません

ソースとバイナリはGitHubで公開しています
github.com

参考サイト
KanColleViewer プラグインの作り方とか – CAT EARS
neue cc - C#でスクレイピング:HTMLパース(Linq to Html)のためのSGMLReader利用法
GitHub - Grabacr07/KanColleViewer: 艦これブラウザーのようなもの

プログラムTips

プログラムに使えそうなサイトいろいろ列挙します

MITライセンスの使い方
http://www.catch.jp/oss-license/2013/09/27/mit_license/自作ソースコードに、MITライセンスを適用する3つのやり方 | オープンソース・ライセンスの談話室

メールライブラリ
github.com

配列を一つの値で初期化
challengeandresponse.blogspot.jp

torokonbu.blogspot.jp

sourcechord.hatenablog.com

devlights.hatenablog.com

neue cc - Reactive Extensions入門 + メソッド早見解説表

[Unity] ネットワークの接続状態を取得する | ftvlog

PCLの暗号化ライブラリ
www.nuget.org

Unity 〜 バックグラウンドへの移行と復帰を検知する方法 〜

Windowsサービスを楽に開発~TopShelf~Windowsサービスを楽に開発~TopShelf~ | 84zume Works

C#でお手軽ファイル暗号化

適当なクラスをMessagePackでシリアライズしてからAESで暗号化してファイルに保存、保存したファイルから複合化してデシリアライズしてみました。

今回のソースは以下で公開しています
github.com

シリアライズに使用したMessagePackについては
neue cc - C#(.NET, .NET Core, Unity, Xamarin)用の新しい高速なMessagePack実装
を参考にしてください。

MessagePackAnalyzerをインストールしないとMessagePack関係のコーディングが面倒なので気をつけてください

シリアライズするクラスはPublicにしないと例外が出ます。うっかりPublicを付け忘れると悲惨なことになります。

以下は暗号化関係のソースです
https://github.com/reniris/EasyEncrypt/blob/05dceefdc37aa0a3617c68faa40d664705f244b8/EasyEncrypt/Encrypt.cs
暗号化、複合化部分は抽象化してあるので、拡張しやすくなっているはずです。

暗号化キーは、指定されていない場合は自動生成するようになっています。
最初の一回だけキーを生成してどこかに保存しておいて、次からはそのキーを使うというようなやり方を想定しています。

ネットにある暗号化のサンプルはキーを直接ソースに書いてあるのが多かったので、ソースにキーを書かないことを意識しました。