일본어로 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에 맞춤형 라벨을 추가할 수 있어 사용하고 싶어요.
참고 자료
이렇게 해서 안전하게 일본어로 나오네요.🎉
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에 맞춤형 라벨을 추가할 수 있어 사용하고 싶어요.
참고 자료
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)
}
}
extendedLanguageTag
설정만으로는 안 되고 원래 언어 설정은 로컬라이제이션으로 추가해야 한다.OS 표준 UI 구성 요소를 사용하는 경우 동일한 일이 발생할 수 있으므로 프로젝트의 언어 설정을 재검토할 수 있습니다.그러고 보니 이 인포패널은 tvOS11에 맞춤형 라벨을 추가할 수 있어 사용하고 싶어요.
참고 자료
Reference
이 문제에 관하여(일본어로 tvos의 AVPlayViewController의 Info 패널을 표시합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toshi0383/items/4d98eee8395cc3fa061f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)