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
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
CSC305 Lecture 10
javiergs
PRO
0
240
What's new in Spring Modulith?
olivergierke
1
170
CSC305 Lecture 09
javiergs
PRO
0
310
CSC509 Lecture 08
javiergs
PRO
0
250
Vueのバリデーション、結局どれを選べばいい? ― 自作バリデーションの限界と、脱却までの道のり ― / Which Vue Validation Library Should We Really Use? The Limits of Self-Made Validation and How I Finally Moved On
neginasu
2
1.5k
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
320
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
260
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
190
Ktorで簡単AIアプリケーション
tsukakei
0
100
チームの境界をブチ抜いていけ
tokai235
0
220
Cursorハンズオン実践!
eltociear
2
1.2k
ALL CODE BASE ARE BELONG TO STUDY
uzulla
28
6.7k
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Side Projects
sachag
455
43k
Producing Creativity
orderedlist
PRO
347
40k
The Language of Interfaces
destraynor
162
25k
Embracing the Ebb and Flow
colly
88
4.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
A Tale of Four Properties
chriscoyier
161
23k
Facilitating Awesome Meetings
lara
57
6.6k
The Cult of Friendly URLs
andyhume
79
6.6k
Statistics for Hackers
jakevdp
799
220k
How STYLIGHT went responsive
nonsquared
100
5.8k
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·Ͱ ΤϯδχΞืूதʂ