Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce usage of String in translations code. #524

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ All Sniffnet releases with the relative changes are documented in this file.
- Japanese - [#504](https://github.com/GyulyVGC/sniffnet/pull/504)
- Uzbek - [#510](https://github.com/GyulyVGC/sniffnet/pull/510)
- Increased the range of selectable zoom values (fixes [#542](https://github.com/GyulyVGC/sniffnet/issues/542))
- Reduced `String` allocations in translation code ([#524](https://github.com/GyulyVGC/sniffnet/pull/524))

## [1.3.0] - 2024-04-08
- Introduced thumbnail mode, enabling users to keep an eye on Sniffnet while doing other tasks ([#484](https://github.com/GyulyVGC/sniffnet/pull/484))
Expand Down
35 changes: 15 additions & 20 deletions src/countries/country_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -286,27 +286,21 @@ fn get_flag_from_country(
Country::ZM => ZM,
Country::ZW => ZW,
Country::ZZ => {
if is_loopback {
tooltip = your_network_adapter_translation(language);
svg_style = SvgType::AdaptColor;
COMPUTER
let (flag, new_tooltip) = if is_loopback {
(COMPUTER, your_network_adapter_translation(language))
} else if traffic_type.eq(&TrafficType::Multicast) {
tooltip = "Multicast".to_string();
svg_style = SvgType::AdaptColor;
MULTICAST
(MULTICAST, "Multicast")
} else if traffic_type.eq(&TrafficType::Broadcast) {
tooltip = "Broadcast".to_string();
svg_style = SvgType::AdaptColor;
BROADCAST
(BROADCAST, "Broadcast")
} else if is_local {
tooltip = local_translation(language);
svg_style = SvgType::AdaptColor;
HOME
(HOME, local_translation(language))
} else {
tooltip = unknown_translation(language);
svg_style = SvgType::AdaptColor;
UNKNOWN
}
(UNKNOWN, unknown_translation(language))
};

svg_style = SvgType::AdaptColor;
tooltip = new_tooltip.to_string();
flag
}
})))
.style(svg_style)
Expand Down Expand Up @@ -383,11 +377,12 @@ pub fn get_computer_tooltip(

let tooltip = match (is_my_address, is_local, traffic_type) {
(true, _, _) => your_network_adapter_translation(language),
(false, _, TrafficType::Multicast) => "Multicast".to_string(),
(false, _, TrafficType::Broadcast) => "Broadcast".to_string(),
(false, _, TrafficType::Multicast) => "Multicast",
(false, _, TrafficType::Broadcast) => "Broadcast",
(false, true, _) => local_translation(language),
(false, false, TrafficType::Unicast) => unknown_translation(language),
};
}
.to_string();

Tooltip::new(
content,
Expand Down
2 changes: 1 addition & 1 deletion src/gui/components/modal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ fn get_modal_header(
font_headers: Font,
color_gradient: GradientType,
language: Language,
title: String,
title: &'static str,
) -> Container<'static, Message, StyleType> {
Container::new(
Row::new()
Expand Down
2 changes: 1 addition & 1 deletion src/gui/pages/notifications_page.rs
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ fn bytes_notification_log(
language: Language,
font: Font,
) -> Container<'static, Message, StyleType> {
let mut threshold_str = threshold_translation(language);
let mut threshold_str = threshold_translation(language).to_string();
threshold_str.push_str(": ");
threshold_str.push_str(&ByteMultiple::formatted_string(
(logged_notification.threshold).into(),
Expand Down
123 changes: 61 additions & 62 deletions src/translations/translations.rs
Original file line number Diff line number Diff line change
Expand Up @@ -328,27 +328,27 @@ pub fn ask_quit_translation(language: Language) -> Text<'static, StyleType> {
})
}

pub fn quit_analysis_translation(language: Language) -> String {
pub fn quit_analysis_translation(language: Language) -> &'static str {
match language {
Language::EN => "Quit analysis".to_string(),
Language::IT => "Interrompi analisi".to_string(),
Language::FR => "Quitter l'analyse".to_string(),
Language::ES => "Quitar el análisis".to_string(),
Language::PL => "Zakończ analize".to_string(),
Language::DE => "Analyse beenden".to_string(),
Language::UK => "Закінчити аналіз".to_string(),
Language::ZH => "退出监控".to_string(),
Language::RO => "Renunță la analiză".to_string(),
Language::KO => "분석종료".to_string(),
Language::TR => "Analizden çık".to_string(),
Language::RU => "Закончить анализ".to_string(),
Language::PT => "Sair da análise".to_string(),
Language::EL => "Έξοδος ανάλυσης".to_string(),
// Language::FA => "خروج از تحلیل".to_string(),
Language::SV => "Avsluta analys".to_string(),
Language::FI => "Lopeta analyysi".to_string(),
Language::JA => "分析の終了".to_string(),
Language::UZ => "Tahlildan chiqish".to_string(),
Language::EN => "Quit analysis",
Language::IT => "Interrompi analisi",
Language::FR => "Quitter l'analyse",
Language::ES => "Quitar el análisis",
Language::PL => "Zakończ analize",
Language::DE => "Analyse beenden",
Language::UK => "Закінчити аналіз",
Language::ZH => "退出监控",
Language::RO => "Renunță la analiză",
Language::KO => "분석종료",
Language::TR => "Analizden çık",
Language::RU => "Закончить анализ",
Language::PT => "Sair da análise",
Language::EL => "Έξοδος ανάλυσης",
// Language::FA => "خروج از تحلیل",
Language::SV => "Avsluta analys",
Language::FI => "Lopeta analyysi",
Language::JA => "分析の終了",
Language::UZ => "Tahlildan chiqish",
}
}

Expand Down Expand Up @@ -376,27 +376,27 @@ pub fn ask_clear_all_translation(language: Language) -> Text<'static, StyleType>
})
}

pub fn clear_all_translation(language: Language) -> String {
pub fn clear_all_translation(language: Language) -> &'static str {
match language {
Language::EN => "Clear all".to_string(),
Language::IT => "Elimina tutto".to_string(),
Language::FR => "Tout effacer".to_string(),
Language::ES => "Borrar todo".to_string(),
Language::PL => "Wyczyść wszystko".to_string(),
Language::DE => "Alle löschen".to_string(),
Language::UK => "Видалити все".to_string(),
Language::ZH => "清除所有".to_string(),
Language::RO => "Ștergeți tot".to_string(),
Language::KO => "모두 지우기".to_string(),
Language::TR => "Hepsini temizle".to_string(),
Language::RU => "Очистить всё".to_string(),
Language::PT => "Limpar tudo".to_string(),
Language::EL => "Εκκαθάριση όλων".to_string(),
// Language::FA => "پاک کردن همه".to_string(),
Language::SV => "Radera alla".to_string(),
Language::FI => "Tyhjennä kaikki".to_string(),
Language::JA => "すべて削除".to_string(),
Language::UZ => "Barchasini tozalash".to_string(),
Language::EN => "Clear all",
Language::IT => "Elimina tutto",
Language::FR => "Tout effacer",
Language::ES => "Borrar todo",
Language::PL => "Wyczyść wszystko",
Language::DE => "Alle löschen",
Language::UK => "Видалити все",
Language::ZH => "清除所有",
Language::RO => "Ștergeți tot",
Language::KO => "모두 지우기",
Language::TR => "Hepsini temizle",
Language::RU => "Очистить всё",
Language::PT => "Limpar tudo",
Language::EL => "Εκκαθάριση όλων",
// Language::FA => "پاک کردن همه",
Language::SV => "Radera alla",
Language::FI => "Tyhjennä kaikki",
Language::JA => "すべて削除",
Language::UZ => "Barchasini tozalash",
}
}

Expand Down Expand Up @@ -1180,7 +1180,7 @@ pub fn active_filters_translation(language: Language) -> &'static str {
}
}

pub fn none_translation(language: Language) -> String {
pub fn none_translation(language: Language) -> &'static str {
match language {
Language::EN => "none",
Language::IT => "nessuno",
Expand All @@ -1202,7 +1202,6 @@ pub fn none_translation(language: Language) -> String {
Language::JA => "なし",
Language::UZ => "hech biri",
}
.to_string()
}

pub fn yeti_night_translation(language: Language) -> &'static str {
Expand Down Expand Up @@ -1557,27 +1556,27 @@ pub fn favorite_notification_translation(language: Language) -> &'static str {
}
}

pub fn threshold_translation(language: Language) -> String {
pub fn threshold_translation(language: Language) -> &'static str {
match language {
Language::EN => "Threshold".to_string(),
Language::IT => "Soglia".to_string(),
Language::FR => "Seuil".to_string(),
Language::ES => "Límite".to_string(),
Language::PL => "Próg".to_string(),
Language::DE => "Schwellenwert".to_string(),
Language::UK => "Ліміт".to_string(),
Language::ZH => "阈值".to_string(),
Language::RO => "Prag".to_string(),
Language::KO => "임계값".to_string(),
Language::TR => "Eşik".to_string(),
Language::RU => "Порог".to_string(),
Language::PT => "Limite".to_string(),
Language::EL => "όριο".to_string(),
// Language::FA => "آستانه".to_string(),
Language::SV => "Gräns".to_string(),
Language::FI => "Raja".to_string(),
Language::JA => "閾値".to_string(),
Language::UZ => "Eshik".to_string(),
Language::EN => "Threshold",
Language::IT => "Soglia",
Language::FR => "Seuil",
Language::ES => "Límite",
Language::PL => "Próg",
Language::DE => "Schwellenwert",
Language::UK => "Ліміт",
Language::ZH => "阈值",
Language::RO => "Prag",
Language::KO => "임계값",
Language::TR => "Eşik",
Language::RU => "Порог",
Language::PT => "Limite",
Language::EL => "όριο",
// Language::FA => "آستانه",
Language::SV => "Gräns",
Language::FI => "Raja",
Language::JA => "閾値",
Language::UZ => "Eshik",
}
}

Expand Down
9 changes: 3 additions & 6 deletions src/translations/translations_2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ pub fn only_top_30_items_translation(language: Language) -> &'static str {
// }
// }

pub fn local_translation(language: Language) -> String {
pub fn local_translation(language: Language) -> &'static str {
match language {
Language::EN => "Local network",
Language::IT => "Rete locale",
Expand All @@ -215,10 +215,9 @@ pub fn local_translation(language: Language) -> String {
Language::PT => "Rede local",
_ => "Local network",
}
.to_string()
}

pub fn unknown_translation(language: Language) -> String {
pub fn unknown_translation(language: Language) -> &'static str {
match language {
Language::EN => "Unknown location",
Language::IT => "Localizzazione sconosciuta",
Expand All @@ -240,10 +239,9 @@ pub fn unknown_translation(language: Language) -> String {
Language::PT => "Localização desconhecida",
_ => "Unknown location",
}
.to_string()
}

pub fn your_network_adapter_translation(language: Language) -> String {
pub fn your_network_adapter_translation(language: Language) -> &'static str {
match language {
Language::EN => "Your network adapter",
Language::IT => "La tua scheda di rete",
Expand All @@ -265,7 +263,6 @@ pub fn your_network_adapter_translation(language: Language) -> String {
Language::PT => "Seu adaptador de rede",
_ => "Your network adapter",
}
.to_string()
}

pub fn socket_address_translation(language: Language) -> &'static str {
Expand Down
11 changes: 6 additions & 5 deletions src/translations/translations_3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ pub fn unsupported_link_type_translation(
language: Language,
adapter: &str,
) -> Text<'static, StyleType> {
let mut string = match language {
let translation = match language {
Language::EN => "The link type associated with this adapter is not supported by Sniffnet yet...",
// Language::FA => "نوع پیوند مرتبط با این مبدل هنوز توسط Sniffnet پشتیبانی نمی شود...",
Language::ES => "La conexión asociada con este adaptador aún no esta implementada en Sniffnet...",
Expand All @@ -183,11 +183,12 @@ pub fn unsupported_link_type_translation(
Language::JA => "このアダプターのリンク タイプは Sniffnet ではまだサポートされていません...",
Language::UZ => "Ushbu adapter bilan bog'langan havola turi hozircha Sniffnet tomonidan qo'llab quvvatlanmaydi",
_ => "The link type associated with this adapter is not supported by Sniffnet yet...",
}.to_string();
};

let network_adapter_translation = network_adapter_translation(language);
string.push_str(&format!("\n\n{network_adapter_translation}: {adapter}"));
Text::new(string)
Text::new(format!(
"{translation}\n\n{}: {adapter}",
network_adapter_translation(language)
))
}

pub fn style_from_file_translation(language: Language) -> &'static str {
Expand Down