[Libosinfo] [PATCH 4/5] fedora: Use a datamap for GETTEXT->X11 layout mapping

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Fri Dec 28 23:14:05 UTC 2012


From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>

Lets make use of new datamaps to map GETTEXT language codes (that
libosinfo expect from apps) to X11 keyboard layout codes (that Fedora 18
expects).
---
 data/datamaps/Makefile.am       |   1 +
 data/datamaps/x11-keyboard.xml  | 155 ++++++++++++++++++++++++++++++++++++++++
 data/install-scripts/fedora.xml | 132 ++++------------------------------
 3 files changed, 168 insertions(+), 120 deletions(-)
 create mode 100644 data/datamaps/x11-keyboard.xml

diff --git a/data/datamaps/Makefile.am b/data/datamaps/Makefile.am
index e02c295..5572005 100644
--- a/data/datamaps/Makefile.am
+++ b/data/datamaps/Makefile.am
@@ -2,6 +2,7 @@
 datamapdir = $(pkgdatadir)/db/datamaps/
 datamap_DATA =     \
   windows-lang.xml   \
+  x11-keyboard.xml   \
   $(NULL)
 
 EXTRA_DIST = $(datamap_DATA)
diff --git a/data/datamaps/x11-keyboard.xml b/data/datamaps/x11-keyboard.xml
new file mode 100644
index 0000000..15a7cd5
--- /dev/null
+++ b/data/datamaps/x11-keyboard.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- The datamaps in this file will be used to map the GETTEXT locale
+     codes to X11 keyboard layouts.
+-->
+
+<libosinfo version="0.0.1">
+  <!-- GETTEXT locale to X11 keyboard layout mapping -->
+  <datamap id="http://libosinfo.fedorahosted.org/x11-keyboard">
+    <entry inval="af_ZA" outval="za"/>
+    <entry inval="ar_AE" outval="ae"/>
+    <entry inval="ar_BH" outval="bh"/>
+    <entry inval="ar_DZ" outval="dz"/>
+    <entry inval="ar_EG" outval="eg"/>
+    <entry inval="ar_IN" outval="in"/>
+    <entry inval="ar_IQ" outval="iq"/>
+    <entry inval="ar_JO" outval="jo"/>
+    <entry inval="ar_KW" outval="kw"/>
+    <entry inval="ar_LB" outval="lb"/>
+    <entry inval="ar_LY" outval="ly"/>
+    <entry inval="ar_MA" outval="ma"/>
+    <entry inval="ar_OM" outval="om"/>
+    <entry inval="ar_QA" outval="qa"/>
+    <entry inval="ar_SA" outval="sa"/>
+    <entry inval="ar_SD" outval="sd"/>
+    <entry inval="ar_SY" outval="sy"/>
+    <entry inval="ar_TN" outval="tn"/>
+    <entry inval="ar_YE" outval="ye"/>
+    <entry inval="as_IN" outval="in"/>
+    <entry inval="ast_ES" outval="es (ast)"/>
+    <entry inval="be_BY" outval="by"/>
+    <entry inval="bg_BG" outval="bg"/>
+    <entry inval="bn_BD" outval="bd"/>
+    <entry inval="bn_IN" outval="in (ben)"/>
+    <entry inval="br_FR" outval="fr (bre)"/>
+    <entry inval="bs_BA" outval="ba"/>
+    <entry inval="ca_ES" outval="es (cat)"/>
+    <entry inval="cs_CZ" outval="cz"/>
+    <entry inval="cy_GB" outval="gb"/>
+    <entry inval="da_DK" outval="dk"/>
+    <entry inval="de_AT" outval="at"/>
+    <entry inval="de_BE" outval="be"/>
+    <entry inval="de_CH" outval="ch"/>
+    <entry inval="de_DE" outval="de"/>
+    <entry inval="de_LU" outval="lu"/>
+    <entry inval="el_GR" outval="gr"/>
+    <entry inval="en_AU" outval="au"/>
+    <entry inval="en_BW" outval="bw"/>
+    <entry inval="en_CA" outval="ca (eng)"/>
+    <entry inval="en_DK" outval="dk"/>
+    <entry inval="en_GB" outval="gb"/>
+    <entry inval="en_HK" outval="hk"/>
+    <entry inval="en_IE" outval="ie"/>
+    <entry inval="en_IN" outval="in (eng)"/>
+    <entry inval="en_NZ" outval="nz"/>
+    <entry inval="en_PH" outval="ph"/>
+    <entry inval="en_SG" outval="sg"/>
+    <entry inval="en_US" outval="us"/>
+    <entry inval="en_ZA" outval="za"/>
+    <entry inval="en_ZW" outval="zw"/>
+    <entry inval="es_AR" outval="ar"/>
+    <entry inval="es_BO" outval="bo"/>
+    <entry inval="es_CL" outval="cl"/>
+    <entry inval="es_CO" outval="co"/>
+    <entry inval="es_CR" outval="cr"/>
+    <entry inval="es_DO" outval="do"/>
+    <entry inval="es_EC" outval="ec"/>
+    <entry inval="es_ES" outval="es"/>
+    <entry inval="es_GT" outval="gt"/>
+    <entry inval="es_HN" outval="hn"/>
+    <entry inval="es_MX" outval="mx"/>
+    <entry inval="es_NI" outval="ni"/>
+    <entry inval="es_PA" outval="pa"/>
+    <entry inval="es_PE" outval="pe"/>
+    <entry inval="es_PR" outval="pr"/>
+    <entry inval="es_PY" outval="py"/>
+    <entry inval="es_SV" outval="sv"/>
+    <entry inval="es_US" outval="us"/>
+    <entry inval="es_UY" outval="uy"/>
+    <entry inval="es_VE" outval="ve"/>
+    <entry inval="et_EE" outval="ee"/>
+    <entry inval="eu_ES" outval="es"/>
+    <entry inval="fa_IR" outval="ir"/>
+    <entry inval="fi_FI" outval="fi"/>
+    <entry inval="fo_FO" outval="fo"/>
+    <entry inval="fr_BE" outval="be"/>
+    <entry inval="fr_CA" outval="ca"/>
+    <entry inval="fr_CH" outval="ch (fr)"/>
+    <entry inval="fr_FR" outval="fr"/>
+    <entry inval="fr_LU" outval="lu"/>
+    <entry inval="ga_IE" outval="ie"/>
+    <entry inval="gl_ES" outval="es"/>
+    <entry inval="gu_IN" outval="in (guj)"/>
+    <entry inval="gv_GB" outval="gb"/>
+    <entry inval="he_IL" outval="il"/>
+    <entry inval="hi_IN" outval="in"/>
+    <entry inval="hr_HR" outval="hr"/>
+    <entry inval="hu_HU" outval="hu"/>
+    <entry inval="id_ID" outval="id"/>
+    <entry inval="is_IS" outval="is"/>
+    <entry inval="it_CH" outval="ch"/>
+    <entry inval="it_IT" outval="it"/>
+    <entry inval="ja_JP" outval="jp"/>
+    <entry inval="kl_GL" outval="gl"/>
+    <entry inval="kn_IN" outval="in (kan)"/>
+    <entry inval="ko_KR" outval="kr"/>
+    <entry inval="kw_GB" outval="gb"/>
+    <entry inval="lo_LA" outval="la"/>
+    <entry inval="lt_LT" outval="lt"/>
+    <entry inval="lv_LV" outval="lv"/>
+    <entry inval="mai_IN" outval="in"/>
+    <entry inval="mk_MK" outval="mk"/>
+    <entry inval="ml_IN" outval="in (mal)"/>
+    <entry inval="mr_IN" outval="in"/>
+    <entry inval="ms_MY" outval="my"/>
+    <entry inval="mt_MT" outval="mt"/>
+    <entry inval="nb_NO" outval="no"/>
+    <entry inval="nds_DE" outval="de"/>
+    <entry inval="ne_NP" outval="np"/>
+    <entry inval="nl_BE" outval="be"/>
+    <entry inval="nl_NL" outval="nl"/>
+    <entry inval="nn_NO" outval="no"/>
+    <entry inval="oc_FR" outval="fr (oci)"/>
+    <entry inval="or_IN" outval="in (ori)"/>
+    <entry inval="pa_IN" outval="in (guru)"/>
+    <entry inval="pl_PL" outval="pl"/>
+    <entry inval="pt_BR" outval="br"/>
+    <entry inval="pt_PT" outval="pt"/>
+    <entry inval="ro_RO" outval="ro"/>
+    <entry inval="ru_RU" outval="ru"/>
+    <entry inval="ru_UA" outval="ua"/>
+    <entry inval="se_NO" outval="no (smi)"/>
+    <entry inval="si_LK" outval="lk"/>
+    <entry inval="sk_SK" outval="sk"/>
+    <entry inval="sl_SI" outval="si"/>
+    <entry inval="sq_AL" outval="al"/>
+    <entry inval="sr_RS" outval="rs"/>
+    <entry inval="sv_FI" outval="fi"/>
+    <entry inval="sv_SE" outval="se"/>
+    <entry inval="ta_IN" outval="in (tam)"/>
+    <entry inval="te_IN" outval="in (tel)"/>
+    <entry inval="th_TH" outval="th"/>
+    <entry inval="tl_PH" outval="ph"/>
+    <entry inval="tr_TR" outval="tr"/>
+    <entry inval="uk_UA" outval="ua"/>
+    <entry inval="ur_PK" outval="pk"/>
+    <entry inval="uz_UZ" outval="uz"/>
+    <entry inval="wa_BE" outval="be"/>
+    <entry inval="xh_ZA" outval="za"/>
+    <entry inval="zh_CN" outval="cn"/>
+    <entry inval="zh_HK" outval="hk"/>
+    <entry inval="zh_TW" outval="tw"/>
+    <entry inval="zu_ZA" outval="za"/>
+  </datamap>
+</libosinfo>
diff --git a/data/install-scripts/fedora.xml b/data/install-scripts/fedora.xml
index a7c30e8..a0a3f35 100644
--- a/data/install-scripts/fedora.xml
+++ b/data/install-scripts/fedora.xml
@@ -5,7 +5,7 @@
     <expected-filename>fedora.ks</expected-filename>
     <config>
       <param name="admin-password" policy="optional"/>
-      <param name="l10n-keyboard" policy="optional"/>
+      <param name="l10n-keyboard" policy="optional" value-map="http://libosinfo.fedorahosted.org/x11-keyboard"/>
       <param name="l10n-language" policy="optional"/>
       <param name="l10n-timezone" policy="optional"/>
       <param name="target-disk" policy="optional"/>
@@ -59,70 +59,16 @@
 	  </xsl:choose>
 	</xsl:template>
 
-        <xsl:template name="country-from-keyboard">
-          <xsl:value-of select="substring-after(config/l10n-keyboard,'_')"/>
-        </xsl:template>
-
 	<xsl:template name="keyboard">
 	  <xsl:choose>
 	    <xsl:when test="os/version > 17">
-	      <xsl:choose>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'en_CA')">
-	          <xsl:text>ca (eng)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'fr_CH')">
-	          <xsl:text>ch (fr)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'ast_ES')">
-	          <xsl:text>es (ast)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'ca_ES')">
-	          <xsl:text>es (cat)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'se_NO')">
-	          <xsl:text>no (smi)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'br_FR')">
-	          <xsl:text>fr (bre)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'oc_FR')">
-	          <xsl:text>fr (oci)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'bn_IN')">
-	          <xsl:text>in (ben)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'en_IN')">
-	          <xsl:text>in (eng)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'gu_IN')">
-	          <xsl:text>in (guj)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'kn_IN')">
-	          <xsl:text>in (kan)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'ml_IN')">
-	          <xsl:text>in (mal)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'or_IN')">
-	          <xsl:text>in (ori)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'pa_IN')">
-	          <xsl:text>in (guru)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'ta_IN')">
-	          <xsl:text>in (tam)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'te_IN')">
-	          <xsl:text>in (tel)</xsl:text>
-	        </xsl:when>
-	        <xsl:otherwise>
-                  <xsl:call-template name="country-from-keyboard"/>
-	        </xsl:otherwise>
-	      </xsl:choose>
+              <xsl:value-of select="config/l10n-keyboard"/>
 	    </xsl:when>
 	    <xsl:otherwise>
-              <!-- F17 and older required keyboard layout to be a console layout so we'll need some complicated
-                   code to translate from X to console layout if we want to properly support those. -->
+              <!-- FIXME: F17 and older required keyboard layout to be a console
+                   layout so we'll need a different datamap for those but
+                   currently we only support one datamap per config param per
+                   script. -->
 	      <xsl:text>us</xsl:text>
 	    </xsl:otherwise>
 	  </xsl:choose>
@@ -187,7 +133,7 @@ reboot
     <profile>desktop</profile>
     <expected-filename>fedora.ks</expected-filename>
     <config>
-        <param name="l10n-keyboard" policy="optional"/>
+        <param name="l10n-keyboard" policy="optional" value-map="http://libosinfo.fedorahosted.org/x11-keyboard"/>
         <param name="l10n-language" policy="optional"/>
         <param name="l10n-timezone" policy="optional"/>
         <param name="hostname" policy="optional"/>
@@ -250,70 +196,16 @@ reboot
 	  </xsl:choose>
 	</xsl:template>
 
-        <xsl:template name="country-from-keyboard">
-          <xsl:value-of select="substring-after(config/l10n-keyboard,'_')"/>
-        </xsl:template>
-
 	<xsl:template name="keyboard">
 	  <xsl:choose>
 	    <xsl:when test="os/version > 17">
-	      <xsl:choose>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'en_CA')">
-	          <xsl:text>ca (eng)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'fr_CH')">
-	          <xsl:text>ch (fr)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'ast_ES')">
-	          <xsl:text>es (ast)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'ca_ES')">
-	          <xsl:text>es (cat)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'se_NO')">
-	          <xsl:text>no (smi)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'br_FR')">
-	          <xsl:text>fr (bre)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'oc_FR')">
-	          <xsl:text>fr (oci)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'bn_IN')">
-	          <xsl:text>in (ben)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'en_IN')">
-	          <xsl:text>in (eng)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'gu_IN')">
-	          <xsl:text>in (guj)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'kn_IN')">
-	          <xsl:text>in (kan)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'ml_IN')">
-	          <xsl:text>in (mal)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'or_IN')">
-	          <xsl:text>in (ori)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'pa_IN')">
-	          <xsl:text>in (guru)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'ta_IN')">
-	          <xsl:text>in (tam)</xsl:text>
-	        </xsl:when>
-	        <xsl:when test="starts-with(config/l10n-keyboard,'te_IN')">
-	          <xsl:text>in (tel)</xsl:text>
-	        </xsl:when>
-	        <xsl:otherwise>
-                  <xsl:call-template name="country-from-keyboard"/>
-	        </xsl:otherwise>
-	      </xsl:choose>
+              <xsl:value-of select="config/l10n-keyboard"/>
 	    </xsl:when>
 	    <xsl:otherwise>
-              <!-- F17 and older required keyboard layout to be a console layout so we'll need some complicated
-                   code to translate from X to console layout if we want to properly support those. -->
+              <!-- FIXME: F17 and older required keyboard layout to be a console
+                   layout so we'll need a different datamap for those but
+                   currently we only support one datamap per config param per
+                   script. -->
 	      <xsl:text>us</xsl:text>
 	    </xsl:otherwise>
 	  </xsl:choose>
-- 
1.8.0.2




More information about the Libosinfo mailing list