Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOS版グローバル対応の罠と技
Search
Shinichiro Oba
December 17, 2014
Programming
8
24k
iOS版グローバル対応の罠と技
potatotips #12で発表した資料の加筆修正版です。
Androidバージョン
http://www.slideshare.net/tomoakiimai2/us-localization
Shinichiro Oba
December 17, 2014
Tweet
Share
More Decks by Shinichiro Oba
See All by Shinichiro Oba
サーバサイドエンジニアと効率よく開発するためにやっていること
bricklife
8
2.2k
アッテ開発の技術:Swift と RxSwift
bricklife
19
17k
RxSwiftのobserveOnとsubscribeOnを理解する
bricklife
20
7.5k
Swift 2.0でRxSwift、ReactKit、ReactiveCocoaを使ってみた
bricklife
10
5k
ReactiveCocoaのゆるい紹介とメルカリでの活用事例
bricklife
3
3.8k
Apple Pay対応のやりかた
bricklife
1
25k
Other Decks in Programming
See All in Programming
Navigating Dependency Injection with Metro
l2hyunwoo
1
190
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
970
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
590
これならできる!個人開発のすゝめ
tinykitten
PRO
0
130
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
770
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
640
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
300
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
140
GoLab2025 Recap
kuro_kurorrr
0
780
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
170
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
170
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
2
210
The World Runs on Bad Software
bkeepers
PRO
72
12k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
94k
Paper Plane (Part 1)
katiecoart
PRO
0
2.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
230
KATA
mclloyd
PRO
33
15k
Odyssey Design
rkendrick25
PRO
0
440
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
We Are The Robots
honzajavorek
0
120
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Transcript
J04൛ άϩʔόϧରԠͷ᠘ͱٕ גࣜձࣾϝϧΧϦ େఉ৻Ұ
େఉ৻Ұ ϑϦϚΞϓϦʮϝϧΧϦʯ J04ΤϯδχΞ PPCBCSJDLMJGF
ϝϧΧϦ ݄+1൛ϦϦʔε ݄64൛ϦϦʔε
άϩʔόϧରԠ
άϩʔόϧରԠͷํ w ·ͣ64ɺͦͷ͋ͱϤʔϩούͳͲࢹʹ w ւ֎औҾېࢭɻࠃ͝ͱʹ%#αʔόΛΘ͚Δ w ݴޠɺ௨՟ɺ࣌ɺܾࡁɺૹͷҧ͍Λٵऩ
ͬͨ͜ͱ w ผόΠφϦԽ w λʔήοτͱYDDPOpH w Ϧʔδϣϯཧ w ༁ʢ"(JOʣ w
༁ʢ5SBOTJGFYʣ w ύοέʔδฤू w ࣌ͱ௨՟ͷॻࣜ w ςΩετೖྗઃఆ
̍όΠφϦ WT ผόΠφϦ
ผόΠφϦΛ࠾༻ w ىಈޙ͔Βͦͷࠃ͝ͱͷઃఆͰಈ͚ΔΑ͏ʹ w ͷ*1ΞυϨεҬઃఆࢀߟʹ͠ͳ͍ w 64൛ʹຊޠϦιʔεΛؚΊͳ͍ʢͦͷٯʣ w ͢ΔετΞߜΔ w
̍ϓϩδΣΫτͰλʔήοτΛ૿ͯ͠ରԠ
λʔήοτ w ࠃºڥͷ͚ͩλʔήοτΛ࡞ w λʔήοτͷ͚ͩYDDPOpHΛ࡞
YDDPOpH
͋ͱͰࠃΛΓସ͑Ͱ͖Δ Α͏ʹͨ͘͠ͳΔ͔ʜ
ϦʔδϣϯΫϥεͷಋೖ w "1*)5.-ͷ63-ɺܾࡁํ๏ૹํ๏ɺ௨՟ ࣌ͷϑΥʔϚολɺ֤छ*%ͳͲΛಁաతʹཧ w ʮͲͷࠃ͔ʁʯͰͳ͘ʮίϯϏχܾࡁΛ͑Δ͔ʁʯ ͳͲҙຯతʹஅ͢Δ͜ͱͰJGͷటপԽΛճආ w ্࣮ϦʔδϣϯΛಈతʹΓସ͑ΒΕΔΑ͏ʹ͠ ͓͍ͯͯɺϏϧυ࣌ʹ̍ͭͷϦʔδϣϯ͚ͩ༗ޮʹ
[[Region currentRegion] canUseCvs]
༁
༁ w ຊޠͰ࡞͍ͬͯͨͷΛӳޠʹ༁ w ͳΔ͘ඪ४ͷΈͰ༁͍ͨ͠ w ॳλʔήοτ͕J04ͩͬͨͷͰํ๏͕ݶΒΕΔ "(JOͱ5SBOTJGFY͕׆༂
"(JO w IUUQTHJUIVCDPNBOHFMPMMPRVJ"(JO w πʔϧͱϥΠϒϥϦͷηοτ w YJCɺTUPSZCPBSEɺN͔Β༁ରΛ͔͖ूΊͯҰ ͭͷ-PDBMJ[BCMFTUSJOHʹͯ͘͠ΕΔ w 6*-BCFM6*#VUUPOͳͲͷBXBLF'SPN/JCΛϑο
Ϋͯ͠༁Λөͯ͘͠ΕΔ
5SBOTJGFY w IUUQTXXXUSBOTJGFYDPN w "(JOͰҰͭʹͳͬͨ-PDBMJ[BCMFTUSJOHΛ͜Ε Ͱཧɾ༁͢Δ w KBͷ-PDBMJ[BCMFTUSJOHΛ5SBOTJGFYʹQVTI w 5SBOTJGFY্Ͱ༁ޙFOͷ-PDBMJ[BCMFTUSJOHΛQVMM
w ༁୲ऀ͕8FC্Ͱ༁͢Δ͚ͩ
5SBOTJGFYͷ᠘ w ͋ΔϒϥϯνͰQVTIͨ͠༁ର͕ɺଞͷϒϥϯ ν͔ΒͷQVTIͰফ͑ͨΓ͢Δ w NBTUFSͰQVTIˍQVMM͢Δ͜ͱʹͯ͠ղܾ w ݱࡏ-PDBMJ[BCMFTUSJOH͚ͩผϦϙδτϦͰཧ ͢Δ͜ͱʹͨ͠ ৄ͘͠ฐࣾ"OESPJEΤϯδχΞͷࢿྉΛࢀর
IUUQTTTTMJEFDPNXXXTMJEFTIBSFOFUUPNPBLJJNBJVTMPDBMJ[BUJPO
όϯυϧ͢ΔϦιʔεɺ +1൛ຊޠ͚ͩɺ 64൛ӳޠ͚ͩʹ͍ͨ͠
8IZʁ w ΞϓϦͷαΠζΛখ͍ͨ͘͞͠ w 64͚ͩʹ͔͠ͳ͍ը໘ΛຊޠԽͨ͘͠ͳ͍ w Ϣʔβಉ࢜҆৺ͯ͠ΓͱΓͯ͠Β͏ͨΊɺ ͦͷࠃͷެ༻ޠΛ͑Δਓ͚ͩʹͬͯΒ͍ ͍ͨ
Ͱʜ ϩʔΧϥΠζ͞ΕͨϦιʔε୯ҐͰͷ όϯυϧ੍ޚͰ͖ͳ͍
ύοέʔδΛૢ࡞ w #VJME1IBTFTͰ$PQZ#VOEMF3FTPVSDFTͷ͋ͱ ʹඞཁͷͳ͍ϦιʔεΛফͯ͠͠·͍͍͑ w ྫ͑3VO4DSJQUͰҎԼΛ࣮ߦ rm -Rf "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/en.lproj" ࢀߟ
IUUQTEFWFMPQFSBQQMFDPNMJCSBSZNBDEPDVNFOUBUJPO%FWFMPQFS5PPMT3FGFSFODF 9DPEF#VJME4FUUJOH3FG#VJME@4FUUJOH@3FGFSFODFCVJME@TFUUJOH@SFGIUNM
ॻࣜ
ॻࣜ᠘͕͍ͬͺ͍
࣌ͷॻࣜ w ࣌ؒදهͷ0/0''ྐྵྐྵͰϋϚΔ w ͰͦΜͳʹେม͡Όͳ͍ ϑΥʔϚοτ ग़ྗ +1 yyyy/MM/dd HH:mm
64 MM/dd/yyyy KK:mm aa 1.
௨՟ͷॻࣜ w Ұํɺ௨՟ͷॻࣜ᠘ͩΒ͚ w ௨՟୯ҐͷҐஔɺখɺܻ۠ΓɺϚΠφεදه w 2"ʹʮJ04ͰϚΠφεදه͕༷Ͳ͓Γ͡Όͳ͍ʯ ͱόάѻ͍͞ΕͨΓ͠·͢ ࢀߟ IUUQIPNFQBHFOJGUZDPNUBCPUBCPDDDTZPTVIUN
௨՟ͷॻࣜ w ྫ͑ɺҬΛΞϝϦΧ߹ऺࠃʹͯ͠ɺݴޠΛӳޠ ͱΠλϦΞޠͰΓସ͑ͨ߹ w ܻ۠Γ͕ϐϦΦυͰɺখ͕ΧϯϚͰɺ௨՟୯ Ґ͕ޙΖʹ͘Δʜʂ
௨՟ͷॻࣜ w %FDJNBM1BEͷখมΘΔΑʂ
64ͰηϯτΛখҎԼ ͷͱͯ͠ೖྗ͍ͤͨ͞ w ෦తʹηϯτͰѻ͍ͬͯΔʢʹʣ w ͔͠͠ɺখ͕ϐϦΦυͰ͋Δ͜ͱΛલఏʹೖྗ ͞ΕͨจࣈྻΛղੳ͢ΔͱɺॻࣜઃఆʹΑͬͯਖ਼ ͘͠ղੳͰ͖ͳ͍ w ॳظWFSͰ͜ΕΛͬͯ͠·͍͓͍߹ΘͤଟPS[
/4/VNCFS'PSNBUUFS͕ ॿ͚ͯ͘Ε·͢ • ݱࡏͷॻࣜͰΘΕ͍ͯΔখܻ۠Γͷจࣈ Λڭ͑ͯ͘ΕΔ @property (copy) NSString *decimalSeparator; @property
(copy) NSString *currencyDecimalSeparator; @property (copy) NSString *groupingSeparator; ࢀߟ IUUQTEFWFMPQFSBQQMFDPNMJCSBSZJPTEPDVNFOUBUJPO$PDPB3FGFSFODF'PVOEBUJPO$MBTTFT /4/VNCFS'PSNBUUFS@$MBTTJOEFYIUNMBQQMF@SFGPDDJOTUQ/4/VNCFS'PSNBUUFS DVSSFODZ%FDJNBM4FQBSBUPS
ӳޠݍͷςΩετೖྗͷઃఆ w ࣗಈେจࣈೖྗ͍͍ͨͯ0/ʹ͍ͯ͠Δ w ࣗಈमਖ਼͍͍ͨͯ0/ʹͯ͠Δ w εϖϧνΣοΫ͍͍ͨͯ0/ʹ͍ͯ͠Δ w ຊޠݍͩͱશ෦0''ʹ͕ͪ͠
ςΩετೖྗܥ6*ͷઃఆΛ ͖ͪΜͱ͠Α͏ w ࣗಈେจࣈमਖ਼ࣗಈमਖ਼ɺεϖϧνΣοΫೖྗ 6*͝ͱʹ0/0''Ͱ͖Δ w ॴʹΑͬͯ୯ޠจষͷઌ಄͕େจࣈʹͳΔΑ͏ ʹ͠Α͏ʢ8PSETPS4FOUFODFTʣ w ϝʔϧΞυϨεύεϫʔυશ෦0''ʹ͠Α͏
w ಈ࡞ݕূதઃఆͰࣗಈमਖ਼ܥΛશ෦0/ʹ͠Α͏
ࣗಈमਖ਼ܥͷઃఆ
ͦͷ΄͔ w ෳܗରԠ w େจࣈɺηϯλϦϯάɺࣼମͷηϯε w ίϛϡχέʔγϣϯ w ͳͲͳͲ
͓ΘΓ Կ͔͋Εؾܰʹ!PPCB·Ͱ ΤϯδχΞืूதʂ