summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-03-29 10:18:41 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-03-29 10:18:41 -0300
commit242bee0d8855e90eef90944efdf38538b00e6500 (patch)
tree9706c8751f2f1c9f114c7c889ca9c5c797b70e30 /android
parent307507c0cabb11daa38023f75c57fd1f100870eb (diff)
parent2a4d0a1febd93c772f40a63ea3cf2256ab67bf94 (diff)
downloadmullvadvpn-242bee0d8855e90eef90944efdf38538b00e6500.tar.xz
mullvadvpn-242bee0d8855e90eef90944efdf38538b00e6500.zip
Merge branch 'add-ci-job-for-translations'
Diffstat (limited to 'android')
-rw-r--r--android/src/main/res/values-da/strings.xml1
-rw-r--r--android/src/main/res/values-de/strings.xml1
-rw-r--r--android/src/main/res/values-es/strings.xml1
-rw-r--r--android/src/main/res/values-fi/strings.xml1
-rw-r--r--android/src/main/res/values-fr/strings.xml1
-rw-r--r--android/src/main/res/values-it/strings.xml1
-rw-r--r--android/src/main/res/values-ja/strings.xml1
-rw-r--r--android/src/main/res/values-ko/strings.xml1
-rw-r--r--android/src/main/res/values-nb/strings.xml3
-rw-r--r--android/src/main/res/values-nl/strings.xml1
-rw-r--r--android/src/main/res/values-pl/strings.xml1
-rw-r--r--android/src/main/res/values-pt/strings.xml1
-rw-r--r--android/src/main/res/values-ru/strings.xml1
-rw-r--r--android/src/main/res/values-sv/strings.xml1
-rw-r--r--android/src/main/res/values-th/strings.xml1
-rw-r--r--android/src/main/res/values-tr/strings.xml1
-rw-r--r--android/src/main/res/values-zh-rCN/strings.xml1
-rw-r--r--android/src/main/res/values-zh-rTW/strings.xml1
-rw-r--r--android/translations-converter/src/gettext.rs62
-rw-r--r--android/translations-converter/src/main.rs28
20 files changed, 70 insertions, 40 deletions
diff --git a/android/src/main/res/values-da/strings.xml b/android/src/main/res/values-da/strings.xml
index 6db7260fdb..0059da65bc 100644
--- a/android/src/main/res/values-da/strings.xml
+++ b/android/src/main/res/values-da/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">OPDATERING TILGÆNGELIG</string>
<string name="update_available_footer">Opdatering tilgængelig, download den for at forblive sikker.</string>
<string name="user_email_hint">Din e-mail (valgfrit)</string>
- <string name="user_message_hint">Beskriv dit problem</string>
<string name="view_logs">Se app-logfiler</string>
<string name="virtual_adapter_problem">Fejl ved virtuel adapter</string>
<string name="voucher_already_used">Kuponkode er allerede brugt.</string>
diff --git a/android/src/main/res/values-de/strings.xml b/android/src/main/res/values-de/strings.xml
index 6015649ed6..59c81e727a 100644
--- a/android/src/main/res/values-de/strings.xml
+++ b/android/src/main/res/values-de/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">UPDATE VERFÜGBAR</string>
<string name="update_available_footer">Update verfügbar, laden Sie es herunter, um sicher zu bleiben.</string>
<string name="user_email_hint">Ihre E-Mail-Adresse (optional)</string>
- <string name="user_message_hint">Beschreiben Sie Ihr Problem</string>
<string name="view_logs">App-Protokolle anzeigen</string>
<string name="virtual_adapter_problem">Virtueller Adapterfehler</string>
<string name="voucher_already_used">Der Gutscheincode wurde bereits verwendet.</string>
diff --git a/android/src/main/res/values-es/strings.xml b/android/src/main/res/values-es/strings.xml
index 2ed781167c..2fddea62c5 100644
--- a/android/src/main/res/values-es/strings.xml
+++ b/android/src/main/res/values-es/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">ACTUALIZACIÓN DISPONIBLE</string>
<string name="update_available_footer">Actualización disponible, descárguela para garantizar su seguridad.</string>
<string name="user_email_hint">Su correo electrónico (opcional)</string>
- <string name="user_message_hint">Describa el problema</string>
<string name="view_logs">Ver registros de la aplicación</string>
<string name="virtual_adapter_problem">Error del adaptador virtual</string>
<string name="voucher_already_used">El código del cupón ya se ha usado.</string>
diff --git a/android/src/main/res/values-fi/strings.xml b/android/src/main/res/values-fi/strings.xml
index 191f4ef592..a0a89b5050 100644
--- a/android/src/main/res/values-fi/strings.xml
+++ b/android/src/main/res/values-fi/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">PÄIVITYS SAATAVILLA</string>
<string name="update_available_footer">Päivitys saatavilla. Lataa se pysyäksesi turvassa.</string>
<string name="user_email_hint">Sähköpostisi (valinnainen)</string>
- <string name="user_message_hint">Kuvaile ongelmaasi</string>
<string name="view_logs">Tarkastele sovelluslokeja</string>
<string name="virtual_adapter_problem">Virtuaalisovittimen virhe</string>
<string name="voucher_already_used">Kuponkikoodi on jo käytetty.</string>
diff --git a/android/src/main/res/values-fr/strings.xml b/android/src/main/res/values-fr/strings.xml
index 7ec7f702dd..7e7a3613b6 100644
--- a/android/src/main/res/values-fr/strings.xml
+++ b/android/src/main/res/values-fr/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">MISE À JOUR DISPONIBLE</string>
<string name="update_available_footer">Mise à jour disponible. Téléchargez-la pour rester en sécurité.</string>
<string name="user_email_hint">Votre e-mail (facultatif)</string>
- <string name="user_message_hint">Décrivez votre problème</string>
<string name="view_logs">Afficher les journaux de l\'application</string>
<string name="virtual_adapter_problem">Erreur d\'adaptateur virtuel</string>
<string name="voucher_already_used">Le code du bon a déjà été utilisé.</string>
diff --git a/android/src/main/res/values-it/strings.xml b/android/src/main/res/values-it/strings.xml
index fc866906e3..16a734ae73 100644
--- a/android/src/main/res/values-it/strings.xml
+++ b/android/src/main/res/values-it/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">AGGIORNAMENTO DISPONIBILE</string>
<string name="update_available_footer">Aggiornamento disponibile; scarica per rimanere protetto.</string>
<string name="user_email_hint">La tua e-mail (opzionale)</string>
- <string name="user_message_hint">Descrivi il tuo problema</string>
<string name="view_logs">Visualizza registri app</string>
<string name="virtual_adapter_problem">Errore scheda virtuale</string>
<string name="voucher_already_used">Il codice voucher è già stato utilizzato.</string>
diff --git a/android/src/main/res/values-ja/strings.xml b/android/src/main/res/values-ja/strings.xml
index 325f967527..e10cec9c2c 100644
--- a/android/src/main/res/values-ja/strings.xml
+++ b/android/src/main/res/values-ja/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">アップデート可</string>
<string name="update_available_footer">アップデートできます。ダウンロードしてセキュリティを維持してください。</string>
<string name="user_email_hint">あなたのメールアドレス(任意)</string>
- <string name="user_message_hint">問題の内容をご説明ください</string>
<string name="view_logs">アプリのログを表示</string>
<string name="virtual_adapter_problem">仮想アダプタエラー</string>
<string name="voucher_already_used">バウチャーコードはすでに使用されています。</string>
diff --git a/android/src/main/res/values-ko/strings.xml b/android/src/main/res/values-ko/strings.xml
index 3b763027c3..b2c3bb1cca 100644
--- a/android/src/main/res/values-ko/strings.xml
+++ b/android/src/main/res/values-ko/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">업데이트 사용 가능</string>
<string name="update_available_footer">업데이트 사용 가능, 안전을 유지하기 위해 다운로드하세요.</string>
<string name="user_email_hint">이메일(선택 사항)</string>
- <string name="user_message_hint">문제 설명</string>
<string name="view_logs">앱 로그 보기</string>
<string name="virtual_adapter_problem">가상 어댑터 오류</string>
<string name="voucher_already_used">이미 사용된 바우처 코드입니다.</string>
diff --git a/android/src/main/res/values-nb/strings.xml b/android/src/main/res/values-nb/strings.xml
index ecbf34198e..dc154a4cd0 100644
--- a/android/src/main/res/values-nb/strings.xml
+++ b/android/src/main/res/values-nb/strings.xml
@@ -54,7 +54,7 @@
<string name="failed_to_create_account">Kunne ikke opprette konto</string>
<string name="failed_to_generate_key">Generering av en nøkkel mislyktes</string>
<string name="failed_to_send">Kunne ikke sende</string>
- <string name="failed_to_send_details">Du må gå tilbake til hovedskjermen til appen og trykke på \\\"Koble fra\\\" før du kan prøve på nytt. Men det er ingen grunn til bekymring, informasjonen du har skrevet i skjemaet blir ikke borte.</string>
+ <string name="failed_to_send_details">Du må gå tilbake til hovedskjermen til appen og trykke på \"Koble fra\" før du kan prøve på nytt. Men det er ingen grunn til bekymring, informasjonen du har skrevet i skjemaet blir ikke borte.</string>
<string name="faqs_and_guides">Ofte stilte spørsmål og veiledninger</string>
<string name="faqs_and_guides_url">https://mullvad.net/nb/help/tag/mullvad-app/</string>
<string name="foreground_notification_channel_description">Viser gjeldende VPN-tunnelstatus</string>
@@ -115,7 +115,6 @@
<string name="update_available">OPPDATERING TILGJENGELIG</string>
<string name="update_available_footer">Oppdatering tilgjengelig. Last ned for å oppdatere sikkerheten.</string>
<string name="user_email_hint">E-post (valgfritt)</string>
- <string name="user_message_hint">Beskriv problemet</string>
<string name="view_logs">Se applogger</string>
<string name="virtual_adapter_problem">Virtuell adapterfeil</string>
<string name="voucher_already_used">Kupongkoden er allerede brukt.</string>
diff --git a/android/src/main/res/values-nl/strings.xml b/android/src/main/res/values-nl/strings.xml
index 6082f4fe3c..7d6979492d 100644
--- a/android/src/main/res/values-nl/strings.xml
+++ b/android/src/main/res/values-nl/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">UPDATE BESCHIKBAAR</string>
<string name="update_available_footer">Update beschikbaar, download deze voor optimale beveiliging.</string>
<string name="user_email_hint">Uw e-mailadres (optioneel)</string>
- <string name="user_message_hint">Beschrijf het probleem</string>
<string name="view_logs">Applogboeken weergeven</string>
<string name="virtual_adapter_problem">Fout virtuele adapter</string>
<string name="voucher_already_used">Vouchercode is al gebruikt.</string>
diff --git a/android/src/main/res/values-pl/strings.xml b/android/src/main/res/values-pl/strings.xml
index 90f162ddab..3e825a1e76 100644
--- a/android/src/main/res/values-pl/strings.xml
+++ b/android/src/main/res/values-pl/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">DOSTĘPNA JEST AKTUALIZACJA</string>
<string name="update_available_footer">Dostępna jest aktualizacja. Aby zachować bezpieczeństwo, pobierz ją.</string>
<string name="user_email_hint">Twój adres e-mail (opcjonalnie)</string>
- <string name="user_message_hint">Opisz problem</string>
<string name="view_logs">Wyświetl dzienniki aplikacji</string>
<string name="virtual_adapter_problem">Błąd wirtualnej karty sieciowej</string>
<string name="voucher_already_used">Kod z tego kuponu został już użyty.</string>
diff --git a/android/src/main/res/values-pt/strings.xml b/android/src/main/res/values-pt/strings.xml
index c16581d7ed..d05decf3b0 100644
--- a/android/src/main/res/values-pt/strings.xml
+++ b/android/src/main/res/values-pt/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">ESTÁ DISPONÍVEL UMA ATUALIZAÇÃO</string>
<string name="update_available_footer">Atualização disponível, transfira-a para ficar seguro.</string>
<string name="user_email_hint">O seu email (opcional)</string>
- <string name="user_message_hint">Descreva o seu problema</string>
<string name="view_logs">Ver os registos da app</string>
<string name="virtual_adapter_problem">Erro de adaptador virtual</string>
<string name="voucher_already_used">O código do voucher já foi utilizado.</string>
diff --git a/android/src/main/res/values-ru/strings.xml b/android/src/main/res/values-ru/strings.xml
index ede1419eed..1a6d884150 100644
--- a/android/src/main/res/values-ru/strings.xml
+++ b/android/src/main/res/values-ru/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">ЕСТЬ ОБНОВЛЕНИЕ</string>
<string name="update_available_footer">Есть обновление. Чтобы оставаться в безопасности, обновитесь.</string>
<string name="user_email_hint">Ваша электронная почта (необязательно)</string>
- <string name="user_message_hint">Опишите проблему</string>
<string name="view_logs">Открыть журналы</string>
<string name="virtual_adapter_problem">Ошибка виртуального адаптера</string>
<string name="voucher_already_used">Этот код ваучера уже использовался.</string>
diff --git a/android/src/main/res/values-sv/strings.xml b/android/src/main/res/values-sv/strings.xml
index 443bb5dd22..55a5110215 100644
--- a/android/src/main/res/values-sv/strings.xml
+++ b/android/src/main/res/values-sv/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">UPPDATERING TILLGÄNGLIG</string>
<string name="update_available_footer">Uppdatering tillgänglig. Ladda ned för att vara säker.</string>
<string name="user_email_hint">Din e-postadress (valfritt)</string>
- <string name="user_message_hint">Beskriv ditt problem</string>
<string name="view_logs">Visa appens loggar</string>
<string name="virtual_adapter_problem">Fel med virtuell adapter</string>
<string name="voucher_already_used">Kupongkoden har redan använts.</string>
diff --git a/android/src/main/res/values-th/strings.xml b/android/src/main/res/values-th/strings.xml
index 11f3de5cd9..e6e474296b 100644
--- a/android/src/main/res/values-th/strings.xml
+++ b/android/src/main/res/values-th/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">มีการอัปเดตให้ใช้งาน</string>
<string name="update_available_footer">มีการอัปเดตให้ใช้งาน ดาวน์โหลดเพื่อยกระดับความปลอดภัย</string>
<string name="user_email_hint">อีเมลของคุณ (ไม่บังคับ)</string>
- <string name="user_message_hint">ระบุปัญหาของคุณ</string>
<string name="view_logs">ดูบันทึกของแอป</string>
<string name="virtual_adapter_problem">ข้อผิดพลาดของอะแดปเตอร์เสมือน</string>
<string name="voucher_already_used">รหัสบัตรกำนัลถูกใช้ไปแล้ว</string>
diff --git a/android/src/main/res/values-tr/strings.xml b/android/src/main/res/values-tr/strings.xml
index c637161fab..cff14469b0 100644
--- a/android/src/main/res/values-tr/strings.xml
+++ b/android/src/main/res/values-tr/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">GÜNCELLEME MEVCUT</string>
<string name="update_available_footer">Güncelleme mevcut, güvende olmak için indirin.</string>
<string name="user_email_hint">E-posta adresiniz (isteğe bağlı)</string>
- <string name="user_message_hint">Sorununuzu açıklayın</string>
<string name="view_logs">Uygulama kayıtlarını görüntüle</string>
<string name="virtual_adapter_problem">Sanal adaptör hatası</string>
<string name="voucher_already_used">Kupon kodu zaten kullanılmış.</string>
diff --git a/android/src/main/res/values-zh-rCN/strings.xml b/android/src/main/res/values-zh-rCN/strings.xml
index f7868310d9..1054b2db6a 100644
--- a/android/src/main/res/values-zh-rCN/strings.xml
+++ b/android/src/main/res/values-zh-rCN/strings.xml
@@ -111,7 +111,6 @@
<string name="update_available">有可用更新</string>
<string name="update_available_footer">有可用更新,请下载以保持安全。</string>
<string name="user_email_hint">您的电子邮件(可选)</string>
- <string name="user_message_hint">描述您的问题</string>
<string name="view_logs">查看应用日志</string>
<string name="virtual_adapter_problem">虚拟适配器错误</string>
<string name="voucher_already_used">该优惠券码已被使用。</string>
diff --git a/android/src/main/res/values-zh-rTW/strings.xml b/android/src/main/res/values-zh-rTW/strings.xml
index a8046d5d75..2c8fd4a72d 100644
--- a/android/src/main/res/values-zh-rTW/strings.xml
+++ b/android/src/main/res/values-zh-rTW/strings.xml
@@ -115,7 +115,6 @@
<string name="update_available">可用的更新</string>
<string name="update_available_footer">更新可用,請下載以保持安全。</string>
<string name="user_email_hint">您的電子郵件 (選填)</string>
- <string name="user_message_hint">描述您的問題</string>
<string name="view_logs">檢視應用程式日誌</string>
<string name="virtual_adapter_problem">虛擬配接器錯誤</string>
<string name="voucher_already_used">此憑證兌換碼已有人用過。</string>
diff --git a/android/translations-converter/src/gettext.rs b/android/translations-converter/src/gettext.rs
index 8af2c5ca06..c496775ee2 100644
--- a/android/translations-converter/src/gettext.rs
+++ b/android/translations-converter/src/gettext.rs
@@ -2,9 +2,11 @@ use lazy_static::lazy_static;
use regex::Regex;
use std::{
collections::BTreeMap,
+ fmt::{self, Display, Formatter},
fs::{File, OpenOptions},
io::{self, BufRead, BufReader, BufWriter, Write},
mem,
+ ops::Deref,
path::Path,
};
@@ -34,20 +36,24 @@ pub enum PluralForm {
/// A message entry in a gettext translation file.
#[derive(Clone, Debug)]
pub struct MsgEntry {
- pub id: String,
+ pub id: MsgString,
pub value: MsgValue,
}
/// A message string or plural set in a gettext translation file.
#[derive(Clone, Debug)]
pub enum MsgValue {
- Invariant(String),
+ Invariant(MsgString),
Plural {
- plural_id: String,
- values: Vec<String>,
+ plural_id: MsgString,
+ values: Vec<MsgString>,
},
}
+/// A message string in a gettext translation file.
+#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct MsgString(String);
+
/// A helper macro to match a string to various prefix and suffix combinations.
macro_rules! match_str {
(
@@ -117,7 +123,7 @@ impl Translation {
}
["msgstr \"", translation, "\""] => {
if let Some(id) = current_id.take() {
- let value = MsgValue::from(normalize(translation));
+ let value = MsgValue::Invariant(normalize(translation));
parsing_header = id.is_empty() && translation.is_empty();
@@ -217,9 +223,36 @@ impl PluralForm {
}
}
+impl From<String> for MsgString {
+ fn from(string: String) -> Self {
+ MsgString(string)
+ }
+}
+
+impl From<&str> for MsgString {
+ fn from(string: &str) -> Self {
+ string.to_owned().into()
+ }
+}
+
+impl Display for MsgString {
+ /// Write the ID message string with proper escaping.
+ fn fmt(&self, formatter: &mut Formatter) -> fmt::Result {
+ self.0.replace(r#"""#, r#"\""#).fmt(formatter)
+ }
+}
+
+impl Deref for MsgString {
+ type Target = str;
+
+ fn deref(&self) -> &Self::Target {
+ self.0.as_str()
+ }
+}
+
impl From<String> for MsgValue {
fn from(string: String) -> Self {
- MsgValue::Invariant(string)
+ MsgValue::Invariant(string.into())
}
}
@@ -234,19 +267,22 @@ pub fn append_to_template(
.write(true)
.append(true)
.open(file_path)?;
+ let mut sorted_entries: Vec<_> = entries.collect();
let mut writer = BufWriter::new(file);
- for entry in entries {
+ sorted_entries.sort_by(|first, second| first.id.cmp(&second.id));
+
+ for entry in sorted_entries {
writeln!(writer)?;
- writeln!(writer, "msgid {:?}", entry.id)?;
+ writeln!(writer, r#"msgid "{}""#, entry.id)?;
match entry.value {
- MsgValue::Invariant(value) => writeln!(writer, "msgstr {:?}", value)?,
+ MsgValue::Invariant(value) => writeln!(writer, r#"msgstr "{}""#, value)?,
MsgValue::Plural { plural_id, values } => {
- writeln!(writer, "msgid_plural {:?}", plural_id)?;
+ writeln!(writer, r#"msgid_plural "{}""#, plural_id)?;
for (index, value) in values.into_iter().enumerate() {
- writeln!(writer, "msgstr[{}] {:?}", index, value)?;
+ writeln!(writer, r#"msgstr[{}] "{}""#, index, value)?;
}
}
}
@@ -266,7 +302,7 @@ fn parse_line<'l>(line: &'l str, prefix: &str, suffix: &str) -> Option<&'l str>
}
}
-fn normalize(string: &str) -> String {
+fn normalize(string: &str) -> MsgString {
// Use a single common apostrophe character
let string = APOSTROPHE_VARIATION.replace_all(&string, "'");
// Mark where parameters are positioned, removing the parameter name
@@ -274,5 +310,5 @@ fn normalize(string: &str) -> String {
// Remove escaped double-quotes
let string = ESCAPED_DOUBLE_QUOTES.replace_all(&string, r#"""#);
- string.into_owned()
+ string.into_owned().into()
}
diff --git a/android/translations-converter/src/main.rs b/android/translations-converter/src/main.rs
index 5188a40ef2..d755913243 100644
--- a/android/translations-converter/src/main.rs
+++ b/android/translations-converter/src/main.rs
@@ -133,8 +133,8 @@ fn main() {
for message in template {
match message.value {
- gettext::MsgValue::Invariant(_) => missing_translations.remove(&message.id),
- gettext::MsgValue::Plural { .. } => missing_plurals.remove(&message.id),
+ gettext::MsgValue::Invariant(_) => missing_translations.remove(&*message.id),
+ gettext::MsgValue::Plural { .. } => missing_plurals.remove(&*message.id),
};
}
@@ -147,7 +147,7 @@ fn main() {
.into_iter()
.inspect(|(missing_translation, id)| println!(" {}: {}", id, missing_translation))
.map(|(id, _)| gettext::MsgEntry {
- id,
+ id: id.into(),
value: String::new().into(),
}),
)
@@ -179,20 +179,30 @@ fn main() {
.iter()
.position(|plural| plural.quantity == android::PluralQuantity::One)
.expect("Missing singular variant to use as msgid");
- let id = plural.items.remove(singular_position).string.to_string();
+ let id = plural
+ .items
+ .remove(singular_position)
+ .string
+ .to_string()
+ .into();
let other_position = plural
.items
.iter()
.position(|plural| plural.quantity == android::PluralQuantity::Other)
.expect("Missing other variant to use as msgid_plural");
- let plural_id = plural.items.remove(other_position).string.to_string();
+ let plural_id = plural
+ .items
+ .remove(other_position)
+ .string
+ .to_string()
+ .into();
gettext::MsgEntry {
id,
value: gettext::MsgValue::Plural {
plural_id,
- values: vec!["".to_owned(), "".to_owned()],
+ values: vec!["".into(), "".into()],
},
}
}),
@@ -253,7 +263,7 @@ fn generate_translations(
for translation in translations {
match translation.value {
gettext::MsgValue::Invariant(translation_value) => {
- if let Some(android_key) = known_strings.remove(&translation.id) {
+ if let Some(android_key) = known_strings.remove(&*translation.id) {
localized_strings.push(android::StringResource::new(
android_key,
&translation_value,
@@ -261,7 +271,9 @@ fn generate_translations(
}
}
gettext::MsgValue::Plural { values, .. } => {
- if let Some(android_key) = known_plurals.remove(&translation.id) {
+ if let Some(android_key) = known_plurals.remove(&*translation.id) {
+ let values = values.into_iter().map(|message| message.to_string());
+
localized_plurals.push(android::PluralResource::new(
android_key,
plural_quantities.clone().zip(values),