diff --git a/Cargo.lock b/Cargo.lock index 417a25a..292653a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1471,6 +1471,7 @@ dependencies = [ "tokio", "two-face", "unicode-segmentation", + "xdgen", ] [[package]] @@ -2539,6 +2540,16 @@ dependencies = [ "xdg", ] +[[package]] +name = "freedesktop_entry_parser" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6d3a3635983a889f065aa9ce760384713f23a9b4a04f696f86c39a5d7a6a5a" +dependencies = [ + "indexmap 2.13.0", + "nom 8.0.0", +] + [[package]] name = "fsevent-sys" version = "4.1.0" @@ -8969,6 +8980,18 @@ dependencies = [ "unicase", ] +[[package]] +name = "xdgen" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25af88f104f06d5aeb80c77e5eb85e6f6f355f86f6e34307a14befd716efe4bf" +dependencies = [ + "fluent", + "freedesktop_entry_parser", + "unic-langid", + "xmltree", +] + [[package]] name = "xkbcommon" version = "0.7.0" @@ -9024,12 +9047,27 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "xml" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8aa498d22c9bbaf482329839bc5620c46be275a19a812e9a22a2b07529a642a" + [[package]] name = "xml-rs" version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" +[[package]] +name = "xmltree" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc04313cab124e498ab1724e739720807b6dc405b9ed0edc5860164d2e4ff70" +dependencies = [ + "xml", +] + [[package]] name = "xmlwriter" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 9ddae90..a86da01 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,6 +52,9 @@ features = ["about", "multi-window", "tokio", "winit", "surface-message"] [target.'cfg(unix)'.dependencies] fork = "0.2" +[build-dependencies] +xdgen = "0.1" + [features] default = ["dbus-config", "gvfs", "wgpu", "wayland"] dbus-config = ["libcosmic/dbus-config"] diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..6a34258 --- /dev/null +++ b/build.rs @@ -0,0 +1,24 @@ +use std::{env, fs, path::PathBuf}; +use xdgen::{App, Context, FluentString}; + +fn main() { + let id = "com.system76.CosmicEdit"; + let ctx = Context::new("i18n", env::var("CARGO_PKG_NAME").unwrap()).unwrap(); + let app = App::new(FluentString("cosmic-text-editor")) + .comment(FluentString("comment")) + .keywords(FluentString("keywords")); + let output = PathBuf::from("target/xdgen"); + fs::create_dir_all(&output).unwrap(); + fs::write( + output.join(format!("{}.desktop", id)), + app.expand_desktop(format!("res/{}.desktop", id), &ctx) + .unwrap(), + ) + .unwrap(); + fs::write( + output.join(format!("{}.metainfo.xml", id)), + app.expand_metainfo(format!("res/{}.metainfo.xml", id), &ctx) + .unwrap(), + ) + .unwrap(); +} diff --git a/i18n/ar/cosmic_edit.ftl b/i18n/ar/cosmic_edit.ftl index 9178e72..82e5520 100644 --- a/i18n/ar/cosmic_edit.ftl +++ b/i18n/ar/cosmic_edit.ftl @@ -1,4 +1,6 @@ cosmic-text-editor = محرِّر نصوص COSMIC +comment = محرِّر نصوص لسطح مكتب COSMIC +keywords = نص;محرر; new-document = مستند جديد open-project = افتح مشروعًا todo = المهامّ diff --git a/i18n/cs/cosmic_edit.ftl b/i18n/cs/cosmic_edit.ftl index 7648f22..1dfad05 100644 --- a/i18n/cs/cosmic_edit.ftl +++ b/i18n/cs/cosmic_edit.ftl @@ -1,3 +1,5 @@ +comment = Textový editor pro pracovní prostředí COSMIC +keywords = Text;Editor;Poznámky; new-document = Nový dokument open-project = Otevřít projekt diff --git a/i18n/en/cosmic_edit.ftl b/i18n/en/cosmic_edit.ftl index 5dbbf49..1cb1c8b 100644 --- a/i18n/en/cosmic_edit.ftl +++ b/i18n/en/cosmic_edit.ftl @@ -1,4 +1,5 @@ cosmic-text-editor = COSMIC Text Editor +comment = Text editor for the COSMIC desktop new-document = New document open-project = Open project todo = TODO diff --git a/i18n/es/cosmic_edit.ftl b/i18n/es/cosmic_edit.ftl index 067d42c..dfbecdb 100644 --- a/i18n/es/cosmic_edit.ftl +++ b/i18n/es/cosmic_edit.ftl @@ -1,4 +1,6 @@ cosmic-text-editor = Editor de texto COSMIC +comment = Editor de texto de escritorio COSMIC +keywords = Texto;Editor;Notas; new-document = Nuevo documento open-project = Abrir proyecto todo = TODO diff --git a/i18n/hu/cosmic_edit.ftl b/i18n/hu/cosmic_edit.ftl index e7fdadb..9cb455d 100644 --- a/i18n/hu/cosmic_edit.ftl +++ b/i18n/hu/cosmic_edit.ftl @@ -1,4 +1,6 @@ cosmic-text-editor = COSMIC Szövegszerkesztő +comment = Szövegszerkesztő a COSMIC asztali környezethez +keywords = szöveg;szerkesztő; new-document = Új dokumentum open-project = Projekt megnyitása todo = Teendők diff --git a/i18n/it/cosmic_edit.ftl b/i18n/it/cosmic_edit.ftl index f9452eb..1c62132 100644 --- a/i18n/it/cosmic_edit.ftl +++ b/i18n/it/cosmic_edit.ftl @@ -1,4 +1,6 @@ cosmic-text-editor = COSMIC Text Editor +comment = Editor di testo di COSMIC +keywords = Testo;Editor;Note;Blocco; new-document = Nuovo documento open-project = Apri progetto todo = TODO diff --git a/i18n/pl/cosmic_edit.ftl b/i18n/pl/cosmic_edit.ftl index a689ece..0983c00 100644 --- a/i18n/pl/cosmic_edit.ftl +++ b/i18n/pl/cosmic_edit.ftl @@ -1,4 +1,6 @@ cosmic-text-editor = Edytor Tekstu COSMIC +comment = Edytor tekstu pulpitu COSMIC +keywords = Edytor;Tekstu; new-document = Nowy dokument open-project = Otwórz projekt todo = TODO diff --git a/i18n/pt-BR/cosmic_edit.ftl b/i18n/pt-BR/cosmic_edit.ftl index a30547f..f02064b 100644 --- a/i18n/pt-BR/cosmic_edit.ftl +++ b/i18n/pt-BR/cosmic_edit.ftl @@ -1,4 +1,6 @@ cosmic-text-editor = Editor de Texto COSMIC +comment = Editor de texto do desktop COSMIC +keywords = Texto;Editor;Notas; new-document = Novo documento open-project = Abrir projeto todo = TODO diff --git a/i18n/ru/cosmic_edit.ftl b/i18n/ru/cosmic_edit.ftl index 1442e3d..fb987e3 100644 --- a/i18n/ru/cosmic_edit.ftl +++ b/i18n/ru/cosmic_edit.ftl @@ -1,4 +1,5 @@ cosmic-text-editor = Текстовый редактор COSMIC +comment = Текстовый редактор для оболочки COSMIC new-document = Новый документ open-project = Открыть проект todo = TODO diff --git a/i18n/sk/cosmic_edit.ftl b/i18n/sk/cosmic_edit.ftl index b4c040b..e96519e 100644 --- a/i18n/sk/cosmic_edit.ftl +++ b/i18n/sk/cosmic_edit.ftl @@ -1,4 +1,6 @@ cosmic-text-editor = Textový editor COSMIC +comment = Textový editor pre pracovné prostredie COSMIC +keywords = Text;Editor;Poznámky; new-document = Nový dokument open-project = Otvoriť projekt todo = Úloha diff --git a/i18n/sv-SE/cosmic_edit.ftl b/i18n/sv-SE/cosmic_edit.ftl index 210bd66..ad5cc85 100644 --- a/i18n/sv-SE/cosmic_edit.ftl +++ b/i18n/sv-SE/cosmic_edit.ftl @@ -1,3 +1,5 @@ +comment = Textredigerare för skrivbordsmiljön COSMIC +keywords = Text;Editor;Redigerare; new-document = Nytt dokument open-project = Öppna projekt todo = TODO diff --git a/justfile b/justfile index 993f60a..b6450f9 100644 --- a/justfile +++ b/justfile @@ -13,11 +13,11 @@ bin-src := cargo-target-dir / 'release' / name bin-dst := base-dir / 'bin' / name desktop := APPID + '.desktop' -desktop-src := 'res' / desktop +desktop-src := 'target/xdgen' / desktop desktop-dst := clean(rootdir / prefix) / 'share' / 'applications' / desktop metainfo := APPID + '.metainfo.xml' -metainfo-src := 'res' / metainfo +metainfo-src := 'target/xdgen' / metainfo metainfo-dst := clean(rootdir / prefix) / 'share' / 'metainfo' / metainfo icons-src := 'res' / 'icons' / 'hicolor' diff --git a/res/com.system76.CosmicEdit.desktop b/res/com.system76.CosmicEdit.desktop index 0c06f7c..c64f9d5 100644 --- a/res/com.system76.CosmicEdit.desktop +++ b/res/com.system76.CosmicEdit.desktop @@ -1,18 +1,6 @@ -#TODO: more build-out, desktop actions, translations? [Desktop Entry] Name=COSMIC Text Editor -Name[ar]=محرِّر نصوص COSMIC -Name[cs]=Textový editor COSMIC -Name[zh_CN]=COSMIC 文本编辑器 -Name[pl]=Edytor Tekstu COSMIC -Name[pt_BR]=Editor de Texto -Name[hu]=COSMIC Szövegszerkesztő -Name[pt]=Editor de Texto -Name[ru]=Текстовый редактор COSMIC -Name[sk]=Textový editor COSMIC -Name[sv]=COSMIC Textredigerare -Name[es]=Editor de texto COSMIC -Name[it]=Editor di testo COSMIC +Comment=Text editor for the COSMIC desktop Exec=cosmic-edit %F Terminal=false Type=Application @@ -20,13 +8,4 @@ StartupNotify=true MimeType=text/plain; Icon=com.system76.CosmicEdit Categories=COSMIC;Utility;TextEditor; -Keywords=Text;Editor; -Keywords[ar]=نص;محرر; -Keywords[cs]=Text;Editor;Poznámky; -Keywords[pl]=Edytor;Tekstu; -Keywords[pt_BR]=Texto;Editor;Notas; -Keywords[hu]=szöveg;szerkesztő; -Keywords[sk]=Text;Editor;Poznámky; -Keywords[sv]=Text;Editor;Redigerare; -Keywords[es]=Texto;Editor;Notas; -Keywords[it]=Testo;Editor;Note;Blocco; +Keywords=Text;Editor; \ No newline at end of file diff --git a/res/com.system76.CosmicEdit.metainfo.xml b/res/com.system76.CosmicEdit.metainfo.xml index 3d00112..19a0a3c 100644 --- a/res/com.system76.CosmicEdit.metainfo.xml +++ b/res/com.system76.CosmicEdit.metainfo.xml @@ -9,27 +9,7 @@ https://github.com/pop-os/cosmic-edit https://github.com/pop-os/cosmic-edit COSMIC Text Editor - محرِّر نصوص COSMIC - Textový editor COSMIC - Edytor tekstu COSMIC - COSMIC Szövegszerkesztő - Editor de Texto - Текстовый редактор COSMIC - COSMIC Textový editor - Editor de texto - Editor di testo di COSMIC - COSMIC Textredigerare Text editor for the COSMIC desktop - محرِّر نصوص لسطح مكتب COSMIC - Textový editor pro pracovní prostředí COSMIC - Edytor tekstu pulpitu COSMIC - Szövegszerkesztő a COSMIC asztali környezethez - Editor de texto do desktop COSMIC - Текстовый редактор для оболочки COSMIC - Textový editor pre pracovné prostredie COSMIC - Editor de texto de escritorio COSMIC - Editor di testo di COSMIC - Textredigerare för skrivbordsmiljön COSMIC Text editor that provides advanced features with high performance محرِّر نصوص يوفر ميزات متقدمة بأداء عالٍ @@ -89,6 +69,10 @@ Gestione Git integrata + + Text + Editor + com.system76.CosmicEdit.desktop https://raw.githubusercontent.com/pop-os/cosmic-edit/master/res/icons/hicolor/256x256/apps/com.system76.CosmicEdit.svg diff --git a/src/main.rs b/src/main.rs index 2be7c2d..43845d3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1451,6 +1451,7 @@ impl Application for App { .icon(icon::from_name(Self::APP_ID)) .version(env!("CARGO_PKG_VERSION")) .author("System76") + .comments(fl!("comment")) .license("GPL-3.0-only") .developers([("Jeremy Soller", "jeremy@system76.com")]) .links([
Text editor that provides advanced features with high performance
محرِّر نصوص يوفر ميزات متقدمة بأداء عالٍ