Dear Tom,
what does "if the app using elm is translatable." mean?

With setlocale LC_MESSAGES to NULL, running applications with environment
variable with LANG doesn't translate the texts.
   const char *msg_locale = setlocale(LC_MESSAGES, NULL);

I tried with "" instead of NULL and it worked.
   const char *msg_locale = setlocale(LC_MESSAGES, "";

Can you check this?
Thanks.

Daniel Juyung Seo (SeoZ)


On Sun, Sep 18, 2011 at 4:53 PM, Enlightenment SVN <
no-re...@enlightenment.org> wrote:

> Log:
> Elm gettext: Only translate if the app using elm is translatable.
>
>   It assumes gettext is initialized before the call to elm_init.
>
> Author:       tasn
> Date:         2011-09-18 00:53:41 -0700 (Sun, 18 Sep 2011)
> New Revision: 63452
> Trac:         http://trac.enlightenment.org/e/changeset/63452
>
> Modified:
>   trunk/elementary/src/lib/elm_config.c trunk/elementary/src/lib/elm_priv.h
>
> Modified: trunk/elementary/src/lib/elm_config.c
> ===================================================================
> --- trunk/elementary/src/lib/elm_config.c       2011-09-17 17:15:32 UTC
> (rev 63451)
> +++ trunk/elementary/src/lib/elm_config.c       2011-09-18 07:53:41 UTC
> (rev 63452)
> @@ -1658,12 +1658,33 @@
>     _elm_rescale();
>  }
>
> +static void
> +_translation_init()
> +{
> +#ifdef ENABLE_NLS
> +   const char *cur_dom = textdomain(NULL);
> +   const char *trans_comment = gettext("");
> +   const char *msg_locale = setlocale(LC_MESSAGES, NULL);
> +
> +   /* Same concept as what glib does:
> +    * We shouldn't translate if there are no translations for the
> +    * application in the current locale + domain. (Unless locale is
> +    * en_/C where translating only parts of the interface make some
> +    * sense).
> +    */
> +   _elm_config->translate = !(strcmp (cur_dom, "messages") &&
> +         !*trans_comment && strncmp (msg_locale, "en_", 3) &&
> +         strcmp (msg_locale, "C"));
> +#endif
> +}
> +
>  void
>  _elm_config_init(void)
>  {
>     _desc_init();
>     _profile_fetch_from_conf();
>     _config_load();
> +   _translation_init();
>     _env_get();
>     _config_apply();
>     _elm_config_font_overlay_apply();
>
> Modified: trunk/elementary/src/lib/elm_priv.h
> ===================================================================
> --- trunk/elementary/src/lib/elm_priv.h 2011-09-17 17:15:32 UTC (rev 63451)
> +++ trunk/elementary/src/lib/elm_priv.h 2011-09-18 07:53:41 UTC (rev 63452)
> @@ -28,7 +28,7 @@
>
>  #ifdef ENABLE_NLS
>  # include <libintl.h>
> -# define E_(string) dgettext(PACKAGE, string)
> +# define E_(string) _elm_dgettext(string)
>  #else
>  # define bindtextdomain(domain,dir)
>  # define E_(string) (string)
> @@ -148,6 +148,7 @@
>
>     /* Not part of the EET file */
>     Eina_Bool      is_mirrored : 1;
> +   Eina_Bool      translate : 1;
>  };
>
>  struct _Elm_Module
> @@ -247,6 +248,20 @@
>  extern Eina_List   *_elm_win_list;
>  extern int          _elm_win_deferred_free;
>
> +/* Our gettext wrapper, used to disable translation of elm if the app
> + * is not translated. */
> +static inline const char *
> +_elm_dgettext(const char *string)
> +{
> +   if (EINA_UNLIKELY(_elm_config->translate == EINA_FALSE))
> +     {
> +        return string;
> +     }
> +
> +   return dgettext(PACKAGE, string);
> +}
> +
> +
>  /* Used by the paste handler */
>  void _elm_entry_entry_paste(Evas_Object *obj, const char *entry);
>
>
>
>
> ------------------------------------------------------------------------------
> BlackBerry&reg; DevCon Americas, Oct. 18-20, San Francisco, CA
> http://p.sf.net/sfu/rim-devcon-copy2
> _______________________________________________
> enlightenment-svn mailing list
> enlightenment-...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
>
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to