@shopify/cli
Version:
A CLI tool to build for the Shopify platform
23 lines (16 loc) • 660 B
text/typescript
import type {I18nBase} from './mock-i18n-types.js';
export interface I18nLocale extends I18nBase {
pathPrefix: string;
}
export function getLocaleFromRequest(request: Request): I18nLocale {
const url = new URL(request.url);
const firstPathPart = url.pathname.split('/')[1]?.toUpperCase() ?? '';
type I18nFromUrl = [I18nLocale['language'], I18nLocale['country']];
let pathPrefix = '';
let [language, country]: I18nFromUrl = ['EN', 'US'];
if (/^[A-Z]{2}-[A-Z]{2}$/i.test(firstPathPart)) {
pathPrefix = '/' + firstPathPart;
[language, country] = firstPathPart.split('-') as I18nFromUrl;
}
return {language, country, pathPrefix};
}