langsys-js-typescript 0.6.0 → 0.6.2

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.
package/dist/index.mjs CHANGED
@@ -1084,8 +1084,18 @@ var TRANSLATABLE_ATTRIBUTES = [
1084
1084
  "data-pattern-message"
1085
1085
  ];
1086
1086
  var PHRASE_MARKER_ATTRS = ["data-ls-phrase", "data-langsys-phrase"];
1087
+ function isTranslationExcluded(element) {
1088
+ if ((element.getAttribute("translate") ?? "").toLowerCase() === "no") return true;
1089
+ if (!element.hasAttribute("data-notrans")) return false;
1090
+ const value = (element.getAttribute("data-notrans") ?? "").trim().toLowerCase();
1091
+ return value !== "false" && value !== "0";
1092
+ }
1087
1093
  function isPhraseMarked(element) {
1088
- return PHRASE_MARKER_ATTRS.some((attr) => element.hasAttribute(attr));
1094
+ return PHRASE_MARKER_ATTRS.some((attr) => {
1095
+ if (!element.hasAttribute(attr)) return false;
1096
+ const value = (element.getAttribute(attr) ?? "").trim().toLowerCase();
1097
+ return value !== "false" && value !== "0";
1098
+ });
1089
1099
  }
1090
1100
  var VALUE_TRANSLATABLE_ELEMENTS = ["button"];
1091
1101
  var VALUE_TRANSLATABLE_INPUT_TYPES = ["submit", "button"];
@@ -1202,7 +1212,7 @@ function _walkForTokens(liveRoot, cloneNodes, tokens, indices) {
1202
1212
  cloneNodes.forEach((node, index) => {
1203
1213
  if (node.nodeType === Node.ELEMENT_NODE) {
1204
1214
  const el = node;
1205
- if (el.getAttribute("translate") === "no") return;
1215
+ if (isTranslationExcluded(el)) return;
1206
1216
  if (isPhraseMarked(el)) return;
1207
1217
  }
1208
1218
  if (node.hasChildNodes()) {
@@ -1391,7 +1401,7 @@ var Translate = class {
1391
1401
  nodes.forEach((node) => {
1392
1402
  if (node?.nodeType === Node.ELEMENT_NODE) {
1393
1403
  const element = node;
1394
- if (element.getAttribute("translate") === "no") return;
1404
+ if (isTranslationExcluded(element)) return;
1395
1405
  if (isPhraseMarked(element)) return;
1396
1406
  this.translateAttributes(node);
1397
1407
  }
@@ -1633,6 +1643,6 @@ var t = ((phrase, ...rest) => {
1633
1643
  });
1634
1644
  var tSignal = LangsysApp.Translations.tSignal;
1635
1645
 
1636
- export { LangsysApp, LangsysAppAPI, Logger, PHRASE_MARKER_ATTR, PHRASE_MARKER_ATTRS, Phrase, Translate, Translations, canonicalizeLocale, createSignal, currentlyLoadedLocale, encodeRichText, findUnusedParamKeys, generateCustomId, generateLegacyCustomId, getValue, interpolate, isContentBlockKnown, isEmpty, isICU, isPhraseMarked, logger, markupTokenValues, md5, md5Legacy, normalizeMarkupPlaceholders, persist, reconstitute, registerContentBlock, sTranslations, stripSentinels, t, tSignal, tokenizeElement };
1646
+ export { LangsysApp, LangsysAppAPI, Logger, PHRASE_MARKER_ATTR, PHRASE_MARKER_ATTRS, Phrase, Translate, Translations, canonicalizeLocale, createSignal, currentlyLoadedLocale, encodeRichText, findUnusedParamKeys, generateCustomId, generateLegacyCustomId, getValue, interpolate, isContentBlockKnown, isEmpty, isICU, isPhraseMarked, isTranslationExcluded, logger, markupTokenValues, md5, md5Legacy, normalizeMarkupPlaceholders, persist, reconstitute, registerContentBlock, sTranslations, stripSentinels, t, tSignal, tokenizeElement };
1637
1647
  //# sourceMappingURL=index.mjs.map
1638
1648
  //# sourceMappingURL=index.mjs.map