replaceLinkFragments.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. This script will aid the process of inserting HTML fragments into all the
  3. locales.
  4. We are migrating from
  5. locale: 'PRE __keyLinkOpen__INNER__keyLinkClose__ POST'
  6. pug: translate(localeKey, { keyLinkOpen: '<a ...>', keyLinkClose: '</a>' })
  7. to
  8. locale: 'PRE <0>INNER</0> POST'
  9. pug: translate(localeKey, {}, [{ name: 'a', attrs: { href: '...', ... }}])
  10. MAPPING entries:
  11. localeKey: ['keyLinkOpen', 'keyLinkClose']
  12. faq_pay_by_invoice_answer: ['payByInvoiceLinkOpen', 'payByInvoiceLinkClose']
  13. */
  14. import TransformLocales from './transformLocales.js'
  15. import { fileURLToPath } from 'url'
  16. const MAPPING = {
  17. also_provides_free_plan: ['registerLinkOpen', 'registerLinkClose'],
  18. faq_pay_by_invoice_answer: ['payByInvoiceLinkOpen', 'payByInvoiceLinkClose'],
  19. }
  20. function transformLocale(locale, [open, close]) {
  21. const i18nOpen = `__${open}__`
  22. const i18nClose = `__${close}__`
  23. if (locale.includes(i18nOpen)) {
  24. locale = locale.replace(i18nOpen, '<0>').replace(i18nClose, '</0>')
  25. }
  26. return locale
  27. }
  28. function main() {
  29. TransformLocales.transformLocales(MAPPING, transformLocale)
  30. }
  31. if (
  32. fileURLToPath(import.meta.url).replace(/\.js$/, '') ===
  33. process.argv[1].replace(/\.js$/, '')
  34. ) {
  35. main()
  36. }