Android端末の繁体中国語と簡体中国語をセグメントで分ける方法

言語コードは、Locale#getLanguageメソッドを用いて生成しています。

Locale.getDefault().getLanguage()

Android端末の言語設定に、中国語は繁体と簡体の2種類あります。Locale#getLocaleメソッドは、これらを区別せずzhという文字列を返しますので、繁体と簡体の区別をすることができません。

繁体と簡体を分ける方法は2種類あります。

  • iOSに合わせて、繁体をzh-Hant、簡体をzh-Hansとしてタグ付けする方法
  • Languageタグに追加でCountryタグを作成し、TWを繁体、CNを簡体とする方法

Androidで繁体と簡体の識別は、Locale#getCountryによっておこなうことができます。地域が中国の場合は簡体 zh-Hans とし、台湾の場合は繁体 zh-Hant とすることで言語を分けることができます。

String language = Locale.getDefault().getLanguage();
if (language.equals(“zh”)) {
	String country = Locale.getDefault().getCountry();
	if (country.equals(“CN”)) {
		language += “-Hans”;
	} else if (country.equals(“TW”)) {
		language += “-Hant”;
	}
}
GrowthPush.getInstance().setTag(“Language”, language);

繁体と簡体を区別するもうひとつの方法は、地域コードを別に送信することです。地域コードは、Locale#getCountyメソッドによって取得できます。

GrowthPush.getInstance().setTag(“Country”, Locale.getDefault().getCountry());

ここで送信したCountryタグと、Languageタグを組み合わせてセグメントを作成することで、言語を振り分けてプッシュ通知を送信することができます。

  • 繁体: 「Languageタグがzh」かつ「CountryタグがTW」
  • 簡体: 「Languageタグがzh」かつ「CountryタグがCN」