@c8y/ngx-components 1021.49.1 → 1021.49.4

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.
@@ -4070,13 +4070,15 @@ class TranslateService {
4070
4070
  return this.getQueryParameter('lang');
4071
4071
  }
4072
4072
  parseLocaleCode(localeCode, outputSeparator = '_') {
4073
- const matches = localeCode.match(/^([a-z]{2})([_-]([a-z]{2}))?$/i);
4073
+ // - 2 letter language code
4074
+ // - optional region code that's either 2 letters OR 3 digits
4075
+ const matches = localeCode.match(/^([a-z]{2})([_-]([a-z]{2}|[0-9]{3}))?$/i);
4074
4076
  if (!matches) {
4075
- throw new Error(`Could not parse locale code "${localeCode}", make sure it's a two- or four-letter code (case insensitive) separated with "_" or "-".`);
4077
+ throw new Error(`Could not parse locale code "${localeCode}". Expected format: language code (2 letters) optionally followed by region code (2 letters or 3 digits) separated with "_" or "-", e.g. "en-US" or "es-419".`);
4076
4078
  }
4077
4079
  const langCode = matches[1].toLowerCase();
4078
- const countryCode = matches[3]?.toUpperCase();
4079
- const langCountryCode = `${langCode}${countryCode ? `${outputSeparator}${countryCode}` : ''}`;
4080
+ const regionCode = matches[3]?.toUpperCase();
4081
+ const langCountryCode = `${langCode}${regionCode ? `${outputSeparator}${regionCode}` : ''}`;
4080
4082
  return { langCode, langCountryCode };
4081
4083
  }
4082
4084
  /**