Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
知っておかないとバグを引き起こしそうな_地域別の設定_について_本物.pdf
Search
Tomi-Hand
May 08, 2024
1
360
知っておかないとバグを引き起こしそうな_地域別の設定_について_本物.pdf
Tomi-Hand
May 08, 2024
Tweet
Share
More Decks by Tomi-Hand
See All by Tomi-Hand
Web出さないのに Flutter プロジェクト にWeb含める?その裏 にある開発者の意図
seaud5
0
69
Featured
See All Featured
A Soul's Torment
seathinner
5
2.4k
Navigating Weather and Climate Data
rabernat
0
130
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
74
Exploring anti-patterns in Rails
aemeredith
2
290
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
How to Think Like a Performance Engineer
csswizardry
28
2.5k
WENDY [Excerpt]
tessaabrams
9
36k
HDC tutorial
michielstock
1
520
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
320
Transcript
知っておかないと バグを引き起こしそうな 地域別の設定について🌏 DroidKaigi.collect { 2024. 05. 07 #8@Tokyo Tomi-Hand
初めまして Hand-Tomi と申します
Locale.getDefault() == Locale.JAPAN
Locale.getDefault() == Locale.JAPAN 端末の言語 == 日本語
val locale: Locale = Locale.getDefault()
val locale: Locale = Locale.getDefault()
Localeとは
Localeとは 言語、国、地域に基づいた 文化的、地理的設定を表すクラス
Localeに含まれているデータ 言語 記号 国 バリアント 拡張 language script country variant
extensions
Localeに含まれているデータ 言語 language script country variant extensions
Localeに含まれているデータ language script country variant extensions 記号
Localeに含まれているデータ language script country variant extensions 記号 言語を表す記号体系
Localeに含まれているデータ language script country variant extensions 国
Localeに含まれているデータ language script country variant extensions バリアント
方言など特定言語の変形 Localeに含まれているデータ language script country variant extensions バリアント
Localeに含まれているデータ language script country variant extensions 拡張
言語以外の追加情報 Localeに含まれているデータ language script country variant extensions 拡張
例えば
None
None
val locale: Locale = Locale.getDefault() Locale - 言語:ja(日本語) - 国:JP(日本)
val locale: Locale = Locale.getDefault() Locale - 言語:ja(日本語) - 国:JP(日本)
問題 ❶
1 val isJapan = Locale.getDefault() == Locale.JAPAN 2 setContent {
3 Text( 4 text = "日本語ですか? $isJapan", 5 fontSize = 30.sp, 6 ) 7 }
1 val isJapan = Locale.getDefault() == Locale.JAPAN 2 setContent {
3 Text( 4 text = "日本語ですか? $isJapan", 5 fontSize = 30.sp, 6 ) 7 }
1 val isJapan = Locale.getDefault() == Locale.JAPAN 2 setContent {
3 Text( 4 text = "日本語ですか? $isJapan", 5 fontSize = 30.sp, 6 ) 7 }
1 val isJapan = Locale.getDefault() == Locale.JAPAN 2 setContent {
3 Text( 4 text = "日本語ですか? $isJapan", 5 fontSize = 30.sp, 6 ) 7 }
?
True vs False
True!
問題 ❷
None
Android14のみ
None
None
None
None
1 val isJapan = Locale.getDefault() == Locale.JAPAN 2 setContent {
3 Text( 4 text = "日本語ですか? $isJapan", 5 fontSize = 30.sp, 6 ) 7 }
1 val isJapan = Locale.getDefault() == Locale.JAPAN 2 setContent {
3 Text( 4 text = "日本語ですか? $isJapan", 5 fontSize = 30.sp, 6 ) 7 }
?
True vs False
False!
Locale.getDefault() == Locale.JAPAN 地域別の設定に変更がある 地域別の設定に変更がない True False
Locale.getDefault() == Locale.JAPAN 地域別の設定に変更がある 地域別の設定に変更がない True False
Locale.getDefault() == Locale.JAPAN 地域別の設定に変更がある 地域別の設定に変更がない True False
Locale.getDefault() == Locale.JAPAN 地域別の設定に変更がある 地域別の設定に変更がない True False
地域別の設定🌏は なんですか?
English(アメリカ) English(オランダ) 温度 華氏 摂氏 週最初の曜日 日曜日 月曜日
English(アメリカ) English(オランダ) 温度 華氏 摂氏 週最初の曜日 日曜日 月曜日 🏻 ♂
English(アメリカ) English(オランダ) 温度 華氏 摂氏 週最初の曜日 日曜日 月曜日
English(アメリカ) English(オランダ) 温度 華氏 摂氏 週最初の曜日 日曜日 月曜日 👨
華氏に変更したい!
English(アメリカ) English(オランダ) 温度 華氏 摂氏 週最初の曜日 日曜日 月曜日 👨
華氏に変更したい!
None
None
None
None
None
地域別の設定は Android14から 導入された 新しい設定機能
Locale.getDefault() == Locale.JAPAN 地域別の設定に変更がある 地域別の設定に変更がない True False
Locale.getDefault() == Locale.JAPAN 地域別の設定に変更がある 地域別の設定に変更がない True False
地域別の設定情報は Localeに 含まれている
Locale? 言語 記号 国 バリアント 拡張 language script country variant
extensions
language script country variant extensions 拡張
言語以外の追加情報 language script country variant extensions 拡張
コード上で 確認して みましょうか?
None
Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}") Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}")
Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}") Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}") V ja_JP
V ja_JP V true
Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}") Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}")
Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}") Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}") V ja_JP_#u-mu-fahrenhe
V ja_JP V false
Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}") Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}") V ja_JP_#u-mu-fahrenhe
V ja_JP V false
Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}") Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}") V ja_JP_#u-mu-fahrenhe
V ja_JP V false
Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}") Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}") V ja_JP_#u-mu-celsius
V ja_JP V false
Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}") Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}") V ja_JP_#u-mu-celsius
V ja_JP V false
そうです。
V ja_JP_#u-mu-celsius V ja_JP V false Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}")
Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}")
V ja_JP_#u-mu-celsius V ja_JP V false Log.v(TAG, "${Locale.getDefault()}") Log.v(TAG, "${Locale.JAPAN}")
Log.v(TAG, "${Locale.getDefault() == Locale.JAPAN}")
そしたら どのように 解決するのか?
言語を確認したい場合 val locale: Locale = Locale.getDefault() Log.v(TAG, "${locale.language == Locale.JAPAN.language}")
val locale: Locale = Locale.getDefault() Log.v(TAG, "${locale.language == Locale.JAPAN.language}") 言語を確認したい場合
val locale: Locale = Locale.getDefault() Log.v(TAG, "${locale.country == Locale.JAPAN.country}") 国を確認したい場合
val locale: Locale = Locale.getDefault() Log.v(TAG, "${locale.country == Locale.JAPAN.country}") 国を確認したい場合
ご覧いただき ありがとう ございました https://blog.kinto-technologies.com/posts/2024-02-28-regional-preferences/ } 2024. 05. 07 #8@Tokyo Tomi-Hand