summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-09-11 19:49:21 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-10 18:30:28 +0000
commitb4680fcb7ff10d8ee1a7fc25add13795ae103da3 (patch)
treee8f3731137cf207e7bf5c6597acf7ccb39a16d3d
parent8e1c90f1c65c5f8c7639f8ed55bb4fd643b55a34 (diff)
downloadmullvadvpn-b4680fcb7ff10d8ee1a7fc25add13795ae103da3.tar.xz
mullvadvpn-b4680fcb7ff10d8ee1a7fc25add13795ae103da3.zip
Create helper function to convert between plurals
-rw-r--r--android/translations-converter/src/main.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/android/translations-converter/src/main.rs b/android/translations-converter/src/main.rs
index 5ba5fa4790..76db93923d 100644
--- a/android/translations-converter/src/main.rs
+++ b/android/translations-converter/src/main.rs
@@ -224,6 +224,24 @@ fn generate_translations(
missing_translations.retain(|translation, _| known_strings.contains_key(translation));
}
+/// Converts a gettext plural form into the plural quantities used by Android.
+///
+/// Returns an iterator that can be zipped with the gettext plural variants to produce the Android
+/// plural string items.
+fn android_plural_quantities_from_gettext_plural_form(
+ plural_form: gettext::PluralForm,
+) -> impl Iterator<Item = android::PluralQuantity> + Clone {
+ use android::PluralQuantity::*;
+ use gettext::PluralForm;
+
+ match plural_form {
+ PluralForm::Single => vec![Other],
+ PluralForm::SingularForOne | PluralForm::SingularForZeroAndOne => vec![One, Other],
+ PluralForm::Polish | PluralForm::Russian => vec![One, Few, Many, Other],
+ }
+ .into_iter()
+}
+
/// Tries to map a translation locale to a locale used on the Mullvad website.
///
/// The mapping is trivial if no region is specified. Otherwise the region code must be manually