WWDC2016 : SS201 - Internationalization Best Practices
WWDC2016 : SS201 - Internationalization Best Practices
On this page
What’s New
- Multilingual Keyboards
- Latin American Spanish
- Measurement Formatter
- Keyboard Number Pads
- International layout (Autolayout)
Fundamentals
- 언어에 따라 표시되는 순서나 레이아웃의 순서가 반대일 수 있다. 예를 들면 타임마커(AM/PM)는 중국어에선 시간보다 앞쪽에, 영어에선 시간보다 뒤쪽에 쓰여짐. 힌디어는 레이아웃 자체가 오른쪽에서 왼쪽으로 진행되는 것.
- 언어 선택의 경우에는 Hirachy가 생겼기 때문에 매우 큰 변화라고 볼 수 있다.
- 번들언어는 내부 로직에 의해 Locale.preferredLanguages , bundle.localization, bundle.preferredLocalizations 를 매칭시킨다.
- 빌드세팅에 Missing Localizability이 추가됨
Formatters
날짜/시간, 이름, 단위에 대한 Formatter가 추가됨.
날짜/시간
dateFormat = "hh:mm a"
형식에서dataFormat = .shortSyle
방식으로 변경- “hh:mm a”는 미국식. 중국어에선 오전/오후 마커가 시간보다 앞쪽에 있으므로 맞지 않음.
- 지원하는 포맷 : .shortStyle / .mediumStyle / .longStyle / .fullStyle
- 대부분의 서비스에서는 .shortStyle 만 사용해도 될 것.
- 물론 커스텀도 지원(
formatter.setLocalizedDateFormatFromTemplate
) - Date components 와 date intervals(몇시 – 몇시)
이름
- 주는 이름에서
.long .medium .short .abbreviated
스타일. 성/이름만 쓰는.medium
과 이니셜만 불러오는.abbreviated
NEW
Name Parsing : 성과 이름의 순서가 다르더라도 이름을 파싱해 일반적으로 사용하는 성과 이름을 구분할 수 있음. 미친ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
단위 – MeasurementFormatter
- 측정단위는 다른 세션에서 들으삼.
Layout
- 좌우가 바뀌는 레이아웃은 다른 세션에서 들으삼.
- Vertical Flexibility
- 영어보다 키가 큰 언어들. 높이를 고정하면 언어의 일부가 잘려나감.
label.clipsToBounds = false
로 하면 전체가 보여짐.- 당연히 라벨의 높이도 달라짐.
- 멀티라인라벨의 경우에도
forTextSytle: UIFontTextSytleBody
로 넣어두면 라벨의 높이도 높아지고, 가독성을 높이기 위해 행간도 넓어짐.
Getting World-ready
Iconography
- 아이콘 디자인 할때 단어나 숫자는 피할 것. 글로벌리하지 않음.
- 아이콘에 좌우가 있는 것도 비추. 반대로 보는 나라가 있음.
- 그냥 상징성이 있는 건 좋음.
- 잘된 케이스 : 아이폰 포토, 에버노트
- 좌우가 바뀌는 언어들을 위한 오토레이아웃…은 다른세션에서 들으삼
앱스토어 최적화하기
- 앱이름은 스토어에서 한 줄안으로 표현되도록 짧게 지을 것. 번역은 필수.
- 앱 스크린샷 설명도 다국어
- 스샷을 채우는 컨텐츠와 키보드 같은 UI도 해당 국가에 맞게.
Multilingual
- 요샌 대부분 바이링구얼피플들. 앱UI는 글로벌 스탠다드로, 컨텐츠는 나라에 맞게 로컬라이징 하는 경우가 있음.
Surprise and Delight
- 다국어를 위한 커스텀 기능들을 지원
- 예1. 키노트 템플릿은 나라마다 다름
- 예2. 달력에 음력이 추가됨