From a3638f4bfb99856ffced16132aa4927da5e54e21 Mon Sep 17 00:00:00 2001 From: Kozova1 Date: Wed, 24 Mar 2021 00:07:36 +0200 Subject: [PATCH 1/2] Added Hebrew translations for most layouts. This commit adds translations in Hebrew for most layouts. Note: the hebrew file seems to be named incorrectly, is that intentional? (he_IL.txt instead of he-IL.txt) Signed-off-by: Kozova1 --- data/langs/he_IL.txt | 19 +++++++++++++++++++ src/resources.rs | 1 + 2 files changed, 20 insertions(+) diff --git a/data/langs/he_IL.txt b/data/langs/he_IL.txt index e69de29b..221cdf77 100644 --- a/data/langs/he_IL.txt +++ b/data/langs/he_IL.txt @@ -0,0 +1,19 @@ +be בלגית +br פורטוגזית (ברזיל) +cz צ'כית +de גרמנית +dk דנית +es ספרדית +emoji אימוג'י +fi פינית +fr צרפתית +gr יוונית +il עברית +it איטלקית +no נורווגית +pl פולנית +ru רוסית +se שוודית +terminal טרמינל +ua אוקראינית +us אנגלית (ארה"ב) diff --git a/src/resources.rs b/src/resources.rs index cb7544b9..d449b40f 100644 --- a/src/resources.rs +++ b/src/resources.rs @@ -122,6 +122,7 @@ const LAYOUT_NAMES: &[(*const str, *const str)] = &[ ("en-US", include_str!("../data/langs/en-US.txt")), ("es-ES", include_str!("../data/langs/es-ES.txt")), ("fur-IT", include_str!("../data/langs/fur-IT.txt")), + ("he-IL", include_str!("../data/langs/he_IL.txt")), ("ja-JP", include_str!("../data/langs/ja-JP.txt")), ("pl-PL", include_str!("../data/langs/pl-PL.txt")), ("ru-RU", include_str!("../data/langs/ru-RU.txt")), From d8ca9f47ca4d35791b8fe9a02dac7d35950a3be8 Mon Sep 17 00:00:00 2001 From: Kozova1 Date: Tue, 30 Mar 2021 20:30:53 +0300 Subject: [PATCH 2/2] moved data/langs/he_IL.txt -> data/langs/he-IL.txt to better conform with existing translations. Signed-off-by: Kozova1 --- data/langs/{he_IL.txt => he-IL.txt} | 0 src/resources.rs | 96 ++++++++++++++--------------- 2 files changed, 45 insertions(+), 51 deletions(-) rename data/langs/{he_IL.txt => he-IL.txt} (100%) diff --git a/data/langs/he_IL.txt b/data/langs/he-IL.txt similarity index 100% rename from data/langs/he_IL.txt rename to data/langs/he-IL.txt diff --git a/src/resources.rs b/src/resources.rs index d449b40f..cb352860 100644 --- a/src/resources.rs +++ b/src/resources.rs @@ -2,8 +2,8 @@ * This could be done using GResource, but that would need additional work. */ -use std::collections::HashMap; use ::locale::Translation; +use std::collections::HashMap; use std::iter::FromIterator; @@ -16,75 +16,73 @@ const KEYBOARDS: &[(*const str, *const str)] = &[ // fallback layout. ("us", include_str!("../data/keyboards/us.yaml")), ("us_wide", include_str!("../data/keyboards/us_wide.yaml")), - // Language layouts: keep alphabetical. ("be", include_str!("../data/keyboards/be.yaml")), ("be_wide", include_str!("../data/keyboards/be_wide.yaml")), - ("bg", include_str!("../data/keyboards/bg.yaml")), - ("br", include_str!("../data/keyboards/br.yaml")), - ("de", include_str!("../data/keyboards/de.yaml")), ("de_wide", include_str!("../data/keyboards/de_wide.yaml")), - ("cz", include_str!("../data/keyboards/cz.yaml")), ("cz_wide", include_str!("../data/keyboards/cz_wide.yaml")), - - ("cz+qwerty", include_str!("../data/keyboards/cz+qwerty.yaml")), - ("cz+qwerty_wide", include_str!("../data/keyboards/cz+qwerty_wide.yaml")), - + ( + "cz+qwerty", + include_str!("../data/keyboards/cz+qwerty.yaml"), + ), + ( + "cz+qwerty_wide", + include_str!("../data/keyboards/cz+qwerty_wide.yaml"), + ), ("dk", include_str!("../data/keyboards/dk.yaml")), - ("epo", include_str!("../data/keyboards/epo.yaml")), - ("es", include_str!("../data/keyboards/es.yaml")), ("es+cat", include_str!("../data/keyboards/es+cat.yaml")), - ("fi", include_str!("../data/keyboards/fi.yaml")), - ("fr", include_str!("../data/keyboards/fr.yaml")), ("fr_wide", include_str!("../data/keyboards/fr_wide.yaml")), - ("gr", include_str!("../data/keyboards/gr.yaml")), - ("il", include_str!("../data/keyboards/il.yaml")), - ("ir", include_str!("../data/keyboards/ir.yaml")), ("ir_wide", include_str!("../data/keyboards/ir_wide.yaml")), - ("it", include_str!("../data/keyboards/it.yaml")), ("it+fur", include_str!("../data/keyboards/it+fur.yaml")), - ("jp+kana", include_str!("../data/keyboards/jp+kana.yaml")), - ("jp+kana_wide", include_str!("../data/keyboards/jp+kana_wide.yaml")), - + ( + "jp+kana_wide", + include_str!("../data/keyboards/jp+kana_wide.yaml"), + ), ("no", include_str!("../data/keyboards/no.yaml")), - ("pl", include_str!("../data/keyboards/pl.yaml")), ("pl_wide", include_str!("../data/keyboards/pl_wide.yaml")), - ("ru", include_str!("../data/keyboards/ru.yaml")), - ("se", include_str!("../data/keyboards/se.yaml")), - ("th", include_str!("../data/keyboards/th.yaml")), ("th_wide", include_str!("../data/keyboards/th_wide.yaml")), - ("ua", include_str!("../data/keyboards/ua.yaml")), - - ("us+colemak", include_str!("../data/keyboards/us+colemak.yaml")), - ("us+colemak_wide", include_str!("../data/keyboards/us+colemak_wide.yaml")), - - ("us+dvorak", include_str!("../data/keyboards/us+dvorak.yaml")), - ("us+dvorak_wide", include_str!("../data/keyboards/us+dvorak_wide.yaml")), - + ( + "us+colemak", + include_str!("../data/keyboards/us+colemak.yaml"), + ), + ( + "us+colemak_wide", + include_str!("../data/keyboards/us+colemak_wide.yaml"), + ), + ( + "us+dvorak", + include_str!("../data/keyboards/us+dvorak.yaml"), + ), + ( + "us+dvorak_wide", + include_str!("../data/keyboards/us+dvorak_wide.yaml"), + ), // Others ("number", include_str!("../data/keyboards/number.yaml")), - // layout+overlay ("terminal", include_str!("../data/keyboards/terminal.yaml")), - ("terminal_wide", include_str!("../data/keyboards/terminal_wide.yaml")), + ( + "terminal_wide", + include_str!("../data/keyboards/terminal_wide.yaml"), + ), // Overlays ("emoji", include_str!("../data/keyboards/emoji.yaml")), ]; @@ -92,7 +90,8 @@ const KEYBOARDS: &[(*const str, *const str)] = &[ pub fn get_keyboard(needle: &str) -> Option<&'static str> { // Need to dereference in unsafe code // comparing *const str to &str will compare pointers - KEYBOARDS.iter() + KEYBOARDS + .iter() .find(|(name, _)| { let name: *const str = *name; (unsafe { &*name }) == needle @@ -103,17 +102,16 @@ pub fn get_keyboard(needle: &str) -> Option<&'static str> { }) } -const OVERLAY_NAMES: &[*const str] = &[ - "emoji", - "terminal", -]; +const OVERLAY_NAMES: &[*const str] = &["emoji", "terminal"]; pub fn get_overlays() -> Vec<&'static str> { - OVERLAY_NAMES.iter() + OVERLAY_NAMES + .iter() .map(|name| { let name: *const str = *name; unsafe { &*name } - }).collect() + }) + .collect() } /// Translations of the layout identifier strings @@ -122,16 +120,15 @@ const LAYOUT_NAMES: &[(*const str, *const str)] = &[ ("en-US", include_str!("../data/langs/en-US.txt")), ("es-ES", include_str!("../data/langs/es-ES.txt")), ("fur-IT", include_str!("../data/langs/fur-IT.txt")), - ("he-IL", include_str!("../data/langs/he_IL.txt")), + ("he-IL", include_str!("../data/langs/he-IL.txt")), ("ja-JP", include_str!("../data/langs/ja-JP.txt")), ("pl-PL", include_str!("../data/langs/pl-PL.txt")), ("ru-RU", include_str!("../data/langs/ru-RU.txt")), ]; -pub fn get_layout_names(lang: &str) - -> Option>> -{ - let translations = LAYOUT_NAMES.iter() +pub fn get_layout_names(lang: &str) -> Option>> { + let translations = LAYOUT_NAMES + .iter() .find(|(name, _data)| { let name: *const str = *name; (unsafe { &*name }) == lang @@ -156,10 +153,7 @@ fn parse_line(line: &str) -> Option<(&str, Translation)> { } fn make_mapping(data: &str) -> HashMap<&str, Translation> { - HashMap::from_iter( - data.split("\n") - .filter_map(parse_line) - ) + HashMap::from_iter(data.split("\n").filter_map(parse_line)) } #[cfg(test)]