[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