1// The Saudi Arabic and Mexican Spanish 3D translations are exact copies of 2// the reviewed regional owners below. Keep this mapping route-scoped: both 3// locales continue to own their homepage and every non-3D route. 4export const THREE_D_REGIONAL_OWNER_BY_LOCALE = Object.freeze({ 5 "ar-sa": "ar-eg", 6 "es-mx": "es-es", 7}); 8 9export function threeDRegionalOwnerLocale(locale) { 10 const normalized = String(locale || "").trim().toLowerCase(); 11 return THREE_D_REGIONAL_OWNER_BY_LOCALE[normalized] || normalized; 12} 13 14export function isThreeDRegionalDuplicateLocale(locale) { 15 const normalized = String(locale || "").trim().toLowerCase(); 16 return Object.hasOwn(THREE_D_REGIONAL_OWNER_BY_LOCALE, normalized); 17} 18 19export function threeDRegionalOwnerPathname(pathname, managedRoutePaths) { 20 const match = String(pathname || "").match( 21 /^\/(ar-sa|es-mx)\/(3d-tools(?:\/[a-z0-9]+(?:-[a-z0-9]+)*)?)\/?$/u, 22 ); 23 if (!match || !managedRoutePaths?.has(match[2])) return null; 24 return `/${threeDRegionalOwnerLocale(match[1])}/${match[2]}/`; 25}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.