•localizing with xcode 9 - apple developer•localizing with xcode 9 ... • prepare your app for...
TRANSCRIPT
![Page 1: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/1.jpg)
#WWDC17
© 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
Sara Radi, Software Engineer Aya Siblini, Software Engineer Chris Hanson, Software Engineer
•Localizing with Xcode 9 • Session 401
Developer Tools
![Page 2: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/2.jpg)
![Page 3: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/3.jpg)
![Page 4: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/4.jpg)
![Page 5: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/5.jpg)
![Page 6: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/6.jpg)
![Page 7: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/7.jpg)
Agenda
![Page 8: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/8.jpg)
Agenda
•Internationalization
![Page 9: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/9.jpg)
Agenda
•Internationalization•Xcode Localization Workflow
![Page 10: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/10.jpg)
Agenda
•Internationalization•Xcode Localization Workflow•Testing
![Page 11: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/11.jpg)
Sara Radi, Software Engineer
•Internationalization
![Page 12: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/12.jpg)
![Page 13: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/13.jpg)
![Page 14: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/14.jpg)
![Page 15: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/15.jpg)
![Page 16: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/16.jpg)
•Strings Management •Formatting •User Interface
![Page 17: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/17.jpg)
Strings Management
![Page 18: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/18.jpg)
Strings Management
Prepare your strings for translation
![Page 19: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/19.jpg)
Strings Management
Prepare your strings for translation
Use NSLocalizedString to load strings in code
![Page 20: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/20.jpg)
Strings Management
Prepare your strings for translation
Use NSLocalizedString to load strings in code
Use localizedStringWithFormat to get a localized formatted string
![Page 21: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/21.jpg)
// Set a label's text
label.text = "Population"
// Set a label's text to a localized string
label.text = NSLocalizedString("Population", comment: "Label preceding the population value")
// Load localized string from a specific table
label.text = NSLocalizedString("Population", tableName: "Localizable", bundle: .main, value: nil, comment: "Label preceding the population value")
// Create a formatted string
let format = NSLocalizedString("%d popular languages", comment: "Number of popular languages")
label.text = String.localizedStringWithFormat(format, popularLanguages.count)
![Page 22: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/22.jpg)
// Set a label's text
label.text = "Population"
// Set a label's text to a localized string
label.text = NSLocalizedString("Population", comment: "Label preceding the population value")
// Load localized string from a specific table
label.text = NSLocalizedString("Population", tableName: "Localizable", bundle: .main, value: nil, comment: "Label preceding the population value")
// Create a formatted string
let format = NSLocalizedString("%d popular languages", comment: "Number of popular languages")
label.text = String.localizedStringWithFormat(format, popularLanguages.count)
![Page 23: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/23.jpg)
// Set a label's text
label.text = "Population"
// Set a label's text to a localized string
label.text = NSLocalizedString("Population", comment: "Label preceding the population value")
// Load localized string from a specific table
label.text = NSLocalizedString("Population", tableName: "Localizable", bundle: .main, value: nil, comment: "Label preceding the population value")
// Create a formatted string
let format = NSLocalizedString("%d popular languages", comment: "Number of popular languages")
label.text = String.localizedStringWithFormat(format, popularLanguages.count)
![Page 24: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/24.jpg)
// Set a label's text
label.text = "Population"
// Set a label's text to a localized string
label.text = NSLocalizedString("Population", comment: "Label preceding the population value")
// Load localized string from a specific table
label.text = NSLocalizedString("Population", tableName: "Localizable", bundle: .main, value: nil, comment: "Label preceding the population value")
// Create a formatted string
let format = NSLocalizedString("%d popular languages", comment: "Number of popular languages")
label.text = String.localizedStringWithFormat(format, popularLanguages.count)
![Page 25: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/25.jpg)
// Set a label's text
label.text = "Population"
// Set a label's text to a localized string
label.text = NSLocalizedString("Population", comment: "Label preceding the population value")
// Load localized string from a specific table
label.text = NSLocalizedString("Population", tableName: "Localizable", bundle: .main, value: nil, comment: "Label preceding the population value")
// Create a formatted string
let format = NSLocalizedString("%d popular languages", comment: "Number of popular languages")
label.text = String.localizedStringWithFormat(format, popularLanguages.count)
![Page 26: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/26.jpg)
Strings Management
fr.lproj/Localizable.strings
/* Title label's text */ "International Facts" = "Faits Internationaux";
/* Label prompting a user to choose a territory */ "Territory" = "Territoire";
![Page 27: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/27.jpg)
Strings Management Static analyzer
![Page 28: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/28.jpg)
Strings Management Static analyzer
Thread Sanitizer and Static Analysis WWDC 2016
– (UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIndentifier:@"Cell" forIndexPath:indexPath];
cell.textLable.text = @"Details";
return cell; }
![Page 29: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/29.jpg)
•Strings Management •Formatting •User Interface
![Page 30: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/30.jpg)
![Page 31: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/31.jpg)
![Page 32: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/32.jpg)
Formatters Date and time
let formatter = DateFormatter() formatter.dateFormat = "EEEE, MMMM d, yyyy" let str = formatter.string(from: date)
![Page 33: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/33.jpg)
Formatters Date and time
let formatter = DateFormatter() formatter.dateFormat = "EEEE, MMMM d, yyyy" let str = formatter.string(from: date)
![Page 34: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/34.jpg)
Formatters Date and time
let formatter = DateFormatter() formatter.dateStyle = .full let str = formatter.string(from: date)
let formatter = DateFormatter() formatter.dateFormat = "EEEE, MMMM d, yyyy" let str = formatter.string(from: date)
![Page 35: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/35.jpg)
![Page 36: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/36.jpg)
Formatters
DateFormatter
DateComponentsFormatter
DateIntervalFormatter
PersonNameComponentsFormatter
NumberFormatter
Measurements and Units WWDC 2016
Internationalization Best Practices WWDC 2016
ByteCountFormatter
EnergyFormatter
LengthFormatter
MassFormatter
MeasurementFormatter
![Page 37: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/37.jpg)
•Strings Management •Formatting •User Interface
![Page 38: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/38.jpg)
User Interface Base internationalization
![Page 39: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/39.jpg)
Localized Resources Structure
![Page 40: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/40.jpg)
Localized Resources Structure
Project
![Page 41: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/41.jpg)
Localized Resources Structure
Base.lproj
Project
![Page 42: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/42.jpg)
Localized Resources Structure
en.lprojru.lproj Base.lproj
Project
![Page 43: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/43.jpg)
Localized Resources Structure
ImageMain.storyboardLaunch.xib
en.lprojru.lproj Base.lproj
Project
![Page 44: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/44.jpg)
Localized Resources Structure
Launch.stringsMain.stringsdict Launch.strings Main.strings ImageMain.storyboardLaunch.xib
en.lprojru.lproj Base.lproj
Project
![Page 45: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/45.jpg)
User Interface Auto Layout
What‘s New in Auto Layout WWDC 2016
Auto Layout Techniques in Interface Builder WWDC 2016
![Page 46: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/46.jpg)
User Interface Localization warnings
NEW
![Page 47: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/47.jpg)
User Interface Pseudolocalization
Default Lorem Ipsum•Double Length Lorem Ipsum Lorem Ipsum
Accented Latin L̊o̥r̀ëm̧ I̧p̊şu̥m̧
Affixed Strings [#Lorem Ipsum#]
Right to Left muspI meroL
NEW
![Page 48: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/48.jpg)
•Demo •Prepare your app for localization
Aya Siblini, Software Engineer
![Page 49: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/49.jpg)
Summary
![Page 50: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/50.jpg)
Summary
Use standard APIs to handle the complexity of data formatting
![Page 51: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/51.jpg)
Summary
Use standard APIs to handle the complexity of data formatting
Use base internationalization and Auto Layout
![Page 52: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/52.jpg)
Summary
Use standard APIs to handle the complexity of data formatting
Use base internationalization and Auto Layout
Validate your strings and UI
![Page 53: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/53.jpg)
Sara Radi, Software Engineer
•Localization Workflow
![Page 54: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/54.jpg)
Localization
![Page 55: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/55.jpg)
Localization Process
![Page 56: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/56.jpg)
Source Code
Localization Process
![Page 57: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/57.jpg)
Source Code
Localization Process
Resources
![Page 58: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/58.jpg)
French Russian Spanish
Source Code
Localization Process
Export
Resources
![Page 59: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/59.jpg)
Localized Resources
French Russian Spanish
Source Code
Localization Process
Export
Resources
Import
![Page 60: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/60.jpg)
Localized Resources
Source Code
Localization Process
French Russian Spanish
Export
Import
Resources
![Page 61: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/61.jpg)
Localized Resources
Source Code
Localization Process
French Russian Spanish
Export
Import
Resources
![Page 62: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/62.jpg)
Export
Import
Resources
Localization Process NEW
Source Code
French Russian Spanish
Localized Resources
![Page 63: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/63.jpg)
NEWStringsdict
![Page 64: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/64.jpg)
•Handling Plurals •Adaptive Strings •Localization Export and Import •Other Resources
![Page 65: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/65.jpg)
Stringsdict Plurals
if popularLanguages.count == 1 {
label.text = String.localizedStringWithFormat(NSLocalizedString("1 popular language", comment: "The list contains only one language"))
} else {
label.text = String.localizedStringWithFormat(NSLocalizedString("%d popular languages", comment: "The list contains more than one language"), popularLanguages.count)
}
![Page 66: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/66.jpg)
Stringsdict Plurals
if popularLanguages.count == 1 {
label.text = String.localizedStringWithFormat(NSLocalizedString("1 popular language", comment: "The list contains only one language"))
} else {
label.text = String.localizedStringWithFormat(NSLocalizedString("%d popular languages", comment: "The list contains more than one language"), popularLanguages.count)
}
![Page 67: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/67.jpg)
Stringsdict Plurals
if popularLanguages.count == 1 {
label.text = String.localizedStringWithFormat(NSLocalizedString("1 popular language", comment: "The list contains only one language"))
} else {
label.text = String.localizedStringWithFormat(NSLocalizedString("%d popular languages", comment: "The list contains more than one language"), popularLanguages.count)
}
![Page 68: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/68.jpg)
Stringsdict Plurals
![Page 69: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/69.jpg)
English •1 popular language •
•2 popular languages …•5 popular languages
Stringsdict Plurals
![Page 70: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/70.jpg)
English •1 popular language •
•2 popular languages …•5 popular languages
Russian•Распространенных языков: 1 •Распространенных языков: 2 …•Распространенных языков: 5
Stringsdict Plurals
![Page 71: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/71.jpg)
Stringsdict Plurals
label.text = String.localizedStringWithFormat(NSLocalizedString("%d popular languages", comment: "The list contains more than one language"), popularLanguages.count)
![Page 72: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/72.jpg)
Stringsdict Plurals
label.text = String.localizedStringWithFormat(NSLocalizedString("%d popular languages", comment: "The list contains more than one language"), popularLanguages.count)
![Page 73: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/73.jpg)
Stringsdict Plurals
label.text = String.localizedStringWithFormat(NSLocalizedString("%d popular languages", comment: "The list contains more than one language"), popularLanguages.count)
![Page 74: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/74.jpg)
Stringsdict Plurals
![Page 75: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/75.jpg)
Russian •Распространенных языков: 1 •
•Распространенных языков: 2 •ular languages …•Распространенных языков: 5
Stringsdict Plurals
![Page 76: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/76.jpg)
Russian •Распространенных языков: 1 •
•Распространенных языков: 2 •ular languages …•Распространенных языков: 5
Russian•1 распространенный язык •2 распространенных языка
…•5 распространенных языков
Stringsdict Plurals
![Page 77: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/77.jpg)
•Handling Plurals •Adaptive Strings •Localization Export and Import •Handling Other Resources
![Page 78: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/78.jpg)
![Page 79: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/79.jpg)
![Page 80: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/80.jpg)
![Page 81: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/81.jpg)
![Page 82: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/82.jpg)
![Page 83: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/83.jpg)
![Page 84: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/84.jpg)
Stringsdict Adaptive Strings NEW
![Page 85: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/85.jpg)
Stringsdict Adaptive Strings NEW
label.text = NSLocalizedString("GDP", comment: "A territory's GDP (Gross Domestic Product)")
![Page 86: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/86.jpg)
Stringsdict Adaptive Strings NEW
label.text = NSLocalizedString("GDP", comment: "A territory's GDP (Gross Domestic Product)")
let widthFormattedString = string.variantFittingPresentationWidth(20)
![Page 87: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/87.jpg)
Stringsdict Adaptive Strings NEW
label.text = NSLocalizedString("GDP", comment: "A territory's GDP (Gross Domestic Product)")
let widthFormattedString = string.variantFittingPresentationWidth(20)
![Page 88: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/88.jpg)
![Page 89: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/89.jpg)
![Page 90: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/90.jpg)
![Page 91: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/91.jpg)
![Page 92: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/92.jpg)
![Page 93: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/93.jpg)
![Page 94: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/94.jpg)
•Handling Plurals •Adaptive Strings •Localization Export and Import •Other Resources
![Page 95: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/95.jpg)
Export XLIFF
![Page 96: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/96.jpg)
Import XLIFF
![Page 97: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/97.jpg)
•Handling Plurals •Adaptive Strings •Localization Export and Import •Other Resources
![Page 98: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/98.jpg)
Other Resources
![Page 99: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/99.jpg)
Other Resources
![Page 100: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/100.jpg)
Other Resources
![Page 101: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/101.jpg)
•Demo •Localization export and import
Chris Hanson, Software Engineer
![Page 102: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/102.jpg)
Summary
![Page 103: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/103.jpg)
Summary
Use stringsdict for plurals and width variants
![Page 104: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/104.jpg)
Summary
Use stringsdict for plurals and width variants
Export XLIFF for localization
![Page 105: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/105.jpg)
Summary
Use stringsdict for plurals and width variants
Export XLIFF for localization
Import localized XLIFF
![Page 106: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/106.jpg)
Summary
Use stringsdict for plurals and width variants
Export XLIFF for localization
Import localized XLIFF
Localize non-string resources in Xcode
![Page 107: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/107.jpg)
Summary
Use stringsdict for plurals and width variants
Export XLIFF for localization
Import localized XLIFF
Localize non-string resources in Xcode
![Page 108: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/108.jpg)
Aya Siblini, Software Engineer
•Testing
![Page 109: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/109.jpg)
Testing XCTest
NEW
![Page 110: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/110.jpg)
Testing XCTest
NEW
![Page 111: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/111.jpg)
Testing UI testing
![Page 112: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/112.jpg)
Testing UI testing
app.tables.cells.staticTexts["Territory"].tap()
![Page 113: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/113.jpg)
Testing UI testing
app.tables.cells.staticTexts["Territory"].tap()
![Page 114: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/114.jpg)
Testing UI testing
app.tables.cells.staticTexts["Territory"].tap()
app.tables.cells["territoryTableCell"].tap()
Use accessibilityIdentifier
![Page 115: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/115.jpg)
Testing UI testing
app.tables.cells.staticTexts["Territory"].tap()
app.tables.cells["territoryTableCell"].tap()
Use accessibilityIdentifier
![Page 116: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/116.jpg)
button.accessibilityIdentifier = "startButton"
Testing UI testing
Set accessibilityIdentifier
![Page 117: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/117.jpg)
Testing UI testing
![Page 118: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/118.jpg)
Testing UI testing
Use accessibility identifiers
Use XCTAttachment to collect screenshots
Get full coverage of UI for all localizations
What’s New in Testing Hall 2 Thursday 3:10PM
Engineering for Testability Hall 3 Friday 1:50PM
NEW
![Page 119: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/119.jpg)
•Demo •Testing
Aya Siblini, Software Engineer
![Page 120: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/120.jpg)
Summary
![Page 121: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/121.jpg)
Summary
Prepare your app for localization
![Page 122: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/122.jpg)
Summary
Prepare your app for localization
Validate your app’s readiness
![Page 123: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/123.jpg)
Summary
Prepare your app for localization
Validate your app’s readiness
Export localizable content to be translated
![Page 124: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/124.jpg)
Summary
Prepare your app for localization
Validate your app’s readiness
Export localizable content to be translated
Import localized content
![Page 125: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/125.jpg)
Summary
Prepare your app for localization
Validate your app’s readiness
Export localizable content to be translated
Import localized content
Use XCTest to test your localized app
![Page 127: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/127.jpg)
Related Sessions
Advances in TVMLKit Grand Ballroom B Tuesday 11:20AM
What’s New in Testing Hall 2 Thursday 3:10PM
Localizing Content for Swift Playgrounds Grand Ballroom A Thursday 3:10PM
Auto Layout Techniques in Interface Builder Hall 3 Friday 9:00AM
The Keys to a Better Text Input Experience Grand Ballroom B Friday 11:00AM
Building Apps with Dynamic Type Executive Ballroom Friday 1:50PM
Engineering for Testability Hall 3 Friday 1:50PM
Localization Best Practices on tvOS WWDC 2017 Video
![Page 128: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/128.jpg)
Labs
Introduction to Interface Builder Lab Technology Lab E Tue 12:00PM-3:10PM
Internationalization Lab Technology Lab I Tue 1:50PM-4:10PM
Advanced Interface Builder and Auto Layout Lab Technology Lab K Wed 3:10PM-6:00PM
Internationalization Lab Technology Lab I Fri 9:00AM-1:50PM
Advanced Interface Builder and Auto Layout Lab Technology Lab K Fri 12:00PM-1:50PM
![Page 129: •Localizing with Xcode 9 - Apple Developer•Localizing with Xcode 9 ... • Prepare your app for localization Aya Siblini, Software Engineer. Summary . Summary Use standard APIs](https://reader036.vdocuments.net/reader036/viewer/2022070713/5ed0f26496e56701cd772959/html5/thumbnails/129.jpg)