mirror of
https://github.com/danog/MadelineProto.git
synced 2025-01-22 14:31:13 +01:00
Add JSON localization files
This commit is contained in:
parent
03a78dba98
commit
9292b375b4
2
docs
2
docs
@ -1 +1 @@
|
||||
Subproject commit 6936aa2703675f1b144d613e69e4922b51ea358f
|
||||
Subproject commit bce6cc5873d8df45cf72e428f157cda54d2d5aff
|
122
langs/en.json
Normal file
122
langs/en.json
Normal file
@ -0,0 +1,122 @@
|
||||
{
|
||||
"go": "Go",
|
||||
"apiChooseManualAutoTip": "Note that you can also provide the API ID\/hash directly in the code using the settings: %s",
|
||||
"apiChooseManualAutoTipWeb": "Note that you can also provide the API ID\/hash directly in the code using the <a target=\"_blank\" href=\"%s\">settings<\/a>.",
|
||||
"apiChoosePrompt": "Your choice (m\/a): ",
|
||||
"apiManualInstructions0": "Login to https:\/\/my.telegram.org",
|
||||
"apiManualInstructions1": "Go to API development tools",
|
||||
"apiManualInstructions2": "Click on create application",
|
||||
"apiAppInstructionsManual0": "your app's name, can be anything",
|
||||
"apiAppInstructionsManual1": "your app's short name, alphanumeric, 5-32 characters",
|
||||
"apiAppInstructionsManual2": "your app\/website's URL, or t.me\/yourusername",
|
||||
"apiAppInstructionsManual3": "anything",
|
||||
"apiAppInstructionsManual4": "Describe your app here",
|
||||
"apiManualWeb": "Enter your API ID and API hash",
|
||||
"apiManualPrompt0": "Enter your API ID: ",
|
||||
"apiManualPrompt1": "Enter your API hash: ",
|
||||
"apiAutoWeb": "Enter a phone number that is <b>already registered<\/b> on telegram to get the API ID",
|
||||
"apiAutoPrompt0": "Enter a phone number that is already registered on Telegram: ",
|
||||
"apiAutoPrompt1": "Enter the verification code you received in Telegram: ",
|
||||
"apiAppWeb": "Enter API information",
|
||||
"apiAppInstructionsAuto0": "Enter the app's name, can be anything: ",
|
||||
"apiAppInstructionsAuto1": "Enter the app's short name, alphanumeric, 5-32 characters: ",
|
||||
"apiAppInstructionsAuto2": "Enter the app\/website's URL, or t.me\/yourusername: ",
|
||||
"apiAppInstructionsAuto3": "Enter the app platform: ",
|
||||
"apiAppInstructionsAuto4": "Describe your app: ",
|
||||
"apiAppInstructionsAutoTypeOther": "Other (specify in description)",
|
||||
"apiParamsError": "You didn't provide all of the required parameters!",
|
||||
"apiError": "ERROR: %s. Try again.",
|
||||
"loginChoosePromptWeb": "Do you want to login as a user or as a bot?",
|
||||
"loginWebQr": "You can also login automatically by scanning the following QR code:",
|
||||
"loginWebQr1": "Open Telegram on your phone",
|
||||
"loginWebQr2": "Go to Settings > Devices > Link Desktop Device",
|
||||
"loginWebQr3": "Point your phone at this screen to confirm login",
|
||||
"loginOptionBot": "Bot",
|
||||
"loginOptionUser": "User",
|
||||
"loginBot": "Enter your bot token: ",
|
||||
"loginUser": "Enter your phone number: ",
|
||||
"loginQr": "Scan the above QR code to login automatically.",
|
||||
"loginManual": "Alternatively, you can also enter a bot token or phone number to login manually: ",
|
||||
"loginUserCode": "Enter the code: ",
|
||||
"loginUserPass": "Enter your password (hint %s): ",
|
||||
"loginUserPassWeb": "Enter your password: ",
|
||||
"loginUserPassHint": "Hint: %s",
|
||||
"signupFirstName": "Enter your first name: ",
|
||||
"signupLastName": "Enter your last name (can be empty): ",
|
||||
"signupWeb": "Sign up please",
|
||||
"signupFirstNameWeb": "First name",
|
||||
"signupLastNameWeb": "Last name",
|
||||
"loginNoCode": "You didn't provide a phone code!",
|
||||
"loginNoPass": "You didn't provide the password!",
|
||||
"loginNoName": "You didn't provide the first name!",
|
||||
"loginBotTokenWeb": "Bot token",
|
||||
"loginUserPhoneWeb": "Phone number",
|
||||
"loginUserPhoneCodeWeb": "Code",
|
||||
"done": "Done!",
|
||||
"nearest_dc": "We're in %s, nearest DC is %d.",
|
||||
"serialization_ofd": "Serialization is out of date, reconstructing object!",
|
||||
"api_not_set": "You must provide an api key and an api id, get your own @ my.telegram.org",
|
||||
"session_corrupted": "The session is corrupted!",
|
||||
"length_not_4": "The specified base256 32-bit integer must be exactly 4 bytes long.",
|
||||
"length_not_8": "The specified base256 64-bit integer must be exactly 8 bytes long.",
|
||||
"value_bigger_than_2147483647": "Provided value %s is bigger than 2147483647",
|
||||
"value_smaller_than_2147483648": "Provided value %s is smaller than -2147483648",
|
||||
"value_bigger_than_9223372036854775807": "Provided value %s is bigger than 9223372036854775807",
|
||||
"value_smaller_than_9223372036854775808": "Provided value %s is smaller than -9223372036854775808",
|
||||
"value_bigger_than_4294967296": "Provided value %s is bigger than 4294967296",
|
||||
"value_smaller_than_0": "Provided value %s is smaller than 0",
|
||||
"encode_double_error": "Could not properly encode double",
|
||||
"file_not_exist": "File does not exist",
|
||||
"deserialization_error": "An error occurred on deserialization",
|
||||
"rpc_tg_error": "Telegram returned an RPC error: %s (%s), caused by %s:%s%sTL trace:",
|
||||
"madelineproto_ready": "MadelineProto is ready!",
|
||||
"logout_ok": "Logged out successfully!",
|
||||
"already_loggedIn": "This instance of MadelineProto is already logged in!",
|
||||
"login_ok": "Logged in successfully!",
|
||||
"login_user": "Logging in as a normal user...",
|
||||
"login_bot": "Logging in as a bot...",
|
||||
"login_code_sending": "Sending code...",
|
||||
"login_code_sent": "Code sent successfully! Once you receive the code you should use the completePhoneLogin function.",
|
||||
"login_code_uncalled": "I'm not waiting for the code! Please call the phoneLogin method first",
|
||||
"login_2fa_enabled": "2FA enabled, you will have to call the complete2falogin function...",
|
||||
"login_need_signup": "An account has not been created for this number, you will have to call the completeSignup function...",
|
||||
"login_auth_key": "Logging in using auth key...",
|
||||
"not_loggedIn": "I'm not logged in!",
|
||||
"signup_uncalled": "I'm not waiting to signup! Please call the phoneLogin and the completePhoneLogin methods first!",
|
||||
"signing_up": "Signing up as a normal user...",
|
||||
"signup_ok": "Signed up in successfully!",
|
||||
"2fa_uncalled": "I'm not waiting for the password! Please call the phoneLogin and the completePhoneLogin methods first!",
|
||||
"peer_not_in_db": "This peer is not present in the internal peer database",
|
||||
"call_error_1": "Could not find and accept call %s",
|
||||
"accepting_call": "Accepting call from %s...",
|
||||
"call_already_accepted": "Call %s already accepted",
|
||||
"call_already_declined": "Call %s already declined",
|
||||
"call_error_2": "Could not find and confirm call %s",
|
||||
"call_confirming": "Confirming call from %s...",
|
||||
"call_error_3": "Could not find and complete call %s",
|
||||
"call_completing": "Completing call from %s...",
|
||||
"fingerprint_invalid": "Invalid key fingerprint!",
|
||||
"call_discarding": "Discarding call %s...",
|
||||
"file_parsing": "Parsing %s...",
|
||||
"src_file_invalid": "Invalid source file was provided: ",
|
||||
"bool_error": "Could not extract boolean",
|
||||
"not_numeric": "Given value isn't numeric",
|
||||
"long_not_16": "Given value is not 16 bytes long",
|
||||
"long_not_32": "Given value is not 32 bytes long",
|
||||
"long_not_64": "Given value is not 64 bytes long",
|
||||
"array_invalid": "You didn't provide a valid array",
|
||||
"predicate_not_set": "Predicate (value under _) was not set!",
|
||||
"type_extract_error": "Could not extract type \"%s\", you should update MadelineProto!",
|
||||
"method_not_found": "Could not find method: ",
|
||||
"params_missing": "Missing required parameter",
|
||||
"sec_peer_not_in_db": "This secret peer is not present in the internal peer database",
|
||||
"stream_handle_invalid": "An invalid stream handle was provided.",
|
||||
"length_too_big": "Length is too big",
|
||||
"type_extract_error_id": "Could not extract type: %s with id %s, you should update MadelineProto!",
|
||||
"constructor_not_found": "Constructor not found for type: ",
|
||||
"botapi_conversion_error": "Can't convert %s to a bot API object",
|
||||
"non_text_conversion": "Can't convert non text messages yet!",
|
||||
"last_byte_invalid": "Invalid last byte",
|
||||
"file_type_invalid": "Invalid file type detected (%s)",
|
||||
"secret_chat_skipping": "I do not have the secret chat %s in the database, skipping message..."
|
||||
}
|
122
langs/it.json
Normal file
122
langs/it.json
Normal file
@ -0,0 +1,122 @@
|
||||
{
|
||||
"nearest_dc": "Siamo in %s, il DC pi\u00f9 vicino \u00e8 %d.",
|
||||
"serialization_ofd": "La serializzazione non \u00e8 aggiornata, reistanziamento dell'oggetto in corso!",
|
||||
"api_not_set": "Devi specificare una chiave ed un ID API, ottienili su https:\/\/my.telegram.org",
|
||||
"session_corrupted": "La sessione si \u00e8 corrotta!",
|
||||
"length_not_4": "The specified base256 32-bit integer must be exactly 4 bytes long.",
|
||||
"length_not_8": "The specified base256 64-bit integer must be exactly 8 bytes long.",
|
||||
"value_bigger_than_2147483647": "Il valore fornito (%s) \u00e8 maggiore di 2147483647",
|
||||
"value_smaller_than_2147483648": "Il valore fornito (%s) \u00e8 minore di -2147483648",
|
||||
"value_bigger_than_9223372036854775807": "Il valore fornito (%s) \u00e8 maggiore di 9223372036854775807",
|
||||
"value_smaller_than_9223372036854775808": "Il valore fornito (%s) \u00e8 minore di -9223372036854775808",
|
||||
"value_bigger_than_4294967296": "Il valore fornito (%s) \u00e8 maggiore di 4294967296",
|
||||
"value_smaller_than_0": "Il valore fornito (%s) \u00e8 minore di 0",
|
||||
"encode_double_error": "Non sono riuscito a codificare il numero a virgola mobile fornito",
|
||||
"file_not_exist": "Il file specificato non esiste",
|
||||
"deserialization_error": "C'\u00e8 stato un errore durante la deserializzazione",
|
||||
"rpc_tg_error": "Telegram ha ritornato un errore RPC: %s (%s), causato da %s:%s%sTL trace:",
|
||||
"madelineproto_ready": "MadelineProto \u00e8 pronto!",
|
||||
"logout_ok": "Il logout \u00e8 stato eseguito correttamente!",
|
||||
"already_loggedIn": "Questa istanza di MadelineProto \u00e8 gi\u00e0 loggata!",
|
||||
"login_ok": "Il login \u00e8 stato eseguito correttamente!",
|
||||
"login_user": "Sto eseguendo il login come utente normale...",
|
||||
"login_bot": "Sto eseguendo il login come bot...",
|
||||
"login_code_sending": "Sto inviando il codice...",
|
||||
"login_code_sent": "Il codice \u00e8 stato inviato correttamente! Una volta ricevuto il codice dovrai usare la funzione completePhoneLogin.",
|
||||
"login_code_uncalled": "Non sto aspettando il codice! Usa la funzione phoneLogin.",
|
||||
"login_2fa_enabled": "L'autenticazione a due fattori \u00e8 abilitata, dovrai chiamare il metodo complete2falogin...",
|
||||
"login_need_signup": "Questo numero non \u00e8 registrato su telegram, dovrai chiamare la funzione completeSignup...",
|
||||
"login_auth_key": "Sto facendo il login con la chiave di autorizzazione...",
|
||||
"not_loggedIn": "Non ho ancora fatto il login!",
|
||||
"signup_uncalled": "Chiama prima le funzioni phoneLogin e completePhoneLogin.",
|
||||
"signing_up": "Mi sto registrando su telegram come utente normale...",
|
||||
"signup_ok": "Mi sono registrato su Telegram!",
|
||||
"2fa_uncalled": "Non sto aspettando la password, chiama prima le funzioni phoneLogin e completePhoneLogin!",
|
||||
"peer_not_in_db": "Questo utente\/gruppo\/canale non \u00e8 presente nel database interno MadelineProto",
|
||||
"call_error_1": "Impossibile trovare ed accettare la chiamata %s",
|
||||
"accepting_call": "Sto accettando una chiamata da %s...",
|
||||
"call_already_accepted": "La chiamata %s \u00e8 gi\u00e0 stata accettata.",
|
||||
"call_already_declined": "La chiamata %s \u00e8 gi\u00e0 stata annullata.",
|
||||
"call_error_2": "Impossibile trovare e confermare la chiamata %s",
|
||||
"call_confirming": "Sto confermando una chiamata da %s",
|
||||
"call_error_3": "Impossibile trovare e completare la chiamata %s",
|
||||
"call_completing": "Sto completando una chiamata da %s...",
|
||||
"fingerprint_invalid": "fingerprint della chiave non valido!",
|
||||
"call_discarding": "Sto rifiutando la chiamata %s...",
|
||||
"file_parsing": "Leggendo %s...",
|
||||
"src_file_invalid": "\u00c8 stato fornito un file sorgente non valido: ",
|
||||
"bool_error": "Non sono riuscito ad estrarre un booleano",
|
||||
"not_numeric": "Il valore fornito non \u00e8 numerico",
|
||||
"long_not_16": "Il valore fornito non \u00e8 lungo 16 byte",
|
||||
"long_not_32": "Il valore fornito non \u00e8 lungo 32 byte",
|
||||
"long_not_64": "Il valore fornito non \u00e8 lungo 64 byte",
|
||||
"array_invalid": "Il valore fornito non \u00e8 un array",
|
||||
"predicate_not_set": "Il predicato (valore sotto chiave _, esempio ['_' => 'inputPeer']) non \u00e8 impostato!",
|
||||
"type_extract_error": "Impossibile estrarre il tipo \"%s\"",
|
||||
"method_not_found": "Impossibile trovare il seguente metodo: ",
|
||||
"params_missing": "Non hai fornito un parametro obbligatorio, rileggi la documentazione API",
|
||||
"sec_peer_not_in_db": "La chat segreta non \u00e8 presente nel database interno MadelineProto",
|
||||
"stream_handle_invalid": "Il valore fornito non \u00e8 uno stream",
|
||||
"length_too_big": "Il valore fornito \u00e8 troppo lungo",
|
||||
"type_extract_error_id": "Non sono riuscito ad estrarre il tipo %s con ID %s",
|
||||
"constructor_not_found": "Costruttore non trovato per tipo: ",
|
||||
"botapi_conversion_error": "Non sono risucito a convertire %s in un oggetto bot API",
|
||||
"non_text_conversion": "Non posso ancora convertire messaggi media",
|
||||
"last_byte_invalid": "L'ultimo byte non \u00e8 valido",
|
||||
"file_type_invalid": "\u00c8 stato fornito un tipo file errato",
|
||||
"secret_chat_skipping": "Non ho la chat segreta %s nel database, ignorando messaggio",
|
||||
"done": "Fatto!",
|
||||
"apiAppInstructionsAuto0": "Inserisci il nome dell'app, pu\u00f2 essere qualsiasi cosa: ",
|
||||
"apiAppInstructionsAuto1": "Inserisci il nome ridotto dell'app, caratteri alfanumerici: ",
|
||||
"apiAppInstructionsAuto2": "Inserisci il sito internet dell'app, oppure t.me\/username: ",
|
||||
"apiAppInstructionsAuto3": "Inserisci la piattaforma dell'app: ",
|
||||
"apiAppInstructionsAuto4": "Descrivi la tua app: ",
|
||||
"apiAppInstructionsManual0": "titolo dell'app, pu\u00f2 essere qualsiasi cosa",
|
||||
"apiAppInstructionsManual1": "il nome ridotto dell'app, caratteri alfanumerici: ",
|
||||
"apiAppInstructionsManual2": "L'indirizzo del tuo sito, oppure t.me\/username",
|
||||
"apiAppInstructionsManual3": "Qualsiasi",
|
||||
"apiAppInstructionsManual4": "Descrivi la tua app",
|
||||
"apiAutoPrompt0": "Inserisci un numero di telefono che \u00e8 gi\u00e0 registrato su Telegram: ",
|
||||
"apiAutoPrompt1": "Inserisci il codice di verifica che hai ricevuto su Telegram: ",
|
||||
"apiChooseManualAutoTip": "Nota che puoi anche fornire i parametri API direttamente nelle impostazioni: %s",
|
||||
"apiChoosePrompt": "La tua scelta (m\/a): ",
|
||||
"apiError": "ERRORE: %s. Prova ancora.",
|
||||
"apiManualInstructions0": "Effettua il login su https:\/\/my.telegram.org",
|
||||
"apiManualInstructions1": "Vai su API development tools",
|
||||
"apiManualInstructions2": "Clicca su create application",
|
||||
"apiManualPrompt0": "Inserisci il tuo API ID: ",
|
||||
"apiManualPrompt1": "Inserisci il tuo API hash: ",
|
||||
"apiParamsError": "Non hai fornito tutti i parametri richiesti!",
|
||||
"loginBot": "Inserisci il tuo bot token: ",
|
||||
"loginQr": "Scansiona il codice QR per fare il login automaticamente.",
|
||||
"loginManual": "In alternativa, puoi inserire un bot token o un numero di telefono per effettuare il login manualmente: ",
|
||||
"loginNoCode": "Non hai fornito un codice di verifica!",
|
||||
"loginNoName": "Non hai fornito un nome!",
|
||||
"loginNoPass": "Non hai fornito la password!",
|
||||
"loginUser": "Inserisci il tuo numero di telefono: ",
|
||||
"loginUserPass": "Inserisci la tua password (suggerimento %s): ",
|
||||
"loginUserPassHint": "Suggerimento: %s",
|
||||
"loginUserPassWeb": "Inserisci la tua password: ",
|
||||
"loginUserCode": "Inserisci il codice di verifica: ",
|
||||
"signupFirstName": "Inserisci il tuo nome: ",
|
||||
"signupFirstNameWeb": "Nome",
|
||||
"signupLastName": "Inserisci il tuo cognome: ",
|
||||
"signupLastNameWeb": "Cognome",
|
||||
"signupWeb": "Registrazione",
|
||||
"go": "Vai",
|
||||
"loginChoosePromptWeb": "Vuoi effettuare il login come utente o come bot?",
|
||||
"loginWebQr": "Puoi anche effettuare il login automaticamente scansionando il seguente codice QR:",
|
||||
"loginWebQr1": "Apri Telegram sul tuo telefono",
|
||||
"loginWebQr2": "Vai su Impostazioni > Dispositivi > Collega dispositivo desktop",
|
||||
"loginWebQr3": "Inquadra il codice sullo schermo per completare il login",
|
||||
"loginOptionBot": "Bot",
|
||||
"loginOptionUser": "Utente",
|
||||
"loginBotTokenWeb": "Token del bot",
|
||||
"loginUserPhoneCodeWeb": "Codice di verifica",
|
||||
"loginUserPhoneWeb": "Numero di telefono",
|
||||
"apiAutoWeb": "Inserisci un numero di telefono <b>già registrato su Telegram<\/b> per ottenere l'API ID",
|
||||
"apiManualWeb": "Inserisci il tuo API ID e API hash",
|
||||
"apiAppInstructionsAutoTypeOther": "Altro (specificare nella descrizione)",
|
||||
"apiAppWeb": "Inserire informazioni API",
|
||||
"apiChooseManualAutoTipWeb": "Nota che puoi anche fornire i parametri API direttamente nelle <a target=\"_blank\" href=\"%s\">impostazioni<\/a>."
|
||||
}
|
@ -99,6 +99,7 @@ trait Methods
|
||||
$type_or_bare_type = \ctype_upper(Tools::end(\explode('.', $param[$type_or_subtype]))[0]) || \in_array($param[$type_or_subtype], ['!X', 'X', 'bytes', 'true', 'false', 'double', 'string', 'Bool', 'int', 'long', 'int128', 'int256', 'int512', 'int53']) ? 'types' : 'constructors';
|
||||
$param[$type_or_subtype] = \str_replace(['true', 'false'], ['Bool', 'Bool'], $param[$type_or_subtype]);
|
||||
$param[$type_or_subtype] = '['.StrTools::markdownEscape($param[$type_or_subtype]).'](/API_docs/'.$type_or_bare_type.'/'.$param[$type_or_subtype].'.md)';
|
||||
$param[$type_or_subtype] = '$'.$param[$type_or_subtype];
|
||||
$params .= $param['name'].': '.(isset($param['subtype']) ? '\\['.$param[$type_or_subtype].'\\]' : $param[$type_or_subtype]).', ';
|
||||
}
|
||||
if (!isset($this->tdDescriptions['methods'][$method])) {
|
||||
@ -189,7 +190,7 @@ trait Methods
|
||||
$table .= '|'.StrTools::markdownEscape($param['name']).'|'.(isset($param['subtype']) ? 'Array of ' : '').'['.StrTools::markdownEscape($human_ptype).'](/API_docs/'.$type_or_bare_type.'/'.$ptype.'.md) | '.(isset($param['pow']) || ($param['type'] === 'long' && $param['name'] === 'hash')|| ($id = $this->TL->getConstructors($this->td)->findByPredicate(\lcfirst($param['type']).'Empty')) && $id['type'] === $param['type'] || ($id = $this->TL->getConstructors($this->td)->findByPredicate('input'.$param['type'].'Empty')) && $id['type'] === $param['type'] ? 'Optional' : 'Yes').'|';
|
||||
}
|
||||
$table .= PHP_EOL;
|
||||
$pptype = \in_array($ptype, ['string', 'bytes']) ? "'".$ptype."'" : $ptype;
|
||||
$pptype = \in_array($ptype, ['string', 'bytes']) ? "'".$ptype."'" : '$'.$ptype;
|
||||
$ppptype = \in_array($ptype, ['string']) ? '"'.$ptype.'"' : $ptype;
|
||||
$ppptype = \in_array($ptype, ['bytes']) ? '{"_": "bytes", "bytes":"base64 encoded '.$ptype.'"}' : $ppptype;
|
||||
$params .= $param['name'].': ';
|
||||
|
@ -34,9 +34,11 @@ final class Lang
|
||||
|
||||
foreach (Lang::$lang as $code => &$currentLang) {
|
||||
if ($code === 'en') {
|
||||
file_put_contents("langs/$code.json", json_encode($currentLang, JSON_PRETTY_PRINT));
|
||||
continue;
|
||||
}
|
||||
$currentLang = array_intersect_key($currentLang, Lang::$lang['en']);
|
||||
file_put_contents("langs/$code.json", json_encode($currentLang, JSON_PRETTY_PRINT));
|
||||
}
|
||||
|
||||
$lang_code = readline('Enter the language you whish to localize: ');
|
||||
|
Loading…
x
Reference in New Issue
Block a user