{ "$comment": "DELIBERATELY ARABIC-ONLY — do not 'fix' this by adding an en.ts key. A manifest in public/ is a static file served byte-identical to every visitor, so it cannot read the otlob_locale cookie and cannot be localized per request. The sibling i18n work (src/app/layout.tsx generateMetadata) covers the tab title, the meta description and the iOS home-screen name, which CAN vary per request; this one cannot. Localizing it needs a route handler (src/app/manifest.webmanifest/route.ts) and deleting this file so the static copy stops shadowing it, plus a decision about the OS install cache: Chromium caches the manifest and the installed name in some launchers, so an English name can still fail to appear for an already-installed copy. That is a product decision, not a missing key. See TESTING_AND_REQUIREMENTS.md 4.2.1. The `lang`/`dir` below are accurate, not a bug to remove.", "name": "طلب طلعة — نقطة بيع", "short_name": "طلب طلعة", "description": "نظام إدارة المطاعم والكافيهات — نقطة بيع، مطبخ، ترابيزة، وتوصيل", "lang": "ar", "dir": "rtl", "id": "/", "start_url": "/", "scope": "/", "display": "standalone", "display_override": [ "standalone", "minimal-ui" ], "orientation": "any", "background_color": "#fdfaf5", "theme_color": "#fdfaf5", "categories": [ "business", "food", "productivity" ], "icons": [ { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" }, { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" }, { "src": "/icons/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" } ], "prefer_related_applications": false }