TIL

[Sesac IOS] 46일차 TIL

46일차 내용을 정리한 글 입니다.


Learned

현지화(Localization)

1) 개요

  • 지역의 특성에 맞게 앱을 변화시켜 언어, 문화 등 환경이 다른 여러 곳에서
    앱을 사용할 수 있도록 지원하는 서비스
  • 일반적으로 기기에 설정된 시스템 언어에 따라 현지화가 이루어지지만
    iOS 버전 13.0 이상부터 앱 내에서 선호하는 언어를 변경할 수 있는 기능이 추가됨.

2) 애플의 현지화

  • 날짜, 길이, 무게, 가격, 화폐 기호 등 지역마다 다르게 표현될 수 있는 값들을
    내부 API를 통해 지역에 맞게 표현할 수 있게 함.
  • Localizable, InfoPlist, plural같은 파일 내부에 지역에 따른
    고정 텍스트, 권한 요청 문구, 단수 및 복수 표현을 대응할 수 있음.
NOTE
Localization, InfoPlist → strings 파일
plural → stringsdict 파일
  • 앱의 기본 언어를 Localization 파일로 대응된 지역들 중 하나로 설정할 수 있음.
  • 앱 자체적인 현지화와 관계없이 앱 스토어에 표시되는 제품 페이지의
    메타데이터 내용을 현지화할 수 있음.
NOTE
앱의 기본 언어는 앱 설치 후 최초로 앱을 실행했을 때 기본값으로 설정될 언어를 의미함.

3) 국제화(Internationalization)와 현지화

  • 앱이 여러 환경을 지원할 수 있도록 앱을 설계하는 것을 의미함.
  • 언어, 글을 쓰는 방향, 단위, 날짜, 화폐 등을 고려해 앱을 설계하는 과정으로,
    이런 설계를 통해 앱이 현지화될 수 있음.
  • 현지화는 지역에 맞게 언어를 번역하거나 지역의 시간대를 고려하여
    날짜를 표현하는 등 실질적인 지원을 의미함.
I18N과 L10N
Internationalization과 Localization의 첫 글자와 마지막 글자를 따서 각각 I18N, L10N 이라고도 부른다.
여기서 18, 10 같은 숫자는 첫 글자와 마지막 글자 사이의 알파벳 개수를 의미함.

기타

  • strings 파일, 이미지, 컬러 등 프로젝트의 리소스를 관리해주는 오픈소스 : R.Swift, SwiftGen
  • 앱의 사용자에게 리뷰를 요청하는 알럿을 띄울 수 있음. (단 1년에 3번만 가능)
  • MessageUI로 이메일 보내기 화면을 띄울 수 있음. (사용자의 메일 계정이 등록돼있을 때)
func sendMail() {
        if MFMailComposeViewController.canSendMail(){
            let mail = MFMailComposeViewController()
            mail.setToRecipients(["email@energy.com"])
            mail.setSubject("문의사항")
            mail.mailComposeDelegate = self
            self.present(mail, animated: true)
        } else {
            // 메일을 보낼 수 없음
        }
    }

 


이상입니다.

'TIL' 카테고리의 다른 글

[Sesac IOS] 45일차 TIL  (0) 2022.09.07
[Sesac IOS] 43~44일차 TIL  (0) 2022.09.05
[Sesac IOS] 42일차 TIL  (0) 2022.08.31
[Sesac IOS] 41일차 TIL  (2) 2022.08.31
[Sesac IOS] 40일차 TIL  (0) 2022.08.31