@shift72/core-template 1.2.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
  }