-
var translations = {
- 'ca': {
- 'tr-load': 'Descarregueu el microprogramari OpenWrt per al vostre dispositiu!',
- 'tr-title': 'Selector de microprogramari OpenWrt',
- 'tr-message': 'Feu servir el formulari de sota per seleccionar i descarregar el microprogramari per al vostre dispositiu!',
- 'tr-version-build': 'Compilació',
- 'tr-custom-build': 'Compilació personalitzada',
- 'tr-customize': 'Personalitzar',
- 'tr-request-build': 'Demanar la compilació',
- 'tr-model': 'Model:',
- 'tr-target': 'Plataforma:',
- 'tr-version': 'Versió:',
- 'tr-date': 'Data:',
- 'tr-downloads': 'Descàrregues',
- 'tr-custom-downloads': 'Descàrregues personalitzades',
- 'tr-factory-help': 'Les imatges Factory són per instal·lar OpenWrt als dispositius per primera vegada. Usualment, això es fa a través de la interfície web del microprogramari original.',
- 'tr-sysupgrade-help': 'Les imatges Sysupgrade són per instal·lar-les als dispositius que ja tenen OpenWrt. La imatge es pot instal·lar a través de la interfície web o del terminal.',
- 'tr-kernel-help': 'El nucli de Linux en una imatge separada.',
- 'tr-rootfs-help': 'El sistema de fitxers arrel en una imatge separada.',
- 'tr-sdcard-help': 'Una imatge feta per escriure-la a una targeta SD.',
- 'tr-tftp-help': 'Les imatges TFTP images es fan servir per instal·lar-les a un dispositiu mitjançant el mètode TFTP del carregador d\'arrencada.',
- 'tr-other-help': 'Un altre tipus d\'imatge.',
- 'tr-build-successful': 'La compilació ha tingut èxit',
- 'tr-build-failed': 'La compilació ha fallat',
- 'tr-request-image': 'Demanar la imatge',
- 'tr-check-again': 'Proveu de nou d\'aquí 5 segons...'
- },
- 'en': {
- 'tr-load': 'Download OpenWrt firmware for your device!',
- 'tr-title': 'OpenWrt Firmware Selector',
- 'tr-message': 'Please use the input below to download firmware for your device!',
- 'tr-version-build': 'Build',
- 'tr-custom-build': 'Custom Build',
- 'tr-customize': 'Customize',
- 'tr-request-build': 'Request Build',
- 'tr-model': 'Model:',
- 'tr-target': 'Platform:',
- 'tr-version': 'Version:',
- 'tr-date': 'Date:',
- 'tr-downloads': 'Downloads',
- 'tr-custom-downloads': 'Custom Downloads',
- 'tr-factory-help': 'Factory images are for flashing routers with OpenWrt for the first time. Usually via the web interface of the original firmware.',
- 'tr-sysupgrade-help': 'Sysupgrade images are for flashing routers that already run OpenWrt. The image can be applied using the web interface or the terminal.',
- 'tr-kernel-help': 'Linux kernel as a separate image.',
- 'tr-rootfs-help': 'Root file system as a separate image.',
- 'tr-sdcard-help': 'Image that is meant to be flashed onto a SD-Card.',
- 'tr-tftp-help': 'TFTP images are used to flash a device via the TFTP method of the bootloader.',
- 'tr-other-help': 'Other image type.',
- 'tr-build-successful': 'Build successful',
- 'tr-build-failed': 'Build failed',
- 'tr-request-image': 'Request image',
- 'tr-check-again': 'Check again in 5 seconds...'
- },
- 'es': {
- 'tr-load': 'Descargue el firmware OpenWrt para su dispositivo!',
- 'tr-title': 'Selector de firmware OpenWrt',
- 'tr-message': 'Utilice la entrada a continuación para descargar el firmware de su dispositivo!',
- 'tr-version-build': 'Compilar',
- 'tr-custom-build': 'Compilación personalizada',
- 'tr-customize': 'Personalizar',
- 'tr-request-build': 'Solicitar compilación',
- 'tr-model': 'Modelo:',
- 'tr-target': 'Plataforma:',
- 'tr-version': 'Versión:',
- 'tr-date': 'Fecha:',
- 'tr-downloads': 'Descargas',
- 'tr-custom-downloads': 'Descargas personalizadas',
- 'tr-factory-help': 'Las imágenes de fábrica son para enrutadores intermitentes con OpenWrt por primera vez. Generalmente a través de la interfaz web del firmware original.',
- 'tr-sysupgrade-help': 'Las imágenes de Sysupgrade son para enrutadores intermitentes que ya ejecutan OpenWrt. La imagen se puede aplicar utilizando la interfaz web o el terminal.',
- 'tr-kernel-help': 'Kernel de Linux como una imagen separada.',
- 'tr-rootfs-help': 'Sistema de archivos raíz como una imagen separada.',
- 'tr-sdcard-help': 'Imagen que debe ser mostrada en una tarjeta SD.',
- 'tr-tftp-help': 'Las imágenes TFTP se utilizan para flashear un dispositivo mediante el método TFTP del gestor de arranque.',
- 'tr-other-help': 'Otro tipo de imagen.',
- 'tr-build-successful': 'Compilación exitosa',
- 'tr-build-failed': 'Compilación fallida',
- 'tr-request-image': 'Solicitar imagen',
- 'tr-check-again': 'Verifique nuevamente en 5 segundos...'
- },
- 'no': {
- 'tr-load': 'Last ned OpenWrt fastvare for din enhet!',
- 'tr-title': 'OpenWrt fastvare utvelger',
- 'tr-message': 'Bruk feltene nedenfor for å laste ned fastvare til enheten din!',
- 'tr-version-build': 'Sammensetning',
- 'tr-custom-build': 'Tilpasset sammensetning',
- 'tr-customize': 'Tilpasse',
- 'tr-request-build': 'Be om sammensetning',
- 'tr-model': 'Modell:',
- 'tr-target': 'Platform:',
- 'tr-version': 'Versjon:',
- 'tr-date': 'Dato:',
- 'tr-downloads': 'Nedlastninger',
- 'tr-custom-downloads': 'Tilpassede nedlastninger',
- 'tr-factory-help': 'Factory avbildningen er for å laste rutere med OpenWrt første gang. Vanligvis via webgrensesnittet til den originale fastvaren.',
- 'tr-sysupgrade-help': 'Sysupgrade avbildningen er for rutere som allerede benytter OpenWrt. Avbildningen innstaleres gjennom webgrensesnittet eller terminalen.',
- 'tr-kernel-help': 'Linux kjernen som en egen avbildning.',
- 'tr-rootfs-help': 'Rotfilsystem som en egen avbildning.',
- 'tr-sdcard-help': 'Avbildning som er ment for et SD-kort.',
- 'tr-tftp-help': 'TFTP avbildninger er for å laste enheter via TFTP metoden i oppstartsprosedyren.',
- 'tr-other-help': 'Andre avbildningstyper.',
- 'tr-build-successful': 'Vellykket sammensetning',
- 'tr-build-failed': 'Sammensetningen feilet',
- 'tr-request-image': 'Be om avbildning',
- 'tr-check-again': 'Sjekk pånytt om 5 sekunder...'
- },
- 'de': {
- 'tr-load': 'Lade die OpenWrt Firmware für dein Gerät!',
- 'tr-title': 'OpenWrt Firmware Selector',
- 'tr-message': 'Bitte benutze die Eingabe um die passende Firmware zu finden!',
- 'tr-version-build': 'Release Build',
- 'tr-custom-build': 'Custom Build',
- 'tr-customize': 'Customize',
- 'tr-request-build': 'Request Build',
- 'tr-model': 'Model:',
- 'tr-target': 'Target',
- 'tr-version': 'Version:',
- 'tr-date': 'Datum:',
- 'tr-downloads': 'Downloads',
- 'tr-custom-downloads': 'Custom Downloads',
- 'tr-factory-help': 'Factory Abbilder werden über die Weboberfläche der originalen Firmware eingespielt.',
- 'tr-sysupgrade-help': 'Sysupgrade Abbilder werden für Geräte verwendet, die bereits OpenWrt laufen haben. Es ist möglich, existierende Einstellungen beizubehalten.',
- 'tr-kernel-help': 'Linux Kernel als separates Abbild.',
- 'tr-rootfs-help': 'Das Root Dateisystem als separates Abbild.',
- 'tr-sdcard-help': 'Image für SD Speicherkarten.',
- 'tr-tftp-help': 'TFTP Dateien können verwendet werden, um ein Gerät über die TFTP Method des Bootloader zu flashen.',
- 'tr-other-help': 'Sonstiger Imagetyp.',
- 'tr-build-successful': 'Build erfolgreich',
- 'tr-build-failed': 'Build fehlgeschlagen',
- 'tr-request-image': 'Frage nach image',
- 'tr-check-again': 'Nochmal nachfragen in 5 Sekunden...'
- },
- 'fr': {
- 'tr-load': 'Télécharger le firmware OpenWrt de votre périphérique !',
- 'tr-title': 'Sélecteur de Firmware',
- 'tr-message': 'Utiliser les entrées ci-dessous pour télécharger le firmware de votre périphérique !',
- 'tr-version-build': 'Build',
- 'tr-custom-build': 'Build Personnalisé',
- 'tr-customize': 'Personnalisation',
- 'tr-request-build': 'Requête de Build',
- 'tr-model': 'Modèle:',
- 'tr-target': 'Platform:',
- 'tr-version': 'Version:',
- 'tr-date': 'Date:',
- 'tr-downloads': 'Téléchargements',
- 'tr-custom-downloads': 'Téléchargements Personnalusés',
- 'tr-factory-help': 'Les images Factory sont prévues pour flasher les routers avec OpenWrt pour la première fois. Habituellement à partir de l\'interface web du firmware d\'origine.',
- 'tr-sysupgrade-help': 'Les images Sysupgrade sont prévues pour flasher les routers fonctionnant déjà avec OpenWrt. L\'image peut être installée à travers l\'interface web ou par le terminal.',
- 'tr-kernel-help': 'Linux kernel comme image séparée.',
- 'tr-rootfs-help': 'Root file system comme image séparée.',
- 'tr-sdcard-help': 'Image prévue pour être flashée sur une carte SD.',
- 'tr-tftp-help': 'TFTP images prévues pour flasher le périphérique via le démarrage par méthode TFTP.',
- 'tr-other-help': 'Autre type d\'image.',
- 'tr-build-successful': 'Succès du Build',
- 'tr-build-failed': 'Échec du Build',
- 'tr-request-image': 'Demade d\'image',
- 'tr-check-again': 'Essayer à nouveau dans 5 secondes...'
- },
- 'it': {
- 'tr-load': 'Scarica il firmware OpenWrt per il tuo dispositivo!',
- 'tr-title': 'OpenWrt Firmware Selector',
- 'tr-message': 'Usa la casella sottostante per scaricare il firmware per il tuo dispositivo!',
- 'tr-version-build': 'Build',
- 'tr-custom-build': 'Custom Build',
- 'tr-customize': 'Personalizza',
- 'tr-request-build': 'Richiedi Build',
- 'tr-model': 'Modell:',
- 'tr-target': 'Platform:',
- 'tr-version': 'Version:',
- 'tr-date': 'Data:',
- 'tr-downloads': 'Downloads',
- 'tr-custom-downloads': 'Download Personalizzati',
- 'tr-factory-help': 'Factory Image sono usate per installare OpenWrt su router per la prima volta. Di solito l\'immagine può essere applicata via l\'interfaccia web del firmware originale.',
- 'tr-sysupgrade-help': 'Sysupgrade Image sono usate per flashare router in cui OpenWrt è già installato. L\'immagine può essere applicata via interfaccia web o terminale.',
- 'tr-kernel-help': 'Linux kernel come immagine separata.',
- 'tr-rootfs-help': 'Root file system come immagine separata.',
- 'tr-sdcard-help': 'Immagine da flashare su scheda SD-Card separata.',
- 'tr-tftp-help': 'Immagini TFTP images sono usate per flashare un dispositivo con il metodo TFTP del bootloader.',
- 'tr-other-help': 'Other image type.',
- 'tr-build-successful': 'Build compilata con successo',
- 'tr-build-failed': 'Build fallita',
- 'tr-request-image': 'Richiedi immagine',
- 'tr-check-again': 'Prova di nuovo in 5 secondi...'
- },
- 'pl': {
- 'tr-load': 'Pobieranie oprogramowania OpenWrt!',
- 'tr-title': 'OpenWrt Firmware Selector',
- 'tr-message': 'Użyj pola poniżej żeby znaleźć obraz dla swojego urządzenia!',
- 'tr-version-build': 'Informacje o obrazie',
- 'tr-custom-build': 'Informacje o zmodyfikowanym obrazie',
- 'tr-customize': 'Modyfikacja',
- 'tr-request-build': 'Żądanie budowy obrazu',
- 'tr-model': 'Model:',
- 'tr-target': 'Platforma:',
- 'tr-version': 'Wersja:',
- 'tr-date': 'Data:',
- 'tr-downloads': 'Obrazy do pobrania',
- 'tr-custom-downloads': 'Zmodyfikowane obrazy do pobrania',
- 'tr-factory-help': 'Obraz factory używany jest do pierwszej instalacji OpenWrt. Zwykle można go użyć wykorzystując interfejs graficzny oryginalnego oprogramowania.',
- 'tr-sysupgrade-help': 'Obraz sysuprade używany jest do aktualizacji routerów z zainstalowanym już OpenWrt. Obraz można użyć przez GUI lub konsolę.',
- 'tr-kernel-help': 'Osobny obraz z kernelem linuksowym.',
- 'tr-rootfs-help': 'Osobny obraz z system plików.',
- 'tr-sdcard-help': 'Obraz do wgrania na kartę SD.',
- 'tr-tftp-help': 'Obraz TFTP służący do aktualizacji urządzenia z wykorzystaniem TFTP i bootloadera.',
- 'tr-other-help': 'Inny typ obrazu.',
- 'tr-build-successful': 'Budowanie zakończone pomyślnie',
- 'tr-build-failed': 'Błąd budowania',
- 'tr-request-image': 'Żądanie obrazu',
- 'tr-check-again': 'Sprawdź ponownie za 5 sekund...'
- },
- 'tr': {
- 'tr-load': 'Cihazınız için OpenWrt yazılımını indirin!',
- 'tr-title': 'OpenWrt Yazılım Seçicisi',
- 'tr-message': 'Cihazınız için yazılımı indirmek için lütfen aşağıdaki girişi kullanın!',
- 'tr-version-build': 'Sürüm',
- 'tr-custom-build': 'Özel Sürüm',
- 'tr-customize': 'Özelleştir',
- 'tr-request-build': 'Sürüm Oluştur',
- 'tr-model': 'Model:',
- 'tr-target': 'Platform:',
- 'tr-version': 'Versiyon:',
- 'tr-date': 'Tarih:',
- 'tr-downloads': 'İndirmeler',
- 'tr-custom-downloads': 'Özel İndirmeler',
- 'tr-factory-help': 'Fabrika imajları, ilk kez OpenWrt yüklenen cihazlar içindir. Genellikle orijinal ürün yazılımının web arayüzü üzerinden yüklenir.',
- 'tr-sysupgrade-help': 'Sysupgrade imajları, zaten OpenWrt kurulu cihazlar içindir. İmaj, web arayüzü veya terminal kullanılarak yüklenebilir.',
- 'tr-kernel-help': 'Linux kernel ayrı bir imaj olarak.',
- 'tr-rootfs-help': 'Kök Dosya Sistemi ayrı bir imaj olarak.',
- 'tr-sdcard-help': 'SD-Kart \'a kurulması planlanan imaj',
- 'tr-tftp-help': 'TFTP imajları, Bootloader \'ın TFTP yöntemi ile bir cihaza kurulması için kullanılır.',
- 'tr-other-help': 'Diğer imaj türü.',
- 'tr-build-successful': 'Oluşturma başarılı',
- 'tr-build-failed': 'Oluşturma başarısız',
- 'tr-request-image': 'Imaj oluştur',
- 'tr-check-again': '5 saniye icinde tekrar dene...'
- }
+ ca: {
+ "tr-load":
+ "Descarregueu el microprogramari OpenWrt per al vostre dispositiu!",
+ "tr-title": "Selector de microprogramari OpenWrt",
+ "tr-message":
+ "Feu servir el formulari de sota per seleccionar i descarregar el microprogramari per al vostre dispositiu!",
+ "tr-version-build": "Compilació",
+ "tr-custom-build": "Compilació personalitzada",
+ "tr-customize": "Personalitzar",
+ "tr-request-build": "Demanar la compilació",
+ "tr-model": "Model:",
+ "tr-target": "Plataforma:",
+ "tr-version": "Versió:",
+ "tr-date": "Data:",
+ "tr-downloads": "Descàrregues",
+ "tr-custom-downloads": "Descàrregues personalitzades",
+ "tr-factory-help":
+ "Les imatges Factory són per instal·lar OpenWrt als dispositius per primera vegada. Usualment, això es fa a través de la interfície web del microprogramari original.",
+ "tr-sysupgrade-help":
+ "Les imatges Sysupgrade són per instal·lar-les als dispositius que ja tenen OpenWrt. La imatge es pot instal·lar a través de la interfície web o del terminal.",
+ "tr-kernel-help": "El nucli de Linux en una imatge separada.",
+ "tr-rootfs-help": "El sistema de fitxers arrel en una imatge separada.",
+ "tr-sdcard-help": "Una imatge feta per escriure-la a una targeta SD.",
+ "tr-tftp-help":
+ "Les imatges TFTP images es fan servir per instal·lar-les a un dispositiu mitjançant el mètode TFTP del carregador d'arrencada.",
+ "tr-other-help": "Un altre tipus d'imatge.",
+ "tr-build-successful": "La compilació ha tingut èxit",
+ "tr-build-failed": "La compilació ha fallat",
+ "tr-request-image": "Demanar la imatge",
+ "tr-check-again": "Proveu de nou d'aquí 5 segons...",
+ },
+ en: {
+ "tr-load": "Download OpenWrt firmware for your device!",
+ "tr-title": "OpenWrt Firmware Selector",
+ "tr-message":
+ "Please use the input below to download firmware for your device!",
+ "tr-version-build": "Build",
+ "tr-custom-build": "Custom Build",
+ "tr-customize": "Customize",
+ "tr-request-build": "Request Build",
+ "tr-model": "Model:",
+ "tr-target": "Platform:",
+ "tr-version": "Version:",
+ "tr-date": "Date:",
+ "tr-downloads": "Downloads",
+ "tr-custom-downloads": "Custom Downloads",
+ "tr-factory-help":
+ "Factory images are for flashing routers with OpenWrt for the first time. Usually via the web interface of the original firmware.",
+ "tr-sysupgrade-help":
+ "Sysupgrade images are for flashing routers that already run OpenWrt. The image can be applied using the web interface or the terminal.",
+ "tr-kernel-help": "Linux kernel as a separate image.",
+ "tr-rootfs-help": "Root file system as a separate image.",
+ "tr-sdcard-help": "Image that is meant to be flashed onto a SD-Card.",
+ "tr-tftp-help":
+ "TFTP images are used to flash a device via the TFTP method of the bootloader.",
+ "tr-other-help": "Other image type.",
+ "tr-build-successful": "Build successful",
+ "tr-build-failed": "Build failed",
+ "tr-request-image": "Request image",
+ "tr-check-again": "Check again in 5 seconds...",
+ },
+ es: {
+ "tr-load": "Descargue el firmware OpenWrt para su dispositivo!",
+ "tr-title": "Selector de firmware OpenWrt",
+ "tr-message":
+ "Utilice la entrada a continuación para descargar el firmware de su dispositivo!",
+ "tr-version-build": "Compilar",
+ "tr-custom-build": "Compilación personalizada",
+ "tr-customize": "Personalizar",
+ "tr-request-build": "Solicitar compilación",
+ "tr-model": "Modelo:",
+ "tr-target": "Plataforma:",
+ "tr-version": "Versión:",
+ "tr-date": "Fecha:",
+ "tr-downloads": "Descargas",
+ "tr-custom-downloads": "Descargas personalizadas",
+ "tr-factory-help":
+ "Las imágenes de fábrica son para enrutadores intermitentes con OpenWrt por primera vez. Generalmente a través de la interfaz web del firmware original.",
+ "tr-sysupgrade-help":
+ "Las imágenes de Sysupgrade son para enrutadores intermitentes que ya ejecutan OpenWrt. La imagen se puede aplicar utilizando la interfaz web o el terminal.",
+ "tr-kernel-help": "Kernel de Linux como una imagen separada.",
+ "tr-rootfs-help": "Sistema de archivos raíz como una imagen separada.",
+ "tr-sdcard-help": "Imagen que debe ser mostrada en una tarjeta SD.",
+ "tr-tftp-help":
+ "Las imágenes TFTP se utilizan para flashear un dispositivo mediante el método TFTP del gestor de arranque.",
+ "tr-other-help": "Otro tipo de imagen.",
+ "tr-build-successful": "Compilación exitosa",
+ "tr-build-failed": "Compilación fallida",
+ "tr-request-image": "Solicitar imagen",
+ "tr-check-again": "Verifique nuevamente en 5 segundos...",
+ },
+ no: {
+ "tr-load": "Last ned OpenWrt fastvare for din enhet!",
+ "tr-title": "OpenWrt fastvare utvelger",
+ "tr-message":
+ "Bruk feltene nedenfor for å laste ned fastvare til enheten din!",
+ "tr-version-build": "Sammensetning",
+ "tr-custom-build": "Tilpasset sammensetning",
+ "tr-customize": "Tilpasse",
+ "tr-request-build": "Be om sammensetning",
+ "tr-model": "Modell:",
+ "tr-target": "Platform:",
+ "tr-version": "Versjon:",
+ "tr-date": "Dato:",
+ "tr-downloads": "Nedlastninger",
+ "tr-custom-downloads": "Tilpassede nedlastninger",
+ "tr-factory-help":
+ "Factory avbildningen er for å laste rutere med OpenWrt første gang. Vanligvis via webgrensesnittet til den originale fastvaren.",
+ "tr-sysupgrade-help":
+ "Sysupgrade avbildningen er for rutere som allerede benytter OpenWrt. Avbildningen innstaleres gjennom webgrensesnittet eller terminalen.",
+ "tr-kernel-help": "Linux kjernen som en egen avbildning.",
+ "tr-rootfs-help": "Rotfilsystem som en egen avbildning.",
+ "tr-sdcard-help": "Avbildning som er ment for et SD-kort.",
+ "tr-tftp-help":
+ "TFTP avbildninger er for å laste enheter via TFTP metoden i oppstartsprosedyren.",
+ "tr-other-help": "Andre avbildningstyper.",
+ "tr-build-successful": "Vellykket sammensetning",
+ "tr-build-failed": "Sammensetningen feilet",
+ "tr-request-image": "Be om avbildning",
+ "tr-check-again": "Sjekk pånytt om 5 sekunder...",
+ },
+ de: {
+ "tr-load": "Lade die OpenWrt Firmware für dein Gerät!",
+ "tr-title": "OpenWrt Firmware Selector",
+ "tr-message":
+ "Bitte benutze die Eingabe um die passende Firmware zu finden!",
+ "tr-version-build": "Release Build",
+ "tr-custom-build": "Custom Build",
+ "tr-customize": "Customize",
+ "tr-request-build": "Request Build",
+ "tr-model": "Model:",
+ "tr-target": "Target",
+ "tr-version": "Version:",
+ "tr-date": "Datum:",
+ "tr-downloads": "Downloads",
+ "tr-custom-downloads": "Custom Downloads",
+ "tr-factory-help":
+ "Factory Abbilder werden über die Weboberfläche der originalen Firmware eingespielt.",
+ "tr-sysupgrade-help":
+ "Sysupgrade Abbilder werden für Geräte verwendet, die bereits OpenWrt laufen haben. Es ist möglich, existierende Einstellungen beizubehalten.",
+ "tr-kernel-help": "Linux Kernel als separates Abbild.",
+ "tr-rootfs-help": "Das Root Dateisystem als separates Abbild.",
+ "tr-sdcard-help": "Image für SD Speicherkarten.",
+ "tr-tftp-help":
+ "TFTP Dateien können verwendet werden, um ein Gerät über die TFTP Method des Bootloader zu flashen.",
+ "tr-other-help": "Sonstiger Imagetyp.",
+ "tr-build-successful": "Build erfolgreich",
+ "tr-build-failed": "Build fehlgeschlagen",
+ "tr-request-image": "Frage nach image",
+ "tr-check-again": "Nochmal nachfragen in 5 Sekunden...",
+ },
+ fr: {
+ "tr-load": "Télécharger le firmware OpenWrt de votre périphérique !",
+ "tr-title": "Sélecteur de Firmware",
+ "tr-message":
+ "Utiliser les entrées ci-dessous pour télécharger le firmware de votre périphérique !",
+ "tr-version-build": "Build",
+ "tr-custom-build": "Build Personnalisé",
+ "tr-customize": "Personnalisation",
+ "tr-request-build": "Requête de Build",
+ "tr-model": "Modèle:",
+ "tr-target": "Platform:",
+ "tr-version": "Version:",
+ "tr-date": "Date:",
+ "tr-downloads": "Téléchargements",
+ "tr-custom-downloads": "Téléchargements Personnalusés",
+ "tr-factory-help":
+ "Les images Factory sont prévues pour flasher les routers avec OpenWrt pour la première fois. Habituellement à partir de l'interface web du firmware d'origine.",
+ "tr-sysupgrade-help":
+ "Les images Sysupgrade sont prévues pour flasher les routers fonctionnant déjà avec OpenWrt. L'image peut être installée à travers l'interface web ou par le terminal.",
+ "tr-kernel-help": "Linux kernel comme image séparée.",
+ "tr-rootfs-help": "Root file system comme image séparée.",
+ "tr-sdcard-help": "Image prévue pour être flashée sur une carte SD.",
+ "tr-tftp-help":
+ "TFTP images prévues pour flasher le périphérique via le démarrage par méthode TFTP.",
+ "tr-other-help": "Autre type d'image.",
+ "tr-build-successful": "Succès du Build",
+ "tr-build-failed": "Échec du Build",
+ "tr-request-image": "Demade d'image",
+ "tr-check-again": "Essayer à nouveau dans 5 secondes...",
+ },
+ it: {
+ "tr-load": "Scarica il firmware OpenWrt per il tuo dispositivo!",
+ "tr-title": "OpenWrt Firmware Selector",
+ "tr-message":
+ "Usa la casella sottostante per scaricare il firmware per il tuo dispositivo!",
+ "tr-version-build": "Build",
+ "tr-custom-build": "Custom Build",
+ "tr-customize": "Personalizza",
+ "tr-request-build": "Richiedi Build",
+ "tr-model": "Modell:",
+ "tr-target": "Platform:",
+ "tr-version": "Version:",
+ "tr-date": "Data:",
+ "tr-downloads": "Downloads",
+ "tr-custom-downloads": "Download Personalizzati",
+ "tr-factory-help":
+ "Factory Image sono usate per installare OpenWrt su router per la prima volta. Di solito l'immagine può essere applicata via l'interfaccia web del firmware originale.",
+ "tr-sysupgrade-help":
+ "Sysupgrade Image sono usate per flashare router in cui OpenWrt è già installato. L'immagine può essere applicata via interfaccia web o terminale.",
+ "tr-kernel-help": "Linux kernel come immagine separata.",
+ "tr-rootfs-help": "Root file system come immagine separata.",
+ "tr-sdcard-help": "Immagine da flashare su scheda SD-Card separata.",
+ "tr-tftp-help":
+ "Immagini TFTP images sono usate per flashare un dispositivo con il metodo TFTP del bootloader.",
+ "tr-other-help": "Other image type.",
+ "tr-build-successful": "Build compilata con successo",
+ "tr-build-failed": "Build fallita",
+ "tr-request-image": "Richiedi immagine",
+ "tr-check-again": "Prova di nuovo in 5 secondi...",
+ },
+ pl: {
+ "tr-load": "Pobieranie oprogramowania OpenWrt!",
+ "tr-title": "OpenWrt Firmware Selector",
+ "tr-message":
+ "Użyj pola poniżej żeby znaleźć obraz dla swojego urządzenia!",
+ "tr-version-build": "Informacje o obrazie",
+ "tr-custom-build": "Informacje o zmodyfikowanym obrazie",
+ "tr-customize": "Modyfikacja",
+ "tr-request-build": "Żądanie budowy obrazu",
+ "tr-model": "Model:",
+ "tr-target": "Platforma:",
+ "tr-version": "Wersja:",
+ "tr-date": "Data:",
+ "tr-downloads": "Obrazy do pobrania",
+ "tr-custom-downloads": "Zmodyfikowane obrazy do pobrania",
+ "tr-factory-help":
+ "Obraz factory używany jest do pierwszej instalacji OpenWrt. Zwykle można go użyć wykorzystując interfejs graficzny oryginalnego oprogramowania.",
+ "tr-sysupgrade-help":
+ "Obraz sysuprade używany jest do aktualizacji routerów z zainstalowanym już OpenWrt. Obraz można użyć przez GUI lub konsolę.",
+ "tr-kernel-help": "Osobny obraz z kernelem linuksowym.",
+ "tr-rootfs-help": "Osobny obraz z system plików.",
+ "tr-sdcard-help": "Obraz do wgrania na kartę SD.",
+ "tr-tftp-help":
+ "Obraz TFTP służący do aktualizacji urządzenia z wykorzystaniem TFTP i bootloadera.",
+ "tr-other-help": "Inny typ obrazu.",
+ "tr-build-successful": "Budowanie zakończone pomyślnie",
+ "tr-build-failed": "Błąd budowania",
+ "tr-request-image": "Żądanie obrazu",
+ "tr-check-again": "Sprawdź ponownie za 5 sekund...",
+ },
+ tr: {
+ "tr-load": "Cihazınız için OpenWrt yazılımını indirin!",
+ "tr-title": "OpenWrt Yazılım Seçicisi",
+ "tr-message":
+ "Cihazınız için yazılımı indirmek için lütfen aşağıdaki girişi kullanın!",
+ "tr-version-build": "Sürüm",
+ "tr-custom-build": "Özel Sürüm",
+ "tr-customize": "Özelleştir",
+ "tr-request-build": "Sürüm Oluştur",
+ "tr-model": "Model:",
+ "tr-target": "Platform:",
+ "tr-version": "Versiyon:",
+ "tr-date": "Tarih:",
+ "tr-downloads": "İndirmeler",
+ "tr-custom-downloads": "Özel İndirmeler",
+ "tr-factory-help":
+ "Fabrika imajları, ilk kez OpenWrt yüklenen cihazlar içindir. Genellikle orijinal ürün yazılımının web arayüzü üzerinden yüklenir.",
+ "tr-sysupgrade-help":
+ "Sysupgrade imajları, zaten OpenWrt kurulu cihazlar içindir. İmaj, web arayüzü veya terminal kullanılarak yüklenebilir.",
+ "tr-kernel-help": "Linux kernel ayrı bir imaj olarak.",
+ "tr-rootfs-help": "Kök Dosya Sistemi ayrı bir imaj olarak.",
+ "tr-sdcard-help": "SD-Kart 'a kurulması planlanan imaj",
+ "tr-tftp-help":
+ "TFTP imajları, Bootloader 'ın TFTP yöntemi ile bir cihaza kurulması için kullanılır.",
+ "tr-other-help": "Diğer imaj türü.",
+ "tr-build-successful": "Oluşturma başarılı",
+ "tr-build-failed": "Oluşturma başarısız",
+ "tr-request-image": "Imaj oluştur",
+ "tr-check-again": "5 saniye icinde tekrar dene...",
+ },
};
// Complement translations based on other translations
-
var current_model = {};
function $(query) {
- if (typeof query === 'string') {
+ if (typeof query === "string") {
return document.querySelector(query);
} else {
return query;
}
function show(query) {
- $(query).style.display = 'block';
+ $(query).style.display = "block";
}
function hide(query) {
- $(query).style.display = 'none';
+ $(query).style.display = "none";
}
function split(str) {
}
function get_model_titles(titles) {
- return titles.map(e => {
- if (e.title) {
- return e.title;
- } else {
- return ((e.vendor || '') + ' ' + (e.model || '') + ' ' + (e.variant || '')).trim();
- }
- }).join(' / ');
+ return titles
+ .map((e) => {
+ if (e.title) {
+ return e.title;
+ } else {
+ return (
+ (e.vendor || "") +
+ " " +
+ (e.model || "") +
+ " " +
+ (e.variant || "")
+ ).trim();
+ }
+ })
+ .join(" / ");
}
function build_asu_request() {
if (!current_model || !current_model.id) {
- alert('bad profile');
+ alert("bad profile");
return;
}
function showStatus(message, url) {
- show('#buildstatus');
- var tr = message.startsWith('tr-') ? message : '';
+ show("#buildstatus");
+ var tr = message.startsWith("tr-") ? message : "";
if (url) {
- $('#buildstatus').innerHTML = '<a href="' + url + '" class="' + tr + '">' + message + '</a>';
+ $("#buildstatus").innerHTML =
+ '<a href="' + url + '" class="' + tr + '">' + message + "</a>";
} else {
- $('#buildstatus').innerHTML = '<span class="' + tr + '"></span>';
+ $("#buildstatus").innerHTML = '<span class="' + tr + '"></span>';
}
translate();
}
// hide image view
updateImages();
- show('#buildspinner');
- showStatus('tr-request-image');
+ show("#buildspinner");
+ showStatus("tr-request-image");
var request_data = {
- 'target': current_model.target,
- 'profile': current_model.id,
- 'packages': split($('#packages').value),
- 'version': $('#versions').value
- }
+ target: current_model.target,
+ profile: current_model.id,
+ packages: split($("#packages").value),
+ version: $("#versions").value,
+ };
- fetch(config.asu_url + '/api/build', {
- method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify(request_data)
- })
- .then(response => {
- switch (response.status) {
- case 200:
- hide('#buildspinner');
- showStatus('tr-build-successful');
-
- response.json()
- .then(mobj => {
- var download_url = config.asu_url + '/store/' + mobj.bin_dir;
- showStatus('tr-build-successful', download_url + '/buildlog.txt');
- updateImages(
- mobj.version_number,
- mobj.version_code,
- mobj.build_at,
- get_model_titles(mobj.titles),
- download_url, mobj, true
- );
- });
- break;
- case 202:
- showStatus('tr-check-again');
- setTimeout(_ => { build_asu_request() }, 5000);
- break;
- case 400: // bad request
- case 422: // bad package
- case 500: // build failed
- hide('#buildspinner');
- response.json()
- .then(mobj => {
- var message = mobj['message'] || 'tr-build-failed';
- var url = mobj.buildlog ? (config.asu_url + '/store/' + mobj.bin_dir + '/buildlog.txt') : undefined;
- showStatus(message, url);
- })
- break;
- }
- })
- .catch(err => {
- hide('#buildspinner');
- showStatus(err);
+ fetch(config.asu_url + "/api/build", {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify(request_data),
})
+ .then((response) => {
+ switch (response.status) {
+ case 200:
+ hide("#buildspinner");
+ showStatus("tr-build-successful");
+
+ response.json().then((mobj) => {
+ var download_url = config.asu_url + "/store/" + mobj.bin_dir;
+ showStatus("tr-build-successful", download_url + "/buildlog.txt");
+ updateImages(
+ mobj.version_number,
+ mobj.version_code,
+ mobj.build_at,
+ get_model_titles(mobj.titles),
+ download_url,
+ mobj,
+ true
+ );
+ });
+ break;
+ case 202:
+ showStatus("tr-check-again");
+ setTimeout((_) => {
+ build_asu_request();
+ }, 5000);
+ break;
+ case 400: // bad request
+ case 422: // bad package
+ case 500: // build failed
+ hide("#buildspinner");
+ response.json().then((mobj) => {
+ var message = mobj["message"] || "tr-build-failed";
+ var url = mobj.buildlog
+ ? config.asu_url + "/store/" + mobj.bin_dir + "/buildlog.txt"
+ : undefined;
+ showStatus(message, url);
+ });
+ break;
+ }
+ })
+ .catch((err) => {
+ hide("#buildspinner");
+ showStatus(err);
+ });
}
function setupSelectList(select, items, onselection) {
for (var i = 0; i < items.length; i += 1) {
- var option = document.createElement('OPTION');
+ var option = document.createElement("OPTION");
option.innerHTML = items[i];
select.appendChild(option);
}
- select.addEventListener('change', e => {
+ select.addEventListener("change", (e) => {
onselection(items[select.selectedIndex]);
});
function translate() {
var mapping = translations[config.language];
for (var tr in mapping) {
- Array.from(document.getElementsByClassName(tr))
- .forEach(e => { e.innerText = mapping[tr]; })
+ Array.from(document.getElementsByClassName(tr)).forEach((e) => {
+ e.innerText = mapping[tr];
+ });
}
}
var currentFocus = -1;
// sort numbers and other characters separately
- var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
+ var collator = new Intl.Collator(undefined, {
+ numeric: true,
+ sensitivity: "base",
+ });
items.sort(collator.compare);
- input.oninput = function(e) {
+ input.oninput = function (e) {
onbegin();
var offset = 0;
if (as_list) {
// automcomplete last text item
- offset = this.value.lastIndexOf(' ') + 1;
+ offset = this.value.lastIndexOf(" ") + 1;
value = this.value.substr(offset);
value_list = split(this.value.substr(0, offset));
}
}
// create a DIV element that will contain the items (values):
- var list = document.createElement('DIV');
- list.setAttribute('id', this.id + '-autocomplete-list');
- list.setAttribute('class', 'autocomplete-items');
+ var list = document.createElement("DIV");
+ list.setAttribute("id", this.id + "-autocomplete-list");
+ list.setAttribute("class", "autocomplete-items");
// append the DIV element as a child of the autocomplete container:
this.parentNode.appendChild(list);
function normalize(s) {
- return s.toUpperCase().replace(/[-_.]/g, ' ');
+ return s.toUpperCase().replace(/[-_.]/g, " ");
}
var match = normalize(value);
c += 1;
if (c >= 15) {
- var div = document.createElement('DIV');
- div.innerHTML = '...';
+ var div = document.createElement("DIV");
+ div.innerHTML = "...";
list.appendChild(div);
break;
} else {
- var div = document.createElement('DIV');
+ var div = document.createElement("DIV");
// make the matching letters bold:
- div.innerHTML = item.substr(0, j)
- + '<strong>' + item.substr(j, value.length) + '</strong>'
- + item.substr(j + value.length)
- + '<input type="hidden" value="' + item + '">';
-
- div.addEventListener('click', function(e) {
+ div.innerHTML =
+ item.substr(0, j) +
+ "<strong>" +
+ item.substr(j, value.length) +
+ "</strong>" +
+ item.substr(j + value.length) +
+ '<input type="hidden" value="' +
+ item +
+ '">';
+
+ div.addEventListener("click", function (e) {
// include selected value
- var selected = this.getElementsByTagName('input')[0].value;
+ var selected = this.getElementsByTagName("input")[0].value;
if (as_list) {
- input.value = value_list.join(' ') + ' ' + selected;
+ input.value = value_list.join(" ") + " " + selected;
} else {
input.value = selected;
}
}
};
- input.onkeydown = function(e) {
- var x = document.getElementById(this.id + '-autocomplete-list');
- if (x) x = x.getElementsByTagName('div');
- if (e.keyCode == 40) {
- // key down
- currentFocus += 1;
- // and and make the current item more visible:
- setActive(x);
- } else if (e.keyCode == 38) {
- // key up
- currentFocus -= 1;
- // and and make the current item more visible:
- setActive(x);
- } else if (e.keyCode == 13) {
- // If the ENTER key is pressed, prevent the form from being submitted,
- e.preventDefault();
- if (currentFocus > -1) {
- // and simulate a click on the 'active' item:
- if (x) x[currentFocus].click();
- }
+ input.onkeydown = function (e) {
+ var x = document.getElementById(this.id + "-autocomplete-list");
+ if (x) x = x.getElementsByTagName("div");
+ if (e.keyCode == 40) {
+ // key down
+ currentFocus += 1;
+ // and and make the current item more visible:
+ setActive(x);
+ } else if (e.keyCode == 38) {
+ // key up
+ currentFocus -= 1;
+ // and and make the current item more visible:
+ setActive(x);
+ } else if (e.keyCode == 13) {
+ // If the ENTER key is pressed, prevent the form from being submitted,
+ e.preventDefault();
+ if (currentFocus > -1) {
+ // and simulate a click on the 'active' item:
+ if (x) x[currentFocus].click();
}
+ }
};
- input.onfocus = function() {
+ input.onfocus = function () {
onend(input);
- }
+ };
// focus lost
- input.onblur = function() {
+ input.onblur = function () {
onend(input);
- }
+ };
function setActive(x) {
// a function to classify an item as 'active':
if (!x) return false;
// start by removing the 'active' class on all items:
for (var i = 0; i < x.length; i++) {
- x[i].classList.remove('autocomplete-active');
+ x[i].classList.remove("autocomplete-active");
}
if (currentFocus >= x.length) currentFocus = 0;
- if (currentFocus < 0) currentFocus = (x.length - 1);
+ if (currentFocus < 0) currentFocus = x.length - 1;
// add class 'autocomplete-active':
- x[currentFocus].classList.add('autocomplete-active');
+ x[currentFocus].classList.add("autocomplete-active");
}
function closeAllLists(elmnt) {
// close all autocomplete lists in the document,
// except the one passed as an argument:
- var x = document.getElementsByClassName('autocomplete-items');
+ var x = document.getElementsByClassName("autocomplete-items");
for (var i = 0; i < x.length; i++) {
if (elmnt != x[i] && elmnt != input) {
x[i].parentNode.removeChild(x[i]);
}
// execute a function when someone clicks in the document:
- document.addEventListener('click', e => {
- closeAllLists(e.target);
+ document.addEventListener("click", (e) => {
+ closeAllLists(e.target);
});
}
// for attended sysupgrade
function updatePackageList(version, target) {
// set available packages
- fetch(config.asu_url + '/' + config.versions[version] + '/' + target + '/index.json')
- .then(response => response.json())
- .then(all_packages => {
- setupAutocompleteList($('#packages'), all_packages, true, _ => {}, textarea => {
- textarea.value = split(textarea.value)
- // make list unique, ignore minus
- .filter((value, index, self) => {
- var i = self.indexOf(value.replace(/^\-/, ''));
- return (i === index) || (i < 0);
- })
- // limit to available packages, ignore minus
- .filter((value, index) => all_packages.indexOf(value.replace(/^\-/, '')) !== -1)
- .join(' ');
+ fetch(
+ config.asu_url +
+ "/" +
+ config.versions[version] +
+ "/" +
+ target +
+ "/index.json"
+ )
+ .then((response) => response.json())
+ .then((all_packages) => {
+ setupAutocompleteList(
+ $("#packages"),
+ all_packages,
+ true,
+ (_) => {},
+ (textarea) => {
+ textarea.value = split(textarea.value)
+ // make list unique, ignore minus
+ .filter((value, index, self) => {
+ var i = self.indexOf(value.replace(/^\-/, ""));
+ return i === index || i < 0;
+ })
+ // limit to available packages, ignore minus
+ .filter(
+ (value, index) =>
+ all_packages.indexOf(value.replace(/^\-/, "")) !== -1
+ )
+ .join(" ");
+ }
+ );
});
- });
}
function updateImages(version, code, date, model, url, mobj, is_custom) {
// add download button for image
function addLink(type, file) {
- var a = document.createElement('A');
- a.classList.add('download-link');
- a.href = url
- .replace('{target}', mobj.target)
- .replace('{version}', version)
- + '/' + file;
- var span = document.createElement('SPAN');
- span.appendChild(document.createTextNode(''));
+ var a = document.createElement("A");
+ a.classList.add("download-link");
+ a.href =
+ url.replace("{target}", mobj.target).replace("{version}", version) +
+ "/" +
+ file;
+ var span = document.createElement("SPAN");
+ span.appendChild(document.createTextNode(""));
a.appendChild(span);
a.appendChild(document.createTextNode(type.toUpperCase()));
if (config.showHelp) {
- a.onmouseover = function() {
+ a.onmouseover = function () {
// hide all help texts
- Array.from(document.getElementsByClassName('download-help'))
- .forEach(e => e.style.display = 'none');
+ Array.from(document.getElementsByClassName("download-help")).forEach(
+ (e) => (e.style.display = "none")
+ );
var lc = type.toLowerCase();
- if (lc.includes('sysupgrade')) {
- show('#sysupgrade-help');
- } else if (lc.includes('factory') || lc == 'trx' || lc == 'chk') {
- show('#factory-help');
- } else if (lc.includes('kernel') || lc.includes('zimage') || lc.includes('uimage')) {
- show('#kernel-help');
- } else if (lc.includes('root')) {
- show('#rootfs-help');
- } else if (lc.includes('sdcard')) {
- show('#sdcard-help');
- } else if (lc.includes('tftp')) {
- show('#tftp-help');
+ if (lc.includes("sysupgrade")) {
+ show("#sysupgrade-help");
+ } else if (lc.includes("factory") || lc == "trx" || lc == "chk") {
+ show("#factory-help");
+ } else if (
+ lc.includes("kernel") ||
+ lc.includes("zimage") ||
+ lc.includes("uimage")
+ ) {
+ show("#kernel-help");
+ } else if (lc.includes("root")) {
+ show("#rootfs-help");
+ } else if (lc.includes("sdcard")) {
+ show("#sdcard-help");
+ } else if (lc.includes("tftp")) {
+ show("#tftp-help");
} else {
- show('#other-help');
+ show("#other-help");
}
};
}
- $('#download-links').appendChild(a);
+ $("#download-links").appendChild(a);
}
function switchClass(query, from_class, to_class) {
}
// remove all download links
- Array.from(document.getElementsByClassName('download-link'))
- .forEach(e => e.remove());
+ Array.from(document.getElementsByClassName("download-link")).forEach((e) =>
+ e.remove()
+ );
// hide all help texts
- Array.from(document.getElementsByClassName('download-help'))
- .forEach(e => e.style.display = 'none');
+ Array.from(document.getElementsByClassName("download-help")).forEach(
+ (e) => (e.style.display = "none")
+ );
if (model && url && mobj) {
var target = mobj.target;
// change between "version" and "custom" title
if (is_custom) {
- switchClass('#build-title', 'tr-version-build', 'tr-custom-build');
- switchClass('#downloads-title', 'tr-version-downloads', 'tr-custom-downloads');
+ switchClass("#build-title", "tr-version-build", "tr-custom-build");
+ switchClass(
+ "#downloads-title",
+ "tr-version-downloads",
+ "tr-custom-downloads"
+ );
} else {
- switchClass('#build-title', 'tr-custom-build', 'tr-version-build');
- switchClass('#downloads-title', 'tr-custom-downloads', 'tr-version-downloads');
+ switchClass("#build-title", "tr-custom-build", "tr-version-build");
+ switchClass(
+ "#downloads-title",
+ "tr-custom-downloads",
+ "tr-version-downloads"
+ );
}
// update title translation
translate();
// fill out build info
- $('#image-model').innerText = model;
- $('#image-target').innerText = target;
- $('#image-version').innerText = version;
- $('#image-code').innerText = mobj['code'] || code;
- $('#image-date').innerText = date;
+ $("#image-model").innerText = model;
+ $("#image-target").innerText = target;
+ $("#image-version").innerText = version;
+ $("#image-code").innerText = mobj["code"] || code;
+ $("#image-date").innerText = date;
images.sort((a, b) => a.name.localeCompare(b.name));
updatePackageList(version, target);
}
- show('#images');
+ show("#images");
} else {
- hide('#images');
+ hide("#images");
}
}
function init() {
- var build_date = "unknown"
- setupSelectList($('#versions'), Object.keys(config.versions), version => {
+ var build_date = "unknown";
+ setupSelectList($("#versions"), Object.keys(config.versions), (version) => {
var url = config.versions[version];
if (config.asu_url) {
- url = config.asu_url + '/' + url + '/profiles.json';
+ url = config.asu_url + "/" + url + "/profiles.json";
}
fetch(url)
- .then(obj => {
- build_date = obj.headers.get('last-modified');
- return obj.json();
- })
- .then(obj => {
- // handle native openwrt json format
- if ('profiles' in obj) {
- obj['models'] = {}
- for (const [key, value] of Object.entries(obj['profiles'])) {
- value['id'] = key
- obj['models'][get_model_titles(value.titles)] = value
- }
- }
- return obj
- })
- .then(obj => {
- setupAutocompleteList($('#models'), Object.keys(obj['models']), false, updateImages, models => {
- var model = models.value;
- if (model in obj['models']) {
- var url = obj.download_url || 'unknown';
- var code = obj.version_code || 'unknown';
- var mobj = obj['models'][model];
- updateImages(version, code, build_date, model, url, mobj, false);
- current_model = mobj;
- } else {
- updateImages();
- current_model = {};
+ .then((obj) => {
+ build_date = obj.headers.get("last-modified");
+ return obj.json();
+ })
+ .then((obj) => {
+ // handle native openwrt json format
+ if ("profiles" in obj) {
+ obj["models"] = {};
+ for (const [key, value] of Object.entries(obj["profiles"])) {
+ value["id"] = key;
+ obj["models"][get_model_titles(value.titles)] = value;
+ }
}
- });
+ return obj;
+ })
+ .then((obj) => {
+ setupAutocompleteList(
+ $("#models"),
+ Object.keys(obj["models"]),
+ false,
+ updateImages,
+ (models) => {
+ var model = models.value;
+ if (model in obj["models"]) {
+ var url = obj.download_url || "unknown";
+ var code = obj.version_code || "unknown";
+ var mobj = obj["models"][model];
+ updateImages(version, code, build_date, model, url, mobj, false);
+ current_model = mobj;
+ } else {
+ updateImages();
+ current_model = {};
+ }
+ }
+ );
- // trigger model update when selected version changes
- $('#models').onfocus();
- });
+ // trigger model update when selected version changes
+ $("#models").onfocus();
+ });
});
if (config.asu_url) {
- show('#custom');
+ show("#custom");
}
// hide fields
updateImages();
// default to browser language
- var user_lang = (navigator.language || navigator.userLanguage).split('-')[0];
+ var user_lang = (navigator.language || navigator.userLanguage).split("-")[0];
if (user_lang in translations) {
config.language = user_lang;
- $('#language-selection').value = user_lang;
+ $("#language-selection").value = user_lang;
}
translate();
- $('#language-selection').onclick = function() {
+ $("#language-selection").onclick = function () {
config.language = this.children[this.selectedIndex].value;
translate();
- }
+ };
}