PageSourceSearch

https://www.nfb.ca/jsi18n/

js nfb.ca collected 2026-09-24 08:33:31 UTC 16,287 bytes, 315 lines download raw bytes

1
2'use strict';
3{
4  const globals = this;
5  const django = globals.django || (globals.django = {});
6
7  
8  django.pluralidx = function(n) {
9    const v = n != 1;
10    if (typeof v === 'boolean') {
11      return v ? 1 : 0;
12    } else {
13      return v;
14    }
15  };
16  
17
18  /* gettext library */
19
20  django.catalog = django.catalog || {};
21  
22  const newcatalog = {
23    "&": "&",
24    "/collection/{slug}/": "/collection/{slug}/",
25    "/directors/{slug}/": "/directors/{slug}/",
26    "/film/{parentSlug}/{streamType}/{slug}/embed/player/": "/film/{parentSlug}/{streamType}/{slug}/embed/player/",
27    "/film/{slug}/": "/film/{slug}/",
28    "/film/{slug}/embed/player/": "/film/{slug}/embed/player/",
29    "/indigenous-cinema/subjects/{slug}/": "/indigenous-cinema/subjects/{slug}/",
30    "/indigenous-cinema/subjects/{slug}/{secondarySlug}": "/indigenous-cinema/subjects/{slug}/{secondarySlug}",
31    "/playlist/{slug}/": "/playlist/{slug}/",
32    "/series/{slug}/": "/series/{slug}/",
33    "/subjects/{parentSubject}/": "/subjects/{parentSubject}/",
34    "/subjects/{parentSubject}/{childSubject}/": "/subjects/{parentSubject}/{childSubject}/",
35    "Add to My List": "Add to My List",
36    "Age range\u0004%(min)s+": "%(min)s+",
37    "Age range\u0004%(min)s-%(max)s years": "%(min)s-%(max)s years",
38    "Age range\u0004Under %(max)s years": "Under %(max)s years",
39    "Available to buy": "Available to buy",
40    "Available to rent": "Available to rent",
41    "Available to rent or buy": "Available to rent or buy",
42    "Cancel": "Cancel",
43    "Coming soon date\u0004Coming": "Coming",
44    "Coming soon date\u0004Coming Soon": "Coming Soon",
45    "Coming soon date\u0004Coming in": "Coming",
46    "Continue watching GTM list_name\u0004Continue Watching": "Continue Watching",
47    "Continue watching carousel\u0004Continue watching": "Continue Watching",
48    "Continue watching empty list message\u0004You have no films in progress.": "You have no films in progress.",
49    "Educational subject filters\u0004Clear": "Clear",
50    "Educational subject filters\u0004years old": "years old",
51    "Educational subject list GTM nfb_list_id\u0004subject": "subject",
52    "Educational subject list GTM nfb_list_name\u0004Subject": "Subject",
53    "Expires": "Expires",
54    "Explore by title\u0004Load More": "Load More",
55    "Explore by title filters\u0004Availability": "Availability",
56    "Explore by title filters\u0004CC": "CC",
57    "Explore by title filters\u0004Clear filters": "Clear filters",
58    "Explore by title filters\u0004Closed captioned for the hearing impaired": "Closed captioned for the hearing impaired",
59    "Explore by title filters\u0004DV": "DV",
60    "Explore by title filters\u0004Described video for the visually impaired": "Described video for the visually impaired",
61    "Explore by title filters\u0004Genre": "Genre",
62    "Explore by title filters\u0004Language": "All languages",
63    "Explore by title filters\u0004Only show films suitable for the general public": "Exclude films with violence, sexuality, nudity, offensive language or mature subject content.",
64    "Explore by title filters\u0004Order by": "Order by",
65    "Explore by title filters\u0004Safe search": "Hide Sensitive Content",
66    "Explore by title filters\u0004min.": "min.",
67    "Explore by title header\u0004Explore all films": "Explore all films",
68    "Explore subject hub\u0004An error occurred while fetching the subjects.<br/>Please try again or <a href=\"%s\">contact us</a> if the error persists.": "An error occurred while fetching the subjects.<br/>Please try again or <a href=\"%s\">contact us</a> if the error persists.",
69    "For series page url\u0004collection": "collection",
70    "For series page url\u0004season": "season",
71    "Guide card\u0004Collection": "Collection",
72    "Guide card\u0004Film": "Film",
73    "Guide card\u0004Series": "Series",
74    "Guide card hover\u0004Quick Start": "Quick Start",
75    "Guide card hover\u0004Watch Now": "Watch Now",
76    "Guide card preview\u0004Pairs with:": "Pairs with:",
77    "Helper to format collections info\u0004editions": "editions",
78    "Helper to format collections info\u0004films": "films",
79    "Helper to format series info\u0004episodes": "episodes",
80    "Helper to format series info\u0004seasons": "seasons",
81    "Indigenous banner\u0004Discover the NFB\u2019s rich online collection of Indigenous-made films.": "Discover the NFB\u2019s rich online collection of Indigenous-made films.",
82    "Indigenous banner\u0004Indigenous Cinema": "Indigenous Cinema",
83    "Indigenous banner\u0004Watch": "Watch",
84    "Indigenous cinema filters\u0004Clear": "Clear",
85    "Indigenous cinema filters\u0004Order By": "Order By",
86    "Language filter\u0004All languages": "All languages",
87    "Language filter\u0004English": "English",
88    "Language filter\u0004French": "French",
89    "Leaving soon": "Leaving soon",
90    "Less": "Less",
91    "More": "More",
92    "More films by": "More films by",
93    "More info": "More info",
94    "My list carousel title\u0004My list": "My List",
95    "NFB": "NFB",
96    "NFB Add to my list\u0004Title Added to My List": "Title added to My List",
97    "NFB Add to my list\u0004Title removed from My List": "Title removed from My List",
98    "NFB Legend Icon\u0004Audio Description": "Audio Description",
99    "NFB Legend Icon\u0004Closed Caption": "Closed Caption",
100    "NFB Like\u0004Like": "Like",
101    "NFB Like\u0004Like button. Click this button to inform us that you like this title.": "Like button. Click this button to inform us that you like this title.",
102    "NFB Like\u0004Liked": "Liked",
103    "NFB Like\u0004Title liked": "Title liked",
104    "NFB Like\u0004Title unliked": "Title unliked",
105    "NFB Like\u0004You\u2019ve liked this title. To undo your evaluation, click the button again.": "You\u2019ve liked this title. To undo your evaluation, click the button again.",
106    "New release": "New",
107    "Newsletter banner\u0004Adding [email protected] to your email address book will ensure reliable delivery.": "Adding [email protected] to your email address book will ensure reliable delivery.",
108    "Newsletter banner\u0004By clicking Subscribe, you're confirming that you agree with our <button %(button_attribute)s>Terms and Conditions</button>.": "By clicking Subscribe, you're confirming that you agree with our <button %(button_attribute)s>Terms</button>.",
109    "Newsletter banner\u0004Enter your email": "Enter your email",
110    "Newsletter banner\u0004Get the best of Canadian documentary and animation in your inbox every week.": "Get the best of Canadian documentary and animation in your inbox.",
111    "Newsletter banner\u0004One last step...": "One last step...",
112    "Newsletter banner\u0004Please enter a valid email address.": "Please enter a valid email address.",
113    "Newsletter banner\u0004Please enter a value.": "Please enter a value.",
114    "Newsletter banner\u0004Stay inspired. Stream stories that matter.": "Stay inspired. Stream stories that matter.",
115    "Newsletter banner\u0004Subscribe": "Subscribe",
116    "Newsletter banner\u0004You will soon receive an email from us. Please confirm your email address and your subcription by clicking the confirmation link.": "You will soon receive an email from us. Please confirm your email address and your subscription by clicking the confirmation link.",
117    "No result found error message\u0004It\u2019s possible that the film you\u2019re searching for is not on NFB.ca.": "It\u2019s possible that the film you\u2019re searching for is not on NFB.ca.",
118    "No result found error message\u0004Not all films from our collection are available online.": "Not all films from our collection are available online.",
119    "No result found error message\u0004Please check to make sure you checked off the correct filters at the top of the page.": "Please check to make sure you checked off the correct filters at the top of the page.",
120    "No result found error message\u0004Please consult the <a href=\"%s\">complete NFB Collection.</a>": "Please consult the <a href=\"%s\">complete NFB Collection</a>.",
121    "No result found error message\u0004Sorry, none of our films matched your search criteria.": "Sorry, none of our films matched your search criteria.",
122    "No result found error message\u0004Try a more general search.": "Try a more general search.",
123    "Not available to view in your current location.": "Not available to view in your current location.",
124    "Ok": "Ok",
125    "Order by filter\u0004Alphabetical order": "Alphabetical order",
126    "Order by filter\u0004Production date": "Production date",
127    "Quick Start Guide list GTM nfb_detail\u0004quick start guide": "quick start guide",
128    "Quick Start Guide list GTM nfb_list_name\u0004quick start guides": "quick start guides",
129    "Quick Start Guides Theme\u0004Diversity and Inclusion": "Diversity and Inclusion",
130    "Quick Start Guides Theme\u0004Environment and Sustainability": "Environment and Sustainability",
131    "Quick Start Guides Theme\u0004Indigenous Voices and Reconciliation": "Indigenous Voices and Reconciliation",
132    "Quick Start Guides Theme\u0004Wellbeing and Mental Health": "Wellbeing and Mental Health",
133    "Recommandations carousel\u0004Suggestions": "Suggestions",
134    "Remove from My List": "Remove from My List",
135    "Rentals": "Rentals",
136    "See more": "More",
137    "See next": "See next",
138    "See previous": "See previous",
139    "Share %s by email": "Share %s by email",
140    "Share %s on Facebook": "Share %s on Facebook",
141    "Share %s on X": "Share %s on X",
142    "Share modal\u0004Pasted to clipboard!": "Pasted to clipboard!",
143    "Share modal\u0004copy": "copy",
144    "Share modal title\u0004Share": "Share",
145    "Signup Popup\u0004Enhance your NFB experience": "Enhance your NFB experience",
146    "Signup popup\u0004Continue watching on any device": "Continue watching on any device",
147    "Signup popup\u0004Create my free account": "Create my free account",
148    "Signup popup\u0004Create your watchlist and access it anywhere": "Create your watchlist and access it anywhere",
149    "Signup popup\u0004Get smart suggestions": "Get smart suggestions",
150    "Signup popup\u0004I already have an account.": "I already have an account.",
151    "Signup popup\u0004Sign in": "Sign in",
152    "Skip This List": "Skip this list",
153    "Sorry this content is not available to view in your current location.": "Sorry this content is not available to view in your current location.",
154    "This content is no longer available.": "This content is no longer available.",
155    "This content is not currently available.": "This content is not currently available.",
156    "Trailer": "Trailer",
157    "User Profile\u0004Load More": "More",
158    "User Profile GTM\u0004History": "History",
159    "User recommendations carousel\u0004Recommended for you": "Chosen For You",
160    "User similar taste carousel\u0004Top picks by film buffs with similar taste": "Top Picks from Like-Minded Users",
161    "Watch button\u0004Continue watching": "Continue Watching",
162    "Watch button\u0004Watch again": "Watch again",
163    "Watch button\u0004Watch now": "Watch now",
164    "by": "by",
165    "editions": "editions",
166    "episodes": "episodes",
167    "error\u0004An error occurred while processing your request": "An error occurred while processing your request.",
168    "error\u0004No result found": "No result found.",
169    "films": "films",
170    "https://collection.nfb.ca/": "https://collection.nfb.ca/",
171    "https://help.nfb.ca/contact-the-nfb/": "https://help.nfb.ca/contact-the-nfb/",
172    "indigenous-cinema\u0004/indigenous-cinema/subjects/": "/indigenous-cinema/subjects/",
173    "indigenous-cinema\u0004All nations/people": "All nations/peoples",
174    "indigenous-cinema\u0004Indigenous Subjects ": "Indigenous Subjects ",
175    "nfb survey\u000418-24": "18-24",
176    "nfb survey\u000425-34": "25-34",
177    "nfb survey\u000435-44": "35-44",
178    "nfb survey\u000445-54": "45-54",
179    "nfb survey\u000455-64": "55-64",
180    "nfb survey\u000465+": "65+",
181    "nfb survey\u0004One question to serve you better.": "One question to serve you better:",
182    "nfb survey\u0004Stay part of what we make. <a href=\"%s\">Subscribe to our newsletter.</a>": "Stay part of what we make. <a href=\"%s\">Subscribe to our newsletter.</a>",
183    "nfb survey\u0004Submit": "Submit",
184    "nfb survey\u0004Thank you for helping us improve.": "Thank you for helping us improve.",
185    "nfb survey\u0004Under 18": "Under 18",
186    "nfb survey\u0004What is your age group?": "What is your age group?",
187    "nfb survey\u0004https://www.nfb.ca/newsletters/": "https://www.nfb.ca/newsletters/",
188    "on": "on",
189    "seasons": "seasons",
190    "viewing history\u0004Are you sure you want to remove it ?": "Are you sure you want to delete this item?",
191    "viewing history\u0004Remove": "Delete",
192    "viewing history\u0004Remove from history": "Delete from history",
193    "viewing history\u0004will no longer appear on the NFB platform as a title you have watched and will no longer be used to make recommendations to you.": "will no longer appear in your watch history and will no longer be used to generate new recommendations to you.",
194    "work header description\u0004more": "more"
195  };
196  for (const key in newcatalog) {
197    django.catalog[key] = newcatalog[key];
198  }
199  
200
201  if (!django.jsi18n_initialized) {
202    django.gettext = function(msgid) {
203      const value = django.catalog[msgid];
204      if (typeof value === 'undefined') {
205        return msgid;
206      } else {
207        return (typeof value === 'string') ? value : value[0];
208      }
209    };
210
211    django.ngettext = function(singular, plural, count) {
212      const value = django.catalog[singular];
213      if (typeof value === 'undefined') {
214        return (count == 1) ? singular : plural;
215      } else {
216        return value.constructor === Array ? value[django.pluralidx(count)] : value;
217      }
218    };
219
220    django.gettext_noop = function(msgid) { return msgid; };
221
222    django.pgettext = function(context, msgid) {
223      let value = django.gettext(context + '\x04' + msgid);
224      if (value.includes('\x04')) {
225        value = msgid;
226      }
227      return value;
228    };
229
230    django.npgettext = function(context, singular, plural, count) {
231      let value = django.ngettext(context + '\x04' + singular, context + '\x04' + plural, count);
232      if (value.includes('\x04')) {
233        value = django.ngettext(singular, plural, count);
234      }
235      return value;
236    };
237
238    django.interpolate = function(fmt, obj, named) {
239      if (named) {
240        return fmt.replace(/%\(\w+\)s/g, function(match){return String(obj[match.slice(2,-2)])});
241      } else {
242        return fmt.replace(/%s/g, function(match){return String(obj.shift())});
243      }
244    };
245
246
247    /* formatting library */
248
249    django.formats = {
250    "DATETIME_FORMAT": "N d Y, H:i",
251    "DATETIME_INPUT_FORMATS": [
252      "%Y-%m-%d %H:%M:%S",
253      "%Y-%m-%d %H:%M:%S.%f",
254      "%Y-%m-%d %H:%M",
255      "%m/%d/%Y %H:%M:%S",
256      "%m/%d/%Y %H:%M:%S.%f",
257      "%m/%d/%Y %H:%M",
258      "%m/%d/%y %H:%M:%S",
259      "%m/%d/%y %H:%M:%S.%f",
260      "%m/%d/%y %H:%M",
261      "%Y-%m-%d"
262    ],
263    "DATE_FORMAT": "N j, Y",
264    "DATE_INPUT_FORMATS": [
265      "%Y-%m-%d",
266      "%m/%d/%Y",
267      "%m/%d/%y",
268      "%b %d %Y",
269      "%b %d, %Y",
270      "%d %b %Y",
271      "%d %b, %Y",
272      "%B %d %Y",
273      "%B %d, %Y",
274      "%d %B %Y",
275      "%d %B, %Y"
276    ],
277    "DECIMAL_SEPARATOR": ".",
278    "FIRST_DAY_OF_WEEK": 0,
279    "MONTH_DAY_FORMAT": "N d",
280    "NUMBER_GROUPING": 3,
281    "SHORT_DATETIME_FORMAT": "m/d/Y P",
282    "SHORT_DATE_FORMAT": "m/d/Y",
283    "THOUSAND_SEPARATOR": ",",
284    "TIME_FORMAT": "P",
285    "TIME_INPUT_FORMATS": [
286      "%H:%M:%S",
287      "%H:%M:%S.%f",
288      "%H:%M"
289    ],
290    "YEAR_MONTH_FORMAT": "F Y"
291  };
292
293    django.get_format = function(format_type) {
294      const value = django.formats[format_type];
295      if (typeof value === 'undefined') {
296        return format_type;
297      } else {
298        return value;
299      }
300    };
301
302    /* add to global namespace */
303    globals.pluralidx = django.pluralidx;
304    globals.gettext = django.gettext;
305    globals.ngettext = django.ngettext;
306    globals.gettext_noop = django.gettext_noop;
307    globals.pgettext = django.pgettext;
308    globals.npgettext = django.npgettext;
309    globals.interpolate = django.interpolate;
310    globals.get_format = django.get_format;
311
312    django.jsi18n_initialized = true;
313  }
314};
315

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.