[virt-tools-list] [libosinfo v4] install-scripts: Translate lang format when needed

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Fri Nov 23 15:42:46 UTC 2012


On Fri, Nov 23, 2012 at 5:03 PM, Fabiano Fidêncio <fabiano at fidencio.org> wrote:
> Add this translation in the windows template file because the script
> must have the language is being set using
> https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/Locale-Names.html
> While, for Windows, the standard being used is:
> https://www.ietf.org/rfc/rfc4646.txt (page 56, Language-Region topic).
>
> A practical example is:
> Windows will use, for Brazilian Portuguese, pt-BR instead of pt_BR.
> ---
>  data/install-scripts/windows-unattend.xml | 50 ++++++++++++++++++++++++++-----
>  osinfo/osinfo_install_config.c            | 14 ++++++++-
>  2 files changed, 55 insertions(+), 9 deletions(-)
>
> diff --git a/data/install-scripts/windows-unattend.xml b/data/install-scripts/windows-unattend.xml
> index d3b2df5..86031ed 100644
> --- a/data/install-scripts/windows-unattend.xml
> +++ b/data/install-scripts/windows-unattend.xml
> @@ -32,6 +32,23 @@
>            </xsl:choose>
>          </xsl:template>
>
> +        <xsl:template name="language">
> +          <xsl:variable name="l10n-language">
> +            <xsl:value-of select="config/l10n-language"/>
> +          </xsl:variable>
> +          <xsl:variable name="new-l10n-language">

Is a new variable really needed? Can't you override the value of
existing variable?

> +            <xsl:value-of select="translate($l10n-language,'_','-')"/>
> +          </xsl:variable>
> +          <xsl:choose>
> +            <xsl:when test="contains($new-l10n-language,'.')">
> +              <xsl:value-of select="substring-before($new-l10n-language,'.')"/>
> +            </xsl:when>
> +            <xsl:otherwise>
> +              <xsl:value-of select="$new-l10n-language"/>
> +            </xsl:otherwise>
> +          </xsl:choose>
> +        </xsl:template>
> +
>         <xsl:template name="arch">
>           <xsl:choose>
>             <xsl:when test="count(config/hardware-arch) > 0">
> @@ -99,11 +116,11 @@
>                   <xsl:call-template name="arch"/>
>                 </xsl:attribute>
>                 <SetupUILanguage>
> -                 <UILanguage><xsl:value-of select="config/l10n-language"/></UILanguage>
> +                 <UILanguage><xsl:call-template name="language"/></UILanguage>
>                 </SetupUILanguage>
> -               <SystemLocale><xsl:value-of select="config/l10n-language"/></SystemLocale>
> -               <UILanguage><xsl:value-of select="config/l10n-language"/></UILanguage>
> -               <UserLocale><xsl:value-of select="config/l10n-language"/></UserLocale>
> +               <SystemLocale><xsl:call-template name="language"/></SystemLocale>
> +               <UILanguage><xsl:call-template name="language"/></UILanguage>
> +               <UserLocale><xsl:call-template name="language"/></UserLocale>
>               </component>
>             </settings>
>             <settings pass="oobeSystem">
> @@ -213,6 +230,23 @@
>          </xsl:choose>
>        </xsl:template>
>
> +      <xsl:template name="language">
> +        <xsl:variable name="l10n-language">
> +          <xsl:value-of select="config/l10n-language"/>
> +        </xsl:variable>
> +        <xsl:variable name="new-l10n-language">
> +          <xsl:value-of select="translate($l10n-language,'_','-')"/>
> +        </xsl:variable>
> +        <xsl:choose>
> +          <xsl:when test="contains($new-l10n-language,'.')">
> +            <xsl:value-of select="substring-before($new-l10n-language,'.')"/>
> +          </xsl:when>
> +          <xsl:otherwise>
> +            <xsl:value-of select="$new-l10n-language"/>
> +          </xsl:otherwise>
> +        </xsl:choose>
> +      </xsl:template>
> +
>        <xsl:template name="arch">
>         <xsl:choose>
>          <xsl:when test="config/hardware-arch = 'x86_64'">
> @@ -283,11 +317,11 @@
>            <xsl:call-template name="arch"/>
>           </xsl:attribute>
>           <SetupUILanguage>
> -          <UILanguage><xsl:value-of select="config/l10n-language"/></UILanguage>
> +          <UILanguage><xsl:call-template name="language"/></UILanguage>
>           </SetupUILanguage>
> -         <SystemLocale><xsl:value-of select="config/l10n-language"/></SystemLocale>
> -         <UILanguage><xsl:value-of select="config/l10n-language"/></UILanguage>
> -         <UserLocale><xsl:value-of select="config/l10n-language"/></UserLocale>
> +         <SystemLocale><xsl:call-template name="language"/></SystemLocale>
> +         <UILanguage><xsl:call-template name="language"/></UILanguage>
> +         <UserLocale><xsl:call-template name="language"/></UserLocale>
>          </component>
>         </settings>
>         <xsl:if test="os/version > 6.0">
> diff --git a/osinfo/osinfo_install_config.c b/osinfo/osinfo_install_config.c
> index f146aec..a8a78e0 100644
> --- a/osinfo/osinfo_install_config.c
> +++ b/osinfo/osinfo_install_config.c
> @@ -140,7 +140,19 @@ const gchar *osinfo_install_config_get_l10n_keyboard(OsinfoInstallConfig *config
>                                           OSINFO_INSTALL_CONFIG_PROP_L10N_KEYBOARD);
>  }
>
> -
> +/**
> + * osinfo_install_config_set_l10n_language:
> + *
> + * Sets the #OSINFO_INSTALL_CONFIG_PROP_L10N_LANGUAGE parameter.
> + *
> + * The expected format to set l10n_language follows the gettext Locale Names[0]
> + * standard  with both encoding and variant are accepted but are optional.
> + *
> + * For example, 'pt_BR' is used to Brazilian Portuguese. 'pt_BR.utf8' is
> + * accepted but the encoding part is optional.
> + *
> + * [0]: https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/Locale-Names.html

This will not translate into footnote (as its meant to be) in the
generated docs. See if there is any way to create links in gtk-doc. If
not, you want to inline it.

Looks good otherwise.

-- 
Regards,

Zeeshan Ali (Khattak)
FSF member#5124




More information about the virt-tools-list mailing list