diff --git a/README.md b/README.md index 8b729d59..fe040ad7 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,7 @@ Hebrew - "ugh", qqqq, [kriterin](https://twitter.com/kriterin) Nepali - [DimeDead](https://dimedead.neocities.org/) Dutch - Puka1611 Japanese - [Chazuru](https://twitter.com/AIWMD), [Nyankodasu](https://twitter.com/Nyankodasu1234), [kamokakesu](https://twitter.com/kamokakesu) -Korean - [Nyankodasu](https://twitter.com/Nyankodasu1234), [han_eirin](https://twitter.com/han_eirin), [Sch](https://me.shtelo.org) +Korean - [Nyankodasu](https://twitter.com/Nyankodasu1234), HY, [Sch](https://me.shtelo.org) Turkish - [KayrabCebll](https://steamcommunity.com/id/KayrabCebll), [YordemEren](https://twitter.com/YordemEren) Italian - [krek](https://twitter.com/CactusInc420), [Francesco](https://twitter.com/FrancescoRosi27) Arabic - [Yours Truly,](https://twitter.com/schrotheneko) @@ -186,7 +186,7 @@ Traditional Chinese - [Oliver Tzeng(曾嘉禾)](https://github.com/olivertze Simplified Chinese - [am1006](https://github.com/am1006), [CarimoWuling](https://twitter.com/carimowuling) Czech - Menal German - [basti564](https://twitter.com/basti564) -Catalan - [elmees21](https://twitter.com/elmees21) +Catalan - [elmees21](https://twitter.com/elmees21), [Luna](https://twitter.com/chica_botella) Swedish - [actuallyaridan](https://twitter.com/actuallyaridan) Bulgarian - [Scarlett7447](https://twitter.com/Scarlett7447) Norwegian - [twistquest](https://twitter.com/twistquest) diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 84cacb30..bc23db5c 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -96,7 +96,7 @@ "description": { "message": "Descripció" }, "no_description": { "message": "Sense descripció." }, "born": { "message": "Naixement" }, - "january": { "message": "de Gener", "description": "Used in 'Born January 1'. You can move on left if it sounds better in your language like that." }, + "january": { "message": "de Gener", "description": "Used in 'Born January 1'. You can move on left if it sounds better in your language like that.", "placeholders": { "number": { "content": "1" } } }, "february": { "message": "de Febrer" }, "march": { "message": "de Març" }, "april": { "message": "d'Abril" }, @@ -187,7 +187,7 @@ "enable_twemoji": { "message": "Activar Twemoji" }, "hearts_instead_stars": { "message": "Mostra cors (M'agrades) en lloc d'estrelles (Preferits)" }, "dark_mode": { "message": "Mode fosc" }, - "disable_hotkeys": { "message": "Desactiveu les tecles d'accés ràpid" }, + "disable_hotkeys": { "message": "Desactivar les tecles d'accés ràpid" }, "hotkeys_list": { "message": "Consulteu la llista de tecles d'accés ràpid aquí" }, "save_preferred_quality": { "message": "Desa la qualitat de vídeo preferida. Si està activat, OldTwitter desarà la vostra qualitat de vídeo preferida i l'utilitzarà (o utilitzarà la qualitat més propera a la preferida). Si està desactivat, OldTwitter seleccionarà la màxima qualitat." }, "preferred_quality": { "message": "Qualitat preferida" }, @@ -300,7 +300,7 @@ "decline": { "message": "Rebutjar" }, "mute_convo": { "message": "Silencia la conversa" }, "unmute_convo": { "message": "Deixa de silenciar la conversa" }, - "no_big_font": { "message": "Desactiveu la lletra gran per a tuits curts o populars" }, + "no_big_font": { "message": "Desactivar la lletra gran per a tuits curts o populars" }, "emoji": { "message": "Emoji" }, "emoji_btn": { "message": "[emoji]" }, "add_emoji": { "message": "Afegeix un emoji" }, @@ -385,7 +385,7 @@ "recent_unfollow_update": { "message": "Les deixades de seguir es van actualitzar fa menys de 15 minuts." }, "deleted_accounts": { "message": "Sembla que totes les persones d'aquesta llista han suprimit el seu compte." }, "open_tweet_newtwitter": { "message": "Obre el tuit al nou Twitter" }, - "black_mode_link": { "message": "Enllaç al mode fosc" }, + "black_mode_link": { "message": "Enllaç al mode fosc", "note": "You can name this OLED mode too" }, "custom_mode_link": { "message": "Enllaç al mode personalitzat" }, "tweet_verb": { "message": "Tuitar", "description": "Used for tweet verb.", "example": "->Tweet<- #itsokay" }, "do_you_want_to_tweet": { "message": "Vols tuitejar \"$TWEET_TEXT$\"?", "placeholders": { "tweet_text": { "content": "it's okay" } } }, @@ -410,12 +410,12 @@ "logout_desc_1": { "message": "OldTwitter només funciona quan esteu connectat." }, "logout_desc_2": { "message": "Si no teniu cap altre compte a la llista, se us redirigirà a la pàgina d'inici de sessió. N'esteu segur?" }, "logout_button": { "message": "Tanqueu-me la sessió" }, - "disable_personalized_trends": { "message": "Desactiva tendències personalitzades" }, + "disable_personalized_trends": { "message": "Desactivar tendències personalitzades" }, "show_bookmark_count": { "message": "Mostra el recompte de desats als tuits" }, "bookmarks_count": { "message": "Desats", "description": "Used for bookmarks count." }, "remove_bookmark": { "message": "Esborra el desat" }, "hide_community_notes": { "message": "Amagar notes de la comunitat" }, - "disable_gif_autoplay": { "message": "Desactiva la reproducció automàtica del GIFs" }, + "disable_gif_autoplay": { "message": "Desactivar la reproducció automàtica del GIFs" }, "hide_tweet": { "message": "Amaga el tuit" }, "unhide_tweet": { "message": "Mostra el tuit" }, "hide_tweet_sure": { "message": "Esteu segur que voleu amagar aquest tuit?" }, @@ -441,7 +441,7 @@ "uncensor_graphic_violence_automatically": { "message": "Desencensurar multimèdia amb advertència de contingut amb violència gràfica automàticament" }, "uncensor_adult_content_automatically": { "message": "Desencensurar multimèdia amb advertència de nuesa automàticament" }, "uncensor_sensitive_content_automatically": { "message": "Desencensurar multimèdia amb advertència de contingut sensible automàticament" }, - "replying_to_user": { "message": "Responent a $SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "replying_to_user": { "description": "Do not add '@'", "message": "Responent a $SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "content_warnings": { "message": "Advertències de contingut" }, "transparency": { "message": "Transparència", "note": "Color" }, "reset": { "message": "Restableix" }, @@ -497,5 +497,122 @@ "disable_profile_customizations": { "message": "Desactivar personalitzacions del perfil" }, "mmdd":{ "message": "$DATE$ $MONTH$", "description":"July 1st", "placeholders": { "month": { "content": "July" }, "date": { "content": "1st" } }}, "mmddyy":{ "message": "$DATE$ $MONTH$, $YEAR$", "description":"July 1st, 2015", "placeholders": { "year": { "content": "2015" },"month": { "content": "July" }, "date": { "content": "1st" } }}, - "yyyy":{ "message": "$YEAR$", "description":"2015", "placeholders": { "year": { "content": "2015" } } } + "yyyy":{ "message": "$YEAR$", "description":"2015", "placeholders": { "year": { "content": "2015" } } }, + + "accepted_conversation": { "message": "Conversa acceptada" }, + "add_search": { "message": "Afegeix cerca" }, + "always_show_link_color": { "message": "Mostra sempre colors d'enllaços personalitzat en de al passar el ratolí " }, + "anniversary_tweet": { "message": "Recordes quan et vas unir a Twitter? Jo sí! \n#ElMeuAniversariTwitter." }, + "apply": { "message": "Aplicar" }, + "ascending": { "message": "Ascendent" }, + "autotranslation": { "message": "Traducció automàtica" }, + "autotranslation_help1": { "message": "Aquesta funció pot trobar els tuits i activar la traducció automàticament, sense haver de fer clic al botó manualment." }, + "autotranslation_help2": { "message": "Per utilitzar-lo, seleccioneu el mode de traducció automàtica i configureu la llista d'idiomes. Els tuits que compleixin les condicions seran traduïts automàticament." }, + "autotranslation_help3": { "message": "Concretament:" }, + "autotranslation_help4": { "message": "\"Tradueix quan estigui a la llista d'idiomes\" sense idiomes establerts, la funció es Desactivar (per defecte)." }, + "autotranslation_help5": { "message": "\"Tradueix quan no estigui a la llista d'idiomes\" sense idiomes definits, feu que es tradueixin tots els tuits. És millor afegir idiomes que coneixeu per no traduir-los innecessàriament." }, + "autotranslation_mode": { "message": "Mode de traducció automàtica de tuits" }, + "clear_ot_token": { "message": "Neteja el token de OldTwitter" }, + "current_font": { "message": "Font actual: $FONT$", "placeholders": { "font": { "content": "Arial" } } }, + "custom_downloadtemplate": { "message": "Plantilla de descàrrega personalitzada" }, + "custom_downloadtemplate_hintExtension": { "message": "{extension}: S'ha baixat l'extensió de fitxer del tuit." }, + "custom_downloadtemplate_hintFilename": { "message": "{filename}: Nom de fitxer original de pbs.twimg.com." }, + "custom_downloadtemplate_hintID": { "message": "{id}: ID del tuit." }, + "custom_downloadtemplate_hintIndex": { "message": "{index}: Índex de cada fitxer a descarregar. (per a publicacions amb diversos multimèdia)" }, + "custom_downloadtemplate_hintName1": { "message": "{user_name}: Nom d'usuari." }, + "custom_downloadtemplate_hintName2": { "message": "{user_screen_name}: Nom del compte de l'usuari. (Exemple: @dril)" }, + "custom_downloadtemplate_hintTime": { "message": "{timestamp}: Data i hora de publicació del tuit." }, + "custom_downloadtemplate_text": { "message": "Us permet personalitzar els noms dels fitxers quan baixeu el multimèdia d'un tweet." }, + "custom_font": { "message": "" }, + "delete_for_you": { "description": "DM Message Delete menu", "message": "Suprimeix per a tu" }, + "descending": { "message": "Descendent" }, + "disable_accept_type": { "description": "This option only appears on mobile", "message": "Desactivar l'accept-type quan carregueu contingut multimèdia. Això soluciona el problema de no poder accedir a totes les imatges en algunes versions d'Android." }, + "disable_data_saver": { "description": "This option only appears on mobile", "message": "Desactivar l'estalvi de dades per a la connexió mòbil" }, + "disable_find_hotkey": { "message": "Desactivar la tecla d'accés ràpid de cerca (F)" }, + "disable_like_hotkey": { "message": "Desactivar la tecla d'accés ràpid de m'agrada (L)" }, + "disable_retweet_hotkey": { "message": "Desactivar la tecla d'accés ràpid de retuit (T)" }, + "dont_pause_videos": { "message": "No poseu en pausa els vídeos quan us desplaceu des de la vista" }, + "enable_extension_compatibility": { "message": "Habilita el mode de compatibilitat d'extensions (només s'ha d'activar si vols que alguna extensió funcioni amb OldTwitter, si encara no funciona (i el més probable és que no ho faci), torneu a desactivar-ho, perquè aquesta opció pot fer que la pàgina funcioni amb errors o lag)" }, + "enable_iframe_navigation": { "message": "Activeu la navegació experimental per preservar la pàgina, això permetrà fer clic als enllaços i tornar a la pàgina anterior sense tornar a carregar. Això és experimental i podria trencar-se i provocat lag." }, + "enter_custom_font_name": { "message": "Introduïu un nom de tipografia personalitzat" }, + "favorited_by": { "message": "Favorit per" }, + "filter": { "message": "Filtre" }, + "finalization": { "message": "Finalització" }, + "follow_system_settings_dark_mode": { "message": "Seguiu la configuració del sistema per al mode fosc" }, + "go_back_to_top": { "message": "Torna a dalt" }, + "hide_timeline_types": { "message": "Amaga l'interruptor de tipus de cronologia a la pàgina d'inici" }, + "hide_unfollowers_page": { "message": "Amaga la pàgina de ex-seguidors" }, + "language_list": { "message": "Llista d'idiomes" }, + "leave_conversation": { "message": "Confirmes que vols sortir/suprimir aquesta conversa?" }, + "loading_all_followers": { "message": "Carregant tots els seguidors (això passarà una vegada cada 24 hores)..." }, + "localize_digit": { "description": "Non-CJK dont need to translate this message, just copy and paste", "message": "Use Asian four-digit notation. (CJK only)" }, + "manage_searches": { "message": "Gestionar les cerques" }, + "mobile": { "description": "Title for mobile device settings", "message": "Mòbil" }, + "modern_ui": { "message": "Utilitzeu el disseny de Twitter 2018, inclou botons rodons i símbols" }, + "move_navbar_to_bottom": { "message": "Mou la barra de navegació cap a baix" }, + "mute_user": { "message": "Silencia a @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "mute_videos": { "message": "Silencia videos per defecte" }, + "muted_user": { "message": "S'ha silenciat a @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "nonexistent_user": { "message": "Aquest compte no existeix" }, + "nonexistent_user_desc": { "message": "Intenta cercar-ne un altre." }, + "not_possible_to_see_unfollowers": { "message": "Malauradament, no és possible veure els ex-seguidors dels comptes amb més de 50.000 seguidors." }, + "only_show_people_with_age": { "message": "Mostra només les persones amb un compte que tingui almenys $NUMBER$ dies d'antiguitat", "placeholders": { "number": { "content": "-1" } } }, + "only_show_people_with_followers": { "message": "Mostra només les persones amb un mínim de $NUMBER$ de seguidors", "placeholders": { "number": { "content": "-1" } } }, + "only_show_people_you_follow": { "message": "Mostra només les persones que segueixes" }, + "open_notifs_as_modal": { "description": "Modal is a small window that opens on top of page", "message": "Obriu les notificacions com a modal" }, + "page": { "message": "Pàgina" }, + "pinned_searches": { "message": "Cerques fixades" }, + "processing": { "message": "Processant" }, + "quotes": { "message": "Cites" }, + "replacer_post_to_tweet": { "description": "This string will be used to replace word 'post' with 'tweet' in various places. If, in your language, this replacement is very context-based, you can add multiple substitutions and separate them with a | (example: posts->tweet|post->tweet). On the left side of a substitution, use the word for 'post' that Twitter officially uses in your language (open notifications and you'll probably see 'someone liked your post' in your language, find that word (in this case 'post') and place it on the left side, before the '->', and then on the right side insert the translated 'tweet' word, so when replaced it'll look like 'someone liked your tweet'. The substitution terms on the left can also be regex expressions (don't insert them as '/expression/g' though, just 'expression'). For example, 'epic$' will only replace the word 'epic' if it's at the end of a sentence (because the $ character indicates the end of a string in regex). However, if, even after all these substitutions, it sounds bad in your language, you can ignore this.", "message": "publicació->tuit" }, + "replacer_repost_to_retweet": { "description": "If 'retweet', either the noun or the verb, is different than 'tweet' in your language, you should change this. If this replacement is very context-based in your language, you can also add multiple substitutions and separate them with a | (example: repost->retweet|ripostato->ritwittato). The substitution terms on the left can also be regex expressions (don't insert them as '/expression/g' though, just 'expression'). For example, 'epic$' will only replace the word 'epic' if it's at the end of a sentence (because the $ character indicates the end of a string in regex).", "message": "republicat->retuita" }, + "replying_to_and": { "description": "For some languages that use address terms", "example": "Replying to @A-> and <-@B, @C", "message": " i " }, + "replying_to_comma": { "description": "For some languages that use address terms", "example": "Replying to @A and @B->, <-@C", "message": ", " }, + "save_downloadtemplate": { "message": "Desa la plantilla de baixada" }, + "search_by_description": { "message": "Cerca per descripció" }, + "search_by_name": { "message": "Cerca per nom" }, + "select_language": { "message": "Seleccioneu l'idioma" }, + "separate_text": { "description": "This option appears in three-dot menu of tweets only on mobile and makes text bigger and adds padding on top and bottom on tap", "message": "Text separat" }, + "share_tweet_in_dms": { "message": "Comparteix el tuit per missatges directes" }, + "share_tweet_to": { "message": "Comparteix tuit a..." }, + "show_boring_indicators": { "message": "Mostra l'indicador a la pàgina de seguidors/seguint si l'últim tuit de la persona és un retuit/cita/inexistent/antic" }, + "show_exact_values": { "message": "Mostra el nombre exacte de retuits, m'agrada, seguidors, etc." }, + "show_follower_counts_in_lists": { "message": "Mostra el recompte de seguidors dels usuaris a les pàgines de seguidors/seguint." }, + "show_quote_count": { "message": "Mostra el recompte de cites als tuits" }, + "show_user_previews_on_mobile": { "description": "This option only appears on mobile", "message": "Mostra les previsualitzacions dels usuaris al premer (això pot ser molest)" }, + "sort_by_created": { "message": "Ordena per data de creació del compte" }, + "sort_by_follow_date": { "message": "Ordena per data de seguiment (inprecisa)" }, + "sort_by_followers": { "message": "Ordena per recompte de seguidors" }, + "sort_by_following": { "message": "Ordena per recompte de seguits" }, + "sort_by_name": { "message": "Ordena per nom" }, + "sort_by_random": { "message": "Ordena per aleatòri" }, + "sort_by_tweets": { "message": "Ordena per recompte de tuits" }, + "sort_by_username": { "message": "Ordena per nom d'usuari" }, + "style_your_profile": { "message": "Estilitza el teu perfil aquí!" }, + "styled_profile": { "message": "Perfil estilitzat" }, + "suspended_user": { "message": "Compte suspès" }, + "suspended_user_desc": { "message": "El perfil que esteu provant de veure s'ha suspès." }, + "transition_profile_banner": { "message": "Utilitzeu la transició al bàner de perfil" }, + "translate_in_list": { "message": "Tradueix quan estiguis a la llista d'idiomes" }, + "translate_not_in_list": { "message": "Tradueix quan no estigui a la llista d'idiomes" }, + "twitter": { "message": "Twitter" }, + "unmute_user": { "message": "Deixa de silenciar @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "unmuted_user": { "message": "S'ha deixat de silenciar @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "update": { "message": "Actualització" }, + "uploaded": { "message": "Penjat" }, + "uploading": { "message": "Carregant" }, + "user_added": {"description": "This is used when a group admin adds a user to the group chat (display names)","message": "$A1$$USER_WHO_ADDED$$A_END$ ha afegit a $A2$$USER_WHO_JOINED$$A_END$","placeholders": {"a_end": {"content": ""},"a1": {"content": ""},"a2": {"content": ""},"user_who_added": {"content": "Group Admin"},"user_who_joined": {"content": "Group Admin's Friend"}}}, + "user_added_you_inbox": { "description": "This is used when a group admin adds you to the group chat (display names, inbox list only)", "message": "$NAME$ t'ha afegit", "placeholders": { "name": { "content": "Group Admin" } } }, + "user_added_you_msg": { "description": "This is used when a group admin adds you to the group chat (display names, messages only)", "example": "Group Admin added you
There are 6 other people in this group", "message": "$A_START$$NAME$$A_END$ t'ha afegit
Hi ha $NUMBER$ persones en aquest grup", "placeholders": { "a_end": { "content": "" }, "a_start": { "content": "" }, "name": { "content": "Group Admin" }, "number": { "content": "6" } } }, + "user_changed_group_name": { "description": "This is used when a user in a group changes the group name (display name)", "message": "$A_START$$NAME$$A_END$ ha canviat el nom del grup a $GROUP_NAME$", "placeholders": { "a_end": { "content": "" }, "a_start": { "content": "" }, "group_name": { "content": "Example Group" }, "name": { "content": "Group Admin" } } }, + "user_changed_group_photo": { "description": "This is used when a user in a group changes the group photo (display name)", "message": "$A_START$$NAME$$A_END$ ha canviat la foto de grup", "placeholders": { "a_end": { "content": "" }, "a_start": { "content": "" }, "name": { "content": "Group Admin" } } }, + "user_left": { "description": "This is used when a user in a group leaves (display name)", "message": "$A_START$$NAME$$A_END$ ha marxar", "placeholders": { "a_end": { "content": "" }, "a_start": { "content": "" }, "name": { "content": "Group Admin's Friend" } } }, + "user_reacted_message": { "message": "$NAME$ ha reaccionat al missatge", "placeholders": { "name": { "content": "Display Name" } } }, + "user_sent_photo": { "message": "$NAME$ ha enviat una foto", "placeholders": { "name": { "content": "Display Name" } } }, + "user_sent_video": { "message": "$NAME$ ha enviat un vídeo", "placeholders": { "name": { "content": "Display Name" } } }, + "user_shared_tweet": { "message": "$NAME$ ha compartit un tuit", "placeholders": { "name": { "content": "Display Name" } } }, + "you_reacted_message": { "message": "Has reaccionat al missatge" }, + "you_sent_photo": { "message": "Has enviat una foto" }, + "you_sent_video": { "message": "Has enviat un vídeo" }, + "you_shared_tweet": { "message": "Has compartit un tuit" } } diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 3c558f75..1c00c80d 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -520,7 +520,7 @@ "show_user_previews_on_mobile": { "message": "Show user previews on hold (this can be annoying)", "description": "This option only appears on mobile" }, "separate_text": { "message": "Separate text", "description": "This option appears in three-dot menu of tweets only on mobile and makes text bigger and adds padding on top and bottom on tap" }, "leave_conversation": { "message": "Are you sure you want to leave/remove this conversation?"}, - "autotranslation_help1": { "message": "This function can find the tweets and trigger translation automatically, without having to click the button manually."}, + "autotranslation_help1": { "message": "This function can find the tweets and trigger translation automatically, without having to click the button manually."}, "autotranslation_help2": { "message": "To use it, select autotranslation mode and set the language list. The tweets that meet the conditions will be automatically translated."}, "autotranslation_help3": { "message": "Specifically:"}, "autotranslation_help4": { "message": "\"Translate when in language list\" with no languages set cause function to be disabled (default)."}, @@ -645,5 +645,6 @@ "nonexistent_user_desc": { "message": "Try searching for another." }, "suspended_user": { "message": "Account suspended" }, "suspended_user_desc": { "message": "The profile you are trying to view has been suspended." }, - "show_boring_indicators": { "message": "Show indicator in followers/following page if last tweet of person is a retweet/quote/non-existent/old" } + "show_boring_indicators": { "message": "Show indicator in followers/following page if last tweet of person is a retweet/quote/non-existent/old" }, + "hide_original_languages":{"message": "Hide original languages when translated" } } diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index 6c9e12b3..4071fff0 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -539,7 +539,7 @@ "manage_searches": { "message": "Gérer les recherches" }, "add_search": { "message": "Ajouter une recherche" }, "pinned_searches": { "message": "Recherches épinglées" }, - "show_follower_counts_in_lists": { "message": "Show users follower counts on follower/following pages." }, + "show_follower_counts_in_lists": { "message": "Afficher le nombre de followers des utilisateurs sur les pages de followers et de suivi.e." }, "not_possible_to_see_unfollowers": { "message": "Malheureusement, il n'est pas possible de voir les comptes ayant plus de 50 000 followers." }, "sort_by_follow_date": { "message": "Trier par date de suivi (inexact)" }, "sort_by_followers": { "message": "Trier par nombre de followers" }, @@ -617,5 +617,24 @@ } }, "accepted_conversation": { "message": "Conversation acceptée" }, - "anniversary_tweet": { "message": "Vous souvenez-vous quand vous avez rejoint Twitter? Je sais!\n#MyTwitterAnniversary" } + "anniversary_tweet": { "message": "Vous souvenez-vous quand vous avez rejoint Twitter? Je sais!\n#MyTwitterAnniversary" }, + "you_shared_tweet": { "message": "Vous avez partagé un tweet" }, + "user_shared_tweet": { "message": "$NAME$ à partagé un tweet.", "placeholders": { "name": { "content": "Display Name" } } }, + "transition_profile_banner": { "message": "Utiliser une transition sur la bannière du profil" }, + "custom_downloadtemplate": { "message": "Modèle de téléchargement personnalisé" }, + "custom_downloadtemplate_text": { "message": "Vous permet de personaliser les noms des fichiers quand vous téléchargez un média d'un tweet." }, + "save_downloadtemplate": { "message": "Sauvegarder le modèle de téléchargement" }, + "custom_downloadtemplate_hintName1": { "message": "{user_name} : Nom de l'utilisateur." }, + "custom_downloadtemplate_hintName2": { "message": "{user_screen_name} : Nom du compte de l'utilisateur. (Example : @dril)" }, + "custom_downloadtemplate_hintTime": { "message": "{timestamp} : Date et heure de publication du tweet." }, + "custom_downloadtemplate_hintExtension": { "message": "{extension} : Extension de fichier du tweet téléchargé." }, + "custom_downloadtemplate_hintID": { "message": "{id} : ID du tweet." }, + "custom_downloadtemplate_hintIndex": { "message": "{index} : Index pour chaque fichier à télécharger. (pour les publications avec plusieurs médias)" }, + "custom_downloadtemplate_hintFilename": { "message": "{filename} : Nom de fichier original provenant de pbs.twimg.com." }, + "nonexistent_user": { "message": "Ce compte n'existe pas" }, + "nonexistent_user_desc": { "message": "Essayez d'en chercher un autre." }, + "suspended_user": { "message": "Compte suspendu" }, + "suspended_user_desc": { "message": "Le profil que vous essayez de voir est suspendu." }, + "show_boring_indicators": { "message": "Afficher un indicateur sur la page des abonnés/abonnements si le dernier tweet de la personne est un retweet, une citation, inexistant ou ancien" } + } diff --git a/_locales/gl/messages.json b/_locales/gl/messages.json new file mode 100644 index 00000000..0c87d7cc --- /dev/null +++ b/_locales/gl/messages.json @@ -0,0 +1,649 @@ +{ + "ext_description": { "message": "Unha nova extensión que devolve o aspecto antigo de Twitter." }, + "timeline": { "message": "Cronoloxía" }, + "loading": { "message": "Cargando" }, + "tweets": { "message": "Chíos" }, + "following_btn": { "message": "Seguindo", "description": "This one is used in button showing that user is following someone." }, + "following": { "message": "Seguindo", "description": "This is used in list showing who user follows. Try to keep this word equal or less than 9 characters" }, + "followers": { "message": "Seguidores", "description": "This is used in list of users followers. Try to keep this word equal or less than 9 characters" }, + "trends": { "message": "Tendencias" }, + "tweet": { "message": "Chío" }, + "load_more": { "message": "Cargar máis" }, + "who_to_follow": { "message": "A quen seguir", "description": "Max 19 characters, you can use word 'People' if no space" }, + "refresh": { "message": "Actualizar" }, + "view_all": { "message": "Ver todo" }, + "running": { "message": "Executando", "example": "->Running<- OldTwitter v0.0.0" }, + "created_by": { "message": "Creado por", "example": "->Created by<- dimden" }, + "website": { "message": "Sitio web" }, + "help": { "message": "Axuda", "description": "noun" }, + "terms": { "message": "Termos", "description": "Shortest word that you can find for Terms of service" }, + "privacy": { "message": "Privacidade", "description": "Shortest word that you can find for Privacy policy" }, + "about": { "message": "Acerca de" }, + "donate": { "message": "Doar" }, + "home": { "message": "Inicio", "description": "This is for navbar menu. If no appropriate word, you can use something like Feed or Timeline" }, + "notifications": { "message": "Notificacións" }, + "messages": { "message": "Mensaxes" }, + "search_twitter": { "message": "Buscar en Twitter" }, + "profile": { "message": "Perfil" }, + "settings": { "message": "Configuración" }, + "lists": { "message": "Listaxes" }, + "list": { "message": "Listaxe" }, + "bookmarks": { "message": "Marcadores" }, + "manage_accounts": { "message": "Xestionar contas" }, + "logout": { "message": "Pechar sesión" }, + "whats_happening": { "message": "Que está a pasar?" }, + "variant": { "message": "Opción" }, + "optional": { "message": "(opcional)" }, + "days": { "message": "Días" }, + "hours": { "message": "Horas" }, + "minutes": { "message": "Minutos" }, + "remove_poll": { "message": "Eliminar enquisa" }, + "open_newtwitter": { "message": "Abrir esta páxina no novo Twitter" }, + "last_version": { "message": "última versión" }, + "thank_you": { + "message": "Grazas por instalar OldTwitter!! Espero que che guste. Bótalle un ollo á $AT1$configuración da extensión$AT2$!", + "placeholders": { + "at1": { "content": "" }, + "at2": { "content": "" } + } + }, + "follow_mb": { "message": "Qué tal se me segues?" }, + "follow": { "message": "Seguir" }, + "unfollow": { "message": "Deixar de seguir" }, + "follow_user": { "message": "Seguir a @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "unfollow_user": { "message": "Deixar de seguir a @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "thank_you_follow": { "message": "Grazas por seguirme!!" }, + "loading_tweets": { "message": "Cargando chíos..." }, + "retweeted": { "message": "rechouchiado", "example": "CoolPerson2000 ->retweeted<-" }, + "see_new_tweets": { "message": "Ver novos chíos" }, + "must2variants": { "message": "Debes ter polo menos 2 variantes na enquisa." }, + "delete_all": { "message": "Eliminar todo" }, + "empty": { "message": "Vaia, que baleiro", "description": "Funky message about nothing found" }, + "delete_bookmarks": { "message": "Seguro que queres eliminar todos os teus marcadores? Esta acción non se pode desfacer." }, + "members": { "message": "Membros" }, + "subscribers": { "message": "Subscriptores" }, + "list_members": { "message": "Membros da listaxe" }, + "list_subscribers": { "message": "Subscriptores da listaxe" }, + "edit": { "message": "Editar" }, + "delete": { "message": "Eliminar" }, + "remove": { "message": "Quitar" }, + "edit_list": { "message": "Editar listaxe" }, + "edit_members": { "message": "Editar membros" }, + "save": { "message": "Gardar" }, + "back": { "message": "Volver" }, + "delete_list": { "message": "Eliminar listaxe" }, + "delete_list_sure": { "message": "Seguro que queres eliminar esta lista?" }, + "unsubscribe": { "message": "Desubscribirse" }, + "subscribe": { "message": "Subscribirse" }, + "list_not_found": { "message": "Non se atopou a listaxe." }, + "go_homepage": { "message": "Ir á páxina de inicio." }, + "mentions": { "message": "Mencións" }, + "tweeted_like": { "message": "chiou algo que che pode interesar", "example": "CoolPerson2000 ->tweeted something you might like<-" }, + "favorites": { "message": "Favoritos" }, + "follows_you": { "message": "Séguete" }, + "tweet_to_user": { "message": "Chiar a Usuario" }, + "followers_you_know": { "message": "$NUMBER$ seguidores que coñeces", "example": "123 followers you know", "placeholders": { "number": { "content": "123" } } }, + "photos_and_videos": { "message": "Fotos e vídeos" }, + "photos_and_videos2": { "message": "Fotos e vídeos" }, + "tweets_and_replies": { "message": "Chíos e respostas" }, + "you_may_also_like": { "message": "Pódeche interesar", "description": "Max 26 characters, you can use word 'People' if no space" }, + "user_was_not_found": { "message": "Non se atopou o usuario." }, + "timeline_not_authorized": { "message": "Non estás autorizado para ver a cronoloxía deste usuario." }, + "create_btn": { "message": "[crear]" }, + "create_list": { "message": "Crear listaxe" }, + "create": { "message": "Crear" }, + "name": { "message": "Nome" }, + "description": { "message": "Descrición" }, + "no_description": { "message": "Sen descrición." }, + "born": { "message": "Nado" }, + "january": { "message": "Xaneiro", "description": "Used in 'Born January 1'. You can move $NUMBER$ on left if it sounds better in your language like that.", "placeholders": { "number": { "content": "1" } } }, + "february": { "message": "Febreiro" }, + "march": { "message": "Marzo" }, + "april": { "message": "Abril" }, + "may": { "message": "Maio" }, + "june": { "message": "Xuño" }, + "july": { "message": "Xullo" }, + "august": { "message": "Agosto" }, + "september": { "message": "Setembro" }, + "october": { "message": "Outubro" }, + "november": { "message": "Novembro" }, + "december": { "message": "Decembro" }, + "tweet_to": { "message": "Chío a @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "translated_from": { "message": "Traducido do $LANGUAGE$", "placeholders": { "language": { "content": "Japanese" } } }, + "translate_bio": { "message": "Traducir biografía" }, + "edit_profile": { "message": "Editar perfil" }, + "follow_request_sent": { "message": "Solicitude de seguimento enviada" }, + "unblock_user": { "message": "Desbloquear @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "unblock": { "message": "Desbloquear", "description": "Just for unblock button" }, + "block_user": { "message": "Bloquear @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "block": { "message": "Bloquear", "description": "Just for block button" }, + "mute": { "message": "Ignorar" }, + "unmute": { "message": "Deixar de ignorar" }, + "see_lists": { "message": "Ver listaxes" }, + "stop_notifications": { "message": "Deixar de recibir notificacións" }, + "receive_notifications": { "message": "Recibir notificacións" }, + "from_list": { "message": "Engadir/eliminar da listaxe" }, + "share_user": { "message": "Compartir usuario" }, + "copy_profile_link": { "message": "Copiar ligazón do perfil" }, + "remove_from_followers": { "message": "Eliminar dos seguidores", "description": "This button unfollows person from you, not unfollows you from them" }, + "remove_from_followers_sure": { "message": "Estás seguro de que queres eliminar a @$SCREEN_NAME$ dos teus seguidores?", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "remove_from_followers_warn": { "message": "ISTO ELIMINARAO DA TÚA LISTA DE SEGUIDORES, NON DA TÚA LISTA DE SEGUIDOS." }, + "remove_from_followers_button": { "message": "Eliminar a este seguidor" }, + "able_in_future": { "message": "Poderán seguirte de novo no futuro." }, + "block_sure": { "message": "Estás seguro de que queres bloquear a @$SCREEN_NAME$?", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "add": { "message": "Engadir" }, + "joined": { "message": "Uniuse", "example": "->Joined<- April 30, 2019" }, + "birthday_today": { "message": "(hoxe!)" }, + "pinned_tweet": { "message": "Chío fixado" }, + "search": { "message": "Procurar" }, + "popular": { "message": "Popular" }, + "live": { "message": "En directo" }, + "people": { "message": "Persoas" }, + "photos": { "message": "Fotos" }, + "videos": { "message": "Vídeos" }, + "all_people": { "message": "Tódalas persoas" }, + "people_yk": { "message": "Persoas que coñeces" }, + "everywhere": { "message": "En todas partes" }, + "near_you": { "message": "Preto de ti" }, + "advanced_search": { "message": "Procura avanzada" }, + "save_search": { "message": "Gardar esta busca" }, + "remove_search": { "message": "Eliminar dos gardados" }, + "try_again": { "message": "Inténtao de novo" }, + "no_results": { "message": "Non se atoparon resultados. Proba a cambiar algo á esquerda?" }, + "words": { "message": "Palabras" }, + "all_these_words": { "message": "Todas estas palabras" }, + "all_these_words_example": { "message": "Exemplo: que pasa - inclúe \"que\", \"pasa\"" }, + "exact_phrase": { "message": "Frase exacta" }, + "exact_phrase_example": { "message": "Exemplo: tempo feliz - inclúe \"tempo feliz\"" }, + "any_words": { "message": "Calquera destas palabras" }, + "any_words_example": { "message": "Exemplo: gatos cans - inclúe \"gatos\" ou \"cans\"" }, + "not_these_words": { "message": "Ningunha destas palabras" }, + "not_these_words_example": { "message": "Exemplo: gatos cans - exclúe \"gatos\" e \"cans\"" }, + "user": { "message": "Usuario" }, + "from_this_user": { "message": "Deste usuario" }, + "from_this_user_example": { "message": "Exemplo: @dimden - do usuario dimden" }, + "mentions_this_user": { "message": "Menciona este usuario" }, + "mentions_this_user_example": { "message": "Exemplo: @dimden - en resposta a dimden" }, + "interactions": { "message": "Interaccións" }, + "min_replies": { "message": "Número mínimo de respostas" }, + "min_replies_example": { "message": "Exemplo: 10 - chíos con polo menos 10 respostas" }, + "min_retweets": { "message": "Número mínimo de rechouchíos" }, + "min_retweets_example": { "message": "Exemplo: 10 - chíos con polo menos 10 rechouchíos" }, + "min_favorites": { "message": "Número mínimo de favoritos" }, + "min_favorites_example": { "message": "Exemplo: 10 - chíos con polo menos 10 favoritos" }, + "dates": { "message": "Datas" }, + "since": { "message": "Dende" }, + "until": { "message": "Ata" }, + "twitter_settings": { "message": "Configuración de Twitter" }, + "oldtwitter_settings": { "message": "Configuración de OldTwitter" }, + "edit_twitter_settings": { "message": "Editar configuración de Twitter" }, + "refresh_tabs": { "message": "Actualizar as pestanas para aplicar a configuración" }, + "chrono": { "message": "Cronolóxico inverso" }, + "chrono_social": { "message": "Cronolóxico inverso con gústames de amigos" }, + "algo": { "message": "Algorítmico" }, + "timeline_type": { "message": "Tipo de cronoloxía" }, + "show_topic_tweets": { "message": "Amosar chíos de temas (só algorítmico)" }, + "show_colors_in_timeline": { "message": "Amosar cores de ligazóns personalizadas dos usuarios na cronoloxía principal" }, + "always_show_link_color": { "message": "Amosar sempre cores de ligazóns personalizadas en lugar de só ao pasar o rato" }, + "enable_twemoji": { "message": "Activar Twemoji" }, + "hearts_instead_stars": { "message": "Amosar corazóns (gústame) en lugar de estrelas (favoritos)" }, + "dark_mode": { "message": "Modo escuro" }, + "disable_hotkeys": { "message": "Desactivar tódalas teclas rápidas" }, + "hotkeys_list": { "message": "Ver a listaxe de teclas rápidas aquí" }, + "save_preferred_quality": { "message": "Gardar calidade de vídeo preferida. Se esta opción está activada, OldTwitter gardará a túa calidade de vídeo preferida e usaraa (ou a calidade máis próxima á preferida). Se está desactivada, OldTwitter seleccionará a calidade máis alta." }, + "preferred_quality": { "message": "Calidade preferida" }, + "default_link_color": { "message": "Cor da ligazón predeterminada" }, + "font": { "message": "Tipo de letra" }, + "color_sync": { "message": "Sincronización da cor da ligazón" }, + "by_pressing_sync": { "message": "Ao premer o botón Sincronizar, a cor da ligazón do teu perfil será enviada á base de datos de cores e mostrada a outros usuarios da extensión." }, + "color_years_ago": { "message": "Se fixeches algún cambio na cor da ligazón de Twitter anteriormente (hai anos, cando aínda era unha cousa), esta opción sobrescribirá a túa cor antiga." }, + "sync": { "message": "Sincronizar", "note": "Try to keep this short" }, + "profile_link_color": { "message": "Cor da ligazón ao perfil" }, + "light_mode_link": { "message": "Ligazón en modo claro" }, + "dark_mode_link": { "message": "Ligazón en modo escuro" }, + "custom_css": { "message": "CSS personalizado" }, + "css_var_override": { "message": "Sobrescribir as variables CSS predeterminadas. Escríbeas como --some-variable: property. Sepáraas por liña nova." }, + "css_var_list": { "message": "Consulta aquí a lista de variables CSS predeterminadas." }, + "save_vars": { "message": "Gardar variables" }, + "custom_css_text": { "message": "CSS personalizado para engadir en todas as páxinas." }, + "save_css": { "message": "Gardar CSS" }, + "error_setting_color": { "message": "Erro ao establecer a cor da ligazón" }, + "link_color_set": { "message": "Cor da ligazón establecida!" }, + "retweeted_by": { "message": "Rechouchiado por" }, + "see_quotes": { "message": "ver citas" }, + "see_quotes_big": { "message": "Ver citas" }, + "quote_tweets": { "message": "Citas do chío" }, + "see_retweets": { "message": "ver rechouchíos" }, + "reply_to": { "message": "Responder a @$SCREEN_NAME$", "example": "Reply to @CoolPerson2000", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "error_loading_tweet": { "message": "Erro ao cargar o chío" }, + "direct_messages": { "message": "Mensaxes directas" }, + "mark_all_read": { "message": "Marcar todo como lido" }, + "send": { "message": "Enviar", "description": "Max 5 characters, if no word keep it in English" }, + "new_message": { "message": "Nova mensaxe" }, + "create_new_group": { "message": "Crear un novo grupo" }, + "search_people": { "message": "Buscar persoas" }, + "type_message": { "message": "Escribe a túa mensaxe" }, + "cant_send": { "message": "Non podes enviar mensaxes a este usuario." }, + "gifs_max": { "message": "Os GIFs deben pesar menos de 15 MB" }, + "videos_max": { "message": "Os vídeos deben pesar menos de 500 MB" }, + "images_max": { "message": "As imaxes deben pesar menos de 5 MB" }, + "max_count": { "message": "Só podes cargar ata 4 imaxes ou 1 vídeo ou GIF" }, + "alt_text": { "message": "Introduce un texto alternativo para a imaxe" }, + "vote": { "message": "voto", "example": "1 ->vote<-" }, + "votes": { "message": "votos", "example": "10 ->votes<-" }, + "ends_at": { "message": "Remata o $DATE$", "example": "Ends at 16th November", "placeholders": { "date": { "content": "16th November" } } }, + "view_translation": { "message": "Ver tradución" }, + "unsupported_video": { "message": "O teu navegador non admite este vídeo." }, + "views": { "message": "visualizacións", "example": "10 ->views<-" }, + "reload": { "message": "Recargar" }, + "circle_limited_tweet": { "message": "Só as persoas no Círculo de Twitter de @$SCREEN_NAME$ poden ver este chío.", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "learn_more": { "message": "Saber máis." }, + "limited_tweet": { "message": "Este chío ten limitacións sobre a quen podes responder." }, + "replies": { "message": "Respostas" }, + "retweets": { "message": "Rechouchíos" }, + "likes": { "message": "Gústames" }, + "show_this_thread": { "message": "Amosar fío" }, + "quote_tweet": { "message": "Citar chío" }, + "see_retweeters": { "message": "Ver quen rechouchiou" }, + "copy_link": { "message": "Copiar ligazón" }, + "embed_tweet": { "message": "Inserir o código HTML do chío" }, + "share_tweet": { "message": "Compartir chío" }, + "tweet_analytics": { "message": "Estadísticas do chío" }, + "delete_tweet": { "message": "Eliminar chío" }, + "unpin_tweet": { "message": "Desfixar chío" }, + "pin_tweet": { "message": "Fixar chío" }, + "bookmark_tweet": { "message": "Engadir chío a Elementos gardados" }, + "topic_not_interested": { "message": "Non estou interesado neste tema" }, + "refresh_tweet": { "message": "Actualizar datos do chío" }, + "download_media": { "message": "Descargar contido multimedia" }, + "download_gif": { "message": "Descargar como GIF" }, + "replying_to_tweet": { "message": "Respondendo ao chío" }, + "upload_media_btn": { "message": "[subir multimedia]" }, + "cancel_btn": { "message": "[cancelar]" }, + "quote": { "message": "Citar" }, + "reply_example": { "message": "Boa resposta ao chío" }, + "quote_example": { "message": "Boa cita do chío" }, + "error_sending_tweet": { "message": "Erro ao enviar o chío" }, + "retweet_sure": { "message": "Estás seguro de que queres rechouchiar este chío?" }, + "unretweet": { "message": "Desfacer rechouchío" }, + "retweet": { "message": "Rechouchiar" }, + "delete_sure": { "message": "Estás seguro de que queres eliminar este chío?" }, + "long_vid": { "message": "Este vídeo dura máis de 10 segundos. Estás seguro de que queres convertelo? Este proceso pode tomar un tempo." }, + "feedback_thanks": { "message": "Grazas pola túa opinión!" }, + "liked_by": { "message": "Gústalle a" }, + "reply": { "message": "Responder" }, + "language": { "message": "Lingua (Language)", "description": "Please add English 'Language' word in parentheses in addition to translation", "example": "Lingua (Language)" }, + "translated_by": { "message": "Traducido por $TRANSLATOR$.", "placeholders": { "translator": { "content": "CoolPerson2000" } } }, + "last_searches": { "message": "Últimas procuras" }, + "saved_searches": { "message": "Procuras gardadas" }, + "everyone": { "message": "Todo o mundo", "description": "Used to say that tweet will be shown to public (shown to Everyone), can use word Public if it fits better" }, + "topic": { "message": "Tema" }, + "not_interested": { "message": "Non me interesa" }, + "cancel": { "message": "Cancelar" }, + "youre_not_interested": { "message": "Non estás interesado neste tema." }, + "autoplay_videos": { "message": "Reproducir vídeos automaticamente" }, + "turn_on_retweets": { "message": "Mostrar rechouchíos na cronoloxía" }, + "turn_off_retweets": { "message": "Ocultar rechouchíos na cronoloxía" }, + "you_can_reply": { "message": "(podes responder)" }, + "audience": { "message": "Audiencia" }, + "who_can_reply": { "message": "Quen pode responder" }, + "people_you_follow": { "message": "Persoas que segues" }, + "people_you_mention": { "message": "Persoas que mencionas" }, + "new_version": { "message": "Actualizado á nova versión" }, + "display_sensitive_content": { "message": "Mostrar o contido multimedia que foi marcado por Twitter como delicado" }, + "is_private": { "message": "É privado" }, + "s": { "message": "$NUMBER$s", "description": "Short for 'second', like '1s' means 1 second", "placeholders": { "number": { "content": "1" } } }, + "m": { "message": "$NUMBER$m", "description": "Short for 'minute', like '1m' means 1 minute", "placeholders": { "number": { "content": "1" } } }, + "h": { "message": "$NUMBER$h", "description": "Short for 'hour', like '1h' means 1 hour", "placeholders": { "number": { "content": "1" } } }, + "d": { "message": "$NUMBER$d", "description": "Short for 'day', like '1d' means 1 day", "placeholders": { "number": { "content": "1" } } }, + "follow_requests": { "message": "Solicitudes de seguemento" }, + "accept": { "message": "Aceptar" }, + "decline": { "message": "Rexeitar" }, + "mute_convo": { "message": "Silenciar conversa" }, + "unmute_convo": { "message": "Desactivar silencio da conversa" }, + "no_big_font": { "message": "Desactivar letra grande para chíos curtos/populares" }, + "emoji": { "message": "Emoji" }, + "emoji_btn": { "message": "[emoji]" }, + "add_emoji": { "message": "Engadir emoji" }, + "custom": { "message": "Personalizado" }, + "smileys_emotion": { "message": "Smileys e Emoticonas" }, + "people_body": { "message": "Persoas e corpo" }, + "animals_nature": { "message": "Animais e natureza" }, + "food_drink": { "message": "Comida e bebidas" }, + "travel_places": { "message": "Viaxes e lugares" }, + "activities": { "message": "Actividades" }, + "objects": { "message": "Obxectos" }, + "symbols": { "message": "Símbolos" }, + "flags": { "message": "Bandeiras" }, + "categories": { "message": "Categorías" }, + "unsupported_emoji": { "message": "O teu navegador non admite emoji con cor." }, + "cant_load_emoji": { "message": "Non se puido cargar o emoji." }, + "emoji_picker": { "message": "Selector de emoji" }, + "emoji_search_description": { "message": "Cando hai resultados de busca dispoñíbeis, prema arriba ou abaixo para seleccionar e enter para escoller." }, + "search_results": { "message": "Resultados da busca" }, + "skin_tone_description": { "message": "Cando está expandido, prema arriba ou abaixo para seleccionar e enter para escoller." }, + "skin_tone_label": { "message": "Escolle un tema (actualmente $SKIN_TONE$)", "placeholders": { "skin_tone": { "content": "default" } } }, + "skin_tones_label": { "message": "Temas" }, + "add_media": { "message": "Engadir multimedia" }, + "add_poll": { "message": "Engadir enquisa" }, + "add_location": { "message": "Engadir localización" }, + "schedule_tweet": { "message": "Programar chío" }, + "scheduled": { "message": "Programado" }, + "drafts": { "message": "Borradores" }, + "location": { "message": "Localización" }, + "unsent_tweets": { "message": "Chíos non enviados" }, + "unsent": { "message": "Non enviados" }, + "will_send": { "message": "Enviarase en" }, + "schedule": { "message": "Programar" }, + "scheduled_success": { "message": "O chío foi programado!" }, + "see_scheduled": { "message": "Ver programados" }, + "hasnt_tweeted": { "message": "@$SCREEN_NAME$ non ten chíos", "placeholders": { "screen_name": { "content": "loading" } } }, + "when_theyll_tweet": { "message": "Cando o fagan, os seus chíos aparecerán aquí." }, + "thank_you2": { + "message": "Grazas por usar OldTwitter! Leva moito tempo e esforzo codificalo, podes apoiarme seguindo ou $AT1$doando$AT2$. Estaría moi agradecido.", + "placeholders": { "at1": { "content": "" }, "at2": { "content": "" } } + }, + "something_went_wrong": { "message": "Algo saíu mal" }, + "notifications_error": { "message": "Algunhas notificacións non se puideron cargar debido a erros." }, + "tweet_error": { "message": "Algúns chíos non se puideron cargar debido a erros." }, + "error_instructions": { + "message": "Copia o texto abaixo e envíao ao $AT1$seguimento de problemas$AT2$ ou ao $AT3$meu correo$AT2$. Grazas!", + "placeholders": { + "at1": { "content": "" }, + "at2": { "content": "" }, + "at3": { "content": "" } + } + }, + "initialization": { "message": "Inicialización" }, + "converting": { "message": "Convertendo" }, + "time_mode": { "message": "Activar modo escuro entre 19:00-09:00" }, + "show_original_images": { "message": "Mostrar sempre imaxes en calidade orixinal (pode ralentizar ordenadores lentos)" }, + "pitch_black_mode": { "message": "Modo negro total (só cando o modo escuro está activado)" }, + "hide_retweets": { "message": "Ocultar rechouchíos" }, + "see_tweet_views": { "message": "Ver número de visualizacións dos chíos" }, + "history": { "message": "Historial" }, + "autotranslate_tweets": { "message": "Traducir chíos automaticamente" }, + "dont_autotranslate": { "message": "Non traducir chíos automaticamente" }, + "round_avatars": { "message": "Avatares redondeados" }, + "search_user_tweets": { "message": "Procurar chíos do usuario" }, + "no_tl_tweets": { "message": "Non estás seguindo a ninguén, polo que non se atoparon chíos! Cambia o tipo de cronoloxía a 'Algorítmica' en Configuración de OldTwitter." }, + "replying_to": { "message": "Respostando a", "description": "Used for mention list. Use 'Mentions' if translation sounds bad in your language.", "example": "Replying to: - user1, - user2" }, + "display": { "message": "Pantalla", "description": "Used for display settings (fonts, colors, style, etc)" }, + "twitter_blue_checkmarks": { "message": "Mostrar marcas de verificación azuis" }, + "retweet_hotkey_warn": { "message": "Premeches a tecla T, que é a tecla rápida para rechouchío. Queres rechouchíar este chío? Se confirmas, non se volverá amosar este aviso." }, + "reply_btn": { "message": "Responder", "description": "Used for reply button." }, + "retweet_btn": { "message": "Rechouchíar / Citar chío", "description": "Used for retweet menu button." }, + "like_btn": { "message": "Gústame / Non me gusta", "description": "Used for like button." }, + "favorite_btn": { "message": "Favorito / Non favorito", "description": "Usado para o botón de favorito." }, + "views_count": { "message": "Visualizacións", "description": "Used for favorite button." }, + "developer_mode": { "message": "Modo desenvolvedor" }, + "copy_user_id": { "message": "Copiar ID do usuario" }, + "copy_tweet_id": { "message": "Copiar ID do chío" }, + "unfollowers": { "message": "Deixaron de seguirte", "description": "People that stopped following you" }, + "unfollowings": { "message": "Deixaches de seguir", "description": "People that you stopped following" }, + "no_unfollowers": { "message": "Aínda non tes a ninguén que deixase de seguirte!" }, + "no_unfollowings": { "message": "Aínda non deixaches de seguir a ninguén!" }, + "recent_unfollow_update": { "message": "As cancelacións de seguimento actualizáronse hai menos de 15 minutos." }, + "deleted_accounts": { "message": "Parece que todos nesta lista eliminaron a súa conta." }, + "open_tweet_newtwitter": { "message": "Abrir chío no novo Twitter" }, + "black_mode_link": { "message": "Ligazón modo negro", "note": "You can name this OLED mode too" }, + "custom_mode_link": { "message": "Ligazón modo personalizado" }, + "tweet_verb": { "message": "Chío", "description": "Used for tweet verb.", "example": "->Tweet<- #itsokay" }, + "do_you_want_to_tweet": { "message": "Queres chiar \"$TWEET_TEXT$\"?", "placeholders": { "tweet_text": { "content": "it's okay" } } }, + "user_protected" : { "message": "Os chíos desta conta están protexidos." }, + "follow_to_see": { "message": "Só os seguidores confirmados teñen acceso aos chíos e ao perfil completo de @$SCREEN_NAME$. Preme o botón \"Seguir\" para enviar unha solicitude de seguimento.", "placeholders": { "screen_name": { "content": "dimden" } } }, + "copy_tweet_links_as": { "message": "Copiar ligazóns de chíos como", "example": "->Copy links as<- vxtwitter.com" }, + "use_new_icon": { "message": "Usar o novo logotipo como icona de pestana" }, + "update_timeline_automatically": { "message": "Actualizar a cronoloxía automaticamente cando haxa novos chíos." }, + "chrono_no_retweets": { "message": "Cronolóxico inverso (sen rechouchíos)" }, + "chrono_retweets": { "message": "Cronolóxico inverso (só rechouchíos)" }, + "hide_trends": { "message": "Ocultar tendencias" }, + "hide_wtf": { "message": "Ocultar \"A quen seguir\"" }, + "hide_likes": { "message": "Ocultar contador de gústames, rechouchíos e respostas nos chíos" }, + "hide_followers": { "message": "Ocultar contador de seguidores" }, + "block_sure_desc": { "message": "Non poderá seguirte ou ver os teus chíos, e ti non verás chíos ou notificacións de @$SCREEN_NAME$.", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "blocked_by_user" : { "message": "@$SCREEN_NAME$ bloqueoute", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "why_you_cant_see_block_user": { "message": "Non podes seguir ou ver os chíos de @$SCREEN_NAME$'.", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "you_blocked_user": { "message": "Bloqueaches a @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "do_you_want_see_blocked_user": { "message": "Estás seguro de que queres ver estos chíos? Ver os chíos non desbloqueará a @$SCREEN_NAME$.", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "I_want_see_blocked_user": { "message": "Si, ver perfil" }, + "logout_title": { "message": "Estás seguro de que queres saír?" }, + "logout_desc_1": { "message": "OldTwitter só funciona cando inicias sesión." }, + "logout_desc_2": { "message": "Se non tes outras contas na lista serás redirixido á páxina de inicio de sesión. Estás seguro?" }, + "logout_button": { "message": "Saír da conta" }, + "disable_personalized_trends": { "message": "Desactivar tendencias personalizadas" }, + "show_bookmark_count": { "message": "Mostrar contador de Elementos gardados nos tweets" }, + "bookmarks_count": { "message": "Elementos gardados", "description": "Used for bookmarks count." }, + "remove_bookmark": { "message": "Eliminar Elemento gardado" }, + "hide_community_notes": { "message": "Ocultar as notas da comunidade" }, + "disable_gif_autoplay": { "message": "Desactivar a reprodución automática de GIFs" }, + "hide_tweet": { "message": "Ocultar chío" }, + "unhide_tweet": { "message": "Mostrar chío" }, + "hide_tweet_sure": { "message": "Estás seguro de que queres ocultar este chío?" }, + "see_hidden_replies": { "message": "Ver respostas ocultas" }, + "bookmarked_tweet": { "message": "Chío engadido a Elementos gardados" }, + "unbookmarked_tweet": { "message": "Chío eliminado de Elementos gardados" }, + "muted_convo": { "message": "Conversa silenciada" }, + "unmuted_convo": { "message": "A conversa xa non está silenciada" }, + "show_media_count": { "message": "Amosar contador de multimedia nos perfís" }, + "media": { "message": "Multimedia", "note": "Keep this short" }, + "pin_profile_on_navbar": { "message": "Ancorar ligazón do perfil na barra de navegación" }, + "pin_bookmarks_on_navbar": { "message": "Ancorar ligazón de Elementos gardados na barra de navegación" }, + "pin_lists_on_navbar": { "message": "Ancorar ligazón de Listas na barra de navegación" }, + "me": { "message": "Perfil", "description": "You should probably use word 'Profile' in your language" }, + "tweet_text_font": { "message": "Fonte de texto do tweet" }, + "use_old_default_profile": { "message": "Establecer a imaxe de perfil predeterminada en Ovo" }, + "colors": { "message": "Cores" }, + "enable_hashflags": { "message": "Activar iconas de hashtag (pode ralentizar un pouco a carga da páxina)" }, + "content_warning": { "message": "Advertencia de contido: $WARNINGS$", "placeholders": { "warnings": { "content": "Graphic violence" } } }, + "graphic_violence": { "message": "Violencia gráfica" }, + "adult_content": { "message": "Desnudez" }, + "sensitive_content": { "message": "Contido sensible" }, + "uncensor_graphic_violence_automatically": { "message": "Amosar automaticamente o contido con advertencia de violencia gráfica" }, + "uncensor_adult_content_automatically": { "message": "Amosar automaticamente o contido con advertencia de desnudez" }, + "uncensor_sensitive_content_automatically": { "message": "Amosar automaticamente o contido con advertencia de contido sensible" }, + "replying_to_user": { "message": "Respondendo a $SCREEN_NAME$", "description": "Do not add '@'", "placeholders": { "screen_name": { "content": "@CoolPerson2000" } } }, + "content_warnings": { "message": "Avisos de contido" }, + "transparency": { "message": "Transparencia", "note": "Color" }, + "reset": { "message": "Restablecer" }, + "reset_all": { "message": "Restablecer todo" }, + "import": { "message": "Importar", "note": "Verb" }, + "export": { "message": "Exportar", "note": "Verb" }, + "reset_colors_sure": { "message": "Seguro que queres restablecer todas as cores?" }, + "navbar": { "message":"Barra de navegación", "description":"Setting Text"}, + "sidebar": { "message":"Barra lateral", "description":"Setting Text"}, + "advanced_options": { "message": "Opcións avanzadas", "description": "Setting Text"}, + "advanced_colors": { "message": "Cores avanzadas", "description": "Setting Text"}, + "accessibility": { "message": "Accesibilidade", "description": "Setting Text"}, + "tweets_and_timeline": { "message": "Chíos e Cronoloxía", "description": "Setting Text"}, + "dark_mode_setting": { "message": "Modo escuro", "description": "Setting Text"}, + "old_twitter_look": { "message": "Aspecto do Twitter vello", "description": "Setting Text"}, + "content_you_see": { "message": "Contido que ves", "description": "Setting Text"}, + "use_old_style_reply": { "message": "Empregar o antigo estilo de mencións"}, + "algov2": { "message": "Por algoritmo (\"Para ti\")" }, + "chrono_help": { "message": "Cronoloxía inversa clásica (\"Seguindo\"), mostra os chíos e rechouchíos recentes sen engadir nada máis." }, + "chrono_no_retweets_help": { "message": "O mesmo que a primeira, pero sen rechouchíos." }, + "chrono_retweets_help": { "message": "O mesmo que a primeira, pero só mostrando rechouchíos." }, + "chrono_social_help": { "message": "Unha mestura de cronoloxía inversa e algorítmica, mostrando ocasionalmente 'a alguén gustoulle' e 'alguén segue a' entre chíos ordeados cronolóxicamente." }, + "algo_help": { "message": "Cronoloxía por algoritmo antiga, mostra chíos que Twitter pensa que che gustarán. A versión 1 é a máis antiga desta cronoloxía, non parece que teá ningún límite de visualización (ou é moi alto) pero non ten etiquetas explicando por qué se engadiu á cronoloxía." }, + "algov2_help": { "message": "Cronoloxía algorítmica (\"Para ti\"), mostra chíos que Twitter pensa que che gustarán." }, + "import_settings": { "message": "Importar axustes" }, + "export_settings": { "message": "Exportar axustes" }, + "import_style_settings": { "message": "Importar estilo" }, + "export_style_settings": { "message": "Exportar estilo" }, + "reset_settings": { "message": "Restablecer axustes" }, + "reset_settings_sure": { "message": "Seguro que queres restablecer todos os axustes?" }, + "clear_caches": { "message": "Borrar caché" }, + "hide_non_replies": { "message": "Ocultar chíos que non sexan respostas" }, + "profile_custom_css": { "message": "CSS do perfil pesonalizado" }, + "pccss_not_eligible": { "message": "Neste instante non tes acceso á personalización do CSS do perfil .

Se queres un perfil guai con tipografía personalizada, cores, fondos e demáis elementos que todo o mundo poderá ver, podes apoiar a extensión (non só doazóns).

Fai clic en here para saber máis." }, + "pccss_eligible": { "message": "Tes acceso á personalización do CSS do perfil!" }, + "pccss_congrats": { "message": "Noraboa, proporcionóuseche acceso á personalización do CSS do perfil! Só unha porcentaxe moi pequena dos usuarios de OldTwitter teñen acceso, desfruta e segue sendo xenial!" }, + "yay": { "message": "Dalle, meu!" }, + "light_mode_vars": { "message": "Variables en modo claro" }, + "dark_mode_vars": { "message": "Variables en modo escuro" }, + "css_theme_hint": { "message": "Por favor, non publiques estilos que fagan dano á vista (como facer o botón de Seguir moi grande ou cousas así), perderás o acceso se o fas. Proba sempre como queda o teu estilo en ámbolos modos, claro e escuro.

O teu CSS sobrescribirá calquera estilo local que o usuario crease.

Só podes empregar i.imgur.com para as imaxes e fonts.googleapis.com para as tipografías (e tipografías incluídas aquí).

Podes ver unha lista de variables CSS aquí.

Para axustar un tema específico podes empregar .body-dark, .body-pitch-black (o modo escuro tamén inclúe as clases .body-dark) e .body-light." }, + "profile_colors_moved": { "message": "A sincronización de cor das ligazóns foi trasladada ao teu perfil (o botón con forma de lapis á esquerda do botón de Editar perfil)." }, + "click_here_more_info": { "message": "Preme aquí para máis información" }, + "profile_must_be_public_to_auth": { "message": "O teu perfil debe ser público para sincronizar a primeira vez, a continuación podes volver a poñelo privado." }, + "save_draft": { "message": "Gardar borrador", "note": "Try to keep this short" }, + "load_draft": { "message": "Cargar borrador", "note": "Try to keep this short" }, + "draft_saved": { "message": "Borrador gardado!" }, + "draft_loaded": { "message": "Borrador cargado!" }, + "no_draft": { "message": "Aínda non tes ningún borrador gardado!" }, + "invalid_auth_token": { "message": "O teu token de actualización non era válido e foi eliminado. Podes volver a intentalo, se este erro persiste contacta con @dimden." }, + "css_set": { "message": "O CSS foi aplicado correctamente!" }, + "error_setting_css": { "message": "Erro ao aplicar o CSS" }, + "load": { "message": "Cargar" }, + "disable_profile_customizations": { "message": "Desactivar a personalización do perifl" }, + "replying_to_and": { "message": " e a", "description": "For some languages that use address terms", "example": "Replying to @A-> and <-@B, @C" }, + "replying_to_comma": { "message": ", ", "description": "For some languages that use address terms", "example": "Replying to @A and @B->, <-@C" }, + "twitter": { "message": "Twitter" }, + "move_navbar_to_bottom": { "message": "Movela barra de navegación á parte inferior" }, + "styled_profile": { "message": "Perfil estilizado" }, + "open_notifs_as_modal": { "message": "Abrir notificacións como modal", "description": "Modal is a small window that opens on top of page"}, + "clear_ot_token": { "message": "Limpar token de OldTwitter" }, + "enable_iframe_navigation": { "message": "Activar navegación experimental que preserva a páxina, isto permitirá facer clic en ligazóns e volver á páxina anterior sen recargar. Isto é experimental e pode fallar e ser lento." }, + "style_your_profile": { "message": "Personaliza o teu perfil aquí!" }, + "modern_ui": { "message": "Usar o deseño de Twitter de 2018, inclúe botóns e símbolos redondeados" }, + "show_exact_values": { "message": "Amosar o número exacto de rechouchíos, 'gústames', seguidores, etc." }, + "hide_timeline_types": { "message": "Ocultar o interruptor de tipo de cronoloxía na páxina de inicio" }, + "autotranslation": { "message": "Autotradución" }, + "autotranslation_mode": { "message": "Modo de autotradución de chíos" }, + "translate_in_list": { "message": "Traducir cando estea na lista de idiomas" }, + "translate_not_in_list": { "message": "Traducir cando non estea na lista de idiomas" }, + "language_list": { "message": "Lista de idiomas" }, + "select_language": { "message": "Seleccionar idioma" }, + "mute_videos": { "message": "Silenciar vídeos por defecto" }, + "dont_pause_videos": { "message": "Non pausar vídeos ao desprazarse fóra da vista" }, + "delete_for_you": { "message": "Eliminar para ti", "description": "DM Message Delete menu" }, + "show_user_previews_on_mobile": { "message": "Mostrar previsualizacións de usuarios ao manter premido (isto pode ser molesto)", "description": "This option only appears on mobile" }, + "separate_text": { "message": "Separar texto", "description": "This option appears in three-dot menu of tweets only on mobile and makes text bigger and adds padding on top and bottom on tap" }, + "leave_conversation": { "message": "Estás seguro de que queres abandonar/eliminar esta conversa?" }, + "autotranslation_help1": { "message": "Esta función pode atopar os chíos e activar a tradución automaticamente, sen ter que premer o botón manualmente." }, + "autotranslation_help2": { "message": "Para utilizala, selecciona o modo de autotradución e establece a lista de idiomas. Os chíos que cumpran as condicións serán traducidos automaticamente." }, + "autotranslation_help3": { "message": "Especificamente:" }, + "autotranslation_help4": { "message": "\"Traducir cando estea na lista de idiomas\" sen idiomas configurados fai que a función se desactive (por defecto)." }, + "autotranslation_help5": { "message": "\"Traducir cando non estea na lista de idiomas\" sen idiomas configurados fai que se traduza cada tweet. É mellor engadir os idiomas que coñeces para non traducilos innecesariamente." }, + "go_back_to_top": { "message": "Volver ao inicio" }, + "follow_system_settings_dark_mode": { "message": "Seguir a configuración do sistema para o modo escuro" }, + "replacer_post_to_tweet": { "message": "publicación->chío", "description": "This string will be used to replace word 'post' with 'tweet' in various places. If, in your language, this replacement is very context-based, you can add multiple substitutions and separate them with a | (example: posts->tweet|post->tweet). On the left side of a substitution, use the word for 'post' that Twitter officially uses in your language (open notifications and you'll probably see 'someone liked your post' in your language, find that word (in this case 'post') and place it on the left side, before the '->', and then on the right side insert the translated 'tweet' word, so when replaced it'll look like 'someone liked your tweet'. The substitution terms on the left can also be regex expressions (don't insert them as '/expression/g' though, just 'expression'). For example, 'epic$' will only replace the word 'epic' if it's at the end of a sentence (because the $ character indicates the end of a string in regex). However, if, even after all these substitutions, it sounds bad in your language, you can ignore this." }, + "replacer_repost_to_retweet": { "message": "repostar->rechouchío", "description": "If 'retweet', either the noun or the verb, is different than 'tweet' in your language, you should change this. If this replacement is very context-based in your language, you can also add multiple substitutions and separate them with a | (example: repost->retweet|ripostato->ritwittato). The substitution terms on the left can also be regex expressions (don't insert them as '/expression/g' though, just 'expression'). For example, 'epic$' will only replace the word 'epic' if it's at the end of a sentence (because the $ character indicates the end of a string in regex)." }, + "mute_user": { "message": "Silenciar @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "unmute_user": { "message": "Deixar de silenciar @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "muted_user": { "message": "Silenciado @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "unmuted_user": { "message": "Desilenciado @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "mmdd": { "message": "$MONTH$ $DATE$", "description": "July 1st", "placeholders": { "month": { "content": "July" }, "date": { "content": "1st" } }}, + "mmddyy": { "message": "$MONTH$ $DATE$, $YEAR$", "description": "July 1st, 2015", "placeholders": { "year": { "content": "2015" },"month": { "content": "July" }, "date": { "content": "1st" } }}, + "yyyy": { "message": "$YEAR$", "description": "2015", "placeholders": { "year": { "content": "2015" } } }, + "localize_digit": { "message" : "Usar a notación de catro díxitos asiática. (Só CJK)", "description": "Non-CJK dont need to translate this message, just copy and paste"}, + "replacer_liked_to_favorited": { "message": "gustado->favorito", "description": "This string will be used to replace word 'liked' with 'favorited' in various places. If, in your language, this replacement is very context-based, you can add multiple substitutions and separate them with a | (example: liked->favorited|likeeeeeeeeed->favoriteeeeeeeeed). On the left side of a substitution, use the word for 'liked' that Twitter officially uses in your language (open notifications and you'll probably see 'someone liked your tweet' in your language, find that word (in this case 'liked') and place it on the left side, before the '->', and then on the right side insert the translated 'favorited' word, so when replaced it'll look like 'someone favorited your tweet'. The substitution terms on the left can also be regex expressions (don't insert them as '/expression/g' though, just 'expression'). For example, 'epic$' will only replace the word 'epic' if it's at the end of a sentence (because the $ character indicates the end of a string in regex). However, if, even after all these substitutions, it sounds bad in your language, you can ignore this." }, + "favorited_by": { "message": "Marcado como favorito por" }, + "disable_retweet_hotkey": { "message": "Desactivar o atallo de teclado para rechouchíar (T)" }, + "disable_like_hotkey": { "message": "Desactivar o atallo de teclado para gústame (L)" }, + "enable_extension_compatibility": { "message": "Activar o modo de compatibilidade de extensións (só activar se queres facer que algunha extensión funcione con OldTwitter, se aínda non funciona (e probablemente non funcione) desactiva isto de novo, porque esta opción pode facer que a páxina teña erros/retrasos)" }, + "enter_custom_font_name": { "message": "Introduce o nome dunha fonte personalizada" }, + "disable_data_saver": { "message": "Desactivar o aforro de datos para a conexión móbil", "description": "This option only appears on mobile" }, + "mobile": { "message": "Móbil", "description": "Title for mobile device settings"}, + "disable_accept_type": { "message": "Desactiva o tipo de aceptación ao cargar contido multimedia. Isto soluciona o problema de non poder acceder a todas as imaxes nalgunhas versións de Android.", "description": "This option only appears on mobile" }, + "manage_searches": { "message": "Xestionar buscas" }, + "add_search": { "message": "Engadir buscas" }, + "pinned_searches": { "message": "Buscas fixadas" }, + "show_follower_counts_in_lists": { "message": "Amosar o número de seguidores do usuario na páxina de seguidores/seguidos." }, + "not_possible_to_see_unfollowers": { "message": "Por desgraza, non é posíbel velos non seguidores para contas con máis de 50.000 seguidores." }, + "sort_by_follow_date": { "message": "Ordenar por data (inexacto)" }, + "sort_by_followers": { "message": "Ordenar polo número de seguidores" }, + "sort_by_following": { "message": "Ordenar polo número de seguidos" }, + "sort_by_name": { "message": "Ordenar por nome" }, + "sort_by_username": { "message": "Ordenar por nome de usuario" }, + "sort_by_tweets": { "message": "Ordenar polo número de chíos" }, + "sort_by_created": { "message": "Ordenar pola data de creación" }, + "sort_by_random": { "message": "Orden aleatorio" }, + "loading_all_followers": { "message": "Cargando todos os seguidores (isto ocorrerá unha vez cada 24 horas)..." }, + "apply": { "message": "Solicitar" }, + "filter": { "message": "Filtrar" }, + "ascending": { "message": "Ascendente" }, + "descending": { "message": "Descendente" }, + "search_by_name": { "message": "Procura polo nome" }, + "search_by_description": { "message": "Procura pola descrición" }, + "only_show_people_you_follow": { "message": "Amosar só as persoas que segues" }, + "only_show_people_with_followers": { "message": "Amosar só persoas con polo menos $NUMBER$ seguidores", "placeholders": { "number": { "content": "-1" } } }, + "only_show_people_with_age": { "message": "Amosar só persoas cunha conta que sexa polo menos $NUMBER$ días de antigüidade", "placeholders": { "number": { "content": "-1" } } }, + "page": { "message": "Páxina" }, + "update": { "message": "Actualización" }, + "show_quote_count": { "message": "Amosar número de citas nos chíos" }, + "uploading": { "message": "Cargando" }, + "finalization": { "message": "Finalización" }, + "processing": { "message": "Procesamento" }, + "quotes": { "message": "Citas" }, + "share_tweet_in_dms": { "message": "Comparte o chío por MD" }, + "share_tweet_to": { "message": "Compartir chío con..." }, + "disable_find_hotkey": { "message": "Desactivalas teclas rápidas (F)" }, + "uploaded": { "message": "Cargado" }, + "hide_unfollowers_page": { "message": "Ocultar a páxina de non seguidores" }, + "custom_font": { "message": "" }, + "current_font": { "message": "Fonte actual: $FONT$", "placeholders": { "font": { "content": "Arial" } } }, + "user_sent_photo": { "message": "$NAME$ enviou unha foto", "placeholders": { "name": { "content": "Display Name" } } }, + "user_sent_video": { "message": "$NAME$ enviou un vídeo", "placeholders": { "name": { "content": "Display Name" } } }, + "user_reacted_message": { "message": "$NAME$ reaccionou á mensaxe", "placeholders": { "name": { "content": "Display Name" } } }, + "you_sent_photo": { "message": "Enviaches unha foto" }, + "you_sent_video": { "message": "Enviaches un vídeo" }, + "you_reacted_message": { "message": "Reaccionaches á mensaxe" }, + "user_added": { "message": "$A1$$USER_WHO_ADDED$$A_END$ engadiu a $A2$$USER_WHO_JOINED$$A_END$", "description": "This is used when a group admin adds a user to the group chat (display names)", "placeholders": { + "user_who_added": { "content": "Group Admin" }, + "user_who_joined": { "content": "Group Admin's Friend" }, + "a1": { "content": "" }, + "a2": { "content": "" }, + "a_end": { "content": "" } + } }, + "user_left": { "message": "$A_START$$NAME$$A_END$ saíu", "description": "This is used when a user in a group leaves (display name)", "placeholders": { + "name": { "content": "Group Admin's Friend" }, + "a_start": { "content": "" }, + "a_end": { "content": "" } + } }, + "user_changed_group_photo": { "message": "$A_START$$NAME$$A_END$ cambiou a foto do grupo", "description": "This is used when a user in a group changes the group photo (display name)", "placeholders": { + "name": { "content": "Group Admin" }, + "a_start": { "content": "" }, + "a_end": { "content": "" } + } }, + "user_changed_group_name": { "message": "$A_START$$NAME$$A_END$ cambiou o nome do grupo a $GROUP_NAME$", "description": "This is used when a user in a group changes the group name (display name)", "placeholders": { + "name": { "content": "Group Admin" }, + "group_name": { "content": "Example Group" }, + "a_start": { "content": "" }, + "a_end": { "content": "" } + } }, + "user_added_you_inbox": { "message": "$NAME$ engadiute", "description": "This is used when a group admin adds you to the group chat (display names, inbox list only)", "placeholders": { + "name": { "content": "Group Admin" } + } }, + "user_added_you_msg": { + "message": "$A_START$$NAME$$A_END$ engadiute
Hai $NUMBER$ persoas máis neste grupo", + "description": "This is used when a group admin adds you to the group chat (display names, messages only)", + "example": "Group Admin added you
There are 6 other people in this group", + "placeholders": { + "name": { "content": "Group Admin" }, + "number": { "content": "6" }, + "a_start": { "content": "" }, + "a_end": { "content": "" } + } + }, + "accepted_conversation": { "message": "Conversa aceptada" }, + "anniversary_tweet": { "message": "Lembras cando te uniches a Twitter? Eu si!\n#OMeuAniversarioDeTwitter" }, + "you_shared_tweet": { "message": "Compartiches un chío" }, + "user_shared_tweet": { "message": "$NAME$ compartiu un chío", "placeholders": { "name": { "content": "Display Name" } } }, + "transition_profile_banner": { "message": "Usar transición no banner de perfil" }, + "custom_downloadtemplate": { "message": "Modelo de descarga personalizado" }, + "custom_downloadtemplate_text": { "message": "Permite personalizar os nomes dos arquivos multimedia descargados dun chío." }, + "save_downloadtemplate": { "message": "Gardar modelo de descarga" }, + "custom_downloadtemplate_hintName1": { "message": "{user_name}: Nome de usuario." }, + "custom_downloadtemplate_hintName2": { "message": "{user_screen_name}: Nome da conta de usuario. (Example: @dril)" }, + "custom_downloadtemplate_hintTime": { "message": "{timestamp}: Data e hora da publicación do chío." }, + "custom_downloadtemplate_hintExtension": { "message": "{extension}: Extensión do arquivo do chío descargada." }, + "custom_downloadtemplate_hintID": { "message": "{id}: ID do chío." }, + "custom_downloadtemplate_hintIndex": { "message": "{index}: Índice para cada arquivo a descargar. (para publicacións con varios arquivos multimedia)" }, + "custom_downloadtemplate_hintFilename": { "message": "{filename}: Nome orixinal do ficheiro de pbs.twimg.com." }, + "nonexistent_user": { "message": "Esta conta non existe" }, + "nonexistent_user_desc": { "message": "Tenta procurar outra." }, + "suspended_user": { "message": "Conta suspendida" }, + "suspended_user_desc": { "message": "O perfil que estás a intentar ver foi suspendido." }, + "show_boring_indicators": { "message": "Amosar indicador na páxina de seguidores/seguindo se o último tweet da persoa é un retweet/cita/non existente/vello" } +} diff --git a/_locales/he/messages.json b/_locales/he/messages.json index 9a8d19cd..1e8565f7 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -509,6 +509,18 @@ "edit_twitter_settings": { "message": "ערוך הגדרות טוויטר " }, + "display_sensitive_content": { + "message": "הסר באופן אוטומטי צנזורה ממדיה שסומנה כתוכן רגיש" + }, + "uncensor_graphic_violence_automatically": { + "message": "הסר באופן אוטומטי צנזורה ממדיה עם אזהרת אלימות גרפית" + }, + "uncensor_adult_content_automatically": { + "message": "הסר באופן אוטומטי צנזורה ממדיה עם אזהרת עירום" + }, + "uncensor_sensitive_content_automatically": { + "message": "הסר באופן אוטומטי צנזורה ממדיה עם אזהרת תוכן רגיש" + }, "refresh_tabs": { "message": "רענן חלוניות כדי להחל הגדרות" }, @@ -846,5 +858,8 @@ "no_big_font": { "message": "ביטול גופן מוגדל עבור ציוצים קצרים/פופולריים" }, "mmdd":{ "message": "$MONTH$ $DATE$", "description":"July 1st", "placeholders": { "month": { "content": "July" }, "date": { "content": "1st" } }}, "mmddyy":{ "message": "$MONTH$ $DATE$, $YEAR$", "description":"July 1st, 2015", "placeholders": { "year": { "content": "2015" },"month": { "content": "July" }, "date": { "content": "1st" } }}, - "yyyy":{ "message": "$YEAR$", "description":"2015", "placeholders": { "year": { "content": "2015" } } } + "yyyy":{ "message": "$YEAR$", "description":"2015", "placeholders": { "year": { "content": "2015" } } }, + "hide_original_languages":{ + "message": "הסר טקסט מקורי כאשר ציוצים מתורגמים" + } } diff --git a/_locales/id/messages.json b/_locales/id/messages.json index ccc354a9..0e0243eb 100644 --- a/_locales/id/messages.json +++ b/_locales/id/messages.json @@ -404,10 +404,6 @@ "block_sure_desc": { "message": "Mereka tidak dapat mengikuti atau melihat tweet Anda, dan Anda tidak akan melihat tweet atau notifikasi dari @$SCREEN_NAME$.", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "blocked_by_user": { "message": "@$SCREEN_NAME$ memblokir Anda", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "why_you_cant_see_block_user": { "message": "Anda tidak dapat mengikuti atau melihat tweet @$SCREEN_NAME$.", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, - "nonexistent_user": { "message": "Akun ini tidak tersedia" }, - "nonexistent_user_desc": { "message": "Coba cari yang lain." }, - "suspended_user": { "message": "Akun ditangguhkan" }, - "suspended_user_desc": { "message": "Profil yang Anda tujui telah ditangguhkan. Untuk kembali ke linimasa beranda Anda, klik di sini." }, "you_blocked_user": { "message": "Anda memblokir @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "do_you_want_see_blocked_user": { "message": "Anda yakin ingin melihat tweet pengguna ini? Melihat tweet tidak akan membuka blokir @$SCREEN_NAME$.", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "I_want_see_blocked_user": { "message": "Ya, lihat profil" }, @@ -643,5 +639,11 @@ "custom_downloadtemplate_hintTime": { "message": "{timestamp}: Tanggal dan waktu diunggahnya tweet." }, "custom_downloadtemplate_hintExtension": { "message": "{extension}: Jenis berkas tweet yang diunduh." }, "custom_downloadtemplate_hintID": { "message": "{id}: ID tweet." }, - "custom_downloadtemplate_hintIndex": { "message": "{index}: Indeks untuk setiap berkas yang akan diunduh. (untuk postingan dengan beberapa media)" } + "custom_downloadtemplate_hintIndex": { "message": "{index}: Indeks untuk setiap berkas yang akan diunduh. (untuk postingan dengan beberapa media)" }, + "custom_downloadtemplate_hintFilename": { "message": "{filename}: Nama berkas asli dari pbs.twimg.com." }, + "nonexistent_user": { "message": "Akun ini tidak tersedia" }, + "nonexistent_user_desc": { "message": "Coba cari yang lain." }, + "suspended_user": { "message": "Akun ditangguhkan" }, + "suspended_user_desc": { "message": "Profil yang Anda tujui telah ditangguhkan. Untuk kembali ke linimasa beranda Anda, klik di sini." }, + "show_boring_indicators": { "message": "Tampilkan indikator pada laman pengikut/mengikuti jika tweet terakhir pengguna merupakan retweet/kutipan/hilang/lama" } } diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index e0444be3..4c0ff090 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -636,12 +636,19 @@ "user_shared_tweet": { "message": "$NAME$ 分享了一则推文", "placeholders": { "name": { "content": "Display Name" } } }, "transition_profile_banner": { "message": "将过渡效果应用于个人资料横幅" }, "custom_downloadtemplate": { "message": "自定义下载文件名格式" }, - "custom_downloadtemplate_text": { "message": "允许您自定义下载推文媒体时的文件名格式。" }, + "custom_downloadtemplate_text": { "message": "自定义下载推文媒体时默认的文件名格式。" }, "save_downloadtemplate": { "message": "保存文件名格式" }, "custom_downloadtemplate_hintName1": { "message": "{user_name}: 用户名称(昵称)。" }, - "custom_downloadtemplate_hintName2": { "message": "{user_screen_name}: 用户名。(示例:@dril)" }, + "custom_downloadtemplate_hintName2": { "message": "{user_screen_name}: 用户名(示例:@dril)。" }, "custom_downloadtemplate_hintTime": { "message": "{timestamp}: 推文的发送日期和时间。" }, "custom_downloadtemplate_hintExtension": { "message": "{extension}: 下载的文件扩展名。" }, "custom_downloadtemplate_hintID": { "message": "{id}: 推文的 ID。" }, - "custom_downloadtemplate_hintIndex": { "message": "{index}: 每个待下载文件的索引号。(仅适用于具有多个媒体的推文)" } + "custom_downloadtemplate_hintIndex": { "message": "{index}: 每个待下载文件的索引号(仅适用于具有多个媒体的推文)。" }, + "custom_downloadtemplate_hintFilename": { "message": "{filename}: 来自 pbs.twimg.com 的原始文件名。" }, + "nonexistent_user": { "message": "此账号不存在" }, + "nonexistent_user_desc": { "message": "尝试搜索另一个账号。" }, + "suspended_user": { "message": "账号已被冻结" }, + "suspended_user_desc": { "message": "您正在查看的个人资料页已被冻结。" }, + "show_boring_indicators": { "message": "在关注中/粉丝页面的用户昵称后方添加一个表示其最近推文的图标
图标示意: 转推的 / 引用的 / 不存在的 / 有段时间(一周以上)的"}, + "hide_original_languages":{"message": "翻译推文后隐藏原文" } } diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 58acf828..89da9bf0 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -52,7 +52,7 @@ "unfollow": { "message": "取消跟隨" }, "follow_user": { "message": "跟隨 @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "unfollow_user": { "message": "取消跟隨 @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, - "thank_you_follow": { "message": "感謝你跟隨我!!" }, + "thank_you_follow": { "message": "感謝你的跟隨!!" }, "loading_tweets": { "message": "正在載入推文..." }, "retweeted": { "message": "已轉推", "example": "CoolPerson2000 ->retweeted<-" }, "see_new_tweets": { "message": "顯示新推文" }, @@ -125,11 +125,11 @@ "from_list": { "message": "從列表中加入/移除" }, "share_user": { "message": "分享個人資料" }, "copy_profile_link": { "message": "複製個人資料連結" }, - "remove_from_followers": { "message": "從粉絲中刪除", "description": "This button unfollows person from you, not unfollows you from them" }, - "remove_from_followers_sure": { "message": "你確定要從粉絲中移除 @$SCREEN_NAME$ 嗎?", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, - "remove_from_followers_warn": { "message": "此動作是把對方從你的粉絲中移除,而不是你取消跟隨對方。" }, - "remove_from_followers_button": { "message": "讓對方取消跟隨我" }, - "able_in_future": { "message": "他們以後可以再次關注你。" }, + "remove_from_followers": { "message": "移除此粉絲", "description": "This button unfollows person from you, not unfollows you from them" }, + "remove_from_followers_sure": { "message": "你確定要把 @$SCREEN_NAME$ 從你的粉絲名單中移除嗎?", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "remove_from_followers_warn": { "message": "對方將從你的粉絲名單中移除(不會被你取消跟隨)。" }, + "remove_from_followers_button": { "message": "讓對方停止跟隨我" }, + "able_in_future": { "message": "他們將來可以再次跟隨你。" }, "block_sure": { "message": "你確定要封鎖 @$SCREEN_NAME$ 嗎?", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "add": { "message": "加入" }, "joined": { "message": "加入於", "example": "->Joined<- April 30, 2019" }, @@ -149,7 +149,7 @@ "save_search": { "message": "儲存搜尋" }, "remove_search": { "message": "刪除已儲存的搜尋" }, "try_again": { "message": "再試一次" }, - "no_results": { "message": "未找到結果。嘗試更改左側的某些字詞?" }, + "no_results": { "message": "沒有找到任何結果。嘗試更改左側的某些字詞?" }, "words": { "message": "字詞" }, "all_these_words": { "message": "包含此處所有字詞" }, "all_these_words_example": { "message": "範例:what’s happening - 同時包含「what’s」和「happening」" }, @@ -161,12 +161,12 @@ "not_these_words_example": { "message": "範例:cats dogs - 不包含「cats」和「dogs」" }, "user": { "message": "使用者" }, "from_this_user": { "message": "來自此使用者" }, - "from_this_user_example": { "message": "範例:@dimden - 來自此使用者 dimden" }, + "from_this_user_example": { "message": "範例:@dimden · 推文發送自 @dimden" }, "mentions_this_user": { "message": "提及此使用者" }, - "mentions_this_user_example": { "message": "範例:@dimden · 提及此使用者 dimden" }, + "mentions_this_user_example": { "message": "範例:@dimden · 推文中提及到 @dimden" }, "interactions": { "message": "參與" }, "min_replies": { "message": "最低回覆次數" }, - "min_replies_example": { "message": "範例:10 - 含有至少 10 則回覆的推文" }, + "min_replies_example": { "message": "範例:10 · 含有至少 10 則回覆的推文" }, "min_retweets": { "message": "最低轉推次數" }, "min_retweets_example": { "message": "例如:10 · 含有至少 10 次轉推的推文" }, "min_favorites": { "message": "最低收藏次數" }, @@ -176,7 +176,7 @@ "until": { "message": "到" }, "twitter_settings": { "message": "Twitter 設定" }, "oldtwitter_settings": { "message": "OldTwitter 設定" }, - "edit_twitter_settings": { "message": "編輯 Twitter 設定" }, + "edit_twitter_settings": { "message": "修改 Twitter 設定" }, "refresh_tabs": { "message": "重新載入分頁以套用設定" }, "chrono": { "message": "經典時間軸" }, "chrono_social": { "message": "經典時間軸(包含你跟隨的人喜歡的推文)" }, @@ -190,13 +190,13 @@ "dark_mode": { "message": "深色主題" }, "disable_hotkeys": { "message": "停用所有快捷鍵" }, "hotkeys_list": { "message": "在此處查看快捷鍵列表" }, - "save_preferred_quality": { "message": "記住偏好的影片畫質。
記住你偏好的影片畫質並自動套用(或選擇最接近的畫質)。
停用時,將自動選擇最高畫質。" }, + "save_preferred_quality": { "message": "記住偏好的影片畫質。
記住你偏好的影片畫質並自動套用(或選擇最接近的畫質)。
停用後,將自動選擇最高畫質。" }, "preferred_quality": { "message": "偏好畫質" }, "default_link_color": { "message": "預設連結顏色" }, "font": { "message": "字體" }, "color_sync": { "message": "個人資料顏色設定" }, "by_pressing_sync": { "message": "按下同步按鈕後,你選擇的個人資料顏色將儲存到顏色資料庫,並同步顯示給其他使用 OldTwitter 擴充功能的使用者。" }, - "color_years_ago": { "message": "如果你之前設定過 Twitter 的個人資料顏色(幾年前還有這個功能時),同步將會覆蓋你以前設定的顏色。" }, + "color_years_ago": { "message": "如果你之前設定過 Twitter 的個人資料顏色(在幾年前還有這個功能時),同步將會覆蓋你以前設定的顏色。" }, "sync": { "message": "同步", "note": "Try to keep this short" }, "profile_link_color": { "message": "個人資料顏色" }, "light_mode_link": { "message": "淺色主題連結" }, @@ -215,7 +215,7 @@ "quote_tweets": { "message": "引用推文" }, "see_retweets": { "message": "顯示轉推" }, "reply_to": { "message": "回覆 @$SCREEN_NAME$", "example": "Reply to @CoolPerson2000", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, - "error_loading_tweet": { "message": "載入推文錯誤" }, + "error_loading_tweet": { "message": "載入推文時發生錯誤" }, "direct_messages": { "message": "私訊" }, "mark_all_read": { "message": "全部標記為已讀" }, "send": { "message": "發送", "description": "Max 5 characters, if no word keep it in English" }, @@ -228,7 +228,7 @@ "videos_max": { "message": "影片必須小於 500 MB" }, "images_max": { "message": "相片必須小於 5 MB" }, "max_count": { "message": "你最多只能同時上傳 4 張相片/1 部影片/1 個 GIF 檔案" }, - "alt_text": { "message": "開始撰寫相片的備註" }, + "alt_text": { "message": "開始撰寫相片的附註" }, "vote": { "message": "票", "example": "1 ->vote<-" }, "votes": { "message": "票", "example": "10 ->votes<-" }, "ends_at": { "message": "截止日期在 $DATE$", "example": "Ends at 16th November", "placeholders": { "date": { "content": "16th November" } } }, @@ -236,7 +236,7 @@ "unsupported_video": { "message": "你的瀏覽器不支援播放此影片。" }, "views": { "message": "次查看", "example": "10 ->views<-" }, "reload": { "message": "重新載入" }, - "circle_limited_tweet": { "message": "此推文僅限 @$SCREEN_NAME$ 的好友圈內的人能查看此推文。", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, + "circle_limited_tweet": { "message": "此推文僅限 @$SCREEN_NAME$ 的好友圈成員可以查看。", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "learn_more": { "message": "了解更多" }, "limited_tweet": { "message": "此推文限制只有特定的人們可以回覆。" }, "replies": { "message": "回覆" }, @@ -319,9 +319,9 @@ "unsupported_emoji": { "message": "你的瀏覽器不支援彩色表情符號。" }, "cant_load_emoji": { "message": "無法載入表情符號。" }, "emoji_picker": { "message": "表情符號" }, - "emoji_search_description": { "message": "當搜尋結果可用時,使用上下鍵以選擇結果。" }, + "emoji_search_description": { "message": "當出現搜尋結果時,使用上下鍵選擇,然後按 Enter 鍵來選擇結果。" }, "search_results": { "message": "搜尋結果" }, - "skin_tone_description": { "message": "當展開時,按上下鍵來選擇結果" }, + "skin_tone_description": { "message": "展開後,用上下鍵選擇,然後按 Enter 鍵選擇結果。" }, "skin_tone_label": { "message": "選擇膚色 (目前為 $SKIN_TONE$)", "placeholders": { "skin_tone": { "content": "default" } } }, "skin_tones_label": { "message": "膚色" }, "add_media": { "message": "新增媒體" }, @@ -333,17 +333,17 @@ "location": { "message": "地點" }, "unsent_tweets": { "message": "取消推文" }, "unsent": { "message": "取消推文" }, - "will_send": { "message": "在這個時間發送:" }, + "will_send": { "message": "將在這個時間發送:" }, "schedule": { "message": "已排程的推文" }, "scheduled_success": { "message": "已排程推文!" }, "see_scheduled": { "message": "查看已排程的推文" }, "hasnt_tweeted": { "message": "@$SCREEN_NAME$ 沒有推文", "placeholders": { "screen_name": { "content": "loading" } } }, "when_theyll_tweet": { "message": "當他們有推文時會顯示在這裡。" }, "thank_you2": { - "message": "感謝你使用 OldTwitter!我花了很多時間在維護這個擴充功能,你可以跟隨或是$AT1$贊助$AT2$我。我會非常感謝你!", + "message": "感謝你使用 OldTwitter!我花了很多時間和精力來維護這個擴充功能,你可以透過跟隨或是$AT1$贊助$AT2$來支持我。我會非常感謝你!", "placeholders": { "at1": { "content": "" }, "at2": { "content": "" } } }, - "something_went_wrong": { "message": "出了些問題" }, + "something_went_wrong": { "message": "出了點問題" }, "notifications_error": { "message": "因為某些問題導致無法載入部分通知。" }, "tweet_error": { "message": "因為某些問題導致無法載入部分推文。" }, "error_instructions": { @@ -356,7 +356,7 @@ }, "initialization": { "message": "初始化中" }, "converting": { "message": "轉換中" }, - "time_mode": { "message": "在 19:00-09:00 之間啟用深色主題" }, + "time_mode": { "message": "在 19:00~09:00 之間啟用深色主題" }, "show_original_images": { "message": "總是以最高畫質顯示相片" }, "pitch_black_mode": { "message": "OLED 黑暗主題(僅在啟用深色主題時套用)" }, "hide_retweets": { "message": "隱藏轉推" }, @@ -366,24 +366,24 @@ "dont_autotranslate": { "message": "不要自動翻譯推文" }, "round_avatars": { "message": "圓形頭像" }, "search_user_tweets": { "message": "搜尋使用者推文" }, - "no_tl_tweets": { "message": "你沒有跟隨任何人,所以沒有找到任何推文!
你可以嘗試在側邊欄或設定把時間軸類型設為「推薦演算法」。" }, + "no_tl_tweets": { "message": "你還沒有跟隨任何人,所以找不到任何推文!
考慮在側邊欄或設定把時間軸類型設為「推薦演算法」?" }, "replying_to": { "message": "回覆給", "description": "Used for mention list. Use 'Mentions' if translation sounds bad in your language.", "example": "Replying to: - user1, - user2" }, "display": { "message": "外觀", "description": "Used for display settings (fonts, colors, style, etc)" }, "twitter_blue_checkmarks": { "message": "顯示 X Premium (Twitter Blue) 訂閱者藍勾" }, - "retweet_hotkey_warn": { "message": "你剛剛按了快捷鍵 (T),是否轉推此推文?如果按確定此警告將不會再顯示。" }, + "retweet_hotkey_warn": { "message": "你剛剛按了快捷鍵 (T),是否轉推此推文?確認後將不再顯示此警告。" }, "reply_btn": { "message": "回覆", "description": "Used for reply button." }, "retweet_btn": { "message": "轉推 / 引用推文", "description": "Used for retweet menu button." }, - "like_btn": { "message": "讚 / 取消讚", "description": "Used for like button." }, - "favorite_btn": { "message": "喜歡 / 取消喜歡", "description": "Used for favorite button." }, + "like_btn": { "message": "讚 / 收回讚", "description": "Used for like button." }, + "favorite_btn": { "message": "喜歡 / 收回喜歡", "description": "Used for favorite button." }, "views_count": { "message": "查看次數", "description": "Used for views count." }, "developer_mode": { "message": "開發者模式" }, "copy_user_id": { "message": "複製使用者 ID" }, "copy_tweet_id": { "message": "複製推文 ID" }, "unfollowers": { "message": "取消跟隨你的人", "description": "People that stopped following you" }, "unfollowings": { "message": "你取消跟隨的人", "description": "People that you stopped following" }, - "no_unfollowers": { "message": "目前沒有取消跟隨你的人!" }, + "no_unfollowers": { "message": "目前沒有任何人取消跟隨你!" }, "no_unfollowings": { "message": "你目前沒有取消跟隨任何人!" }, - "recent_unfollow_update": { "message": "取消跟隨清單在十五分鐘內更新過。" }, + "recent_unfollow_update": { "message": "取消跟隨清單已在十五分鐘內更新過。" }, "deleted_accounts": { "message": "看起來在此列表中的所有人都刪除了他們的 Twitter 帳號。" }, "open_tweet_newtwitter": { "message": "在新版 Twitter 中打開此推文" }, "black_mode_link": { "message": "OLED 黑暗主題連結", "note": "You can name this OLED mode too" }, @@ -392,8 +392,8 @@ "do_you_want_to_tweet": { "message": "你是否要發送「$TWEET_TEXT$」?", "placeholders": { "tweet_text": { "content": "it's okay" } } }, "user_protected" : { "message": "這個使用者的推文已受保護。" }, "follow_to_see": { "message": "只有已核准的跟隨者可以查看 @$SCREEN_NAME$ 的推文和完整個人資料。請點擊「跟隨」來要求存取權。", "placeholders": { "screen_name": { "content": "dimden" } } }, - "copy_tweet_links_as": { "message": "複製推文連結為", "example": "->Copy links as<- vxtwitter.com" }, - "use_new_icon": { "message": "使用新圖示" }, + "copy_tweet_links_as": { "message": "複製推文連結時,將域名替換為", "example": "->Copy links as<- vxtwitter.com" }, + "use_new_icon": { "message": "在分頁圖示使用較新的 Logo(小藍鳥,不是 𝕏)" }, "update_timeline_automatically": { "message": "自動更新時間軸" }, "chrono_no_retweets": { "message": "經典時間軸(不含轉推)" }, "chrono_retweets": { "message": "經典時間軸(僅含轉推)" }, @@ -404,16 +404,12 @@ "block_sure_desc": { "message": "他將無法追蹤你和查看你的推文,你也不會看到來自 @$SCREEN_NAME$ 的推文。", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "blocked_by_user" : { "message": "@$SCREEN_NAME$ 已封鎖你", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "why_you_cant_see_block_user": { "message": "你無法追蹤和查看 @$SCREEN_NAME$ 的推文。", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, - "nonexistent_user": { "message": "此帳號不存在" }, - "nonexistent_user_desc": { "message": "嘗試搜尋其他帳號。" }, - "suspended_user": { "message": "此帳號已被停用" }, - "suspended_user_desc": { "message": "你正在嘗試查看的個人資料已被停用。 要返回首頁,請點一下這裡。" }, "you_blocked_user": { "message": "你已封鎖 @$SCREEN_NAME$", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "do_you_want_see_blocked_user": { "message": "是否繼續查看這些推文?你不會因此解除封鎖 @$SCREEN_NAME$。", "placeholders": { "screen_name": { "content": "CoolPerson2000" } } }, "I_want_see_blocked_user": { "message": "是,查看個人資料" }, "logout_title": { "message": "你確定要登出嗎?" }, "logout_desc_1": { "message": "OldTwitter 在登出帳號後無法使用。" }, - "logout_desc_2": { "message": "如果你沒有其他帳號的話將會被導向至登入頁面,是否繼續?" }, + "logout_desc_2": { "message": "如果你沒有登入其他帳號,將會被導向至登入頁面,是否繼續?" }, "logout_button": { "message": "登出" }, "disable_personalized_trends": { "message": "關閉個人化趨勢" }, "show_bookmark_count": { "message": "顯示書籤數量" }, @@ -427,8 +423,8 @@ "see_hidden_replies": { "message": "顯示被隱藏的回覆" }, "bookmarked_tweet": { "message": "推文已新增至書籤" }, "unbookmarked_tweet": { "message": "已從書籤中移除推文" }, - "muted_convo": { "message": "已靜音對話" }, - "unmuted_convo": { "message": "已取消靜音對話" }, + "muted_convo": { "message": "已將此對話靜音" }, + "unmuted_convo": { "message": "已將此對話解除靜音" }, "show_media_count": { "message": "在個人資料上顯示媒體數量" }, "media": { "message": "媒體", "note": "Keep this short" }, "pin_profile_on_navbar": { "message": "在導覽列釘選個人資料連結" }, @@ -438,7 +434,7 @@ "tweet_text_font": { "message": "推文內容字體" }, "use_old_default_profile": { "message": "顯示預設個人照片為球型" }, "colors": { "message": "顏色" }, - "enable_hashflags": { "message": "啟用標籤(Hashtag)圖標,可能會稍微減慢頁面載入速度。" }, + "enable_hashflags": { "message": "啟用標籤(Hashtag)圖示,可能會稍微減慢頁面載入速度。" }, "content_warning": { "message": "內容警告:$WARNINGS$", "placeholders": { "warnings": { "content": "Graphic violence" } } }, "graphic_violence": { "message": "暴力內容" }, "adult_content": { "message": "裸露內容" }, @@ -465,7 +461,7 @@ "content_you_see": { "message": "你可以看到的內容", "description":"Setting Text" }, "use_old_style_reply": { "message": "使用舊版的回覆提及方式" }, "algov2": { "message": "推薦演算法" }, - "chrono_help": { "message": "等同於“正在追隨”,顯示即時的推文和轉推,沒有多餘的內容。" }, + "chrono_help": { "message": "等同於“正在追隨”,顯示即時的推文和轉推,沒有其他多餘的內容。" }, "chrono_no_retweets_help": { "message": "只顯示即時的推文(不含轉推)。" }, "chrono_retweets_help": { "message": "只顯示即時的轉推(不含推文)。" }, "chrono_social_help": { "message": "混和經典時間軸與推薦演算法,偶爾插入“某人喜歡”和“某人追蹤”。" }, @@ -486,16 +482,16 @@ "yay": { "message": "太好了!" }, "light_mode_vars": { "message": "淺色主題變數" }, "dark_mode_vars": { "message": "深色主題變數" }, - "css_theme_hint": { "message": "請不要設定太令人刺眼的個人資料,例如將按鈕設定超級大,如果你這麼做,你可能會被剝奪使用這個功能的權利

你的 CSS 會覆寫現有的個人資料

你只能用 i.imgur.com 上傳圖片和 fonts.googleapis.com 上傳字體(還有這裡)的字體。

你可以在這裡看到 CSS 變數的清單。

如果想要設定某個特定的主題你可以使用.body-dark, .body-pitch-black(OLED 深色主題也會包含.body-dark) 以及 .body-light。" }, + "css_theme_hint": { "message": "請不要設定太令人刺眼或任何帶有誤導性的樣式,例如將按鈕做得超級大,否則你可能會被剝奪使用這個功能的權利。 記得在套用前檢查在深色和淺色模式下顯示是否正常!

你的 CSS 會覆寫其他人的本地樣式

你只能用 i.imgur.com 上傳圖片,以及來自 fonts.googleapis.com 和這裡)的字體。

你可以在這裡檢視支持的 CSS 變數清單。

如果想要為某個主題設計樣式,你可以使用.body-dark(深色主題), .body-pitch-black(OLED 深色主題,也會包含.body-dark) 以及 .body-light(淺色主題)。" }, "profile_colors_moved": { "message": "已經移至個人資料頁面(“編輯個人資料”按鈕左側的鉛筆圖示)。" }, "click_here_more_info": { "message": "請點擊這裡以了解更多" }, - "profile_must_be_public_to_auth": { "message": "你的個人資料必須設為公開來同步,但之後你仍然可以設為私人。" }, + "profile_must_be_public_to_auth": { "message": "首次同步時,你的個人資料必須設為公開,之後可以隨時改回私人狀態。" }, "save_draft": { "message": "儲存草稿", "note": "Try to keep this short" }, "load_draft": { "message": "載入草稿", "note": "Try to keep this short" }, "draft_saved": { "message": "已儲存草稿!" }, "draft_loaded": { "message": "已載入草稿!" }, "no_draft": { "message": "你還沒有已儲存的草稿!" }, - "invalid_auth_token": { "message": "你的認證權杖已經失效並被移除,請再試一次。如果還有錯誤請聯絡 @dimden。" }, + "invalid_auth_token": { "message": "你的認證權杖已經失效並被移除,請再試一次。如果還有錯誤,請聯絡 @dimden。" }, "css_set": { "message": "成功設定 CSS!" }, "error_setting_css": { "message": "設定 CSS 時發生錯誤" }, "load": { "message": "載入" }, @@ -523,12 +519,12 @@ "delete_for_you":{ "message": "為你刪除(其他人仍可見)", "description":"DM Message Delete menu" }, "show_user_previews_on_mobile": { "message": "長按顯示使用者預覽(可能會干擾操作)", "description": "This option only appears on mobile" }, "separate_text": { "message": "放大文字", "description": "This option appears in three-dot menu of tweets only on mobile and makes text bigger and adds padding on top and bottom on tap" }, - "leave_conversation": { "message":"你確定要離開/刪除這個對話嗎?" }, - "autotranslation_help1": { "message": "該功能可以自動查找符合條件的推文並翻譯,無需手動點擊翻譯按鈕。" }, - "autotranslation_help2": { "message": "選擇自動翻譯模式並設定語言列表。 符合條件的推文將被自動翻譯。" }, - "autotranslation_help3": { "message": "說明:" }, - "autotranslation_help4": { "message": "選擇「白名單模式」但不設定任何語言等同於關閉此功能。 (預設)" }, - "autotranslation_help5": { "message": "選擇「黑名單模式」但不設定任何語言等同於自動翻譯所有推文。
建議把你能理解的語言加入到黑名單中,以避免不必要地翻譯。" }, + "leave_conversation": { "message":"你確定要離開/刪除這個對話嗎?" }, + "autotranslation_help1": { "message": "該功能可以自動查找符合條件的推文並翻譯,無需手動點擊翻譯按鈕。" }, + "autotranslation_help2": { "message": "選擇自動翻譯模式並設定語言列表。 符合條件的推文將被自動翻譯。" }, + "autotranslation_help3": { "message": "說明:" }, + "autotranslation_help4": { "message": "選擇「白名單模式」但不設定任何語言等同於關閉此功能。 (預設)" }, + "autotranslation_help5": { "message": "選擇「黑名單模式」但不設定任何語言等同於自動翻譯所有推文。
建議把你能理解的語言加入到黑名單中,以避免不必要的翻譯。" }, "go_back_to_top": { "message": "返回頂部" }, "follow_system_settings_dark_mode": { "message": "跟隨系統自動設定的深色/淺色主題" }, "replacer_post_to_tweet": { "message": "貼文->推文", "description": "This string will be used to replace word 'post' with 'tweet' in various places. If, in your language, this replacement is very context-based, you can add multiple substitutions and separate them with a | (example: posts->tweet|post->tweet). On the left side of a substitution, use the word for 'post' that Twitter officially uses in your language (open notifications and you'll probably see 'someone liked your post' in your language, find that word (in this case 'post') and place it on the left side, before the '->', and then on the right side insert the translated 'tweet' word, so when replaced it'll look like 'someone liked your tweet'. The substitution terms on the left can also be regex expressions (don't insert them as '/expression/g' though, just 'expression'). For example, 'epic$' will only replace the word 'epic' if it's at the end of a sentence (because the $ character indicates the end of a string in regex). However, if, even after all these substitutions, it sounds bad in your language, you can ignore this." }, @@ -545,8 +541,8 @@ "favorited_by": { "message": "收藏的人" }, "disable_retweet_hotkey": { "message": "停用轉推快捷鍵 (T)" }, "disable_like_hotkey": { "message": "停用喜歡快捷鍵 (L)" }, - "enable_extension_compatibility": { "message": "啟用擴充功能相容模式
僅在需要讓某些擴充功能和 OldTwitter 一起使用時開啟
如果沒有效果請記得關閉,因為可能會出現問題或減慢頁面載入速度。" }, - "enter_custom_font_name": { "message": "請輸入自訂字體名稱" }, + "enable_extension_compatibility": { "message": "啟用擴充功能相容模式
僅在需要讓某些擴充功能和 OldTwitter 一起使用時開啟
如果依然沒有效果,請記得關閉。否則可能會出現問題或減慢頁面載入速度。" }, + "enter_custom_font_name": { "message": "請輸入自訂字體名稱" }, "disable_data_saver": { "message": "停用流量節省功能", "description": "This option only appears on mobile" }, "mobile": { "message": "行動版", "description": "Title for mobile device settings" }, "disable_accept_type": { "message": "停用媒體類型限制。這可以修正在某些 Android 裝置上無法取用媒體的問題。", "description": "This option only appears on mobile" }, @@ -563,7 +559,7 @@ "sort_by_tweets": { "message": "按推文數量" }, "sort_by_created": { "message": "按帳戶建立日期" }, "sort_by_random": { "message": "隨機排序" }, - "loading_all_followers": { "message": "載入所有粉絲(每24小時一次)..." }, + "loading_all_followers": { "message": "載入所有粉絲(每 24 小時只會檢查一次)..." }, "apply": { "message": "套用" }, "filter": { "message": "篩選" }, "ascending": { "message": "順序排列" }, @@ -571,7 +567,7 @@ "search_by_name": { "message": "按名稱搜尋" }, "search_by_description": { "message": "按簡介搜尋" }, "only_show_people_you_follow": { "message": "僅顯示你跟隨中的人" }, - "only_show_people_with_followers": { "message": "僅顯示超過 $NUMBER$ 粉絲的人", "placeholders": { "number": { "content": "-1" } } }, + "only_show_people_with_followers": { "message": "僅顯示擁有超過 $NUMBER$ 個粉絲的人", "placeholders": { "number": { "content": "-1" } } }, "only_show_people_with_age": { "message": "僅顯示加入了至少 $NUMBER$ 天的人", "placeholders": { "number": { "content": "-1" } } }, "page": { "message": "分頁" }, "update": {"message": "更新" }, @@ -585,8 +581,8 @@ "disable_find_hotkey": { "message": "停用搜尋快捷鍵 (F)" }, "uploaded": { "message": "上傳成功" }, "hide_unfollowers_page": { "message": "隱藏「取消跟隨你的人」頁面" }, - "custom_font": { "message":"<自訂>" }, - "current_font": { "message": "正在使用:$FONT$", "placeholders": { "font": { "content": "Arial" } } }, + "custom_font": { "message":"<自訂>" }, + "current_font": { "message": "正在使用:$FONT$", "placeholders": { "font": { "content": "Arial" } } }, "user_sent_photo": { "message": "$NAME$ 發送了一張照片", "placeholders": { "name": { "content": "Display Name" } } }, "user_sent_video": { "message": "$NAME$ 發送了一部影片", "placeholders": { "name": { "content": "Display Name" } } }, "user_reacted_message": { "message": "$NAME$ 對這則訊息做出了反應", "placeholders": { "name": { "content": "Display Name" } } }, @@ -636,12 +632,19 @@ "user_shared_tweet": { "message": "$NAME$ 分享了一則推文", "placeholders": { "name": { "content": "Display Name" } } }, "transition_profile_banner": { "message": "將過渡效果套用於個人資料橫幅" }, "custom_downloadtemplate": { "message": "自訂下載檔案名稱格式" }, - "custom_downloadtemplate_text": { "message": "可自訂下載推文媒體時的檔案名稱格式。" }, + "custom_downloadtemplate_text": { "message": "自訂下載推文媒體時的檔案名稱格式。" }, "save_downloadtemplate": { "message": "儲存檔案名稱格式" }, "custom_downloadtemplate_hintName1": { "message": "{user_name}: 使用者的名字。" }, "custom_downloadtemplate_hintName2": { "message": "{user_screen_name}: 使用者名稱。(例如:@dril)" }, "custom_downloadtemplate_hintTime": { "message": "{timestamp}: 推文發布的日期和時間。" }, "custom_downloadtemplate_hintExtension": { "message": "{extension}: 下載的檔案副檔名。" }, "custom_downloadtemplate_hintID": { "message": "{id}: 推文的 ID。" }, - "custom_downloadtemplate_hintIndex": { "message": "{index}: 每個待下載檔案的索引號碼。(僅限於有多個媒體的推文)" } + "custom_downloadtemplate_hintIndex": { "message": "{index}: 每個待下載檔案的索引號碼。(僅針對擁有多個媒體的推文)" }, + "custom_downloadtemplate_hintFilename": { "message": "{filename}: 來自 pbs.twimg.com 的原始檔案名稱。" }, + "nonexistent_user": { "message": "此帳號不存在" }, + "nonexistent_user_desc": { "message": "請嘗試搜尋其他帳號。" }, + "suspended_user": { "message": "此帳號已被停用" }, + "suspended_user_desc": { "message": "你要查看的個人資料已被停用。 要返回首頁,請點一下這裡。" }, + "show_boring_indicators": { "message": "在「跟隨中」及「粉絲」列表中顯示圖示,以表示各使用者的最後推文狀態(轉推、引用、一段時間前或沒有推文)。" }, + "hide_original_languages":{"message": "翻譯推文後隱藏原文" } } diff --git a/layouts/notifications/script.js b/layouts/notifications/script.js index de88f123..81c0b921 100644 --- a/layouts/notifications/script.js +++ b/layouts/notifications/script.js @@ -66,14 +66,16 @@ async function updateNotifications(options = { mode: 'rewrite', quiet: false }) API.notifications.markAsRead(cursorTop); if(windowFocused) { chrome.storage.local.remove(['unreadCount'], () => {}); - document.getElementById('site-icon').href = chrome.runtime.getURL(`images/logo32${vars.useNewIcon ? '_new' : ''}_notification.png`); - let newTitle = document.title; - if(document.title.startsWith('(')) { - newTitle = document.title.split(') ')[1]; - } - newTitle = `(${data.unreadNotifications}) ${newTitle}`; - if(document.title !== newTitle) { - document.title = newTitle; + if (data.unreadNotifications > 0) { + document.getElementById('site-icon').href = chrome.runtime.getURL(`images/logo32${vars.useNewIcon ? '_new' : ''}_notification.png`); + let newTitle = document.title; + if(document.title.startsWith('(')) { + newTitle = document.title.split(') ')[1]; + } + newTitle = `(${data.unreadNotifications}) ${newTitle}`; + if(document.title !== newTitle) { + document.title = newTitle; + } } notificationBus.postMessage({type: 'markAsRead', cursor: cursorTop}); } diff --git a/layouts/settings/index.html b/layouts/settings/index.html index 97c30017..3465803c 100644 --- a/layouts/settings/index.html +++ b/layouts/settings/index.html @@ -109,9 +109,10 @@

__MSG_oldtwitter_settings__


- + +
@@ -181,6 +182,9 @@

__MSG_accessibility__


+
+
+
__MSG_copy_tweet_links_as__ diff --git a/layouts/settings/script.js b/layouts/settings/script.js index c069d0f5..79514823 100644 --- a/layouts/settings/script.js +++ b/layouts/settings/script.js @@ -319,6 +319,7 @@ setTimeout(async () => { let showExactValues = document.getElementById('show-exact-values'); let localizeDigit = document.getElementById('localize-digit'); let hideTimelineTypes = document.getElementById('hide-timeline-types'); + let hideOriginalLanguages = document.getElementById('hide-original-languages'); let autotranslationMode = document.getElementById('autotranslation-mode'); let autotranslateLanguages = document.getElementById('autotranslate-languages'); let autotranslateLanguageList = document.getElementById('autotranslate-language-list'); @@ -980,6 +981,12 @@ setTimeout(async () => { autotranslateLanguages.appendChild(div); } + hideOriginalLanguages.addEventListener('change', () => { + chrome.storage.sync.set({ + hideOriginalLanguages: hideOriginalLanguages.checked + }, () => { }); + }); + // Set values if(vars.linkColor) { linkColor.value = vars.linkColor; @@ -1049,6 +1056,7 @@ setTimeout(async () => { pinBookmarksOnNavbar.checked = !!vars.pinBookmarksOnNavbar; pinListsOnNavbar.checked = !!vars.pinListsOnNavbar; useOldDefaultProfileImage.checked = !!vars.useOldDefaultProfileImage; + hideOriginalLanguages.checked = !!vars.hideOriginalLanguages; uncensorAdultContentAutomatically.checked = !!vars.uncensorAdultContentAutomatically; uncensorGraphicViolenceAutomatically.checked = !!vars.uncensorGraphicViolenceAutomatically; uncensorSensitiveContentAutomatically.checked = !!vars.uncensorSensitiveContentAutomatically; diff --git a/manifest.json b/manifest.json index 649e5bc4..5590f842 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "Old Twitter Layout (2024)", "description": "__MSG_ext_description__", - "version": "1.8.9", + "version": "1.8.9.2", "manifest_version": 3, "homepage_url": "https://github.com/dimdenGD/OldTwitter", "background": { diff --git a/pack.js b/pack.js index a73bb3a1..2b9266ea 100644 --- a/pack.js +++ b/pack.js @@ -59,7 +59,6 @@ copyDir('./', '../OldTwitterFirefox').then(async () => { "webRequest", "webRequestBlocking" ]; - manifest.content_security_policy = "script-src 'self' 'unsafe-eval' 'sha256-0c7AR7s38d85qcAifgyf/pxhEECsIYaQQxFzScXjrKI='; object-src 'self'", delete manifest.sandbox; delete manifest.host_permissions; delete manifest.declarative_net_request; diff --git a/sandbox.html b/sandbox.html index a9cbfc60..aa464339 100644 --- a/sandbox.html +++ b/sandbox.html @@ -8,7 +8,6 @@ - - \ No newline at end of file + diff --git a/scripts/config.js b/scripts/config.js index a7a561f5..411361ff 100644 --- a/scripts/config.js +++ b/scripts/config.js @@ -30,7 +30,7 @@ async function loadVars() { 'uncensorGraphicViolenceAutomatically', 'uncensorAdultContentAutomatically', 'uncensorSensitiveContentAutomatically', 'useOldStyleReply', 'enableAd', 'acknowledgedCssAccess', 'disableProfileCustomizations', 'openNotifsAsModal', 'enableIframeNavigation', 'acknowledgedCustomizationButton', 'modernUI', 'showExactValues', 'hideTimelineTypes', 'autotranslateLanguages', - 'autotranslationMode', 'muteVideos', 'dontPauseVideos', 'showUserPreviewsOnMobile', 'systemDarkMode', 'localizeDigit', + 'autotranslationMode', 'hideOriginalLanguages', 'muteVideos', 'dontPauseVideos', 'showUserPreviewsOnMobile', 'systemDarkMode', 'localizeDigit', 'disableRetweetHotkey', 'disableLikeHotkey', 'disableFindHotkey', 'extensionCompatibilityMode', 'disableDataSaver', 'disableAcceptType', 'showUserFollowerCountsInLists', 'showQuoteCount', 'hideUnfollowersPage', 'transitionProfileBanner', 'customDownloadTemplate', 'showBoringIndicators' @@ -210,6 +210,12 @@ async function loadVars() { disableAcceptType: false }, () => {}); } + if(typeof(data.hideOriginalLanguages) !== 'boolean') { + data.hideOriginalLanguages = false; + chrome.storage.sync.set({ + hideOriginalLanguages: false + }, () => {}); + } if(typeof(data.autotranslateProfiles) !== 'object') { data.autotranslateProfiles = []; chrome.storage.sync.set({ diff --git a/scripts/helpers.js b/scripts/helpers.js index 842de21b..41a0d32b 100644 --- a/scripts/helpers.js +++ b/scripts/helpers.js @@ -2644,6 +2644,7 @@ async function appendTweet(t, timelineContainer, options = {}) { let tt = t.full_text.replace(/^(@[a-zA-Z0-9_]{1,15}\s?)*/, "").replace(/\shttps:\/\/t.co\/[a-zA-Z0-9\-]{8,10}$/, "").trim(); if(translated.text.trim() === tt) return; if(translated.text.trim() === tt.replace(/(hihi)|(hehe)/g, 'lol')) return; // lol + const { hideOriginalLanguages } = await chrome.storage.sync.get('hideOriginalLanguages'); let translatedMessage; if(LOC.translated_from.message.includes("$LANGUAGE$")) { translatedMessage = LOC.translated_from.message.replace("$LANGUAGE$", `[${translated.translated_lang}]`); @@ -2653,6 +2654,10 @@ async function appendTweet(t, timelineContainer, options = {}) { if(translated.text.length > 600) { translated.text = translated.text.substring(0, 600) + '...'; } + if (hideOriginalLanguages) { + translatedMessage = ''; + tweetBodyQuoteText.innerHTML = ''; + } tweetBodyQuoteText.innerHTML += `${translatedMessage}:`+ `${escapeHTML(translated.text)}`; @@ -2683,6 +2688,8 @@ async function appendTweet(t, timelineContainer, options = {}) { let tt = t.full_text.replace(/^(@[a-zA-Z0-9_]{1,15}\s?)*/, "").replace(/\shttps:\/\/t.co\/[a-zA-Z0-9\-]{8,10}$/, "").trim(); if(translated.text.trim() === tt) return; if(translated.text.trim() === tt.replace(/(hihi)|(hehe)/g, 'lol')) return; // lol + const { hideOriginalLanguages } = await chrome.storage.sync.get('hideOriginalLanguages'); + let translatedMessage; if(LOC.translated_from.message.includes("$LANGUAGE$")) { translatedMessage = LOC.translated_from.message.replace("$LANGUAGE$", `[${translated.translated_lang}]`); @@ -2696,10 +2703,18 @@ async function appendTweet(t, timelineContainer, options = {}) { let translatedFrom = document.createElement('span'); translatedFrom.classList.add('translated-from'); translatedFrom.innerText = translatedMessage; + + + let translatedText = document.createElement('span'); translatedText.classList.add('tweet-translated-text'); translatedText.innerHTML = await renderTweetBodyHTML(translatedT); - tweetBodyText.append(document.createElement('br'), translatedFrom, translatedText); + if (hideOriginalLanguages) { + tweetBodyText.innerHTML = ''; + tweetBodyText.append(translatedText); + } else { + tweetBodyText.append(document.createElement('br'), translatedFrom, translatedText); + } if(vars.enableTwemoji) twemoji.parse(tweetBodyText); }); if(options.translate || vars.autotranslateProfiles.includes(t.user.id_str) || (typeof toAutotranslate !== 'undefined' && toAutotranslate) || (vars.autotranslateLanguages.includes(t.lang) && vars.autotranslationMode === 'whitelist') || (!vars.autotranslateLanguages.includes(t.lang) && vars.autotranslationMode === 'blacklist')) { @@ -3667,7 +3682,28 @@ async function appendTweet(t, timelineContainer, options = {}) { mde.innerText = ''; let a = document.createElement('a'); a.href = URL.createObjectURL(blob); - a.download = `${t.id_str}.gif`; + + let ts = new Date(t.created_at).toISOString().split("T")[0]; + let extension = 'gif' + let _index = t.extended_entities.media.length > 1 ? "_"+(index+1) : ""; + let filename = `${t.user.screen_name}_${ts}_${t.id_str}${_index}.${extension}`; + let filename_template = vars.customDownloadTemplate; + + // use the filename from the user's custom download template, if any + if(filename_template && (filename_template.length > 0)) { + const filesave_map = { + "user_screen_name": t.user.screen_name, + "user_name": t.user.name, + "extension": extension, + "timestamp": ts, + "id": t.id_str, + "index": _index, + "filename": url.pathname.substring(url.pathname.lastIndexOf('/') + 1, url.pathname.lastIndexOf('.')) + }; + filename = filename_template.replace(/\{([\w]+)\}/g, (_, key) => filesave_map[key]); + } + a.download = filename; + document.body.append(a); a.click(); a.remove(); diff --git a/scripts/iframeNavigation.js b/scripts/iframeNavigation.js index f852399a..a9a6a09b 100644 --- a/scripts/iframeNavigation.js +++ b/scripts/iframeNavigation.js @@ -34,7 +34,7 @@ if(!window.top.windows && window.top === window) { } if(!window.top.windows.includes(window)) window.top.windows.push(window); if(!window._realPath) window._realPath = location.pathname; -if(window.top !== window) { +if(window.top !== window && location.protocol == 'https:') { setTimeout(() => { window.top.document.title = document.title; }, 1000); diff --git a/scripts/injection.js b/scripts/injection.js index bc5bf315..657be7a7 100644 --- a/scripts/injection.js +++ b/scripts/injection.js @@ -139,7 +139,7 @@ if ( url.searchParams.set('newtwitter', 'true'); location.replace(url); } -const LANGUAGES = ["en", "ru", "uk", "fr", "pt_BR", "es", "el", "ro", "tl", "lv", "he", "ne", "nl", "ja", "tr", "it", "ar", "th", "ko", "pl", "vi", "zh_CN", "zh_TW", "cs", "de", "ca", "sv", "bg", "nb", "fi", "id", 'is']; +const LANGUAGES = ["en", "ru", "uk", "fr", "pt_BR", "es", "el", "ro", "tl", "lv", "he", "ne", "nl", "ja", "tr", "it", "ar", "th", "ko", "pl", "vi", "zh_CN", "zh_TW", "cs", "de", "ca", "sv", "bg", "nb", "fi", "id", 'is', 'gl']; const TRANSLATORS = { "ru": ["dimden", "https://dimden.dev/"], "uk": ["dimden", "https://dimden.dev/"], @@ -147,7 +147,8 @@ const TRANSLATORS = { ["Aurore C.", "https://asuure.com/"], ["zdimension", "/zdimension_"], ["Pikatchoum", "/applitom45"], - ["adriend", "/_adriend_"] + ["adriend", "/_adriend_"], + ["celestial04_", "/celestial04_"] ], "pt_BR": [ ["kigi", "/kigidere"], @@ -189,7 +190,7 @@ const TRANSLATORS = { "th": ["0.21%BloodAlcohol", "https://github.com/Silberweich"], "ko": [ ["Nyankodasu", "https://github.com/Nyankodasu"], - ["한예림", "/han_eirin"] + ["HY"] ], "pl": [ ["lele"], @@ -206,7 +207,10 @@ const TRANSLATORS = { ], "cs": ["Menal"], "de": ["basti564", "/basti564"], - "ca": ["elmees21", "/elmees21"], + "ca": [ + ["elmees21", "/elmees21"], + ["Luna", "/chica_botella"] + ], "sv": ["actuallyaridan", "/actuallyaridan"], "bg": ["Scarlett7447", "/Scarlett7447"], "nb": ["twistquest", "/twistquest"], @@ -217,7 +221,11 @@ const TRANSLATORS = { ["DaGamerFiles", "/DaGamerFiles"], ["KuchingNeko", "/KuchingNeko"] ], - "is": ["VipelyRS", "/VipelyRS"] + "is": ["VipelyRS", "/VipelyRS"], + "gl": [ + ["ikergcalvino", "https://github.com/ikergcalvino"], + ["alvaroddiaz", "https://github.com/alvaroddiaz"] + ] }; let LOC = {}; let LOC_EN = {}; diff --git a/scripts/twchallenge.js b/scripts/twchallenge.js index 7bde1fe2..8fcccf46 100644 --- a/scripts/twchallenge.js +++ b/scripts/twchallenge.js @@ -1,3 +1,4 @@ +let solverIframe; let solveId = 0; let solveCallbacks = {}; let solveQueue = [] @@ -5,21 +6,30 @@ let solverReady = false; let solverErrored = false; let sentData = false; -let solverIframe = document.createElement('iframe'); -solverIframe.style.display = 'none'; -solverIframe.src = chrome.runtime.getURL(`sandbox.html`); -let injectedBody = document.getElementById('injected-body'); -if(injectedBody) { - injectedBody.appendChild(solverIframe); -} else { - let int = setInterval(() => { - let injectedBody = document.getElementById('injected-body'); - if(injectedBody) { - injectedBody.appendChild(solverIframe); - clearInterval(int); - } - }, 10); +let sandboxUrl = fetch(chrome.runtime.getURL(`sandbox.html`)) + .then(resp => resp.blob()) + .then(blob => URL.createObjectURL(blob)) + .catch(console.error); + +function createSolverFrame() { + if (solverIframe) solverIframe.remove(); + solverIframe = document.createElement('iframe'); + solverIframe.style.display = 'none'; + sandboxUrl.then(url => solverIframe.src = url); + let injectedBody = document.getElementById('injected-body'); + if(injectedBody) { + injectedBody.appendChild(solverIframe); + } else { + let int = setInterval(() => { + let injectedBody = document.getElementById('injected-body'); + if(injectedBody) { + injectedBody.appendChild(solverIframe); + clearInterval(int); + } + }, 10); + } } +createSolverFrame(); function solveChallenge(path, method) { return new Promise((resolve, reject) => { @@ -51,11 +61,7 @@ function solveChallenge(path, method) { setInterval(() => { if(!document.getElementById('loading-box').hidden && sentData && solveQueue.length) { console.log("Something's wrong with the challenge solver, reloading", solveQueue); - solverIframe.remove(); - solverIframe = document.createElement('iframe'); - solverIframe.style.display = 'none'; - solverIframe.src = chrome.runtime.getURL(`sandbox.html`); - document.getElementById('injected-body').appendChild(solverIframe); + createSolverFrame(); initChallenge(); } }, 2000); @@ -143,22 +149,6 @@ async function initChallenge() { let anims = Array.from(dom.querySelectorAll('svg[id^="loading-x"]')).map(svg => svg.outerHTML); let challengeCode = homepageData.match(/"ondemand.s":"(\w+)"/)[1]; - let challengeData; - try { - challengeData = await _fetch(`https://abs.twimg.com/responsive-web/client-web/ondemand.s.${challengeCode}a.js`).then(res => res.text()); - } catch(e) { - await sleep(500); - try { - challengeData = await _fetch(`https://abs.twimg.com/responsive-web/client-web/ondemand.s.${challengeCode}a.js`).then(res => res.text()); - } catch(e) { - await sleep(1000); - try { - challengeData = await _fetch(`https://abs.twimg.com/responsive-web/client-web/ondemand.s.${challengeCode}a.js`).then(res => res.text()); - } catch(e) { - throw new Error('Failed to fetch challenge data: ' + e); - } - } - } OLDTWITTER_CONFIG.verificationKey = verificationKey; @@ -167,7 +157,6 @@ async function initChallenge() { if(!solverIframe || !solverIframe.contentWindow) return setTimeout(sendInit, 50); solverIframe.contentWindow.postMessage({ action: 'init', - code: challengeData, challengeCode, anims, verificationCode: OLDTWITTER_CONFIG.verificationKey @@ -179,12 +168,12 @@ async function initChallenge() { console.error(`Error during challenge init:`); console.error(e); if(location.hostname === 'twitter.com') { - alert(`There was an error in initializing security header generator: ${e}\nUser Agent: ${navigator.userAgent}\nOldTwitter doesn't allow unsigned requests anymore for your account security. Currently the main reason for this happening is social network tracker protection blocking the script. Try disabling such settings in your browser and extensions that do that and refresh the page. Also using OldTwitter from twitter.com domain is not supported.`); + alert(`There was an error in initializing security header generator: ${e}\nUser Agent: ${navigator.userAgent}\nOldTwitter doesn't allow unsigned requests anymore for your account security. Currently the main reason for this happening is social network tracker protection blocking the script. Try disabling such settings in your browser and extensions that do that and refresh the page. This also might be because you're either not logged in or using twitter.com instead of x.com.`); } else { - alert(`There was an error in initializing security header generator: ${e}\nUser Agent: ${navigator.userAgent}\nOldTwitter doesn't allow unsigned requests anymore for your account security. Currently the main reason for this happening is social network tracker protection blocking the script. Try disabling such settings in your browser and extensions that do that and refresh the page.`); + alert(`There was an error in initializing security header generator: ${e}\nUser Agent: ${navigator.userAgent}\nOldTwitter doesn't allow unsigned requests anymore for your account security. Currently the main reason for this happening is social network tracker protection blocking the script. Try disabling such settings in your browser and extensions that do that and refresh the page. This can also happen if you're not logged in.`); } return false; } }; -initChallenge(); \ No newline at end of file +initChallenge(); diff --git a/scripts/tweetviewer.js b/scripts/tweetviewer.js index 67735f1a..a6e58bd7 100644 --- a/scripts/tweetviewer.js +++ b/scripts/tweetviewer.js @@ -1608,6 +1608,8 @@ class TweetViewer { let tt = t.full_text.replace(/^(@[a-zA-Z0-9_]{1,15}\s?)*/, "").replace(/\shttps:\/\/t.co\/[a-zA-Z0-9\-]{8,10}$/, "").trim(); if(translated.text.trim() === tt) return; if(translated.text.trim() === tt.replace(/(hihi)|(hehe)/g, 'lol')) return; // lol + const { hideOriginalLanguages } = await chrome.storage.sync.get('hideOriginalLanguages'); + let translatedMessage; if(LOC.translated_from.message.includes("$LANGUAGE$")) { translatedMessage = LOC.translated_from.message.replace("$LANGUAGE$", `[${translated.translated_lang}]`); @@ -1617,6 +1619,10 @@ class TweetViewer { if(translated.text.length > 600) { translated.text = translated.text.substring(0, 600) + '...'; } + if (hideOriginalLanguages) { + translatedMessage = ''; + tweetBodyQuoteText.innerHTML = ''; + } tweetBodyQuoteText.innerHTML += `${translatedMessage}:`+ `${escapeHTML(translated.text)}`; @@ -1647,6 +1653,9 @@ class TweetViewer { let tt = t.full_text.replace(/^(@[a-zA-Z0-9_]{1,15}\s?)*/, "").replace(/\shttps:\/\/t.co\/[a-zA-Z0-9\-]{8,10}$/, "").trim(); if(translated.text.trim() === tt) return; if(translated.text.trim() === tt.replace(/(hihi)|(hehe)/g, 'lol')) return; // lol + + const { hideOriginalLanguages } = await chrome.storage.sync.get('hideOriginalLanguages'); + let translatedMessage; if(LOC.translated_from.message.includes("$LANGUAGE$")) { translatedMessage = LOC.translated_from.message.replace("$LANGUAGE$", `[${translated.translated_lang}]`); @@ -1660,10 +1669,18 @@ class TweetViewer { let translatedFrom = document.createElement('span'); translatedFrom.classList.add('translated-from'); translatedFrom.innerText = translatedMessage; + + + let translatedText = document.createElement('span'); translatedText.classList.add('tweet-translated-text'); translatedText.innerHTML = await renderTweetBodyHTML(translatedT); - tweetBodyText.append(document.createElement('br'), translatedFrom, translatedText); + if (hideOriginalLanguages) { + tweetBodyText.innerHTML = ''; + tweetBodyText.append(translatedText); + } else { + tweetBodyText.append(document.createElement('br'), translatedFrom, translatedText); + } if(vars.enableTwemoji) twemoji.parse(tweetBodyText); }); if(options.translate || vars.autotranslateProfiles.includes(t.user.id_str) || (typeof toAutotranslate !== 'undefined' && toAutotranslate) || (vars.autotranslateLanguages.includes(t.lang) && vars.autotranslationMode === 'whitelist') || (!vars.autotranslateLanguages.includes(t.lang) && vars.autotranslationMode === 'blacklist')) {