PageSourceSearch

https://hmc1food.org/js/translation-utils.js?1790326946

js hmc1food.org collected 2026-10-07 21:49:45 UTC 2,111 bytes, 81 lines download raw bytes

1/**
2 * Translation utility Functions for cookie management and language dropdown handling
3 */
4
5const SUPPORTED_LANGUAGES = ['en', 'es', 'hy', 'zh', 'fr', 'ko', 'pt', 'ru', 'vi'];
6const MS_IN_HOUR = 3600000; // milliseconds in a HOUR
7const ISITE_TRANSLATE_LANG = 'isite-translate-lang';
8
9function setCookie(name, value, hours) {
10  let expires = '';
11  if (!hours || hours < 1) return;
12
13  let date = new Date();
14  date.setTime(date.getTime() + hours * MS_IN_HOUR);
15  expires = '; expires=' + date.toUTCString();
16  document.cookie = name + '=' + (value || '') + expires + '; path=/; SameSite=Lax; Secure';
17}
18
19function getCookie(name) {
20  const value = `; ${document.cookie}`;
21  const parts = value.split(`; ${name}=`);
22  if (parts.length === 2)
23    return parts
24      .pop()
25      .split(';')
26      .shift();
27  return null;
28}
29
30function deleteCookie(name) {
31  document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/';
32}
33
34function resetLanguage() {
35  const currentLanguage = getCookie(ISITE_TRANSLATE_LANG);
36  if (!currentLanguage) return;
37
38  deleteCookie(ISITE_TRANSLATE_LANG);
39
40  let $languageSelect = $('#language-select');
41  $languageSelect.val('');
42
43  $('#translation-dlg').modal('hide');
44  setTimeout(function() {
45    window.location.reload();
46  }, 300);
47}
48
49function updateDropdownFromCookie() {
50  let savedLanguage = getCookie(ISITE_TRANSLATE_LANG);
51
52  let $languageSelect = $('#language-select');
53  if (savedLanguage && SUPPORTED_LANGUAGES.includes(savedLanguage)) {
54    $languageSelect.val(savedLanguage);
55  } else {
56    $languageSelect.val('');
57  }
58}
59
60// Function to handle language change
61function handleLanguageChange() {
62  let $languageSelect = $('#language-select');
63  let selectedLanguage = $languageSelect.val();
64
65  setCookie(ISITE_TRANSLATE_LANG, selectedLanguage, 1);
66
67  $('#translation-dlg').modal('hide');
68
69  // Reload page
70  setTimeout(function() {
71    window.location.reload();
72  }, 300);
73}
74
75function initializeLanguageDropdown() {
76  $(document).on('change.languageSwitcher', '#language-select', function() {
77    handleLanguageChange();
78  });
79
80  updateDropdownFromCookie();
81}

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.