@shift72/core-template 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +46 -11
  3. package/kibble.json +3 -3
  4. package/package.json +2 -3
  5. package/scripts/translate.mjs +30 -22
  6. package/site/ar_LB.all.json +65 -11
  7. package/site/ca_ES.all.json +65 -11
  8. package/site/da_DK.all.json +64 -10
  9. package/site/de_DE.all.json +64 -10
  10. package/site/el_EL.all.json +64 -10
  11. package/site/en_AU.all.json +69 -15
  12. package/site/es_ES.all.json +66 -12
  13. package/site/es_MX.all.json +66 -12
  14. package/site/{ee_EE.all.json → et_ET.all.json} +64 -10
  15. package/site/fi_FI.all.json +67 -13
  16. package/site/fr_FR.all.json +66 -12
  17. package/site/hr_HR.all.json +65 -11
  18. package/site/hu_HU.all.json +65 -11
  19. package/site/it_IT.all.json +65 -11
  20. package/site/ja_JP.all.json +64 -10
  21. package/site/lt_LT.all.json +64 -10
  22. package/site/nl_BE.all.json +65 -11
  23. package/site/no_NO.all.json +65 -11
  24. package/site/pl_PL.all.json +65 -11
  25. package/site/plans.html.jet +17 -17
  26. package/site/pt_BR.all.json +65 -11
  27. package/site/pt_PT.all.json +65 -11
  28. package/site/ru_RU.all.json +67 -13
  29. package/site/sr_SR.all.json +67 -13
  30. package/site/static/fonts/fa-s72.woff +0 -0
  31. package/site/static/js/main.js +1 -0
  32. package/site/static/scripts/main.js.map +1 -1
  33. package/site/styles/_availability-tags.scss +63 -31
  34. package/site/styles/_awards.scss +4 -3
  35. package/site/styles/_buttons.scss +15 -3
  36. package/site/styles/_carousel.scss +21 -24
  37. package/site/styles/_forms.scss +8 -3
  38. package/site/styles/_icons.scss +180 -9
  39. package/site/styles/_legacy.scss +0 -7
  40. package/site/styles/_meta-detail.scss +65 -40
  41. package/site/styles/_nav.scss +5 -4
  42. package/site/styles/_plans.scss +10 -17
  43. package/site/styles/_poster.scss +3 -9
  44. package/site/styles/_share-modal.scss +86 -0
  45. package/site/styles/_shift72.scss +7 -0
  46. package/site/styles/_shopping.scss +0 -1
  47. package/site/styles/_skip-link.scss +1 -1
  48. package/site/styles/_tooltips.scss +7 -0
  49. package/site/styles/_variables.scss +9 -8
  50. package/site/styles/_wishlist.scss +2 -2
  51. package/site/styles/main.scss +3 -2
  52. package/site/subscriptions.html.jet +11 -0
  53. package/site/templates/application/application.jet +2 -2
  54. package/site/templates/application/google.jet +8 -13
  55. package/site/templates/application/nav/user_logged_in.jet +7 -2
  56. package/site/templates/collection/carousel_item.jet +5 -3
  57. package/site/templates/common/social-media-buttons.jet +1 -37
  58. package/site/templates/common/sponsor-image.jet +18 -0
  59. package/site/templates/film/item.jet +92 -86
  60. package/site/templates/tv/detail.jet +30 -21
  61. package/site/tr_TR.all.json +64 -10
  62. package/site/uk_UA.all.json +65 -11
  63. package/site/zh_TW.all.json +64 -10
  64. package/site/static/fonts/FontAwesome.otf +0 -0
  65. package/site/static/fonts/fontawesome-webfont.eot +0 -0
  66. package/site/static/fonts/fontawesome-webfont.svg +0 -565
  67. package/site/static/fonts/fontawesome-webfont.ttf +0 -0
  68. package/site/static/fonts/fontawesome-webfont.woff +0 -0
  69. package/site/static/fonts/fontawesome-webfont.woff2 +0 -0
  70. package/site/styles/_social-media-buttons.scss +0 -159
@@ -0,0 +1,11 @@
1
+ {{extends "templates/application/application.jet"}}
2
+
3
+ {{block head()}}
4
+ {{yield seo(title=i18n("usersubscriptions_page_header"), index=false)}}
5
+ {{end}}
6
+
7
+ {{block body()}}
8
+ <div class="page form-page usersubscriptions-page">
9
+ <s72-usersubscription></s72-usersubscription>
10
+ </div>
11
+ {{end}}
@@ -21,6 +21,8 @@
21
21
  <link rel="manifest" href="/manifest.json">
22
22
  <link rel="preload" href="/{{lang.DefinitionFilePath}}" as="fetch" crossorigin type="application/json">
23
23
  <link rel="preload" href="/classifications.all.json" as="fetch" crossorigin type="application/json">
24
+ <link rel="preload" href="/urlmap.json" as="fetch" crossorigin type="application/json">
25
+
24
26
  <!-- Kibble: {{version}} -->
25
27
  {{if site.SiteConfig.CoreTemplateVersion != ""}}
26
28
  <!-- Core-Template: {{site.SiteConfig.CoreTemplateVersion}} -->
@@ -65,8 +67,6 @@
65
67
  </script>
66
68
 
67
69
  <script type="text/javascript" src="/scripts/swiper.min.js"></script>
68
-
69
- {{yield googleGa4Script()}}
70
70
  </head>
71
71
  <body>
72
72
 
@@ -1,24 +1,19 @@
1
- {{block googleGa4Script(analyticsId=config("google_analytics_id"))}}
2
- {{if hasPrefix(analyticsId,"G")}}
3
- <!-- GA4 script if G tracking code is provided -->
4
- <script async src="https://www.googletagmanager.com/gtag/js?id={{analyticsId}}"></script>
5
- {{end}}
6
- {{end}}
7
-
8
1
  {{block googleScripts(tagManagerId=config("google_tag_manager_id"), analyticsId=config("google_analytics_id"))}}
9
2
  <!-- Google integration scripts -->
10
3
  <script>
11
4
  function loadGoogleTagManager() {
12
- (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
13
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
14
- j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
15
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
16
- })(window,document,'script','dataLayer','{{ tagManagerId }}')
17
- }
5
+ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
6
+ var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';
7
+ j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
8
+ })(window,document,'script','dataLayer','{{ tagManagerId }}')}
18
9
 
19
10
  <!-- GA4 code snippet if G tracking code is provided, else use legacy UA code snippet -->
20
11
  {{if hasPrefix(analyticsId,"G")}}
21
12
  function loadGoogleAnalytics() {
13
+ (function(d, googleId){var f = d.getElementsByTagName('script')[0];var s = d.createElement('script');
14
+ s.src = 'https://www.googletagmanager.com/gtag/js?id=' + googleId;s.async = true;f.parentNode.insertBefore(s,f);
15
+ }(document,'{{analyticsId}}'));
16
+
22
17
  window.dataLayer = window.dataLayer || [];
23
18
  function gtag(){dataLayer.push(arguments);}
24
19
  gtag('js', new Date());
@@ -3,8 +3,8 @@
3
3
  <s72-dropdown class="navbar-nav-user-nav">
4
4
  <div>
5
5
  <a href="#" class="s72-btn s72-dropdown-toggle">
6
- <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="user-icon" width="24" height="24" x="0px" y="0px" viewBox="-241 245 24 24" xml:space="preserve">
7
- <path d="M-231,247c-5.5,0-10,4.5-10,10c0,5.5,4.5,10,10,10s10-4.5,10-10C-221,251.5-225.5,247-231,247 M-224.6,261.8c-1.4-1.7-4.9-2.3-6.4-2.3s-4.9,0.6-6.4,2.3c-1-1.3-1.6-3-1.6-4.8c0-4.4,3.6-8,8-8s8,3.6,8,8C-223,258.8-223.6,260.5-224.6,261.8M-231,251c-1.9,0-3.5,1.6-3.5,3.5s1.6,3.5,3.5,3.5s3.5-1.6,3.5-3.5S-229.1,251-231,251"/>
6
+ <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
7
+ <path d="M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 5C13.66 5 15 6.34 15 8C15 9.66 13.66 11 12 11C10.34 11 9 9.66 9 8C9 6.34 10.34 5 12 5ZM12 19.2C9.5 19.2 7.29 17.92 6 15.98C6.03 13.99 10 12.9 12 12.9C13.99 12.9 17.97 13.99 18 15.98C16.71 17.92 14.5 19.2 12 19.2Z"/>
8
8
  </svg>
9
9
  <s72-username class="username-mobile"></s72-username>
10
10
  </a>
@@ -26,6 +26,11 @@
26
26
  <li>
27
27
  <a class="s72-dropdown-item" href="{{ routeToPath("/devices.html") }}">{{i18n("nav_devices")}}</a>
28
28
  </li>
29
+ {{if config("account_show_plans") == "true" }}
30
+ <li>
31
+ <a class="s72-dropdown-item" href="{{ routeToPath("/subscriptions.html") }}">{{i18n("nav_subscriptions")}}</a>
32
+ </li>
33
+ {{ end }}
29
34
  <li>
30
35
  <a class="s72-dropdown-item" href="{{ routeToPath("/account.html") }}">{{i18n("nav_account")}}</a>
31
36
  </li>
@@ -1,5 +1,6 @@
1
1
  {{import "../items/tagline.jet"}}
2
2
  {{import "../common/awards/carousel.jet"}}
3
+ {{import "../common/sponsor-image.jet"}}
3
4
 
4
5
  {{block carouselItem(item)}}
5
6
  {{ trailer := "" }}
@@ -19,6 +20,9 @@
19
20
 
20
21
  {{if !isset(item["PageType"]) || item.PageType != "external"}}
21
22
  <div class="carousel-item-caption">
23
+ {{if item.ItemType == "film"}}
24
+ {{yield sponsor(hideLink="true") item.InnerItem}}
25
+ {{end}}
22
26
  <div class="meta-item-content">
23
27
  <h3>{{item.GetTitle(i18n)}}
24
28
  {{if isset(item.InnerItem["ReleaseDate"]) && item.InnerItem.ReleaseDate.Year() > 1}}
@@ -28,7 +32,7 @@
28
32
  <div class="meta-item-tagline-and-classification">
29
33
  {{yield metaItemTagline() item.InnerItem}}
30
34
  </div>
31
-
35
+ <s72-availability-label data-slug="{{item.Slug}}"></s72-availability-label>
32
36
  <div class="meta-item-buttons">
33
37
  <s72-play-button data-slug="{{item.Slug}}"></s72-play-button>
34
38
  <s72-pricing-buttons data-slug="{{item.Slug}}"></s72-pricing-buttons>
@@ -49,8 +53,6 @@
49
53
  </div>
50
54
  </div>
51
55
 
52
- <s72-availability-label data-slug="{{item.Slug}}"></s72-availability-label>
53
-
54
56
  <div class="meta-item-synopsis">
55
57
  <p>{{item.InnerItem.Tagline | stripHTML}}</p>
56
58
  </div>
@@ -5,43 +5,7 @@
5
5
 
6
6
  {{if show_facebook_share || show_twitter_share || show_linkedin_share || letterboxdID}}
7
7
  <div class="social-media-buttons">
8
- <div class="social-media-buttons-title">
9
- <h2>{{i18n("social_media_buttons_title")}}</h2>
10
- </div>
11
- <div class="social-media-buttons-container">
12
- {{if show_facebook_share}}
13
- <a class="btn btn-social btn-social-facebook" aria-label="{{i18n("wcag_aria_label_facebook")}}" href="https://www.facebook.com/sharer/sharer.php?u={{site.SiteConfig.SiteURL + path | url}}" target="_blank">
14
- <i class="fa fa-facebook" title="Share on Facebook" aria-hidden="true"></i>
15
- </a>
16
- {{end}}
17
-
18
- {{if show_twitter_share}}
19
- <a class="btn btn-social btn-social-twitter" aria-label="{{i18n("wcag_aria_label_twitter")}}" href="https://twitter.com/intent/tweet?text={{title + " " + site.SiteConfig.SiteURL + path | url}}" target="_blank">
20
- <i class="fa fa-twitter" title="Share on Twitter" aria-hidden="true"></i>
21
- </a>
22
- {{end}}
23
-
24
- {{if show_linkedin_share}}
25
- <a class="btn btn-social btn-social-linkedin" aria-label="{{i18n("wcag_aria_label_linkedin")}}" href="https://www.linkedin.com/shareArticle?mini=true&url={{site.SiteConfig.SiteURL + path | url}}&title={{title|url}}" target="_blank">
26
- <i class="fa fa-linkedin" title="Share on LinkedIn" aria-hidden="true"></i>
27
- </a>
28
- {{end}}
29
-
30
- {{if letterboxdID}}
31
- <a class="btn btn-social btn-social-letterboxd" aria-label="{{i18n("wcag_aria_label_letterboxd")}}" href="https://boxd.it/{{letterboxdID}}" target="_blank">
32
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28px" height="28px" viewBox="0 0 334.79999 128" version="1.1">
33
- <title>{{i18n("wcag_aria_label_letterboxd")}}</title>
34
- <g transform="matrix(1.3333333,0,0,-1.3333333,0,128)">
35
- <g transform="scale(0.1)">
36
- <path d="M 857.793,735.43 C 775.559,870.309 630.23,960 464.551,960 207.984,960 0,745.098 0,480 0,214.902 207.984,0 464.551,0 630.23,0 775.559,89.6914 857.793,224.574 812.684,298.559 786.488,386.098 786.488,480 c 0,93.906 26.196,181.441 71.305,255.43"/>
37
- <path d="M 1648.76,728.125 C 1567.38,867.098 1419.72,960 1251.04,960 1085.36,960 940.031,870.309 857.793,735.43 902.902,661.441 929.102,573.906 929.102,480 c 0,-93.902 -26.2,-181.441 -71.309,-255.426 C 940.031,89.6914 1085.36,0 1251.04,0 c 168.68,0 316.34,92.9023 397.72,231.875 -42.4,72.41 -66.82,157.316 -66.82,248.125 0,90.809 24.42,175.719 66.82,248.125"/>
38
- <path d="m 2046.49,960 c -168.68,0 -316.34,-92.902 -397.73,-231.875 42.41,-72.406 66.83,-157.316 66.83,-248.125 0,-90.809 -24.42,-175.715 -66.83,-248.125 C 1730.15,92.9023 1877.81,0 2046.49,0 c 256.56,0 464.55,214.902 464.55,480 0,265.098 -207.99,480 -464.55,480"/>
39
- </g>
40
- </g>
41
- </svg>
42
- </a>
43
- {{end}}
44
- </div>
8
+ <s72-share-modal {{letterboxdID ? "letterboxd=" + letterboxdID : ""}}></s72-share-modal>
45
9
  </div>
46
10
  {{end}}
47
11
  {{end}}
@@ -0,0 +1,18 @@
1
+ {{block sponsor(hideLink)}}
2
+ {{sponsorImage := .ImageMap["Sponsor"]}}
3
+
4
+ {{if isset(sponsorImage)}}
5
+ {{sponsorText := .CustomFields.GetString("sponsor_image_text_film", "")}}
6
+ {{sponsorLink := .CustomFields.GetString("sponsor_image_link_film", "")}}
7
+ {{sponsorLinkIsExternal := .CustomFields.GetBool("sponsor_image_link_external_film", false)}}
8
+
9
+ <div class="sponsor">
10
+ {{if sponsorText}}
11
+ <div>{{sponsorText}}</div>
12
+ {{end}}
13
+ {{if sponsorLink && !hideLink}}<a href="{{sponsorLink}}" {{if sponsorLinkIsExternal}} target="_blank" {{end}}>{{end}}
14
+ <s72-image src="{{sponsorImage}}" alt="{{ i18n("sponsor_image_alt") }}" ></s72-image>
15
+ {{if sponsorLink && !hideLink}}</a>{{end}}
16
+ </div>
17
+ {{end}}
18
+ {{end}}
@@ -7,6 +7,7 @@
7
7
  {{import "../common/list.jet"}}
8
8
  {{import "../common/social-media-buttons.jet"}}
9
9
  {{import "../common/awards/item.jet"}}
10
+ {{import "../common/sponsor-image.jet"}}
10
11
 
11
12
  {{block head()}}
12
13
  {{yield seo() film}}
@@ -18,6 +19,7 @@
18
19
  {{end}}
19
20
 
20
21
  {{block body()}}
22
+
21
23
  <main id="main" class="page page-film meta-detail meta-detail-film">
22
24
  <div class="meta-detail-bg">
23
25
  <div class="right-gradient"></div>
@@ -25,14 +27,16 @@
25
27
  </div>
26
28
  <div class="container">
27
29
  <div class="meta-detail-main">
28
- {{if config("default_image_type") == "portrait"}}
30
+ <div class="poster-wrapper">
31
+ {{if config("default_image_type") == "portrait"}}
32
+ {{yield sponsor() film}}
29
33
  <div class="poster poster-portrait">
30
34
  <s72-availability-status data-slug="{{film.Slug}}"></s72-availability-status>
31
35
  <s72-image src="{{film.ImageMap["Classification"]}}" alt="" class="classification-image">
32
36
  <s72-image src="{{film.ImageMap["Portrait"]}}" alt="{{film.Title}}" class="poster poster-image poster-image-portrait"></s72-image>
33
-
34
37
  </div>
35
- {{end}}
38
+ {{end}}
39
+ </div>
36
40
  <div class="meta-detail-content">
37
41
  <h1>{{ film.Title }}</h1>
38
42
  <div class="meta-detail-tagline-and-classification">
@@ -42,6 +46,7 @@
42
46
  </div>
43
47
 
44
48
  <!-- {{film.CustomFields|json}} -->
49
+ <s72-availability-label data-slug="{{film.Slug}}"></s72-availability-label>
45
50
 
46
51
  <div class="meta-detail-buttons">
47
52
  <s72-play-button data-slug="{{film.Slug}}" data-title="{{film.Title}}"></s72-play-button>
@@ -59,95 +64,97 @@
59
64
  <s72-availability-status data-slug="{{film.Slug}}"></s72-availability-status>
60
65
  <br>
61
66
  {{end}}
62
- <s72-availability-label data-slug="{{film.Slug}}"></s72-availability-label>
63
67
 
64
68
  {{yield awardNominations() film}}
65
- <s72-element-switcher>
66
- {{if isEnabled("element_switcher_enabled")}}
67
- <div class="meta-detail-switcher-tagline">
68
- <p>{{film.Tagline}}</p>
69
- </div>
70
- {{end}}
71
- <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
72
- <div class="meta-detail-synopsis">{{film.Overview | raw}}</div>
73
- <div class="meta-detail-cast">
74
- {{if len(film.Cast) > 0 }}
75
- <h2>{{i18n("meta_detail_cast_title")}}</h2>
76
- {{end}}
77
- <p>
78
- {{range index, member := film.Cast}}
79
- {{ path := "/search.html?q=" + member.Name }}
80
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(film.Cast) - 1}}, {{end}}
81
- {{end}}
82
- </p>
83
- </div>
84
- <div class="meta-detail-crew d-flex">
85
- {{range index, member := film.Crew}}
86
- <div class="crew-member">
87
- <h2>{{member.Job}}</h2>
88
- {{ path := "/search.html?q=" + member.Name }}
89
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>
90
- </div>
91
- {{end}}
92
- </div>
93
- {{if len(film.Languages) > 0 }}
94
- <div class="meta-detail-language">
95
- <h2>{{i18n("meta_detail_languages", len(film.Languages))}}</h2>
96
- <p>{{ film.Languages }}</p>
69
+ <div class="element-switcher-wrapper">
70
+ <s72-element-switcher>
71
+ {{if isEnabled("element_switcher_enabled")}}
72
+ <div class="meta-detail-switcher-tagline">
73
+ <p>{{film.Tagline}}</p>
97
74
  </div>
98
75
  {{end}}
99
- {{allSubtitles := film.GetSubtitles()}}
100
- {{if len(allSubtitles) > 0 }}
101
- {{subtitles := ""}}
102
- {{captions := ""}}
103
- {{if len(film.SubtitleTracks) == 0}}
104
- {{subtitles = allSubtitles}}
105
- {{else}}
106
- {{range subTrack := film.SubtitleTracks}}
107
- {{if len(subTrack) >= 3}}
108
- {{if subTrack[2] == "caption"}}
109
- {{captions = captions ? captions + ", " + subTrack[1] : subTrack[1]}}
110
- {{else}}
111
- {{subtitles = subtitles ? subtitles + ", " + subTrack[1] : subTrack[1]}}
76
+ <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
77
+ <div class="meta-detail-synopsis">{{film.Overview | raw}}</div>
78
+ <div class="meta-detail-info">
79
+ {{if len(film.Cast) > 0 }}
80
+ <div class="meta-detail-cast">
81
+ <h2>{{i18n("meta_detail_cast_title")}}</h2>
82
+ <p>
83
+ {{range index, member := film.Cast}}
84
+ {{ path := "/search.html?q=" + member.Name }}
85
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(film.Cast) - 1}}, {{end}}
86
+ {{end}}
87
+ </p>
88
+ </div>
89
+ {{end}}
90
+ {{range index, member := film.Crew}}
91
+ <div class="meta-detail-crew">
92
+ <h2>{{member.Job}}</h2>
93
+ {{ path := "/search.html?q=" + member.Name }}
94
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>
95
+ </div>
96
+ {{end}}
97
+ {{if len(film.Languages) > 0 }}
98
+ <div class="meta-detail-language">
99
+ <h2>{{i18n("meta_detail_languages", len(film.Languages))}}</h2>
100
+ <p>{{ film.Languages }}</p>
101
+ </div>
102
+ {{end}}
103
+ {{allSubtitles := film.GetSubtitles()}}
104
+ {{if len(allSubtitles) > 0 }}
105
+ {{subtitles := ""}}
106
+ {{captions := ""}}
107
+ {{if len(film.SubtitleTracks) == 0}}
108
+ {{subtitles = allSubtitles}}
109
+ {{else}}
110
+ {{range subTrack := film.SubtitleTracks}}
111
+ {{if len(subTrack) >= 3}}
112
+ {{if subTrack[2] == "caption"}}
113
+ {{captions = captions ? captions + ", " + subTrack[1] : subTrack[1]}}
114
+ {{else}}
115
+ {{subtitles = subtitles ? subtitles + ", " + subTrack[1] : subTrack[1]}}
116
+ {{end}}
117
+ {{end}}
112
118
  {{end}}
113
119
  {{end}}
120
+ {{if subtitles}}
121
+ <div class="meta-detail-subtitle">
122
+ <h2>{{i18n("meta_detail_subtitles")}}</h2>
123
+ <p>{{subtitles}}</p>
124
+ </div>
125
+ {{end}}
126
+ {{if captions}}
127
+ <div class="meta-detail-subtitle">
128
+ <h2>{{i18n("meta_detail_captions")}}</h2>
129
+ <p>{{captions}}</p>
130
+ </div>
131
+ {{end}}
132
+ {{end}}
133
+ {{if len(film.Countries) > 0 }}
134
+ <div class="meta-detail-country">
135
+ <h2>{{i18n("meta_detail_countries", len(film.Countries))}}</h2>
136
+ <p>{{ film.Countries }}</p>
137
+ </div>
138
+ {{end}}
139
+ {{if len(film.Studio) > 0 }}
140
+ <div class="meta-detail-studio">
141
+ <h2>{{i18n("meta_detail_studios", len(film.Studio))}}</h2>
142
+ {*{ FORMAT STUDIOS }*}
143
+ {{ studios := "" }}
144
+ {{ range studio := film.Studio }}
145
+ {{ studios = studios + studio + ", "}}
146
+ {{ end }}
147
+ {{ if len(studios) > 0 }}
148
+ {{ studios = studios[0:len(studios) - 2] }}
149
+ {{ end }}
150
+ <p>{{ studios }}</p>
151
+ </div>
114
152
  {{end}}
115
- {{end}}
116
- {{if subtitles}}
117
- <div class="meta-detail-subtitle">
118
- <h2>{{i18n("meta_detail_subtitles")}}</h2>
119
- <p>{{subtitles}}</p>
120
- </div>
121
- {{end}}
122
- {{if captions}}
123
- <div class="meta-detail-subtitle">
124
- <h2>{{i18n("meta_detail_captions")}}</h2>
125
- <p>{{captions}}</p>
126
- </div>
127
- {{end}}
128
- {{end}}
129
- {{if len(film.Countries) > 0 }}
130
- <div class="meta-detail-country">
131
- <h2>{{i18n("meta_detail_countries", len(film.Countries))}}</h2>
132
- <p>{{ film.Countries }}</p>
133
- </div>
134
- {{end}}
135
- {{if len(film.Studio) > 0 }}
136
- <div class="meta-detail-studio">
137
- <h2>{{i18n("meta_detail_studios", len(film.Studio))}}</h2>
138
- {*{ FORMAT STUDIOS }*}
139
- {{ studios := "" }}
140
- {{ range studio := film.Studio }}
141
- {{ studios = studios + studio + ", "}}
142
- {{ end }}
143
- {{ if len(studios) > 0 }}
144
- {{ studios = studios[0:len(studios) - 2] }}
145
- {{ end }}
146
- <p>{{ studios }}</p>
147
153
  </div>
148
- {{end}}
149
- </div>
150
- </s72-element-switcher>
154
+ </div>
155
+ </s72-element-switcher>
156
+ {{yield sponsor() film}}
157
+ </div>
151
158
  {{if len(film.Bonuses) > 0 && !film.CustomFields.GetBool("hide_bonus_content", false)}}
152
159
  <section class="meta-detail-bonus-content" aria-label="{{i18n("meta_detail_bonus_title")}}">
153
160
  <h2>{{i18n("meta_detail_bonus_title")}}</h2>
@@ -159,8 +166,7 @@
159
166
  {{end}}
160
167
  {{end}}
161
168
  </section>
162
- </div>
163
- {{end}}
169
+ {{end}}
164
170
  </div>
165
171
  </div>
166
172
  </div>
@@ -34,6 +34,7 @@
34
34
  <div class="meta-detail-tagline">
35
35
  {{yield metaItemTagline() tvseason}}
36
36
  </div>
37
+ <s72-availability-label data-slug="{{tvseason.Slug}}"></s72-availability-label>
37
38
  <div class="meta-detail-buttons">
38
39
  <s72-play-button data-slug="{{tvseason.Slug}}" data-title="{{tvseason.Title}}"></s72-play-button>
39
40
  <s72-pricing-buttons data-slug="{{tvseason.Slug}}" data-title="{{tvseason.Title}}"></s72-pricing-buttons>
@@ -45,27 +46,37 @@
45
46
  {{yield socialMediaButtons(path=currentUrlPath)}}
46
47
  </div>
47
48
  </div>
48
- <s72-availability-label data-slug="{{tvseason.Slug}}"></s72-availability-label>
49
- <div class="meta-detail-synopsis">{{tvseason.Overview | raw}}</div>
50
- <div class="meta-detail-cast">
51
- {{if len(tvseason.Cast) > 0 }}
52
- <h2>{{i18n("meta_detail_cast_title")}}</h2>
53
- {{end}}
54
- <p>
55
- {{range index, member := tvseason.Cast}}
56
- {{ path := "/search.html?q=" + member.Name }}
57
- <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(tvseason.Cast) - 1}}, {{end}}
49
+ <div class="element-switcher-wrapper">
50
+ <s72-element-switcher>
51
+ {{if isEnabled("element_switcher_enabled")}}
52
+ <div class="meta-detail-switcher-tagline">
53
+ <p>{{tvseason.Tagline}}</p>
54
+ </div>
58
55
  {{end}}
59
- </p>
60
- </div>
61
- <div class="meta-detail-crew d-flex">
62
- {{range index, member := tvseason.Crew}}
63
- <div class="crew-member">
64
- <h2>{{member.Job}}</h2>
65
- {{ path := "/search.html?q=" + member.Name }}
66
- <a href="{{ routeToPath(path) }}"">{{member.Name}}</a>
56
+ <div class="{{ isEnabled("element_switcher_enabled") ? "s72-hide" : "" }}"> {* hide class prevents FOUC *}
57
+ <div class="meta-detail-synopsis">{{tvseason.Overview | raw}}</div>
58
+ <div class="meta-detail-info">
59
+ {{if len(tvseason.Cast) > 0 }}
60
+ <div class="meta-detail-cast">
61
+ <h2>{{i18n("meta_detail_cast_title")}}</h2>
62
+ <p>
63
+ {{range index, member := tvseason.Cast}}
64
+ {{ path := "/search.html?q=" + member.Name }}
65
+ <a href="{{ routeToPath(path) }}">{{member.Name}}</a>{{if index < len(tvseason.Cast) - 1}}, {{end}}
66
+ {{end}}
67
+ </p>
68
+ </div>
69
+ {{end}}
70
+ {{range index, member := tvseason.Crew}}
71
+ <div class="meta-detail-crew">
72
+ <h2>{{member.Job}}</h2>
73
+ {{ path := "/search.html?q=" + member.Name }}
74
+ <a href="{{ routeToPath(path) }}"">{{member.Name}}</a>
75
+ </div>
76
+ {{end}}
77
+ </div>
67
78
  </div>
68
- {{end}}
79
+ </s72-element-switcher>
69
80
  </div>
70
81
 
71
82
  {{if len(tvseason.Episodes) > 0}}
@@ -95,8 +106,6 @@
95
106
  {{end}}
96
107
  </div>
97
108
  </div>
98
- </div>
99
- </div>
100
109
  </div>
101
110
  {{if len(tvseason.Recommendations) > 0 }}
102
111
  <section class="page-collection recommendations-collection" aria-label="{{i18n("meta_detail_recommendations_title")}}">
@@ -137,16 +137,16 @@
137
137
  "other": "Paylaş"
138
138
  },
139
139
  "social_media_buttons_facebook": {
140
- "other": "Facebook'ta Paylaş"
140
+ "other": "Facebook"
141
141
  },
142
142
  "social_media_buttons_twitter": {
143
- "other": "Twitter'da paylaş"
143
+ "other": "Twitter"
144
144
  },
145
145
  "social_media_buttons_linkedin": {
146
- "other": "Linkedin'de paylaş"
146
+ "other": "Linkedin"
147
147
  },
148
148
  "social_media_buttons_email": {
149
- "other": "E-mail ile paylaş"
149
+ "other": "E-posta"
150
150
  },
151
151
  "social_media_buttons_email_subject": {
152
152
  "other": "Bağlantı paylaşımı"
@@ -155,7 +155,7 @@
155
155
  "other": "Link kopyalandı!"
156
156
  },
157
157
  "social_media_buttons_copy_link": {
158
- "other": "Panoya kopyala"
158
+ "other": "Bağlantıyı kopyala"
159
159
  },
160
160
  "accept_invite_page_header": {
161
161
  "other": "Hoşgeldiniz "
@@ -929,7 +929,7 @@
929
929
  "other": "Aboneliği iptal et?"
930
930
  },
931
931
  "usersubscriptions_unsubscribe_modal_body": {
932
- "other": "Bu, aboneliği iptal edecektir.{{.Name}} plan.Yine de plandaki içeriği sona erene kadar izleyebileceksiniz. {{.Expiry}}."
932
+ "other": "Bu, {{.Name}} aboneliğini iptal eder. {{.Expiry}} sona erene kadar içeriği izlemeye devam edebileceksiniz."
933
933
  },
934
934
  "shopping_card_update_reason_none": {
935
935
  "other": "Kredi kartınızı güncelleyin.Desteklenen kartlar Visa, MasterCard ve American Express'dir."
@@ -1057,7 +1057,7 @@
1057
1057
  "other": "VEYA"
1058
1058
  },
1059
1059
  "page_plan_explore_link": {
1060
- "other": "Diğer geçişleri keşfedin"
1060
+ "other": "Daha fazlasını keşfedin"
1061
1061
  },
1062
1062
  "plan_showcase_page_ownership_button_buy": {
1063
1063
  "other": "Şimdi al"
@@ -1246,9 +1246,63 @@
1246
1246
  "other": "Tamam"
1247
1247
  },
1248
1248
  "meta_description_expand": {
1249
- "other": "Daha fazla göster"
1249
+ "other": "Daha fazla gör"
1250
1250
  },
1251
1251
  "meta_description_collapse": {
1252
- "other": "Daha az göster"
1252
+ "other": "Daha az gör"
1253
+ },
1254
+ "usersubscriptions_page_header": {
1255
+ "other": "Abonelikler ve Faturalandırma"
1256
+ },
1257
+ "usersubscriptions_page_content": {
1258
+ "other": " "
1259
+ },
1260
+ "usersubscriptions_payment_section_title": {
1261
+ "other": "Ödeme şekli"
1262
+ },
1263
+ "usersubscriptions_payment_section_content": {
1264
+ "other": "Kredi kartı ödeme yönteminizde yapacağınız değişiklikler bir sonraki faturalandırma döngünüzde geçerli olacaktır."
1265
+ },
1266
+ "usersubscriptions_subscriptions_section_title": {
1267
+ "other": "Abonelik Ayrıntıları"
1268
+ },
1269
+ "usersubscriptions_subscriptions_section_content": {
1270
+ "other": " "
1271
+ },
1272
+ "usersubscriptions_subscription_status_active": {
1273
+ "other": "Aktif"
1274
+ },
1275
+ "usersubscriptions_subscription_expired": {
1276
+ "other": "Günü geçmiş"
1277
+ },
1278
+ "usersubscriptions_no_subscriptions_section_title": {
1279
+ "other": "Abonelikleri Keşfedin"
1280
+ },
1281
+ "usersubscriptions_no_subscriptions_content": {
1282
+ "other": "Burada kolayca yönetilen harika içerikleri harika fiyatlarla keşfedin."
1283
+ },
1284
+ "usersubscriptions_no_subscriptions_button_title": {
1285
+ "other": "Abonelikleri keşfedin"
1286
+ },
1287
+ "nav_subscriptions": {
1288
+ "other": "aboneliklerim"
1289
+ },
1290
+ "usersubscriptions_subscription_expiry_trialing": {
1291
+ "other": "İlk ödeme {{ .Expiry }}"
1292
+ },
1293
+ "usersubscriptions_subscription_expiry_active": {
1294
+ "other": "Sonraki {{ .Expiry }}"
1295
+ },
1296
+ "usersubscriptions_subscription_expiry_past_due": {
1297
+ "other": "Ödeme vadesi {{ .Expiry }}"
1298
+ },
1299
+ "usersubscriptions_subscription_expiry_cancelled": {
1300
+ "other": "Sona {{ .Expiry }}"
1301
+ },
1302
+ "usersubscriptions_subscription_expiry_expired": {
1303
+ "other": "Sona {{ .Expiry }}"
1304
+ },
1305
+ "sponsor_image_alt": {
1306
+ "other": "sponsor logosu"
1253
1307
  }
1254
- }
1308
+ }