From 24692ef31c82c4eb4fd6d1adf84c112c8798f4c5 Mon Sep 17 00:00:00 2001 From: "The Artifex (4r7if3x)" Date: Wed, 19 Apr 2023 13:00:30 +0200 Subject: [PATCH] Added Persian language & translations --- src/translations/translations.rs | 86 +++++++++++++++++++++++++++++- src/translations/translations_2.rs | 1 + src/translations/types/language.rs | 18 ++++++- src/utils/countries.rs | 1 + 4 files changed, 102 insertions(+), 4 deletions(-) diff --git a/src/translations/translations.rs b/src/translations/translations.rs index 67b3c600..bcb24a08 100644 --- a/src/translations/translations.rs +++ b/src/translations/translations.rs @@ -17,6 +17,7 @@ pub fn choose_adapters_translation(language: Language) -> Text<'static> { Language::TR => "İncelemek için bir ağ adaptörü seçiniz", Language::RU => "Выберите сетевой адаптер для инспекции", Language::PT => "Selecione o adaptador de rede a inspecionar", + Language::FA => "مبدل شبکه را برای بازرسی انتخاب کنید", }) } @@ -35,6 +36,7 @@ pub fn application_protocol_translation(language: Language) -> &'static str { Language::TR => "Uygulama protokolü", Language::RU => "Прикладной протокол", Language::PT => "Protocolo de aplicação", + Language::FA => "پیوندنامهٔ درخواست", } } @@ -53,6 +55,7 @@ pub fn select_filters_translation(language: Language) -> Text<'static> { Language::TR => "Ağ trafiğine uygulanacak filtreleri seçiniz", Language::RU => "Выберите фильтры для применения к сетевому трафику", Language::PT => "Selecione os filtros a serem aplicados no tráfego de rede", + Language::FA => "صافی ها را جهت اعمال بر آمد و شد شبکه انتخاب کنید", }) } @@ -68,6 +71,7 @@ pub fn start_translation(language: Language) -> &'static str { Language::TR => "Başla!", Language::RU => "Начать!", Language::PT => "Começar!", + Language::FA => "شروع!", } } @@ -84,6 +88,7 @@ pub fn address_translation(language: Language) -> &'static str { Language::KO => "\n주소:", Language::RU => "\nАдрес:", Language::PT => "\nEndereço:", + Language::FA => "\nنشانی:", } } @@ -102,6 +107,7 @@ pub fn addresses_translation(language: Language) -> &'static str { Language::TR => "\nAdresler:", Language::RU => "\nАдреса:", Language::PT => "\nEndereços:", + Language::FA => "\nنشانی ها:", } } @@ -120,6 +126,7 @@ pub fn ip_version_translation(language: Language) -> Text<'static> { Language::TR => "IP versiyonu", Language::RU => "Версия IP", Language::PT => "Versão de IP", + Language::FA => "نسخهٔ IP", }) } @@ -137,6 +144,7 @@ pub fn transport_protocol_translation(language: Language) -> &'static str { Language::KO => "전송 프로토콜", Language::TR => "İletişim protokolü", Language::RU => "Транспортный протокол", + Language::FA => "پیوندنامهٔ ترابرد", } } @@ -155,6 +163,7 @@ pub fn traffic_rate_translation(language: Language) -> Text<'static> { Language::TR => "Trafik oranı:", Language::RU => "Cкорость трафика:", Language::PT => "Taxa de tráfego:", + Language::FA => "نرخ آمد و شد:", }) } @@ -173,6 +182,7 @@ pub fn relevant_connections_translation(language: Language) -> Text<'static> { Language::TR => "İlgili bağlantılar:", Language::RU => "Важные подключения:", Language::PT => "Conexões relevantes:", + Language::FA => "پیوند های خویشاوند:", }) } @@ -191,6 +201,7 @@ pub fn settings_translation(language: Language) -> &'static str { Language::TR => "Ayarlar", Language::RU => "Настройки", Language::PT => "Configurações", + Language::FA => "پیکربندی", } } @@ -209,6 +220,7 @@ pub fn yes_translation(language: Language) -> Text<'static> { Language::TR => "Evet", Language::RU => "Да", Language::PT => "Sim", + Language::FA => "بله", }) } @@ -227,6 +239,7 @@ pub fn ask_quit_translation(language: Language) -> Text<'static> { Language::TR => "Bu analizden çıkmak istediğine emin misin?", Language::RU => "Вы уверены, что хотите выйти из текущего анализа?", Language::PT => "Tem a certeza que deseja sair desta análise?", + Language::FA => "آیا مطمئن هستید می خواهید از این تحلیل خارج شوید؟", }) } @@ -245,6 +258,7 @@ pub fn quit_analysis_translation(language: Language) -> String { Language::TR => "Analizden çık".to_string(), Language::RU => "Закончить анализ".to_string(), Language::PT => "Sair da análise".to_string(), + Language::FA => "خروج از تحلیل".to_string(), } } @@ -263,6 +277,7 @@ pub fn ask_clear_all_translation(language: Language) -> Text<'static> { Language::TR => "Bildirimleri temizlemek istediğine emin misin?", Language::RU => "Вы уверены, что хотите удлить все уведомления?", Language::PT => "Tem a certeza que deseja eliminar as notificações?", + Language::FA => "آیا مطمئن هستید می خواهید اعلان ها را پاک کنید؟", }) } @@ -281,6 +296,7 @@ pub fn clear_all_translation(language: Language) -> String { Language::TR => "Hepsini temizle".to_string(), Language::RU => "Очистить всё".to_string(), Language::PT => "Limpar tudo".to_string(), + Language::FA => "پاک کردن همه".to_string(), } } @@ -299,6 +315,7 @@ pub fn hide_translation(language: Language) -> &'static str { Language::TR => "Gizle", Language::RU => "Скрыть", Language::PT => "Esconder", + Language::FA => "پنهان کردن", } } @@ -343,6 +360,9 @@ pub fn no_addresses_translation(language: Language, adapter: &str) -> Text<'stat Language::PT => format!("Não é possível observar tráfego porque o adaptador que selecionou não tem endereços ativos...\n\n\ Adaptador de rede: {adapter}\n\n\ Se tiver a certeza que está ligado à internet, tente escolher um adaptador diferente."), + Language::FA => format!("هیچ آمد و شدی قابل مشاهده نیست چون مبدلی که انتخاب کرده اید هیچ نشانی فعالی ندارد...\n\n\ + مبدل شبکه: {adapter}\n\n\ + اگر مطمئن هستید به اینترنت وصل هستید، سعی کنید مبدل متفاوتی را انتخاب کنید."), }) } @@ -387,6 +407,9 @@ pub fn waiting_translation(language: Language, adapter: &str) -> Text<'static> { Language::PT => format!("Ainda não foi observado tráfego. Aguardando por pacotes...\n\n\ Adaptador de rede: {adapter}\n\n\ Tem a certeza de que está ligado à internet e selecionou o adaptador correto?"), + Language::FA => format!("هنوز هیچ آمد و شدی مشاهده نشده است. در حال انتظار برای بسته های شبکه...\n\n + مبدل شبکه: {adapter}\n\n + آیا مطمئن هستید به اینترنت وصل هستید و مبدل درست را انتخاب کرده اید؟"), }) } @@ -435,6 +458,9 @@ pub fn some_observed_translation( Language::PT => format!("Total de pacotes interceptados: {observed}\n\n\ Pacotes filtrados: 0\n\n\ Alguns pacotes foram interceptados, mas nenhum deles foi selecionado de acordo com os filtros especificados...\n\n{filters}"), + Language::FA => format!("مجموع بسته های رهگیری شده: {observed}\n\n\ + بسته های صاف شده: 0\n\n\ + شماری از بسته ها رهگیری شده اند، ولی هنوز هیچ کدام بر اساس صافی تعیین شده شما انتخاب نشده اند...\n\n{filters}"), }) } @@ -468,7 +494,8 @@ pub fn filtered_packets_translation( } Language::PT => { format!("Pacotes filtrados:\n {filtered} ({percentage} do total)") - } + }, + Language::FA => format!("بسته های صاف شده\n {filtered} ({percentage} از مجموع)"), }) } @@ -502,7 +529,8 @@ pub fn filtered_bytes_translation( } Language::PT => { format!("Bytes filtrados:\n {filtered} ({percentage} do total)") - } + }, + Language::FA => format!("بایت های صاف شده\n {filtered} ({percentage} از مجموع)"), }) } @@ -521,6 +549,7 @@ pub fn filtered_application_translation(language: Language) -> Text<'static> { Language::TR => "Uygulama protokolü bazında filtrelenen paketler:", Language::RU => "Отфильтровано пакетов прикладного протокола:", Language::PT => "Pacotes filtrados por protocolo de aplicação:", + Language::FA => "بسته های صاف شده برای هر پیوندنامهٔ درخواست:", }) } @@ -552,6 +581,8 @@ pub fn no_favorites_translation(language: Language) -> Text<'static> { Для добавления соединения в избранные, нажмите на символ звезды возле соединения.", Language::PT => "Nada para mostrar de momento.\n\ Para adicionar uma conexão aos seus favoritos, clique na estrela perto da conexão.", + Language::FA => "در حال حاضر هیچ چیزی برای نمایش نیست.\n\ + برای افزودن یک پیوند به پسندیده های خود، روی نشان ستاره کنار پیوند کلیک کنید.", }) } @@ -609,6 +640,10 @@ pub fn error_translation(language: Language, error: &str) -> Text<'static> { "Ocorreu um erro! \n\n\ {error}" ), + Language::FA => format!( + "خطایی رخ داد! \n\n\ + {error}" + ), }) } @@ -626,6 +661,7 @@ pub fn both_translation(language: Language) -> &'static str { Language::KO => "둘다", Language::TR => "ikiside", Language::RU => "оба", + Language::FA => "هر دو", } } @@ -638,6 +674,7 @@ pub fn both_translation(language: Language) -> &'static str { // Language::PL => "Wszystkie protokoły", // Language::DE => "Alle Protokolle", // Language::RU => "Все протоколы", +// Language::FA => "همهٔ پیوندنامه ها", // } // } @@ -655,6 +692,7 @@ pub fn all_translation(language: Language) -> &'static str { Language::KO => "모두", Language::TR => "Hepsi", Language::RU => "Всё", + Language::FA => "همه", } } @@ -673,6 +711,7 @@ pub fn packets_chart_translation(language: Language) -> &'static str { Language::TR => "saniye başı paket", Language::RU => "пакектов в секунду", Language::PT => "pacotes por segundo", + Language::FA => "بسته در ثانیه", } } @@ -690,6 +729,7 @@ pub fn bytes_chart_translation(language: Language) -> &'static str { Language::KO => "초당 바이트", Language::TR => "saniye başı bayt", Language::RU => "байтов в секунду", + Language::FA => "بایت در ثانیه", } } @@ -708,6 +748,7 @@ pub fn recent_report_translation(language: Language) -> &'static str { Language::TR => "en son", Language::RU => "новейшие", Language::PT => "mais recente", + Language::FA => "آخرین", } } @@ -726,6 +767,7 @@ pub fn packets_report_translation(language: Language) -> &'static str { Language::TR => "en çok paket", Language::RU => "больше всего пакетов", Language::PT => "mais pacotes", + Language::FA => "بیشترین بسته ها", } } @@ -744,6 +786,7 @@ pub fn bytes_report_translation(language: Language) -> &'static str { Language::TR => "en çok bayt", Language::RU => "больше всего байт", Language::PT => "mais bytes", + Language::FA => "بیشترین بایت ها", } } @@ -761,6 +804,7 @@ pub fn favorite_report_translation(language: Language) -> &'static str { Language::KO => "즐겨찾기", Language::TR => "favoriler", Language::RU => "избранное", + Language::FA => "پسندیده ها", } } @@ -779,6 +823,7 @@ pub fn notifications_title_translation(language: Language) -> Text<'static> { Language::TR => "Bildirimlerinizi özelleştirin", Language::RU => "Настройка уведомлений", Language::PT => "Personalize as suas notificações", + Language::FA => "اعلان های خود را سفارشی کنید", }) } @@ -797,6 +842,7 @@ pub fn appearance_title_translation(language: Language) -> Text<'static> { Language::TR => "Favori temanızı seçin", Language::RU => "Выберите предпочительную тему", Language::PT => "Escolha o seu tema favorito", + Language::FA => "زمینه دلخواه خود را انتخاب کنید", }) } @@ -815,6 +861,7 @@ pub fn languages_title_translation(language: Language) -> Text<'static> { Language::TR => "Dilinizi seçin", Language::RU => "Выберите язык", Language::PT => "Selecione o seu idioma", + Language::FA => "زبان خود را انتخاب کنید", }) } @@ -833,6 +880,7 @@ pub fn active_filters_translation(language: Language) -> &'static str { Language::TR => "Aktif filtreler:", Language::RU => "Выбранные фильтры:", Language::PT => "Filtros ativos:", + Language::FA => "صافی های فعال:", } } @@ -851,6 +899,7 @@ pub fn none_translation(language: Language) -> &'static str { Language::TR => "hiç biri", Language::RU => "не выбран", Language::PT => "nenhum", + Language::FA => "هیچ کدام", } } @@ -869,6 +918,7 @@ pub fn yeti_night_translation(language: Language) -> &'static str { Language::TR => "Sniffnet'in orjinal koyu teması", Language::RU => "Оригинальная тёмная тема Sniffnet'а", Language::PT => "Tema escuro original de Sniffnet", + Language::FA => "زمینه تاریک اصلی Sniffnet", } } @@ -886,6 +936,7 @@ pub fn yeti_day_translation(language: Language) -> &'static str { Language::KO => "Sniffnet의 기본 라이트테마", Language::TR => "Sniffnet'in orjinal açık teması", Language::RU => "Оригинальная светая тема Sniffnet'а", + Language::FA => "زمینه روشن اصلی Sniffnet", } } @@ -904,6 +955,7 @@ pub fn deep_sea_translation(language: Language) -> &'static str { Language::TR => "Ağ trafiğine dalmak", Language::RU => "Для погружения в сетевой трафик", Language::PT => "Para mergulhar no tráfego de rede", + Language::FA => "شیرجه رفتن در آمد و شد شبکه", } } @@ -922,6 +974,7 @@ pub fn mon_amour_translation(language: Language) -> &'static str { Language::TR => "Hayal perestler için yapılmış güzel tema", Language::RU => "Милая тема для мечтателей", Language::PT => "Tema encantador feito para sonhadores", + Language::FA => "زمینه دلپذیر ساخته شده برای رویا پردازان", } } @@ -940,6 +993,7 @@ pub fn incoming_translation(language: Language) -> &'static str { Language::TR => "Gelen", Language::RU => "Входящий", Language::PT => "Entrando", + Language::FA => "ورودی", } } @@ -958,6 +1012,7 @@ pub fn outgoing_translation(language: Language) -> &'static str { Language::TR => "Giden", Language::RU => "Исходящий", Language::PT => "Saindo", + Language::FA => "خروجی", } } @@ -975,6 +1030,7 @@ pub fn notifications_translation(language: Language) -> &'static str { Language::TR => "Bildirimler", Language::RU => "Уведомления", Language::PT => "Notificações", + Language::FA => "اعلان ها", } } @@ -988,6 +1044,7 @@ pub fn style_translation(language: Language) -> &'static str { Language::UK | Language::RU => "Стиль", Language::ZH => "主题", Language::KO => "스타일", + Language::FA => "شیوه", } } @@ -1006,6 +1063,7 @@ pub fn language_translation(language: Language) -> &'static str { Language::TR => "Dil", Language::RU => "Язык", Language::PT => "Língua", + Language::FA => "زبان", } } @@ -1024,6 +1082,7 @@ pub fn overview_translation(language: Language) -> &'static str { Language::TR => "Ön izleme", Language::RU => "Обзор", Language::PT => "Visão geral", + Language::FA => "نمای کلی", } } @@ -1036,6 +1095,7 @@ pub fn overview_translation(language: Language) -> &'static str { // Language::PL => "Sprawdź", // Language::DE => "Überprüfen", // Language::RU => "Инспектировать", +// Language::FA => "بازرسی", // } // } @@ -1054,6 +1114,7 @@ pub fn packets_threshold_translation(language: Language) -> &'static str { Language::TR => "Paket eşiği aşıldığında beni bilgilendir", Language::RU => "Уведомить, когда порог по частоте пакетов превышен", Language::PT => "Notifique-me quando um limite de pacotes for excedido", + Language::FA => "به من اطلاع بده وقتی آستانه یک بسته فراتر رفت", } } @@ -1072,6 +1133,7 @@ pub fn bytes_threshold_translation(language: Language) -> &'static str { Language::TR => "Bayt eşiği aşıldığında beni bilgilendir", Language::RU => "Уведомить, когда порог по полосе в байтах превышен", Language::PT => "Notifique-me quando um limite de bytes for excedido", + Language::FA => "به من اطلاع بده وقتی آستانه یک بایت فراتر رفت", } } @@ -1089,6 +1151,7 @@ pub fn per_second_translation(language: Language) -> &'static str { Language::KO => "(초당)", Language::TR => "(her saniye)", Language::RU => "(в секунду)", + Language::FA => "(در ثانیه)", } } @@ -1107,6 +1170,7 @@ pub fn specify_multiples_translation(language: Language) -> &'static str { Language::TR => "; şunları da kullanabilirsin 'K', 'M' ve 'G'", Language::RU => "; Так же можно указать 'K', 'M' или 'G'", Language::PT => "; também pode especificar 'K', 'M' e 'G'", + Language::FA => "؛ شما همچنین می توانید 'M'، 'K' و 'G' را تعیین کنید", } } @@ -1127,6 +1191,7 @@ pub fn favorite_notification_translation(language: Language) -> &'static str { Language::TR => "Favorilerimde veri akışı olduğunda beni uyar", Language::RU => "Уведомить, если произошёл обмен данными в соединениях из избранного", Language::PT => "Notificar-me quando novos dados forem trocados dos meus favoritos", + Language::FA => "به من اطلاع بده وقتی داده جدید از پسندیده های من مبادله شد", } } @@ -1145,6 +1210,7 @@ pub fn threshold_translation(language: Language) -> String { Language::TR => "Eşik: ".to_string(), Language::RU => "Порог: ".to_string(), Language::PT => "Limite: ".to_string(), + Language::FA => "آستانه:".to_string(), } } @@ -1160,6 +1226,7 @@ pub fn volume_translation(language: Language, value: u8) -> String { Language::KO => format!("볼륨: {value:^3}%"), Language::TR => format!("Ses: {value:^3}%"), Language::RU => format!("Объём: {value:^3}%"), + Language::FA => format!("حجم: {value:^3}%"), } } @@ -1177,6 +1244,7 @@ pub fn sound_translation(language: Language) -> &'static str { Language::KO => "사운드:", Language::TR => "Ses:", Language::PT => "Som:", + Language::FA => "صدا:", } } @@ -1195,6 +1263,7 @@ pub fn open_report_translation(language: Language) -> &'static str { Language::TR => "Tam raporu aç", Language::RU => "Открыть полный отчёт", Language::PT => "Abrir relatório completo", + Language::FA => "گزارش کامل را باز کن", } } @@ -1213,6 +1282,7 @@ pub fn bytes_exceeded_translation(language: Language) -> &'static str { Language::TR => "Bayt eşik değeri aşıldı!", Language::RU => "Порог в байтах превышен!", Language::PT => "Limite de bytes excedido!", + Language::FA => "آستانه بایت فراتر رفت!", } } @@ -1232,6 +1302,7 @@ pub fn bytes_exceeded_value_translation(language: Language, value: &str) -> Stri Language::TR => format!("{trimmed_value} bayt aktarıldı"), Language::RU => format!("{trimmed_value} байт обмена информацией"), Language::PT => format!("Foram trocados {trimmed_value} bytes"), + Language::FA => format!("{trimmed_value} بایت مبادله شده است"), } } @@ -1250,6 +1321,7 @@ pub fn packets_exceeded_translation(language: Language) -> &'static str { Language::TR => "Paket eşik değeri aşıldı!", Language::RU => "Порог по числу пакетов превышен!", Language::PT => "Limite de pacotes excedido!", + Language::FA => "آستانه بسته فراتر رفت!", } } @@ -1280,6 +1352,7 @@ pub fn packets_exceeded_value_translation(language: Language, value: u32) -> Str 1 => "Foi trocado 1 pacote".to_owned(), npackets => format!("Foram trocados {npackets} pacotes"), }, + Language::FA => format!("{value} بسته مبادله شده است"), } } @@ -1298,6 +1371,7 @@ pub fn favorite_transmitted_translation(language: Language) -> &'static str { Language::TR => "Favorilerden yeni veri aktarıldı!", Language::RU => "Новый обмен данными в избранных соедиениях!", Language::PT => "Novos dados trocados dos favoritos!", + Language::FA => "مبادله داده جدید از پسندیده ها!", } } @@ -1342,6 +1416,9 @@ pub fn no_notifications_set_translation(language: Language) -> Text<'static> { Language::PT => "Ainda não ativou as notificações!\n\n\ Depois de ativá-las, esta página irá mostrar um registo das suas notificações\n\n\ Pode ativar as notificações nas definições:", + Language::FA => "شما هنوز اعلان ها را فعال نکرده اید!\n\n\ + پس از آنکه آن ها را فعال کنید، این صفحه یک کارنامه از اعلان های شما را نمایش خواهد داد\n\n + شما می توانید اعلان ها را از پیکربندی فعال کنید:", }) } @@ -1398,6 +1475,10 @@ pub fn no_notifications_received_translation(language: Language) -> Text<'static Language::PT => { "Nada para ver neste momento...\n\n\ Quando receber uma notificação, ela será mostrada aqui" + }, + Language::FA => { + "در حال حاضر هیچ چیزی برای دیدن نیست...\n\n\ + وقتی شما اعلانی دریافت می کنید، در اینجا نمایش داده خواهد شد" } }) } @@ -1417,5 +1498,6 @@ pub fn only_last_30_translation(language: Language) -> &'static str { Language::TR => "Sadece son 30 bildirim gösterilmektedir", Language::RU => "Тут показываются только последние 30 уведомлений", Language::PT => "São mostradas apenas as últimas 30 notificações", + Language::FA => "تنها ۳۰ اعلان آخر نمایش داده شده اند", } } diff --git a/src/translations/translations_2.rs b/src/translations/translations_2.rs index fc467fc4..025cd9b5 100644 --- a/src/translations/translations_2.rs +++ b/src/translations/translations_2.rs @@ -7,6 +7,7 @@ pub fn new_version_available_translation(language: Language) -> &'static str { Language::EN => "A newer version is available on GitHub", Language::IT => "Una versione più recente è disponibile su GitHub", Language::RU => "Новая версия доступна на GitHub", + Language::FA => "یک نسخه جدیدتر روی GitHub موجود است", _ => "A newer version is available on GitHub", } } diff --git a/src/translations/types/language.rs b/src/translations/types/language.rs index 692fa63a..9dd8fd0b 100644 --- a/src/translations/types/language.rs +++ b/src/translations/types/language.rs @@ -29,6 +29,8 @@ pub enum Language { TR, /// Russian RU, + /// Persian + FA, } impl Default for Language { @@ -45,8 +47,19 @@ impl Language { Language::RU, Language::ZH, ]; - pub(crate) const COL2: [Language; 4] = [Language::DE, Language::IT, Language::PT, Language::TR]; - pub(crate) const COL3: [Language; 4] = [Language::ES, Language::KO, Language::RO, Language::UK]; + pub(crate) const COL2: [Language; 5] = [ + Language::DE, + Language::IT, + Language::PT, + Language::TR, + Language::FA, + ]; + pub(crate) const COL3: [Language; 4] = [ + Language::ES, + Language::KO, + Language::RO, + Language::UK, + ]; pub fn get_radio_label(&self) -> &str { match self { @@ -63,6 +76,7 @@ impl Language { Language::TR => "Türkçe", Language::RU => "Русский", Language::PT => "Português", + Language::FA => "فارسی", } } } diff --git a/src/utils/countries.rs b/src/utils/countries.rs index 0f4f395f..920f58ff 100644 --- a/src/utils/countries.rs +++ b/src/utils/countries.rs @@ -520,6 +520,7 @@ pub fn get_flag_from_language_code(language: &str) -> Image { "RU" => RU, "TR" => TR, "UK" => UA, + "FA" => IR, _ => UNKNOWN, }))) .width(Length::Fixed(FLAGS_WIDTH))