[bijiben/wip/inigomartinez/meson: 4/6] build: Migrate from Intltool to Gettext



commit dc0e71f3e4961aabf63326658dedadf20473ebe7
Author: Iñigo Martínez <inigomartinez gmail com>
Date:   Fri Aug 18 13:02:01 2017 +0200

    build: Migrate from Intltool to Gettext
    
    Recent versions of Gettext are able to translate several formats
    that are used in GNOME applications. This patch migrates from
    Intltool to Gettext by using meson's i18n features.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=786461

 data/meson.build                      |   14 ++++++++------
 data/org.gnome.bijiben.appdata.xml.in |   10 +++++-----
 data/org.gnome.bijiben.desktop.in.in  |    9 ++++-----
 data/org.gnome.bijiben.xml.in         |    2 +-
 gettext/its/mime.its                  |    6 ++++++
 gettext/its/mime.loc                  |    6 ++++++
 meson.build                           |    6 +-----
 po/POTFILES.in                        |    8 ++++----
 po/meson.build                        |    6 +++++-
 9 files changed, 40 insertions(+), 27 deletions(-)
---
diff --git a/data/meson.build b/data/meson.build
index a97ba8d..d5fca65 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -2,22 +2,23 @@ subdir('icons')
 
 mime = 'org.gnome.bijiben.xml'
 
-custom_target(
+i18n.merge_file(
   mime,
   input: mime + '.in',
   output: mime,
-  command: intltool_xml_cmd,
+  po_dir: po_dir,
+  data_dirs: its_dir,
   install: true,
   install_dir: join_paths(bijiben_datadir, 'mime', 'packages')
 )
 
 info = 'org.gnome.bijiben.metainfo.xml'
 
-custom_target(
+i18n.merge_file(
   info,
   input: 'org.gnome.bijiben.appdata.xml.in',
   output: info,
-  command: intltool_xml_cmd,
+  po_dir: po_dir,
   install: true,
   install_dir: join_paths(bijiben_datadir, 'metainfo')
 )
@@ -33,11 +34,12 @@ desktop_in = configure_file(
   configuration: desktop_conf
 )
 
-custom_target(
+i18n.merge_file(
   desktop,
+  type: 'desktop',
   input: desktop_in,
   output: desktop,
-  command: intltool_desktop_cmd,
+  po_dir: po_dir,
   install: true,
   install_dir: join_paths(bijiben_datadir, 'applications')
 )
diff --git a/data/org.gnome.bijiben.appdata.xml.in b/data/org.gnome.bijiben.appdata.xml.in
index 0ef0921..76638e7 100644
--- a/data/org.gnome.bijiben.appdata.xml.in
+++ b/data/org.gnome.bijiben.appdata.xml.in
@@ -4,14 +4,14 @@
   <metadata_license>CC0-1.0</metadata_license>
   <project_license>GPL-3.0+ and LGPL-3.0 and LGPL-2.0+</project_license>
   <name>Bijiben</name>
-  <_summary>Quickly jot notes</_summary>
+  <summary>Quickly jot notes</summary>
   <description>
-    <_p>
+    <p>
       Notes is an editor allowing to make simple lists for later use.
-    </_p>
-    <_p>
+    </p>
+    <p>
       It allows to use ownCloud as a storage location and online editor.
-    </_p>
+    </p>
   </description>
   <kudos>
     <kudo>AppMenu</kudo>
diff --git a/data/org.gnome.bijiben.desktop.in.in b/data/org.gnome.bijiben.desktop.in.in
index 7f5009d..af06fa0 100644
--- a/data/org.gnome.bijiben.desktop.in.in
+++ b/data/org.gnome.bijiben.desktop.in.in
@@ -1,9 +1,8 @@
-
 [Desktop Entry]
-_Name=Notes
-_Keywords=notes;reminder;
-_Comment=Post notes, tag files!
-_GenericName=Note-taker
+Name=Notes
+Keywords=notes;reminder;
+Comment=Post notes, tag files!
+GenericName=Note-taker
 Exec=bijiben %u
 Icon=org.gnome.bijiben
 MimeType=x-scheme-handler/note;
diff --git a/data/org.gnome.bijiben.xml.in b/data/org.gnome.bijiben.xml.in
index 56636a9..f511fd9 100644
--- a/data/org.gnome.bijiben.xml.in
+++ b/data/org.gnome.bijiben.xml.in
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='utf-8'?>
 <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info";>
     <mime-type type="application/x-note">
-        <_comment>Notes</_comment>
+        <comment>Notes</comment>
         <glob pattern="*.note"/>
     </mime-type>
 </mime-info>
diff --git a/gettext/its/mime.its b/gettext/its/mime.its
new file mode 100644
index 0000000..dec8d13
--- /dev/null
+++ b/gettext/its/mime.its
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its";
+           version="2.0">
+  <its:translateRule selector="/mime-info" translate="no"/>
+  <its:translateRule selector="//comment" translate="yes"/>
+</its:rules>
diff --git a/gettext/its/mime.loc b/gettext/its/mime.loc
new file mode 100644
index 0000000..a34fe8d
--- /dev/null
+++ b/gettext/its/mime.loc
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<locatingRules>
+  <locatingRule name="mime" pattern="*.xml">
+    <documentRule localName="mime-info" target="mime.its"/>
+  </locatingRule>
+</locatingRules>
diff --git a/meson.build b/meson.build
index 9dd80d8..a98e246 100644
--- a/meson.build
+++ b/meson.build
@@ -138,11 +138,7 @@ gnome = import('gnome')
 i18n = import('i18n')
 
 po_dir = join_paths(meson.source_root(), 'po')
-
-intltool_merge = find_program('intltool-merge')
-intltool_cache = join_paths(po_dir, '.intltool-merge-cache')
-intltool_desktop_cmd = [intltool_merge, '-d', '-u', '-c', intltool_cache, po_dir, '@INPUT@', '@OUTPUT@']
-intltool_xml_cmd = [intltool_merge, '-x', '-u', '-c', intltool_cache, po_dir, '@INPUT@', '@OUTPUT@']
+its_dir = join_paths(meson.source_root(), 'gettext')
 
 top_inc = include_directories('.')
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index f00fbc3..86821f7 100755
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,7 +1,7 @@
 # List of source files containing translatable strings.
 data/org.gnome.bijiben.appdata.xml.in
 data/org.gnome.bijiben.desktop.in.in
-[type: gettext/gsettings]data/org.gnome.bijiben.gschema.xml
+data/org.gnome.bijiben.gschema.xml
 data/org.gnome.bijiben.xml.in
 src/bijiben-shell-search-provider.c
 src/bjb-app-menu.c
@@ -23,6 +23,6 @@ src/bjb-window-base.c
 src/libbiji/biji-date-time.c
 src/libbiji/biji-notebook.c
 src/libbiji/provider/biji-local-provider.c
-[type: gettext/glade]src/resources/app-menu.ui
-[type: gettext/glade]src/resources/editor-toolbar.ui
-[type: gettext/glade]src/resources/settings-dialog.ui
+src/resources/app-menu.ui
+src/resources/editor-toolbar.ui
+src/resources/settings-dialog.ui
diff --git a/po/meson.build b/po/meson.build
index e9b77d7..9440ab9 100644
--- a/po/meson.build
+++ b/po/meson.build
@@ -1 +1,5 @@
-i18n.gettext(meson.project_name(), preset: 'glib')
+i18n.gettext(
+  meson.project_name(),
+  data_dirs: its_dir,
+  preset: 'glib'
+)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]