@shift72/core-template 1.3.0-alpha.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. package/.github/pull_request_template.md +1 -1
  2. package/CHANGELOG.md +41 -1
  3. package/kibble.json +3 -3
  4. package/package.json +2 -2
  5. package/scripts/core-template-version.js +4 -4
  6. package/scripts/css-local-get.js +12 -5
  7. package/scripts/css-local-put.js +3 -3
  8. package/scripts/language-file-validator.js +1 -1
  9. package/scripts/translate.mjs +2 -3
  10. package/site/ar_LB.all.json +104 -10
  11. package/site/ca_ES.all.json +74 -8
  12. package/site/da_DK.all.json +76 -10
  13. package/site/de_DE.all.json +74 -8
  14. package/site/el_EL.all.json +79 -4
  15. package/site/en_AU.all.json +79 -4
  16. package/site/es_ES.all.json +79 -4
  17. package/site/es_MX.all.json +81 -6
  18. package/site/et_ET.all.json +73 -7
  19. package/site/fi_FI.all.json +77 -2
  20. package/site/fr_FR.all.json +80 -5
  21. package/site/hr_HR.all.json +85 -9
  22. package/site/hu_HU.all.json +73 -7
  23. package/site/it_IT.all.json +79 -4
  24. package/site/ja_JP.all.json +71 -0
  25. package/site/lt_LT.all.json +92 -3
  26. package/site/manifest.json.jet +4 -2
  27. package/site/nl_BE.all.json +75 -0
  28. package/site/no_NO.all.json +80 -5
  29. package/site/pl_PL.all.json +92 -3
  30. package/site/plans.html.jet +12 -2
  31. package/site/pt_BR.all.json +80 -5
  32. package/site/pt_PT.all.json +78 -3
  33. package/site/ru_RU.all.json +93 -4
  34. package/site/search.html.jet +3 -1
  35. package/site/sr_SR.all.json +85 -3
  36. package/site/static/js/main.js +1 -0
  37. package/site/static/scripts/main.js.map +1 -1
  38. package/site/styles/_availability-tags.scss +1 -1
  39. package/site/styles/_awards.scss +2 -1
  40. package/site/styles/_buttons.scss +20 -10
  41. package/site/styles/_carousel.scss +7 -3
  42. package/site/styles/_cookie-consent.scss +1 -0
  43. package/site/styles/_footer.scss +10 -31
  44. package/site/styles/_forms.scss +11 -0
  45. package/site/styles/_meta-detail.scss +27 -32
  46. package/site/styles/_meta-item-tagline.scss +1 -1
  47. package/site/styles/_mixins.scss +23 -1
  48. package/site/styles/_nav.scss +49 -65
  49. package/site/styles/_share-modal.scss +12 -7
  50. package/site/styles/_shopping.scss +5 -0
  51. package/site/styles/_typography.scss +30 -22
  52. package/site/styles/_variables.scss +93 -46
  53. package/site/subscriptions.html.jet +1 -1
  54. package/site/templates/application/application.jet +13 -13
  55. package/site/templates/application/brand/logo.jet +11 -0
  56. package/site/templates/application/brand/sponsors.jet +11 -0
  57. package/site/templates/application/footer/brand.jet +3 -1
  58. package/site/templates/application/footer/sponsor-banner.jet +3 -3
  59. package/site/templates/application/head/seo.jet +1 -1
  60. package/site/templates/application/nav/nav.jet +5 -4
  61. package/site/templates/collection/carousel/carousel.jet +4 -1
  62. package/site/templates/collection/carousel/item.jet +3 -1
  63. package/site/templates/tv/detail.jet +4 -2
  64. package/site/tr_TR.all.json +79 -4
  65. package/site/uk_UA.all.json +93 -4
  66. package/site/zh_TW.all.json +73 -2
@@ -1,4 +1,4 @@
1
- ADO card: ☑️ [AB#XXXX](https://dev.azure.com/S72/SHIFT72/_workitems/edit/XXXX)
1
+ ADO card: ☑️ AB#XXXX
2
2
 
3
3
  Elab notes/AC: 📃 [Google Docs](https://docs.google.com)
4
4
  - [ ] Has this been discussed with Delivery Team?
package/CHANGELOG.md CHANGED
@@ -1,6 +1,46 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased](https://github.com/shift72/core-template/compare/1.3.0-alpha.0...HEAD)
3
+ ## [Unreleased](https://github.com/shift72/core-template/compare/1.5.0...HEAD)
4
+
5
+ ## [1.5.0](https://github.com/shift72/core-template/compare/1.4.0...1.5.0)
6
+
7
+ ### Added
8
+ - Translations for discount errors
9
+
10
+ ## Changed
11
+ - Spacing between components AB#9013
12
+
13
+ ### Fixed
14
+ - Default language now gets set either by site record or kibble.json depending on if DB translations are enabled AB#9675
15
+ - Fixed incorrect Portuguese translation for shopping success
16
+
17
+ ## [1.4.0](https://github.com/shift72/core-template/compare/1.3.0...1.4.0)
18
+
19
+ ### Added
20
+ - Add new variables to change the font sizes and letter spacing of headings, subtitles, body text, etc.
21
+ - Add translations for intervals without counts
22
+ - New keys for translations that were used by Relish and Core-template removing their overlapping usage
23
+ - Add translation for `shopping_error_card_not_supported`, `shopping_error_processing_error` and `shopping_error_invalid_session_token`
24
+ - Added support for self-service CSS and brand images.
25
+ - Added support for carousel_play_speed and carousel_fade_time configs.
26
+ - Added support to toggle on cloudsearch via Meta > cloudsearch feature toggle.
27
+
28
+ ## Changed
29
+ - Moved the carousel availability label above the CTA's.
30
+ - The site url in kibble.json now points to [tvoddemo.shift72.com](https://tvoddemo.shift72.com).
31
+ - Full width background image and gradient on meta detail pages
32
+ - Various links and buttons now use new colour variables.
33
+ - Translations refer to "CVC" rather than "CVV" at payment stage
34
+
35
+ ### Fixed
36
+ - Broken share modal styles.
37
+ - Fixed translation for plan frequency in plans.html
38
+ - Added Intl to polyfill to catch iOS devices.
39
+ - Film detail page element switcher uses grid instead of flex with gap.
40
+
41
+ ## [1.3.0](https://github.com/shift72/core-template/compare/1.3.0-alpha...1.3.0)
42
+
43
+ No changes from `alpha-0`.
4
44
 
5
45
  ## [1.3.0-alpha.0](https://github.com/shift72/core-template/compare/1.2.0...1.3.0-alpha.0)
6
46
 
package/kibble.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "core-template",
3
3
  "version": "0.0.1",
4
- "siteUrl": "https://abccinemas.screenplus.co",
5
- "builderVersion": "0.16.7",
4
+ "siteUrl": "https://tvoddemo.shift72.com",
5
+ "builderVersion": "0.17.0",
6
6
  "defaultLanguage": "en",
7
7
  "languages": {
8
8
  "ar": {
@@ -185,5 +185,5 @@
185
185
  "pageSize": 0
186
186
  }
187
187
  ],
188
- "coreTemplateVersion": "1.3.0-alpha.0"
188
+ "coreTemplateVersion": "1.5.0"
189
189
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shift72/core-template",
3
- "version": "1.3.0-alpha.0",
3
+ "version": "1.5.0",
4
4
  "description": "Shift72 core template",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -52,7 +52,7 @@
52
52
  "postcss-cli": "^9.0.1",
53
53
  "rollup": "^2.23.0",
54
54
  "rollup-plugin-terser": "^6.1.0",
55
- "s72-kibble": "^0.16.7",
55
+ "s72-kibble": "^0.17.0",
56
56
  "sass": "^1.36.0"
57
57
  },
58
58
  "devDependencies": {
@@ -4,13 +4,13 @@ let version, kibbleJSON;
4
4
 
5
5
  try {
6
6
  version = JSON.parse(fs.readFileSync('package.json'))['version'];
7
- } catch(e) {
7
+ } catch (e) {
8
8
  exitWithError(`Failed to parse package.json: ${e}`);
9
9
  }
10
10
 
11
11
  try {
12
12
  kibbleJSON = JSON.parse(fs.readFileSync('kibble.json'));
13
- } catch(e) {
13
+ } catch (e) {
14
14
  exitWithError(`Failed to parse kibble.json: ${e}`);
15
15
  }
16
16
 
@@ -18,7 +18,7 @@ kibbleJSON['coreTemplateVersion'] = version;
18
18
 
19
19
  try {
20
20
  fs.writeFileSync('kibble.json', JSON.stringify(kibbleJSON, null, 2));
21
- } catch(e) {
21
+ } catch (e) {
22
22
  exitWithError(`Failed to write kibble.json: ${e}`);
23
23
  }
24
24
 
@@ -27,4 +27,4 @@ console.log(`Core-Template Version ${version} written to kibble.json`);
27
27
  function exitWithError(message) {
28
28
  console.error(message);
29
29
  process.exit();
30
- }
30
+ }
@@ -4,7 +4,7 @@ const fs = require('fs');
4
4
  const siteUrl = readJsonValueFromRawData('siteUrl', fs.readFileSync('kibble.json'));
5
5
  const file = fs.createWriteStream('site/static/styles/local.css');
6
6
 
7
- https.get(`${siteUrl}/services/users/v1/css`, handleFilenameResponse).on('error', handleError);
7
+ https.get(`${siteUrl}/services/users/v1/site_brand`, handleCSSResponse).on('error', handleError);
8
8
 
9
9
  ///////////////////////////////////////////////////////////////////////////////////////////////
10
10
 
@@ -13,12 +13,19 @@ function readJsonValueFromRawData(key, rawJson) {
13
13
  return json[key];
14
14
  }
15
15
 
16
- function handleFilenameResponse(res) {
16
+ function handleCSSResponse(res) {
17
17
  res.on('data', d => {
18
- const filename = readJsonValueFromRawData('css_filename', d);
18
+ const links = readJsonValueFromRawData('links', d);
19
+ let cssFileLocation;
19
20
 
20
- if (filename) {
21
- https.get(`${siteUrl}/styles/${filename}`, handleFileResponse).on('error', handleError);
21
+ links.forEach(link => {
22
+ if (link['type'] === 'css') {
23
+ cssFileLocation = link['url'];
24
+ }
25
+ });
26
+
27
+ if (cssFileLocation) {
28
+ https.get(cssFileLocation, handleFileResponse).on('error', handleError);
22
29
  } else {
23
30
  console.log('Custom CSS not found');
24
31
  }
@@ -17,8 +17,8 @@ rl.question(`Enter Username for ${siteUrl}: `, username => {
17
17
  .then(authToken => {
18
18
  return uploadCSS(authToken);
19
19
  })
20
- .then(filename => {
21
- console.log(`CSS file upload success: https://${url.hostname}/styles/${filename}`);
20
+ .then(filePath => {
21
+ console.log(`CSS file upload success: https://${url.hostname}/styles${filePath}`);
22
22
  })
23
23
  .catch(handleError);
24
24
  });
@@ -57,7 +57,7 @@ function uploadCSS(authToken) {
57
57
  }
58
58
 
59
59
  res.on('data', d => {
60
- let filename = readJsonValueFromRawData('css_filename', d);
60
+ let filename = readJsonValueFromRawData('css_path', d);
61
61
  return resolve(filename);
62
62
  });
63
63
  });
@@ -112,7 +112,7 @@ function testValueNotKey(translation, key) {
112
112
  assert.ok(translation['few'] != key);
113
113
  assert.ok(translation['many'] != key);
114
114
  assert.ok(translation['other'] != key);
115
- } catch(e) {
115
+ } catch (e) {
116
116
  console.error(`${key} - key is value.`);
117
117
  errors.push(e);
118
118
  }
@@ -6,7 +6,7 @@ const value = process.argv[3];
6
6
  const nestedKey = process.argv[4];
7
7
 
8
8
  if (!key || !value) {
9
- console.log('Should be \'npm run translate key value\'');
9
+ console.log("Should be 'npm run translate key value'");
10
10
  process.exit(1);
11
11
  }
12
12
  glob('./site/*.json', {}, (err, files) => {
@@ -41,11 +41,10 @@ glob('./site/*.json', {}, (err, files) => {
41
41
  .then(translated => {
42
42
  if (translated) {
43
43
  let translatedValue = '';
44
- translated[0].forEach(each => translatedValue += each[0]);
44
+ translated[0].forEach(each => (translatedValue += each[0]));
45
45
  writeTranslationFile(translatedValue);
46
46
  }
47
47
  });
48
48
  }
49
-
50
49
  });
51
50
  });
@@ -602,10 +602,10 @@
602
602
  "other": "حدث خطأ"
603
603
  },
604
604
  "shopping_error_incorrect_cvc": {
605
- "other": "الرجاء إدخال رمز CVV صالح."
605
+ "other": "الرجاء إدخال رمز CVC صالح."
606
606
  },
607
607
  "shopping_error_invalid_cvc": {
608
- "other": "الرجاء إدخال رمز CVV صالح."
608
+ "other": "الرجاء إدخال رمز CVC صالح."
609
609
  },
610
610
  "shopping_error_incorrect_number": {
611
611
  "other": "الرجاء إدخال رقم بطاقة ائتمان صالحة."
@@ -682,6 +682,9 @@
682
682
  "shopping_error_payment_intent_authentication_failure": {
683
683
  "other": "تم رفض بطاقة الائتمان. الرجاء المحاولة مرة اخرى."
684
684
  },
685
+ "shopping_error_card_not_supported": {
686
+ "other": "بطاقتك غير مدعومة."
687
+ },
685
688
  "shopping_complete_rental": {
686
689
  "other": "نجاح!"
687
690
  },
@@ -986,13 +989,10 @@
986
989
  "other": "تنتهي {{.Expiry}}"
987
990
  },
988
991
  "usersubscriptions_subscription_status_cancelled": {
989
- "other": "usersubscriptions_subscription_status_cancelled"
990
- },
991
- "usersubscriptions_subscription_status_errored": {
992
- "other": "usersubscriptions_subscription_status_errored"
992
+ "other": "ألغيت"
993
993
  },
994
994
  "usersubscriptions_subscription_status_past_due": {
995
- "other": "usersubscriptions_subscription_status_past_due"
995
+ "other": "فات موعد الاستحقاق"
996
996
  },
997
997
  "usersubscriptions_subscription_status_trialing": {
998
998
  "other": "فترة النسخة التجريبية"
@@ -1160,7 +1160,7 @@
1160
1160
  "other": "سعر"
1161
1161
  },
1162
1162
  "shopping_price_plan_note": {
1163
- "zero": "اتهم كل {{.Interval}} .",
1163
+ "zero": "اتهم كل {{.Interval}}.",
1164
1164
  "one": "يتم تحصيل الرسوم كل {{.Interval}} بعد انتهاء الفترة التجريبية المجانية لمدة 24 ساعة.",
1165
1165
  "two": "يتم تحصيل الرسوم كل {{.Interval}} بعد انتهاء الفترة التجريبية المجانية التي تبلغ مدتها {{.Count}} يومًا.",
1166
1166
  "few": "يتم تحصيل الرسوم كل {{.Interval}} بعد انتهاء الفترة التجريبية المجانية التي تبلغ مدتها {{.Count}} يومًا.",
@@ -1168,7 +1168,7 @@
1168
1168
  "other": "يتم تحصيل الرسوم كل {{.Interval}} بعد انتهاء الفترة التجريبية المجانية التي تبلغ مدتها {{.Count}} يومًا."
1169
1169
  },
1170
1170
  "shopping_price_plan_note_without_trial": {
1171
- "other": "اتهم كل {{.Interval}} ."
1171
+ "other": "اتهم كل {{.Interval}}."
1172
1172
  },
1173
1173
  "shopping_price_plan_note_interval": {
1174
1174
  "zero": "{{.Interval}}",
@@ -1201,8 +1201,12 @@
1201
1201
  "other": "يجدد تلقائيا كل {{.Count}} {{.Interval}}"
1202
1202
  },
1203
1203
  "shopping_info_trial_period_offer": {
1204
+ "zero": "جرب الإصدار التجريبي المجاني لمدة 24 ساعة الآن!",
1204
1205
  "one": "جرب الإصدار التجريبي المجاني لمدة 24 ساعة الآن!",
1205
- "other": "{{.Count}} التجريبي المجاني من {{.Count}} day!"
1206
+ "two": "جرب الإصدار التجريبي المجاني لمدة {{.Count}} أيام!",
1207
+ "few": "جرب الإصدار التجريبي المجاني لمدة {{.Count}} أيام!",
1208
+ "many": "جرب الإصدار التجريبي المجاني لمدة {{.Count}} أيام!",
1209
+ "other": "جرب الإصدار التجريبي المجاني لمدة {{.Count}} أيام!"
1206
1210
  },
1207
1211
  "plans_page_header": {
1208
1212
  "other": "الخطط المتاحة"
@@ -1391,5 +1395,95 @@
1391
1395
  },
1392
1396
  "stripe_card_not_supported": {
1393
1397
  "other": "بطاقتك غير مدعومة."
1398
+ },
1399
+ "nav_search_control_placeholder": {
1400
+ "other": "البحث"
1401
+ },
1402
+ "nav_search_control_sr_submit": {
1403
+ "other": "تأكيد البحث"
1404
+ },
1405
+ "shopping_info_plan_interval": {
1406
+ "zero": "يجدد تلقائيا كل. {{.Interval}}",
1407
+ "one": "يجدد تلقائيا كل. {{.Interval}}",
1408
+ "two": "يجدد تلقائيا كل {{.Count}} {{.Interval}}",
1409
+ "few": "يجدد تلقائيا كل {{.Count}} {{.Interval}}",
1410
+ "many": "يجدد تلقائيا كل {{.Count}} {{.Interval}}",
1411
+ "other": "يجدد تلقائيا كل {{.Count}} {{.Interval}}"
1412
+ },
1413
+ "shopping_info_trial_period": {
1414
+ "zero": "جرب الإصدار التجريبي المجاني لمدة 24 ساعة الآن!",
1415
+ "one": "جرب الإصدار التجريبي المجاني لمدة 24 ساعة الآن!",
1416
+ "two": "جرب الإصدار التجريبي المجاني لمدة {{.Count}} أيام!",
1417
+ "few": "جرب الإصدار التجريبي المجاني لمدة {{.Count}} أيام!",
1418
+ "many": "جرب الإصدار التجريبي المجاني لمدة {{.Count}} أيام!",
1419
+ "other": "جرب الإصدار التجريبي المجاني لمدة {{.Count}} أيام!"
1420
+ },
1421
+ "usersubscriptions_page_header_seo": {
1422
+ "other": "الاشتراكات والفواتير"
1423
+ },
1424
+ "usersubscriptions_subscription_status_unpaid": {
1425
+ "other": "غير مدفوعة"
1426
+ },
1427
+ "usersubscriptions_subscription_status_cancelling": {
1428
+ "other": "الإلغاء"
1429
+ },
1430
+ "interval_day": {
1431
+ "zero": "أيام",
1432
+ "one": "يوم",
1433
+ "two": "أيام",
1434
+ "few": "أيام",
1435
+ "many": "أيام",
1436
+ "other": "أيام"
1437
+ },
1438
+ "interval_week": {
1439
+ "zero": "أسابيع",
1440
+ "one": "أسبوع",
1441
+ "two": "أسابيع",
1442
+ "few": "أسابيع",
1443
+ "many": "أسابيع",
1444
+ "other": "أسابيع"
1445
+ },
1446
+ "interval_month": {
1447
+ "zero": "الشهور",
1448
+ "one": "شهر",
1449
+ "two": "الشهور",
1450
+ "few": "الشهور",
1451
+ "many": "الشهور",
1452
+ "other": "الشهور"
1453
+ },
1454
+ "interval_year": {
1455
+ "zero": "سنوات",
1456
+ "one": "عام",
1457
+ "two": "سنوات",
1458
+ "few": "سنوات",
1459
+ "many": "سنوات",
1460
+ "other": "سنوات"
1461
+ },
1462
+ "shopping_error_processing_error": {
1463
+ "other": "حدث خطأ أثناء معالجة بطاقتك. حاول مرة أخرى لاحقًا أو باستخدام طريقة دفع مختلفة."
1464
+ },
1465
+ "shopping_error_invalid_session_token": {
1466
+ "other": "انتهت جلسة التسوق ، يرجى المحاولة مرة أخرى."
1467
+ },
1468
+ "shopping_error_credit_discounts_not_allowed": {
1469
+ "other": "لا يمكنك استخدام الرمز الترويجي لهذا الشراء أو الاستئجار"
1470
+ },
1471
+ "shopping_error_discount_coming_soon": {
1472
+ "other": "هذا الرمز الترويجي غير صالح حتى الآن"
1473
+ },
1474
+ "shopping_error_discount_not_allowed_on_free_session": {
1475
+ "other": "لا يمكن تطبيق الرموز الترويجية على جلسات التسوق المجانية"
1476
+ },
1477
+ "shopping_error_discount_not_allowed_on_processing_session": {
1478
+ "other": "لا يمكن تطبيق الرموز الترويجية بعد اكتمال عملية الشراء"
1479
+ },
1480
+ "shopping_error_discount_redemption_failed": {
1481
+ "other": "لا يمكن تطبيق الرمز الترويجي ، يرجى المحاولة مرة أخرى"
1482
+ },
1483
+ "shopping_error_invalid_code": {
1484
+ "other": "الرمز الترويجي غير صالح"
1485
+ },
1486
+ "shopping_error_missing_code": {
1487
+ "other": "لم يتم تقديم رمز ترويجي"
1394
1488
  }
1395
1489
  }
@@ -605,10 +605,10 @@
605
605
  "other": "Va ocórrer un error"
606
606
  },
607
607
  "shopping_error_incorrect_cvc": {
608
- "other": "Introduïu un CVV vàlid."
608
+ "other": "Introduïu un CVC vàlid."
609
609
  },
610
610
  "shopping_error_invalid_cvc": {
611
- "other": "Introduïu un CVV vàlid."
611
+ "other": "Introduïu un CVC vàlid."
612
612
  },
613
613
  "shopping_error_incorrect_number": {
614
614
  "other": "Si us plau, introduïu un número de targeta de crèdit vàlid."
@@ -685,6 +685,9 @@
685
685
  "shopping_error_payment_intent_authentication_failure": {
686
686
  "other": "S'ha rebutjat la targeta de crèdit. Siusplau torna-ho a provar."
687
687
  },
688
+ "shopping_error_card_not_supported": {
689
+ "other": "La teva targeta no és compatible."
690
+ },
688
691
  "shopping_complete_rental": {
689
692
  "other": "Èxit!"
690
693
  },
@@ -992,13 +995,10 @@
992
995
  "other": "Caduca {{.Expiry}}"
993
996
  },
994
997
  "usersubscriptions_subscription_status_cancelled": {
995
- "other": "usersubscriptions_subscription_status_cancelled"
996
- },
997
- "usersubscriptions_subscription_status_errored": {
998
- "other": "usersubscriptions_subscription_status_errored"
998
+ "other": "Cancel·lat"
999
999
  },
1000
1000
  "usersubscriptions_subscription_status_past_due": {
1001
- "other": "usersubscriptions_subscription_status_past_due"
1001
+ "other": "Vençuda"
1002
1002
  },
1003
1003
  "usersubscriptions_subscription_status_trialing": {
1004
1004
  "other": "Període de prova"
@@ -1206,7 +1206,7 @@
1206
1206
  },
1207
1207
  "shopping_info_trial_period_offer": {
1208
1208
  "one": "Prova la teva prova gratuïta de 24 hores ara!",
1209
- "other": "Prova la teva prova gratuïta de {{.Count}} day!"
1209
+ "other": "Prova la teva prova gratuïta de {{.Count}} dies!"
1210
1210
  },
1211
1211
  "plans_page_header": {
1212
1212
  "other": "Plans disponibles"
@@ -1367,5 +1367,71 @@
1367
1367
  },
1368
1368
  "stripe_card_not_supported": {
1369
1369
  "other": "La teva targeta no és compatible."
1370
+ },
1371
+ "nav_search_control_placeholder": {
1372
+ "other": "Cerca"
1373
+ },
1374
+ "nav_search_control_sr_submit": {
1375
+ "other": "Envia la cerca"
1376
+ },
1377
+ "shopping_info_plan_interval": {
1378
+ "one": "Renova automàticament cada {{.Interval}}",
1379
+ "other": "Renova automàticament cada {{.Count}} {{.Interval}}"
1380
+ },
1381
+ "shopping_info_trial_period": {
1382
+ "one": "Prova la teva prova gratuïta de 24 hores ara!",
1383
+ "other": "Prova la teva prova gratuïta de {{.Count}} dies!"
1384
+ },
1385
+ "usersubscriptions_page_header_seo": {
1386
+ "other": "Subscripcions i facturació"
1387
+ },
1388
+ "usersubscriptions_subscription_status_unpaid": {
1389
+ "other": "Sense pagar"
1390
+ },
1391
+ "usersubscriptions_subscription_status_cancelling": {
1392
+ "other": "S'està cancel·lant"
1393
+ },
1394
+ "interval_day": {
1395
+ "one": "dia",
1396
+ "other": "dies"
1397
+ },
1398
+ "interval_week": {
1399
+ "one": "setmana",
1400
+ "other": "setmanes"
1401
+ },
1402
+ "interval_month": {
1403
+ "one": "mes",
1404
+ "other": "mesos"
1405
+ },
1406
+ "interval_year": {
1407
+ "one": "curs",
1408
+ "other": "anys"
1409
+ },
1410
+ "shopping_error_processing_error": {
1411
+ "other": "S'ha produït un error en processar la vostra targeta. Torna-ho a provar més tard o amb una altra forma de pagament."
1412
+ },
1413
+ "shopping_error_invalid_session_token": {
1414
+ "other": "La sessió de compres ha caducat, torna-ho a provar."
1415
+ },
1416
+ "shopping_error_credit_discounts_not_allowed": {
1417
+ "other": "No podeu utilitzar un codi promocional per a aquesta compra o lloguer"
1418
+ },
1419
+ "shopping_error_discount_coming_soon": {
1420
+ "other": "Aquest codi promocional encara no és vàlid"
1421
+ },
1422
+ "shopping_error_discount_not_allowed_on_free_session": {
1423
+ "other": "Els codis promocionals no es poden aplicar a les sessions de compres gratuïtes"
1424
+ },
1425
+ "shopping_error_discount_not_allowed_on_processing_session": {
1426
+ "other": "Els codis promocionals no es poden aplicar un cop s'ha completat la compra"
1427
+ },
1428
+ "shopping_error_discount_redemption_failed": {
1429
+ "other": "No s'ha pogut aplicar el codi promocional, torna-ho a provar"
1430
+ },
1431
+ "shopping_error_invalid_code": {
1432
+ "other": "Codi promocional no vàlid"
1433
+ },
1434
+ "shopping_error_missing_code": {
1435
+ "other": "No s'ha proporcionat cap codi promocional"
1370
1436
  }
1371
1437
  }
@@ -602,10 +602,10 @@
602
602
  "other": "Der er sket en fejl"
603
603
  },
604
604
  "shopping_error_incorrect_cvc": {
605
- "other": "Indtast venligst et gyldigt CVV."
605
+ "other": "Indtast venligst et gyldigt CVC."
606
606
  },
607
607
  "shopping_error_invalid_cvc": {
608
- "other": "Indtast venligst et gyldigt CVV."
608
+ "other": "Indtast venligst et gyldigt CVC."
609
609
  },
610
610
  "shopping_error_incorrect_number": {
611
611
  "other": "Indtast venligst et gyldigt kreditkortnummer"
@@ -682,6 +682,9 @@
682
682
  "shopping_error_payment_intent_authentication_failure": {
683
683
  "other": "Kreditkortet er afvist. Prøv venligst igen."
684
684
  },
685
+ "shopping_error_card_not_supported": {
686
+ "other": "Dit kort er ikke understøttet."
687
+ },
685
688
  "shopping_complete_rental": {
686
689
  "other": "Succes!"
687
690
  },
@@ -947,7 +950,7 @@
947
950
  "other": "Opdater dit kreditkort. Understøttede kort er Visa, Mastercard og American Express."
948
951
  },
949
952
  "shopping_card_new_subscription": {
950
- "other": "This card will saved and be charged regularly"
953
+ "other": "Dette kort vil blive opbevaret og opkrævet regelmæssigt"
951
954
  },
952
955
  "shopping_card_change": {
953
956
  "other": "Kreditkort ikke korrekt? <a href=\"{{.SubscriptionsURL}}\">Klik her for at opdatere dit kort.</a>"
@@ -974,13 +977,10 @@
974
977
  "other": "Udløber {{.Expiry}}"
975
978
  },
976
979
  "usersubscriptions_subscription_status_cancelled": {
977
- "other": "usersubscriptions_subscription_status_cancelled"
978
- },
979
- "usersubscriptions_subscription_status_errored": {
980
- "other": "usersubscriptions_subscription_status_errored"
980
+ "other": "Annulleret"
981
981
  },
982
982
  "usersubscriptions_subscription_status_past_due": {
983
- "other": "usersubscriptions_subscription_status_past_due"
983
+ "other": "Ikke betalt til tiden"
984
984
  },
985
985
  "usersubscriptions_subscription_status_trialing": {
986
986
  "other": "Prøveperiode"
@@ -1104,7 +1104,7 @@
1104
1104
  "other": "Opkræves hvert {{.Interval}} efter din {{.Count}} dages gratis prøveperiode slutter."
1105
1105
  },
1106
1106
  "shopping_price_plan_note_without_trial": {
1107
- "other": "Opkræves hvert {{.Interval}} ."
1107
+ "other": "Opkræves hvert {{.Interval}}."
1108
1108
  },
1109
1109
  "shopping_price_plan_note_interval": {
1110
1110
  "one": "{{.Interval}}",
@@ -1131,7 +1131,7 @@
1131
1131
  },
1132
1132
  "shopping_info_trial_period_offer": {
1133
1133
  "one": "Prøv din gratis 24 timers prøveperiode nu!",
1134
- "other": "Prøv din gratis {{.Count}} day prøveperiode!"
1134
+ "other": "Prøv din {{.Count}} dages gratis prøveperiode!"
1135
1135
  },
1136
1136
  "plans_page_header": {
1137
1137
  "other": "Tilgængelige planer"
@@ -1367,5 +1367,71 @@
1367
1367
  },
1368
1368
  "stripe_card_not_supported": {
1369
1369
  "other": "Dit kort er ikke understøttet."
1370
+ },
1371
+ "nav_search_control_placeholder": {
1372
+ "other": "Søg"
1373
+ },
1374
+ "nav_search_control_sr_submit": {
1375
+ "other": "Søg nu"
1376
+ },
1377
+ "shopping_info_plan_interval": {
1378
+ "one": "Fornyer automatisk hver {{.Interval}}",
1379
+ "other": "{{.Count}} automatisk hver {{.Interval}}"
1380
+ },
1381
+ "shopping_info_trial_period": {
1382
+ "one": "Prøv din gratis 24 timers prøveperiode nu!",
1383
+ "other": "Prøv din {{.Count}} dages gratis prøveperiode!"
1384
+ },
1385
+ "usersubscriptions_page_header_seo": {
1386
+ "other": "Abonnementer og fakturering"
1387
+ },
1388
+ "usersubscriptions_subscription_status_unpaid": {
1389
+ "other": "Ubetalt"
1390
+ },
1391
+ "usersubscriptions_subscription_status_cancelling": {
1392
+ "other": "Annullerer"
1393
+ },
1394
+ "interval_day": {
1395
+ "one": "dag",
1396
+ "other": "dage"
1397
+ },
1398
+ "interval_week": {
1399
+ "one": "uge",
1400
+ "other": "uger"
1401
+ },
1402
+ "interval_month": {
1403
+ "one": "måned",
1404
+ "other": "måneder"
1405
+ },
1406
+ "interval_year": {
1407
+ "one": "år",
1408
+ "other": "flere år"
1409
+ },
1410
+ "shopping_error_processing_error": {
1411
+ "other": "Der opstod en fejl under behandlingen af dit kort. Prøv igen senere eller med en anden betalingsmetode."
1412
+ },
1413
+ "shopping_error_invalid_session_token": {
1414
+ "other": "Shopping-sessionen er udløbet, prøv venligst igen."
1415
+ },
1416
+ "shopping_error_credit_discounts_not_allowed": {
1417
+ "other": "Du kan ikke bruge en kampagnekode til dette køb eller leje"
1418
+ },
1419
+ "shopping_error_discount_coming_soon": {
1420
+ "other": "Denne kampagnekode er ikke gyldig endnu"
1421
+ },
1422
+ "shopping_error_discount_not_allowed_on_free_session": {
1423
+ "other": "Kampagnekoder kan ikke anvendes til gratis shoppingsessioner"
1424
+ },
1425
+ "shopping_error_discount_not_allowed_on_processing_session": {
1426
+ "other": "Kampagnekoder kan ikke anvendes, når købet er gennemført"
1427
+ },
1428
+ "shopping_error_discount_redemption_failed": {
1429
+ "other": "Kampagnekoden kunne ikke anvendes. Prøv venligst igen"
1430
+ },
1431
+ "shopping_error_invalid_code": {
1432
+ "other": "Ugyldig kampagnekode"
1433
+ },
1434
+ "shopping_error_missing_code": {
1435
+ "other": "Der blev ikke angivet nogen kampagnekode"
1370
1436
  }
1371
1437
  }