言語を指定する hl パラメータをシェア用の URL に付けると、
OGP の表示がちょっと見やすくなることがあるというお話です。
前提
Google Play Console の「ストアの掲載情報」に複数の言語で登録していること。
実装例
<!-- シェア用のURL -->
<string name="share_url" translatable="false">https://play.google.com/store/apps/details?id=com.byuubyu.freecalcleaf</string>
// 友達に教えるボタンなどからコールされるシェアメソッド
fun onClickShare(v: View?) {
ShareCompat.IntentBuilder.from(this)
.setChooserTitle(R.string.share_chooser_title)
.setText(getString(R.string.share_url) + "&hl=" + Locale.getDefault().language)
.setType("text/plain")
.startChooser()
}
ポイントは、setText で hl パラメータに端末の言語をセットして文字列連結しているところです。
文字列リソース側に &hl=%1$s を(適切にエスケープしつつ)追加してテンプレート化し、getString の第2引数に言語を渡す形に書き換えてもOKです。
シェア用の URL 例は私の自作アプリです(隙あらば宣伝していくスタイル)。
LINE での使用例
「ストアの掲載情報」のデフォルトを英語(アメリカ合衆国)として、他に日本語も登録しているアプリでシェア結果を確認します。
下の画像内のメッセージの上から順に①②③とします。
① 端末の言語設定が日本語の場合
hl=ja として URL が共有され、OGP 部分が日本語で表示されます。
端末を日本語で使っているユーザが日本語話者の友人などにシェアするパターンで見やすくなります。
② 端末の言語設定が英語の場合
hl=en として URL が共有され、OGP 部分が英語で表示されます。
端末を英語で使っているユーザが英語話者の友人などにシェアするパターンで見やすくなります。
③ 端末の言語設定が日本語で hl パラメータを指定しない場合
確認方法としては hl パラメータ部分を LINE 上で削除してから送信しています。
結果、OGP 部分がデフォルトの言語(このケースでは英語)で表示されます。
端末を日本語で使っているユーザが日本語話者の友人などにシェアするパターンを想定したとき、シェアされた側の受信時の印象が変わってきます。
英語に抵抗がなく普通に読めるユーザであれば問題ないですが、そうではないユーザへの対応としては言語の指定有無を検討する必要があります。
個人的には母国語で見えた方がやっぱり分かりやすいですし、設計としても親切だと思います。
ちなみに、hl=zh のように「ストアの掲載情報」に登録していない言語パラメータでシェアしても、OGP 部分はデフォルトの英語で表示されます。
補足
- アメリカ英語とイギリス英語を使い分けたい場合などは、
glパラメータで国も指定するといけるはずです(未検証ですが)。 - 今回の投稿内容は、母国語が異なる友人へシェアする場合などではあまり有効ではないかもしれませんが、例えば
hl=jaとしてシェアされた URL を言語設定が英語の端末でクリックすると、遷移先の Google Play Store は英語で表示され、端末の設定言語でストアの掲載情報を見ることができますので、特にデメリットはないと考えられます。 - 今回の投稿内容と直接は関係ありませんが、ビルドバリアントを使って、シェアする URL をグーグル用とアマゾン用などで使い分けるようにするとリリースしやすくなります。
最後に
ご意見やアドバイスなどがありましたら、コメントいただけると嬉しいです!
