일본어로 tvos의 AVPlayViewController의 Info 패널을 표시합니다

개막사


tvos의 AVPlay View Controller는 검색란의 축소판을 마음대로 꺼내 소박하고 우수하기 때문에 사용하는 앱이 많지만 저급화된 앱은 보기 드물다는 인상을 준다.하지만 그동안 작업한 앱은 특별한 의식이 없어도 대응할 수 있을 것 같다.해결되었으니 공유하세요.

프로젝트에 일본어 언어 설정 추가


이렇게 해서 안전하게 일본어로 나오네요.🎉

Xcode에서 예를 들어 이렇게 설정한 느낌.

AVPlayerItem.externalMetadata를 추가하고 정보 탭을 보낼 때

extendedLanguageTag 이 정보는 일본어와 일치하지 않을 경우 표시되지 않습니다.
예를 들어 다음과 같은 경우"und""ja"는 일본어와 일치하지만 "fr"는 일본어와 일치하지 않는다.
extension AVPlayerItem {
    func addExternalMetaData() {
        // title
        let titleItem = AVMutableMetadataItem()
        titleItem.identifier = AVMetadataIdentifier.commonIdentifierTitle
        titleItem.value = "日本語タイトル" as NSString
        titleItem.extendedLanguageTag = "und"

        // description
        let descriptionItem = AVMutableMetadataItem()
        descriptionItem.identifier = AVMetadataIdentifier.commonIdentifierDescription
        descriptionItem.value = "デスクリプチョン" as NSString
        descriptionItem.extendedLanguageTag = "fr"
        externalMetadata.append(titleItem)
        externalMetadata.append(descriptionItem)

        // genre
        let genreItem = AVMutableMetadataItem()
        genreItem.identifier = AVMetadataIdentifier.quickTimeMetadataGenre
        genreItem.value = "Comedy" as NSString
        genreItem.extendedLanguageTag = "ja"

        externalMetadata.append(titleItem)
        externalMetadata.append(descriptionItem)
        externalMetadata.append(genreItem)
    }
}
이 경우 터미널 언어가 일본어로 설정되었을 때 description을 표시하지 않습니다.

전체"und" 또는 "ja"면 description도 표시됩니다.

"und" ? "ja" ?


만약에 여러 언어에 대응하는 상황에서 메타데이터도 언어에 따라 설정할 수 있다면 각각 ja 또는 fr를 설정하는 것이 좋다.만약 그렇지 않다면, 단지 하나의 언어 (현지화는 지원되지 않는다) 만 있다면, 가장 좋은 것은 und 이다.아니면 로컬화und가 지원되지 않는다면 애플 문서에도 적혀 있다.

"ja" ? "jpn" ?


참고로 다음 문서에서 ISO639-2의 언어 라벨이 언급되어 혼란스러웠지만 "ja""jpn"에 모두 일본어가 표시되어 있었다.
Language and Locale IDs

기타 tips


genre만 있으면 '정보' 탭 자체가 표시되지 않습니다.
시뮬레이터로 확인하면 xcscheme의 언어를 Japanese로 설정하는 것을 잊지 마십시오.

총결산

extendedLanguageTag 설정만으로는 안 되고 원래 언어 설정은 로컬라이제이션으로 추가해야 한다.OS 표준 UI 구성 요소를 사용하는 경우 동일한 일이 발생할 수 있으므로 프로젝트의 언어 설정을 재검토할 수 있습니다.
그러고 보니 이 인포패널은 tvOS11에 맞춤형 라벨을 추가할 수 있어 사용하고 싶어요.

참고 자료

  • AVKit on tvOS - WWDC 2016
  • What's New in tvOS - WWDC 2017
  • extendedLanguageTag - AVMutableMetadataItem | Apple Developer Documentation
  • Internationalizing the User Interface
  • 좋은 웹페이지 즐겨찾기