37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/es.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Cargando"
"back": "atrás",
"help": "Ayuda",
"loading": "Cargando",
"next": "Siguiente"
},
"dashboard": {
"warning": "¡Tenga en cuenta que este es un trabajo en progreso y algunas funciones no funcionan completamente!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Débiles",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "Se requiere dirección IP o nombre de host",
"MySQLDatabaseName": "Nombre de la base de datos MySQL",
"MySQLPassword": "Contraseña MySQL",
"MySQLServerIP": "IP del servidor MySQL",
"MySQLServerPort": "Puerto del servidor MySQL",
"MySQLUser": "Usuario MySQL",
"chooseLanguage": "Elige lengua",
"connectedToDatabase": "Conectado a la base de datos ",
"countryAndLanguage": "Ingrese su país e idioma",
"databaseNameRequired": "El nombre de la base de datos es obligatorio",
"databaseSchemaUnknown": "La versión del esquema de la base de datos es desconocida",
"databaseSetup": "Configuración de la base de datos",
"done": "hecho",
"enterDBLoginDetails": "Ingrese los datos de inicio de sesión de la base de datos",
"localSetup": "Configuración local",
"noCountry": "No se ha seleccionado ningún país",
"noLanguage": "Ningún idioma está seleccionado",
"notConnectedToDatabase": "No conectado a la base de datos",
"passwordRequired": "se requiere contraseña",
"portRequired": "El puerto es obligatorio y debe ser un número entre 0 y 65536",
"selectCountry": "Seleccionar país",
"selectLanguage": "Seleccione el idioma",
"selectedCountry": "El país seleccionado es:",
"selectedLanguage": "El idioma seleccionado es:",
"setupDatabase": "Configuración de la base de datos",
"setupNetwork": "Red interna",
"setupStorageGroups": "Grupos de almacenamiento",
"testConnection": "Conexión de prueba",
"title": "Asistente de configuración inicial",
"userRequired": "Se requiere usuario"
},
"testbed": {
"title": "Esta es un área de prueba",
"welcome": "Bienvenido a MythTV Backend ejecutándose en el host"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/et.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Laadimine"
"back": "tagasi",
"help": "ABI",
"loading": "Laadimine",
"next": "Järgmine"
},
"dashboard": {
"warning": "Pange tähele, et see töö on pooleli ja mõned funktsioonid ei tööta täielikult!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Nõrk",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "Nõutav on IP-aadress või hostinimi",
"MySQLDatabaseName": "MySQL andmebaasi nimi",
"MySQLPassword": "MySQL parool",
"MySQLServerIP": "MySQL serveri IP",
"MySQLServerPort": "MySQL serveri port",
"MySQLUser": "MySQL-i kasutaja",
"chooseLanguage": "Valige keel",
"connectedToDatabase": "Ühendatud andmebaasiga",
"countryAndLanguage": "Sisestage oma riik ja keel",
"databaseNameRequired": "Andmebaasi nimi on kohustuslik",
"databaseSchemaUnknown": "Andmebaasi skeemi versioon pole teada",
"databaseSetup": "Andmebaasi häälestus",
"done": "Valmis",
"enterDBLoginDetails": "Sisestage andmebaasi sisselogimisandmed",
"localSetup": "Lokaadi seadistamine",
"noCountry": "Riik pole valitud",
"noLanguage": "Keelt pole valitud",
"notConnectedToDatabase": "Pole andmebaasiga ühendatud",
"passwordRequired": "Parool on kohustuslik",
"portRequired": "Port on nõutav ja see peab olema number vahemikus 0 kuni 65536",
"selectCountry": "Vali riik",
"selectLanguage": "Vali keel",
"selectedCountry": "Valitud riik on:",
"selectedLanguage": "Valitud keel on:",
"setupDatabase": "Andmebaasi häälestus",
"setupNetwork": "Taustavõrk",
"setupStorageGroups": "Salvestusrühmad",
"testConnection": "Testi ühendus",
"title": "Algseadistuse viisard",
"userRequired": "Kasutaja on nõutav"
},
"testbed": {
"title": "See on katsealuse ala",
"welcome": "Tere tulemast hostis töötavasse MythTV taustaprogrammi"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/fi.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Ladataan"
"back": "Takaisin",
"help": "auta",
"loading": "Ladataan",
"next": "Seuraava"
},
"dashboard": {
"warning": "Huomaa, että tämä on työn alla ja jotkin ominaisuudet eivät toimi täysin!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Heikko",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "IP-osoite tai isäntänimi vaaditaan",
"MySQLDatabaseName": "MySQL-tietokannan nimi",
"MySQLPassword": "MySQL salasana",
"MySQLServerIP": "MySQL-palvelimen IP",
"MySQLServerPort": "MySQL-palvelimen portti",
"MySQLUser": "MySQL-käyttäjä",
"chooseLanguage": "Valitse kieli",
"connectedToDatabase": "Yhdistetty tietokantaan",
"countryAndLanguage": "Anna maasi ja kielisi",
"databaseNameRequired": "Tietokannan nimi vaaditaan",
"databaseSchemaUnknown": "Tietokantaskeeman versio on tuntematon",
"databaseSetup": "Tietokannan asetukset",
"done": "Tehty",
"enterDBLoginDetails": "Anna tietokantaan kirjautumistiedot",
"localSetup": "Kieliasetukset",
"noCountry": "Maata ei ole valittu",
"noLanguage": "Kieltä ei ole valittu",
"notConnectedToDatabase": "Ei yhdistetty tietokantaan",
"passwordRequired": "salasana tarvitaan",
"portRequired": "Portti vaaditaan, ja sen on oltava numero väliltä 0–65536",
"selectCountry": "Valitse maa",
"selectLanguage": "Valitse kieli",
"selectedCountry": "Valittu maa on:",
"selectedLanguage": "Valittu kieli on:",
"setupDatabase": "Tietokannan asetukset",
"setupNetwork": "Taustaverkko",
"setupStorageGroups": "Tallennusryhmät",
"testConnection": "Testiliitäntä",
"title": "Alkuasennuksen ohjattu toiminto",
"userRequired": "Käyttäjä vaaditaan"
},
"testbed": {
"title": "Tämä on koealue",
"welcome": "Tervetuloa MythTV Backendiin, joka toimii isännässä"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/fr.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Chargement"
"back": "Retour",
"help": "Aidez-moi",
"loading": "Chargement",
"next": "Suivant"
},
"dashboard": {
"warning": "Veuillez noter qu'il s'agit d'un travail en cours et que certaines fonctionnalités ne fonctionnent pas entièrement !"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Faible",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "L'adresse IP ou le nom d'hôte est requis",
"MySQLDatabaseName": "Nom de la base de données MySQL",
"MySQLPassword": "Mot de passe MySQL",
"MySQLServerIP": "IP du serveur MySQL",
"MySQLServerPort": "Port du serveur MySQL",
"MySQLUser": "Utilisateur MySQL",
"chooseLanguage": "Choisissez la langue",
"connectedToDatabase": "Connecté à la base de données",
"countryAndLanguage": "Entrez votre pays et votre langue",
"databaseNameRequired": "Le nom de la base de données est requis",
"databaseSchemaUnknown": "La version du schéma de la base de données est inconnue",
"databaseSetup": "Configuration de la base de données",
"done": "Terminé",
"enterDBLoginDetails": "Entrez les informations de connexion à la base de données",
"localSetup": "Configuration des paramètres régionaux",
"noCountry": "Aucun pays n'est sélectionné",
"noLanguage": "Aucune langue n'est sélectionnée",
"notConnectedToDatabase": "Non connecté à la base de données",
"passwordRequired": "Mot de passe requis",
"portRequired": "Le port est obligatoire et doit être un nombre compris entre 0 et 65536",
"selectCountry": "Choisissez le pays",
"selectLanguage": "Choisir la langue",
"selectedCountry": "Le pays sélectionné est :",
"selectedLanguage": "La langue sélectionnée est :",
"setupDatabase": "Configuration de la base de données",
"setupNetwork": "Réseau principal",
"setupStorageGroups": "Groupes de stockage",
"testConnection": "test de connexion",
"title": "Assistant de configuration initiale",
"userRequired": "L'utilisateur est requis"
},
"testbed": {
"title": "Ceci est une zone de banc d'essai",
"welcome": "Bienvenue dans MythTV Backend fonctionnant sur l'hôte"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/he.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "טעינה"
"back": "חזור",
"help": "עזרה",
"loading": "טעינה",
"next": "הבא"
},
"dashboard": {
"warning": "שימו לב שזו עבודה בתהליך וחלק מהתכונות אינן פועלות במלואן!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "חלש",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "נדרשת כתובת IP או שם מארח",
"MySQLDatabaseName": "שם מסד הנתונים של MySQL",
"MySQLPassword": "סיסמת MySQL",
"MySQLServerIP": "MySQL Server IP",
"MySQLServerPort": "יציאת שרת MySQL",
"MySQLUser": "משתמש MySQL",
"chooseLanguage": "בחר שפה",
"connectedToDatabase": "מחובר למסד נתונים",
"countryAndLanguage": "הזן את הארץ והשפה שלך",
"databaseNameRequired": "נדרש שם מסד נתונים",
"databaseSchemaUnknown": "גרסת סכימת מסד הנתונים אינה ידועה",
"databaseSetup": "הגדרת מסד נתונים",
"done": "בוצע",
"enterDBLoginDetails": "הזן את פרטי הכניסה למסד הנתונים",
"localSetup": "הגדרת מיקום",
"noCountry": "לא נבחרה מדינה",
"noLanguage": "לא נבחרה שפה",
"notConnectedToDatabase": "לא מחובר למסד נתונים",
"passwordRequired": "דרושה סיסמא",
"portRequired": "נדרשת יציאה וחייבת להיות מספר בין 0 ל-65536",
"selectCountry": "בחר מדינה",
"selectLanguage": "בחר שפה",
"selectedCountry": "המדינה שנבחרה היא:",
"selectedLanguage": "השפה שנבחרה היא:",
"setupDatabase": "הגדרת מסד נתונים",
"setupNetwork": "רשת עורפית",
"setupStorageGroups": "קבוצות אחסון",
"testConnection": "בדוק חיבור",
"title": "אשף ההתקנה הראשונית",
"userRequired": "נדרש משתמש"
},
"testbed": {
"title": "זהו אזור מבחן",
"welcome": "ברוכים הבאים ל-MythTV Backend הפועל על מארח"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/hr.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Učitavam"
"back": "leđa",
"help": "Pomozite",
"loading": "Učitavam",
"next": "sljedeći"
},
"dashboard": {
"warning": "Imajte na umu da je ovo rad u tijeku i da neke značajke ne rade u potpunosti!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Slab",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "Potrebna je IP adresa ili ime hosta",
"MySQLDatabaseName": "Ime MySQL baze podataka",
"MySQLPassword": "MySQL lozinka",
"MySQLServerIP": "IP MySQL poslužitelja",
"MySQLServerPort": "Port za MySQL poslužitelj",
"MySQLUser": "Korisnik MySQL",
"chooseLanguage": "Odaberite jezik",
"connectedToDatabase": "Povezano s bazom podataka",
"countryAndLanguage": "Unesite svoju zemlju i jezik",
"databaseNameRequired": "Naziv baze podataka je obavezan",
"databaseSchemaUnknown": "Verzija sheme baze podataka nije poznata",
"databaseSetup": "Postavljanje baze podataka",
"done": "Gotovo",
"enterDBLoginDetails": "Unesite podatke za prijavu u bazu podataka",
"localSetup": "Locale Setup",
"noCountry": "Nije odabrana nijedna država",
"noLanguage": "Nije odabran jezik",
"notConnectedToDatabase": "Nije povezan s bazom podataka",
"passwordRequired": "potrebna je lozinka",
"portRequired": "Port je obavezan i mora biti broj između 0 i 65536",
"selectCountry": "Odaberi državu",
"selectLanguage": "Izaberi jezik",
"selectedCountry": "Odabrana zemlja je:",
"selectedLanguage": "Odabrani jezik je:",
"setupDatabase": "Postavljanje baze podataka",
"setupNetwork": "Pozadinska mreža",
"setupStorageGroups": "Grupe za pohranu",
"testConnection": "Testna veza",
"title": "Čarobnjak za početno postavljanje",
"userRequired": "Korisnik je obavezan"
},
"testbed": {
"title": "Ovo je područje za testiranje",
"welcome": "Dobrodošli u MythTV Backend koji radi na hostu"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/hu.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Betöltés"
"back": "Hát",
"help": "Segítség",
"loading": "Betöltés",
"next": "Következő"
},
"dashboard": {
"warning": "Felhívjuk figyelmét, hogy ez egy folyamatban lévő munka, és néhány funkció nem működik teljesen!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Gyenge",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "Az IP-cím vagy a gazdagépnév megadása kötelező",
"MySQLDatabaseName": "MySQL adatbázis neve",
"MySQLPassword": "MySQL jelszó",
"MySQLServerIP": "MySQL Server IP",
"MySQLServerPort": "MySQL szerver port",
"MySQLUser": "MySQL felhasználó",
"chooseLanguage": "Válassz nyelvet",
"connectedToDatabase": "Adatbázishoz csatlakozva",
"countryAndLanguage": "Adja meg országát és nyelvét",
"databaseNameRequired": "Az adatbázisnév megadása kötelező",
"databaseSchemaUnknown": "Az adatbázisséma verziója ismeretlen",
"databaseSetup": "Adatbázis beállítása",
"done": "Kesz",
"enterDBLoginDetails": "Adja meg az adatbázis bejelentkezési adatait",
"localSetup": "Nyelv-beállítás",
"noCountry": "Nincs ország kiválasztva",
"noLanguage": "Nincs nyelv kiválasztva",
"notConnectedToDatabase": "Nem kapcsolódik az adatbázishoz",
"passwordRequired": "Jelszó szükséges",
"portRequired": "A port kötelező, és 0 és 65536 közötti számnak kell lennie",
"selectCountry": "Válassz országot",
"selectLanguage": "Válasszon nyelvet",
"selectedCountry": "A kiválasztott ország:",
"selectedLanguage": "A kiválasztott nyelv:",
"setupDatabase": "Adatbázis beállítása",
"setupNetwork": "Háttérhálózat",
"setupStorageGroups": "Tárolási csoportok",
"testConnection": "Tesztelje a kapcsolatot",
"title": "Kezdeti beállítás varázsló",
"userRequired": "Felhasználó szükséges"
},
"testbed": {
"title": "Ez egy próbapad terület",
"welcome": "Üdvözöljük a gazdagépen futó MythTV háttérprogramban"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/is.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Caricamento in corso"
"back": "indietro",
"help": "Aiuto",
"loading": "Caricamento in corso",
"next": "Il prossimo"
},
"dashboard": {
"warning": "Si prega di notare che questo è un lavoro in corso e alcune funzionalità non sono completamente funzionanti!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Debole",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "È richiesto l'indirizzo IP o il nome host",
"MySQLDatabaseName": "Nome del database MySQL",
"MySQLPassword": "Password MySQL",
"MySQLServerIP": "IP del server MySQL",
"MySQLServerPort": "Porta del server MySQL",
"MySQLUser": "Utente MySQL",
"chooseLanguage": "Scegli la lingua",
"connectedToDatabase": "Collegato al database",
"countryAndLanguage": "Inserisci il tuo Paese e la tua lingua",
"databaseNameRequired": "Il nome del database è obbligatorio",
"databaseSchemaUnknown": "La versione dello schema del database è sconosciuta",
"databaseSetup": "Configurazione del database",
"done": "Fatto",
"enterDBLoginDetails": "Immettere i dettagli di accesso al database",
"localSetup": "Configurazione locale",
"noCountry": "Nessun Paese è selezionato",
"noLanguage": "Nessuna lingua è selezionata",
"notConnectedToDatabase": "Non connesso al database",
"passwordRequired": "E 'richiesta la password",
"portRequired": "La porta è obbligatoria e deve essere un numero compreso tra 0 e 65536",
"selectCountry": "Seleziona il paese",
"selectLanguage": "Seleziona la lingua",
"selectedCountry": "Il Paese selezionato è:",
"selectedLanguage": "La lingua selezionata è:",
"setupDatabase": "Configurazione del database",
"setupNetwork": "Rete di backend",
"setupStorageGroups": "Gruppi di archiviazione",
"testConnection": "test di connessione",
"title": "Procedura guidata di configurazione iniziale",
"userRequired": "Utente è richiesto"
},
"testbed": {
"title": "Questa è un'area del banco di prova",
"welcome": "Benvenuto in MythTV Backend in esecuzione sull'host"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/it.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Caricamento in corso"
"back": "indietro",
"help": "Aiuto",
"loading": "Caricamento in corso",
"next": "Il prossimo"
},
"dashboard": {
"warning": "Si prega di notare che questo è un lavoro in corso e alcune funzionalità non sono completamente funzionanti!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Debole",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "È richiesto l'indirizzo IP o il nome host",
"MySQLDatabaseName": "Nome del database MySQL",
"MySQLPassword": "Password MySQL",
"MySQLServerIP": "IP del server MySQL",
"MySQLServerPort": "Porta del server MySQL",
"MySQLUser": "Utente MySQL",
"chooseLanguage": "Scegli la lingua",
"connectedToDatabase": "Collegato al database",
"countryAndLanguage": "Inserisci il tuo Paese e la tua lingua",
"databaseNameRequired": "Il nome del database è obbligatorio",
"databaseSchemaUnknown": "La versione dello schema del database è sconosciuta",
"databaseSetup": "Configurazione del database",
"done": "Fatto",
"enterDBLoginDetails": "Immettere i dettagli di accesso al database",
"localSetup": "Configurazione locale",
"noCountry": "Nessun Paese è selezionato",
"noLanguage": "Nessuna lingua è selezionata",
"notConnectedToDatabase": "Non connesso al database",
"passwordRequired": "E 'richiesta la password",
"portRequired": "La porta è obbligatoria e deve essere un numero compreso tra 0 e 65536",
"selectCountry": "Seleziona il paese",
"selectLanguage": "Seleziona la lingua",
"selectedCountry": "Il Paese selezionato è:",
"selectedLanguage": "La lingua selezionata è:",
"setupDatabase": "Configurazione del database",
"setupNetwork": "Rete di backend",
"setupStorageGroups": "Gruppi di archiviazione",
"testConnection": "test di connessione",
"title": "Procedura guidata di configurazione iniziale",
"userRequired": "Utente è richiesto"
},
"testbed": {
"title": "Questa è un'area del banco di prova",
"welcome": "Benvenuto in MythTV Backend in esecuzione sull'host"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/ja.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "読み込み中"
"back": "バック",
"help": "助けて",
"loading": "読み込み中",
"next": ""
},
"dashboard": {
"warning": "これは進行中の作業であり、一部の機能が完全に機能していないことに注意してください。"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "弱い",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "IPアドレスまたはホスト名が必要です",
"MySQLDatabaseName": "MySQLデータベース名",
"MySQLPassword": "MySQLパスワード",
"MySQLServerIP": "MySQLサーバーIP",
"MySQLServerPort": "MySQLサーバーポート",
"MySQLUser": "MySQLユーザー",
"chooseLanguage": "言語を選択",
"connectedToDatabase": "データベースに接続",
"countryAndLanguage": "国と言語を入力してください",
"databaseNameRequired": "データベース名が必要です",
"databaseSchemaUnknown": "データベーススキーマのバージョンが不明です",
"databaseSetup": "データベースの設定",
"done": "完了",
"enterDBLoginDetails": "データベースログインの詳細を入力します",
"localSetup": "ロケールの設定",
"noCountry": "国が選択されていません",
"noLanguage": "言語が選択されていません",
"notConnectedToDatabase": "データベースに接続されていません",
"passwordRequired": "パスワードが必要です",
"portRequired": "ポートは必須であり、0〜65536の数値である必要があります",
"selectCountry": "国を選択",
"selectLanguage": "言語を選択する",
"selectedCountry": "選択した国は次のとおりです。",
"selectedLanguage": "選択された言語は次のとおりです。",
"setupDatabase": "データベースの設定",
"setupNetwork": "バックエンドネットワーク",
"setupStorageGroups": "ストレージグループ",
"testConnection": "接続テスト",
"title": "初期設定ウィザード",
"userRequired": "ユーザーが必要です"
},
"testbed": {
"title": "これはテストベッドエリアです",
"welcome": "ホストで実行されているMythTVバックエンドへようこそ"
Expand Down
37 changes: 36 additions & 1 deletion mythtv/html/assets/i18n/nb.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"common": {
"loading": "Laster"
"back": "Tilbake",
"help": "Hjelp",
"loading": "Laster",
"next": "neste"
},
"dashboard": {
"warning": "Vær oppmerksom på at dette pågår og enkelte funksjoner fungerer ikke fullt ut!"
Expand Down Expand Up @@ -112,6 +115,38 @@
"weak": "Svak",
"weekHeader": "Wk"
},
"setupwizard": {
"IPorAddressRequired": "IP-adresse eller vertsnavn kreves",
"MySQLDatabaseName": "MySQL-databasenavn",
"MySQLPassword": "MySQL-passord",
"MySQLServerIP": "MySQL Server IP",
"MySQLServerPort": "MySQL-serverport",
"MySQLUser": "MySQL-bruker",
"chooseLanguage": "Velg språk",
"connectedToDatabase": "Koblet til databasen",
"countryAndLanguage": "Skriv inn land og språk",
"databaseNameRequired": "Databasenavn er påkrevd",
"databaseSchemaUnknown": "Databaseskjemaversjonen er ukjent",
"databaseSetup": "Databaseoppsett",
"done": "FERDIG",
"enterDBLoginDetails": "Skriv inn påloggingsdetaljer for databasen",
"localSetup": "Lokale oppsett",
"noCountry": "Ingen land er valgt",
"noLanguage": "Ingen språk er valgt",
"notConnectedToDatabase": "Ikke koblet til databasen",
"passwordRequired": "Passord er påkrevd",
"portRequired": "Port er påkrevd og må være et tall mellom 0 og 65536",
"selectCountry": "Velg land",
"selectLanguage": "Velg språk",
"selectedCountry": "Valgt land er:",
"selectedLanguage": "Valgt språk er:",
"setupDatabase": "Databaseoppsett",
"setupNetwork": "Backend-nettverk",
"setupStorageGroups": "Lagringsgrupper",
"testConnection": "Testforbindelse",
"title": "Veiviser for første oppsett",
"userRequired": "Bruker kreves"
},
"testbed": {
"title": "Dette er et testbed-område",
"welcome": "Velkommen til MythTV Backend som kjører på vert"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
<p-dialog header="Backend Network Setup - Help" [(visible)]="m_showHelp">
<h4>Some very helpful help text goes here</h4>
<p>Some more very very helpful text goes here!</p>
</p-dialog>

<div class="wizard-content">
<p-card>
<ng-template pTemplate="title">
Expand All @@ -13,9 +18,10 @@
</ng-template>
<ng-template pTemplate="footer">
<div class="p-grid p-nogutter p-justify-end">
<p-button class="pr-1" label="Back" (onClick)="previousPage()" icon="pi pi-angle-left" iconPos="left"></p-button>
<p-button label="Next" (onClick)="nextPage()" icon="pi pi-angle-right" iconPos="right"></p-button>
<p-button class="pr-1" label="{{ 'common.back' | translate }}" (onClick)="previousPage()" icon="pi pi-angle-left" iconPos="left"></p-button>
<p-button label="{{'common.next' | translate}}" (onClick)="nextPage()" icon="pi pi-angle-right" iconPos="right"></p-button>
</div>
<p-button style="float: right;" label="{{'common.help' | translate}}" (onClick)="showHelp()" icon="pi pi-info-circle" styleClass="p-button-info" ></p-button>
</ng-template>
</p-card>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import { ConfigService } from '../../../services/config.service';
})
export class BackendnetworkComponent implements OnInit {

m_showHelp: boolean = false;

constructor(private router: Router,
private configService: ConfigService) { }

Expand All @@ -26,4 +28,8 @@ export class BackendnetworkComponent implements OnInit {
this.router.navigate(['settings/sgsetup']);
return;
}

showHelp() {
this.m_showHelp = true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,71 +8,71 @@ <h4>Some very helpful help text goes here</h4>
<form class="ml-3 mr-3" name="databaseForm" #databaseForm="ngForm" (ngSubmit)="saveForm()">
<p-card class="m-5">
<ng-template pTemplate="title">
Database Setup
{{ 'setupwizard.databaseSetup' | translate }}
</ng-template>
<ng-template pTemplate="subtitle">
Enter the database login details
{{ 'setupwizard.enterDBLoginDetails' | translate }}
</ng-template>
<ng-template pTemplate="content">
<div class="formgrid grid form-group">
<div class="field col-12 md:col-6">
<label for="ipaddress" class="block">MySQL Server IP</label>
<label for="ipaddress" class="block">{{ 'setupwizard.MySQLServerIP' | translate }}</label>
<input pInputText id="ipaddress" type="text" aria-describedby="ipaddress-help"
[(ngModel)]="m_wizardData.Database.Host" name="hostname" #host="ngModel" class="form-control w-full"
[ngClass]="{'is-invalid': host.invalid }" placeholder="Ex. 127.0.0.1 or localhost" required />
<div *ngIf="host.invalid && (host.dirty || host.touched)">
<small id="address-help" class="p-error block">Ip Address or Hostname is required</small>
<small id="address-help" class="p-error block">{{ 'setupwizard.IPorAddressRequired' | translate }}</small>
</div>
</div>

<div class="field col-12 md:col-6">
<label for="port" class="block">MySQL Server Port</label>
<label for="port" class="block">{{ 'setupwizard.MySQLServerPort' | translate }}</label>
<input pInputText id="port" type="number" aria-describedby="port-help"
[(ngModel)]="m_wizardData.Database.Port" name="port" #port="ngModel" class="form-control" placeholder="Ex. 3306" min="0" max="65536"/>
<div *ngIf="port.invalid && (port.dirty || port.touched)">
<small id="port-help" class="p-error block">Port is required and must be a number between 0 and 65536</small>
<small id="port-help" class="p-error block">{{ 'setupwizard.portRequired' | translate }}</small>
</div>
</div>

<div class="field col-12 md:col-6">
<label for="user" class="block">MySQL User</label>
<label for="user" class="block">{{ 'setupwizard.MySQLUser' | translate }}</label>
<input pInputText id="user" type="text" aria-describedby="user-help"
[(ngModel)]="m_wizardData.Database.UserName" name="user" #user="ngModel" class="form-control w-full" placeholder="Ex. mythtv" required/>
<div *ngIf="user.invalid && (user.dirty || user.touched)">
<small id="user-help" class="p-error block">User is required</small>
<small id="user-help" class="p-error block">{{ 'setupwizard.userRequired' | translate }}</small>
</div>
</div>
<div class="field col-12 md:col-6">
<label for="password" class="block">MySQL Password</label>
<label for="password" class="block">{{ 'setupwizard.MySQLPassword' | translate }}</label>
<input pInputText id="password" type="text" aria-describedby="password-help"
[(ngModel)]="m_wizardData.Database.Password" name="password" #password="ngModel" class="form-control w-full" placeholder="Ex. mythtv" required/>
<div *ngIf="password.invalid && (password.dirty || password.touched)">
<small id="password-help" class="p-error block">Password is required</small>
<small id="password-help" class="p-error block">{{ 'setupwizard.passwordRequired' | translate }}</small>
</div>
</div>

<div class="field col-12 md:col-6">
<label for="dbname" class="block">MySQL Database Name</label>
<label for="dbname" class="block">{{ 'setupwizard.MySQLDatabaseName' | translate }}</label>
<input pInputText id="dbname" type="text" aria-describedby="dbname-help"
[(ngModel)]="m_wizardData.Database.Name" name="dbname" #dbname="ngModel" class="form-control w-full" placeholder="Ex. mythconverg" required/>
<div *ngIf="dbname.invalid && (dbname.dirty || dbname.touched)">
<small id="dbname-help" class="p-error block">Database Name is required</small>
<small id="dbname-help" class="p-error block">{{ 'setupwizard.databaseNameRequired' | translate }}</small>
</div>
</div>
</div>
<div>
<button pButton type="button" class="mr-1 p-button-raised p-button-secondary" (click)="testConnection()" [disabled]="databaseForm.invalid">Test Connection</button>
<p-button type="button" class="mr-1 p-button-raised p-button-secondary" label="{{ 'setupwizard.testConnection' | translate }}" (click)="testConnection()" [disabled]="databaseForm.invalid == null || databaseForm.invalid"></p-button>
</div>

<div class="pt-4" style="display: flex">
<!-- connected -->
<div *ngIf="m_wizardData.DatabaseStatus.DatabaseStatus.Connected else notconnected">
<p-message class="pr-2" severity="success" text="Connected to database"></p-message>
<p-message class="pr-2" severity="success" text="{{ 'setupwizard.connectedToDatabase' | translate }}"></p-message>
</div>

<ng-template #notconnected>
<div #notconnected class="pr-2 notconnected">
<p-message class="" severity="error" text="Not connected to database"></p-message>
<p-message class="" severity="error" text="{{ 'setupwizard.notConnectedToDatabase' | translate }}"></p-message>
</div>
</ng-template>

Expand All @@ -95,7 +95,7 @@ <h4>Some very helpful help text goes here</h4>

<ng-template #noschema>
<div #nodatabase class="pr-2 noschema">
<p-message severity="info" text="Database schema version is unknown"></p-message>
<p-message severity="info" text="{{ 'setupwizard.databaseSchemaUnknown' | translate }}"></p-message>
</div>
</ng-template>
</div>
Expand All @@ -104,11 +104,11 @@ <h4>Some very helpful help text goes here</h4>

<ng-template pTemplate="footer">
<div class="p-grid p-nogutter p-justify-end">
<p-button class="pr-1" label="Back" (onClick)="previousPage()" icon="pi pi-angle-left" iconPos="left"></p-button>
<p-button label="Next" (onClick)="nextPage()" icon="pi pi-angle-right" iconPos="right"
<p-button class="pr-1" label="{{ 'common.back' | translate }}" (onClick)="previousPage()" icon="pi pi-angle-left" iconPos="left"></p-button>
<p-button label="{{'common.next' | translate}}" (onClick)="nextPage()" icon="pi pi-angle-right" iconPos="right"
[disabled]="databaseForm.invalid || !m_wizardData.DatabaseStatus.DatabaseStatus.Connected || !m_wizardData.DatabaseStatus.DatabaseStatus.HaveDatabase">
</p-button>
<p-button style="float: right;" label="Help" (onClick)="showHelp()" icon="pi pi-info-circle" styleClass="p-button-info" ></p-button>
<p-button style="float: right;" label="{{'common.help' | translate}}" (onClick)="showHelp()" icon="pi pi-info-circle" styleClass="p-button-info" ></p-button>
</div>
</ng-template>
</p-card>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.language-item {
display: flex;
align-items: center;
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ <h4>Some very helpful help text goes here</h4>
<div class="wizard-content m-3">
<p-card>
<ng-template pTemplate="title">
Locale Setup
{{ 'setupwizard.localSetup' | translate }}
</ng-template>
<ng-template pTemplate="subtitle">
Enter your Country and Language
{{ 'setupwizard.countryAndLanguage' | translate }}
</ng-template>
<ng-template pTemplate="content">
<div class="grid m-3">
Expand All @@ -19,29 +19,23 @@ <h4>Some very helpful help text goes here</h4>
[filter]="true" optionLabel="Country" [listStyle]="{'max-height':'460px', 'min-height':'460px'}"
(onChange)="countrySelected($event)">
<ng-template pTemplate="header">
<h2>Select Country</h2>
<h2>{{ 'setupwizard.selectCountry' | translate }}</h2>
</ng-template>
<ng-template let-country pTemplate="item">
<div #countryrow [attr.id]="country.Code" style="align-items: center;" class="country-item">
<img src="images/locale/{{country.Image}}" style="width:50px;height:30px;"> <span
class="badge pl-2"></span>{{country.Code}} {{country.Country}}
{{country.NativeCountry}}
<div #countryrow [attr.id]="country.Code" class="language-item">
<img class="pr-3" src="images/locale/{{country.Image}}" style="width:70px">
<pre><span class="font-bold">{{country.Country}}</span>{{country.NativeCountry !== null ? " - " + country.NativeCountry : ""}} ({{ country.Code}})</pre>
</div>
</ng-template>
<!-- <ng-template pTemplate="footer">
<div class="p-4">
<h3>Footer Content</h3>
</div>
</ng-template> -->
</p-listbox>

<div class="pt-5" *ngIf="((m_wizardData.Country.Code != '')) else noCountry">
<p-message severity="success" text="Selected Country is: {{m_wizardData.Country.Country}}">
<p-message severity="success" text="{{ 'setupwizard.selectedCountry' | translate }} {{m_wizardData.Country.Country}}">
</p-message>
</div>
<ng-template #noCountry>
<div class="pt-5">
<p-message severity="error" text="No Country is selected"></p-message>
<p-message severity="error" text="{{ 'setupwizard.noCountry' | translate }}"></p-message>
</div>
</ng-template>

Expand All @@ -53,26 +47,23 @@ <h3>Footer Content</h3>
[listStyle]="{'max-height':'460px', 'min-height':'460px'}"
(onChange)="languageSelected($event)">
<ng-template pTemplate="header">
<h2>Select Language</h2>
<h2>{{ 'setupwizard.selectLanguage' | translate }}</h2>
</ng-template>
<ng-template let-language pTemplate="item" >
<div #languagerow [attr.id]="language.Code" class="language-item">
<img src="images/locale/{{language.Image}}" style="width:50px;height:30px;">
<span class="pl-2">{{language.Language}} - {{language.NativeLanguage}} ({{language.Code}})</span>
<img class="pr-3" src="images/locale/{{language.Image}}" style="width:70px">
<pre><span class="font-bold">{{language.Language}}</span> - {{language.NativeLanguage}} ({{language.Code}})</pre>
</div>
</ng-template>
<!-- <ng-template pTemplate="footer">
Language selected: {{m_selectedLanguages[0].Language}}
</ng-template> -->
</p-listbox>

<div class="pt-5" *ngIf="(m_wizardData.Language.Code != '') else noLanguage">
<p-message severity="success" text="Selected Language is: {{m_wizardData.Language.NativeLanguage}}">
<p-message severity="success" text="{{ 'setupwizard.selectedLanguage' | translate }} {{m_wizardData.Language.NativeLanguage}}">
</p-message>
</div>
<ng-template #noLanguage>
<div class="pt-5">
<p-message class="pt-2" severity="error" text="No Language is selected"></p-message>
<p-message class="pt-2" severity="error" text="{{ 'setupwizard.noLanguage' | translate }}"></p-message>
</div>
</ng-template>
</div>
Expand All @@ -81,10 +72,10 @@ <h2>Select Language</h2>

<ng-template pTemplate="footer">
<div class="p-grid p-nogutter p-justify-end">
<p-button label="Next" (onClick)="nextPage()" icon="pi pi-angle-right" iconPos="right"
<p-button label="{{ 'common.next' | translate }}" (onClick)="nextPage()" icon="pi pi-angle-right" iconPos="right"
[disabled]="(m_wizardData.Country.Code == '') || (m_wizardData.Language.Code == '')">
</p-button>
<p-button style="float: right;" label="Help" (onClick)="showHelp()" icon="pi pi-info-circle" styleClass="p-button-info" ></p-button>
<p-button style="float: right;" label="{{ 'common.help' | translate }}" (onClick)="showHelp()" icon="pi pi-info-circle" styleClass="p-button-info" ></p-button>
</div>
</ng-template>
</p-card>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div class="content-section implementation">
<div class="card">
<h1>Initial Setup Wizard</h1>
<h1>{{ 'setupwizard.title' | translate }}</h1>
<p-steps [model]="wizardItems" [readonly]="true"></p-steps>
</div>
<router-outlet></router-outlet>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import { Component, Input, OnInit } from '@angular/core';
import { ConfigService } from '../../services/config.service';
import { MenuItem } from 'primeng/api';
import { Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';


@Component({
selector: 'app-settings',
Expand All @@ -11,29 +13,29 @@ import { Router } from '@angular/router';
export class SetupWizardComponent implements OnInit {

constructor(private router: Router,
private configService: ConfigService) { }

private configService: ConfigService,
private translate: TranslateService) { }
wizardItems: MenuItem[] = [];

ngOnInit(): void {
this.wizardItems = [{
label: 'Choose Language',
label: this.translate.instant('setupwizard.chooseLanguage'),
routerLink: 'selectlanguage'
},
{
label: 'Database Setup',
label: this.translate.instant('setupwizard.setupDatabase'),
routerLink: 'dbsetup'
},
{
label: 'Backend Network',
label: this.translate.instant('setupwizard.setupNetwork'),
routerLink: 'backendnetwork'
},
{
label: 'Storage Groups',
label: this.translate.instant('setupwizard.setupStorageGroups'),
routerLink: 'sgsetup'
},
{
label: 'Done',
label: this.translate.instant('setupwizard.done'),
routerLink: 'restart'
}
];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<h1>Dashboard</h1>
<p-card class="p2">
<div><p-message severity="warn" text="Please note this is a work in progress and some features are not fully working!"></p-message></div>
<div><p-message severity="warn" text="{{ 'dashboard.warning' | translate }}"></p-message></div>
</p-card>
<div class="grid m-2">
<div class="col-12 md:col-6 lg:col-3">
Expand Down
9 changes: 6 additions & 3 deletions mythtv/html/backend/src/app/testbed/testbed.component.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<h1>This screen is a testbed area</h1><hr>
<h1>{{ 'testbed.title' | translate }}</h1><hr>
<div *ngIf="(m_hostname$ | async)?.String as hostname; else loading">
<p>Welcome to MythTV Backend running on host {{hostname}}</p>
<p>{{ 'testbed.welcome' | translate }} {{hostname}}</p>
</div>
<div *ngIf="(m_timezone$ | async)?.TimeZoneInfo as timezone; else loading">
<p>It is currently {{timezone.CurrentDateTime}} in timezone {{timezone.TimeZoneID}}, UTC offset
Expand Down Expand Up @@ -28,9 +28,12 @@ <h1>This screen is a testbed area</h1><hr>
</ng-template>

<ng-template #loading>
<p>Loading ...</p>
<p>{{ 'common.loading' | translate }} ...</p>
</ng-template>


<p-button class="p-2" (click)="setSecurityPin('1234')">Set PIN to 1234</p-button>
<p-button (click)="setSecurityPin('0000')">Set PIN to 0000</p-button>

<h4>Translation Test</h4>
<div>{{ 'primeng.passwordPrompt' | translate }}</div>