From 978104b51831c5d24cf83a654b8096c187d30b1f Mon Sep 17 00:00:00 2001 From: Bat Date: Fri, 15 Jun 2018 17:23:32 +0100 Subject: [PATCH] Add a build script to update/create translation files --- build.rs | 45 +++++++++++++++++++++++++++++++++++++++++++++ po/LINGUAS | 2 ++ po/en.po | 16 ++++++++++++++++ po/fr.po | 16 ++++++++++++++++ po/plume.pot | 16 ++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 build.rs create mode 100644 po/LINGUAS create mode 100644 po/en.po create mode 100644 po/fr.po create mode 100644 po/plume.pot diff --git a/build.rs b/build.rs new file mode 100644 index 00000000..25997695 --- /dev/null +++ b/build.rs @@ -0,0 +1,45 @@ +use std::fs::File; +use std::io::{BufReader, prelude::*}; +use std::path::Path; +use std::process::Command; + +fn main() { + update_po(); + compile_po(); + install_po(); +} + +fn update_po() { + let pot_path = Path::new("po").join("plume.pot"); + + let linguas_file = File::open(Path::new("po").join("LINGUAS")).expect("Couldn't find po/LINGUAS file"); + let linguas = BufReader::new(&linguas_file); + for lang in linguas.lines() { + let lang = lang.unwrap(); + let po_path = Path::new("po").join(format!("{}.po", lang.clone())); + if po_path.exists() && po_path.is_file() { + println!("Updating {}", lang.clone()); + // Update it + Command::new("msgmerge") + .arg(po_path.to_str().unwrap()) + .arg(pot_path.to_str().unwrap()) + .spawn() + .expect("Couldn't update PO file"); + } else { + println!("Creating {}", lang.clone()); + // Create it from the template + Command::new("msginit") + .arg(format!("--input={}", pot_path.to_str().unwrap())) + .arg(format!("--output-file={}", po_path.to_str().unwrap())) + .arg("-l") + .arg(lang) + .arg("--no-translator") + .spawn() + .expect("Couldn't init PO file"); + } + } +} + +fn compile_po() {} + +fn install_po() {} diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 00000000..7e6d9e40 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,2 @@ +en +fr diff --git a/po/en.po b/po/en.po new file mode 100644 index 00000000..4ffaf0d8 --- /dev/null +++ b/po/en.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: plume\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-15 16:33-0700\n" +"PO-Revision-Date: 2018-06-15 16:35+0100\n" +"Last-Translator: baptiste \n" +"Language-Team: English\n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Welcome on %s" +msgstr "Welcome on %s" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 00000000..dadf3043 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: plume\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-15 16:33-0700\n" +"PO-Revision-Date: 2018-06-15 16:33-0700\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Welcome on %s" +msgstr "" diff --git a/po/plume.pot b/po/plume.pot new file mode 100644 index 00000000..e536d0df --- /dev/null +++ b/po/plume.pot @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: plume\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-15 16:33-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +msgid "Welcome on %s" +msgstr ""