WWDC2016 : SS201 – Internationalization Best Practices

비디오 보기 | 슬라이드 보기

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. 달력에 음력이 추가됨

적게 일하고 많이 버는 법을 늘 고민합니다. 일이 되게 하는 것에 간혹 목숨을 겁니다. 지금은 우아한형제들과 함께 일하고 있어요.