@shift72/core-template 1.2.0 → 1.4.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 (63) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/kibble.json +3 -3
  3. package/package.json +2 -2
  4. package/scripts/core-template-version.js +4 -4
  5. package/scripts/css-local-get.js +12 -5
  6. package/scripts/css-local-put.js +3 -3
  7. package/scripts/language-file-validator.js +1 -1
  8. package/scripts/translate.mjs +2 -3
  9. package/site/ar_LB.all.json +124 -10
  10. package/site/ca_ES.all.json +78 -8
  11. package/site/da_DK.all.json +80 -10
  12. package/site/de_DE.all.json +78 -8
  13. package/site/el_EL.all.json +83 -4
  14. package/site/en_AU.all.json +83 -4
  15. package/site/es_ES.all.json +87 -4
  16. package/site/es_MX.all.json +89 -6
  17. package/site/et_ET.all.json +77 -7
  18. package/site/fi_FI.all.json +81 -2
  19. package/site/fr_FR.all.json +88 -5
  20. package/site/hr_HR.all.json +93 -9
  21. package/site/hu_HU.all.json +77 -7
  22. package/site/it_IT.all.json +87 -4
  23. package/site/ja_JP.all.json +71 -0
  24. package/site/lt_LT.all.json +104 -3
  25. package/site/manifest.json.jet +4 -2
  26. package/site/nl_BE.all.json +79 -0
  27. package/site/no_NO.all.json +84 -5
  28. package/site/pl_PL.all.json +104 -3
  29. package/site/plans.html.jet +12 -2
  30. package/site/pt_BR.all.json +87 -4
  31. package/site/pt_PT.all.json +86 -3
  32. package/site/ru_RU.all.json +105 -4
  33. package/site/search.html.jet +3 -1
  34. package/site/sr_SR.all.json +93 -3
  35. package/site/static/js/main.js +1 -0
  36. package/site/static/scripts/main.js.map +1 -1
  37. package/site/styles/_awards.scss +1 -0
  38. package/site/styles/_buttons.scss +20 -10
  39. package/site/styles/_carousel.scss +7 -3
  40. package/site/styles/_cookie-consent.scss +1 -0
  41. package/site/styles/_footer.scss +10 -31
  42. package/site/styles/_forms.scss +11 -0
  43. package/site/styles/_icons.scss +1 -0
  44. package/site/styles/_meta-detail.scss +27 -28
  45. package/site/styles/_mixins.scss +23 -1
  46. package/site/styles/_nav.scss +49 -65
  47. package/site/styles/_share-modal.scss +12 -7
  48. package/site/styles/_shopping.scss +5 -0
  49. package/site/styles/_typography.scss +72 -14
  50. package/site/styles/_variables.scss +93 -46
  51. package/site/subscriptions.html.jet +1 -1
  52. package/site/templates/application/application.jet +10 -12
  53. package/site/templates/application/brand/logo.jet +11 -0
  54. package/site/templates/application/brand/sponsors.jet +11 -0
  55. package/site/templates/application/footer/brand.jet +3 -1
  56. package/site/templates/application/footer/sponsor-banner.jet +3 -3
  57. package/site/templates/application/head/seo.jet +1 -1
  58. package/site/templates/application/nav/nav.jet +5 -4
  59. package/site/templates/collection/carousel/carousel.jet +4 -1
  60. package/site/templates/collection/carousel/item.jet +3 -1
  61. package/site/tr_TR.all.json +83 -4
  62. package/site/uk_UA.all.json +105 -4
  63. package/site/zh_TW.all.json +73 -2
package/CHANGELOG.md CHANGED
@@ -1,6 +1,43 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased](https://github.com/shift72/core-template/compare/1.2.0...HEAD)
3
+ ## [Unreleased](https://github.com/shift72/core-template/compare/1.4.0...HEAD)
4
+
5
+ ## [1.4.0](https://github.com/shift72/core-template/compare/1.3.0...1.4.0)
6
+
7
+ ### Added
8
+ - Add new variables to change the font sizes and letter spacing of headings, subtitles, body text, etc.
9
+ - Add translations for intervals without counts
10
+ - New keys for translations that were used by Relish and Core-template removing their overlapping usage
11
+ - Add translation for `shopping_error_card_not_supported`, `shopping_error_processing_error` and `shopping_error_invalid_session_token`
12
+ - Added support for self-service CSS and brand images.
13
+ - Added support for carousel_play_speed and carousel_fade_time configs.
14
+ - Added support to toggle on cloudsearch via Meta > cloudsearch feature toggle.
15
+
16
+ ## Changed
17
+ - Moved the carousel availability label above the CTA's.
18
+ - The site url in kibble.json now points to [tvoddemo.shift72.com](https://tvoddemo.shift72.com).
19
+ - Full width background image and gradient on meta detail pages
20
+ - Various links and buttons now use new colour variables.
21
+ - Translations refer to "CVC" rather than "CVV" at payment stage
22
+
23
+ ### Fixed
24
+ - Broken share modal styles.
25
+ - Fixed translation for plan frequency in plans.html
26
+ - Added Intl to polyfill to catch iOS devices.
27
+ - Film detail page element switcher uses grid instead of flex with gap.
28
+
29
+ ## [1.3.0](https://github.com/shift72/core-template/compare/1.3.0-alpha...1.3.0)
30
+
31
+ No changes from `alpha-0`.
32
+
33
+ ## [1.3.0-alpha.0](https://github.com/shift72/core-template/compare/1.2.0...1.3.0-alpha.0)
34
+
35
+ ### Added
36
+ - Add translations for subscription recurrence on purchase CTA.
37
+ - Add translations for more friendlier stripe & error messages. (`stripe_card_not_supported`, `something_bad_happened`).
38
+
39
+ ### Fixed
40
+ - Spinner not rotating.
4
41
 
5
42
  ## [1.2.0](https://github.com/shift72/core-template/compare/1.2.0-alpha.0...1.2.0)
6
43
 
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.2.0"
188
+ "coreTemplateVersion": "1.4.0"
189
189
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shift72/core-template",
3
- "version": "1.2.0",
3
+ "version": "1.4.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": "الخطط المتاحة"
@@ -1348,7 +1352,117 @@
1348
1352
  "pricing_ownership_promo": {
1349
1353
  "other": "يسترد"
1350
1354
  },
1355
+ "subscription_cta_label": {
1356
+ "other": "{{.Recurrence}}/الإشتراك {{.Price}}"
1357
+ },
1358
+ "subscription_recurrence_year": {
1359
+ "zero": "سنة",
1360
+ "one": "سنة",
1361
+ "two": "{{.Count}} سنوات",
1362
+ "few": "{{.Count}} سنوات",
1363
+ "many": "{{.Count}} سنوات",
1364
+ "other": "{{.Count}} سنوات"
1365
+ },
1366
+ "subscription_recurrence_month": {
1367
+ "zero": "شهر",
1368
+ "one": "شهر",
1369
+ "two": "{{.Count}} شهور",
1370
+ "few": "{{.Count}} شهور",
1371
+ "many": "{{.Count}} شهور",
1372
+ "other": "{{.Count}} شهور"
1373
+ },
1374
+ "subscription_recurrence_week": {
1375
+ "zero": "أسبوع",
1376
+ "one": "أسبوع",
1377
+ "two": "{{.Count}} أسابيع",
1378
+ "few": "{{.Count}} أسابيع",
1379
+ "many": "{{.Count}} أسابيع",
1380
+ "other": "{{.Count}} أسابيع"
1381
+ },
1382
+ "subscription_recurrence_day": {
1383
+ "zero": "يوم",
1384
+ "one": "{{.Count}} يوم",
1385
+ "two": "{{.Count}} أيام",
1386
+ "few": "{{.Count}} أيام",
1387
+ "many": "{{.Count}} أيام",
1388
+ "other": "{{.Count}} أيام"
1389
+ },
1351
1390
  "shopping_info_ownership_subscription": {
1352
1391
  "other": "الاشتراك"
1392
+ },
1393
+ "something_bad_happened": {
1394
+ "other": "حاول مرة اخرى"
1395
+ },
1396
+ "stripe_card_not_supported": {
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": "انتهت جلسة التسوق ، يرجى المحاولة مرة أخرى."
1353
1467
  }
1354
1468
  }
@@ -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"
@@ -1340,7 +1340,77 @@
1340
1340
  "pricing_ownership_promo": {
1341
1341
  "other": "Redimir"
1342
1342
  },
1343
+ "subscription_cta_label": {
1344
+ "other": "Subscriu-te {{.Price}}/{{.Recurrence}}"
1345
+ },
1346
+ "subscription_recurrence_year": {
1347
+ "one": "Curs",
1348
+ "other": "{{.Count}} Anys"
1349
+ },
1350
+ "subscription_recurrence_month": {
1351
+ "one": "Mes",
1352
+ "other": "{{.Count}} Mesos"
1353
+ },
1354
+ "subscription_recurrence_week": {
1355
+ "one": "Setmana",
1356
+ "other": "{{.Count}} Setmanes"
1357
+ },
1358
+ "subscription_recurrence_day": {
1359
+ "one": "Dia",
1360
+ "other": "{{.Count}} Dies"
1361
+ },
1343
1362
  "shopping_info_ownership_subscription": {
1344
1363
  "other": "Subscripció"
1364
+ },
1365
+ "something_bad_happened": {
1366
+ "other": "Siusplau torna-ho a provar"
1367
+ },
1368
+ "stripe_card_not_supported": {
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."
1345
1415
  }
1346
1416
  }
@@ -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"
@@ -1340,7 +1340,77 @@
1340
1340
  "pricing_ownership_promo": {
1341
1341
  "other": "Indløs"
1342
1342
  },
1343
+ "subscription_cta_label": {
1344
+ "other": "Abonner {{.Price}}/{{.Recurrence}}"
1345
+ },
1346
+ "subscription_recurrence_year": {
1347
+ "one": "År",
1348
+ "other": "{{.Count}} Flere år"
1349
+ },
1350
+ "subscription_recurrence_month": {
1351
+ "one": "Måned",
1352
+ "other": "{{.Count}} Måneder"
1353
+ },
1354
+ "subscription_recurrence_week": {
1355
+ "one": "Uge",
1356
+ "other": "{{.Count}} Uger"
1357
+ },
1358
+ "subscription_recurrence_day": {
1359
+ "one": "Dag",
1360
+ "other": "{{.Count}} Dage"
1361
+ },
1343
1362
  "shopping_info_ownership_subscription": {
1344
1363
  "other": "Abonnement"
1364
+ },
1365
+ "something_bad_happened": {
1366
+ "other": "Prøv igen"
1367
+ },
1368
+ "stripe_card_not_supported": {
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."
1345
1415
  }
1346
1416
  }