The site now speaks German, French, Spanish, Ukrainian, Russian, Chinese, Korean and Hindi alongside English — 623 strings per language, 5,607 translations, covering the landing page, the key exchange, the chat, group calls and every error along the way. Each locale is a real page at a real URL (/de/, /fr/, …), generated at build time from locales/*.json. That is the whole point: the app is client-rendered, so a language that only swaps strings at runtime has no address for a crawler to index and no link anyone can share. Each page carries its own canonical, a reciprocal hreflang cluster and translated schema.org. The URL decides the language, always. A stored preference only applies where the address does not say, and nothing ever redirects on Accept-Language — that is how sites become invisible to search engines outside one country. robots.txt and sitemap.xml did not exist before; both are generated now. Bugs found on the way, each with a test that would have caught it: - partner logos used page-relative paths and 404'd from any /xx/ page - post-build stamped ?v= only into the root shell, leaving locales behind - "Back online" appeared on every page load, not just after being offline - update timestamps were hard-coded to US format for every reader - t() threw on a partial window, taking whole components down with it
140 lines
9.0 KiB
XML
140 lines
9.0 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
|
<url>
|
|
<loc>https://securebit.chat/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
<url>
|
|
<loc>https://securebit.chat/de/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
<url>
|
|
<loc>https://securebit.chat/fr/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
<url>
|
|
<loc>https://securebit.chat/es/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
<url>
|
|
<loc>https://securebit.chat/uk/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
<url>
|
|
<loc>https://securebit.chat/ru/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
<url>
|
|
<loc>https://securebit.chat/zh/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
<url>
|
|
<loc>https://securebit.chat/ko/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
<url>
|
|
<loc>https://securebit.chat/hi/</loc>
|
|
<xhtml:link rel="alternate" hreflang="en" href="https://securebit.chat/"/>
|
|
<xhtml:link rel="alternate" hreflang="de" href="https://securebit.chat/de/"/>
|
|
<xhtml:link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/"/>
|
|
<xhtml:link rel="alternate" hreflang="es" href="https://securebit.chat/es/"/>
|
|
<xhtml:link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/"/>
|
|
<xhtml:link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/"/>
|
|
<xhtml:link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/"/>
|
|
<xhtml:link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/"/>
|
|
<xhtml:link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/"/>
|
|
<xhtml:link rel="alternate" hreflang="x-default" href="https://securebit.chat/"/>
|
|
<changefreq>weekly</changefreq>
|
|
<priority>1.0</priority>
|
|
</url>
|
|
</urlset>
|