Skip to content

Commit 83bc1d5

Browse files
authored
fix: sync translations to rndv (#406)
* fix: sync translations to rndv * chore: bump version
1 parent 6aeb0f3 commit 83bc1d5

File tree

3 files changed

+41
-31
lines changed

3 files changed

+41
-31
lines changed

ios/Video/NewPlayerView.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,15 @@ class NewPlayerView: UIView, JSInputProtocol {
6464
@objc var partialVideoInformation: NSDictionary? {
6565
didSet { jsProps.partialVideoInformation.value = try? PartialVideoInformation(dict: partialVideoInformation) } }
6666
@objc var translations: NSDictionary? {
67-
didSet { jsProps.translations.value = try? Translations(dict: translations) } }
67+
didSet {
68+
let translationsModel = try? Translations(dict: translations)
69+
jsProps.translations.value = translationsModel
70+
if let translationsModel, jsPlayerView?.dorisGlue != nil, translations != oldValue {
71+
let dorisTranslations = PlayerViewProxy.convertRNVideoTranslationsToDorisTranslations(translations: translationsModel)
72+
jsPlayerView?.dorisGlue?.doris?.viewModel.rendering.translationsViewModel = dorisTranslations
73+
}
74+
}
75+
}
6876
@objc var buttons: NSDictionary? {
6977
didSet { jsProps.buttons.value = try? Buttons(dict: buttons) } }
7078
@objc var theme: NSDictionary? {

ios/Video/PlayerViewProxy.swift

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -81,36 +81,38 @@ class PlayerViewProxy {
8181
}
8282

8383
private static func convertRNVideoTranslationsToRNDV(translations: Translations?) -> JSTranslations? {
84-
var jsTranslations: JSTranslations?
85-
if let translationsValue = translations {
86-
var dorisTranslationsViewModel = DorisTranslationsViewModel()
87-
dorisTranslationsViewModel.play = translationsValue.playerPlayButton
88-
dorisTranslationsViewModel.pause = translationsValue.playerPauseButton
89-
dorisTranslationsViewModel.stats = translationsValue.playerStatsButton
90-
dorisTranslationsViewModel.audioAndSubtitles = translationsValue.playerAudioAndSubtitlesButton
91-
dorisTranslationsViewModel.live = translationsValue.goLive
92-
dorisTranslationsViewModel.favourites = translationsValue.favourite
93-
dorisTranslationsViewModel.addToWatchlist = translationsValue.addToWatchlist
94-
dorisTranslationsViewModel.moreVideos = translationsValue.moreVideos
95-
dorisTranslationsViewModel.audio = translationsValue.audioTracks
96-
dorisTranslationsViewModel.info = translationsValue.info
97-
dorisTranslationsViewModel.adsCountdownAd = translationsValue.adsCountdownAd
98-
dorisTranslationsViewModel.adsCountdownOf = translationsValue.adsCountdownOf
99-
dorisTranslationsViewModel.annotations = translationsValue.annotations
100-
dorisTranslationsViewModel.playingLive = translationsValue.playingLive
101-
dorisTranslationsViewModel.nowPlaying = translationsValue.nowPlaying
102-
dorisTranslationsViewModel.subtitles = translationsValue.captions
103-
dorisTranslationsViewModel.skipIntro = translationsValue.skipIntro
104-
dorisTranslationsViewModel.skipCredits = translationsValue.skipCredits
105-
dorisTranslationsViewModel.rewind = translationsValue.rewind
106-
dorisTranslationsViewModel.fastForward = translationsValue.fastForward
107-
dorisTranslationsViewModel.off = translationsValue.off
108-
dorisTranslationsViewModel.audioOnlyBadge = translationsValue.audioOnlyBadge
109-
jsTranslations = JSTranslations(beaconTranslations: nil, dorisTranslations: dorisTranslationsViewModel)
110-
}
111-
return jsTranslations
84+
guard let translations else { return nil }
85+
let dorisTranslationsViewModel = convertRNVideoTranslationsToDorisTranslations(translations: translations)
86+
return JSTranslations(beaconTranslations: nil, dorisTranslations: dorisTranslationsViewModel)
11287
}
113-
88+
89+
static func convertRNVideoTranslationsToDorisTranslations(translations: Translations) -> DorisTranslationsViewModel {
90+
var dorisTranslationsViewModel = DorisTranslationsViewModel()
91+
dorisTranslationsViewModel.play = translations.playerPlayButton
92+
dorisTranslationsViewModel.pause = translations.playerPauseButton
93+
dorisTranslationsViewModel.stats = translations.playerStatsButton
94+
dorisTranslationsViewModel.audioAndSubtitles = translations.playerAudioAndSubtitlesButton
95+
dorisTranslationsViewModel.live = translations.goLive
96+
dorisTranslationsViewModel.favourites = translations.favourite
97+
dorisTranslationsViewModel.addToWatchlist = translations.addToWatchlist
98+
dorisTranslationsViewModel.moreVideos = translations.moreVideos
99+
dorisTranslationsViewModel.audio = translations.audioTracks
100+
dorisTranslationsViewModel.info = translations.info
101+
dorisTranslationsViewModel.adsCountdownAd = translations.adsCountdownAd
102+
dorisTranslationsViewModel.adsCountdownOf = translations.adsCountdownOf
103+
dorisTranslationsViewModel.annotations = translations.annotations
104+
dorisTranslationsViewModel.playingLive = translations.playingLive
105+
dorisTranslationsViewModel.nowPlaying = translations.nowPlaying
106+
dorisTranslationsViewModel.subtitles = translations.captions
107+
dorisTranslationsViewModel.skipIntro = translations.skipIntro
108+
dorisTranslationsViewModel.skipCredits = translations.skipCredits
109+
dorisTranslationsViewModel.rewind = translations.rewind
110+
dorisTranslationsViewModel.fastForward = translations.fastForward
111+
dorisTranslationsViewModel.off = translations.off
112+
dorisTranslationsViewModel.audioOnlyBadge = translations.audioOnlyBadge
113+
return dorisTranslationsViewModel
114+
}
115+
114116
private static func convertRNVideoButtonsToRNDV(buttons: Buttons?) -> JSButtons? {
115117
var jsButtons: JSButtons?
116118
if let buttonsValue = buttons {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-video",
3-
"version": "7.7.6",
3+
"version": "7.7.7",
44
"dorisAndroidVersion": "3.13.6",
55
"description": "A <Video /> element for react-native",
66
"main": "Video.tsx",

0 commit comments

Comments
 (0)