diff --git a/I18N_SETUP.md b/I18N_SETUP.md new file mode 100644 index 000000000..73938b99f --- /dev/null +++ b/I18N_SETUP.md @@ -0,0 +1,255 @@ +# Internationalization (i18n) Setup Guide + +This document explains how to set up and manage translations for the BankaiTech documentation site using Docusaurus i18n. + +## Current Configuration + +The site is configured to support multiple languages: + +- **Default locale:** English (`en`) +- **Additional locales:** Spanish (`es`) + +## Configuration Changes Made + +### 1. Updated `docusaurus.config.ts` + +Added i18n configuration: + +```typescript +i18n: { + defaultLocale: 'en', + locales: ['en', 'es'], + localeConfigs: { + en: { + htmlLang: 'en-US', + label: 'English', + }, + es: { + htmlLang: 'es-ES', + label: 'Español', + }, + }, +}, +``` + +### 2. Added Locale Dropdown to Navbar + +Added a locale dropdown selector in the navbar: + +```typescript +{ + type: 'localeDropdown', + position: 'right', +}, +``` + +### 3. Updated Search Plugin + +Updated the search plugin to support multiple languages: + +```typescript +language: ['en', 'es'], +``` + +## Known Issue: Sidebar Translation Key Conflicts + +~~The current sidebar structure contains duplicate category names across different sections (e.g., multiple "Docs" categories, multiple "Installation" categories, etc.). This causes translation key conflicts when trying to generate translation files.~~ + +**STATUS: RESOLVED** ✅ + +Option 1 has been implemented to resolve the sidebar translation key conflicts. Unique keys have been added to all duplicate category `_category_.json` files. + +### Previous Error Message + +``` +Error: Multiple docs sidebar items produce the same translation key. +- `sidebar.autoSidebar.category.Docs`: 20 duplicates found +- `sidebar.autoSidebar.category.Installation`: 2 duplicates found +- `sidebar.autoSidebar.category.Troubleshooting`: 3 duplicates found +... +``` + +### Resolution Applied (Option 1) + +Unique `key` attributes have been added to all category metadata files. Example: + +```json +{ + "label": "Docs", + "key": "docker-docs", + "position": 2 +} +``` + +Categories with unique keys added: +- **Discord:** `discord-docs` +- **Docker:** `docker-docs` +- **Docusaurus:** `docusaurus-docs`, `docusaurus-troubleshooting` +- **Examples/Arr Suite:** `arr-suite-docs`, `arr-suite-qbittorrent` +- **Examples/Node-RED:** `node-red-docs` +- **Examples/Reverse Proxies:** `reverse-proxy-docs` +- **Examples/VPN:** `vpn-docs` +- **GitHub:** `github-docs` +- **HDD Tools:** `hdd-tools-docs` +- **Jellyfin:** `jellyfin-docs`, `jellyfin-installation` +- **MariaDB:** `mariadb-docs` +- **MS Windows/Local KMS:** `kms-docs` +- **MS Windows/Office:** `office-docs` +- **MS Windows/Windows:** `windows-docs` +- **Networking:** `networking-docs` +- **Nextcloud:** `nextcloud-docs`, `nextcloud-installation`, `nextcloud-troubleshooting` +- **NextcloudPI:** `nextcloudpi-docs` +- **Proxmox:** `proxmox-docs`, `proxmox-networking` +- **Reverse Proxy:** `reverse-proxy-reverse-docs`, `nginx-troubleshooting` +- **Torrent Clients/qBittorrent:** `torrent-qbittorrent`, `torrent-qbittorrent-docs` +- **Ubiquiti:** `ubiquiti-docs` + +## Translation Workflow + +Once the sidebar key conflicts have been resolved (see section above), follow these steps: + +### 1. Generate Translation Files + +```bash +npm run write-translations -- --locale es +``` + +This creates translation files in `i18n/es/`: +- `i18n/es/code.json` - UI labels and React components (94 translations) +- `i18n/es/docusaurus-theme-classic/navbar.json` - Navbar translations (6 translations) +- `i18n/es/docusaurus-theme-classic/footer.json` - Footer translations (9 translations) +- `i18n/es/docusaurus-plugin-content-docs/current.json` - Docs sidebar translations (149 translations) + +### 2. Translate JSON Files + +Edit the generated JSON files and translate the `message` fields: + +```json +{ + "Welcome to my website": { + "message": "Bienvenido a mi sitio web" + } +} +``` + +### 3. Copy and Translate Markdown Files + +Copy documentation files to the locale folder: + +```bash +# Copy docs +mkdir -p i18n/es/docusaurus-plugin-content-docs/current +cp -r docs/** i18n/es/docusaurus-plugin-content-docs/current + +# Copy pages (if any) +mkdir -p i18n/es/docusaurus-plugin-content-pages +cp -r src/pages/**.md i18n/es/docusaurus-plugin-content-pages +cp -r src/pages/**.mdx i18n/es/docusaurus-plugin-content-pages +``` + +Then translate the copied Markdown files. + +### 4. Test Translations + +Start the dev server with a specific locale: + +```bash +npm run start -- --locale es +``` + +Visit `http://localhost:3000/es/` to see the translated site. + +### 5. Build All Locales + +Build the site for all locales: + +```bash +npm run build +``` + +This creates: +- `build/` - Default English site +- `build/es/` - Spanish site + +## Deployment + +The site can be deployed using: + +### Single-Domain Strategy (Recommended) + +Deploy the entire `build/` folder. The site will be accessible at: +- `https://docs.bankai-tech.com` - English (default) +- `https://docs.bankai-tech.com/es` - Spanish + +### Multi-Domain Strategy + +Build each locale separately and deploy to different domains: + +```bash +npm run build -- --locale es +``` + +Configure different domains for each locale in `i18n.localeConfigs[].url`. + +## Adding More Locales + +To add additional locales (e.g., French): + +1. Update `docusaurus.config.ts`: + ```typescript + locales: ['en', 'es', 'fr'], + localeConfigs: { + // ... existing configs + fr: { + htmlLang: 'fr-FR', + label: 'Français', + }, + } + ``` + +2. Update search plugin: + ```typescript + language: ['en', 'es', 'fr'], + ``` + +3. Generate translations: + ```bash + npm run write-translations -- --locale fr + ``` + +4. Follow the translation workflow above + +## Translation Best Practices + +1. **Use Explicit Heading IDs:** Add explicit IDs to headings to avoid translation issues: + ```markdown + ### Hello World {#hello-world} + ``` + +2. **Mark Translatable Text:** Use `` component or `translate()` function: + ```jsx + import Translate from '@docusaurus/Translate'; + + Hello World + ``` + +3. **Keep Default Locale Up to Date:** Always update the default locale (English) first, then propagate changes to translations. + +4. **Version Control:** Commit translation files to git for collaborative translation. + +## References + +- [Docusaurus i18n Tutorial](https://docusaurus.io/docs/i18n/tutorial) +- [Docusaurus i18n Introduction](https://docusaurus.io/docs/i18n/introduction) +- [Using Git for Translations](https://docusaurus.io/docs/i18n/git) +- [Using Crowdin for Translations](https://docusaurus.io/docs/i18n/crowdin) + +## Next Steps + +To complete the i18n setup and begin the translation process: + +1. ✅ **Sidebar conflicts resolved:** Unique keys added to all duplicate categories +2. **Translate JSON files:** Edit the generated JSON message fields in `i18n/es/` +3. **Copy and translate Markdown files:** Follow the steps in section "Copy and Translate Markdown Files" +4. **Test translations:** Run `npm run start -- --locale es` to test +5. **Build for production:** Run `npm run build` to create localized sites diff --git a/docs/Discord/Docs/_category_.json b/docs/Discord/Docs/_category_.json new file mode 100644 index 000000000..d12edded3 --- /dev/null +++ b/docs/Discord/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "discord-docs", + "position": 2 +} diff --git a/docs/Docker/Docs/_category_.json b/docs/Docker/Docs/_category_.json new file mode 100644 index 000000000..6c3bd8a13 --- /dev/null +++ b/docs/Docker/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "docker-docs", + "position": 2 +} diff --git a/docs/Docusaurus/Docs/Troubleshooting/_category_.json b/docs/Docusaurus/Docs/Troubleshooting/_category_.json new file mode 100644 index 000000000..eebaa1362 --- /dev/null +++ b/docs/Docusaurus/Docs/Troubleshooting/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Troubleshooting", + "key": "docusaurus-troubleshooting", + "position": 3 +} diff --git a/docs/Docusaurus/Docs/_category_.json b/docs/Docusaurus/Docs/_category_.json new file mode 100644 index 000000000..b57bfac56 --- /dev/null +++ b/docs/Docusaurus/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "docusaurus-docs", + "position": 2 +} diff --git a/docs/Examples/Arr Suite/Docs/_category_.json b/docs/Examples/Arr Suite/Docs/_category_.json new file mode 100644 index 000000000..33f9cba05 --- /dev/null +++ b/docs/Examples/Arr Suite/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "arr-suite-docs", + "position": 2 +} diff --git a/docs/Examples/Arr Suite/Docs/qBittorrent/_category_.json b/docs/Examples/Arr Suite/Docs/qBittorrent/_category_.json new file mode 100644 index 000000000..e586a352f --- /dev/null +++ b/docs/Examples/Arr Suite/Docs/qBittorrent/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "qBittorrent", + "key": "arr-suite-qbittorrent", + "position": 3 +} diff --git a/docs/Examples/Node-RED/Docs/_category_.json b/docs/Examples/Node-RED/Docs/_category_.json new file mode 100644 index 000000000..abbcd3ce0 --- /dev/null +++ b/docs/Examples/Node-RED/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "node-red-docs", + "position": 2 +} diff --git a/docs/Examples/Reverse Proxies/Docs/_category_.json b/docs/Examples/Reverse Proxies/Docs/_category_.json new file mode 100644 index 000000000..a1cf97168 --- /dev/null +++ b/docs/Examples/Reverse Proxies/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "reverse-proxy-docs", + "position": 2 +} diff --git a/docs/Examples/VPN/Docs/_category_.json b/docs/Examples/VPN/Docs/_category_.json new file mode 100644 index 000000000..1634ae182 --- /dev/null +++ b/docs/Examples/VPN/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "vpn-docs", + "position": 2 +} diff --git a/docs/GitHub/Docs/_category_.json b/docs/GitHub/Docs/_category_.json new file mode 100644 index 000000000..5d254bd71 --- /dev/null +++ b/docs/GitHub/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "github-docs", + "position": 2 +} diff --git a/docs/HDD Tools/Docs/_category_.json b/docs/HDD Tools/Docs/_category_.json new file mode 100644 index 000000000..da1a89570 --- /dev/null +++ b/docs/HDD Tools/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "hdd-tools-docs", + "position": 2 +} diff --git a/docs/Jellyfin/Docs/Installation/_category_.json b/docs/Jellyfin/Docs/Installation/_category_.json new file mode 100644 index 000000000..f8ed8b5b4 --- /dev/null +++ b/docs/Jellyfin/Docs/Installation/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Installation", + "key": "jellyfin-installation", + "position": 2 +} diff --git a/docs/Jellyfin/Docs/_category_.json b/docs/Jellyfin/Docs/_category_.json new file mode 100644 index 000000000..02a795771 --- /dev/null +++ b/docs/Jellyfin/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "jellyfin-docs", + "position": 2 +} diff --git a/docs/MS Windows/Local KMS/Docs/_category_.json b/docs/MS Windows/Local KMS/Docs/_category_.json new file mode 100644 index 000000000..7d73456a6 --- /dev/null +++ b/docs/MS Windows/Local KMS/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "kms-docs", + "position": 2 +} diff --git a/docs/MS Windows/Microsoft Office/Docs/_category_.json b/docs/MS Windows/Microsoft Office/Docs/_category_.json new file mode 100644 index 000000000..22ab98166 --- /dev/null +++ b/docs/MS Windows/Microsoft Office/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "office-docs", + "position": 2 +} diff --git a/docs/MS Windows/Windows/Docs/_category_.json b/docs/MS Windows/Windows/Docs/_category_.json new file mode 100644 index 000000000..343c45386 --- /dev/null +++ b/docs/MS Windows/Windows/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "windows-docs", + "position": 2 +} diff --git a/docs/MariaDB/Docs/_category_.json b/docs/MariaDB/Docs/_category_.json new file mode 100644 index 000000000..8e7635618 --- /dev/null +++ b/docs/MariaDB/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "mariadb-docs", + "position": 2 +} diff --git a/docs/Networking/Docs/_category_.json b/docs/Networking/Docs/_category_.json index 69fb7e7c3..6e8effc3b 100644 --- a/docs/Networking/Docs/_category_.json +++ b/docs/Networking/Docs/_category_.json @@ -1,5 +1,6 @@ { "label": "Networking Guides", + "key": "networking-docs", "position": 1, "link": { "type": "generated-index", diff --git a/docs/Nextcloud/Docs/Installation/_category_.json b/docs/Nextcloud/Docs/Installation/_category_.json index a66e2aa1e..48d606713 100644 --- a/docs/Nextcloud/Docs/Installation/_category_.json +++ b/docs/Nextcloud/Docs/Installation/_category_.json @@ -1,5 +1,6 @@ { "label": "Installation", + "key": "nextcloud-installation", "position": 1, "link": { "type": "generated-index", diff --git a/docs/Nextcloud/Docs/Troubleshooting/_category_.json b/docs/Nextcloud/Docs/Troubleshooting/_category_.json index aafec82d7..0ac600513 100644 --- a/docs/Nextcloud/Docs/Troubleshooting/_category_.json +++ b/docs/Nextcloud/Docs/Troubleshooting/_category_.json @@ -1,5 +1,6 @@ { "label": "Troubleshooting", + "key": "nextcloud-troubleshooting", "position": 100, "link": { "type": "generated-index", diff --git a/docs/Nextcloud/Docs/_category_.json b/docs/Nextcloud/Docs/_category_.json new file mode 100644 index 000000000..e360b3515 --- /dev/null +++ b/docs/Nextcloud/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "nextcloud-docs", + "position": 2 +} diff --git a/docs/NextcloudPI/Docs/_category_.json b/docs/NextcloudPI/Docs/_category_.json new file mode 100644 index 000000000..26caa3df5 --- /dev/null +++ b/docs/NextcloudPI/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "nextcloudpi-docs", + "position": 2 +} diff --git a/docs/Proxmox/Docs/Networking/_category_.json b/docs/Proxmox/Docs/Networking/_category_.json index 76c744179..eff9d77ac 100644 --- a/docs/Proxmox/Docs/Networking/_category_.json +++ b/docs/Proxmox/Docs/Networking/_category_.json @@ -1,5 +1,6 @@ { "label": "Networking", + "key": "proxmox-networking", "position": 3, "link": { "type": "generated-index", diff --git a/docs/Proxmox/Docs/_category_.json b/docs/Proxmox/Docs/_category_.json new file mode 100644 index 000000000..9a48fbfeb --- /dev/null +++ b/docs/Proxmox/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "proxmox-docs", + "position": 2 +} diff --git a/docs/Reverse Proxy/Docs/Nginx/Troubleshooting/_category_.json b/docs/Reverse Proxy/Docs/Nginx/Troubleshooting/_category_.json new file mode 100644 index 000000000..87bb9ece2 --- /dev/null +++ b/docs/Reverse Proxy/Docs/Nginx/Troubleshooting/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Troubleshooting", + "key": "nginx-troubleshooting", + "position": 3 +} diff --git a/docs/Reverse Proxy/Docs/_category_.json b/docs/Reverse Proxy/Docs/_category_.json new file mode 100644 index 000000000..76349105f --- /dev/null +++ b/docs/Reverse Proxy/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "reverse-proxy-reverse-docs", + "position": 2 +} diff --git a/docs/Torrent Clients/qBittorrent/Docs/_category_.json b/docs/Torrent Clients/qBittorrent/Docs/_category_.json new file mode 100644 index 000000000..8e931cc68 --- /dev/null +++ b/docs/Torrent Clients/qBittorrent/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "torrent-qbittorrent-docs", + "position": 2 +} diff --git a/docs/Torrent Clients/qBittorrent/_category_.json b/docs/Torrent Clients/qBittorrent/_category_.json new file mode 100644 index 000000000..323c7d8e0 --- /dev/null +++ b/docs/Torrent Clients/qBittorrent/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "qBittorrent", + "key": "torrent-qbittorrent", + "position": 2 +} diff --git a/docs/Ubiquiti/Docs/_category_.json b/docs/Ubiquiti/Docs/_category_.json new file mode 100644 index 000000000..19173bb5d --- /dev/null +++ b/docs/Ubiquiti/Docs/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Docs", + "key": "ubiquiti-docs", + "position": 2 +} diff --git a/docusaurus.config.ts b/docusaurus.config.ts index e1ae1df92..f598e7459 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -41,7 +41,7 @@ const config: Config = { require.resolve('@easyops-cn/docusaurus-search-local'), { hashed: true, - language: ['en'], + language: ['en', 'es'], indexDocs: true, indexPages: true, indexBlog: false, @@ -69,7 +69,17 @@ const config: Config = { // may want to replace "en" with "zh-Hans". i18n: { defaultLocale: 'en', - locales: ['en'], + locales: ['en', 'es'], + localeConfigs: { + en: { + htmlLang: 'en-US', + label: 'English', + }, + es: { + htmlLang: 'es-ES', + label: 'Español', + }, + }, }, presets: [ @@ -208,6 +218,10 @@ const config: Config = { label: 'MS Windows', }, { to: 'https://buymeacoffee.com/BankaiTech', label: 'Buy Me a Beer', position: 'left' }, + { + type: 'localeDropdown', + position: 'right', + }, // {to: '/blog', label: 'Blog', position: 'left'}, ], }, diff --git a/i18n/es/code.json b/i18n/es/code.json new file mode 100644 index 000000000..77e6740d6 --- /dev/null +++ b/i18n/es/code.json @@ -0,0 +1,372 @@ +{ + "theme.ErrorPageContent.title": { + "message": "Esta página ha fallado.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Volver al principio", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archivo", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archivo", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Navegación por la página de la lista de blogs ", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Entradas más recientes", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Entradas más antiguas", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Barra de paginación de publicaciones del blog", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Publicación más reciente", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Publicación más antigua", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.tags.tagsPageLink": { + "message": "Ver Todas las Etiquetas", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel.mode.system": { + "message": "system mode", + "description": "The name for the system color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "modo claro", + "description": "The name for the light color mode" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "modo oscuro", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel": { + "message": "Cambiar entre modo oscuro y claro (actualmente {mode})", + "description": "The ARIA label for the color mode toggle" + }, + "theme.docs.DocCard.categoryDescription.plurals": { + "message": "1 artículo|{count} artículos", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Rastro de navegación", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Página del documento", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Anterior", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Siguiente", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "Un documento etiquetado|{count} documentos etiquetados", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} con \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Esta es la documentación sin publicar para {siteTitle}, versión {versionLabel}.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Esta es la documentación para {siteTitle} {versionLabel}, que ya no se mantiene activamente.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Para la documentación actualizada, vea {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "última versión", + "description": "The label used for the latest version suggestion link label" + }, + "theme.docs.versionBadge.label": { + "message": "Version: {versionLabel}" + }, + "theme.common.editThisPage": { + "message": "Editar esta página", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Enlace directo al {heading}", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " en {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " por {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Última actualización{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.NotFound.title": { + "message": "Página No Encontrada", + "description": "The title of the 404 page" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versiones", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.tags.tagsListLabel": { + "message": "Etiquetas:", + "description": "The label alongside a tag list" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Cerrar", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.admonition.caution": { + "message": "precaución", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "peligro", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "info", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "nota", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "tip", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "aviso", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Navegación de publicaciones recientes", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "Ampliar la categoría '{label}' de la barra lateral", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "Colapsar categoría '{label}' de la barra lateral", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.IconExternalLink.ariaLabel": { + "message": "(opens in new tab)", + "description": "The ARIA label for the external link icon" + }, + "theme.NavBar.navAriaLabel": { + "message": "Principal", + "description": "The ARIA label for the main navigation" + }, + "theme.NotFound.p1": { + "message": "No pudimos encontrar lo que buscaba.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Comuníquese con el dueño del sitio que le proporcionó la URL original y hágale saber que su vínculo está roto.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "En esta página", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Idiomas", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.blog.post.readMore": { + "message": "Leer Más", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Leer más acerca de {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "Lectura de un minuto|{readingTime} min de lectura", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.CodeBlock.copy": { + "message": "Copiar", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.copied": { + "message": "Copiado", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copiar código", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Alternar ajuste de palabras", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.docs.breadcrumbs.home": { + "message": "Página de Inicio", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Colapsar barra lateral", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Colapsar barra lateral", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Barra lateral de Documentos", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Cerrar barra de lateral", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Alternar barra lateral", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Volver al menú principal", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": { + "message": "Expand the dropdown", + "description": "The ARIA label of the button to expand the mobile dropdown navbar item" + }, + "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { + "message": "Collapse the dropdown", + "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expandir barra lateral", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Expandir barra lateral", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.Playground.liveEditor": { + "message": "Editor en vivo", + "description": "The live editor label of the live codeblocks" + }, + "theme.Playground.result": { + "message": "Resultado", + "description": "The result label of the live codeblocks" + }, + "theme.SearchPage.existingResultsTitle": { + "message": "Search results for \"{query}\"", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "Search the documentation", + "description": "The search page title for empty query" + }, + "theme.SearchPage.searchContext.everywhere": { + "message": "Everywhere" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "1 document found|{count} documents found", + "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.SearchPage.noResultsText": { + "message": "No documents were found", + "description": "The paragraph for empty search result" + }, + "theme.SearchBar.noResultsText": { + "message": "No results" + }, + "theme.SearchBar.seeAllOutsideContext": { + "message": "See all results outside \"{context}\"" + }, + "theme.SearchBar.searchInContext": { + "message": "See all results within \"{context}\"" + }, + "theme.SearchBar.seeAll": { + "message": "See all results" + }, + "theme.SearchBar.label": { + "message": "Search", + "description": "The ARIA label and placeholder for search button" + }, + "theme.blog.post.plurals": { + "message": "Una publicación|{count} publicaciones", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} etiquetados con \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.blog.author.pageTitle": { + "message": "{authorName} - {nPosts}", + "description": "The title of the page for a blog author" + }, + "theme.blog.authorsList.pageTitle": { + "message": "Authors", + "description": "The title of the authors page" + }, + "theme.blog.authorsList.viewAll": { + "message": "View All Authors", + "description": "The label of the link targeting the blog authors page" + }, + "theme.blog.author.noPosts": { + "message": "This author has not written any posts yet.", + "description": "The text for authors with 0 blog post" + }, + "theme.contentVisibility.unlistedBanner.title": { + "message": "Página sin clasificar", + "description": "The unlisted content banner title" + }, + "theme.contentVisibility.unlistedBanner.message": { + "message": "Esta página está sin clasificar. Los motores de búsqueda no la indexaran, y solo los usuarios con el enlace directo podrán acceder a esta.", + "description": "The unlisted content banner message" + }, + "theme.contentVisibility.draftBanner.title": { + "message": "Draft page", + "description": "The draft content banner title" + }, + "theme.contentVisibility.draftBanner.message": { + "message": "This page is a draft. It will only be visible in dev and be excluded from the production build.", + "description": "The draft content banner message" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Intente de nuevo", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "Saltar al contenido principal", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "Etiquetas", + "description": "The title of the tag list page" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current.json b/i18n/es/docusaurus-plugin-content-docs/current.json new file mode 100644 index 000000000..2b64ecf01 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,598 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.autoSidebar.category.Docker": { + "message": "Docker", + "description": "The label for category 'Docker' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Docker.link.generated-index.description": { + "message": "Tutorials showing you how to run Self-Hosted systems using Docker.", + "description": "The generated-index page description for category 'Docker' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.docker-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Installing Docker": { + "message": "Installing Docker", + "description": "The label for category 'Installing Docker' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Installing Docker.link.generated-index.description": { + "message": "Tutorials showing you how to Install Docker.", + "description": "The generated-index page description for category 'Installing Docker' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Nextcloud": { + "message": "Nextcloud", + "description": "The label for category 'Nextcloud' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Nextcloud.link.generated-index.description": { + "message": "Tutorials showing you how to Install Nextcloud using Docker.", + "description": "The generated-index page description for category 'Nextcloud' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.nextcloud-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.nextcloud-installation": { + "message": "Installation", + "description": "The label for category 'Installation' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.nextcloud-installation.link.generated-index.description": { + "message": "How to Install Nextcloud using Docker.", + "description": "The generated-index page description for category 'Installation' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.nextcloud-troubleshooting": { + "message": "Troubleshooting", + "description": "The label for category 'Troubleshooting' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.nextcloud-troubleshooting.link.generated-index.description": { + "message": "Troubleshooting Nextcloud.", + "description": "The generated-index page description for category 'Troubleshooting' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.NextcloudPI": { + "message": "NextcloudPI", + "description": "The label for category 'NextcloudPI' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.NextcloudPI.link.generated-index.description": { + "message": "Tutorials showing you how to run NextcloudPI.", + "description": "The generated-index page description for category 'NextcloudPI' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.nextcloudpi-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Docusaurus": { + "message": "Docusaurus", + "description": "The label for category 'Docusaurus' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Docusaurus.link.generated-index.description": { + "message": "Tutorials showing you how to use Docusaurus.", + "description": "The generated-index page description for category 'Docusaurus' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.docusaurus-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.docusaurus-troubleshooting": { + "message": "Troubleshooting", + "description": "The label for category 'Troubleshooting' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.SEO": { + "message": "SEO", + "description": "The label for category 'SEO' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Styling": { + "message": "Styling", + "description": "The label for category 'Styling' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Sidebars": { + "message": "Sidebars", + "description": "The label for category 'Sidebars' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Examples": { + "message": "Examples", + "description": "The label for category 'Examples' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Examples.link.generated-index.description": { + "message": "Example configuration files and more.", + "description": "The generated-index page description for category 'Examples' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Arr Suite": { + "message": "Arr Suite", + "description": "The label for category 'Arr Suite' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Arr Suite.link.generated-index.description": { + "message": "Examples of *Arr application yaml files.", + "description": "The generated-index page description for category 'Arr Suite' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.arr-suite-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.arr-suite-qbittorrent": { + "message": "qBittorrent", + "description": "The label for category 'qBittorrent' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Full Stack": { + "message": "Full Stack", + "description": "The label for category 'Full Stack' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Jellyseerr": { + "message": "Jellyseerr", + "description": "The label for category 'Jellyseerr' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Lidarr": { + "message": "Lidarr", + "description": "The label for category 'Lidarr' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Prowlarr": { + "message": "Prowlarr", + "description": "The label for category 'Prowlarr' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Radarr": { + "message": "Radarr", + "description": "The label for category 'Radarr' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Readarr": { + "message": "Readarr", + "description": "The label for category 'Readarr' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Sonarr": { + "message": "Sonarr", + "description": "The label for category 'Sonarr' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Node-RED": { + "message": "Node-RED", + "description": "The label for category 'Node-RED' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.node-red-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Reverse Proxies": { + "message": "Reverse Proxies", + "description": "The label for category 'Reverse Proxies' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.reverse-proxy-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.VPN": { + "message": "VPN", + "description": "The label for category 'VPN' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.vpn-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Firewall": { + "message": "Firewall", + "description": "The label for category 'Firewall' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Testing": { + "message": "Testing", + "description": "The label for category 'Testing' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.MS Windows": { + "message": "MS Windows", + "description": "The label for category 'MS Windows' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.MS Windows.link.generated-index.description": { + "message": "Microsoft Windows Documentation.", + "description": "The generated-index page description for category 'MS Windows' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Local KMS": { + "message": "Local KMS", + "description": "The label for category 'Local KMS' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.kms-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Microsoft Office": { + "message": "Microsoft Office", + "description": "The label for category 'Microsoft Office' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.office-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Windows": { + "message": "Windows", + "description": "The label for category 'Windows' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.windows-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Activation": { + "message": "Activation", + "description": "The label for category 'Activation' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Windows 11": { + "message": "Windows 11", + "description": "The label for category 'Windows 11' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Editions": { + "message": "Editions", + "description": "The label for category 'Editions' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Discord": { + "message": "Discord", + "description": "The label for category 'Discord' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.discord-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Bots": { + "message": "Bots", + "description": "The label for category 'Bots' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.GitHub": { + "message": "GitHub", + "description": "The label for category 'GitHub' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.github-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.HDD Tools": { + "message": "HDD Tools", + "description": "The label for category 'HDD Tools' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.hdd-tools-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Jellyfin": { + "message": "Jellyfin", + "description": "The label for category 'Jellyfin' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.jellyfin-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.jellyfin-installation": { + "message": "Installation", + "description": "The label for category 'Installation' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.MariaDB": { + "message": "MariaDB", + "description": "The label for category 'MariaDB' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.mariadb-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Networking": { + "message": "Networking", + "description": "The label for category 'Networking' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.networking-docs": { + "message": "Networking Guides", + "description": "The label for category 'Networking Guides' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.networking-docs.link.generated-index.description": { + "message": "Comprehensive guides for Linux networking, WiFi management, proxies, and advanced networking configurations.", + "description": "The generated-index page description for category 'Networking Guides' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Storage": { + "message": "Storage", + "description": "The label for category 'Storage' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Subnets": { + "message": "Subnets", + "description": "The label for category 'Subnets' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Proxmox": { + "message": "Proxmox", + "description": "The label for category 'Proxmox' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.proxmox-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.proxmox-networking": { + "message": "Networking", + "description": "The label for category 'Networking' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.proxmox-networking.link.generated-index.description": { + "message": "Comprehensive guide to Proxmox networking including network configuration, VLANs, firewall setup, and example configurations.", + "description": "The generated-index page description for category 'Networking' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.LXC Containers": { + "message": "LXC Containers", + "description": "The label for category 'LXC Containers' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Reverse Proxy": { + "message": "Reverse Proxy", + "description": "The label for category 'Reverse Proxy' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.reverse-proxy-reverse-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Certbot": { + "message": "Certbot", + "description": "The label for category 'Certbot' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Cloudflare": { + "message": "Cloudflare", + "description": "The label for category 'Cloudflare' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Nginx": { + "message": "Nginx", + "description": "The label for category 'Nginx' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.nginx-troubleshooting": { + "message": "Troubleshooting", + "description": "The label for category 'Troubleshooting' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Torrent Clients": { + "message": "Torrent Clients", + "description": "The label for category 'Torrent Clients' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.torrent-qbittorrent": { + "message": "qBittorrent", + "description": "The label for category 'qBittorrent' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.torrent-qbittorrent-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Ubiquiti": { + "message": "Ubiquiti", + "description": "The label for category 'Ubiquiti' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.ubiquiti-docs": { + "message": "Docs", + "description": "The label for category 'Docs' in sidebar 'autoSidebar'" + }, + "sidebar.autoSidebar.category.Access Points": { + "message": "Access Points", + "description": "The label for category 'Access Points' in sidebar 'autoSidebar'" + }, + "sidebar.docSidebar.category.Getting Started with Docker": { + "message": "Getting Started with Docker", + "description": "The label for category 'Getting Started with Docker' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Installing Docker": { + "message": "Installing Docker", + "description": "The label for category 'Installing Docker' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Installing Docker.link.generated-index.description": { + "message": "Tutorials showing you how to Install Docker.", + "description": "The generated-index page description for category 'Installing Docker' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Nextcloud": { + "message": "Nextcloud", + "description": "The label for category 'Nextcloud' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.nextcloud-installation": { + "message": "Installation", + "description": "The label for category 'Installation' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.nextcloud-installation.link.generated-index.description": { + "message": "How to Install Nextcloud using Docker.", + "description": "The generated-index page description for category 'Installation' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.nextcloud-troubleshooting": { + "message": "Troubleshooting", + "description": "The label for category 'Troubleshooting' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.nextcloud-troubleshooting.link.generated-index.description": { + "message": "Troubleshooting Nextcloud.", + "description": "The generated-index page description for category 'Troubleshooting' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.NextcloudPI": { + "message": "NextcloudPI", + "description": "The label for category 'NextcloudPI' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.MariaDb": { + "message": "MariaDb", + "description": "The label for category 'MariaDb' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Docusaurus": { + "message": "Docusaurus", + "description": "The label for category 'Docusaurus' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.docusaurus-troubleshooting": { + "message": "Troubleshooting", + "description": "The label for category 'Troubleshooting' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.SEO": { + "message": "SEO", + "description": "The label for category 'SEO' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Styling": { + "message": "Styling", + "description": "The label for category 'Styling' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Sidebars": { + "message": "Sidebars", + "description": "The label for category 'Sidebars' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Networking": { + "message": "Networking", + "description": "The label for category 'Networking' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Networking.link.generated-index.title": { + "message": "Networking", + "description": "The generated-index page title for category 'Networking' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Networking.link.generated-index.description": { + "message": "Comprehensive guides for Linux networking, WiFi management, proxies, storage solutions, and advanced networking configurations.", + "description": "The generated-index page description for category 'Networking' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.networking-docs": { + "message": "Networking Guides", + "description": "The label for category 'Networking Guides' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.networking-docs.link.generated-index.description": { + "message": "Comprehensive guides for Linux networking, WiFi management, proxies, and advanced networking configurations.", + "description": "The generated-index page description for category 'Networking Guides' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Storage": { + "message": "Storage", + "description": "The label for category 'Storage' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Subnets": { + "message": "Subnets", + "description": "The label for category 'Subnets' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Ubiquiti": { + "message": "Ubiquiti", + "description": "The label for category 'Ubiquiti' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Access Points": { + "message": "Access Points", + "description": "The label for category 'Access Points' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Reverse Proxy": { + "message": "Reverse Proxy", + "description": "The label for category 'Reverse Proxy' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Certbot": { + "message": "Certbot", + "description": "The label for category 'Certbot' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Cloudflare": { + "message": "Cloudflare", + "description": "The label for category 'Cloudflare' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Nginx": { + "message": "Nginx", + "description": "The label for category 'Nginx' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.nginx-troubleshooting": { + "message": "Troubleshooting", + "description": "The label for category 'Troubleshooting' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Jellyfin": { + "message": "Jellyfin", + "description": "The label for category 'Jellyfin' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.jellyfin-installation": { + "message": "Installation", + "description": "The label for category 'Installation' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Torrent Clients": { + "message": "Torrent Clients", + "description": "The label for category 'Torrent Clients' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Discord": { + "message": "Discord", + "description": "The label for category 'Discord' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Bots": { + "message": "Bots", + "description": "The label for category 'Bots' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.Proxmox": { + "message": "Proxmox", + "description": "The label for category 'Proxmox' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.proxmox-networking": { + "message": "Networking", + "description": "The label for category 'Networking' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.proxmox-networking.link.generated-index.description": { + "message": "Comprehensive guide to Proxmox networking including network configuration, VLANs, firewall setup, and example configurations.", + "description": "The generated-index page description for category 'Networking' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.LXC Containers": { + "message": "LXC Containers", + "description": "The label for category 'LXC Containers' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.GitHub": { + "message": "GitHub", + "description": "The label for category 'GitHub' in sidebar 'docSidebar'" + }, + "sidebar.docSidebar.category.HDD Tools": { + "message": "HDD Tools", + "description": "The label for category 'HDD Tools' in sidebar 'docSidebar'" + }, + "sidebar.exampleSidebar.category.Reverse Proxy": { + "message": "Reverse Proxy", + "description": "The label for category 'Reverse Proxy' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Node-RED": { + "message": "Node-RED", + "description": "The label for category 'Node-RED' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Arr Suite": { + "message": "Arr Suite", + "description": "The label for category 'Arr Suite' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.arr-suite-qbittorrent": { + "message": "qBittorrent", + "description": "The label for category 'qBittorrent' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Full Stack": { + "message": "Full Stack", + "description": "The label for category 'Full Stack' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Jellyseerr": { + "message": "Jellyseerr", + "description": "The label for category 'Jellyseerr' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Lidarr": { + "message": "Lidarr", + "description": "The label for category 'Lidarr' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Prowlarr": { + "message": "Prowlarr", + "description": "The label for category 'Prowlarr' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Radarr": { + "message": "Radarr", + "description": "The label for category 'Radarr' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Readarr": { + "message": "Readarr", + "description": "The label for category 'Readarr' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Sonarr": { + "message": "Sonarr", + "description": "The label for category 'Sonarr' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.VPN": { + "message": "VPN", + "description": "The label for category 'VPN' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Firewall": { + "message": "Firewall", + "description": "The label for category 'Firewall' in sidebar 'exampleSidebar'" + }, + "sidebar.exampleSidebar.category.Testing": { + "message": "Testing", + "description": "The label for category 'Testing' in sidebar 'exampleSidebar'" + }, + "sidebar.MSwindowsSidebar.category.Windows": { + "message": "Windows", + "description": "The label for category 'Windows' in sidebar 'MSwindowsSidebar'" + }, + "sidebar.MSwindowsSidebar.category.Activation": { + "message": "Activation", + "description": "The label for category 'Activation' in sidebar 'MSwindowsSidebar'" + }, + "sidebar.MSwindowsSidebar.category.Windows 11": { + "message": "Windows 11", + "description": "The label for category 'Windows 11' in sidebar 'MSwindowsSidebar'" + }, + "sidebar.MSwindowsSidebar.category.Editions": { + "message": "Editions", + "description": "The label for category 'Editions' in sidebar 'MSwindowsSidebar'" + }, + "sidebar.MSwindowsSidebar.category.Microsoft Office": { + "message": "Microsoft Office", + "description": "The label for category 'Microsoft Office' in sidebar 'MSwindowsSidebar'" + }, + "sidebar.MSwindowsSidebar.category.Local KMS": { + "message": "Local KMS", + "description": "The label for category 'Local KMS' in sidebar 'MSwindowsSidebar'" + } +} diff --git a/i18n/es/docusaurus-theme-classic/footer.json b/i18n/es/docusaurus-theme-classic/footer.json new file mode 100644 index 000000000..01d86ff8d --- /dev/null +++ b/i18n/es/docusaurus-theme-classic/footer.json @@ -0,0 +1,38 @@ +{ + "link.title.Docs": { + "message": "Documentación", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Examples": { + "message": "Ejemplos", + "description": "The title of the footer links column with title=Examples in the footer" + }, + "link.title.Community": { + "message": "Comunidad", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.Support Me": { + "message": "Apóyame", + "description": "The title of the footer links column with title=Support Me in the footer" + }, + "link.item.label.Tutorials": { + "message": "Tutoriales", + "description": "The label of footer link with label=Tutorials linking to Docker/Introduction" + }, + "link.item.label.Examples": { + "message": "Ejemplos", + "description": "The label of footer link with label=Examples linking to Examples/Reverse Proxies/Introduction" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.gg/6THYdvayjg" + }, + "link.item.label.Buy me a Beer": { + "message": "Cómprame una Cerveza", + "description": "The label of footer link with label=Buy me a Beer linking to https://buymeacoffee.com/BankaiTech" + }, + "copyright": { + "message": "Derechos de Autor © 2026 Documentos Bankai-Tech", + "description": "The footer copyright" + } +} diff --git a/i18n/es/docusaurus-theme-classic/navbar.json b/i18n/es/docusaurus-theme-classic/navbar.json new file mode 100644 index 000000000..4913e8198 --- /dev/null +++ b/i18n/es/docusaurus-theme-classic/navbar.json @@ -0,0 +1,26 @@ +{ + "title": { + "message": "Documentos Bankai-Tech", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Logo del Sitio", + "description": "The alt text of navbar logo" + }, + "item.label.Tutorials": { + "message": "Tutoriales", + "description": "Navbar item with label Tutorials" + }, + "item.label.Examples": { + "message": "Ejemplos", + "description": "Navbar item with label Examples" + }, + "item.label.MS Windows": { + "message": "MS Windows", + "description": "Navbar item with label MS Windows" + }, + "item.label.Buy Me a Beer": { + "message": "Cómprame una Cerveza", + "description": "Navbar item with label Buy Me a Beer" + } +}