/** * The few words the installable-app runtime says on its own: the install * banner, the "new version" prompt and the offline screen. They belong to the * browser chrome of the site rather than to its pages, so they are not part of * the project's translations; the generated code carries the copy for the * project's languages only, and falls back to English for a language that is * not listed here. * * `{app}` is replaced with the app's short name at runtime. The iPhone line * names the two Safari controls by their own localized labels, because that is * what the visitor has to find on screen. */ export interface PwaMessages { installTitle: string installBody: string installAction: string dismissAction: string iosInstallBody: string updateBody: string updateAction: string closeLabel: string offlineTitle: string offlineBody: string offlineRetry: string } export const DEFAULT_PWA_LOCALE = 'en' const PWA_MESSAGES: Record = { en: { installTitle: 'Install {app}', installBody: 'Add it to your home screen for quick access.', installAction: 'Install', dismissAction: 'Not now', iosInstallBody: 'Tap the Share button, then “Add to Home Screen”.', updateBody: 'A new version of this site is available.', updateAction: 'Refresh', closeLabel: 'Close', offlineTitle: 'You are offline', offlineBody: 'Check your internet connection and try again.', offlineRetry: 'Try again', }, es: { installTitle: 'Instalar {app}', installBody: 'Añádela a tu pantalla de inicio para acceder rápidamente.', installAction: 'Instalar', dismissAction: 'Ahora no', iosInstallBody: 'Toca el botón Compartir y luego «Añadir a pantalla de inicio».', updateBody: 'Hay una nueva versión de este sitio disponible.', updateAction: 'Actualizar', closeLabel: 'Cerrar', offlineTitle: 'Sin conexión', offlineBody: 'Comprueba tu conexión a internet e inténtalo de nuevo.', offlineRetry: 'Reintentar', }, fr: { installTitle: 'Installer {app}', installBody: 'Ajoutez-la à votre écran d’accueil pour y accéder rapidement.', installAction: 'Installer', dismissAction: 'Plus tard', iosInstallBody: 'Touchez le bouton Partager, puis « Sur l’écran d’accueil ».', updateBody: 'Une nouvelle version de ce site est disponible.', updateAction: 'Actualiser', closeLabel: 'Fermer', offlineTitle: 'Vous êtes hors ligne', offlineBody: 'Vérifiez votre connexion Internet et réessayez.', offlineRetry: 'Réessayer', }, de: { installTitle: '{app} installieren', installBody: 'Zum Home-Bildschirm hinzufügen – für schnellen Zugriff.', installAction: 'Installieren', dismissAction: 'Nicht jetzt', iosInstallBody: 'Auf „Teilen“ und dann auf „Zum Home-Bildschirm“ tippen.', updateBody: 'Eine neue Version dieser Website ist verfügbar.', updateAction: 'Aktualisieren', closeLabel: 'Schließen', offlineTitle: 'Keine Internetverbindung', offlineBody: 'Internetverbindung prüfen und erneut versuchen.', offlineRetry: 'Erneut versuchen', }, it: { installTitle: 'Installa {app}', installBody: 'Aggiungila alla schermata Home per un accesso rapido.', installAction: 'Installa', dismissAction: 'Non ora', iosInstallBody: 'Tocca il pulsante Condividi, poi “Aggiungi alla schermata Home”.', updateBody: 'È disponibile una nuova versione di questo sito.', updateAction: 'Aggiorna', closeLabel: 'Chiudi', offlineTitle: 'Sei offline', offlineBody: 'Controlla la connessione a Internet e riprova.', offlineRetry: 'Riprova', }, pt: { installTitle: 'Instalar {app}', installBody: 'Adicione à tela de início para acessar rapidamente.', installAction: 'Instalar', dismissAction: 'Agora não', iosInstallBody: 'Toque no botão Compartilhar e depois em “Adicionar à Tela de Início”.', updateBody: 'Uma nova versão deste site está disponível.', updateAction: 'Atualizar', closeLabel: 'Fechar', offlineTitle: 'Você está offline', offlineBody: 'Verifique sua conexão com a internet e tente novamente.', offlineRetry: 'Tentar novamente', }, 'pt-pt': { installTitle: 'Instalar {app}', installBody: 'Adicione ao ecrã principal para aceder rapidamente.', installAction: 'Instalar', dismissAction: 'Agora não', iosInstallBody: 'Toque no botão Partilhar e depois em “Adicionar ao ecrã principal”.', updateBody: 'Está disponível uma nova versão deste site.', updateAction: 'Atualizar', closeLabel: 'Fechar', offlineTitle: 'Está offline', offlineBody: 'Verifique a sua ligação à Internet e tente novamente.', offlineRetry: 'Tentar novamente', }, nl: { installTitle: '{app} installeren', installBody: 'Zet de app op je beginscherm voor snelle toegang.', installAction: 'Installeren', dismissAction: 'Niet nu', iosInstallBody: 'Tik op de deelknop en daarna op ‘Zet op beginscherm’.', updateBody: 'Er is een nieuwe versie van deze site beschikbaar.', updateAction: 'Vernieuwen', closeLabel: 'Sluiten', offlineTitle: 'Je bent offline', offlineBody: 'Controleer je internetverbinding en probeer het opnieuw.', offlineRetry: 'Opnieuw proberen', }, ro: { installTitle: 'Instalează {app}', installBody: 'Adaug-o pe ecranul principal pentru acces rapid.', installAction: 'Instalează', dismissAction: 'Nu acum', iosInstallBody: 'Atinge butonul Partajează, apoi „Adaugă pe ecranul principal”.', updateBody: 'Este disponibilă o versiune nouă a acestui site.', updateAction: 'Reîncarcă', closeLabel: 'Închide', offlineTitle: 'Nu ești conectat la internet', offlineBody: 'Verifică-ți conexiunea la internet și încearcă din nou.', offlineRetry: 'Încearcă din nou', }, pl: { installTitle: 'Zainstaluj {app}', installBody: 'Dodaj do ekranu początkowego, aby mieć szybki dostęp.', installAction: 'Zainstaluj', dismissAction: 'Nie teraz', iosInstallBody: 'Stuknij przycisk Udostępnij, a następnie „Do ekranu początkowego”.', updateBody: 'Dostępna jest nowa wersja tej witryny.', updateAction: 'Odśwież', closeLabel: 'Zamknij', offlineTitle: 'Jesteś offline', offlineBody: 'Sprawdź połączenie z internetem i spróbuj ponownie.', offlineRetry: 'Spróbuj ponownie', }, sv: { installTitle: 'Installera {app}', installBody: 'Lägg till på hemskärmen för snabb åtkomst.', installAction: 'Installera', dismissAction: 'Inte nu', iosInstallBody: 'Tryck på Dela-knappen och sedan på ”Lägg till på hemskärmen”.', updateBody: 'En ny version av webbplatsen finns tillgänglig.', updateAction: 'Uppdatera', closeLabel: 'Stäng', offlineTitle: 'Du är offline', offlineBody: 'Kontrollera internetanslutningen och försök igen.', offlineRetry: 'Försök igen', }, da: { installTitle: 'Installer {app}', installBody: 'Føj til hjemmeskærmen for hurtig adgang.', installAction: 'Installer', dismissAction: 'Ikke nu', iosInstallBody: 'Tryk på knappen Del og derefter på “Føj til hjemmeskærm”.', updateBody: 'Der er en ny version af dette websted.', updateAction: 'Opdater', closeLabel: 'Luk', offlineTitle: 'Du er offline', offlineBody: 'Tjek din internetforbindelse, og prøv igen.', offlineRetry: 'Prøv igen', }, nb: { installTitle: 'Installer {app}', installBody: 'Legg til på Hjem-skjermen for rask tilgang.', installAction: 'Installer', dismissAction: 'Ikke nå', iosInstallBody: 'Trykk på Del-knappen og deretter på «Legg til på Hjem-skjerm».', updateBody: 'En ny versjon av dette nettstedet er tilgjengelig.', updateAction: 'Oppdater', closeLabel: 'Lukk', offlineTitle: 'Du er frakoblet', offlineBody: 'Sjekk internettforbindelsen og prøv igjen.', offlineRetry: 'Prøv igjen', }, fi: { installTitle: 'Asenna {app}', installBody: 'Lisää kotinäytölle, niin pääset sivustolle nopeasti.', installAction: 'Asenna', dismissAction: 'Ei nyt', iosInstallBody: 'Napauta Jaa-painiketta ja sitten ”Lisää Koti-valikkoon”.', updateBody: 'Sivustosta on saatavilla uusi versio.', updateAction: 'Päivitä', closeLabel: 'Sulje', offlineTitle: 'Ei verkkoyhteyttä', offlineBody: 'Tarkista internetyhteys ja yritä uudelleen.', offlineRetry: 'Yritä uudelleen', }, cs: { installTitle: 'Nainstalovat {app}', installBody: 'Přidejte si ji na plochu pro rychlý přístup.', installAction: 'Nainstalovat', dismissAction: 'Teď ne', iosInstallBody: 'Klepněte na tlačítko Sdílet a poté na „Přidat na plochu“.', updateBody: 'Je k dispozici nová verze tohoto webu.', updateAction: 'Obnovit', closeLabel: 'Zavřít', offlineTitle: 'Jste offline', offlineBody: 'Zkontrolujte připojení k internetu a zkuste to znovu.', offlineRetry: 'Zkusit znovu', }, sk: { installTitle: 'Nainštalovať {app}', installBody: 'Pridajte si ju na plochu pre rýchly prístup.', installAction: 'Nainštalovať', dismissAction: 'Teraz nie', iosInstallBody: 'Ťuknite na tlačidlo Zdieľať a potom na „Pridať na plochu“.', updateBody: 'K dispozícii je nová verzia tejto stránky.', updateAction: 'Obnoviť', closeLabel: 'Zavrieť', offlineTitle: 'Ste offline', offlineBody: 'Skontrolujte pripojenie na internet a skúste to znova.', offlineRetry: 'Skúsiť znova', }, hu: { installTitle: '{app} telepítése', installBody: 'Tedd a kezdőképernyőre a gyors eléréshez.', installAction: 'Telepítés', dismissAction: 'Most nem', iosInstallBody: 'Koppints a Megosztás gombra, majd a „Főképernyőhöz adás” lehetőségre.', updateBody: 'Elérhető a webhely új verziója.', updateAction: 'Frissítés', closeLabel: 'Bezárás', offlineTitle: 'Nincs internetkapcsolat', offlineBody: 'Ellenőrizd az internetkapcsolatot, és próbáld újra.', offlineRetry: 'Újrapróbálás', }, el: { installTitle: 'Εγκατάσταση {app}', installBody: 'Προσθέστε την στην οθόνη Αφετηρίας για γρήγορη πρόσβαση.', installAction: 'Εγκατάσταση', dismissAction: 'Όχι τώρα', iosInstallBody: 'Πατήστε το κουμπί Κοινοποίηση και μετά «Προσθήκη στην οθόνη Αφετηρίας».', updateBody: 'Είναι διαθέσιμη μια νέα έκδοση αυτού του ιστότοπου.', updateAction: 'Ανανέωση', closeLabel: 'Κλείσιμο', offlineTitle: 'Είστε εκτός σύνδεσης', offlineBody: 'Ελέγξτε τη σύνδεσή σας στο διαδίκτυο και δοκιμάστε ξανά.', offlineRetry: 'Δοκιμάστε ξανά', }, tr: { installTitle: '{app} uygulamasını yükle', installBody: 'Hızlı erişim için ana ekranınıza ekleyin.', installAction: 'Yükle', dismissAction: 'Şimdi değil', iosInstallBody: 'Paylaş düğmesine, ardından “Ana Ekrana Ekle”ye dokunun.', updateBody: 'Bu sitenin yeni bir sürümü mevcut.', updateAction: 'Yenile', closeLabel: 'Kapat', offlineTitle: 'Çevrimdışısınız', offlineBody: 'İnternet bağlantınızı kontrol edip tekrar deneyin.', offlineRetry: 'Tekrar dene', }, ru: { installTitle: 'Установить {app}', installBody: 'Добавьте на экран «Домой» для быстрого доступа.', installAction: 'Установить', dismissAction: 'Не сейчас', iosInstallBody: 'Нажмите «Поделиться», а затем «На экран „Домой“».', updateBody: 'Доступна новая версия сайта.', updateAction: 'Обновить', closeLabel: 'Закрыть', offlineTitle: 'Нет подключения к интернету', offlineBody: 'Проверьте подключение к интернету и попробуйте снова.', offlineRetry: 'Повторить', }, uk: { installTitle: 'Установити {app}', installBody: 'Додайте на початковий екран для швидкого доступу.', installAction: 'Установити', dismissAction: 'Не зараз', iosInstallBody: 'Торкніться «Поширити», а потім «На початковий екран».', updateBody: 'Доступна нова версія сайту.', updateAction: 'Оновити', closeLabel: 'Закрити', offlineTitle: 'Немає підключення до інтернету', offlineBody: 'Перевірте підключення до інтернету та спробуйте ще раз.', offlineRetry: 'Спробувати ще раз', }, bg: { installTitle: 'Инсталиране на {app}', installBody: 'Добавете го на началния екран за бърз достъп.', installAction: 'Инсталиране', dismissAction: 'Не сега', iosInstallBody: 'Докоснете бутона „Споделяне“, след това „Добавяне на начален екран“.', updateBody: 'Налична е нова версия на този сайт.', updateAction: 'Опресняване', closeLabel: 'Затваряне', offlineTitle: 'Няма връзка с интернет', offlineBody: 'Проверете връзката си с интернет и опитайте отново.', offlineRetry: 'Опитайте отново', }, hr: { installTitle: 'Instaliraj {app}', installBody: 'Dodajte na početni zaslon za brz pristup.', installAction: 'Instaliraj', dismissAction: 'Ne sada', iosInstallBody: 'Dodirnite gumb Dijeli, a zatim „Dodaj na početni zaslon”.', updateBody: 'Dostupna je nova verzija ove stranice.', updateAction: 'Osvježi', closeLabel: 'Zatvori', offlineTitle: 'Niste povezani s internetom', offlineBody: 'Provjerite internetsku vezu i pokušajte ponovno.', offlineRetry: 'Pokušaj ponovno', }, sl: { installTitle: 'Namesti {app}', installBody: 'Dodajte na začetni zaslon za hiter dostop.', installAction: 'Namesti', dismissAction: 'Ne zdaj', iosInstallBody: 'Tapnite gumb Deli in nato »Dodaj na začetni zaslon«.', updateBody: 'Na voljo je nova različica tega spletnega mesta.', updateAction: 'Osveži', closeLabel: 'Zapri', offlineTitle: 'Niste povezani', offlineBody: 'Preverite internetno povezavo in poskusite znova.', offlineRetry: 'Poskusi znova', }, lt: { installTitle: 'Įdiegti {app}', installBody: 'Pridėkite prie pradžios ekrano, kad pasiektumėte greitai.', installAction: 'Įdiegti', dismissAction: 'Ne dabar', iosInstallBody: 'Palieskite mygtuką „Bendrinti“, tada „Pridėti prie pradžios ekrano“.', updateBody: 'Pasiekiama nauja šios svetainės versija.', updateAction: 'Atnaujinti', closeLabel: 'Uždaryti', offlineTitle: 'Nėra interneto ryšio', offlineBody: 'Patikrinkite interneto ryšį ir bandykite dar kartą.', offlineRetry: 'Bandyti dar kartą', }, lv: { installTitle: 'Instalēt {app}', installBody: 'Pievienojiet sākuma ekrānam ātrai piekļuvei.', installAction: 'Instalēt', dismissAction: 'Ne tagad', iosInstallBody: 'Pieskarieties pogai Kopīgot un pēc tam “Pievienot sākuma ekrānam”.', updateBody: 'Ir pieejama jauna šīs vietnes versija.', updateAction: 'Atsvaidzināt', closeLabel: 'Aizvērt', offlineTitle: 'Nav interneta savienojuma', offlineBody: 'Pārbaudiet interneta savienojumu un mēģiniet vēlreiz.', offlineRetry: 'Mēģināt vēlreiz', }, et: { installTitle: 'Paigalda {app}', installBody: 'Lisa avakuvale kiireks juurdepääsuks.', installAction: 'Paigalda', dismissAction: 'Mitte praegu', iosInstallBody: 'Puuduta nuppu Jaga ja seejärel „Lisa avakuvale”.', updateBody: 'Saadaval on selle saidi uus versioon.', updateAction: 'Värskenda', closeLabel: 'Sulge', offlineTitle: 'Internetiühendus puudub', offlineBody: 'Kontrolli internetiühendust ja proovi uuesti.', offlineRetry: 'Proovi uuesti', }, ar: { installTitle: 'تثبيت {app}', installBody: 'أضِفه إلى الشاشة الرئيسية للوصول السريع.', installAction: 'تثبيت', dismissAction: 'ليس الآن', iosInstallBody: 'اضغط على زر المشاركة، ثم «إضافة إلى الشاشة الرئيسية».', updateBody: 'يتوفر إصدار جديد من هذا الموقع.', updateAction: 'تحديث', closeLabel: 'إغلاق', offlineTitle: 'أنت غير متصل بالإنترنت', offlineBody: 'تحقق من اتصالك بالإنترنت وحاول مرة أخرى.', offlineRetry: 'إعادة المحاولة', }, he: { installTitle: 'התקנת {app}', installBody: 'הוסיפו למסך הבית לגישה מהירה.', installAction: 'התקנה', dismissAction: 'לא עכשיו', iosInstallBody: 'הקישו על כפתור השיתוף ואז על ״הוספה למסך הבית״.', updateBody: 'גרסה חדשה של האתר זמינה.', updateAction: 'רענון', closeLabel: 'סגירה', offlineTitle: 'אין חיבור לאינטרנט', offlineBody: 'בדקו את החיבור לאינטרנט ונסו שוב.', offlineRetry: 'ניסיון חוזר', }, fa: { installTitle: 'نصب {app}', installBody: 'برای دسترسی سریع آن را به صفحهٔ اصلی اضافه کنید.', installAction: 'نصب', dismissAction: 'اکنون نه', iosInstallBody: 'روی دکمهٔ اشتراک‌گذاری و سپس «افزودن به صفحهٔ اصلی» ضربه بزنید.', updateBody: 'نسخهٔ جدیدی از این سایت در دسترس است.', updateAction: 'بازخوانی', closeLabel: 'بستن', offlineTitle: 'اتصال اینترنت برقرار نیست', offlineBody: 'اتصال اینترنت خود را بررسی کنید و دوباره تلاش کنید.', offlineRetry: 'تلاش دوباره', }, hi: { installTitle: '{app} इंस्टॉल करें', installBody: 'जल्दी खोलने के लिए इसे होम स्क्रीन पर जोड़ें।', installAction: 'इंस्टॉल करें', dismissAction: 'अभी नहीं', iosInstallBody: 'शेयर बटन पर टैप करें, फिर “होम स्क्रीन में जोड़ें” चुनें।', updateBody: 'इस साइट का नया वर्शन उपलब्ध है।', updateAction: 'रीफ़्रेश करें', closeLabel: 'बंद करें', offlineTitle: 'आप ऑफ़लाइन हैं', offlineBody: 'अपना इंटरनेट कनेक्शन जाँचें और फिर से कोशिश करें।', offlineRetry: 'फिर से कोशिश करें', }, ja: { installTitle: '{app} をインストール', installBody: 'ホーム画面に追加すると、すばやくアクセスできます。', installAction: 'インストール', dismissAction: '今はしない', iosInstallBody: '共有ボタンをタップし、「ホーム画面に追加」を選択してください。', updateBody: 'このサイトの新しいバージョンが利用可能です。', updateAction: '更新', closeLabel: '閉じる', offlineTitle: 'オフラインです', offlineBody: 'インターネット接続を確認して、もう一度お試しください。', offlineRetry: '再試行', }, ko: { installTitle: '{app} 설치', installBody: '빠르게 이용하려면 홈 화면에 추가하세요.', installAction: '설치', dismissAction: '나중에', iosInstallBody: '공유 버튼을 누른 다음 ‘홈 화면에 추가’를 선택하세요.', updateBody: '이 사이트의 새 버전을 사용할 수 있습니다.', updateAction: '새로고침', closeLabel: '닫기', offlineTitle: '오프라인 상태입니다', offlineBody: '인터넷 연결을 확인한 후 다시 시도하세요.', offlineRetry: '다시 시도', }, zh: { installTitle: '安装 {app}', installBody: '添加到主屏幕,快速访问。', installAction: '安装', dismissAction: '暂不', iosInstallBody: '轻点“分享”按钮,然后选择“添加到主屏幕”。', updateBody: '此网站有新版本可用。', updateAction: '刷新', closeLabel: '关闭', offlineTitle: '您已离线', offlineBody: '请检查网络连接后重试。', offlineRetry: '重试', }, 'zh-tw': { installTitle: '安裝 {app}', installBody: '加入主畫面,快速存取。', installAction: '安裝', dismissAction: '稍後再說', iosInstallBody: '點一下「分享」按鈕,然後選擇「加入主畫面」。', updateBody: '此網站有新版本可用。', updateAction: '重新整理', closeLabel: '關閉', offlineTitle: '您目前離線', offlineBody: '請檢查網路連線後再試一次。', offlineRetry: '重試', }, id: { installTitle: 'Pasang {app}', installBody: 'Tambahkan ke layar utama untuk akses cepat.', installAction: 'Pasang', dismissAction: 'Nanti saja', iosInstallBody: 'Ketuk tombol Bagikan, lalu “Tambahkan ke Layar Utama”.', updateBody: 'Versi baru situs ini tersedia.', updateAction: 'Muat ulang', closeLabel: 'Tutup', offlineTitle: 'Anda sedang offline', offlineBody: 'Periksa koneksi internet Anda dan coba lagi.', offlineRetry: 'Coba lagi', }, ms: { installTitle: 'Pasang {app}', installBody: 'Tambah ke skrin utama untuk akses pantas.', installAction: 'Pasang', dismissAction: 'Bukan sekarang', iosInstallBody: 'Ketik butang Kongsi, kemudian “Tambah ke Skrin Utama”.', updateBody: 'Versi baharu laman ini tersedia.', updateAction: 'Muat semula', closeLabel: 'Tutup', offlineTitle: 'Anda di luar talian', offlineBody: 'Semak sambungan internet anda dan cuba lagi.', offlineRetry: 'Cuba lagi', }, vi: { installTitle: 'Cài đặt {app}', installBody: 'Thêm vào màn hình chính để truy cập nhanh.', installAction: 'Cài đặt', dismissAction: 'Để sau', iosInstallBody: 'Chạm vào nút Chia sẻ, sau đó chọn “Thêm vào MH chính”.', updateBody: 'Đã có phiên bản mới của trang web này.', updateAction: 'Làm mới', closeLabel: 'Đóng', offlineTitle: 'Bạn đang ngoại tuyến', offlineBody: 'Hãy kiểm tra kết nối Internet rồi thử lại.', offlineRetry: 'Thử lại', }, th: { installTitle: 'ติดตั้ง {app}', installBody: 'เพิ่มไปยังหน้าจอโฮมเพื่อเข้าถึงได้อย่างรวดเร็ว', installAction: 'ติดตั้ง', dismissAction: 'ไม่ใช่ตอนนี้', iosInstallBody: 'แตะปุ่มแชร์ แล้วเลือก “เพิ่มไปยังหน้าจอโฮม”', updateBody: 'มีเวอร์ชันใหม่ของเว็บไซต์นี้แล้ว', updateAction: 'รีเฟรช', closeLabel: 'ปิด', offlineTitle: 'คุณออฟไลน์อยู่', offlineBody: 'ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตแล้วลองอีกครั้ง', offlineRetry: 'ลองอีกครั้ง', }, } /** Aliases for locale codes that name a listed language under another code. */ const LOCALE_ALIASES: Record = { no: 'nb', nn: 'nb', iw: 'he', in: 'id', 'zh-hant': 'zh-tw', 'zh-hk': 'zh-tw', 'zh-mo': 'zh-tw', 'zh-hans': 'zh', 'zh-cn': 'zh', 'zh-sg': 'zh', } const normalizeLocale = (locale: string): string => locale.trim().toLowerCase().replace(/_/g, '-') /** * The copy for `locale`: the exact code first (`pt-pt`, `zh-tw`), then its * language (`es-mx` → `es`), then English. */ export const resolvePwaMessages = (locale: string | undefined): PwaMessages => { if (!locale) { return PWA_MESSAGES[DEFAULT_PWA_LOCALE] } const normalized = normalizeLocale(locale) const exact = LOCALE_ALIASES[normalized] ?? normalized if (PWA_MESSAGES[exact]) { return PWA_MESSAGES[exact] } const language = normalized.split('-')[0] const byLanguage = LOCALE_ALIASES[language] ?? language return PWA_MESSAGES[byLanguage] ?? PWA_MESSAGES[DEFAULT_PWA_LOCALE] } /** The copy for every locale the project serves, keyed by the project's own locale codes. */ export const resolvePwaMessagesForLocales = (locales: string[]): Record => locales.reduce>((acc, locale) => { acc[locale] = resolvePwaMessages(locale) return acc }, {})