feat: add i18n support for 14 languages

Add translations for de, es, es-419, fr, hi, id, it, nl, pl, pt, pt-BR, sr, sv, zh-Hans-CN
to match upstream Indiekit's supported locales.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Ricardo
2026-02-13 22:33:41 +01:00
parent 58ea798106
commit f14453368c
15 changed files with 365 additions and 1 deletions

26
locales/de.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Neueste Videos",
"channel": "Kanal",
"live": "Live jetzt",
"upcoming": "Demnächst",
"offline": "Offline",
"subscribers": "Abonnenten",
"views": "Aufrufe",
"watchNow": "Jetzt ansehen",
"viewChannel": "Kanal anzeigen",
"viewAll": "Alle Videos anzeigen",
"noVideos": "Keine Videos gefunden",
"refreshed": "Aktualisiert",
"error": {
"noApiKey": "YouTube-API-Schlüssel nicht konfiguriert",
"noChannel": "YouTube-Kanal nicht angegeben",
"connection": "Verbindung zur YouTube-API nicht möglich"
},
"widget": {
"description": "Vollständigen Kanal auf YouTube anzeigen",
"view": "YouTube-Kanal öffnen"
}
}
}

26
locales/es-419.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Videos más recientes",
"channel": "Canal",
"live": "En vivo ahora",
"upcoming": "Próximamente",
"offline": "Desconectado",
"subscribers": "suscriptores",
"views": "vistas",
"watchNow": "Ver ahora",
"viewChannel": "Ver canal",
"viewAll": "Ver todos los videos",
"noVideos": "No se encontraron videos",
"refreshed": "Actualizado",
"error": {
"noApiKey": "Clave API de YouTube no configurada",
"noChannel": "Canal de YouTube no especificado",
"connection": "No se pudo conectar con la API de YouTube"
},
"widget": {
"description": "Ver el canal completo en YouTube",
"view": "Abrir canal de YouTube"
}
}
}

26
locales/es.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Últimos vídeos",
"channel": "Canal",
"live": "En directo",
"upcoming": "Próximamente",
"offline": "Desconectado",
"subscribers": "suscriptores",
"views": "visualizaciones",
"watchNow": "Ver ahora",
"viewChannel": "Ver canal",
"viewAll": "Ver todos los vídeos",
"noVideos": "No se encontraron vídeos",
"refreshed": "Actualizado",
"error": {
"noApiKey": "Clave API de YouTube no configurada",
"noChannel": "Canal de YouTube no especificado",
"connection": "No se pudo conectar con la API de YouTube"
},
"widget": {
"description": "Ver el canal completo en YouTube",
"view": "Abrir canal de YouTube"
}
}
}

26
locales/fr.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Dernières vidéos",
"channel": "Chaîne",
"live": "En direct",
"upcoming": "À venir",
"offline": "Hors ligne",
"subscribers": "abonnés",
"views": "vues",
"watchNow": "Regarder maintenant",
"viewChannel": "Voir la chaîne",
"viewAll": "Voir toutes les vidéos",
"noVideos": "Aucune vidéo trouvée",
"refreshed": "Actualisé",
"error": {
"noApiKey": "Clé API YouTube non configurée",
"noChannel": "Chaîne YouTube non spécifiée",
"connection": "Impossible de se connecter à l'API YouTube"
},
"widget": {
"description": "Voir la chaîne complète sur YouTube",
"view": "Ouvrir la chaîne YouTube"
}
}
}

26
locales/hi.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "नवीनतम वीडियो",
"channel": "चैनल",
"live": "अभी लाइव",
"upcoming": "आने वाला",
"offline": "ऑफ़लाइन",
"subscribers": "सब्सक्राइबर",
"views": "दृश्य",
"watchNow": "अभी देखें",
"viewChannel": "चैनल देखें",
"viewAll": "सभी वीडियो देखें",
"noVideos": "कोई वीडियो नहीं मिला",
"refreshed": "ताज़ा किया गया",
"error": {
"noApiKey": "YouTube API कुंजी कॉन्फ़िगर नहीं है",
"noChannel": "YouTube चैनल निर्दिष्ट नहीं है",
"connection": "YouTube API से कनेक्ट नहीं हो सका"
},
"widget": {
"description": "YouTube पर पूरा चैनल देखें",
"view": "YouTube चैनल खोलें"
}
}
}

26
locales/id.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Video Terbaru",
"channel": "Saluran",
"live": "Live Sekarang",
"upcoming": "Akan Datang",
"offline": "Offline",
"subscribers": "pelanggan",
"views": "tayangan",
"watchNow": "Tonton Sekarang",
"viewChannel": "Lihat Saluran",
"viewAll": "Lihat Semua Video",
"noVideos": "Tidak ada video ditemukan",
"refreshed": "Diperbarui",
"error": {
"noApiKey": "Kunci API YouTube tidak dikonfigurasi",
"noChannel": "Saluran YouTube tidak ditentukan",
"connection": "Tidak dapat terhubung ke YouTube API"
},
"widget": {
"description": "Lihat saluran lengkap di YouTube",
"view": "Buka Saluran YouTube"
}
}
}

26
locales/it.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Video recenti",
"channel": "Canale",
"live": "In diretta ora",
"upcoming": "In arrivo",
"offline": "Offline",
"subscribers": "iscritti",
"views": "visualizzazioni",
"watchNow": "Guarda ora",
"viewChannel": "Visualizza canale",
"viewAll": "Visualizza tutti i video",
"noVideos": "Nessun video trovato",
"refreshed": "Aggiornato",
"error": {
"noApiKey": "Chiave API YouTube non configurata",
"noChannel": "Canale YouTube non specificato",
"connection": "Impossibile connettersi all'API di YouTube"
},
"widget": {
"description": "Visualizza il canale completo su YouTube",
"view": "Apri canale YouTube"
}
}
}

26
locales/nl.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Nieuwste video's",
"channel": "Kanaal",
"live": "Nu live",
"upcoming": "Binnenkort",
"offline": "Offline",
"subscribers": "abonnees",
"views": "weergaven",
"watchNow": "Nu kijken",
"viewChannel": "Kanaal bekijken",
"viewAll": "Alle video's bekijken",
"noVideos": "Geen video's gevonden",
"refreshed": "Vernieuwd",
"error": {
"noApiKey": "YouTube API-sleutel niet geconfigureerd",
"noChannel": "YouTube-kanaal niet opgegeven",
"connection": "Kon geen verbinding maken met YouTube API"
},
"widget": {
"description": "Volledig kanaal op YouTube bekijken",
"view": "YouTube-kanaal openen"
}
}
}

26
locales/pl.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Najnowsze filmy",
"channel": "Kanał",
"live": "Teraz na żywo",
"upcoming": "Nadchodzące",
"offline": "Offline",
"subscribers": "subskrybentów",
"views": "wyświetleń",
"watchNow": "Obejrzyj teraz",
"viewChannel": "Wyświetl kanał",
"viewAll": "Wyświetl wszystkie filmy",
"noVideos": "Nie znaleziono filmów",
"refreshed": "Odświeżono",
"error": {
"noApiKey": "Klucz API YouTube nie jest skonfigurowany",
"noChannel": "Kanał YouTube nie został określony",
"connection": "Nie można połączyć się z API YouTube"
},
"widget": {
"description": "Zobacz pełny kanał na YouTube",
"view": "Otwórz kanał YouTube"
}
}
}

26
locales/pt-BR.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Vídeos mais recentes",
"channel": "Canal",
"live": "Ao vivo agora",
"upcoming": "Em breve",
"offline": "Offline",
"subscribers": "inscritos",
"views": "visualizações",
"watchNow": "Assistir agora",
"viewChannel": "Ver canal",
"viewAll": "Ver todos os vídeos",
"noVideos": "Nenhum vídeo encontrado",
"refreshed": "Atualizado",
"error": {
"noApiKey": "Chave API do YouTube não configurada",
"noChannel": "Canal do YouTube não especificado",
"connection": "Não foi possível conectar à API do YouTube"
},
"widget": {
"description": "Ver o canal completo no YouTube",
"view": "Abrir canal do YouTube"
}
}
}

26
locales/pt.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Vídeos mais recentes",
"channel": "Canal",
"live": "Ao vivo agora",
"upcoming": "Em breve",
"offline": "Offline",
"subscribers": "subscritores",
"views": "visualizações",
"watchNow": "Ver agora",
"viewChannel": "Ver canal",
"viewAll": "Ver todos os vídeos",
"noVideos": "Nenhum vídeo encontrado",
"refreshed": "Atualizado",
"error": {
"noApiKey": "Chave API do YouTube não configurada",
"noChannel": "Canal do YouTube não especificado",
"connection": "Não foi possível ligar à API do YouTube"
},
"widget": {
"description": "Ver o canal completo no YouTube",
"view": "Abrir canal do YouTube"
}
}
}

26
locales/sr.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Најновији видео снимци",
"channel": "Канал",
"live": "Уживо сада",
"upcoming": "Ускоро",
"offline": "Офлајн",
"subscribers": "претплатника",
"views": "прегледа",
"watchNow": "Гледај сада",
"viewChannel": "Погледај канал",
"viewAll": "Погледај све видео снимке",
"noVideos": "Нису пронађени видео снимци",
"refreshed": "Освежено",
"error": {
"noApiKey": "YouTube API кључ није конфигурисан",
"noChannel": "YouTube канал није наведен",
"connection": "Није могуће повезати се са YouTube API"
},
"widget": {
"description": "Погледајте комплетан канал на YouTube",
"view": "Отвори YouTube канал"
}
}
}

26
locales/sv.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "Senaste videor",
"channel": "Kanal",
"live": "Live nu",
"upcoming": "Kommande",
"offline": "Offline",
"subscribers": "prenumeranter",
"views": "visningar",
"watchNow": "Titta nu",
"viewChannel": "Visa kanal",
"viewAll": "Visa alla videor",
"noVideos": "Inga videor hittades",
"refreshed": "Uppdaterad",
"error": {
"noApiKey": "YouTube API-nyckel inte konfigurerad",
"noChannel": "YouTube-kanal inte angiven",
"connection": "Kunde inte ansluta till YouTube API"
},
"widget": {
"description": "Visa fullständig kanal på YouTube",
"view": "Öppna YouTube-kanal"
}
}
}

26
locales/zh-Hans-CN.json Normal file
View File

@@ -0,0 +1,26 @@
{
"youtube": {
"title": "YouTube",
"videos": "最新视频",
"channel": "频道",
"live": "正在直播",
"upcoming": "即将开始",
"offline": "离线",
"subscribers": "订阅者",
"views": "次观看",
"watchNow": "立即观看",
"viewChannel": "查看频道",
"viewAll": "查看所有视频",
"noVideos": "未找到视频",
"refreshed": "已刷新",
"error": {
"noApiKey": "未配置 YouTube API 密钥",
"noChannel": "未指定 YouTube 频道",
"connection": "无法连接到 YouTube API"
},
"widget": {
"description": "在 YouTube 上查看完整频道",
"view": "打开 YouTube 频道"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@rmdes/indiekit-endpoint-youtube",
"version": "1.2.2",
"version": "1.2.3",
"description": "YouTube channel endpoint for Indiekit. Display latest videos and live status from any YouTube channel.",
"keywords": [
"indiekit",