MCPcopy
hub / github.com/ampproject/amphtml / msg

Function msg

third_party/subscriptions-project/swg.js:8647–8681  ·  view source on GitHub ↗

* Gets a message for a given language code, from a map of messages. * @param {!Object } map * @param {?string|?Element} languageCodeOrElement * @return {?string}

(map, languageCodeOrElement)

Source from the content-addressed store, hash-verified

8645 * @return {?string}
8646 */
8647function msg(map, languageCodeOrElement) {
8648 const defaultMsg = map[DEFAULT_LANGUAGE_CODE];
8649
8650 // Verify params.
8651 if (typeof map !== 'object' || !languageCodeOrElement) {
8652 return defaultMsg;
8653 }
8654
8655 // Get language code.
8656 let languageCode =
8657 typeof languageCodeOrElement === 'string'
8658 ? languageCodeOrElement
8659 : getLanguageCodeFromElement(languageCodeOrElement);
8660
8661 // Normalize language code.
8662 languageCode = languageCode.toLowerCase();
8663 languageCode = languageCode.replace(/_/g, '-');
8664
8665 // Search for a message matching the language code.
8666 // If a message can't be found, try again with a less specific language code.
8667 const languageCodeSegments = languageCode.split('-');
8668 while (languageCodeSegments.length) {
8669 const key = languageCodeSegments.join('-');
8670 if (key in map) {
8671 return map[key];
8672 }
8673
8674 // Simplify language code.
8675 // Ex: "en-US-SF" => "en-US"
8676 languageCodeSegments.pop();
8677 }
8678
8679 // There was an attempt.
8680 return defaultMsg;
8681}
8682
8683/**
8684 * Gets a language code (ex: "en-US") from a given Element.

Callers 3

attachMethod · 0.70
attachSubscribeButtonMethod · 0.70

Calls 3

replaceMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected