From 1e1eac17ae4a2f13c99f4d2052b621ccf25893a4 Mon Sep 17 00:00:00 2001 From: Vyxie Date: Sat, 7 Jun 2025 13:34:51 +0800 Subject: [PATCH] [i18n] Add Filipino --- i18n/Filipino.cpp | 226 ++++++++++++++++++++++++++++++++++++++++++++++ i18n/I18N_langs.h | 4 + 2 files changed, 230 insertions(+) create mode 100644 i18n/Filipino.cpp diff --git a/i18n/Filipino.cpp b/i18n/Filipino.cpp new file mode 100644 index 00000000..0e9cf4f2 --- /dev/null +++ b/i18n/Filipino.cpp @@ -0,0 +1,226 @@ +/* +* Copyright (c) 2021-2025, The PurpleI2P Project +* +* This file is part of Purple i2pd project and licensed under BSD3 +* +* See full license text in LICENSE file at top of project tree +*/ + +#include +#include +#include +#include +#include "I18N.h" + +// Russian localization file + +namespace i2p +{ +namespace i18n +{ +namespace filipino // language namespace +{ + // language name in lowercase + static std::string language = "filipino"; + + // See for language plural forms here: + // https://localization-guide.readthedocs.io/en/latest/l10n/pluralforms.html + static int plural (int n) { + return n > 1; + } + + // Right to Left language? + static bool rtl = false; + + static const LocaleStrings strings + { + {"%.2f KiB", "%.2f KiB"}, + {"%.2f MiB", "%.2f MiB"}, + {"%.2f GiB", "%.2f GiB"}, + {"building", "ginagawa"}, + {"failed", "nabigo"}, + {"expiring", "nage-expire"}, + {"established", "na-establish"}, + {"unknown", "hindi alam"}, + {"exploratory", "eksplorasyon"}, + {"Purple I2P Webconsole", "Webconsole ng Purple I2P"}, + {"i2pd webconsole", "Webconsole ng i2pd"}, + {"Main page", "Unang pahina"}, + {"Router commands", "Mga utos sa router"}, + {"Local Destinations", "Mga lokal na patutunguhan"}, + {"LeaseSets", "Mga LeaseSet"}, + {"Tunnels", "Mga Tunnel"}, + {"Transit Tunnels", "Mga Transit Tunnel"}, + {"Transports", "Mga Transport"}, + {"I2P tunnels", "Mga I2P tunnel"}, + {"SAM sessions", "Mga session ng SAM"}, + {"ERROR", "ERROR"}, + {"OK", "OK"}, + {"Testing", "Sinusubukan"}, + {"Firewalled", "Naka-firewall"}, + {"Unknown", "Hindi alam"}, + {"Proxy", "Proxy"}, + {"Mesh", "Mesh"}, + {"Clock skew", "Clock skew"}, + {"Offline", "Оffline"}, + {"Symmetric NAT", "Symmetric na NAT"}, + {"Full cone NAT", "Full cone na NAT"}, + {"No Descriptors", "Walang mga Deskriptor"}, + {"Uptime", "Uptime"}, + {"Network status", "Status ng network"}, + {"Network status v6", "Status ng v6 network"}, + {"Stopping in", "Titigil sa"}, + {"Family", "Pamilya"}, + {"Tunnel creation success rate", "Rate ng matagumpay na paggawa ng tunnel"}, + {"Total tunnel creation success rate", "Kabuuang rate ng matagumpay na paggawa ng tunnel"}, + {"Received", "Natanggap"}, + {"%.2f KiB/s", "%.2f KiB/s"}, + {"Sent", "Napadala"}, + {"Transit", "Transit"}, + {"Data path", "Path ng data"}, + {"Hidden content. Press on text to see.", "Nakatagong nilalaman. Pintutin ang text para makita."}, + {"Router Ident", "Pagkakilanlan ng Router"}, + {"Router Family", "Pamilya ng Router"}, + {"Router Caps", "Kakayahan ng Router"}, + {"Version", "Bersyon"}, + {"Our external address", "Ating external address"}, + {"supported", "sinusuportahan"}, + {"Routers", "Mga Router"}, + {"Floodfills", "Mga Floodfill"}, + {"Client Tunnels", "Mga Client Tunnel"}, + {"Services", "Mga Serbisyo"}, + {"Enabled", "Naka-enable"}, + {"Disabled", "Naka-disable"}, + {"Encrypted B33 address", "Naka-encrypt na B33 address"}, + {"Address registration line", "Linya ng pagrehistro ng address"}, + {"Domain", "Domain"}, + {"Generate", "I-generate"}, + {"Note: result string can be used only for registering 2LD domains (example.i2p). For registering subdomains please use i2pd-tools.", "Tandaan: maaari lamang gamitin ang string ng resulta para sa pagrehistro ng mga 2LD domain (example.i2p). Para sa pagrehistro ng mga subdomain mangyaring gamitin ang i2pd-tools."}, + {"Address", "Address"}, + {"Type", "Uri"}, + {"EncType", "Uri ng encryption"}, + {"Expire LeaseSet", "I-expire ang LeaseSet"}, + {"Inbound tunnels", "Mga papasok na tunnel"}, + {"%dms", "%dms"}, + {"Outbound tunnels", "Mga palabas na tunnel"}, + {"Tags", "Mga Tag"}, + {"Incoming", "Papasok"}, + {"Outgoing", "Palabas"}, + {"Destination", "Patutunguhan"}, + {"Amount", "Halaga"}, + {"Incoming Tags", "Mga Papasok na Tag"}, + {"Tags sessions", "Mga tag session"}, + {"Status", "Status"}, + {"Local Destination", "Lokal na Patutunguhan"}, + {"Streams", "Mga stream"}, + {"Close stream", "Isara ang strea,"}, + {"Such destination is not found", "Hindi mahanap ang patutunguhan"}, + {"I2CP session not found", "Hindi mahanap ang I2CP session"}, + {"I2CP is not enabled", "Hindi naka-enable ang I2CP"}, + {"Invalid", "Hindi wasto"}, + {"Store type", "Uri ng store"}, + {"Expires", "Mage-expire"}, + {"Non Expired Leases", "Mga Hindi Naka-expire na :ease"}, + {"Gateway", "Gateway"}, + {"TunnelID", "ID ng Tunnel"}, + {"EndDate", "Petsa ng pagtatapos"}, + {"floodfill mode is disabled", "Naka-disable ang floodfill mode"}, + {"Queue size", "Size ng queue"}, + {"Run peer test", "Patakbuhin ang pagsubok ng peer"}, + {"Reload tunnels configuration", "I-reload ang pagsasaayos ng tunnel"}, + {"Decline transit tunnels", "Tanggihan ang mga transit tunnel"}, + {"Accept transit tunnels", "Tanggapin ang mga transit tunnel"}, + {"Cancel graceful shutdown", "Kanselahin ang graceful na pag-shutdown"}, + {"Start graceful shutdown", "Simulan ang graceful na pag-shutdown"}, + {"Force shutdown", "Pilitin ang pagsa-shutdown"}, + {"Reload external CSS styles", "I-reload ang mga external na istilio ng CSS"}, + {"Note: any action done here are not persistent and not changes your config files.", "Tandaan: hindi mananatili ang mga pagbabago na ito at hindi babaguhin ang iyong mga config file."}, + {"Logging level", "Antas ng pag-log"}, + {"Transit tunnels limit", "Limitasyon ng mga transit tunnel"}, + {"Change", "Baguhin"}, + {"Change language", "Baguhin ang wika"}, + {"no transit tunnels currently built", "Wala pang nagawang transit tunnel"}, + {"SAM disabled", "Naka-disable ang SAM"}, + {"no sessions currently running", "wala pang mga tumatakbo na session"}, + {"SAM session not found", "Hindi nahanap ang SAM session"}, + {"SAM Session", "SAM Session"}, + {"Server Tunnels", "Mga Server Tunnel"}, + {"Client Forwards", "Mga Client Forward"}, + {"Server Forwards", "Mga Server Forward"}, + {"Unknown page", "Hindi alam na pahina"}, + {"Invalid token", "Hindi wastong token"}, + {"SUCCESS", "MATAGUMPAY"}, + {"Stream closed", "Sinara ang stream"}, + {"Stream not found or already was closed", "Hindi nahanap ang stream o sinara na"}, + {"Destination not found", "Hindi nahanap ang patutunguhan"}, + {"StreamID can't be null", "Hindi maaaring null ang StreamID"}, + {"Return to destination page", "Bumalik sa pahina ng patutunguhan"}, + {"You will be redirected in %d seconds", "Mare-redirect ka sa %d segundo"}, + {"LeaseSet expiration time updated", "Na-update ang oras ng pag-expire ng LeaseSet"}, + {"LeaseSet is not found or already expired", "Hindi nahanap o nag-expire na ang LeaseSet"}, + {"Transit tunnels count must not exceed %d", "Hindi maaaring lumagpas sa %d ang bilang ng mga transit tunnel"}, + {"Back to commands list", "Bumalik sa listahan ng mga utos"}, + {"Register at reg.i2p", "I-rehistro sa reg.i2p"}, + {"Description", "Paglalarawan"}, + {"A bit information about service on domain", "Kaunting impormasyon tungkol sa serbisyo sa domain"}, + {"Submit", "I-submit"}, + {"Domain can't end with .b32.i2p", "Hindi maaaring matapos sa .b32.i2p ang domain"}, + {"Domain must end with .i2p", "Dapat matapos sa .i2p ang domain"}, + {"Unknown command", "Hindi alam na command"}, + {"Command accepted", "Tinanggap ang command"}, + {"Proxy error", "Error sa proxy"}, + {"Proxy info", "Info sa proxy"}, + {"Proxy error: Host not found", "Error sa proxy: Hindi nahanap ang host"}, + {"Remote host not found in router's addressbook", "Hindi nahanap ang remote host sa addressbook ng router"}, + {"You may try to find this host on jump services below", "Maaari mo subukang hanapin ang host na ito sa mga jump service sa ibaba"}, + {"Invalid request", "Hindi wastong hiling"}, + {"Proxy unable to parse your request", "Hindi ma-parse ng proxy ang iyong hiling"}, + {"Addresshelper is not supported", "Hindi sinusuportahan ang addresshelper"}, + {"Host %s is already in router's addressbook. Be careful: source of this URL may be harmful! Click here to update record: Continue.", "Nasa addressbook ng router na ang host na %s. Mag-ingat: baka mapanganib ang source ng URL na ito! Mag-click dito para i-update ang record: Magpatuloy."}, + {"Addresshelper forced update rejected", "Tinanggihan ang pinilit na pag-update ng addresshelper"}, + {"To add host %s in router's addressbook, click here: Continue.", "Para idagdag ang host na %s sa addressbook ng router, mag-click dito: Magpatuloy."}, + {"Addresshelper request", "Hiling ng addresshelper"}, + {"Host %s added to router's addressbook from helper. Click here to proceed: Continue.", "Dinagdag ang host na %s sa addressbook ng router. Mag-click dito para magpatuloy: Magpatuloy."}, + {"Addresshelper adding", "Pagdagdag sa addresshelper"}, + {"Host %s is already in router's addressbook. Click here to update record: Continue.", "Узел %s уже в адресной книге роутера. Нажмите здесь, чтобы обновить запись: Продолжить."}, + {"Addresshelper update", "Pag-update sa addresshelper"}, + {"Invalid request URI", "Hindi wastong URI ng hiling"}, + {"Can't detect destination host from request", "Hindi ma-detect ang patutunguhang host mula sa hiling"}, + {"Outproxy failure", "Nabigong outproxy"}, + {"Bad outproxy settings", "Hindi wastong mga setting ng outproxy"}, + {"Host %s is not inside I2P network, but outproxy is not enabled", "Hindi nasa loob ng I2P network ang %s, ngunit hindi naka-enable ang outproxy"}, + {"Unknown outproxy URL", "Hindi alam na outproxy URL"}, + {"Cannot resolve upstream proxy", "Hindi ma-resolve ang upstream proxy"}, + {"Hostname is too long", "Masyadong mahaba ang hostname"}, + {"Cannot connect to upstream SOCKS proxy", "Hindi makakonekta sa upstream SOCKS proxy"}, + {"Cannot negotiate with SOCKS proxy", "Hindi makapag-negotiate sa SOCKS proxy"}, + {"CONNECT error", "Error sa CONNECT"}, + {"Failed to connect", "Nabigong kumonekta"}, + {"SOCKS proxy error", "Error sa SOCKS proxy"}, + {"Failed to send request to upstream", "Nabigong ipadala ang hiling sa upstream"}, + {"No reply from SOCKS proxy", "Walang tugon mula sa SOCKS proxy"}, + {"Cannot connect", "Hindi makakonekta"}, + {"HTTP out proxy not implemented", "Hindi naka-implement ang HTTP out proxy"}, + {"Cannot connect to upstream HTTP proxy", "Hindi makakonekta sa upstream HTTP proxy"}, + {"Host is down", "Down ang host"}, + {"Can't create connection to requested host, it may be down. Please try again later.", "Hindi makagawa ng koneksyon sa hiniling na host, baka down ang host. Subukan muli mamaya."}, + {"", ""}, + }; + + static std::map> plurals + { + {"%d days", {"%d araw", "%d araw", "%d araw"}}, + {"%d hours", {"%d oras", "%d oras", "%d oras"}}, + {"%d minutes", {"%d minuto", "%d minuto", "%d minuto"}}, + {"%d seconds", {"%d segundo", "%d segundo", "%d segundo"}}, + {"", {"", "", ""}}, + }; + + std::shared_ptr GetLocale() + { + return std::make_shared(language, rtl, strings, plurals, [] (int n)->int { return plural(n); }); + } + +} // language +} // i18n +} // i2p diff --git a/i18n/I18N_langs.h b/i18n/I18N_langs.h index b3d09af8..4c4871e5 100644 --- a/i18n/I18N_langs.h +++ b/i18n/I18N_langs.h @@ -29,6 +29,7 @@ namespace i18n namespace czech { std::shared_ptr GetLocale (); } namespace english { std::shared_ptr GetLocale (); } namespace french { std::shared_ptr GetLocale (); } + namespace filipino { std::shared_ptr GetLocale (); } namespace german { std::shared_ptr GetLocale (); } namespace hebrew { std::shared_ptr GetLocale (); } namespace hindi { std::shared_ptr GetLocale (); } @@ -43,6 +44,8 @@ namespace i18n namespace ukrainian { std::shared_ptr GetLocale (); } namespace uzbek { std::shared_ptr GetLocale (); } + namespace uzbek { std::shared_ptr GetLocale (); } + /** * That map contains international language name lower-case, name in it's language and it's code */ @@ -54,6 +57,7 @@ namespace i18n { "czech", {"čeština", "cs", i2p::i18n::czech::GetLocale} }, { "english", {"English", "en", i2p::i18n::english::GetLocale} }, { "french", {"Français", "fr", i2p::i18n::french::GetLocale} }, + { "filipino", {"Filipino", "fil", i2p::i18n::filipino::GetLocale} }, { "german", {"Deutsch", "de", i2p::i18n::german::GetLocale} }, { "hebrew", {"עִבְרִית‎", "he", i2p::i18n::hebrew::GetLocale} }, { "hindi", {"हिन्दी", "hi", i2p::i18n::hindi::GetLocale} },