Initial localization work (#3980)

* First pass at configuring localization

* Add CI job for translations

* Update CI job

* Update default value

* Update parser config

* Update defaults again

* try to fix the multiple parsing of a file

* Update crowdlin config

* Update configs

* New Crowdin translations by GitHub Action (#3448)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Point to updated translated files

* Tooltip i18n

* Run translation job when web components are updated

* Commit updated translations

* Translations update (#3453)

* Update source file strings.json
Updated translations

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (English, United States)
Updated translations

* Commit updated translations

* New Crowdin translations by GitHub Action (#3452)

Co-authored-by: Owncast <owncast@owncast.online>

* chore(deps): update to next config to address build errors

* New Crowdin translations by GitHub Action (#3455)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Translations update (#3456)

* New translations strings.json (Arabic)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (Greek)
Updated translations

* New translations strings.json (Irish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Korean)
Updated translations

* New translations strings.json (Dutch)
Updated translations

* New translations strings.json (Norwegian)
Updated translations

* New translations strings.json (Punjabi)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Swedish)
Updated translations

* New translations strings.json (Chinese Traditional)
Updated translations

* New translations strings.json (Vietnamese)
Updated translations

* New translations strings.json (Bengali)
Updated translations

* New translations strings.json (Thai)
Updated translations

* New translations strings.json (Croatian)
Updated translations

* New translations strings.json (Hindi)
Updated translations

* New translations strings.json (Malay)
Updated translations

* New Crowdin translations by GitHub Action (#3457)

* New translations strings.json (Arabic)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (Greek)
Updated translations

* New translations strings.json (Irish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Korean)
Updated translations

* New translations strings.json (Dutch)
Updated translations

* New translations strings.json (Norwegian)
Updated translations

* New translations strings.json (Punjabi)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Swedish)
Updated translations

* New translations strings.json (Chinese Traditional)
Updated translations

* New translations strings.json (Vietnamese)
Updated translations

* New translations strings.json (Bengali)
Updated translations

* New translations strings.json (Thai)
Updated translations

* New translations strings.json (Croatian)
Updated translations

* New translations strings.json (Hindi)
Updated translations

* New translations strings.json (Malay)
Updated translations

* New Crowdin translations by GitHub Action

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Commit updated API documentation

* Update translations job

* New Crowdin translations by GitHub Action (#3698)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Update Crowdin configuration file

* Translations update (#3700)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Italian)
Updated translations

* Translations update (#3699)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Polish)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Portuguese, Brazilian)
Updated translations

* Commit updated API documentation

---------

Co-authored-by: Owncast <owncast@owncast.online>

* New Crowdin translations by GitHub Action (#3701)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Polish)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Portuguese, Brazilian)
Updated translations

* New Crowdin translations by GitHub Action

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Draft: Mark strings for translation. (#3458)

* Mark strings for translation.

* Mark up strings for translation

* fix(web): fix linter warnings

---------

Co-authored-by: Le fractal <17422-fractal@users.noreply.framagit.org>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* do not pull from cowdin via workflow

* Commit updated translations

* feat: add translations support to admin pages and components (#3977)

* feat: add translations support to admin pages and components

Added translations support admin main page and its components, help
page, handware-info page. Added translations support for LogTable,
NewsFeed and StreamHealthOverview components.

* update package.json

* fix rendering issue

* Commit updated API documentation

---------

Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* Offline banner i18n formatting (#3997)

* Fix "Last live ago" string formatting with i18n interpolation

* Change some base translation jsons to use i18n interpolation

* Linting fix

* chore(js): ignore i18n pkgs in knip

* fix(test): fix browser ui test

* fix(js): remove unused var

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: taintedcypher <119351153+taintedcypher@users.noreply.github.com>
Co-authored-by: Le fractal <17422-fractal@users.noreply.framagit.org>
Co-authored-by: Sufyaan Khateeb <81009832+SufyaanKhateeb@users.noreply.github.com>
Co-authored-by: mahmed2000 <mahmad2000@protonmail.com>
This commit is contained in:
Gabe Kangas
2025-01-14 20:54:21 -08:00
committed by GitHub
parent b45552ade0
commit cb387d88be
51 changed files with 6889 additions and 5026 deletions

20
web/i18n/ar.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/bn.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/de.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Benachrichtigen",
"Powered by Owncast": "Betrieben von Owncast",
"Documentation": "Dokumentation",
"Contribute": "Beitragen",
"Source": "Quelle",
"Skip to player": "Zum Spieler springen",
"Skip to offline message": "Zur Offline-Nachricht springen",
"Skip to page content": "Direkt zum Hauptinhalt",
"Skip to footer": "Zum Footer springen",
"Chat will be available when the stream is live": "Chat ist verfügbar, wenn der Stream live ist.",
"Chat is offline": "Chat ist offline",
"Stay updated!": "Bleiben Sie auf dem Laufenden Ihrer Tätigkeiten!",
"Click and never miss future streams!": "Klicke und verpasse niemals zukünftige Streams!",
"This stream is offline": "Dieser Stream ist offline.",
"the next time goes live": "das nächste Mal geht live",
"Follow": "Folgen",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Zuletzt live"
}

20
web/i18n/el.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/en.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/es.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notificar",
"Powered by Owncast": "Desarrollado por Owncast",
"Documentation": "Documentación",
"Contribute": "Contribuir",
"Source": "Fuente",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/fr.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Avertir",
"Powered by Owncast": "Propulsé par Owncast",
"Documentation": "Documentation",
"Contribute": "Contribuer",
"Source": "Source",
"Skip to player": "Passer au joueur",
"Skip to offline message": "Aller au message d'absence",
"Skip to page content": "Aller au contenu principal",
"Skip to footer": "Aller au pied de page",
"Chat will be available when the stream is live": "Le chat sera disponible quand le direct débutera.",
"Chat is offline": "Le chat est hors ligne",
"Stay updated!": "Restez à jour !",
"Click and never miss future streams!": "Cliquez et ne manquez jamais les futurs diffusions !",
"This stream is offline": "Ce serveur est hors-ligne.",
"the next time goes live": "la prochaine fois que diffuse en direct",
"Follow": "Suivre",
"on the Fediverse to see the next time goes live": "sur le Fédiverse pour voir la prochaine fois que lance un direct",
"Last live ago": "Dernière diffusion il y a"
}

20
web/i18n/ga.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/hi.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/hr.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

19
web/i18n/index.js Normal file
View File

@@ -0,0 +1,19 @@
const en = require('./en.json');
const es = require('./es.json');
const de = require('./de.json');
const fr = require('./fr.json');
const i18n = {
translations: {
en,
es,
de,
fr,
},
defaultLang: 'en',
useBrowserDefault: true,
// optional property, will default to "query" if not set
languageDataStore: 'query' || 'localStorage',
};
module.exports = i18n;

20
web/i18n/it.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notifica",
"Powered by Owncast": "Alimentato da Owncast",
"Documentation": "Documentazione",
"Contribute": "Contribuisci",
"Source": "Fonte",
"Skip to player": "Vai al lettore video",
"Skip to offline message": "Vai al messaggio offline",
"Skip to page content": "Vai al contenuto della pagina",
"Skip to footer": "Vai a piè di pagina",
"Chat will be available when the stream is live": "La chat sarà disponibile quando lo stream è in diretta.",
"Chat is offline": "La chat è offline",
"Stay updated!": "Rimani aggiornato!",
"Click and never miss future streams!": "Clicca e non perderti mai gli stream futuri!",
"This stream is offline": "Questo stream è offline.",
"the next time goes live": "la prossima volta che andrà in diretta",
"Follow": "Segui",
"on the Fediverse to see the next time goes live": "sul Fediverso per vedere la prossima volta che andrà in diretta",
"Last live ago": "Ultima diretta fa"
}

20
web/i18n/ja.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "通知",
"Powered by Owncast": "Owncastによる提供",
"Documentation": "ドキュメンテーション",
"Contribute": "貢献",
"Source": "ソース",
"Skip to player": "プレイヤーへスキップ",
"Skip to offline message": "オフラインメッセージへスキップ",
"Skip to page content": "メインコンテンツへスキップ",
"Skip to footer": "フッターへスキップ",
"Chat will be available when the stream is live": "チャットは配信が始まると利用できます",
"Chat is offline": "チャットはオフラインです",
"Stay updated!": "通知を受け取るようにしましょう",
"Click and never miss future streams!": "配信を見逃さないようにクリックしましょう",
"This stream is offline": "配信はオフラインです",
"the next time goes live": "次の配信で",
"Follow": "フォロー",
"on the Fediverse to see the next time goes live": "Fediverseで次回のライブを見るために",
"Last live ago": "前回の配信は 前でした"
}

20
web/i18n/ko.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/ms.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/nl.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/no.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/pa.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/pl.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/pt.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notificar",
"Powered by Owncast": "Desenvolvido por Owncast",
"Documentation": "Documentação",
"Contribute": "Contribua",
"Source": "Fonte",
"Skip to player": "Pular para o player",
"Skip to offline message": "Pular para mensagem offline",
"Skip to page content": "Pular para página de conteúdo",
"Skip to footer": "Pular para o rodapé",
"Chat will be available when the stream is live": "O Chat estará disponível quando a transmissão estiver ativa.",
"Chat is offline": "O chat está off-line",
"Stay updated!": "Mantenha-se atualizado!",
"Click and never miss future streams!": "Clique e não perca futuras transmissões!",
"This stream is offline": "Esta transmissão não está ativa.",
"the next time goes live": "a próxima transmissão será",
"Follow": "Siga",
"on the Fediverse to see the next time goes live": "no Fediverse para ver a data da próxima transmissão",
"Last live ago": "Última transmissão foi"
}

20
web/i18n/ru.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Оповещать",
"Powered by Owncast": "Работает на Owncast",
"Documentation": "Документация",
"Contribute": "Внести вклад",
"Source": "Исходный код",
"Skip to player": "Перейти к плееру",
"Skip to offline message": "Перейти к сообщениям офлайн",
"Skip to page content": "Перейти к основному содержимому",
"Skip to footer": "Перейти к нижнему колонтитулу",
"Chat will be available when the stream is live": "Чат будет доступен, когда будет запущен прямой эфир.",
"Chat is offline": "Чат не в сети",
"Stay updated!": "Будьте в курсе!",
"Click and never miss future streams!": "Кликните и никогда не пропустите будущие стримы!",
"This stream is offline": "Эта трансляция выключена.",
"the next time goes live": "в следующий раз, когда выйдет в эфир",
"Follow": "Подписаться",
"on the Fediverse to see the next time goes live": "на Fedivers, чтобы посмотреть, когда в следующий раз выйдет в прямой эфир",
"Last live ago": "Последний эфир назад"
}

1
web/i18n/strings.json Normal file
View File

@@ -0,0 +1 @@
{}

20
web/i18n/strings_old.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/sv.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/th.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/vi.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}

20
web/i18n/zh.json Normal file
View File

@@ -0,0 +1,20 @@
{
"Notify": "Notify",
"Powered by Owncast": "Powered by Owncast",
"Documentation": "Documentation",
"Contribute": "Contribute",
"Source": "Source",
"Skip to player": "Skip to player",
"Skip to offline message": "Skip to offline message",
"Skip to page content": "Skip to page content",
"Skip to footer": "Skip to footer",
"Chat will be available when the stream is live": "Chat will be available when the stream is live.",
"Chat is offline": "Chat is offline",
"Stay updated!": "Stay updated!",
"Click and never miss future streams!": "Click and never miss future streams!",
"This stream is offline": "This stream is offline.",
"the next time goes live": "the next time {{streamer}} goes live",
"Follow": "Follow",
"on the Fediverse to see the next time goes live": "on the Fediverse to see the next time goes live",
"Last live ago": "Last live {{timeAgo}} ago"
}