feat(i18n): add static pre-rendering for multi-language support

- Add `generate-i18n-pages.mjs` script to pre-render localized HTML files at build time
- Add `generate-sitemap.mjs` script to generate language-aware sitemap.xml
- Create `navbar-simple.html` and `footer-simple.html` partials for simple mode
- Update all 80+ tool pages with language routing support
- Expand supported languages to 12: en, de, es, fr, it, pt, tr, vi, id, zh, zh-TW
- Update i18n.ts with new language names and support configuration
- Implement languageRouterPlugin in vite.config.ts for dev server routing
- Update nginx.conf for production static file serving from language directories
- Update TRANSLATION.md with new architecture documentation and language addition guide
- Fix relative paths in 404.html for static deployment compatibility
- Update package.json with new build scripts and dependencies
- Improves SEO through static pre-rendering and proper sitemap generation
This commit is contained in:
alam00000 committed 2026-01-14 21:04:56 +05:30
1 parent 90346d7ea9
commit abf7ae8a00
126 files changed
+25187 -1447

No files matched your search

+9 -10
View File
@@ -1,3 +1,4 @@
{{#if simpleMode}} {{> navbar-simple}} {{else}}
<nav class="bg-gray-800 border-b border-gray-700 sticky top-0 z-30">
<div class="container mx-auto px-4">
<div class="flex justify-between items-center h-16">
@@ -6,7 +7,7 @@
id="home-logo"
>
<img
src="/images/favicon-no-bg.svg"
src="{{baseUrl}}images/favicon-no-bg.svg"
alt="Bento PDF Logo"
class="h-8 w-8"
/>
@@ -18,11 +19,11 @@
<!-- Desktop Navigation -->
<div class="hidden md:flex items-center space-x-8">
<a href="index.html" class="nav-link" data-i18n="nav.home">Home</a>
<a href="/about.html" class="nav-link" data-i18n="nav.about">About</a>
<a href="/contact.html" class="nav-link" data-i18n="nav.contact"
<a href="about.html" class="nav-link" data-i18n="nav.about">About</a>
<a href="contact.html" class="nav-link" data-i18n="nav.contact"
>Contact</a
>
<a href="/licensing.html" class="nav-link" data-i18n="nav.licensing"
<a href="licensing.html" class="nav-link" data-i18n="nav.licensing"
>Licensing</a
>
<a
@@ -131,16 +132,13 @@
>
<div class="px-2 pt-2 pb-3 space-y-1 text-center">
<a href="index.html" class="mobile-nav-link" data-i18n="nav.home">Home</a>
<a href="/about.html" class="mobile-nav-link" data-i18n="nav.about"
<a href="about.html" class="mobile-nav-link" data-i18n="nav.about"
>About</a
>
<a href="/contact.html" class="mobile-nav-link" data-i18n="nav.contact"
<a href="contact.html" class="mobile-nav-link" data-i18n="nav.contact"
>Contact</a
>
<a
href="/licensing.html"
class="mobile-nav-link"
data-i18n="nav.licensing"
<a href="licensing.html" class="mobile-nav-link" data-i18n="nav.licensing"
>Licensing</a
>
<a
@@ -152,3 +150,4 @@
</div>
</div>
</nav>
{{/if}}