diff --git a/plugin.video.alfa/channels/infoplus.py b/plugin.video.alfa/channels/infoplus.py index ee738c03..0f2f8bfe 100755 --- a/plugin.video.alfa/channels/infoplus.py +++ b/plugin.video.alfa/channels/infoplus.py @@ -37,9 +37,9 @@ ACTION_MOVE_UP = 3 set_animation = False xinfoplus_set = config.get_setting("infoplus_set") -if xinfoplus_set == "Sin animación": +if xinfoplus_set == config.get_localized_string(70129): set_animation = False -if xinfoplus_set == "Con animación": +if xinfoplus_set == config.get_localized_string(70130): set_animation = True def start(item, recomendaciones=[], from_window=False): @@ -400,7 +400,7 @@ class main(xbmcgui.WindowDialog): self.plot.autoScroll(11000, 6000, 30000) except: xbmc.executebuiltin( - 'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")') + config.get_localized_string(70500)) self.plot.setText(dhe(self.infoLabels.get("plot", ""))) xbmc.sleep(200) @@ -842,7 +842,7 @@ class related(xbmcgui.WindowDialog): self.info_peli.autoScroll(7000, 6000, 30000) except: xbmc.executebuiltin( - 'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")') + config.get_localized_string(70500)) self.info_peli.setText(self.info) if set_animation: self.info_peli.setAnimations( @@ -859,9 +859,9 @@ class related(xbmcgui.WindowDialog): ('WindowClose', 'effect=zoom end=0% time=1000 condition=true',)]) if self.infoLabels.get("status") == "Ended" and self.item.contentType != "movie": - status = "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]" + status = config.get_localized_string(70515) elif self.infoLabels.get("status") and self.item.contentType != "movie": - status = "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]" + status = config.get_localized_string(70516) else: status = "[COLOR aquamarine][B]%s[/B][/COLOR]" @@ -891,7 +891,7 @@ class related(xbmcgui.WindowDialog): self.gt_peli = xbmcgui.ControlTextBox(210, 385, 1100, 60, self.fonts["12"]) self.addControl(self.gt_peli) - self.gt_peli.setText("[COLOR limegreen][B]Género: [/B][/COLOR]") + self.gt_peli.setText("[COLOR limegreen][B]%s[/B][/COLOR]" % config.get_localized_string(70499)) if set_animation: self.gt_peli.setAnimations( [('conditional', 'effect=slide start=0,-7000 delay=5750 time=700 condition=true tween=circle easing=in',), @@ -907,7 +907,7 @@ class related(xbmcgui.WindowDialog): self.pt_peli = xbmcgui.ControlTextBox(210, 410, 307, 60, self.fonts["12"]) self.addControl(self.pt_peli) - self.pt_peli.setText("[COLOR limegreen][B]Productora: [/B][/COLOR]") + self.pt_peli.setText("[COLOR limegreen][B]%s[/B][/COLOR]" % config.get_localized_string(70498)) if set_animation: self.pt_peli.setAnimations( [('conditional', 'effect=slide start=0,-7000 delay=5700 time=700 condition=true tween=circle easing=in',), @@ -1238,7 +1238,7 @@ class Busqueda(xbmcgui.WindowXMLDialog): else: self.getControl(1).setLabel(config.get_localized_string(60494)) - self.getControl(5).setLabel("[COLOR tomato][B]Cerrar[/B][/COLOR]") + self.getControl(5).setLabel(config.get_localized_string(60495)) self.control_list.reset() items = [] for item_l in self.lista: @@ -1577,7 +1577,7 @@ class ActorInfo(xbmcgui.WindowDialog): self.info_actor.autoScroll(7000, 6000, 30000) except: xbmc.executebuiltin( - 'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")') + config.get_localized_string(70500)) self.info_actor.setText( "[COLOR coral][B]%s[/B][/COLOR]" % actor_tmdb.result.get("biography", config.get_localized_string(60504))) @@ -1601,7 +1601,7 @@ class ActorInfo(xbmcgui.WindowDialog): else: self.titulos.append([entradas["id"], entradas.get("title", entradas.get("original_title", "")), thumb]) - self.dialog.update(40, '[COLOR rosybrown]Obteniendo filmografía...[/COLOR]') + self.dialog.update(40, config.get_localized_string(60505)) self.mas_pelis = 8 self.idps = [] self.botones = [] @@ -1673,7 +1673,7 @@ class ActorInfo(xbmcgui.WindowDialog): self.botones.append(self.btn_right) xbmc.sleep(200) - self.dialog.update(80, '[COLOR plum]Recopilando imágenes...[/COLOR]') + self.dialog.update(80, config.get_localized_string(60506)) self.images = [] for images in actor_tmdb.result.get("images", {}).get("profiles", []): imagen = "https://image.tmdb.org/t/p/original" + images["file_path"] diff --git a/plugin.video.alfa/channels/trailertools.py b/plugin.video.alfa/channels/trailertools.py index e4336ba1..f1221b10 100755 --- a/plugin.video.alfa/channels/trailertools.py +++ b/plugin.video.alfa/channels/trailertools.py @@ -46,7 +46,7 @@ def buscartrailer(item, trailers=[]): item.contentTitle = item.contentTitle.strip() elif keyboard: fulltitle = re.sub('\[\/*(B|I|COLOR)\s*[^\]]*\]', '', item.fulltitle.strip()) - item.contentTitle = platformtools.dialog_input(default=fulltitle, heading="Introduce el título a buscar") + item.contentTitle = platformtools.dialog_input(default=fulltitle, heading=config.get_localized_string(70505)) if item.contentTitle is None: item.contentTitle = fulltitle else: @@ -86,21 +86,21 @@ def buscartrailer(item, trailers=[]): title = "[COLOR green]%s[/COLOR]" else: title = "%s" - itemlist.append(item.clone(title=title % "Búsqueda en Youtube", action="youtube_search", + itemlist.append(item.clone(title=title % config.get_localized_string(70507), action="youtube_search", text_color="green")) - itemlist.append(item.clone(title=title % "Búsqueda en Filmaffinity", + itemlist.append(item.clone(title=title % config.get_localized_string(70024), action="filmaffinity_search", text_color="green")) # Si se trata de una serie, no se incluye la opción de buscar en Abandomoviez if not item.show and not item.infoLabels['tvshowtitle']: - itemlist.append(item.clone(title=title % "Búsqueda en Abandomoviez", + itemlist.append(item.clone(title=title % config.get_localized_string(70508), action="abandomoviez_search", text_color="green")) - itemlist.append(item.clone(title=title % "Búsqueda en Jayhap (Youtube, Vimeo & Dailymotion)", + itemlist.append(item.clone(title=title % config.get_localized_string(70509), action="jayhap_search", text_color="green")) if item.contextual: global window_select, result select = Select("DialogSelect.xml", config.get_runtime_path(), item=item, itemlist=itemlist, - caption="Buscando: " + item.contentTitle) + caption=config.get_localized_string(70506) + item.contentTitle) window_select.append(select) select.doModal() @@ -177,11 +177,11 @@ def youtube_search(item): 'Siguiente') if next_page != "": next_page = urlparse.urljoin("https://www.youtube.com", next_page) - itemlist.append(item.clone(title=">> Siguiente", action="youtube_search", extra="youtube", page=next_page, + itemlist.append(item.clone(title=config.get_localized_string(70502), action="youtube_search", extra="youtube", page=next_page, thumbnail="", text_color="")) if not itemlist: - itemlist.append(item.clone(title="La búsqueda no ha dado resultados (%s)" % titulo, + itemlist.append(item.clone(title=config.get_localized_string(70501) % titulo, action="", thumbnail="", text_color="")) if keyboard: @@ -189,7 +189,7 @@ def youtube_search(item): title = "[COLOR green]%s[/COLOR]" else: title = "%s" - itemlist.append(item.clone(title=title % "Búsqueda Manual en Youtube", action="manual_search", + itemlist.append(item.clone(title=title % config.get_localized_string(70510), action="manual_search", text_color="green", thumbnail="", extra="youtube")) return itemlist @@ -232,11 +232,11 @@ def abandomoviez_search(item): next_page = scrapertools.find_single_match(data, 'Siguiente') if next_page != "": next_page = urlparse.urljoin("http://www.abandomoviez.net/%s" % item.prefix, next_page) - itemlist.append(item.clone(title=">> Siguiente", action="abandomoviez_search", page=next_page, thumbnail="", + itemlist.append(item.clone(title=config.get_localized_string(70502), action="abandomoviez_search", page=next_page, thumbnail="", text_color="")) if not itemlist: - itemlist.append(item.clone(title="La búsqueda no ha dado resultados", action="", thumbnail="", + itemlist.append(item.clone(title=config.get_localized_string(70501), action="", thumbnail="", text_color="")) if keyboard: @@ -244,7 +244,7 @@ def abandomoviez_search(item): title = "[COLOR green]%s[/COLOR]" else: title = "%s" - itemlist.append(item.clone(title=title % "Búsqueda Manual en Abandomoviez", + itemlist.append(item.clone(title=title % config.get_localized_string(70511), action="manual_search", thumbnail="", text_color="green", extra="abandomoviez")) return itemlist @@ -256,13 +256,13 @@ def search_links_abando(item): data = scrapertools.downloadpage(item.url) itemlist = [] if "Lo sentimos, no tenemos trailer" in data: - itemlist.append(item.clone(title="No hay ningún vídeo disponible", action="", text_color="")) + itemlist.append(item.clone(title=config.get_localized_string(70503), action="", text_color="")) else: if item.contextual: - progreso = platformtools.dialog_progress("Buscando en abandomoviez", "Cargando trailers...") + progreso = platformtools.dialog_progress(config.get_localized_string(70512), config.get_localized_string(70504)) progreso.update(10) i = 0 - message = "Cargando trailers..." + message = config.get_localized_string(70504) patron = '
(.*?)' matches = scrapertools.find_multiple_matches(data, patron) @@ -304,7 +304,7 @@ def search_links_abando(item): title = "[COLOR green]%s[/COLOR]" else: title = "%s" - itemlist.append(item.clone(title=title % "Búsqueda Manual en Abandomoviez", + itemlist.append(item.clone(title=title % config.get_localized_string(70511), action="manual_search", thumbnail="", text_color="green", extra="abandomoviez")) return itemlist @@ -349,11 +349,11 @@ def filmaffinity_search(item): next_page = scrapertools.find_single_match(data, '>>') if next_page != "": next_page = urlparse.urljoin("http://www.filmaffinity.com/es/", next_page) - itemlist.append(item.clone(title=">> Siguiente", page=next_page, action="filmaffinity_search", thumbnail="", + itemlist.append(item.clone(title=config.get_localized_string(70502), page=next_page, action="filmaffinity_search", thumbnail="", text_color="")) if not itemlist: - itemlist.append(item.clone(title="La búsqueda no ha dado resultados (%s)" % item.contentTitle, + itemlist.append(item.clone(title=config.get_localized_string(70501) % item.contentTitle, action="", thumbnail="", text_color="")) if keyboard: @@ -361,7 +361,7 @@ def filmaffinity_search(item): title = "[COLOR green]%s[/COLOR]" else: title = "%s" - itemlist.append(item.clone(title=title % "Búsqueda Manual en Filmaffinity", + itemlist.append(item.clone(title=title % config.get_localized_string(70513), action="manual_search", text_color="green", thumbnail="", extra="filmaffinity")) return itemlist @@ -373,7 +373,7 @@ def search_links_filmaff(item): itemlist = [] data = scrapertools.downloadpage(item.url) if not 'Genres(.*?)') matches = scrapertools.find_multiple_matches(bloque, ' value="([^"]+)"\s*>\s*([^<]+)<') if matches: list_controls.append({'id': 'labelgenre', 'enabled': True, 'type': 'label', 'visible': True, - 'label': 'Selecciona uno, ninguno o más de un género', 'color': '0xFFC52020'}) + 'label': config.get_localized_string(70451), 'color': '0xFFC52020'}) lista = [] for valor, titulo in matches: titulo = generos_spa.get(titulo, titulo) @@ -1054,10 +1054,10 @@ def filtro_imdb(item): bloque = scrapertools.find_single_match(data, '

Countries

(.*?)Less-Common') matches = scrapertools.find_multiple_matches(bloque, ' value="([^"]+)"\s*>([^<]+)<') if matches: - list_controls.append({'id': 'pais', 'label': 'País', 'enabled': True, 'color': '0xFFFF8000', + list_controls.append({'id': 'pais', 'label': config.get_localized_string(70466), 'enabled': True, 'color': '0xFFFF8000', 'type': 'list', 'default': -1, 'visible': True}) list_controls[-1]['lvalues'] = [] - list_controls[-1]['lvalues'].append('Cualquiera') + list_controls[-1]['lvalues'].append(config.get_localized_string(70450)) valores['pais'] = [] valores['pais'].append('') for valor, titulo in matches: @@ -1067,13 +1067,10 @@ def filtro_imdb(item): except: pass - list_controls.append({'id': 'votos', 'label': 'Número mínimo de votos', 'enabled': True, - 'type': 'text', 'default': '10000', 'visible': True, 'color': '0xFFF4FA58'}) - - list_controls.append({'id': 'orden', 'label': 'Ordenar por', 'enabled': True, 'color': '0xFF25AA48', + list_controls.append({'id': 'orden', 'label': config.get_localized_string(70455), 'enabled': True, 'color': '0xFF25AA48', 'type': 'list', 'default': -1, 'visible': True}) - orden = ['Popularidad Desc', 'Popularidad Asc', 'Año Desc', 'Año Asc', 'Valoración Desc', 'Valoración Asc', - 'Título [A-Z]', 'Título [Z-A]'] + orden = [config.get_localized_string(70456), config.get_localized_string(70457), config.get_localized_string(70458), config.get_localized_string(70459), config.get_localized_string(70460), config.get_localized_string(70461), + config.get_localized_string(70462, config.get_localized_string(70463)] orden_imdb = ['moviemeter,asc', 'moviemeter,desc', 'year,desc', 'year,asc', 'user_rating,desc', 'user_rating,asc', 'alpha,asc', 'alpha,desc'] @@ -1083,7 +1080,7 @@ def filtro_imdb(item): list_controls[-1]['lvalues'].insert(0, tipo_orden) valores['orden'].insert(0, orden_imdb[i]) - list_controls.append({'id': 'save', 'label': 'Establecer como filtro por defecto', 'enabled': True, + list_controls.append({'id': 'save', 'label': config.get_localized_string(70464), 'enabled': True, 'type': 'bool', 'default': False, 'visible': True}) item.valores = valores @@ -1130,12 +1127,12 @@ def indices_imdb(item): itemlist = [] from datetime import datetime if config.get_localized_string(70032) in item.title: - generos_spa = {'Action': 'Accion', 'Adventure': 'Aventura', 'Animation': 'Animacion', 'Biography': 'Biografía', - 'Comedy': 'Comedia', 'Crime': 'Crimen', 'Documentary': 'Documental', 'Family': 'Familia', - 'Fantasy': 'Fantasia', 'Film-Noir': 'Cine Negro', 'Game-Show': 'Concursos', - 'History': 'Historia', 'Horror': 'Terror', 'Music': 'Música', 'Mistery': 'Intriga', - 'News': 'Noticias', 'Reality-TV': 'Reality', 'Sci-Fi': 'Ciencia Ficcion', 'Sport': 'Deportes', - 'Talk-Show': 'Entrevistas', 'War': 'Cine Bélico'} + generos_spa = {'Action': config.get_localized_string(70394), 'Adventure': config.get_localized_string(60267), 'Animation': config.get_localized_string(60268), 'Biography': config.get_localized_string(70403), 'Thriller': config.get_localized_string(70410), + 'Comedy': config.get_localized_string(60270), 'Crime': config.get_localized_string(60271), 'Documentary': config.get_localized_string(70396), 'Family': config.get_localized_string(70399), 'Romance': config.get_localized_string(70409), + 'Fantasy': config.get_localized_string(60274), 'Film-Noir': config.get_localized_string(70400), 'Game-Show': config.get_localized_string(70401), 'Drama': config.get_localized_string(70412), 'Western': config.get_localized_string(70411), + 'History': config.get_localized_string(70405), 'Horror': config.get_localized_string(70013), 'Music': config.get_localized_string(70404), 'Musical': config.get_localized_string(70408),'Mystery': config.get_localized_string(70402), + 'News': config.get_localized_string(60279), 'Reality-TV': config.get_localized_string(70406), 'Sci-Fi': config.get_localized_string(70397), 'Sport': config.get_localized_string(70395), + 'Talk-Show': config.get_localized_string(70398), 'War': config.get_localized_string(70407)} data = httptools.downloadpage("http://www.imdb.com/search/title", cookies=False).data bloque = scrapertools.find_single_match(data, '

Genres

(.*?)') matches = scrapertools.find_multiple_matches(bloque, ' value="([^"]+)"\s*>\s*([^<]+)<') @@ -1616,9 +1613,9 @@ def filtro_fa(item): if valores_guardados: dict_values = valores_guardados - list_controls.append({'id': 'yearsdesde', 'label': 'Año desde:', 'enabled': True, + list_controls.append({'id': 'yearsdesde', 'label': config.get_localized_string(70452), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True}) - list_controls.append({'id': 'yearshasta', 'label': 'Año hasta:', 'enabled': True, + list_controls.append({'id': 'yearshasta', 'label': config.get_localized_string(70453), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True}) list_controls[0]['lvalues'] = [] list_controls[1]['lvalues'] = [] @@ -1628,8 +1625,8 @@ def filtro_fa(item): list_controls[0]['lvalues'].append(str(i)) list_controls[1]['lvalues'].append(str(i)) valores['years'].append(str(i)) - list_controls[0]['lvalues'].append('Cualquiera') - list_controls[1]['lvalues'].append('Cualquiera') + list_controls[0]['lvalues'].append(config.get_localized_string(70450)) + list_controls[1]['lvalues'].append(config.get_localized_string(70450)) valores['years'].append('') data = httptools.downloadpage("http://m.filmaffinity.com/%s/topgen.php" % langf).data @@ -1640,7 +1637,7 @@ def filtro_fa(item): bloque = scrapertools.find_single_match(data, 'name="genre">.*?(.*?)') matches = scrapertools.find_multiple_matches(bloque, '') if matches: - list_controls.append({'id': 'genero', 'label': 'Selecciona un género', 'enabled': True, + list_controls.append({'id': 'genero', 'label': config.get_localized_string(70467), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True}) list_controls[2]['lvalues'] = [] list_controls[2]['lvalues'].append("Todos") @@ -1659,7 +1656,7 @@ def filtro_fa(item): bloque = scrapertools.find_single_match(data, 'name="country">.*?(.*?)') matches = scrapertools.find_multiple_matches(bloque, '') if matches: - list_controls.append({'id': 'pais', 'label': 'País', 'enabled': True, + list_controls.append({'id': 'pais', 'label': config.get_localized_string(70466), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True}) list_controls[-1]['lvalues'] = [] list_controls[-1]['lvalues'].append('Todos') @@ -1673,7 +1670,7 @@ def filtro_fa(item): list_controls.append({'id': 'espacio', 'label': '', 'enabled': False, 'type': 'label', 'default': None, 'visible': True}) - list_controls.append({'id': 'save', 'label': 'Establecer como filtro por defecto', 'enabled': True, + list_controls.append({'id': 'save', 'label': config.get_localized_string(70464), 'enabled': True, 'type': 'bool', 'default': False, 'visible': True}) item.valores = valores @@ -1863,7 +1860,7 @@ def votar_fa(item): dict_values = None if item.voto: dict_values = {'voto': item.voto} - list_controls.append({'id': 'voto', 'label': 'Indica tu voto:', 'enabled': True, + list_controls.append({'id': 'voto', 'label': config.get_localized_string(70468), 'enabled': True, 'type': 'list', 'default': 0, 'visible': True}) list_controls[0]['lvalues'] = ['No vista'] valores['voto'] = ["-1"] @@ -2184,9 +2181,9 @@ def acciones_trakt(item): elif data and not item.url.endswith("lists"): data = jsontools.load(data) if data and "page=1" in item.url and item.order: - valores = {'rank': 'Por defecto', 'added': 'Añadido', 'title': 'Título', 'released': 'Estreno', - 'runtime': 'Duración', 'popularity': 'Popularidad', 'percentage': 'Valoración', - 'votes': 'Votos', 'asc': 'ascendente', 'desc': 'descendente'} + valores = {'rank': config.get_localized_string(70003), 'added': config.get_localized_string(70469), 'title': config.get_localized_string(60320), 'released': config.get_localized_string(70470), + 'runtime': config.get_localized_string(70471), 'popularity': config.get_localized_string(70472), 'percentage': config.get_localized_string(70473), + 'votes': config.get_localized_string(70474), 'asc': config.get_localized_string(70475), 'desc': config.get_localized_string(70476)} orden = valores[item.order] + " " + valores[item.how] itemlist.append(item.clone(title=config.get_localized_string(70349) % orden, action="order_list", text_color=color4)) @@ -2267,13 +2264,13 @@ def order_list(item): dict_values = {'orderby': valores1.index(item.order), 'orderhow': valores2.index(item.how)} - list_controls.append({'id': 'orderby', 'label': 'Ordenar por:', 'enabled': True, + list_controls.append({'id': 'orderby', 'label': config.get_localized_string(70455), 'enabled': True, 'type': 'list', 'default': 0, 'visible': True}) list_controls.append({'id': 'orderhow', 'label': 'De forma:', 'enabled': True, 'type': 'list', 'default': 0, 'visible': True}) - list_controls[0]['lvalues'] = ['Por defecto', 'Añadido', 'Título', 'Estreno', 'Duración', 'Popularidad', - 'Valoración', 'Votos'] - list_controls[1]['lvalues'] = ['Ascendente', 'Descendente'] + list_controls[0]['lvalues'] = [config.get_localized_string(70003), config.get_localized_string(70469), config.get_localized_string(60230), config.get_localized_string(70470), config.get_localized_string(70471), config.get_localized_string(70472), + config.get_localized_string(70473), config.get_localized_string(70474)] + list_controls[1]['lvalues'] = [config.get_localized_string(70477), config.get_localized_string(70478)] return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, caption=config.get_localized_string(70320), item=item, callback='order_trakt') @@ -2494,8 +2491,8 @@ def detalles_mal(item): itemlist.append( item.clone(title=config.get_localized_string(70321) % score, action="menu_mal", contentTitle=title_mal)) elif item.login and config.is_xbmc(): - status = {'1': 'Viendo Actualmente', '2': 'Completados', '3': 'En pausa', '4': 'Descartados', - '6': 'Previstos para ver'} + status = {'1': config.get_localized_string(70479), '2': config.get_localized_string(70480), '3': config.get_localized_string(70384), '4': config.get_localized_string(70385), + '6': config.get_localized_string(70481)} estado = scrapertools.find_single_match(data, 'myinfo_updateInfo".*?option selected="selected" value="(\d+)"') try: estado = status[estado] @@ -2995,7 +2992,7 @@ def info_anidb(item, itemlist, url): if abrev != title: title += " [%s]" % abrev estado = estado.replace("complete", config.get_localized_string(70378)).replace("finished", config.get_localized_string(70379)) \ - .replace("stalled", "Pausa").replace("dropped", "Abandonada") + .replace("stalled", config.get_localized_string(70380)).replace("dropped", config.get_localized_string(70381)) title += " [COLOR %s](%s)[/COLOR] %s/%s [%s]" % (color6, estado, epis, epi_total, source) itemlist.append(Item(channel=item.channel, title=title, infoLabels=infoLabels, action="", thumbnail=thumbnail, text_color=color4)) @@ -3012,22 +3009,22 @@ def filtro_mal(item): if valores_guardados: dict_values = valores_guardados - list_controls.append({'id': 'keyword', 'label': 'Palabra Clave', 'enabled': True, + list_controls.append({'id': 'keyword', 'label': config.get_localized_string(70465), 'enabled': True, 'type': 'text', 'default': '', 'visible': True}) - list_controls.append({'id': 'tipo', 'label': 'Tipo', 'enabled': True, + list_controls.append({'id': 'tipo', 'label': config.get_localized_string(70482), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True}) - list_controls[1]['lvalues'] = ['Especial', 'OVA', 'Película', 'Serie', 'Cualquiera'] + list_controls[1]['lvalues'] = [config.get_localized_string(70483), config.get_localized_string(70484), config.get_localized_string(60244), config.get_localized_string(70136), config.get_localized_string(70450)] valores["tipo"] = ['4', '2', '3', '1', '0'] - list_controls.append({'id': 'valoracion', 'label': 'Valoración', 'enabled': True, + list_controls.append({'id': 'valoracion', 'label': config.get_localized_string(70473), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True}) - list_controls[2]['lvalues'] = ['(1) Grotesca', '(2) Horrible', '(3) Muy mala', '(4) Mala', - '(5) Regular', '(6) Pasable', '(7) Buena', '(8) Muy buena', - '(9) Genial', '(10) Obra maestra', 'Cualquiera'] + list_controls[2]['lvalues'] = [config.get_localized_string(70486), config.get_localized_string(70487), config.get_localized_string(70488), config.get_localized_string(70489), + config.get_localized_string(70490), config.get_localized_string(70491), config.get_localized_string(70492), config.get_localized_string(70493), + config.get_localized_string(70494), config.get_localized_string(70495), config.get_localized_string(70450)] valores["valoracion"] = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '0'] - list_controls.append({'id': 'estado', 'label': 'Estado', 'enabled': True, + list_controls.append({'id': 'estado', 'label': config.get_localized_string(70485), 'enabled': True, 'type': 'list', 'default': -1, 'visible': True}) - list_controls[3]['lvalues'] = ['Por estrenar', 'En emisión', 'Terminada', 'Cualquiera'] + list_controls[3]['lvalues'] = ['Por estrenar', config.get_localized_string(60264), config.get_localized_string(70379), config.get_localized_string(70450)] valores["estado"] = ['3', '1', '2', '0'] try: @@ -3037,7 +3034,7 @@ def filtro_mal(item): generos = scrapertools.find_multiple_matches(data, patron) if generos: list_controls.append({'id': 'labelgenre', 'enabled': True, 'type': 'label', 'default': None, - 'label': 'Selecciona uno, ninguno o más de un género', + 'label': config.get_localized_string(70451), 'visible': True, 'color': '0xFFC52020'}) for value, genre in generos: list_controls.append({'id': 'genre' + value, 'label': genre, 'enabled': True, @@ -3047,7 +3044,7 @@ def filtro_mal(item): list_controls.append({'id': 'espacio', 'label': '', 'enabled': False, 'type': 'label', 'default': None, 'visible': True}) - list_controls.append({'id': 'save', 'label': 'Establecer como filtro por defecto', 'enabled': True, + list_controls.append({'id': 'save', 'label': config.get_localized_string(70464), 'enabled': True, 'type': 'bool', 'default': False, 'visible': True}) item.valores = valores @@ -3231,8 +3228,8 @@ def menu_mal(item): data = httptools.downloadpage(item.url).data try: - status = {'1': 'Viendo Actualmente', '2': 'Completados', '3': 'En pausa', '4': 'Descartados', - '6': 'Previstos para ver'} + status = {'1': config.get_localized_string(70479), '2': config.get_localized_string(70480), '3': config.get_localized_string(70384), '4': config.get_localized_string(70385), + '6': config.get_localized_string(70481)} button, estado = scrapertools.find_single_match(data, 'myinfo_updateInfo"(.*?)>.*?option selected="selected" value="(\d+)"') if "disabled" in button: @@ -3249,9 +3246,9 @@ def menu_mal(item): if "lista" in title_estado: item.lista = True - itemlist.append(item.clone(title=config.get_localized_string(70390) % (item.contentTitle, title_estado), action="")) - status = {'1': 'Viendo Actualmente', '2': 'Completados', '3': 'En pausa', '4': 'Descartados', - '6': 'Previstos para ver'} + itemlist.append(item.clone(title="Anime: %s%s" % (item.contentTitle, title_estado), action="")) + status = {'1': config.get_localized_string(70479), '2': config.get_localized_string(70480), '3': config.get_localized_string(70384), '4': config.get_localized_string(70385), + '6': config.get_localized_string(70481)} for key, value in status.items(): if not value in title_estado: itemlist.append( diff --git a/plugin.video.alfa/core/tmdb.py b/plugin.video.alfa/core/tmdb.py index d1618948..96e9c5a3 100644 --- a/plugin.video.alfa/core/tmdb.py +++ b/plugin.video.alfa/core/tmdb.py @@ -1350,7 +1350,7 @@ class Tmdb(object): if "status_code" in self.temporada[numtemporada]: #Se ha producido un error - msg = "La busqueda de " + buscando + " no dio resultados." + msg = config.get_localized_string(70496) + buscando + config.get_localized_string(70497) msg += "\nError de tmdb: %s %s" % ( self.temporada[numtemporada]["status_code"], self.temporada[numtemporada]["status_message"]) logger.debug(msg) diff --git a/plugin.video.alfa/core/trakt_tools.py b/plugin.video.alfa/core/trakt_tools.py index e07c5971..1414a606 100644 --- a/plugin.video.alfa/core/trakt_tools.py +++ b/plugin.video.alfa/core/trakt_tools.py @@ -71,11 +71,11 @@ def token_trakt(item): data = jsontools.load(data) else: import time - dialog_auth = platformtools.dialog_progress("Sincronizar con Trakt. No cierres esta ventana", - "1. Entra en la siguiente url: %s" % item.verify_url, - "2. Ingresa este código en la página y acepta: %s" + dialog_auth = platformtools.dialog_progress(config.get_localized_string(60251), + config.get_localized_string(60252) % item.verify_url, + config.get_localized_string(60253) % item.user_code, - "3. Espera a que se cierre esta ventana") + config.get_localized_string(60254)) # Generalmente cada 5 segundos se intenta comprobar si el usuario ha introducido el código while True: diff --git a/plugin.video.alfa/lib/unshortenit.py b/plugin.video.alfa/lib/unshortenit.py index a3973b87..d35555f0 100755 --- a/plugin.video.alfa/lib/unshortenit.py +++ b/plugin.video.alfa/lib/unshortenit.py @@ -12,11 +12,10 @@ import re import time import urllib from base64 import b64decode -from platformcode import logger -import xbmc from core import httptools +from platformcode import config def find_in_text(regex, text, flags=re.IGNORECASE | re.DOTALL): @@ -28,24 +27,30 @@ def find_in_text(regex, text, flags=re.IGNORECASE | re.DOTALL): class UnshortenIt(object): - _adfly_regex = r'adf\.ly|q\.gs|j\.gs|u\.bb|ay\.gy|threadsphere\.bid|restorecosm\.bid|clearload\.bid' + _adfly_regex = r'adf\.ly|j\.gs|q\.gs|u\.bb|ay\.gy|atominik\.com|tinyium\.com|microify\.com|threadsphere\.bid|clearload\.bid' _linkbucks_regex = r'linkbucks\.com|any\.gs|cash4links\.co|cash4files\.co|dyo\.gs|filesonthe\.net|goneviral\.com|megaline\.co|miniurls\.co|qqc\.co|seriousdeals\.net|theseblogs\.com|theseforums\.com|tinylinks\.co|tubeviral\.com|ultrafiles\.net|urlbeat\.net|whackyvidz\.com|yyv\.co' _adfocus_regex = r'adfoc\.us' _lnxlu_regex = r'lnx\.lu' - _shst_regex = r'sh\.st|gestyy\.com' + _shst_regex = r'sh\.st|festyy\.com|ceesty\.com' _hrefli_regex = r'href\.li' _anonymz_regex = r'anonymz\.com' _shrink_service_regex = r'shrink-service\.it' _rapidcrypt_regex = r'rapidcrypt\.net' + _maxretries = 5 + _this_dir, _this_filename = os.path.split(__file__) _timeout = 10 def unshorten(self, uri, type=None): + domain = urlsplit(uri).netloc + if not domain: return uri, "No domain found in URI!" + had_google_outbound, uri = self._clear_google_outbound_proxy(uri) + if re.search(self._adfly_regex, domain, re.IGNORECASE) or type == 'adfly': return self._unshorten_adfly(uri) @@ -68,15 +73,15 @@ class UnshortenIt(object): return self._unshorten_anonymz(uri) if re.search(self._rapidcrypt_regex, domain, re.IGNORECASE): return self._unshorten_rapidcrypt(uri) + return uri, 200 + def unwrap_30x(self, uri, timeout=10): + domain = urlsplit(uri).netloc self._timeout = timeout - loop_counter = 0 + try: - if loop_counter > 5: - raise ValueError("Infinitely looping redirect from URL: '%s'" % - (uri,)) # headers stop t.co from working so omit headers if this is a t.co link if domain == 't.co': r = httptools.downloadpage(uri, timeout=self._timeout) @@ -86,29 +91,28 @@ class UnshortenIt(object): r = httptools.downloadpage(uri, timeout=self._timeout) uri = re.findall(r'.*url\=(.*?)\"\.*', r.data)[0] return uri, r.code - else: - while True: + retries = 0 + while True: + r = httptools.downloadpage( + uri, + timeout=self._timeout, + follow_redirects=False) + if not r.sucess: + return uri, -1 + + if 'location' in r.headers and retries < self._maxretries: r = httptools.downloadpage( - uri, - timeout=self._timeout, - follow_redirects=False, - only_headers=True) - if not r.success: - return uri, -1 - retries = 0 - if 'location' in r.headers and retries < self._maxretries: - r = httptools.downloadpage( - r.headers['location'], - follow_redirects=False, - only_headers=True) - uri = r.url - loop_counter += 1 - retries = retries + 1 - else: - return r.url, r.code + r.headers['location'], + follow_redirects=False) + uri = r.url + retries += 1 + else: + return r.url, r.code + except Exception as e: return uri, str(e) + def _clear_google_outbound_proxy(self, url): ''' So google proxies all their outbound links through a redirect so they can detect outbound links. @@ -117,13 +121,16 @@ class UnshortenIt(object): This is useful for doing things like parsing google search results, or if you're scraping google docs, where google inserts hit-counters on all outbound links. ''' + # This is kind of hacky, because we need to check both the netloc AND # part of the path. We could use urllib.parse.urlsplit, but it's # easier and just as effective to use string checks. if url.startswith("http://www.google.com/url?") or \ url.startswith("https://www.google.com/url?"): + qs = urlparse(url).query query = parse_qs(qs) + if "q" in query: # Google doc outbound links (maybe blogspot, too) return True, query["q"].pop() elif "url" in query: # Outbound links from google searches @@ -132,10 +139,11 @@ class UnshortenIt(object): raise ValueError( "Google outbound proxy URL without a target url ('%s')?" % url) + return False, url def _unshorten_adfly(self, uri): - logger.info() + try: r = httptools.downloadpage( uri, timeout=self._timeout, cookies=False) @@ -144,11 +152,14 @@ class UnshortenIt(object): if len(ysmm) > 0: ysmm = re.sub(r'var ysmm \= \'|\'\;', '', ysmm[0]) + left = '' right = '' + for c in [ysmm[i:i + 2] for i in range(0, len(ysmm), 2)]: left += c[0] right = c[1] + right + # Additional digit arithmetic encoded_uri = list(left + right) numbers = ((i, n) for i, n in enumerate(encoded_uri) if str.isdigit(n)) @@ -156,9 +167,12 @@ class UnshortenIt(object): xor = int(first[1]) ^ int(second[1]) if xor < 10: encoded_uri[first[0]] = str(xor) + decoded_uri = b64decode("".join(encoded_uri).encode())[16:-16].decode() + if re.search(r'go\.php\?u\=', decoded_uri): decoded_uri = b64decode(re.sub(r'(.*?)u=', '', decoded_uri)).decode() + return decoded_uri, r.code else: return uri, 'No ysmm variable found' @@ -170,15 +184,25 @@ class UnshortenIt(object): ''' (Attempt) to decode linkbucks content. HEAVILY based on the OSS jDownloader codebase. This has necessidated a license change. + ''' + if config.is_xbmc(): + import xbmc + r = httptools.downloadpage(uri, timeout=self._timeout) + firstGet = time.time() + baseloc = r.url + if "/notfound/" in r.url or \ "(>Link Not Found<|>The link may have been deleted by the owner|To access the content, you must complete a quick survey\.)" in r.data: return uri, 'Error: Link not found or requires a survey!' + link = None + content = r.data + regexes = [ r"
.*?/a>.*?.*?[^<]+)", content) if not scripts: return uri, "No script bodies found?" + js = False + for script in scripts: # cleanup script = re.sub(r"[\r\n\s]+\/\/\s*[^\r\n]+", "", script) if re.search(r"\s*var\s*f\s*=\s*window\['init'\s*\+\s*'Lb'\s*\+\s*'js'\s*\+\s*''\];[\r\n\s]+", script): js = script + if not js: return uri, "Could not find correct script?" + token = find_in_text(r"Token\s*:\s*'([a-f0-9]{40})'", js) if not token: token = find_in_text(r"\?t=([a-f0-9]{40})", js) + assert token + authKeyMatchStr = r"A(?:'\s*\+\s*')?u(?:'\s*\+\s*')?t(?:'\s*\+\s*')?h(?:'\s*\+\s*')?K(?:'\s*\+\s*')?e(?:'\s*\+\s*')?y" l1 = find_in_text(r"\s*params\['" + authKeyMatchStr + r"'\]\s*=\s*(\d+?);", js) l2 = find_in_text( r"\s*params\['" + authKeyMatchStr + r"'\]\s*=\s?params\['" + authKeyMatchStr + r"'\]\s*\+\s*(\d+?);", js) + if any([not l1, not l2, not token]): return uri, "Missing required tokens?" + authkey = int(l1) + int(l2) + p1_url = urljoin(baseloc, "/director/?t={tok}".format(tok=token)) r2 = httptools.downloadpage(p1_url, timeout=self._timeout) + p1_url = urljoin(baseloc, "/scripts/jquery.js?r={tok}&{key}".format(tok=token, key=l1)) - r2_1 = httptools.downloadpage(p1_url, timeout=self._timeout) + r2 = httptools.downloadpage(p1_url, timeout=self._timeout) + time_left = 5.033 - (time.time() - firstGet) - xbmc.sleep(max(time_left, 0) * 1000) + if config.is_xbmc(): + xbmc.sleep(max(time_left, 0) * 1000) + else: + time.sleep(5 * 1000) + p3_url = urljoin(baseloc, "/intermission/loadTargetUrl?t={tok}&aK={key}&a_b=false".format(tok=token, key=str(authkey))) r3 = httptools.downloadpage(p3_url, timeout=self._timeout) + resp_json = json.loads(r3.data) if "Url" in resp_json: return resp_json['Url'], r3.code + return "Wat", "wat" def inValidate(self, s): @@ -237,23 +281,30 @@ class UnshortenIt(object): # (s == null || s != null && (s.matches("[\r\n\t ]+") || s.equals("") || s.equalsIgnoreCase("about:blank"))) if not s: return True + if re.search("[\r\n\t ]+", s) or s.lower() == "about:blank": return True else: return False + def _unshorten_adfocus(self, uri): orig_uri = uri try: + r = httptools.downloadpage(uri, timeout=self._timeout) html = r.data + adlink = re.findall("click_url =.*;", html) + if len(adlink) > 0: uri = re.sub('^click_url = "|"\;$', '', adlink[0]) if re.search(r'http(s|)\://adfoc\.us/serve/skip/\?id\=', uri): http_header = dict() http_header["Host"] = "adfoc.us" http_header["Referer"] = orig_uri + r = httptools.downloadpage(uri, headers=http_header, timeout=self._timeout) + uri = r.url return uri, r.code else: @@ -283,16 +334,23 @@ class UnshortenIt(object): try: r = httptools.downloadpage(uri, timeout=self._timeout) html = r.data + session_id = re.findall(r'sessionId\:(.*?)\"\,', html) if len(session_id) > 0: session_id = re.sub(r'\s\"', '', session_id[0]) + http_header = dict() http_header["Content-Type"] = "application/x-www-form-urlencoded" http_header["Host"] = "sh.st" http_header["Referer"] = uri http_header["Origin"] = "http://sh.st" http_header["X-Requested-With"] = "XMLHttpRequest" - xbmc.sleep(5 * 1000) + + if config.is_xbmc(): + xbmc.sleep(5 * 1000) + else: + time.sleep(5 * 1000) + payload = {'adSessionId': session_id, 'callback': 'c'} r = httptools.downloadpage( 'http://sh.st/shortest-url/end-adsession?' + @@ -300,6 +358,7 @@ class UnshortenIt(object): headers=http_header, timeout=self._timeout) response = r.data[6:-2].decode('utf-8') + if r.code == 200: resp_uri = json.loads(response)['destinationUrl'] if resp_uri is not None: @@ -325,8 +384,7 @@ class UnshortenIt(object): r = httptools.downloadpage( extracted_uri, timeout=self._timeout, - follow_redirects=False, - only_headers=True) + follow_redirects=False) return r.url, r.code except Exception as e: return uri, str(e) @@ -339,9 +397,12 @@ class UnshortenIt(object): try: r = httptools.downloadpage(uri, timeout=self._timeout, cookies=False) html = r.data + uri = re.findall(r"", html)[0] + from core import scrapertools uri = scrapertools.decodeHtmlentities(uri) + uri = uri.replace("/", "/") \ .replace(":", ":") \ .replace(".", ".") \ @@ -349,6 +410,7 @@ class UnshortenIt(object): .replace("#", "#") \ .replace("?", "?") \ .replace("_", "_") + return uri, r.code except Exception as e: @@ -358,7 +420,9 @@ class UnshortenIt(object): try: r = httptools.downloadpage(uri, timeout=self._timeout, cookies=False) html = r.data - uri = re.findall(r'Click to continue', html)[0] + + uri = re.findall(r']+)>', html)[0] + return uri, r.code except Exception as e: @@ -379,6 +443,7 @@ def unshorten_only(uri, type=None, timeout=10): def unshorten(uri, type=None, timeout=10): unshortener = UnshortenIt() + uri, status = unshortener.unwrap_30x(uri, timeout=timeout) uri, status = unshortener.unshorten(uri, type=type) if status == 200: uri, status = unshortener.unwrap_30x(uri, timeout=timeout) diff --git a/plugin.video.alfa/resources/language/English/strings.po b/plugin.video.alfa/resources/language/English/strings.po index 40a5bb6d..d9b8d81a 100644 --- a/plugin.video.alfa/resources/language/English/strings.po +++ b/plugin.video.alfa/resources/language/English/strings.po @@ -1894,7 +1894,7 @@ msgid "Uploading new data" msgstr "" msgctxt "#60470" -msgid "Buscando en Tmdb......." +msgid "Searching in Tmdb......." msgstr "" msgctxt "#60471" @@ -2766,7 +2766,7 @@ msgid "Beginning" msgstr "" msgctxt "#70013" -msgid "Terror" +msgid "Horror" msgstr "" msgctxt "#70014" @@ -3862,8 +3862,8 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese msgstr " " msgctxt "#70290" -msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: " -msgstr " " +msgid "default, you will have to change it again if you want.\nType 's', if you have understood it: " +msgstr "" msgctxt "#70291" msgid "Error, during conversion" @@ -4277,4 +4277,501 @@ msgstr "" msgctxt "#70392" msgid "Rate with a [COLOR %s]%s[/ COLOR]" -msgstr "" \ No newline at end of file +msgstr "" + +msgctxt "#70393" +msgid "[%s]: Select the correct %s " +msgstr "" + +msgctxt "#70394" +msgid "Action" +msgstr "" + +msgctxt "#70395" +msgid "Sport" +msgstr "" + +msgctxt "#70396" +msgid "Documentary" +msgstr "" + +msgctxt "#70397" +msgid "Science fiction" +msgstr "" + +msgctxt "#70398" +msgid "Talk Show" +msgstr "" + +msgctxt "#70399" +msgid "Family" +msgstr "" + +msgctxt "#70400" +msgid "Film-Noir" +msgstr "" + +msgctxt "#70401" +msgid "Game-Show" +msgstr "" + +msgctxt "#70402" +msgid "Mystery" +msgstr "" + +msgctxt "#70403" +msgid "Biography" +msgstr "" + +msgctxt "#70404" +msgid "Music" +msgstr "" + +msgctxt "#70405" +msgid "History" +msgstr "" + +msgctxt "#70406" +msgid "Reality-TV" +msgstr "" + +msgctxt "#70407" +msgid "War" +msgstr "" + +msgctxt "#70408" +msgid "Musical" +msgstr "" + +msgctxt "#70409" +msgid "Romance" +msgstr "" + +msgctxt "#70410" +msgid "Thriller" +msgstr "Thriller" + +msgctxt "#70411" +msgid "Western" +msgstr "" + +msgctxt "#70412" +msgid "Drama" +msgstr "" + +msgctxt "#70413" +msgid "2. Enter this code on the page and click Allow: %s" +msgstr "" + +msgctxt "#70414" +msgid "Authentication. Do not close this window!!" +msgstr "" + +msgctxt "#70415" +msgid "Trakt.tv" +msgstr "" + +msgctxt "#70416" +msgid "=== Movies ===" +msgstr "" + +msgctxt "#70417" +msgid "=== TV Shows ===" +msgstr "" + +msgctxt "#70418" +msgid "Search language in TMDB" +msgstr "" + +msgctxt "#70419" +msgid "German" +msgstr "" + +msgctxt "#70420" +msgid "French" +msgstr "" + +msgctxt "#70421" +msgid "Portuguese" +msgstr "" + +msgctxt "#70422" +msgid "Italian" +msgstr "" + +msgctxt "#70423" +msgid "Spanish Latin" +msgstr "" + +msgctxt "#70424" +msgid "Catalan" +msgstr "" + +msgctxt "#70425" +msgid "English" +msgstr "" + +msgctxt "#70426" +msgid "Alternative language for TMDB (No main language synopsis)" +msgstr "" + +msgctxt "#70427" +msgid "Language of titles in IMDB" +msgstr "" + +msgctxt "#70428" +msgid "Filmaffinity website" +msgstr "" + +msgctxt "#70429" +msgid "Colombia" +msgstr "" + +msgctxt "#70430" +msgid "Chile" +msgstr "" + +msgctxt "#70431" +msgid "Argentina" +msgstr "" + +msgctxt "#70432" +msgid "Mexico" +msgstr "" + +msgctxt "#70433" +msgid "US/UK" +msgstr "" + +msgctxt "#70434" +msgid "Spain" +msgstr "" + +msgctxt "#70435" +msgid "User Filmaaffinity (Optional)" +msgstr "" + +msgctxt "#70436" +msgid "Password Filmaffinity" +msgstr "" + +msgctxt "#70437" +msgid "Order personal lists of Filmaffinity by:" +msgstr "" + +msgctxt "#70438" +msgid "Position" +msgstr "" + +msgctxt "#70439" +msgid "Vote" +msgstr "" + +msgctxt "#70440" +msgid "Average grade" +msgstr "" + +msgctxt "#70441" +msgid "User MyAnimeList (Optional)" +msgstr "" + +msgctxt "#70442" +msgid "Password MyAnimeList" +msgstr "" + +msgctxt "#70443" +msgid "Show Hentai in MyAnimeList" +msgstr "" + +msgctxt "#70444" +msgid "Profile 3" +msgstr "" + +msgctxt "#70445" +msgid "Profile 2" +msgstr "" + +msgctxt "#70446" +msgid "Profile 1" +msgstr "" + +msgctxt "#70447" +msgid "[%s] The file has been deleted" +msgstr "" + +msgctxt "#70448" +msgid "[%s] The file is still in process" +msgstr "" + +msgctxt "#70449" +msgid "" +msgstr "" + +msgctxt "#70450" +msgid "Anyone" +msgstr "" + +msgctxt "#70451" +msgid "Select one, none or more than one gender" +msgstr "S" + +msgctxt "#70452" +msgid "Year from" +msgstr "" + +msgctxt "#70453" +msgid "Year until" +msgstr "" + +msgctxt "#70454" +msgid "Minimum number of votes" +msgstr "" + +msgctxt "#70455" +msgid "Order by" +msgstr "" + +msgctxt "#70456" +msgid "Popularity Desc" +msgstr "" + +msgctxt "#70457" +msgid "Popularity Asc" +msgstr "" + +msgctxt "#70458" +msgid "Year Desc" +msgstr "" + +msgctxt "#70459" +msgid "Year Asc" +msgstr "" + +msgctxt "#70460" +msgid "Desc Rating" +msgstr "" + +msgctxt "#70461" +msgid "Asc Rating" +msgstr "" + +msgctxt "#70462" +msgid "Title [A-Z]" +msgstr "" + +msgctxt "#70463" +msgid "Title [Z-A]" +msgstr "" + +msgctxt "#70464" +msgid "Set as default filter" +msgstr "" + +msgctxt "#70465" +msgid "Key word" +msgstr "" + +msgctxt "#70466" +msgid "Country" +msgstr "" + +msgctxt "#70467" +msgid "Select a genre" +msgstr "" + +msgctxt "#70468" +msgid "Indicate your vote" +msgstr "" + +msgctxt "#70469" +msgid "Added" +msgstr "" + +msgctxt "#70470" +msgid "Premiere" +msgstr "" + +msgctxt "#70471" +msgid "Duration" +msgstr "" + +msgctxt "#70472" +msgid "Popularity" +msgstr "" + +msgctxt "#70473" +msgid "Rating" +msgstr "" + +msgctxt "#70474" +msgid "Votes" +msgstr "" + +msgctxt "#70475" +msgid "upward" +msgstr "" + +msgctxt "#70476" +msgid "falling" +msgstr "" + +msgctxt "#70477" +msgid "Upward" +msgstr "" + +msgctxt "#70478" +msgid "Falling" +msgstr "" + +msgctxt "#70479" +msgid "Currently watching" +msgstr "" + +msgctxt "#70480" +msgid "Completed" +msgstr "" + +msgctxt "#70481" +msgid "Anticipated to see" +msgstr "" + +msgctxt "#70482" +msgid "Kind" +msgstr "" + +msgctxt "#70483" +msgid "Special" +msgstr "" + +msgctxt "#70484" +msgid "OVA" +msgstr "" + +msgctxt "#70485" +msgid "Status" +msgstr "" + +msgctxt "#70486" +msgid "(1) Grotesque" +msgstr "" + +msgctxt "#70487" +msgid "(2) Horrible" +msgstr "" + +msgctxt "#70488" +msgid "(3) Very bad" +msgstr "" + +msgctxt "#70489" +msgid "(4) Bad" +msgstr "" + +msgctxt "#70490" +msgid "(5) Regular" +msgstr "" + +msgctxt "#70491" +msgid "(6) Pasable" +msgstr "" + +msgctxt "#70492" +msgid "(7) Good" +msgstr "" + +msgctxt "#70493" +msgid "(8) Very good" +msgstr "" + +msgctxt "#70494" +msgid "(9) Genial" +msgstr "" + +msgctxt "#70495" +msgid "(10) Masterpiece" +msgstr "" + +msgctxt "#70496" +msgid "The search for " +msgstr "" + +msgctxt "#70497" +msgid " did not match." +msgstr "" + +msgctxt "#70498" +msgid "Producer: " +msgstr "" + +msgctxt "#70499" +msgid "Genre: " +msgstr "" + +msgctxt "#70500" +msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" +msgstr "" + +msgctxt "#70501" +msgid "Search did not match (%s)" +msgstr "" + +msgctxt "#70502" +msgid ">> Next" +msgstr "" + +msgctxt "#70503" +msgid "There is no available video" +msgstr "" + +msgctxt "#70504" +msgid "Loading trailers..." +msgstr "" + +msgctxt "#70505" +msgid "Enter the title to search" +msgstr "" + +msgctxt "#70506" +msgid "Searching: " +msgstr "" + +msgctxt "#70507" +msgid "Search in Youtube" +msgstr "" + +msgctxt "#70508" +msgid "Search in Abandomoviez" +msgstr "" + +msgctxt "#70509" +msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)" +msgstr "" + +msgctxt "#70510" +msgid "Manual Search in Youtube" +msgstr "" + +msgctxt "#70511" +msgid "Manual Search in Abandomoviez" +msgstr "" + +msgctxt "#70512" +msgid "Searching in abandomoviez" +msgstr "" + +msgctxt "#70513" +msgid "Manual Searching in Filmaffinity" +msgstr "" + +msgctxt "#70514" +msgid "Manual Search in Jayhap" +msgstr "" + +msgctxt "#70515" +msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]" +msgstr "" + +msgctxt "#70516" +msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]" +msgstr "" + diff --git a/plugin.video.alfa/resources/language/Italian/strings.po b/plugin.video.alfa/resources/language/Italian/strings.po index 8ebb6a0b..a2e331ad 100644 --- a/plugin.video.alfa/resources/language/Italian/strings.po +++ b/plugin.video.alfa/resources/language/Italian/strings.po @@ -2754,7 +2754,7 @@ msgid "Beginnin" msgstr "Inizio" msgctxt "#70013" -msgid "Terror" +msgid "Horror" msgstr "Orrore" msgctxt "#70014" @@ -3846,8 +3846,8 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese msgstr "Alfa\nCorretto un errore nella sezione adulti, la password è sta resettata a quella di " msgctxt "#70290" -msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: " -msgstr "default, puoi cambiarla di nuovo se vuoi.\n Scrivi 's', se hai capito: " +msgid "default, you will have to change it again if you want.\nType 's', if you have understood it: " +msgstr "default, puoi cambiarla di nuovo se vuoi.\nScrivi 's', se hai capito: " msgctxt "#70291" msgid "Error, during conversion" @@ -3997,7 +3997,7 @@ msgstr "[FA] Aggiungi o rimuovi da un elenco utenti" msgctxt "#70327" msgid "It's part of: %s" -msgstr "E'parte di: %s" +msgstr "Fa parte di: %s" msgctxt "#70328" msgid "%ss similarar" @@ -4261,4 +4261,505 @@ msgstr "Aggiungi alla lista %s" msgctxt "#70392" msgid "Rate with a [COLOR %s]%s[/ COLOR]" -msgstr "Dai un punteggio con un [COLOR %s]%s[/COLOR]" \ No newline at end of file +msgstr "Dai un punteggio con un [COLOR %s]%s[/COLOR]" + +msgctxt "#70393" +msgid "[%s]: Select the correct %s " +msgstr "[%s]: Seleziona la %s corretta" + +msgctxt "#70394" +msgid "Action" +msgstr "Azione" + +msgctxt "#70395" +msgid "Sport" +msgstr "Sport" + +msgctxt "#70396" +msgid "Documentary" +msgstr "Documentari" + +msgctxt "#70397" +msgid "Science fiction" +msgstr "Fantascienza" + +msgctxt "#70398" +msgid "Talk Show" +msgstr "Talk Show" + +msgctxt "#70399" +msgid "Family" +msgstr "Famiglia" + +msgctxt "#70400" +msgid "Film-Noir" +msgstr "Film Noir" + +msgctxt "#70401" +msgid "Game-Show" +msgstr "Game Show" + +msgctxt "#70402" +msgid "Mystery" +msgstr "Mistero" + +msgctxt "#70403" +msgid "Biography" +msgstr "Biografía" + +msgctxt "#70404" +msgid "Music" +msgstr "Musica" + +msgctxt "#70405" +msgid "History" +msgstr "Storico" + +msgctxt "#70406" +msgid "Reality-TV" +msgstr "Reality Show" + +msgctxt "#70407" +msgid "War" +msgstr "Guerra" + +msgctxt "#70408" +msgid "Musical" +msgstr "Musical" + +msgctxt "#70409" +msgid "Romance" +msgstr "Romantico" + +msgctxt "#70410" +msgid "Thriller" +msgstr "Thriller" + +msgctxt "#70411" +msgid "Western" +msgstr "Western" + +msgctxt "#70412" +msgid "Drama" +msgstr "Drammatico" + +msgctxt "#70413" +msgid "" +msgstr "" + +msgctxt "#70413" +msgid "2. Enter this code on the page and click Allow: %s" +msgstr "2. Inserisci questo codice nella pagina e premi Allow: %s" + +msgctxt "#70414" +msgid "Authentication. Do not close this window!!" +msgstr "Autenticazione. Non chiudere questa finestra!!" + +msgctxt "#70415" +msgid "Trakt.tv" +msgstr "Trakt.tv" + +msgctxt "#70416" +msgid "=== Movies ===" +msgstr "=== Film ===" + +msgctxt "#70417" +msgid "=== TV Shows ===" +msgstr "=== Serie TV ===" + +msgctxt "#70418" +msgid "Search language in TMDB" +msgstr "Ligua di ricerca in TMDB" + +msgctxt "#70419" +msgid "German" +msgstr "Tedesco" + +msgctxt "#70420" +msgid "French" +msgstr "Francese" + +msgctxt "#70421" +msgid "Portuguese" +msgstr "Portoghese" + +msgctxt "#70422" +msgid "Italian" +msgstr "Italiano" + +msgctxt "#70423" +msgid "Spanish Latin" +msgstr "Spagnolo Latino" + +msgctxt "#70424" +msgid "Catalan" +msgstr "Catalano" + +msgctxt "#70425" +msgid "English" +msgstr "Inglese" + +msgctxt "#70426" +msgid "Alternative language for TMDB (No main language synopsis)" +msgstr "Linguaggio alternativo per TMDB (sinossi senza lingua principale)" + +msgctxt "#70427" +msgid "Language of titles in IMDB" +msgstr "Lingua per i titoli in IMDB" + +msgctxt "#70428" +msgid "Filmaffinity website" +msgstr "Sitio Web Filmaffinity" + +msgctxt "#70429" +msgid "Colombia" +msgstr "Colombia" + +msgctxt "#70430" +msgid "Chile" +msgstr "Cile" + +msgctxt "#70431" +msgid "Argentina" +msgstr "Argentina" + +msgctxt "#70432" +msgid "Mexico" +msgstr "Messico" + +msgctxt "#70433" +msgid "US/UK" +msgstr "US/UK" + +msgctxt "#70434" +msgid "Spain" +msgstr "Spagna" + +msgctxt "#70435" +msgid "User Filmaaffinity (Optional)" +msgstr "Username Filmaffinity (Opzionale)" + +msgctxt "#70436" +msgid "Password Filmaffinity" +msgstr "Password Filmaffinity" + +msgctxt "#70437" +msgid "Order personal lists of Filmaffinity by:" +msgstr "Ordina liste personali di Filmaffinity per:" + +msgctxt "#70438" +msgid "Position" +msgstr "Posizione" + +msgctxt "#70439" +msgid "Vote" +msgstr "Voto" + +msgctxt "#70440" +msgid "Average grade" +msgstr "Valutazione media" + +msgctxt "#70441" +msgid "User MyAnimeList (Optional)" +msgstr "Username MyAnimeList (Opzionale)" + +msgctxt "#70442" +msgid "Password MyAnimeList" +msgstr "Password MyAnimeList" + +msgctxt "#70443" +msgid "Show Hentai in MyAnimeList" +msgstr "Mostra Hentai in MyAnimeList" + +msgctxt "#70444" +msgid "Profile 3" +msgstr "Perofilo 3" + +msgctxt "#70445" +msgid "Profile 2" +msgstr "Profilo 2" + +msgctxt "#70446" +msgid "Profile 1" +msgstr "Profilo 1" + +msgctxt "#70447" +msgid "[%s] The file has been deleted" +msgstr "[%s] Il file è stato cancellato" + +msgctxt "#70448" +msgid "[%s] The file is still in process" +msgstr "[%s] Il file è ancora in elaborazione" + +msgctxt "#70449" +msgid "[%s] The file does not exist or has been deleted" +msgstr "[%s] Il file non esiste oppure è stato cancellato" + +msgctxt "#70450" +msgid "Anyone" +msgstr "Qualsiasi" + +msgctxt "#70451" +msgid "Select one, none or more than one gender" +msgstr "Seleziona uno, nessuno o più di un genere" + +msgctxt "#70452" +msgid "Year from" +msgstr "Anno da:" + +msgctxt "#70453" +msgid "Year until" +msgstr "Anno fino a:" + +msgctxt "#70454" +msgid "Minimum number of votes" +msgstr "Numero minimo di voti" + +msgctxt "#70455" +msgid "Order by" +msgstr "Ordina per" + +msgctxt "#70456" +msgid "Popularity Desc" +msgstr "Popolarità Desc" + +msgctxt "#70457" +msgid "Popularity Asc" +msgstr "Popolarità Asc" + +msgctxt "#70458" +msgid "Year Desc" +msgstr "Anno Desc" + +msgctxt "#70459" +msgid "Year Asc" +msgstr "Anno Asc" + +msgctxt "#70460" +msgid "Desc Rating" +msgstr "Rating Desc" + +msgctxt "#70461" +msgid "Asc Rating" +msgstr "Rating Asc" + +msgctxt "#70462" +msgid "Title [A-Z]" +msgstr "Titolo [A-Z]" + +msgctxt "#70463" +msgid "Title [Z-A]" +msgstr "Titolo[Z-A]" + +msgctxt "#70464" +msgid "Set as default filter" +msgstr "Impostare come filtro di default" + +msgctxt "#70465" +msgid "Key word" +msgstr "Parola Chiave" + +msgctxt "#70466" +msgid "Country" +msgstr "Nazione" + +msgctxt "#70467" +msgid "Select a genre" +msgstr "Seleziona un genere" + +msgctxt "#70468" +msgid "Indicate your vote" +msgstr "Indica il tuo voto:" + +msgctxt "#70469" +msgid "Added" +msgstr "Aggiunto" + +msgctxt "#70470" +msgid "Premiere" +msgstr "Premiere" + +msgctxt "#70471" +msgid "Duration" +msgstr "Durata" + +msgctxt "#70472" +msgid "Popularity" +msgstr "Popolarità" + +msgctxt "#70473" +msgid "Rating" +msgstr "Rating" + +msgctxt "#70474" +msgid "Votes" +msgstr "Voti" + +msgctxt "#70475" +msgid "upward" +msgstr "ascendente" + +msgctxt "#70476" +msgid "falling" +msgstr "discendente" + +msgctxt "#70477" +msgid "Upward" +msgstr "Ascendente" + +msgctxt "#70478" +msgid "Falling" +msgstr "Discendente" + +msgctxt "#70479" +msgid "Currently watching" +msgstr "In visione attualmente" + +msgctxt "#70480" +msgid "Completed" +msgstr "Completati" + +msgctxt "#70481" +msgid "Anticipated to see" +msgstr "Da vedersi" + +msgctxt "#70482" +msgid "Kind" +msgstr "Tipo" + +msgctxt "#70483" +msgid "Special" +msgstr "Special" + +msgctxt "#70484" +msgid "OVA" +msgstr "OVA" + +msgctxt "#70485" +msgid "Status" +msgstr "Stato" + +msgctxt "#70486" +msgid "(1) Grotesque" +msgstr "(1) Grottesco" + +msgctxt "#70487" +msgid "(2) Horrible" +msgstr "(2) orribile" + +msgctxt "#70488" +msgid "(3) Very bad" +msgstr "(3) Bruttissimo" + +msgctxt "#70489" +msgid "(4) Bad" +msgstr "(4) Brutto" + +msgctxt "#70490" +msgid "(5) Regular" +msgstr "(5) Regulare" + +msgctxt "#70491" +msgid "(6) Pasable" +msgstr "(6) Passabile" + +msgctxt "#70492" +msgid "(7) Good" +msgstr "(7) Buono" + +msgctxt "#70493" +msgid "(8) Very good" +msgstr "(8) Ottimo" + +msgctxt "#70494" +msgid "(9) Genial" +msgstr "(9) Geniale" + +msgctxt "#70495" +msgid "(10) Masterpiece" +msgstr "(10) Capolavoro" + +msgctxt "#70496" +msgid "The search for " +msgstr "La ricerca di " + +msgctxt "#70497" +msgid " did not match." +msgstr " non ha dato risultati." + +msgctxt "#70498" +msgid "Producer: " +msgstr "Produzione: " + +msgctxt "#70499" +msgid "Genre: " +msgstr "Genere: " + +msgctxt "#70500" +msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" +msgstr "Notifica([COLOR red][B]Aggiorna Kodi alla sua ultima versione[/B][/COLOR], [COLOR skyblue]per migliori info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" + +msgctxt "#70501" +msgid "Search did not match (%s)" +msgstr "La ricerca non ha dato risultati (%s)" + +msgctxt "#70502" +msgid ">> Next" +msgstr ">> Successivo" + +msgctxt "#70503" +msgid "There is no available video" +msgstr "Nessun video disponibile" + +msgctxt "#70504" +msgid "Loading trailers..." +msgstr "Caricamento trailers..." + +msgctxt "#70505" +msgid "Enter the title to search" +msgstr "Inserisci il titolo da cercare" + +msgctxt "#70506" +msgid "Searching: " +msgstr "Ricerca: " + +msgctxt "#70507" +msgid "Search in Youtube" +msgstr "Ricerca in Youtube" + +msgctxt "#70508" +msgid "Search in Abandomoviez" +msgstr "Ricerca inAbandomoviez" + +msgctxt "#70509" +msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)" +msgstr "Ricerca in Jayhap (Youtube, Vimeo & Dailymotion)" + +msgctxt "#70510" +msgid "Manual Search in Youtube" +msgstr "Ricerca Manuale in Youtube" + +msgctxt "#70511" +msgid "Manual Search in Abandomoviez" +msgstr "Ricerca Manuale in Abandomoviez" + +msgctxt "#70512" +msgid "Searching in abandomoviez" +msgstr "Ricerca in abandomoviez" + +msgctxt "#70513" +msgid "Manual Searching in Filmaffinity" +msgstr "Ricerca Manuale in Filmaffinity" + +msgctxt "#70514" +msgid "Manual Search in Jayhap" +msgstr "Ricerca Manuale in Jayhap" + +msgctxt "#70515" +msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]" +msgstr "[COLOR aquamarine][B]Completata %s[/B][/COLOR]" + +msgctxt "#70516" +msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]" +msgstr "[COLOR aquamarine][B]In Corso %s[/B][/COLOR]" + diff --git a/plugin.video.alfa/resources/language/Spanish (Argentina)/strings.po b/plugin.video.alfa/resources/language/Spanish (Argentina)/strings.po index 2f4be12c..09e539b3 100644 --- a/plugin.video.alfa/resources/language/Spanish (Argentina)/strings.po +++ b/plugin.video.alfa/resources/language/Spanish (Argentina)/strings.po @@ -2766,7 +2766,7 @@ msgid "Beginning" msgstr "Inìcio" msgctxt "#70013" -msgid "Terror" +msgid "Horror" msgstr "Terror" msgctxt "#70014" @@ -3255,7 +3255,7 @@ msgstr "Colores Personalizados" msgctxt "#70137" msgid "Movies" -msgstr "Peliculas" +msgstr "Películas" msgctxt "#70138" msgid "Low Rating" @@ -3850,7 +3850,7 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese msgstr "Alfa\nCorregido un error en la seccion adultos, se ha reseteado la contrasena a por " msgctxt "#70290" -msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: " +msgid "default, you will have to change it again if you want.\n Type 's', if you have understood it: " msgstr "defecto, tendra que cambiarla de nuevo si lo desea.\n Escriba 's', si lo ha entendido: " msgctxt "#70291" @@ -3964,7 +3964,7 @@ msgid "Listen to BSO - List of songs" msgstr "Escuchar BSO - Lista de canciones" msgctxt "#70318" -msgid "Manage yor trakt account" +msgid "Manage your trakt account" msgstr "Gestionar con tu cuenta Trakt" msgctxt "#70319" @@ -4266,3 +4266,504 @@ msgstr "Añadir a lista %s" msgctxt "#70392" msgid "Rate with a [COLOR %s]%s[/ COLOR]" msgstr "Puntuar con un [COLOR %s]%s[/COLOR]" + +msgctxt "#70393" +msgid "[%s]: Select the correct %s " +msgstr "[%s]: Selecciona la %s correcta" + +msgctxt "#70394" +msgid "Action" +msgstr "Accion" + +msgctxt "#70395" +msgid "Sport" +msgstr "Deportes" + +msgctxt "#70396" +msgid "Documentary" +msgstr "Documental" + +msgctxt "#70397" +msgid "Science fiction" +msgstr "Ciencia Ficción" + +msgctxt "#70398" +msgid "Talk Show" +msgstr "Entrevistas" + +msgctxt "#70399" +msgid "Family" +msgstr "Familia" + +msgctxt "#70400" +msgid "Film-Noir" +msgstr "Cine Negro" + +msgctxt "#70401" +msgid "Game-Show" +msgstr "Concursos" + +msgctxt "#70402" +msgid "Mystery" +msgstr "Intriga" + +msgctxt "#70403" +msgid "Biography" +msgstr "Biografía" + +msgctxt "#70404" +msgid "Music" +msgstr "Música" + +msgctxt "#70405" +msgid "History" +msgstr "Historia" + +msgctxt "#70406" +msgid "Reality-TV" +msgstr "Reality" + +msgctxt "#70407" +msgid "War" +msgstr "Cine Bélico" + +msgctxt "#70408" +msgid "Musical" +msgstr "Musical" + +msgctxt "#70409" +msgid "Romance" +msgstr "Romance" + +msgctxt "#70410" +msgid "Thriller" +msgstr "Thriller" + +msgctxt "#70411" +msgid "Western" +msgstr "Western" + +msgctxt "#70412" +msgid "Drama" +msgstr "Drama" + +msgctxt "#70413" +msgid "2. Enter this code on the page and click Allow: %s" +msgstr "2. Ingresa este código en la página y presiona Allow: %s" + +msgctxt "#70414" +msgid "Authentication. Do not close this window!!" +msgstr "Autentificación. No cierres esta ventana!!" + +msgctxt "#70415" +msgid "Trakt.tv" +msgstr "Trakt.tv" + +msgctxt "#70416" +msgid "=== Movies ===" +msgstr "=== Peliculas ===" + +msgctxt "#70417" +msgid "=== TV Shows ===" +msgstr "=== Series ===" + +msgctxt "#70418" +msgid "Search language in TMDB" +msgstr "Idioma de búsqueda en TMDB" + +msgctxt "#70419" +msgid "German" +msgstr "Alemán" + +msgctxt "#70420" +msgid "French" +msgstr "Francés" + +msgctxt "#70421" +msgid "Portuguese" +msgstr "Portugués" + +msgctxt "#70422" +msgid "Italian" +msgstr "Italiano" + +msgctxt "#70423" +msgid "Spanish Latin" +msgstr "Español Latino" + +msgctxt "#70424" +msgid "Catalan" +msgstr "Catalán" + +msgctxt "#70425" +msgid "English" +msgstr "Inglés" + +msgctxt "#70426" +msgid "Alternative language for TMDB (No main language synopsis)" +msgstr "Idioma alternativo para TMDB (No sinopsis idioma principal)" + +msgctxt "#70427" +msgid "Language of titles in IMDB" +msgstr "Idioma de los títulos en IMDB" + +msgctxt "#70428" +msgid "Filmaffinity website" +msgstr "Sitio Web Filmaffinity" + +msgctxt "#70429" +msgid "Colombia" +msgstr "Colombia" + +msgctxt "#70430" +msgid "Chile" +msgstr "Chile" + +msgctxt "#70431" +msgid "Argentina" +msgstr "Argentina" + +msgctxt "#70432" +msgid "Mexico" +msgstr "México" + +msgctxt "#70433" +msgid "US/UK" +msgstr "US/UK" + +msgctxt "#70434" +msgid "Spain" +msgstr "España" + +msgctxt "#70435" +msgid "User Filmaaffinity (Optional)" +msgstr "Usuario Filmaffinity (Opcional)" + +msgctxt "#70436" +msgid "Password Filmaffinity" +msgstr "Contraseña Filmaffinity" + +msgctxt "#70437" +msgid "Order personal lists of Filmaffinity by:" +msgstr "Ordenar listas personales de Filmaffinity por:" + +msgctxt "#70438" +msgid "Position" +msgstr "Posición" + +msgctxt "#70439" +msgid "Vote" +msgstr "Voto" + +msgctxt "#70440" +msgid "Average grade" +msgstr "Nota media" + +msgctxt "#70441" +msgid "User MyAnimeList (Optional)" +msgstr "Usuario MyAnimeList (Opcional)" + +msgctxt "#70442" +msgid "Password MyAnimeList" +msgstr "Contraseña MyAnimeList" + +msgctxt "#70443" +msgid "Show Hentai in MyAnimeList" +msgstr "Mostrar Hentais en MyAnimeList" + +msgctxt "#70444" +msgid "Profile 3" +msgstr "Perfil 3" + +msgctxt "#70445" +msgid "Profile 2" +msgstr "Perfil 2" + +msgctxt "#70446" +msgid "Profile 1" +msgstr "Perfil 1" + +msgctxt "#70447" +msgid "[%s] The file has been deleted" +msgstr "[%s] El fichero ha sido borrado" + +msgctxt "#70448" +msgid "[%s] The file is still in process" +msgstr "[%s] El fichero está en proceso todavía" + +msgctxt "#70449" +msgid "[%s] The file does not exist or has been deleted" +msgstr "[%s] El archivo no existe o ha sido borrado" + +msgctxt "#70450" +msgid "Anyone" +msgstr "Cualquiera" + +msgctxt "#70451" +msgid "Select one, none or more than one gender" +msgstr "Selecciona uno, ninguno o más de un género" + +msgctxt "#70452" +msgid "Year from" +msgstr "Año desde:" + +msgctxt "#70453" +msgid "Year until" +msgstr "Año hasta:" + +msgctxt "#70454" +msgid "Minimum number of votes" +msgstr "Número mínimo de votos" + +msgctxt "#70455" +msgid "Order by" +msgstr "Ordenar por" + +msgctxt "#70456" +msgid "Popularity Desc" +msgstr "Popularidad Desc" + +msgctxt "#70457" +msgid "Popularity Asc" +msgstr "Popularidad Asc" + +msgctxt "#70458" +msgid "Year Desc" +msgstr "Año Desc" + +msgctxt "#70459" +msgid "Year Asc" +msgstr "Año Asc" + +msgctxt "#70460" +msgid "Desc Rating" +msgstr "Valoración Desc" + +msgctxt "#70461" +msgid "Asc Rating" +msgstr "Valoración Asc" + +msgctxt "#70462" +msgid "Title [A-Z]" +msgstr "Título [A-Z]" + +msgctxt "#70463" +msgid "Title [Z-A]" +msgstr "Título [Z-A]" + +msgctxt "#70464" +msgid "Set as default filter" +msgstr "Establecer como filtro por defecto" + +msgctxt "#70465" +msgid "Key word" +msgstr "Palabra Clave" + +msgctxt "#70466" +msgid "Country" +msgstr "País" + +msgctxt "#70467" +msgid "Select a genre" +msgstr "Selecciona un género" + +msgctxt "#70468" +msgid "Indicate your vote" +msgstr "Indica tu voto:" + +msgctxt "#70469" +msgid "Added" +msgstr "Añadido" + +msgctxt "#70470" +msgid "Premiere" +msgstr "Estreno" + +msgctxt "#70471" +msgid "Duration" +msgstr "Duración" + +msgctxt "#70472" +msgid "Popularity" +msgstr "Popularidad" + +msgctxt "#70473" +msgid "Rating" +msgstr "Valoración" + +msgctxt "#70474" +msgid "Votes" +msgstr "Votos" + +msgctxt "#70475" +msgid "upward" +msgstr "ascendente" + +msgctxt "#70476" +msgid "falling" +msgstr "descendente" + +msgctxt "#70477" +msgid "Upward" +msgstr "Ascendente" + +msgctxt "#70478" +msgid "Falling" +msgstr "Descendente" + +msgctxt "#70479" +msgid "Currently watching" +msgstr "Viendo Actualmente" + +msgctxt "#70480" +msgid "Completed" +msgstr "Completados" + +msgctxt "#70481" +msgid "Anticipated to see" +msgstr "Previstos para ver" + +msgctxt "#70482" +msgid "Kind" +msgstr "Tipo" + +msgctxt "#70483" +msgid "Special" +msgstr "Especial" + +msgctxt "#70484" +msgid "OVA" +msgstr "OVA" + +msgctxt "#70485" +msgid "Status" +msgstr "Estado" + +msgctxt "#70486" +msgid "(1) Grotesque" +msgstr "(1) Grotesca" + +msgctxt "#70487" +msgid "(2) Horrible" +msgstr "(2) Horrible" + +msgctxt "#70488" +msgid "(3) Very bad" +msgstr "(3) Muy mala" + +msgctxt "#70489" +msgid "(4) Bad" +msgstr "(4) Mala" + +msgctxt "#70490" +msgid "(5) Regular" +msgstr "(5) Regular" + +msgctxt "#70491" +msgid "(6) Pasable" +msgstr "(6) Pasable" + +msgctxt "#70492" +msgid "(7) Good" +msgstr "(7) Buena" + +msgctxt "#70493" +msgid "(8) Very good" +msgstr "(8) Muy buena" + +msgctxt "#70494" +msgid "(9) Genial" +msgstr "(9) Genial" + +msgctxt "#70495" +msgid "(10) Masterpiece" +msgstr "(10) Obra maestra" + +msgctxt "#70496" +msgid "The search for " +msgstr "La busqueda de " + +msgctxt "#70497" +msgid " did not match." +msgstr " no dio resultados." + +msgctxt "#70497" +msgid " did not match." +msgstr " no dio resultados." + +msgctxt "#70498" +msgid "Producer: " +msgstr "Productora: " + +msgctxt "#70499" +msgid "Genre: " +msgstr "Género: " + +msgctxt "#70500" +msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" +msgstr "Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" + +msgctxt "#70501" +msgid "Search did not match (%s)" +msgstr "La búsqueda no ha dado resultados (%s)" + +msgctxt "#70502" +msgid ">> Next" +msgstr ">> Siguiente" + +msgctxt "#70503" +msgid "There is no available video" +msgstr "No hay ningún vídeo disponible" + +msgctxt "#70504" +msgid "Loading trailers..." +msgstr "Cargando trailers..." + +msgctxt "#70505" +msgid "Enter the title to search" +msgstr "Introduce el título a buscar" + +msgctxt "#70506" +msgid "Searching: " +msgstr "Buscando: " + +msgctxt "#70507" +msgid "Search in Youtube" +msgstr "Búsqueda en Youtube" + +msgctxt "#70508" +msgid "Search in Abandomoviez" +msgstr "Búsqueda en Abandomoviez" + +msgctxt "#70509" +msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)" +msgstr "Búsqueda en Jayhap (Youtube, Vimeo & Dailymotion)" + +msgctxt "#70510" +msgid "Manual Search in Youtube" +msgstr "Búsqueda Manual en Youtube" + +msgctxt "#70511" +msgid "Manual Search in Abandomoviez" +msgstr "Búsqueda Manual en Abandomoviez" + +msgctxt "#70512" +msgid "Searching in abandomoviez" +msgstr "Buscando en abandomoviez" + +msgctxt "#70513" +msgid "Manual Searching in Filmaffinity" +msgstr "Búsqueda Manual en Filmaffinity" + +msgctxt "#70514" +msgid "Manual Search in Jayhap" +msgstr "Búsqueda Manual en Jayhap" + +msgctxt "#70515" +msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]" +msgstr "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]" + +msgctxt "#70516" +msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]" +msgstr "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]" + diff --git a/plugin.video.alfa/resources/language/Spanish (Mexico)/strings.po b/plugin.video.alfa/resources/language/Spanish (Mexico)/strings.po index 2f4be12c..09e539b3 100644 --- a/plugin.video.alfa/resources/language/Spanish (Mexico)/strings.po +++ b/plugin.video.alfa/resources/language/Spanish (Mexico)/strings.po @@ -2766,7 +2766,7 @@ msgid "Beginning" msgstr "Inìcio" msgctxt "#70013" -msgid "Terror" +msgid "Horror" msgstr "Terror" msgctxt "#70014" @@ -3255,7 +3255,7 @@ msgstr "Colores Personalizados" msgctxt "#70137" msgid "Movies" -msgstr "Peliculas" +msgstr "Películas" msgctxt "#70138" msgid "Low Rating" @@ -3850,7 +3850,7 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese msgstr "Alfa\nCorregido un error en la seccion adultos, se ha reseteado la contrasena a por " msgctxt "#70290" -msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: " +msgid "default, you will have to change it again if you want.\n Type 's', if you have understood it: " msgstr "defecto, tendra que cambiarla de nuevo si lo desea.\n Escriba 's', si lo ha entendido: " msgctxt "#70291" @@ -3964,7 +3964,7 @@ msgid "Listen to BSO - List of songs" msgstr "Escuchar BSO - Lista de canciones" msgctxt "#70318" -msgid "Manage yor trakt account" +msgid "Manage your trakt account" msgstr "Gestionar con tu cuenta Trakt" msgctxt "#70319" @@ -4266,3 +4266,504 @@ msgstr "Añadir a lista %s" msgctxt "#70392" msgid "Rate with a [COLOR %s]%s[/ COLOR]" msgstr "Puntuar con un [COLOR %s]%s[/COLOR]" + +msgctxt "#70393" +msgid "[%s]: Select the correct %s " +msgstr "[%s]: Selecciona la %s correcta" + +msgctxt "#70394" +msgid "Action" +msgstr "Accion" + +msgctxt "#70395" +msgid "Sport" +msgstr "Deportes" + +msgctxt "#70396" +msgid "Documentary" +msgstr "Documental" + +msgctxt "#70397" +msgid "Science fiction" +msgstr "Ciencia Ficción" + +msgctxt "#70398" +msgid "Talk Show" +msgstr "Entrevistas" + +msgctxt "#70399" +msgid "Family" +msgstr "Familia" + +msgctxt "#70400" +msgid "Film-Noir" +msgstr "Cine Negro" + +msgctxt "#70401" +msgid "Game-Show" +msgstr "Concursos" + +msgctxt "#70402" +msgid "Mystery" +msgstr "Intriga" + +msgctxt "#70403" +msgid "Biography" +msgstr "Biografía" + +msgctxt "#70404" +msgid "Music" +msgstr "Música" + +msgctxt "#70405" +msgid "History" +msgstr "Historia" + +msgctxt "#70406" +msgid "Reality-TV" +msgstr "Reality" + +msgctxt "#70407" +msgid "War" +msgstr "Cine Bélico" + +msgctxt "#70408" +msgid "Musical" +msgstr "Musical" + +msgctxt "#70409" +msgid "Romance" +msgstr "Romance" + +msgctxt "#70410" +msgid "Thriller" +msgstr "Thriller" + +msgctxt "#70411" +msgid "Western" +msgstr "Western" + +msgctxt "#70412" +msgid "Drama" +msgstr "Drama" + +msgctxt "#70413" +msgid "2. Enter this code on the page and click Allow: %s" +msgstr "2. Ingresa este código en la página y presiona Allow: %s" + +msgctxt "#70414" +msgid "Authentication. Do not close this window!!" +msgstr "Autentificación. No cierres esta ventana!!" + +msgctxt "#70415" +msgid "Trakt.tv" +msgstr "Trakt.tv" + +msgctxt "#70416" +msgid "=== Movies ===" +msgstr "=== Peliculas ===" + +msgctxt "#70417" +msgid "=== TV Shows ===" +msgstr "=== Series ===" + +msgctxt "#70418" +msgid "Search language in TMDB" +msgstr "Idioma de búsqueda en TMDB" + +msgctxt "#70419" +msgid "German" +msgstr "Alemán" + +msgctxt "#70420" +msgid "French" +msgstr "Francés" + +msgctxt "#70421" +msgid "Portuguese" +msgstr "Portugués" + +msgctxt "#70422" +msgid "Italian" +msgstr "Italiano" + +msgctxt "#70423" +msgid "Spanish Latin" +msgstr "Español Latino" + +msgctxt "#70424" +msgid "Catalan" +msgstr "Catalán" + +msgctxt "#70425" +msgid "English" +msgstr "Inglés" + +msgctxt "#70426" +msgid "Alternative language for TMDB (No main language synopsis)" +msgstr "Idioma alternativo para TMDB (No sinopsis idioma principal)" + +msgctxt "#70427" +msgid "Language of titles in IMDB" +msgstr "Idioma de los títulos en IMDB" + +msgctxt "#70428" +msgid "Filmaffinity website" +msgstr "Sitio Web Filmaffinity" + +msgctxt "#70429" +msgid "Colombia" +msgstr "Colombia" + +msgctxt "#70430" +msgid "Chile" +msgstr "Chile" + +msgctxt "#70431" +msgid "Argentina" +msgstr "Argentina" + +msgctxt "#70432" +msgid "Mexico" +msgstr "México" + +msgctxt "#70433" +msgid "US/UK" +msgstr "US/UK" + +msgctxt "#70434" +msgid "Spain" +msgstr "España" + +msgctxt "#70435" +msgid "User Filmaaffinity (Optional)" +msgstr "Usuario Filmaffinity (Opcional)" + +msgctxt "#70436" +msgid "Password Filmaffinity" +msgstr "Contraseña Filmaffinity" + +msgctxt "#70437" +msgid "Order personal lists of Filmaffinity by:" +msgstr "Ordenar listas personales de Filmaffinity por:" + +msgctxt "#70438" +msgid "Position" +msgstr "Posición" + +msgctxt "#70439" +msgid "Vote" +msgstr "Voto" + +msgctxt "#70440" +msgid "Average grade" +msgstr "Nota media" + +msgctxt "#70441" +msgid "User MyAnimeList (Optional)" +msgstr "Usuario MyAnimeList (Opcional)" + +msgctxt "#70442" +msgid "Password MyAnimeList" +msgstr "Contraseña MyAnimeList" + +msgctxt "#70443" +msgid "Show Hentai in MyAnimeList" +msgstr "Mostrar Hentais en MyAnimeList" + +msgctxt "#70444" +msgid "Profile 3" +msgstr "Perfil 3" + +msgctxt "#70445" +msgid "Profile 2" +msgstr "Perfil 2" + +msgctxt "#70446" +msgid "Profile 1" +msgstr "Perfil 1" + +msgctxt "#70447" +msgid "[%s] The file has been deleted" +msgstr "[%s] El fichero ha sido borrado" + +msgctxt "#70448" +msgid "[%s] The file is still in process" +msgstr "[%s] El fichero está en proceso todavía" + +msgctxt "#70449" +msgid "[%s] The file does not exist or has been deleted" +msgstr "[%s] El archivo no existe o ha sido borrado" + +msgctxt "#70450" +msgid "Anyone" +msgstr "Cualquiera" + +msgctxt "#70451" +msgid "Select one, none or more than one gender" +msgstr "Selecciona uno, ninguno o más de un género" + +msgctxt "#70452" +msgid "Year from" +msgstr "Año desde:" + +msgctxt "#70453" +msgid "Year until" +msgstr "Año hasta:" + +msgctxt "#70454" +msgid "Minimum number of votes" +msgstr "Número mínimo de votos" + +msgctxt "#70455" +msgid "Order by" +msgstr "Ordenar por" + +msgctxt "#70456" +msgid "Popularity Desc" +msgstr "Popularidad Desc" + +msgctxt "#70457" +msgid "Popularity Asc" +msgstr "Popularidad Asc" + +msgctxt "#70458" +msgid "Year Desc" +msgstr "Año Desc" + +msgctxt "#70459" +msgid "Year Asc" +msgstr "Año Asc" + +msgctxt "#70460" +msgid "Desc Rating" +msgstr "Valoración Desc" + +msgctxt "#70461" +msgid "Asc Rating" +msgstr "Valoración Asc" + +msgctxt "#70462" +msgid "Title [A-Z]" +msgstr "Título [A-Z]" + +msgctxt "#70463" +msgid "Title [Z-A]" +msgstr "Título [Z-A]" + +msgctxt "#70464" +msgid "Set as default filter" +msgstr "Establecer como filtro por defecto" + +msgctxt "#70465" +msgid "Key word" +msgstr "Palabra Clave" + +msgctxt "#70466" +msgid "Country" +msgstr "País" + +msgctxt "#70467" +msgid "Select a genre" +msgstr "Selecciona un género" + +msgctxt "#70468" +msgid "Indicate your vote" +msgstr "Indica tu voto:" + +msgctxt "#70469" +msgid "Added" +msgstr "Añadido" + +msgctxt "#70470" +msgid "Premiere" +msgstr "Estreno" + +msgctxt "#70471" +msgid "Duration" +msgstr "Duración" + +msgctxt "#70472" +msgid "Popularity" +msgstr "Popularidad" + +msgctxt "#70473" +msgid "Rating" +msgstr "Valoración" + +msgctxt "#70474" +msgid "Votes" +msgstr "Votos" + +msgctxt "#70475" +msgid "upward" +msgstr "ascendente" + +msgctxt "#70476" +msgid "falling" +msgstr "descendente" + +msgctxt "#70477" +msgid "Upward" +msgstr "Ascendente" + +msgctxt "#70478" +msgid "Falling" +msgstr "Descendente" + +msgctxt "#70479" +msgid "Currently watching" +msgstr "Viendo Actualmente" + +msgctxt "#70480" +msgid "Completed" +msgstr "Completados" + +msgctxt "#70481" +msgid "Anticipated to see" +msgstr "Previstos para ver" + +msgctxt "#70482" +msgid "Kind" +msgstr "Tipo" + +msgctxt "#70483" +msgid "Special" +msgstr "Especial" + +msgctxt "#70484" +msgid "OVA" +msgstr "OVA" + +msgctxt "#70485" +msgid "Status" +msgstr "Estado" + +msgctxt "#70486" +msgid "(1) Grotesque" +msgstr "(1) Grotesca" + +msgctxt "#70487" +msgid "(2) Horrible" +msgstr "(2) Horrible" + +msgctxt "#70488" +msgid "(3) Very bad" +msgstr "(3) Muy mala" + +msgctxt "#70489" +msgid "(4) Bad" +msgstr "(4) Mala" + +msgctxt "#70490" +msgid "(5) Regular" +msgstr "(5) Regular" + +msgctxt "#70491" +msgid "(6) Pasable" +msgstr "(6) Pasable" + +msgctxt "#70492" +msgid "(7) Good" +msgstr "(7) Buena" + +msgctxt "#70493" +msgid "(8) Very good" +msgstr "(8) Muy buena" + +msgctxt "#70494" +msgid "(9) Genial" +msgstr "(9) Genial" + +msgctxt "#70495" +msgid "(10) Masterpiece" +msgstr "(10) Obra maestra" + +msgctxt "#70496" +msgid "The search for " +msgstr "La busqueda de " + +msgctxt "#70497" +msgid " did not match." +msgstr " no dio resultados." + +msgctxt "#70497" +msgid " did not match." +msgstr " no dio resultados." + +msgctxt "#70498" +msgid "Producer: " +msgstr "Productora: " + +msgctxt "#70499" +msgid "Genre: " +msgstr "Género: " + +msgctxt "#70500" +msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" +msgstr "Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" + +msgctxt "#70501" +msgid "Search did not match (%s)" +msgstr "La búsqueda no ha dado resultados (%s)" + +msgctxt "#70502" +msgid ">> Next" +msgstr ">> Siguiente" + +msgctxt "#70503" +msgid "There is no available video" +msgstr "No hay ningún vídeo disponible" + +msgctxt "#70504" +msgid "Loading trailers..." +msgstr "Cargando trailers..." + +msgctxt "#70505" +msgid "Enter the title to search" +msgstr "Introduce el título a buscar" + +msgctxt "#70506" +msgid "Searching: " +msgstr "Buscando: " + +msgctxt "#70507" +msgid "Search in Youtube" +msgstr "Búsqueda en Youtube" + +msgctxt "#70508" +msgid "Search in Abandomoviez" +msgstr "Búsqueda en Abandomoviez" + +msgctxt "#70509" +msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)" +msgstr "Búsqueda en Jayhap (Youtube, Vimeo & Dailymotion)" + +msgctxt "#70510" +msgid "Manual Search in Youtube" +msgstr "Búsqueda Manual en Youtube" + +msgctxt "#70511" +msgid "Manual Search in Abandomoviez" +msgstr "Búsqueda Manual en Abandomoviez" + +msgctxt "#70512" +msgid "Searching in abandomoviez" +msgstr "Buscando en abandomoviez" + +msgctxt "#70513" +msgid "Manual Searching in Filmaffinity" +msgstr "Búsqueda Manual en Filmaffinity" + +msgctxt "#70514" +msgid "Manual Search in Jayhap" +msgstr "Búsqueda Manual en Jayhap" + +msgctxt "#70515" +msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]" +msgstr "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]" + +msgctxt "#70516" +msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]" +msgstr "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]" + diff --git a/plugin.video.alfa/resources/language/Spanish/strings.po b/plugin.video.alfa/resources/language/Spanish/strings.po index 2f4be12c..09e539b3 100644 --- a/plugin.video.alfa/resources/language/Spanish/strings.po +++ b/plugin.video.alfa/resources/language/Spanish/strings.po @@ -2766,7 +2766,7 @@ msgid "Beginning" msgstr "Inìcio" msgctxt "#70013" -msgid "Terror" +msgid "Horror" msgstr "Terror" msgctxt "#70014" @@ -3255,7 +3255,7 @@ msgstr "Colores Personalizados" msgctxt "#70137" msgid "Movies" -msgstr "Peliculas" +msgstr "Películas" msgctxt "#70138" msgid "Low Rating" @@ -3850,7 +3850,7 @@ msgid "Alfa\nCorrected an error in the adult section, the password has been rese msgstr "Alfa\nCorregido un error en la seccion adultos, se ha reseteado la contrasena a por " msgctxt "#70290" -msgid "default, you will have to change it again if you want.\ n Type 's', if you have understood it: " +msgid "default, you will have to change it again if you want.\n Type 's', if you have understood it: " msgstr "defecto, tendra que cambiarla de nuevo si lo desea.\n Escriba 's', si lo ha entendido: " msgctxt "#70291" @@ -3964,7 +3964,7 @@ msgid "Listen to BSO - List of songs" msgstr "Escuchar BSO - Lista de canciones" msgctxt "#70318" -msgid "Manage yor trakt account" +msgid "Manage your trakt account" msgstr "Gestionar con tu cuenta Trakt" msgctxt "#70319" @@ -4266,3 +4266,504 @@ msgstr "Añadir a lista %s" msgctxt "#70392" msgid "Rate with a [COLOR %s]%s[/ COLOR]" msgstr "Puntuar con un [COLOR %s]%s[/COLOR]" + +msgctxt "#70393" +msgid "[%s]: Select the correct %s " +msgstr "[%s]: Selecciona la %s correcta" + +msgctxt "#70394" +msgid "Action" +msgstr "Accion" + +msgctxt "#70395" +msgid "Sport" +msgstr "Deportes" + +msgctxt "#70396" +msgid "Documentary" +msgstr "Documental" + +msgctxt "#70397" +msgid "Science fiction" +msgstr "Ciencia Ficción" + +msgctxt "#70398" +msgid "Talk Show" +msgstr "Entrevistas" + +msgctxt "#70399" +msgid "Family" +msgstr "Familia" + +msgctxt "#70400" +msgid "Film-Noir" +msgstr "Cine Negro" + +msgctxt "#70401" +msgid "Game-Show" +msgstr "Concursos" + +msgctxt "#70402" +msgid "Mystery" +msgstr "Intriga" + +msgctxt "#70403" +msgid "Biography" +msgstr "Biografía" + +msgctxt "#70404" +msgid "Music" +msgstr "Música" + +msgctxt "#70405" +msgid "History" +msgstr "Historia" + +msgctxt "#70406" +msgid "Reality-TV" +msgstr "Reality" + +msgctxt "#70407" +msgid "War" +msgstr "Cine Bélico" + +msgctxt "#70408" +msgid "Musical" +msgstr "Musical" + +msgctxt "#70409" +msgid "Romance" +msgstr "Romance" + +msgctxt "#70410" +msgid "Thriller" +msgstr "Thriller" + +msgctxt "#70411" +msgid "Western" +msgstr "Western" + +msgctxt "#70412" +msgid "Drama" +msgstr "Drama" + +msgctxt "#70413" +msgid "2. Enter this code on the page and click Allow: %s" +msgstr "2. Ingresa este código en la página y presiona Allow: %s" + +msgctxt "#70414" +msgid "Authentication. Do not close this window!!" +msgstr "Autentificación. No cierres esta ventana!!" + +msgctxt "#70415" +msgid "Trakt.tv" +msgstr "Trakt.tv" + +msgctxt "#70416" +msgid "=== Movies ===" +msgstr "=== Peliculas ===" + +msgctxt "#70417" +msgid "=== TV Shows ===" +msgstr "=== Series ===" + +msgctxt "#70418" +msgid "Search language in TMDB" +msgstr "Idioma de búsqueda en TMDB" + +msgctxt "#70419" +msgid "German" +msgstr "Alemán" + +msgctxt "#70420" +msgid "French" +msgstr "Francés" + +msgctxt "#70421" +msgid "Portuguese" +msgstr "Portugués" + +msgctxt "#70422" +msgid "Italian" +msgstr "Italiano" + +msgctxt "#70423" +msgid "Spanish Latin" +msgstr "Español Latino" + +msgctxt "#70424" +msgid "Catalan" +msgstr "Catalán" + +msgctxt "#70425" +msgid "English" +msgstr "Inglés" + +msgctxt "#70426" +msgid "Alternative language for TMDB (No main language synopsis)" +msgstr "Idioma alternativo para TMDB (No sinopsis idioma principal)" + +msgctxt "#70427" +msgid "Language of titles in IMDB" +msgstr "Idioma de los títulos en IMDB" + +msgctxt "#70428" +msgid "Filmaffinity website" +msgstr "Sitio Web Filmaffinity" + +msgctxt "#70429" +msgid "Colombia" +msgstr "Colombia" + +msgctxt "#70430" +msgid "Chile" +msgstr "Chile" + +msgctxt "#70431" +msgid "Argentina" +msgstr "Argentina" + +msgctxt "#70432" +msgid "Mexico" +msgstr "México" + +msgctxt "#70433" +msgid "US/UK" +msgstr "US/UK" + +msgctxt "#70434" +msgid "Spain" +msgstr "España" + +msgctxt "#70435" +msgid "User Filmaaffinity (Optional)" +msgstr "Usuario Filmaffinity (Opcional)" + +msgctxt "#70436" +msgid "Password Filmaffinity" +msgstr "Contraseña Filmaffinity" + +msgctxt "#70437" +msgid "Order personal lists of Filmaffinity by:" +msgstr "Ordenar listas personales de Filmaffinity por:" + +msgctxt "#70438" +msgid "Position" +msgstr "Posición" + +msgctxt "#70439" +msgid "Vote" +msgstr "Voto" + +msgctxt "#70440" +msgid "Average grade" +msgstr "Nota media" + +msgctxt "#70441" +msgid "User MyAnimeList (Optional)" +msgstr "Usuario MyAnimeList (Opcional)" + +msgctxt "#70442" +msgid "Password MyAnimeList" +msgstr "Contraseña MyAnimeList" + +msgctxt "#70443" +msgid "Show Hentai in MyAnimeList" +msgstr "Mostrar Hentais en MyAnimeList" + +msgctxt "#70444" +msgid "Profile 3" +msgstr "Perfil 3" + +msgctxt "#70445" +msgid "Profile 2" +msgstr "Perfil 2" + +msgctxt "#70446" +msgid "Profile 1" +msgstr "Perfil 1" + +msgctxt "#70447" +msgid "[%s] The file has been deleted" +msgstr "[%s] El fichero ha sido borrado" + +msgctxt "#70448" +msgid "[%s] The file is still in process" +msgstr "[%s] El fichero está en proceso todavía" + +msgctxt "#70449" +msgid "[%s] The file does not exist or has been deleted" +msgstr "[%s] El archivo no existe o ha sido borrado" + +msgctxt "#70450" +msgid "Anyone" +msgstr "Cualquiera" + +msgctxt "#70451" +msgid "Select one, none or more than one gender" +msgstr "Selecciona uno, ninguno o más de un género" + +msgctxt "#70452" +msgid "Year from" +msgstr "Año desde:" + +msgctxt "#70453" +msgid "Year until" +msgstr "Año hasta:" + +msgctxt "#70454" +msgid "Minimum number of votes" +msgstr "Número mínimo de votos" + +msgctxt "#70455" +msgid "Order by" +msgstr "Ordenar por" + +msgctxt "#70456" +msgid "Popularity Desc" +msgstr "Popularidad Desc" + +msgctxt "#70457" +msgid "Popularity Asc" +msgstr "Popularidad Asc" + +msgctxt "#70458" +msgid "Year Desc" +msgstr "Año Desc" + +msgctxt "#70459" +msgid "Year Asc" +msgstr "Año Asc" + +msgctxt "#70460" +msgid "Desc Rating" +msgstr "Valoración Desc" + +msgctxt "#70461" +msgid "Asc Rating" +msgstr "Valoración Asc" + +msgctxt "#70462" +msgid "Title [A-Z]" +msgstr "Título [A-Z]" + +msgctxt "#70463" +msgid "Title [Z-A]" +msgstr "Título [Z-A]" + +msgctxt "#70464" +msgid "Set as default filter" +msgstr "Establecer como filtro por defecto" + +msgctxt "#70465" +msgid "Key word" +msgstr "Palabra Clave" + +msgctxt "#70466" +msgid "Country" +msgstr "País" + +msgctxt "#70467" +msgid "Select a genre" +msgstr "Selecciona un género" + +msgctxt "#70468" +msgid "Indicate your vote" +msgstr "Indica tu voto:" + +msgctxt "#70469" +msgid "Added" +msgstr "Añadido" + +msgctxt "#70470" +msgid "Premiere" +msgstr "Estreno" + +msgctxt "#70471" +msgid "Duration" +msgstr "Duración" + +msgctxt "#70472" +msgid "Popularity" +msgstr "Popularidad" + +msgctxt "#70473" +msgid "Rating" +msgstr "Valoración" + +msgctxt "#70474" +msgid "Votes" +msgstr "Votos" + +msgctxt "#70475" +msgid "upward" +msgstr "ascendente" + +msgctxt "#70476" +msgid "falling" +msgstr "descendente" + +msgctxt "#70477" +msgid "Upward" +msgstr "Ascendente" + +msgctxt "#70478" +msgid "Falling" +msgstr "Descendente" + +msgctxt "#70479" +msgid "Currently watching" +msgstr "Viendo Actualmente" + +msgctxt "#70480" +msgid "Completed" +msgstr "Completados" + +msgctxt "#70481" +msgid "Anticipated to see" +msgstr "Previstos para ver" + +msgctxt "#70482" +msgid "Kind" +msgstr "Tipo" + +msgctxt "#70483" +msgid "Special" +msgstr "Especial" + +msgctxt "#70484" +msgid "OVA" +msgstr "OVA" + +msgctxt "#70485" +msgid "Status" +msgstr "Estado" + +msgctxt "#70486" +msgid "(1) Grotesque" +msgstr "(1) Grotesca" + +msgctxt "#70487" +msgid "(2) Horrible" +msgstr "(2) Horrible" + +msgctxt "#70488" +msgid "(3) Very bad" +msgstr "(3) Muy mala" + +msgctxt "#70489" +msgid "(4) Bad" +msgstr "(4) Mala" + +msgctxt "#70490" +msgid "(5) Regular" +msgstr "(5) Regular" + +msgctxt "#70491" +msgid "(6) Pasable" +msgstr "(6) Pasable" + +msgctxt "#70492" +msgid "(7) Good" +msgstr "(7) Buena" + +msgctxt "#70493" +msgid "(8) Very good" +msgstr "(8) Muy buena" + +msgctxt "#70494" +msgid "(9) Genial" +msgstr "(9) Genial" + +msgctxt "#70495" +msgid "(10) Masterpiece" +msgstr "(10) Obra maestra" + +msgctxt "#70496" +msgid "The search for " +msgstr "La busqueda de " + +msgctxt "#70497" +msgid " did not match." +msgstr " no dio resultados." + +msgctxt "#70497" +msgid " did not match." +msgstr " no dio resultados." + +msgctxt "#70498" +msgid "Producer: " +msgstr "Productora: " + +msgctxt "#70499" +msgid "Genre: " +msgstr "Género: " + +msgctxt "#70500" +msgid "Notification([COLOR red][B]Update Kodi to its latest version[/B][/COLOR], [COLOR skyblue]for best info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" +msgstr "Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")" + +msgctxt "#70501" +msgid "Search did not match (%s)" +msgstr "La búsqueda no ha dado resultados (%s)" + +msgctxt "#70502" +msgid ">> Next" +msgstr ">> Siguiente" + +msgctxt "#70503" +msgid "There is no available video" +msgstr "No hay ningún vídeo disponible" + +msgctxt "#70504" +msgid "Loading trailers..." +msgstr "Cargando trailers..." + +msgctxt "#70505" +msgid "Enter the title to search" +msgstr "Introduce el título a buscar" + +msgctxt "#70506" +msgid "Searching: " +msgstr "Buscando: " + +msgctxt "#70507" +msgid "Search in Youtube" +msgstr "Búsqueda en Youtube" + +msgctxt "#70508" +msgid "Search in Abandomoviez" +msgstr "Búsqueda en Abandomoviez" + +msgctxt "#70509" +msgid "Search in Jayhap (Youtube, Vimeo & Dailymotion)" +msgstr "Búsqueda en Jayhap (Youtube, Vimeo & Dailymotion)" + +msgctxt "#70510" +msgid "Manual Search in Youtube" +msgstr "Búsqueda Manual en Youtube" + +msgctxt "#70511" +msgid "Manual Search in Abandomoviez" +msgstr "Búsqueda Manual en Abandomoviez" + +msgctxt "#70512" +msgid "Searching in abandomoviez" +msgstr "Buscando en abandomoviez" + +msgctxt "#70513" +msgid "Manual Searching in Filmaffinity" +msgstr "Búsqueda Manual en Filmaffinity" + +msgctxt "#70514" +msgid "Manual Search in Jayhap" +msgstr "Búsqueda Manual en Jayhap" + +msgctxt "#70515" +msgid "[COLOR aquamarine][B]Completed %s[/B][/COLOR]" +msgstr "[COLOR aquamarine][B]Finalizada %s[/B][/COLOR]" + +msgctxt "#70516" +msgid "[COLOR aquamarine][B]In progress %s[/B][/COLOR]" +msgstr "[COLOR aquamarine][B]En emisión %s[/B][/COLOR]" + diff --git a/plugin.video.alfa/servers/debriders/realdebrid.py b/plugin.video.alfa/servers/debriders/realdebrid.py index 58e9c28c..e621fa16 100755 --- a/plugin.video.alfa/servers/debriders/realdebrid.py +++ b/plugin.video.alfa/servers/debriders/realdebrid.py @@ -94,10 +94,10 @@ def authentication(): device_code = data["device_code"] intervalo = data["interval"] - dialog_auth = platformtools.dialog_progress("Autentificación. No cierres esta ventana!!", - "1. Entra en la siguiente url: %s" % verify_url, - "2. Ingresa este código en la página y presiona Allow: %s" % user_code, - "3. Espera a que se cierre esta ventana") + dialog_auth = platformtools.dialog_progress(config.get_localized_string(70414), + config.get_localized_string(60252) % verify_url, + config.get_localized_string(70413) % user_code, + config.get_localized_string(60254)) # Generalmente cada 5 segundos se intenta comprobar si el usuario ha introducido el código while True: